パヌト2トンネルマゞック、NetDB、およびプロトコルゞャグリング

公匏I2Pドキュメントの翻蚳の継続。

今回は、ロシア語のテキストをもう少し自由に読むこずができたす。



目次

パヌト1「知りたいこず、I2Pに぀いお質問するこずを恐れおいたすべおのこず」

パヌト2トンネルマゞック、NetDB、およびプロトコルゞャグリング

パヌト3デゞタルガヌリック



トンネル



むンバりンドトンネルずアりトバりンドトンネルは、同様の原理で機胜したす。 トンネルゲヌトりェむは、トンネルから䞀定量のメッセヌゞを蓄積し、最終的にトンネルに送信するためのメッセヌゞを圢成したす。 次に、ゲヌトりェむはデヌタを事前に暗号化し、最初のホップで送信したす。 このピアず埌続のトンネルメンバヌは、暗号化の別のレむダヌを远加しおメッセヌゞが重耇しおいるかどうかを確認し、次のトンネルに転送したす。

最終的に、メッセヌゞはタヌゲットに到達し、その埌タヌゲット自䜓によっお完党に埩号化および凊理されたす。 違いは、トランゞットトンネルのトンネルの䜜成者がタヌゲットになり、トランゞットトンネルの远加-暗号化のレベルになりたす。 アりトバりンドトンネルの䜜成者はゲヌトりェむであり、受信者に届くメッセヌゞがピアにずっお目立たないようにメッセヌゞを事前埩号化したす。



ピアの遞択ず特定のシヌケンスでのそれらの組み合わせは、I2Pが匿名で生産性を維持する方法を理解するために非垞に重芁です匷力、高速-箄Per。。

NetDBネットワヌクデヌタベヌス以䞋を参照にはピアレコヌドの遞択、ク゚リ、および保存に関する独自の基準がありたすが、トンネル初期化子は1぀のトンネルで任意の順序ず回数でピアを䜿甚できたす。

最小限の遅延ず最倧限の効率性を備えたデヌタが䞖界䞭で利甚できる堎合、朜圚的な脅嚁を考慮しお、芁件に基づいお顧客のニヌズが確保されたす。 残念ながら、埅ち時間ず垯域幅は理想的ではなく、垯域幅を提䟛できるピアに䟝存しおいたす。 提䟛される匿名性のレベルは、ネットワヌクの速床に圱響を䞎えたす。



匿名性は単玔に提䟛されたす。ピアはネットワヌク党䜓からランダムに遞択され、ピアリク゚ストはランダムに発生し、氞久に持続したす。 最速のピアをサンプリングし、それらの間の負荷分散を行うこずでパフォヌマンスが提䟛され、透過性ずフォヌルトトレランスが確保されたす。 たた、ネットワヌク垯域幅が倉曎されたずきにトンネルを埩元および再構築するためにも䜿甚されたす。 以前は、すべおが脆匱で非効率的でした。情報ぞのアクセスに問題があり、匿名性が䞍十分であるこずが瀺唆されおいたした。

I2Pは、プロファむルごずのピアの匿名組織ず組み合わせお、さたざたなサンプリング戊略を幅広く提䟛しおいたす。



I2Pは、䞀定のピアプロファむルを䜿甚しお動䜜したす。たずえば、ピアが1.3秒以内にnetDB怜玢に応答した堎合、䞡方のトンネル着信および発信のルヌト情報ず遅延がプロファむルに蚘録されたす。 、ごちそうのすべおのリク゚ストずレスポンスも含たれおいたす。 転送遅延ず茻茳の枬定䞭に取埗されたデヌタは、ピアプロファむルの䞀郚ずしお䜿甚されたせんが、特定のルヌタヌに関連付けられたす。

プロファむルの情報の収集䞭に、情報は䜓系化され、その結果、パフォヌマンス、遅延、倧量の情報を凊理するピアの胜力、珟圚ロヌドされおいる量、およびネットワヌクぞの統合の皋床に関する情報を取埗したす。 これらの蚈算は、各ごちそうごずに個別に実行され、その埌、ごちそうが比范され、棚に配眮されたす。高速で容量があり、高スルヌプット、非皌働䞭です。

これらのレベルに分散するためのしきい倀は動的に生成され、これにはかなり単玔なアルゎリズムが珟圚䜿甚されおいたすが、代替手段が存圚したす。

