C-toxcore: 暗号化ずp2pネットワヌキングに関連する質問ず回答を文曞化する

䜜成日 2017幎01月05日  Â·  10コメント  Â·  ゜ヌス: TokTok/c-toxcore

トラフィックがノヌドにリヌクするのを防ぐにはどうすればよいですか
ノヌドは、クラむアントがお互いを芋぀けるのを助けるためにのみ䜿甚する必芁がありたす。 デヌタ配信甚ではありたせん。
それはMITMのように芋えたす。 これは、SkypeずMicrosoftサヌバヌよりも優れおいるわけではありたせん。

最も参考になるコメント

この点がどのように間違っおいるず感じるかを理解しおいるので、そのプレれンテヌションを改善するためにドキュメントの問題を提出したした。 あなたの考えを説明しおくれおありがずう。

あなたの特定の懞念を簡単に説明するために、蚀い換えたす。 誀解した堎合はお知らせください。

Q _自分のコンピュヌタヌからのデヌタパケットが友人のコンピュヌタヌに盎接配信されないのに、サヌドパヌティのコンピュヌタヌを介しお䞭継されるこずがあるたたはネットワヌクの状態によっおは垞にずいう事実が心配です。_

Aたず、ロヌカルWi-Fiを䜿甚しおいるず仮定しお、自分のコンピュヌタヌから友人のコンピュヌタヌに盎接送信されるパケットに぀いお考えおみたす。

  • コンピュヌタヌは暗号化されたToxパケットを䜜成し暗号化の詳现を参照、送信元/宛先ポヌトランダム/ 33445を含むUDPパケットにラップし、次に送信元/宛先IPアドレスあなたずあなたの友人を含むIPパケットにラップしたす。 、次に送信元/宛先MACアドレスナヌザヌずアクセスポむントを含むワむダレスフレヌム。
  • このワむダレスフレヌムは、AES暗号化チャネルを介しお送信されたすWPA2を想定。
  • ワむダレスアクセスポむントずネットワヌクの他のすべおのナヌザヌがそれを受信したす。 他のナヌザヌは通垞、パケットを無芖したすが、無芖する必芁はありたせん。 自分甚ではないパケットを読み取るこずをスニッフィングず呌びたす。 これは、他の人がパケットを読み取るこずができる最初のポむントです。
  • ワむダレスアクセスポむントは、䜕らかの手段音響結合、ISDN、ADSL、ケヌブル、衛星、ファむバヌなどを介しおむンタヌネットサヌビスプロバむダヌのルヌタヌぞの接続を確立するWANむンタヌネットルヌタヌに接続されおいたす。 この接続は暗号化できたすが䞀郚の衛星、通垞は暗号化されたせん。 この時点で、パケットを送信したWANルヌタヌは、自身のMACアドレスず接続先の次のルヌタヌISPルヌタヌのMACアドレスを含むむヌサネットフレヌムを䜜成したす。 転送䞭、IPアドレスずMACアドレスは暗号化されおいない可胜性が高く、あなたずISPの間の光ファむバヌを盗聎しおいる人なら誰でも読み取るこずができたす。 これは、他の人がパケットを読み取るこずができる2番目のポむントです。
  • パケットがISPに到着するず、デヌタセンタヌのさたざたな内郚システムを通過したす。さたざたな時点で暗号化されおいるか、暗号化されおいない可胜性がありたす。 次に、ISPルヌタヌは、IPアドレスによっお決定された、パケットを送信する次のルヌタヌを決定したす。 これを行うために、受信したむヌサネットフレヌムをアンラップし、新しいフレヌムでラップしお、次のルヌタヌに送信したす。 ISPでの凊理䞭の任意の時点で、そのISPのデヌタセンタヌたたはシステム管理者がパケットにアクセスできたす。 3番目のアクセスポむント。
  • これで、パケットはルヌタヌからルヌタヌぞずホッピングしたす traceroute $your_friend_ipを詊しお、どこに行くかを確認したす。各ルヌタヌは、むヌサネットフレヌム、IPパケット、UDPパケット、およびその内容に無料でアクセスできたす。 倚くのアクセスポむント、それを4番目ず呌びたしょう。
  • 次に、友人が同じような状況にある可胜性がありたす。別の堎所にあるロヌカルWi-Fiです。 ここでも、ルヌタヌずワむダレスネットワヌクのメンバヌがパケットを読み取るこずができたす。 5番目のアクセスポむント。
  • 今だけ、぀いに、あなたのパケットはあなたの友人のコンピュヌタに到着したす。 ワむダレスフレヌムを受信し、それをアンラップしおIPパケットを怜玢し、アンラップしおUDPパケットを怜玢し、アンラップしおToxパケットを怜玢したす。これは、Toxプロトコルの実装によっお凊理されたす。 この凊理には、パケットの埩号化ずデコヌド、およびそれに基づいた動䜜が含たれ、通垞、友人のクラむアントがメッセヌゞを衚瀺したり、オヌディオやビデオを再生したり、その他のアプリケヌションレベルのアクティビティを実行したりしたす。

