자격증
아하마스터
세션이라는 메신저는 어떻게 구동되는지 여쭤보고 싶습니다.
안녕하세요. 보안에 관심이 많은 20대 남성입니다. 세션이 보안메신져라는데 어떤방식으로 대화내용을 암호화하는지 궁금해서 이렇게 여쭤봅니다. 답변부탁드리겠습니다.
3개의 답변이 있어요!
안녕하세요. 시호정 정보처리기사입니다.
세션은 전화번호 없이 사용하는 탈중앙화 보안 메신저로 알고 있습니다.
다른 메신저와 다르게 중앙화 서버가 아니라 분산 네트워크로 특정 회사 서버에 대화내용이 저장되지 않습니다.
암호화는 종단간 암호화로 메세지 보내는 사람과 받는 사람 기기에서만 복호화가 가능하고, 중간 노드에서는 내용 확인이 불가능한 구조 입니다.
기본적으로 공개키 -> 개인키 암호화 방식을 사용하고 있습니다.
채택 보상으로 182베리 받았어요.
채택된 답변반갑습니다, 질문자님. 이중철 AX 정보처리기사입니다.
보안과 개인정보 보호 기술에 관심이 많으시군요.
우선 세션(Session)은 현재 전 세계 보안 전문가들 사이에서 시그널(Signal)과 함께 가장 신뢰받는 보안 메신저 중 하나입니다. 우리가 흔히 쓰는 카카오톡이나 텔레그램, 심지어 강력한 보안을 자랑하는 시그널과 비교해 보아도 세션은 구동 방식과 암호화 메커니즘 측면에서 완전히 다른 차원의 독특한 방식을 취하고 있어요. 보안 전공자나 관심 있는 분들이 흥미로워할 만한 세션의 3가지 핵심 구동 원리를 알기 쉽게 정리해 답변 드리겠습니다.
1. 회원가입이 없는 구조: Session ID ← 공개키
일반적인 메신저는 가입할 때 전화번호나 이메일을 요구하고, 이를 기반으로 중앙 서버에 사용자 계정을 등록합니다. 하지만 세션은 전화번호, 이메일, 주민등록번호 등 그 어떠한 개인정보도 요구하지 않습니다.
(구동 방식)
앱을 설치하고 실행하는 순간, 기기 내부에서 수학적 알고리즘을 통해 무작위로 Session ID라는 66자리의 고유한 문자열을 생성합니다.
(보안적 의미)
이 Session ID 자체가 기하학적 대칭을 이루는 나만의 공개키(Public Key) 역할을 합니다. 상대방에게 이 ID를 알려주는 것만으로 대화가 가능하므로, 나의 현실 세계 신원(전화번호를 통한 추적 등)과 메신저 계정을 연결하는 고리가 태생적으로 차단됩니다.
2. 대화 내용 암호화: 세션 프로토콜(E2EE)
세션은 전송되는 모든 메시지, 사진, 파일 등을 종단간 암호화(End-to-End Encryption, E2EE)합니다. 즉, 메시지를 보내는 내 스마트폰에서 암호화되어, 받는 사람의 스마트폰에 도착해야만 암호가 풀리는 구조입니다.
(구동 방식)
세계 최고의 보안 프로토콜로 인정받는 시그널 프로토콜(Signal Protocol)을 기반으로, 분산형 네트워크 환경에 맞게 자체 개조한 세션 프로토콜(Session Protocol)을 사용합니다.
(보안적 의미)
메시지가 인터넷망을 떠돌거나 중간 거점(노드)을 통과할 때, 그 누구도 대화 내용을 열어볼 수 없습니다. 심지어 세션을 개발한 개발사나 정부 기관이 패킷을 가로채더라도 컴퓨터가 읽을 수 없는 무작위 암호문으로만 보이기 때문에 완벽한 기밀성이 유지됩니다. 또한, 순방향 비밀성(Forward Secrecy)을 지원하여 만에 하나 미래에 암호 키가 유출되더라도 과거의 대화 내용까지 역으로 복호화하는 것은 불가능합니다.
3. 누구와 대화하는지조차 숨기는 '어니언 라우팅(Onion Routing)'
사실 시그널 같은 메신저도 대화 내용은 암호화하지만, 중앙 서버를 거치기 때문에 'A라는 IP를 가진 사람이 B라는 사람에게 몇 시 몇 분에 메시지를 보냈다'라는 메타데이터(Metadata)는 서버에 남을 위험이 있습니다. 다만, 세션은 이를 원천 차단하기 위해 중앙 서버를 없애고 양파 까기 방식(Onion Routing)을 도입했습니다.
(구동 방식)
세션은 전 세계 자발적 참여자들이 운영하는 수천 개의 분산된 컴퓨터(옥센 서비스 노드 네트워크, Oxen Service Node Network)를 기반으로 구동됩니다. 내가 메시지를 보내면 토르(Tor) 브라우저처럼 최소 3개의 무작위 노드를 거쳐 상대방에게 도달합니다.
1번 노드(진입): 내 진짜 IP 주소는 알지만, 메시지가 최종적으로 어디로 가는지(목적지)는 모릅니다.
2번 노드(중간): 1번 노드의 IP와 3번 노드의 IP만 알 뿐, 최초 송신자와 최종 수신자를 둘 다 모릅니다.
3번 노드(출구): 메시지가 도달할 최종 목적지(상대방)는 알지만, 이 메시지를 처음 보낸 사람의 진짜 IP 주소는 모릅니다.
(보안적 의미)
각 노드는 양파 껍질을 한 꺼풀 벗기듯 자신에게 허용된 암호만 해독하여 다음 행선지로 패킷을 넘겨줄 뿐입니다.
따라서, 네트워크상의 그 누구도 내가 누구와 대화하고 있는지, 내 진짜 IP 주소가 무엇인지를 추적할 수 없습니다.
정리하자면,
세션은 대화 내용을 완벽하게 암호화하는 종단간 암호화(E2EE) 기술을 기본으로 탑재하고 있으며, 이에 더해 가입 시 전화번호를 요구하지 않는 공개키 기반 ID 체계와 메시지의 이동 경로 및 IP 주소를 완벽하게 세탁하는 분산형 어니언 라우팅 기술을 결합하여 구동됩니다. 대화 내용(콘텐츠)의 보안뿐만 아니라 대화 주체(인적 정보)의 익명성까지 동시에 보호하는 현존하는 가장 강력한 형태의 방어형 메신저라고 볼 수 있습니다.
※ 질문자님을 포함하여 소중한 분들의 건강, 재산과 안전을 지키고, 혹시나 발생할 수 있을 다양한 문제 상황에 놓이지 않기 위해서라도 저를 포함하여 다양한 토픽에서 활동하는 모든 전문가분들의 아하 지식커뮤니티에서의 답변은 예외 없이 참고 용도로만 유용하게 활용하시기 바랍니다.😉
안녕하세요. 조원우 정보처리기사입니다.
공개키와 개인키로 암복호화가 이루어 집니다. 보내는 메시지가 공개키로 암호화가 되고, 암호화된 암호문이 받는이에게 전달됩니다. 받는이는 이를 개인키를 이용하여 복호화 후 메시지를 확인하는 방식입니다.
답변이 도움이 되었길 바랍니다.