맨위로가기

톡스 (프로토콜)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

톡스(Tox)는 안전한 P2P 메신저 프로토콜로, 2013년 6월 irungentoo에 의해 깃허브에 처음 커밋되었다. 4chan에서의 스카이프 보안 논란을 계기로 개발이 시작되었으며, 2014년 알파 단계에 접어들었다. 톡스 재단과의 분쟁으로 인해 프로젝트가 분기되었고, 현재는 c-toxcore 포크를 기반으로 TokTok 프로젝트가 개발을 주도하고 있다. 톡스는 공개 키 암호 방식과 NaCl을 사용한 종단 간 암호화를 통해 보안을 강화하며, 다양한 클라이언트에서 인스턴트 메시지, 채팅방, 음성/영상 통화, 파일 공유 등의 기능을 지원한다. 2017년 보안 취약성 지적 이후, 실험적인 암호화 네트워크 라이브러리임을 경고하고, 새로운 암호화 메커니즘 개발을 진행 중이다. 톡스는 초기 개발 단계에서 주목을 받았으며, 다양한 운영체제를 지원하는 클라이언트가 존재한다.

2. 역사

깃허브(GitHub)에 대한 최초의 커밋은 2013년 6월 23일에 ''irungentoo''라는 사용자에 의해 이루어졌다[35] . 2014년 2월 3일 이후, 사전 알파 버전의 테스트 바이너리가 사용자에 의해 이용 가능해졌고, 톡스(Tox)의 나이틀리 빌드가 젠킨스(Jenkins)에 의해 공개되었다[36] . 같은 해 7월 12일, 톡스의 개발은 알파 단계에 접어들었고, 이 때문에 재설계된 다운로드 페이지가 작성되었다.

2. 1. 개발 시작

익명의 이미지 게시판 4chan에서 스카이프가 NSA에 사용자 정보 접근 권한을 제공했다는 의혹이 제기되면서, 안전한 P2P 메신저 개발에 대한 아이디어가 시작되었다. 이는 스카이프가 마이크로소프트에 인수되기 직전의 일이었다.[4][5] 깃허브(GitHub)에 대한 최초 커밋은 2013년 6월 23일 irungentoo라는 사용자에 의해 이루어졌다.[6][35] 2013년 8월 23일부터 비공식 커뮤니티 빌드가 사용 가능해졌으며,[7] 2013년 10월에 첫 공식 빌드가 출시되었다.[8] 2014년 2월 3일 이후, 사전 알파 버전의 테스트 바이너리가 사용자에 의해 이용 가능해졌고, 톡스(Tox)의 나이틀리 빌드가 젠킨스(Jenkins)에 의해 공개되었다[36] . 2014년 7월 12일, 톡스의 개발은 알파 단계에 접어들었고, 재설계된 다운로드 페이지가 작성되었다.[9]

2. 2. 톡스 재단과의 분쟁

톡스 프로젝트 초기 2년간 사업 및 재정 관리는 캘리포니아 등록 법인 톡스 재단(Tox Foundation)이 담당했다.[10] 2015년 7월 6일, 프로젝트의 깃허브에 톡스 재단의 유일한 이사인 션 쿠레시(Sean Qureshi)가 구글 서머 오브 코드 참여 자금으로 얻은 수천 달러를 자신의 대학 등록금 지불에 사용했다는 주장이 제기되었다.[11][12] 프로젝트 팀을 대표하여 irungentoo는 해당 주장을 확인했다.[13] 2015년 7월 11일, 쿠레시가 원래 프로젝트의 도메인과 서버를 통제하고 있었기 때문에 프로젝트 인프라와 저장소가 새로운 위치로 이전되었다. 프로젝트 블로그에서 개발팀은 톡스 재단 및 쿠레시와의 "결별"을 발표하고 이 문제에 대해 더 자세히 설명했다.[14] 이 상황으로 인해 많은 주요 기여자들이 톡스 관련 활동을 중단했다.[15] LWN.net에 따르면, 2015년 7월 11일, Tox Foundation의 대표 겸 CEO에 의한 "기부금 악용을 둘러싼 분쟁"으로 인해 Tox의 개발자들은 해당 재단과의 관계를 해제했다고 공식 발표했다[44]。프로젝트의 도메인은 해당 재단이 관리하고 있었기 때문에, 프로젝트의 대부분이 새로운 인프라·서버·도메인으로 이관되었다.