ご芧のずおり、あなたからあなたの友人ぞの「盎接」送信䞭に、任意の人がパケットを怜査できる倚くのポむントがありたす。 ゚ンドツヌ゚ンド暗号化ずは、あなたずあなたの友人の間で、あなたが䌝えようずした実際のコンテンツをだれも読むこずができないこずを意味したす。 圌らは垞に暗号化されたデヌタしか芋るこずができたせん。

さお、途䞭にTCPリレヌを远加するず、ルヌトが長くなるだけです理論的には短くなる可胜性がありたすが、そうはなりたせん。 リレヌを実行しおいる人は誰でも、あなたずあなたの友人の間の他の人ず同じように、パケットを読むこずができたす。 Tox暗号化プロトコルは、通信が安党であるこずを保蚌したす。

今、私は2番目の懞念も芋おいたす

Q _私のデヌタを䞭継しおいるノヌドの1぀が悪である堎合はどうなりたすか_
A Toxは、盎接UDP接続が䞍可胜な堎合NATやファむアりォヌルなどに通信に䜿甚できるTCPリレヌの数を遞択したす。 悪のリレヌは悪を行うために非垞に少ないこずをするこずができたす

  • パケットを送信しないこずを遞択できたす。 この堎合、Toxは別のリレヌを介しお再詊行したす。 すべおのブヌトストラップノヌドが悪である堎合にのみ、送信は倱敗したす。
  • 倉曎されたパケットを送信できたす。 メッセヌゞ認蚌コヌドのおかげで、デヌタの改ざんが怜出される可胜性がありたす。 送信者が゜フトりェアによっお怜出されない方法で改ざんを行うこずができた堎合、埩号化されたパケットはガベヌゞになり、アプリケヌション局Toxプロトコルデコヌダヌはそれを砎棄したす。 したがっお、これはパケットをたったく䞭継しないのず同じ効果がありたす。

基本的にはそれだけです。 いかなる堎合でも、邪悪なリレヌはあなたのデヌタを読み取るこずができたせん。 䞭継しないこずを遞択するこずしかできず、すべおのブヌトストラップノヌドが悪である堎合にのみ、通信できたせん。 これはかなり厄介で、私たちはそれに぀いお䞍満を抱きたすが、どの時点でも誰の情報も危険にさらされるこずはありたせん。


これがいく぀かのこずを明らかにするこずを願っおいたす。 私はこの返信を校正しおいたせんが、将来の参考のためにWebサむトに適切に衚瀺されおいるこずを確認したす。 他にご䞍明な点がございたしたら、お気軜にお問い合わせください。 これを持っおきおくれおありがずう。

党おのコメント10件

あなたは間違っおいたす。 DHTブヌトストラップノヌドは、DHTぞの参加を容易にするために存圚したす。 さらに説明が必芁な堎合は、https //en.wikipedia.org/wiki/Distributed_hash_tableの蚘事を参照しおください。 たたは、IRC、Freenodeの#toxチャンネルに参加しお、できる限り説明するように努めたす。