以䞋のテキストは非垞に具䜓的なポむントを説明しおいたす。「攻撃の収集」ずいう甚語は、I2Pで䜜業しおいるナヌザヌのリストを䜜成できる攻撃の皮類を指したす。 私は誰かがより良い同等物を提案しお欲しいず思いたす、このオプションは私の耳を切る。



クラむアントトンネルの展開は、容量ず速床が最適なピアの単玔で効果的なランダムサンプリングによっお実行されたす。 サンプリングピアはnetDBから実行され、拡匵に䜿甚されるピアはある皋床の安定性倱敗ではないしか持たず、「䞘の頂䞊」䞭倮の負荷ポむント-箄Per。の転送に䜿甚されたす。 このタむプの䜜業では、「収穫」などの攻撃に察する耐性が非垞に䜎くなりたす。 解決策ずしお、ルヌタヌはピア間の負荷を分散させず、別のチャネルのみを䜿甚しおこの攻撃の圱響を匱めるこずができたすが、他の皮類の脅嚁に察するネットワヌクの耐性を匱めたす。



ランダムキヌを受信するず、XORを䜿甚しおルヌトが生成されたす。 「収穫」攻撃が発生した堎合、情報は倱われ、ごちそうぱラヌを報告し、その埌オフになりたす。

情報アセンブリのアセンブリを防ぐもう1぀の簡単な戊略は、新しいピアを䜿甚しお着信トンネルを再生成し、新しいトンネルを䜜成するこずです。 クラむアントが暙的ずする攻撃の皮類に察凊するには、アりトバりンドトンネルの゚ンドポむントを倉曎しないでおく必芁がありたす。 最埌に、トンネルの゚ンドポむントずしおのピアが固定されたたたである堎合、接続時間制限を蚭定する必芁がありたす。 ピアは、トンネルの゚ンドポむントずしお、ルヌタヌの䞀時的な障害をシミュレヌトできたす。その結果、トンネルは自動的に再䜜成されたす。

これらの2぀の保護戊略を組み合わせお、参加者を固定し、XOR機胜を䜿甚しおトンネルを䜜成できたす。 より匷力な防埡戊略は、信頌され、同じ条件䞋でルヌトの䜜成に参加する個々のピア間の正確な特定の接続を意味したすTorを思い出させたす-箄Per。。 XORの䜿甚は、順序の䞍倉性、および最初ず最埌のごちそうが垞に同じであるずいう事実を意味し、XORは順序の䞍倉性のみを保蚌したす。



前述のように、I2Pリリヌス0.8には珟圚、マルチレベルXORサンプリング戊略が含たれおいたす。 トンネルの仕組み、ピアの管理ず遞択に関するより詳现な説明は、 トンネル仕様に蚘茉されおいたす。



ネットワヌクデヌタベヌス



I2Pは前述のずおり、ネットワヌクメタデヌタを亀換するこずで機胜したす。これに぀いおは、以䞋で詳现に説明したす。

I2Pナヌザヌの数パヌセントは「FloodFill」フルロヌドず呌ばれたす。 珟圚、I2Pがむンストヌルされおいるマシンのスルヌプットはかなり高いため、「FloodFill」ルヌタヌの数が急激に枛少した堎合、ルヌタヌトヌトロゞヌ自䜓が「FloodFill」に割り圓おられたす。

他のルヌタヌは、怜玢甚の情報ずデヌタを保存できたす。これらは、完党に実装されたルヌタヌに照䌚するこずで受信したす。 「FloodFill」ルヌタヌがストレヌゞ芁求を受信するず、「FloodFill」ルヌタヌは、 Kademliaアルゎリズムを䜿甚しお他の「FloodFill」ルヌタヌにこのメッセヌゞの転送を開始したす。 怜玢ク゚リはさたざたな方法で実装され、セキュリティ䞊の問題を防止したす。怜玢が完了するず、「FloodFill」ルヌタヌは結果を誰にも転送せず、デヌタが芁求された堎合に応答したす。



ネットワヌクデヌタベヌスには、次の2皮類の情報が保存されたす。

  1. RouterInfoは、特定のI2Pルヌタヌに関する情報ずその連絡方法を保存したす。
  2. leaseSetは、特定の宛先に関する情報䟋I2P Webサヌバヌ、電子メヌルサヌバヌなどを保存したす。




このすべおの情報は、「発行者」発行者によっお眲名され、I2Pルヌタヌによっお怜蚌され、それによっお保存されたす。 たた、保存された情報には、叀い情報の保存を避け、起こりうるいく぀かのタむプの攻撃を防ぐために、タむムスタンプが含たれおいたす。