2. 3. 프로젝트 분기 및 Rust 구현

2016년 중반, 톡스(Tox)의 개발 활동이 감소하면서[16] 2018년 10월에 마지막 커밋이 이루어졌다.[17] 이에 따라 2016년 9월 말, 개발을 계속하고자 하는 사람들에 의해 "c-toxcore"라는 새로운 톡스 코어[18] 포크(fork)가 만들어졌다.

현재 c-toxcore는 TokTok 프로젝트[19]에서 개발을 주도하고 있다. TokTok 프로젝트는 "보편적인 표현의 자유를 증진하고 무제한 정보 교환을 보존하는 것"을 목표로 한다.[20] 이들은 기존 코어 구현의 느린 개발을 개선하고, 러스트로 새로운 참조 구현을 개발하고 있다.[19][21]

초기에 프로토콜 라이브러리의 러스트 구현은 네트워크 통신과 부트스트랩 노드 운영, 두 부분으로 나뉘어 있었다. 2022년 12월, 개발자들은 코드가 TCP 연결을 사용한 기본 통신 및 부트스트랩 노드 작업을 지원할 만큼 성숙해져 이를 병합했다고 밝혔다. 2023년 6월 현재, 러스트 코어 라이브러리를 사용하는 클라이언트 구현은 아직 개발 중이다.[21]

2. 4. 보안 감사 및 관련 문제

WireGuard의 개발자 제이슨 A. 도넨펠드는 2017년에 c-toxcore가 키 손상 위장(KCI) 공격에 취약하다고 지적했다.[22] 톡스가 "비전문가"가 개발한 "직접 만든 암호화"에 의존하여 핸드셰이크를 수행하기 때문이라고 비판했다.[22] 또한 톡스 개발자들이 사용한 설계 선택, 예를 들어 원시 ECDH 값을 암호화 키로 사용하는 것을 비판했다.[22]

이 보고서로 인해 개발자들은 톡스가 실험적인 암호화 네트워크 라이브러리이며, 사용자는 자신의 위험 부담으로 사용해야 한다는 경고문을 추가했다.[23] 2023년 3월에는 Noise 프로토콜 프레임워크의 AKE 메커니즘을 사용하여 핸드셰이크를 수행하는 새로운 암호화 메커니즘 개발이 진행 중이다.[24]

3. 주요 특징

사용자에게는 공개 키와 개인 키가 할당되며, 완전히 분산P2P 네트워크를 통해 서로 직접 연결된다. 사용자는 친구에게 메시지를 보내거나, 친구 및 낯선 사람과 채팅방에 참여하거나, 음성 및 영상 채팅을 하거나, 서로 파일을 전송할 수 있다. Tox 상의 모든 통신은 NaCl에 의해 종단 간 암호화되어 있으며, 인증된 암호화와 완전한 전방 보안을 제공한다.