toxがフレンド接続にTCPを䜿甚しおいる間、トラフィックはTCPリレヌずしお機胜するブヌトストラップノヌドを通過する可胜性がありたす。 TURNに䌌おいたす。 トラフィックは䟝然ずしお゚ンドツヌ゚ンドで暗号化されおいるため、メッセヌゞの機密性ず信頌性が損なわれるこずはありたせん。 このTCPリレヌは、おそらくトラフィック分析で芋たものです。 これに぀いおは、 toxプロトコル仕様で詳しく説明されおいたす。

utox-inline_1

音声トラフィックです。 暗号化されおおり、サヌドパヌティはこれを埩号化できたせんが、将来的に䞍可胜になるわけではありたせん。

盎接IPv4/IPv6アドレスを持っおいたす。 デヌタをノヌドに送信する必芁があるのはなぜですか
あなたは蚀う-「DHTの参加を容易にするためにDHTブヌトストラップノヌドが存圚する。」しかし、それは真実ではありたせん。 添付のスクリヌンショットでは、トラフィックは盎接私にではなく、ノヌドを通過したす。

「Toxは、誰も聞いおいない友達や家族ずあなたを぀なぐ䜿いやすい゜フトりェアです。 」-それは嘘ですか トラフィックは暗号化されおいたす。 しかし、配信にノヌドを䜿甚しおいたすか 誰がこのノヌドを維持したのかわかりたせん。 1぀以䞊のノヌドがfalseの堎合はどうなりたすか

この点がどのように間違っおいるず感じるかを理解しおいるので、そのプレれンテヌションを改善するためにドキュメントの問題を提出したした。 あなたの考えを説明しおくれおありがずう。

あなたの特定の懞念を簡単に説明するために、蚀い換えたす。 誀解した堎合はお知らせください。

Q _自分のコンピュヌタヌからのデヌタパケットが友人のコンピュヌタヌに盎接配信されないのに、サヌドパヌティのコンピュヌタヌを介しお䞭継されるこずがあるたたはネットワヌクの状態によっおは垞にずいう事実が心配です。_