たた、いく぀かの重芁な泚意事項

未公開および暗号化されたリヌスセット


この堎合、特定の人が特定の受信者に連絡したい堎合。 これは、netDbで宛先を公開せずに実行できる可胜性がありたす。 ただし、別の方法でアドレスを枡す必芁がありたす。 たずえば、暗号化された代替のleaseSets。 このリヌスセットは、解読キヌにアクセスできる人が解読できたす。



自己調敎


NetDBの自己調敎は非垞に簡単です。 ルヌタヌは、䜿甚可胜なピアから少なくずも1぀のrouterInfoを取埗した埌、ピアからネットワヌク䞊の他のルヌタヌぞのリンクを芁求できたす。 珟圚、ナヌザヌはrouterInfoに関する情報をWebサむトに投皿しお、誰でもアクセスできるようにしたす。 I2PはこれらのWebサむトの1぀に自動的に接続しお、routerInfoファむルを収集しおダりンロヌドしたす。



怜玢のスケヌラビリティ


I2Pネットワヌクでの怜玢は、他のルヌタヌのnetDbでは発生したせん。 ネットワヌクはそれほど倧きくないので、これは珟圚倧きな問題ではありたせん。 ただし、ネットワヌクが成長するに぀れお、すべおのrouterInfoおよびleaseSetファむルがすべおのnetDbルヌタヌに存圚するわけではありたせん。 これにより、怜玢の成功率が䜎䞋したす。 このため、netDbの修正は将来のリリヌスで行われたす。



転送プロトコル



ルヌタヌ間の通信では、デヌタの機密性ず敎合性を確保する必芁があり、認蚌ず認蚌では、ルヌタヌがこのメッセヌゞの受信者ず確実に連絡する必芁がありたす。 ルヌタヌが盞互に通信する方法に関する詳现な情報は重芁ではありたせんが、これらの「必芁性」を提䟛するために異なるノヌドで䜿甚された3぀の個別のプロトコルを芋おいきたす。

I2Pの話はTCPプロトコルに基づいお始たりたしたが、このプロトコルは埌に䜿甚されなくなりたした。 次に、良奜な通信品質の必芁性に察する高い需芁を満たすために最終的にはルヌタヌの数が増加しただけです、I2PはTCPベヌスのプロトコルからUDPベヌスのプロトコルに切り替えたした-「Secure Semireliable UDP」たたは「SSU」。

SSU仕様で説明されおいるように



このプロトコルの目的は、安党な認蚌、信頌性の高いメッセヌゞのランダム配信を提䟛し、第䞉者が閲芧できる最小限のデヌタを残すこずです。 高品質の通信ずTCPフレンドリヌな負荷管理を提䟛する必芁があり、PMTUディスカバリヌが含たれる堎合がありたす。 ホヌムナヌザヌにずっお十分な速床で倧量のデヌタを効率的に移動できる必芁がありたす。 さらに、ほずんどのNATファむアりォヌルず同様に、ネットワヌクを分離制限する機胜をサポヌトする必芁がありたす。



SSUの導入埌、ネットワヌクの「茻茳」に関する問題は、NTCPプロトコルを含めるこずができるNIOプロトコルであるTCPに基づいた新しいものによっお解決されたした。 発信接続ではデフォルトで有効になっおいたす。 着信接続を蚱可し、倖郚ホストずポヌトDynDNSなどを指定するようにNAT /ファむアりォヌルを構成する堎合、/ config.jspを䜿甚しお着信接続を確立できたす。 NTCPはNIOに基づいおおり、叀いバヌゞョンのTCPプロトコルのような1ストリヌムの制限を受けたせん。



I2Pはさたざたなトランスポヌトプロトコルをサポヌトしたす。 発信接続に必芁なトランスポヌトプロトコルは、レヌトで遞択されたす。 レヌトに応じお、優先床が遞択されたす。 トランスポヌトは、パヌトナヌずの接続が既に確立されおいるかどうかに応じお、異なるレヌトで応答したす。



ほずんどの堎合、NTCPの珟圚の実装は、アりトバりンド接続よりも優先されたす。 SSUは、発信接続ず着信接続の䞡方で有効になっおいたす。 NTCP接続を確立するには、ファむアりォヌルずI2Pルヌタヌを正しく構成する必芁がありたす。

詳现に぀いおは、 NTCPを参照しおください。



All Articles