Tox 클라이언트는 안전하고 익명성이 보장되는 다양한 통신 기능을 지원하는 것을 목표로 한다. 모든 클라이언트는 인스턴트 메시지를 지원하며, 채팅방/Chat room영어•VoIP•화상 회의•타이핑 표시자•메시지 읽음 확인•파일 공유•프로필 암호화•데스크톱 공유/Desktop sharing영어 등의 추가 기능은 클라이언트에 따라 지원 정도가 다르다.[25] 추가 기능은 핵심 프로토콜이 지원하는 한, 어떤 클라이언트에서도 구현할 수 있다. 핵심 네트워크 시스템과 관련 없는 기능은 클라이언트에 맡겨져 있다. 클라이언트 개발자는 클라이언트의 호환성과 최고의 보안을 유지하기 위해 [https://legacy.gitbook.com/book/tox/tox-client-standard/details Tox-Client-Standard]를 따르는 것이 강력히 권장된다.[25]

3. 1. 암호화

사용자는 공개 키와 개인 키를 할당받으며, 완전히 분산된 P2P 네트워크에서 서로 직접 연결된다. 사용자는 친구에게 메시지를 보내고, 친구나 낯선 사람과 채팅방에 참여하고, 음성/영상 채팅을 하고, 서로 파일을 주고받을 수 있다. Tox를 통한 모든 트래픽은 NaCl 라이브러리를 사용하여 종단 간 암호화되며, 이는 인증된 암호화와 완전 순방향 비밀성을 제공한다.

톡스(Tox)는 [https://github.com/jedisct1/libsodium libsodium]을 통해 NaCl에 내장된 암호화 방식을 사용한다. 구체적으로 키 교환에는 Curve25519를, 대칭키 암호에는 XSalsa20를, 메시지 인증 코드에는 Poly1305를 채택하고 있다.

3. 2. 메시징 기능

톡스 클라이언트는 다양한 보안 및 익명화된 통신 기능을 지원하는 것을 목표로 한다.[25] 모든 클라이언트는 메시징을 지원하며, 그룹 메시징, 음성 및 영상 통화, 음성 및 화상 회의, 입력 표시기, 메시지 읽음 확인, 파일 공유, 프로필 암호화, 데스크톱 스트리밍과 같은 추가 기능은 모바일 및 데스크톱 클라이언트에서 다양한 수준으로 지원된다. 핵심 프로토콜에서 지원하는 한, 모든 클라이언트에서 추가 기능을 구현할 수 있다. 핵심 네트워킹 시스템과 관련이 없는 기능은 클라이언트에 따라 다르다. 클라이언트 개발자는 클라이언트 간 호환성을 유지하고 최고의 보안 관행을 준수하기 위해 톡스 클라이언트 표준을 준수하는 것이 적극 권장된다.[25]

3. 3. 사용 편의성

톡스는 XMPP 또는 매트릭스와 같은 중앙 서버가 없다는 점 때문에, 현재로서는 메시지를 보내고 받으려면 채팅의 양쪽 당사자가 모두 온라인 상태여야 한다는 단점이 있다.[26] 톡스 지원 메신저는 이 문제를 각기 다른 방식으로 처리하는데, 일부는 상대방이 연결을 끊으면 사용자가 메시지를 보내지 못하게 하는 반면, 다른 일부는 메시지가 실제로 발신자의 휴대폰에 저장되어 수신자가 네트워크에 다시 연결될 때 전달될 때 전송된 것으로 표시한다.[26]

4. 아키텍처

4. 1. 코어

톡스 코어는 프로토콜과 API를 확립하기 위한 라이브러리이다.[37] 사용자에게 보이는 프론트엔드인 클라이언트는 코어 위에 구축되며, 코어를 이용하여 누구나 클라이언트를 만들 수 있다. 주요 개발자인 ''irungentoo''가 작성한 코어 설계 관련 기술 문서는 MIT 라이선스로 공개되어 자유롭게 이용 가능하다.[37]

4. 2. 프로토콜

톡스의 핵심은 톡스 프로토콜의 구현이다. 이 프로토콜은 OSI 참조 모델의 응용 계층의 한 예시이며, 아마도 표현 계층이기도 하다. Tox 프로젝트 외에 다른 곳에서 만들어진 톡스 프로토콜의 구현도 존재한다.

톡스 프로토콜은 음성 스트리밍에 Opus를, 영상 스트리밍에는 VP8을 사용한다.

4. 3. 클라이언트

톡스 클라이언트는 톡스 코어 라이브러리를 사용하여 다른 톡스 사용자와 통신하는 애플리케이션이다.[41] 다양한 운영체제를 지원하는 여러 클라이언트가 존재한다.

이름운영 체제프로그래밍 언어공식 웹사이트/저장소
AntidoteiOS스위프트[https://antidote.im/ https://antidote.im/]
Antox안드로이드스칼라[https://github.com/Antox/Antox https://github.com/Antox/Antox]
CyanideSailfish OSC++, QML[https://github.com/krobelus/cyanide https://github.com/krobelus/cyanide]
gTox유닉스 계열, 윈도우C++ (GTK+ 3)[https://github.com/KoKuToru/gTox https://github.com/KoKuToru/gTox]
qTox유닉스 계열, 윈도우C++ (Qt)[https://qtox.github.io/ https://qtox.github.io/]
Toxic유닉스 계열C 언어 (ncurses)[https://github.com/Jfreegman/toxic https://github.com/Jfreegman/toxic]
Toxy윈도우C# (WPF)[https://github.com/alexbakker/Toxy https://github.com/alexbakker/Toxy]
Toxygen유닉스 계열, 윈도우파이썬 (PySide)[https://github.com/toxygen-project/toxygen https://github.com/toxygen-project/toxygen]
TRIfA안드로이드자바, C 언어[https://github.com/zoff99/ToxAndroidRefImpl https://github.com/zoff99/ToxAndroidRefImpl]
µTox유닉스 계열, 윈도우C 언어[https://utox.io/ https://utox.io/]
xWinTox유닉스 계열Objective-C[https://github.com/JX7P/XwinTox https://github.com/JX7P/XwinTox]
Isotoxin윈도우C++[https://github.com/isotoxin/isotoxin https://github.com/isotoxin/isotoxin]
ratox유닉스 계열C 언어[https://ratox.2f30.org/ https://ratox.2f30.org/]
WebTox웹 기반HTML5 (클라이언트), Go (서버)[https://github.com/codedust/WebTox https://github.com/codedust/WebTox]



Pidgin과 미란다 NG에도 톡스 프로토콜용 플러그인이 존재한다.[42][43]

5. 반응

톡스는 초기 개념 단계에서 상당한 홍보 효과를 거두며, 전 세계 온라인 기술 뉴스 사이트들의 주목을 받았다.[27][28][29][30][45][46][47][48] 2013년 8월 15일, 톡스는 GitHub의 인기 트렌드 목록에서 5위를 기록했다.[31][49] 메타데이터 유출에 대한 우려가 제기되었고, 개발자들은 친구 찾기 과정에 양파 라우팅을 구현하여 대응했다.[32][50] 톡스는 2014년과 2015년에 구글 코드 서머의 멘토링 기관으로 선정되었다.[33][34][51][52]

참조

[1] 웹사이트 Release v0.2.19 · TokTok/c-toxcore https://github.com/T[...] TokTok Project 2024-03-28
[2] 웹사이트 Secure Messaging for Everyone https://tox.chat 2015-08-06
[3] 웹사이트 Daily reminder that Skype reads the URLs you send, your browser profile, sends encrypted data to Microsoft data centers and gives your conversations to the NSA. https://desuarchive.[...] 2013-06-23
[4] 웹사이트 Skype Provided Backdoor Access to the NSA Before Microsoft Takeover (NYT) https://news.softped[...] 2013-06-20
[5] 웹사이트 Leaked Documents Show the NSA Had Full Access to Skype Chats https://news.softped[...] 2014-12-31
[6] 웹사이트 Initial commit https://github.com/i[...] GitHub 2014-02-18
[7] 웹사이트 Binaries - Tox http://wiki.tox.im:8[...] 2013-08-23
[8] 웹사이트 Binaries - Tox http://wiki.tox.im:8[...] 2013-10-04
[9] 웹사이트 Binaries - Tox https://wiki.tox.im/[...] 2014-08-09
[10] 웹사이트 Tox Foundation - BusinessesCalifornia http://www.businesse[...]
[11] 웹사이트 Current situation of Tox · Issue #1379 · irungentoo/toxcore https://github.com/i[...] 2023-05-20
[12] 웹사이트 Current situation of Tox · Issue #1379 · irungentoo/toxcore https://github.com/i[...] 2023-05-20
[13] 웹사이트 Current situation of Tox · Issue #1379 · irungentoo/toxcore https://github.com/i[...] 2023-05-20
[14] 웹사이트 Current Situation – Tox Blog https://blog.tox.cha[...] 2015-07-11
[15] 웹사이트 A split within the Tox project https://lwn.net/Arti[...] Nathan Willis 2015-07-15
[16] 웹사이트 Commits · irungentoo/toxcore https://github.com/i[...] 2023-05-18
[17] 웹사이트 Fix memory leak when closing TCP connection. · irungentoo/toxcore@bf69b54 https://github.com/i[...] 2023-05-20
[18] 웹사이트 Commits · TokTok/c-toxcore https://github.com/T[...] 2023-05-18
[19] 웹사이트 The TokTok Project - Home https://toktok.ltd/ 2023-05-18
[20] 웹사이트 The TokTok Project - Mission https://toktok.ltd/m[...] 2023-05-18
[21] 간행물 Tox https://github.com/t[...] tox-rs 2023-05-08
[22] 웹사이트 Tox Handshake Vulnerable to KCI · Issue #426 · TokTok/c-toxcore https://github.com/T[...] 2023-05-20
[23] 간행물 TokTok/c-toxcore https://github.com/T[...] TokTok Project 2023-05-18
[24] 웹사이트 Redesign of Tox's Cryptographic Handshake – Tox Blog https://blog.tox.cha[...] 2023-03-02
[25] 웹사이트 Tox Client Standard https://www.gitbook.[...] 2015-11-07
[26] 웹사이트 users:troubleshooting - Tox Wiki https://wiki.tox.cha[...] 2019-04-26
[27] 웹사이트 Tox: A Replacement For Skype And Your Privacy? http://siliconangle.[...] 2013-08-05
[28] 웹사이트 Skype-Alternative Freier und sicherer Videochat mit Tox http://www.golem.de/[...] 2013-07-30
[29] 웹사이트 Проект Tox развивает свободную альтернативу Skype http://www.opennet.r[...] 2013-07-30
[30] 웹사이트 Skype-Alternative Tox zum Ausprobieren http://www.heise.de/[...] 2013-08-02
[31] 웹사이트 GitHub's new 'Trending' Feature Lets You See The Future http://readwrite.com[...] 2013-08-15
[32] 웹사이트 Prevent_Tracking.txt https://github.com/i[...] 2014-02-20
[33] 웹사이트 Project Tox https://www.google-m[...] 2015-03-07
[34] 웹사이트 Project Tox https://www.google-m[...] 2015-03-07
[35] 웹사이트 Initial commit https://github.com/i[...] GitHub 2019-01-13
[36] 웹사이트 packages https://build.tox.ch[...] Jenkins 2019-01-13
[37] 웹사이트 Tox Core Documentation https://github.com/T[...] GitHub 2019-01-13
[38] 웹사이트 Xot https://github.com/m[...] GitHub 2019-01-13
[39] 웹사이트 What codecs does Toxcore use for audio and video? https://tox.chat/faq[...] Tox 2019-01-13
[40] 웹사이트 Which encryption algorithms does Toxcore employ? https://tox.chat/faq[...] Tox 2019-01-13
[41] 웹사이트 Tox Clients https://tox.chat/cli[...] Tox 2019-01-13
[42] 웹사이트 Tox Protocol Plugin For Pidgin / libpurple https://github.com/j[...] GitHub 2019-01-13
[43] 웹사이트 Tox protocol https://wiki.miranda[...] Miranda NG 2019-01-13
[44] 웹사이트 A split within the Tox project https://lwn.net/Arti[...] LWN.net 2019-01-13
[45] 웹사이트 Tox: A Replacement for Skype and Your Privacy? https://siliconangle[...] SiliconANGLE 2019-01-13
[46] 웹사이트 Freier und sicherer Videochat mit Tox https://www.golem.de[...] Golem.de 2019-01-13
[47] 웹사이트 Проект Tox развивает свободную альтернативу Skype https://www.opennet.[...] opennet.ru 2019-01-13
[48] 웹사이트 Skype-Alternative Tox zum Ausprobieren https://www.heise.de[...] heise online 2019-01-13
[49] 웹사이트 GitHub’s New ‘Trending’ Feature Lets You See The Future https://readwrite.co[...] ReadWrite 2019-01-13
[50] 웹사이트 Prevent_Tracking.txt https://github.com/i[...] GitHub 2019-01-13
[51] 웹사이트 Google Summer of Code 2014 Organization Project Tox https://www.google-m[...] Google 2019-01-13
[52] 웹사이트 Google Summer of Code 2015 Organization Tox https://www.google-m[...] Google 2019-01-13
[53] 웹인용 GitHub - TokTok/c-toxcore: The future of online communications. https://github.com/T[...] TokTok Project 2022-03-05
[54] 웹인용 Secure Messaging for Everyone https://tox.chat 2015-08-06



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com