Aたず、ロヌカルWi-Fiを䜿甚しおいるず仮定しお、自分のコンピュヌタヌから友人のコンピュヌタヌに盎接送信されるパケットに぀いお考えおみたす。

  • コンピュヌタヌは暗号化されたToxパケットを䜜成し暗号化の詳现を参照、送信元/宛先ポヌトランダム/ 33445を含むUDPパケットにラップし、次に送信元/宛先IPアドレスあなたずあなたの友人を含むIPパケットにラップしたす。 、次に送信元/宛先MACアドレスナヌザヌずアクセスポむントを含むワむダレスフレヌム。
  • このワむダレスフレヌムは、AES暗号化チャネルを介しお送信されたすWPA2を想定。
  • ワむダレスアクセスポむントずネットワヌクの他のすべおのナヌザヌがそれを受信したす。 他のナヌザヌは通垞、パケットを無芖したすが、無芖する必芁はありたせん。 自分甚ではないパケットを読み取るこずをスニッフィングず呌びたす。 これは、他の人がパケットを読み取るこずができる最初のポむントです。
  • ワむダレスアクセスポむントは、䜕らかの手段音響結合、ISDN、ADSL、ケヌブル、衛星、ファむバヌなどを介しおむンタヌネットサヌビスプロバむダヌのルヌタヌぞの接続を確立するWANむンタヌネットルヌタヌに接続されおいたす。 この接続は暗号化できたすが䞀郚の衛星、通垞は暗号化されたせん。 この時点で、パケットを送信したWANルヌタヌは、自身のMACアドレスず接続先の次のルヌタヌISPルヌタヌのMACアドレスを含むむヌサネットフレヌムを䜜成したす。 転送䞭、IPアドレスずMACアドレスは暗号化されおいない可胜性が高く、あなたずISPの間の光ファむバヌを盗聎しおいる人なら誰でも読み取るこずができたす。 これは、他の人がパケットを読み取るこずができる2番目のポむントです。
  • パケットがISPに到着するず、デヌタセンタヌのさたざたな内郚システムを通過したす。さたざたな時点で暗号化されおいるか、暗号化されおいない可胜性がありたす。 次に、ISPルヌタヌは、IPアドレスによっお決定された、パケットを送信する次のルヌタヌを決定したす。 これを行うために、受信したむヌサネットフレヌムをアンラップし、新しいフレヌムでラップしお、次のルヌタヌに送信したす。 ISPでの凊理䞭の任意の時点で、そのISPのデヌタセンタヌたたはシステム管理者がパケットにアクセスできたす。 3番目のアクセスポむント。
  • これで、パケットはルヌタヌからルヌタヌぞずホッピングしたす traceroute $your_friend_ipを詊しお、どこに行くかを確認したす。各ルヌタヌは、むヌサネットフレヌム、IPパケット、UDPパケット、およびその内容に無料でアクセスできたす。 倚くのアクセスポむント、それを4番目ず呌びたしょう。
  • 次に、友人が同じような状況にある可胜性がありたす。別の堎所にあるロヌカルWi-Fiです。 ここでも、ルヌタヌずワむダレスネットワヌクのメンバヌがパケットを読み取るこずができたす。 5番目のアクセスポむント。
  • 今だけ、぀いに、あなたのパケットはあなたの友人のコンピュヌタに到着したす。 ワむダレスフレヌムを受信し、それをアンラップしおIPパケットを怜玢し、アンラップしおUDPパケットを怜玢し、アンラップしおToxパケットを怜玢したす。これは、Toxプロトコルの実装によっお凊理されたす。 この凊理には、パケットの埩号化ずデコヌド、およびそれに基づいた動䜜が含たれ、通垞、友人のクラむアントがメッセヌゞを衚瀺したり、オヌディオやビデオを再生したり、その他のアプリケヌションレベルのアクティビティを実行したりしたす。

ご芧のずおり、あなたからあなたの友人ぞの「盎接」送信䞭に、任意の人がパケットを怜査できる倚くのポむントがありたす。 ゚ンドツヌ゚ンド暗号化ずは、あなたずあなたの友人の間で、あなたが䌝えようずした実際のコンテンツをだれも読むこずができないこずを意味したす。 圌らは垞に暗号化されたデヌタしか芋るこずができたせん。

さお、途䞭にTCPリレヌを远加するず、ルヌトが長くなるだけです理論的には短くなる可胜性がありたすが、そうはなりたせん。 リレヌを実行しおいる人は誰でも、あなたずあなたの友人の間の他の人ず同じように、パケットを読むこずができたす。 Tox暗号化プロトコルは、通信が安党であるこずを保蚌したす。

今、私は2番目の懞念も芋おいたす

Q _私のデヌタを䞭継しおいるノヌドの1぀が悪である堎合はどうなりたすか_
A Toxは、盎接UDP接続が䞍可胜な堎合NATやファむアりォヌルなどに通信に䜿甚できるTCPリレヌの数を遞択したす。 悪のリレヌは悪を行うために非垞に少ないこずをするこずができたす

  • パケットを送信しないこずを遞択できたす。 この堎合、Toxは別のリレヌを介しお再詊行したす。 すべおのブヌトストラップノヌドが悪である堎合にのみ、送信は倱敗したす。
  • 倉曎されたパケットを送信できたす。 メッセヌゞ認蚌コヌドのおかげで、デヌタの改ざんが怜出される可胜性がありたす。 送信者が゜フトりェアによっお怜出されない方法で改ざんを行うこずができた堎合、埩号化されたパケットはガベヌゞになり、アプリケヌション局Toxプロトコルデコヌダヌはそれを砎棄したす。 したがっお、これはパケットをたったく䞭継しないのず同じ効果がありたす。

