Session은 사용자 개인 정보 보호, 익명성 및 메타데이터 최소화에 중점을 둔 무료 오픈 소스 탈중앙화 종단 간 암호화 인스턴트 메신저입니다. 이 애플리케이션을 통해 사용자는 전화 번호, 이메일 주소 또는 기타 개인 식별 정보 없이 계정을 만들고 통신할 수 있습니다. Session Foundation에서 개발 및 유지 관리하며 커뮤니티 운영 노드의 탈중앙화 네트워크인 Session Network를 기반으로 구축되었습니다. 이 프로젝트의 기본 원칙은 "메타데이터가 아닌 메시지를 보내세요"라는 슬로건으로 요약됩니다. [1]
Session은 개인 정보 보호 기술 개발에 전념하는 호주 비영리 단체인 Loki Foundation에서 시작되었습니다. 이 재단은 나중에 Oxen Privacy Tech Foundation (OPTF)로 리브랜딩되었으며 2018년부터 프로젝트의 초기 관리자 역할을 했습니다. Session의 프로토콜 및 아키텍처를 자세히 설명하는 기술 백서는 2020년 2월 arXiv에 게시되었습니다. [2] [3]
2024년 10월, Session 프로젝트의 관리는 OPTF에서 새로 설립된 스위스 기반의 비영리 재단인 Session Technology Foundation (STF)으로 이관되었습니다. STF는 Session 메신저와 그 생태계의 지속적인 개발, 거버넌스 및 홍보를 감독하기 위해 설립되었습니다. 스위스를 기반으로 선택한 이유는 개인 정보 보호법이 강력하고 분산형 기술에 대한 정교한 규정이 있기 때문입니다. [4]
Session 프로젝트는 수년간의 오픈 소스 개발을 기반으로 구축되었으며, 글로벌 커뮤니티와 네트워크 인프라를 구성하는 노드 운영자들의 지원을 받습니다. [5]
Session의 아키텍처는 분산 및 익명성을 위해 설계된 다층 시스템으로, 사용자 인터페이스 애플리케이션과 분산 백엔드 네트워크를 결합합니다. 메시지 전달 또는 데이터 저장을 위해 중앙 서버를 사용하지 않습니다. [6]
애플리케이션의 백엔드는 50개국 이상에 분산된 1,500개 이상의 커뮤니티 운영 "세션 노드"로 구성된 탈중앙화된 P2P 시스템인 세션 네트워크입니다. 이러한 노드는 메시지 유효성 검사, 라우팅 및 임시 스토리지를 담당합니다. 네트워크는 지분 증명(PoS) 합의 메커니즘으로 작동합니다. 세션 노드를 실행하려면 운영자는 상당한 양의 세션 토큰($SESH)을 스테이킹해야 합니다. 이 재정적 요구 사항은 시빌 저항을 제공하여 악의적인 행위자가 네트워크의 많은 부분을 제어하는 것을 매우 어렵게 만들고 블록 보상을 통해 안정적인 서비스를 장려합니다. [7]
최신 메신저의 성능 요구 사항을 처리하기 위해 네트워크는 특정 작업을 낮은 수수료의 사이드체인으로 오프로드하여 이더리움 레이어 2 확장 솔루션인 Arbitrum One을 활용합니다. 이 "앱체인"은 이름 등록과 같은 작업에 대한 높은 처리량을 위해 설계되었습니다. [3] [7]
Session은 사용자 메타데이터를 보호하고 IP 주소를 난독화하기 위해 "어니언 요청"이라는 맞춤형 어니언 라우팅 시스템을 사용합니다. 사용자가 메시지를 보낼 때 메시지는 여러 계층의 암호화로 래핑되어 목적지에 도달하기 전에 세 개의 무작위로 선택된 Session 노드를 거쳐 라우팅됩니다. [4]
라우팅 프로세스는 다음을 보장합니다.
이러한 설계는 사용자의 IP 주소를 메시지와 효과적으로 분리하여 단일 노드나 외부 관찰자가 통신의 출처를 추적하기 어렵게 만듭니다. 프로젝트는 향후 음성 및 화상 통화와 같은 보다 복잡한 익명 통신을 가능하게 하기 위해 저지연 어니언 라우터인 Lokinet을 통합하는 것을 목표 중 하나로 밝혔습니다. [3] [7]
비동기 메시징을 위해 세션은 "스웜" 기반의 분산 저장 시스템을 사용합니다. 스웜은 특정 세션 ID 범위에 대한 오프라인 메시지를 저장하는 역할을 하는 5~10개의 세션 노드로 구성된 소규모 분산 및 중복 그룹입니다. 오프라인 사용자에게 메시지가 전송되면 해당 스웜으로 전달되어 수신자의 장치가 온라인 상태가 되어 검색할 때까지 보관됩니다. 메시지는 고정된 TTL(Time-to-Live)로 저장되며, 전달되거나 TTL이 만료된 후 삭제되어 데이터 보존 공간을 최소화합니다. 이 스웜 기반 아키텍처는 내결함성을 제공하고 네트워크의 일부 노드가 오프라인 상태가 되더라도 메시지 가용성을 보장합니다. [6] [3]
Session의 모든 1:1 및 그룹 대화는 종단 간 암호화되며, 이를 위해 Session 프로토콜이 사용됩니다. 이는 Signal 프로토콜에서 파생되었지만 분산된 비동기 환경에 맞게 크게 수정된 프로토콜입니다. 암호화 기본 요소로는 고도로 감사된 오픈 소스 암호화 라이브러리인 libsodium을 활용합니다. [4]
Signal 프로토콜과 달리, 1:1 채팅을 위한 Session 프로토콜은 상태 비저장 방식이며 키 래칫을 사용하지 않습니다. 메시지는 발신자의 장기 개인 키로 서명된 다음 수신자의 공개 키로 암호화됩니다. 이러한 설계 결정으로 인해 Session은 완전 순방향 보안(PFS)을 구현하지 않습니다. 개발자들은 PFS가 주로 손상된 장기 키가 과거에 가로채인 메시지를 해독하는 데 사용될 위험을 완화한다고 주장합니다. 그들은 Session의 아키텍처가 익명 계정, 필수 어니언 라우팅, 최소한의 메타데이터 노출을 포함하는 핵심 설계를 통해 이러한 위협을 보다 포괄적으로 해결하여 표적화된 가로채기를 훨씬 더 어렵게 만든다고 주장합니다. [4] [3]
메시지는 장기 키로 서명되므로 기술적으로 귀속될 수 있습니다. 그러나 클라이언트 소프트웨어는 유효성 검사 직후 서명을 삭제하도록 설계되었으므로 수정되지 않은 클라이언트는 제3자에게 메시지 출처를 증명할 수 없습니다. 이는 애플리케이션 수준에서 일종의 그럴듯한 부인 가능성을 제공합니다. [3]
세션의 아이덴티티 시스템은 완전히 익명으로 설계되었으며 실제 식별자와 분리되어 있습니다. [4]
애플리케이션은 최초 사용 시 사용자의 장치에 고유한 66자리의 영숫자 세션 ID를 생성합니다. 이 ID는 메시지 수신을 위한 네트워크 상의 사용자 공개 주소 역할을 하는 Ed25519 공개 키입니다. 세션 ID를 생성하는 데 전화 번호, 이메일 또는 기타 개인 데이터가 필요하지 않으므로 사용자의 실제 신원과의 연결이 끊어집니다. [3]
세션 ID와 함께 '복구 비밀번호'라고 하는 니모닉 시드 구문이 생성됩니다. 이 구문은 계정의 개인 키를 나타내며 새 장치나 다른 장치에서 세션 ID를 복원하는 유일한 방법입니다. 계정 데이터를 보유하는 중앙 서버가 없기 때문에 복구 비밀번호를 잃어버리면 연결된 계정을 영구적으로 잃게 됩니다. 다중 장치 지원은 이 복구 비밀번호를 장치 간에 공유하여 달성됩니다. [4]
세션은 연락처 추가를 간소화하기 위해 스마트 계약을 기반으로 구축된 탈중앙화된 명명 시스템인 세션 이름 서비스(SNS)를 제공합니다. 사용자는 영구적이고 사람이 읽을 수 있는 사용자 이름(예: "JohnDoe")을 등록하고 이를 세션 ID에 매핑할 수 있습니다. 이러한 이름은 세션 토큰(SESH)으로 구매할 수 있으며, 무단 점유를 방지하고 고유성을 보장하기 위해 블록체인에 등록됩니다. [7]
Session 생태계는 네이티브 유틸리티 토큰인 **Session Token($SESH)**으로 지원됩니다. Session Messenger 앱은 무료로 사용할 수 있으며 토큰을 소유하거나 상호 작용할 필요가 없습니다. [4]
SESH는 Ethereum 및 Arbitrum One 블록체인에서 발행된 EVM 호환 토큰입니다. 주요 목적은 Session 네트워크에 대한 경제적 보안을 제공하고 애플리케이션 생태계 내에서 가치 이전을 용이하게 하는 것입니다. [8]
$SESH 토큰의 유틸리티는 다음과 같습니다.
Session은 데스크톱(Windows, macOS, Linux) 및 모바일(Android, iOS) 클라이언트를 위한 다양한 통신 및 개인 정보 보호 기능을 제공합니다. [1]
세션은 오픈 소스 소프트웨어로 개발되었으며, 코드는 감사 및 기여를 위해 공개적으로 제공됩니다. [1]
Android (Kotlin), iOS (Swift) 및 데스크톱 (TypeScript)용 클라이언트 애플리케이션과 핵심 라이브러리는 Session Foundation의 GitHub 조직에서 사용할 수 있습니다. 이 소프트웨어는 주로 GNU General Public License v3.0 (GPL-3.0)에 따라 라이선스가 부여됩니다. [2]
Session 데스크톱, Android, iOS 클라이언트는 제3자 회사인 Quarkslab에서 보안 감사를 받았습니다. 이 감사 결과는 공개적으로 이용 가능합니다. [4]
Session은 메타데이터를 최소화하여 기업 및 국가 수준의 행위자의 감시로부터 보호하도록 설계되었습니다. 주요 보호 기능에는 사용자 IP 주소 숨김, 소셜 그래프(누가 누구와 대화하는지) 생성 방지, 종단 간 암호화를 통한 메시지 콘텐츠 보안 등이 포함됩니다. 이 프로젝트는 낮은 지연 시간의 양파 라우터가 GPA(Global Passive Adversary)의 트래픽 상관 관계 공격에 취약하다는 것을 인정합니다. GPA는 사용자의 진입점과 네트워크의 출구점에서 트래픽을 모니터링할 수 있는 엔터티입니다. 향후 연구 목표에는 이러한 위협으로부터 더 강력한 보호를 제공하기 위해 Mixnet 구현을 조사하는 것이 포함됩니다. [3]