ãã©ãã£ãã¯ãããŒãã«ãªãŒã¯ããã®ãé²ãã«ã¯ã©ãããã°ããã§ããïŒ
ããŒãã¯ãã¯ã©ã€ã¢ã³ãããäºããèŠã€ããã®ãå©ããããã«ã®ã¿äœ¿çšããå¿
èŠããããŸãã ããŒã¿é
ä¿¡çšã§ã¯ãããŸããã
ããã¯MITMã®ããã«èŠããŸãã ããã¯ãSkypeãšMicrosoftãµãŒããŒãããåªããŠããããã§ã¯ãããŸããã
ããªãã¯ééã£ãŠããŸãã DHTããŒãã¹ãã©ããããŒãã¯ãDHTãžã®åå ã容æã«ããããã«ååšããŸãã ããã«èª¬æãå¿ èŠãªå Žåã¯ãhttpsïŒ //en.wikipedia.org/wiki/Distributed_hash_tableã®èšäºãåç §ããŠãã ããã ãŸãã¯ãIRCãFreenodeã®#toxãã£ã³ãã«ã«åå ããŠãã§ããéã説æããããã«åªããŸãã
toxããã¬ã³ãæ¥ç¶ã«TCPã䜿çšããŠããéããã©ãã£ãã¯ã¯TCPãªã¬ãŒãšããŠæ©èœããããŒãã¹ãã©ããããŒããééããå¯èœæ§ããããŸãã TURNã«äŒŒãŠããŸãã ãã©ãã£ãã¯ã¯äŸç¶ãšããŠãšã³ãããŒãšã³ãã§æå·åãããŠãããããã¡ãã»ãŒãžã®æ©å¯æ§ãšä¿¡é Œæ§ãæãªãããããšã¯ãããŸããã ãã®TCPãªã¬ãŒã¯ããããããã©ãã£ãã¯åæã§èŠããã®ã§ãã ããã«ã€ããŠã¯ã toxãããã³ã«ä»æ§ã§è©³ãã説æãããŠããŸãã
é³å£°ãã©ãã£ãã¯ã§ãã æå·åãããŠããããµãŒãããŒãã£ã¯ããã埩å·åã§ããŸããããå°æ¥çã«äžå¯èœã«ãªãããã§ã¯ãããŸããã
çŽæ¥IPv4/IPv6ã¢ãã¬ã¹ãæã£ãŠããŸãã ããŒã¿ãããŒãã«éä¿¡ããå¿
èŠãããã®ã¯ãªãã§ããïŒ
ããªãã¯èšã-ãDHTã®åå ã容æã«ããããã«DHTããŒãã¹ãã©ããããŒããååšããããããããããã¯çå®ã§ã¯ãããŸããã æ·»ä»ã®ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ããã©ãã£ãã¯ã¯çŽæ¥ç§ã«ã§ã¯ãªããããŒããééããŸãã
ãToxã¯ã誰ãèããŠããªãåéã家æãšããªããã€ãªã䜿ãããããœãããŠã§ã¢ã§ãã ã-ããã¯åã§ããïŒ ãã©ãã£ãã¯ã¯æå·åãããŠããŸãã ããããé ä¿¡ã«ããŒãã䜿çšããŠããŸããïŒ èª°ããã®ããŒããç¶æããã®ãããããŸããã 1ã€ä»¥äžã®ããŒããfalseã®å Žåã¯ã©ããªããŸããïŒ
ãã®ç¹ãã©ã®ããã«ééã£ãŠãããšæããããç解ããŠããã®ã§ããã®ãã¬ãŒã³ããŒã·ã§ã³ãæ¹åããããã«ããã¥ã¡ã³ãã®åé¡ãæåºããŸããã ããªãã®èãã説æããŠãããŠããããšãã
ããªãã®ç¹å®ã®æžå¿µãç°¡åã«èª¬æããããã«ãèšãæããŸãã 誀解ããå Žåã¯ãç¥ãããã ããã
QïŒ _èªåã®ã³ã³ãã¥ãŒã¿ãŒããã®ããŒã¿ãã±ãããå人ã®ã³ã³ãã¥ãŒã¿ãŒã«çŽæ¥é ä¿¡ãããªãã®ã«ããµãŒãããŒãã£ã®ã³ã³ãã¥ãŒã¿ãŒãä»ããŠäžç¶ãããããšãããïŒãŸãã¯ãããã¯ãŒã¯ã®ç¶æ ã«ãã£ãŠã¯åžžã«ïŒãšããäºå®ãå¿é ã§ãã_
AïŒãŸããããŒã«ã«Wi-Fiã䜿çšããŠãããšä»®å®ããŠãèªåã®ã³ã³ãã¥ãŒã¿ãŒããå人ã®ã³ã³ãã¥ãŒã¿ãŒã«çŽæ¥éä¿¡ããããã±ããã«ã€ããŠèããŠã¿ãŸãã
traceroute $your_friend_ip
ãè©ŠããŠãã©ãã«è¡ããã確èªããŸãïŒãåã«ãŒã¿ãŒã¯ãã€ãŒãµããããã¬ãŒã ãIPãã±ãããUDPãã±ãããããã³ãã®å
容ã«ç¡æã§ã¢ã¯ã»ã¹ã§ããŸãã å€ãã®ã¢ã¯ã»ã¹ãã€ã³ããããã4çªç®ãšåŒã³ãŸããããã芧ã®ãšãããããªãããããªãã®å人ãžã®ãçŽæ¥ãéä¿¡äžã«ãä»»æã®äººããã±ãããæ€æ»ã§ããå€ãã®ãã€ã³ãããããŸãã ãšã³ãããŒãšã³ãæå·åãšã¯ãããªããšããªãã®å人ã®éã§ãããªããäŒããããšããå®éã®ã³ã³ãã³ããã ããèªãããšãã§ããªãããšãæå³ããŸãã 圌ãã¯åžžã«æå·åãããããŒã¿ããèŠãããšãã§ããŸããã
ããŠãéäžã«TCPãªã¬ãŒãè¿œå ãããšãã«ãŒããé·ããªãã ãã§ãïŒçè«çã«ã¯çããªãå¯èœæ§ããããŸãããããã¯ãªããŸããïŒã ãªã¬ãŒãå®è¡ããŠãã人ã¯èª°ã§ããããªããšããªãã®å人ã®éã®ä»ã®äººãšåãããã«ããã±ãããèªãããšãã§ããŸãã Toxæå·åãããã³ã«ã¯ãéä¿¡ãå®å šã§ããããšãä¿èšŒããŸãã
ä»ãç§ã¯2çªç®ã®æžå¿µãèŠãŠããŸãïŒ
QïŒ _ç§ã®ããŒã¿ãäžç¶ããŠããããŒãã®1ã€ãæªã§ããå Žåã¯ã©ããªããŸããïŒ_
AïŒ Toxã¯ãçŽæ¥UDPæ¥ç¶ãäžå¯èœãªå ŽåïŒNATããã¡ã€ã¢ãŠã©ãŒã«ãªã©ïŒã«éä¿¡ã«äœ¿çšã§ããTCPãªã¬ãŒã®æ°ãéžæããŸãã æªã®ãªã¬ãŒã¯æªãè¡ãããã«éåžžã«å°ãªãããšãããããšãã§ããŸãïŒ
åºæ¬çã«ã¯ããã ãã§ãã ãããªãå Žåã§ããéªæªãªãªã¬ãŒã¯ããªãã®ããŒã¿ãèªã¿åãããšãã§ããŸããã äžç¶ããªãããšãéžæããããšããã§ããããã¹ãŠã®ããŒãã¹ãã©ããããŒããæªã§ããå Žåã«ã®ã¿ãéä¿¡ã§ããŸããã ããã¯ããªãåä»ã§ãç§ãã¡ã¯ããã«ã€ããŠäžæºãæ±ããŸãããã©ã®æç¹ã§ã誰ã®æ å ±ãå±éºã«ãããããããšã¯ãããŸããã
ãããããã€ãã®ããšãæããã«ããããšãé¡ã£ãŠããŸãã ç§ã¯ãã®è¿ä¿¡ãæ ¡æ£ããŠããŸããããå°æ¥ã®åèã®ããã«Webãµã€ãã«é©åã«è¡šç€ºãããŠããããšã確èªããŸãã ä»ã«ãäžæãªç¹ãããããŸãããããæ°è»œã«ãåãåãããã ããã ãããæã£ãŠããŠãããŠããããšãã
ç§ã¯ããªãã®ã¡ãã»ãŒãžãããäžåºŠèªã¿ãŸããããããŠç§ãããäžã€ã®æžå¿µãéããããšãçºèŠããŸããïŒ
QïŒããŒã¿ã¯çŸåšæå·åãããŠããŸãããå°æ¥åŸ©å·åãããªãããã«ããã«ã¯ã©ãããã°ããã§ããïŒ
AïŒ Toxãããã³ã«ã¯ããšãã§ã¡ã©ã«ããŒã䜿çšããŠå®å
šè»¢éç§å¯ãå®è£
ããŸãã ã€ãŸãããããã®ããŒã®1ã€ãå±éºã«ãããããå Žåãããã€ãã®ã¡ãã»ãŒãžã埩å·åã§ããŸãããéä¿¡å±¥æŽå
šäœã埩å·åããããšã¯ã§ããŸããã ãã®æã®ãããã€ãã®ã¡ãã»ãŒãžãã®éšåã¯ãå°æ¥ã1ã€ã®ã¡ãã»ãŒãžãã«çž®å°ãããŸãã é·æçãªç§å¯éµãå±éºã«ãããããå Žåãéå»ã®éä¿¡ã埩å·åããããšã¯ã§ããŸããã
䜿çšããæå·ããªããã£ããå£ããŠãããšã倱ãããŸãã ããã¯ããããã©ã®ããã«å£ããŠãããã«äŸåããŸãããããã¯å¯èœãªææªã®ã·ããªãªã§ãïŒ
ãããã®ã·ããªãªãè¿ãå°æ¥ããŸãã¯ããããæ°žä¹ ã«å®çŸããå¯èœæ§ã¯ã»ãšãã©ãããŸããã æå·åã³ãã¥ããã£ã®çŸåšã®ç解ã§ã¯ãéåã³ã³ãã¥ãŒãã£ã³ã°ã ãã2çªç®ã®ã·ããªãªãå®çŸã§ããŸãã æåã®ã·ããªãªã¯äžå¯èœã§ãããšèããããŠããŸãã
ãšã«ãããããªããçŽæ¥IPv4ã¢ãã¬ã¹ãæã£ãŠãããšèšã£ãŠããããšã«ãæ°ã¥ããŸããã ããã¯äœãæå³ããã®ã§ããããïŒ ã³ã³ãã¥ãŒã¿ã«ãããªãã¯IPv4ã¢ãã¬ã¹ãå²ãåœãŠãããŠããŠãããŒã33445ãéããŠããå ŽåãToxã¯éåžžã«è¿ éã«çŽæ¥æ¥ç¶ã確ç«ããå¿ èŠããããŸãã ããã§ãªãå Žåãããã¯ãã°ã§ããã代ããã«TCPã䜿çšããããšãéžæããçç±ãèŠã€ããããã«ååããå¿ èŠããããŸãã
ãã®èª¬æãã©ããããããšãã ä»ãç§ã¯ããå°ãç解ããŠããŸãã
çŽæ¥IPv4ã¢ãã¬ã¹ã«ã€ããŠã¯ããããããŸãã...WireGuardVPNã䜿çšããŠããŸãã çŽæ¥IPv4ããã³IPv6ã¢ãã¬ã¹ãæã€ä»®æ³ãµãŒããŒã«ã€ã³ã¹ããŒã«ãããWireGuardã ãã¹ãŠã®ãã©ãã£ãã¯ã¯åå空éã«ã©ãããããŸãã
ã©ããããããããã¯ãŒã¯æ
å ±ïŒ https ïŒ//gist.github.com/DebugReport/1268e15c3bd1c99b56929d645d99392b
ééãããããããªããã
IPv4ã¯çŽæ¥ã§ã¯ãªããããããŸããããIPv6ã«ã€ããŠã¯ã©ãã§ããããã ä»ã®ã¯ã©ã€ã¢ã³ãã«ãIPv6ãããå ŽåãçŽæ¥æ¥ç¶ã䜿çšã§ããŸããïŒ
ã¯ããäž¡æ¹ã®åœäºè ãIPv6ã䜿çšããŠããŠããã¡ã€ã¢ãŠã©ãŒã«æ§æãããŒã33445ïŒãŸãã¯ãã®è¿ãã®ä»ã®ããŒãã33445ãš33545ã®éã®ããŒãïŒããããã¯ããªãå Žåã¯ãæ©èœããã¯ãã§ãã ããªãã®åéã¯åãVPNã«ããŸããïŒ
ãããã
ããŒã...質åã åžžã«ããŒãã䜿çšããå¿
èŠããããŸããïŒ ãŸãã¯ãç§ãã¡ã®1人ãçŽæ¥IPãæã£ãŠããªãå Žåã®ã¿ïŒIPv4ã®ã¿ïŒïŒïŒ
IPv6ïŒç§ïŒ<-> IPv6ïŒåéïŒã®å ŽåãããŒãã¯å¿
èŠã§ããïŒ ã¯ãã®å Žå-ãªãã§ããïŒ
ïŒãããã®è³ªåããã¹ãŠããã¥ã¡ã³ãã§åçããããŸã§ããã®åé¡ãéãããŸãŸã«ããŸãïŒ
äžæ¹ããããªãã¯IPãæã£ãŠããå Žåãããäžæ¹ã¯ããäžæ¹ã®IPãšããŒãã䜿çšããŠããŒãã¹ãã©ããã§ããŸãã ããã«ã¯ã¯ã©ã€ã¢ã³ãã®ãµããŒããå¿ èŠã§ããçŸåšãã©ã®ã¯ã©ã€ã¢ã³ããæã£ãŠããªããšæããŸãã
tox_self_get_dht_id
ïŒãšãã®ããŒãïŒ tox_self_get_udp_port
ïŒãéããŸãã(key, ip, port)
ã¿ãã«ã䜿çšããŠããŒãã¹ãã©ããããå¿
èŠããããŸãããã®åŸãå人çãª2人ã®Toxãããã¯ãŒã¯ãã§ããŸãã ãããã£ãŠãçè«çã«ã¯ä»ã®ããŒãã¯å¿ èŠãããŸããã ãããããããã¯ç©äºã容æã«ããŸãã
ãããªãã¯IPãšãªãŒãã³ããŒããæã£ãŠããå Žåã¯ãããŒãã¹ãã©ããããŒãã«æ¥ç¶ãããšçŽæ¥æ¥ç¶ã確ç«ã§ããã¯ãã§ãã DHTããŒãã¹ãã©ããããŒãã¯ãæ¥ç¶ã§ãããã©ãããšã¯ã»ãšãã©é¢ä¿ããããŸããã ãããªãã¯IPãšãªãŒãã³ããŒããæã£ãŠããã®ã1人ã ãã®å Žåã§ããçŽæ¥æ¥ç¶ãå¯èœã§ããå¿ èŠããããŸãã ãã1ã€ã¯ããã«æ¥ç¶ããããŒã«ã«ã«ãŒã¿ãŒã«ã«ãŒããäœæããã¯ã©ã€ã¢ã³ãã«äžæçãªã©ã³ãã ãããªãã¯ããŒããæäŸããŸãã
泚ïŒC-Toxcoreã§ãåãåäœã«æ°ã¥ããŸããã ããŒãã£ã®1ã€ã¯ãããªãã¯IPã¢ãã¬ã¹ããããã¡ã€ã¢ãŠã©ãŒã«ããªãVPSäžã«ããããã1ã€ã¯NATã®èåŸã«ãããŸãããToxããŒãã転éãããŠãããããçžäºã«å°éå¯èœã§ããå¿ èŠããããŸãã ãã©ãã£ãã¯ã¯åŒãç¶ãTCPçµç±ã§ã«ãŒãã£ã³ã°ãããŠããŸããã
ããã¯ã»ãã¥ãªãã£ã®åé¡ã§ã¯ãããŸããããP2Pãããã¯ãŒã¯ããã¹ãŠã®ãã©ãã£ãã¯ããªã¬ãŒçµç±ã§ãªã¬ãŒããŠããå Žåã¯ç¢ºãã«ã¹ã±ãŒã©ããªãã£ã®åé¡ã§ãã
æãåèã«ãªãã³ã¡ã³ã
ãã®ç¹ãã©ã®ããã«ééã£ãŠãããšæããããç解ããŠããã®ã§ããã®ãã¬ãŒã³ããŒã·ã§ã³ãæ¹åããããã«ããã¥ã¡ã³ãã®åé¡ãæåºããŸããã ããªãã®èãã説æããŠãããŠããããšãã
ããªãã®ç¹å®ã®æžå¿µãç°¡åã«èª¬æããããã«ãèšãæããŸãã 誀解ããå Žåã¯ãç¥ãããã ããã
QïŒ _èªåã®ã³ã³ãã¥ãŒã¿ãŒããã®ããŒã¿ãã±ãããå人ã®ã³ã³ãã¥ãŒã¿ãŒã«çŽæ¥é ä¿¡ãããªãã®ã«ããµãŒãããŒãã£ã®ã³ã³ãã¥ãŒã¿ãŒãä»ããŠäžç¶ãããããšãããïŒãŸãã¯ãããã¯ãŒã¯ã®ç¶æ ã«ãã£ãŠã¯åžžã«ïŒãšããäºå®ãå¿é ã§ãã_
AïŒãŸããããŒã«ã«Wi-Fiã䜿çšããŠãããšä»®å®ããŠãèªåã®ã³ã³ãã¥ãŒã¿ãŒããå人ã®ã³ã³ãã¥ãŒã¿ãŒã«çŽæ¥éä¿¡ããããã±ããã«ã€ããŠèããŠã¿ãŸãã
traceroute $your_friend_ip
ãè©ŠããŠãã©ãã«è¡ããã確èªããŸãïŒãåã«ãŒã¿ãŒã¯ãã€ãŒãµããããã¬ãŒã ãIPãã±ãããUDPãã±ãããããã³ãã®å 容ã«ç¡æã§ã¢ã¯ã»ã¹ã§ããŸãã å€ãã®ã¢ã¯ã»ã¹ãã€ã³ããããã4çªç®ãšåŒã³ãŸããããã芧ã®ãšãããããªãããããªãã®å人ãžã®ãçŽæ¥ãéä¿¡äžã«ãä»»æã®äººããã±ãããæ€æ»ã§ããå€ãã®ãã€ã³ãããããŸãã ãšã³ãããŒãšã³ãæå·åãšã¯ãããªããšããªãã®å人ã®éã§ãããªããäŒããããšããå®éã®ã³ã³ãã³ããã ããèªãããšãã§ããªãããšãæå³ããŸãã 圌ãã¯åžžã«æå·åãããããŒã¿ããèŠãããšãã§ããŸããã
ããŠãéäžã«TCPãªã¬ãŒãè¿œå ãããšãã«ãŒããé·ããªãã ãã§ãïŒçè«çã«ã¯çããªãå¯èœæ§ããããŸãããããã¯ãªããŸããïŒã ãªã¬ãŒãå®è¡ããŠãã人ã¯èª°ã§ããããªããšããªãã®å人ã®éã®ä»ã®äººãšåãããã«ããã±ãããèªãããšãã§ããŸãã Toxæå·åãããã³ã«ã¯ãéä¿¡ãå®å šã§ããããšãä¿èšŒããŸãã
ä»ãç§ã¯2çªç®ã®æžå¿µãèŠãŠããŸãïŒ
QïŒ _ç§ã®ããŒã¿ãäžç¶ããŠããããŒãã®1ã€ãæªã§ããå Žåã¯ã©ããªããŸããïŒ_
AïŒ Toxã¯ãçŽæ¥UDPæ¥ç¶ãäžå¯èœãªå ŽåïŒNATããã¡ã€ã¢ãŠã©ãŒã«ãªã©ïŒã«éä¿¡ã«äœ¿çšã§ããTCPãªã¬ãŒã®æ°ãéžæããŸãã æªã®ãªã¬ãŒã¯æªãè¡ãããã«éåžžã«å°ãªãããšãããããšãã§ããŸãïŒ
åºæ¬çã«ã¯ããã ãã§ãã ãããªãå Žåã§ããéªæªãªãªã¬ãŒã¯ããªãã®ããŒã¿ãèªã¿åãããšãã§ããŸããã äžç¶ããªãããšãéžæããããšããã§ããããã¹ãŠã®ããŒãã¹ãã©ããããŒããæªã§ããå Žåã«ã®ã¿ãéä¿¡ã§ããŸããã ããã¯ããªãåä»ã§ãç§ãã¡ã¯ããã«ã€ããŠäžæºãæ±ããŸãããã©ã®æç¹ã§ã誰ã®æ å ±ãå±éºã«ãããããããšã¯ãããŸããã
ãããããã€ãã®ããšãæããã«ããããšãé¡ã£ãŠããŸãã ç§ã¯ãã®è¿ä¿¡ãæ ¡æ£ããŠããŸããããå°æ¥ã®åèã®ããã«Webãµã€ãã«é©åã«è¡šç€ºãããŠããããšã確èªããŸãã ä»ã«ãäžæãªç¹ãããããŸãããããæ°è»œã«ãåãåãããã ããã ãããæã£ãŠããŠãããŠããããšãã