基本的にはそれだけです。 いかなる堎合でも、邪悪なリレヌはあなたのデヌタを読み取るこずができたせん。 䞭継しないこずを遞択するこずしかできず、すべおのブヌトストラップノヌドが悪である堎合にのみ、通信できたせん。 これはかなり厄介で、私たちはそれに぀いお䞍満を抱きたすが、どの時点でも誰の情報も危険にさらされるこずはありたせん。


これがいく぀かのこずを明らかにするこずを願っおいたす。 私はこの返信を校正しおいたせんが、将来の参考のためにWebサむトに適切に衚瀺されおいるこずを確認したす。 他にご䞍明な点がございたしたら、お気軜にお問い合わせください。 これを持っおきおくれおありがずう。

私はあなたのメッセヌゞをもう䞀床読みたした、そしお私がもう䞀぀の懞念を逃したこずを発芋したした

Qデヌタは珟圚暗号化されおいたすが、将来埩号化されないようにするにはどうすればよいですか
A Toxプロトコルは、゚フェメラルキヌを䜿甚しお完党転送秘密を実装したす。 ぀たり、これらのキヌの1぀が危険にさらされた堎合、いく぀かのメッセヌゞを埩号化できたすが、通信履歎党䜓を埩号化するこずはできたせん。 この文の「いく぀かのメッセヌゞ」の郚分は、将来「1぀のメッセヌゞ」に瞮小されたす。 長期的な秘密鍵が危険にさらされた堎合、過去の通信を埩号化するこずはできたせん。

䜿甚する暗号プリミティブが壊れおいるず、倱われたす。 それはそれらがどのように壊れおいるかに䟝存したす、これらは可胜な最悪のシナリオです

  • 暗号 salsa20 は、キヌがなくおも簡単に元に戻すこずができたす。 この堎合、過去のすべおの通信が危険にさらされたす。
  • 鍵亀換プリミティブ curve25519 は、公開鍵が䞎えられた堎合に秘密鍵を簡単に埩元できるように壊れおいたす。 この堎合、過去のすべおの通信も危険にさらされたす。

これらのシナリオが近い将来、たたはおそらく氞久に実珟する可胜性はほずんどありたせん。 暗号化コミュニティの珟圚の理解では、量子コンピュヌティングだけが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ずポヌトを䜿甚しおブヌトストラップできたす。 これにはクラむアントのサポヌトが必芁です。珟圚、どのクラむアントも持っおいないず思いたす。

  • 公開IPを䜿甚しおクラむアントからDHT公開鍵を取埗し、ポヌト tox_self_get_dht_id ずそのポヌト tox_self_get_udp_port を開きたす。
  • このキヌを他のキヌに送信したす電話たたはSkypeのメッセヌゞなどで口述したす。
  • もう1぀は、 (key, ip, port)タプルを䜿甚しおブヌトストラップする必芁がありたす。

この埌、個人的な2人のToxネットワヌクができたす。 したがっお、理論的には他のノヌドは必芁ありたせん。 しかし、それらは物事を容易にしたす。

パブリックIPずオヌプンポヌトを持っおいる堎合は、ブヌトストラップノヌドに接続するず盎接接続も確立できるはずです。 DHTブヌトストラップノヌドは、接続できるかどうかずはほずんど関係がありたせん。 パブリックIPずオヌプンポヌトを持っおいるのが1人だけの堎合でも、盎接接続が可胜である必芁がありたす。 もう1぀はそれに接続し、ロヌカルルヌタヌにルヌトを䜜成し、クラむアントに䞀時的なランダムパブリックポヌトを提䟛したす。

泚C-Toxcoreでも同じ動䜜に気づきたした。 パヌティの1぀はパブリックIPアドレスがありファむアりォヌルがないVPS䞊にあり、もう1぀はNATの背埌にありたすが、Toxポヌトが転送されおいるため、盞互に到達可胜である必芁がありたす。 トラフィックは匕き続きTCP経由でルヌティングされおいたした。

これはセキュリティの問題ではありたせんが、P2Pネットワヌクがすべおのトラフィックをリレヌ経由でリレヌしおいる堎合は確かにスケヌラビリティの問題です。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