WireGuard を䜿甚すべきではない理由

WireGuard は最近倧きな泚目を集めおおり、実際、VPN の新星です。 しかし、圌は芋た目ほど優秀なのでしょうか WireGuard が IPsec や OpenVPN に代わる゜リュヌションではない理由を説明するために、いく぀かの芳察事項に぀いお説明し、WireGuard の実装をレビュヌしたいず思いたす。

この蚘事では、[WireGuard に関する] 誀解のいく぀かを暎きたいず思いたす。 はい、読むのに長い時間がかかるので、ただお茶やコヌヒヌを淹れおいない堎合は、今すぐにでも読んでください。 私の混乱した考えを正しおくれたピヌタヌにも感謝したいず思いたす。

私は、WireGuard 開発者の信甚を傷぀け、圌らの努力やアむデアの䟡倀を䞋げるずいう目暙を自分自身に蚭定しおいるわけではありたせん。 圌らの補品は機胜しおいたすが、個人的には、実際のものずはたったく異なるものずしお提瀺されおいるず思いたす。実際には珟圚存圚しおいない IPsec ず OpenVPN の代替ずしお提瀺されおいたす。

泚意ずしお、WireGuard のそのような䜍眮づけに察する責任は、プロゞェクト自䜓やその䜜成者ではなく、それを取り䞊げたメディアにあるこずを付け加えおおきたす。

最近、Linux カヌネルに関する良いニュヌスはあたりありたせん。 それで、私たちはプロセッサの巚倧な脆匱性に぀いお知らされ、それは゜フトりェアによっお平準化されたしたが、リヌナス・トヌバルズは開発者の功利䞻矩的な蚀語でそれに぀いおあたりにも無瀌で退屈に話したした。 スケゞュヌラやれロレベルのネットワヌキング スタックも、高玚雑誌ではあたり明確なトピックではありたせん。 そしおここにWireGuardが登堎したす。

机䞊では、すべおが玠晎らしく聞こえたす。゚キサむティングな新テクノロゞヌです。

しかし、もう少し詳しく芋おみたしょう。

WireGuard ホワむトペヌパヌ

この蚘事は以䞋に基づいおいたす WireGuard の公匏ドキュメントゞェむ゜ン・ドヌネンフェルド著。 そこで圌は、Linux カヌネルにおける [WireGuard] の抂念、目的、技術的実装に぀いお説明しおいたす。

最初の文は次のようになりたす。

WireGuard [
] は、ほずんどのナヌスケヌスにおける IPsec ず、他の䞀般的なナヌザヌ空間や OpenVPN などの TLS ベヌスの゜リュヌションの䞡方を眮き換えるこずを目的ずしおおり、より安党でパフォヌマンスが高く、䜿いやすい [ツヌル] です。

もちろん、すべおの新しいテクノロゞヌの䞻な利点は、 単玔さ 【先代ずの比范】。 しかし、VPN も同様である必芁がありたす。 効率的か぀安党.

そしお次は

これは [VPN に] 必芁なものではないずいう堎合は、ここで読み終えおも構いたせん。 ただし、そのようなタスクは他のトンネリング技術にも蚭定されおいるこずに泚意しおください。

䞊蚘の匕甚文の䞭で最も興味深いのは、「ほずんどの堎合」ずいう蚀葉にあるが、もちろんマスコミは無芖した。 そしお、この蚘事では、この過倱によっお匕き起こされた混乱のせいで、私たちは最終的にこのような状況に陥っおいたす。

WireGuard を䜿甚すべきではない理由

WireGuard は [IPsec] サむト間 VPN に代わるものですか?

いいえ。 Cisco、Juniper などの倧手ベンダヌが自瀟補品のために WireGuard を賌入する可胜性はたったくありたせん。 よほどの必芁がない限り、移動䞭に「通過する電車に飛び乗る」こずはありたせん。 埌で、圌らがおそらく WireGuard 補品を搭茉したくおも搭茉できない理由のいく぀かを説明したす。

WireGuard は RoadWarrior をラップトップからデヌタセンタヌに持ち運べたすか?

いいえ。 珟時点では、WireGuard には、このようなこずを実行するための重芁な機胜が倚数実装されおいたせん。 たずえば、トンネル サヌバヌ偎で動的 IP アドレスを䜿甚するこずはできたせんが、これだけでも、このような補品の䜿甚シナリオ党䜓が砎綻したす。

IPFire は、DSL 接続やケヌブル接続などの安䟡なむンタヌネット リンクによく䜿甚されたす。 これは、高速ファむバヌを必芁ずしない䞭小䌁業にずっおは理にかなっおいたす。 [翻蚳者からの泚: 通信の点では、ロシアず䞀郚の CIS 諞囜はペヌロッパや米囜よりもはるかに先を行っおいるこずを忘れないでください。なぜなら、私たちがネットワヌクを構築し始めたのはかなり埌になっおからであり、むヌサネットず光ファむバヌ ネットワヌクの出珟により、暙準なので、再構築するのが簡単でした。 EU や米囜の同じ囜々では、3  5 Mbps の速床での xDSL ブロヌドバンド アクセスが䟝然ずしお䞀般的であり、光ファむバヌ接続には、私たちの基準からするず非珟実的な金額がかかりたす。 したがっお、この蚘事の著者は、DSL たたはケヌブル接続が昔のこずではなく、暙準であるず述べおいたす。] ただし、DSL、ケヌブル、LTE (およびその他のワむダレス アクセス方法) には動的 IP アドレスがありたす。 もちろん、頻繁に倉化しないこずもありたすが、倉化するこずもありたす。

ずいうサブプロゞェクトがありたす 「wg-ダむナミック」、この欠点を克服するためにナヌザヌスペヌス デヌモンを远加したす。 䞊で説明したナヌザヌ シナリオの倧きな問題は、動的 IPv6 アドレッシングの悪化です。

ディストリビュヌタヌの芳点からするず、これもあたり良いこずではありたせん。 蚭蚈目暙の XNUMX ぀は、プロトコルをシンプルか぀クリヌンに保぀こずでした。

残念ながら、実際にはこれらすべおがあたりにも単玔か぀原始的なものになっおいるため、この蚭蚈党䜓を実際に䜿甚できるようにするには、远加の゜フトりェアを䜿甚する必芁がありたす。

WireGuard はずおも䜿いやすいですか?

ただ。 WireGuard が XNUMX 点間のトンネリングに決しお適した代替手段にならないずは蚀いたせんが、今のずころ、これは本来あるべき補品のアルファ版にすぎたせん。

しかし、それでは圌は実際に䜕をしおいるのでしょうか IPsec の保守は本圓にそれほど難しいのでしょうか?

明らかに違いたす。 IPsec ベンダヌはこれを考慮し、IPFire などのむンタヌフェむスを備えた補品を出荷しおいたす。

IPsec 経由で VPN トンネルを蚭定するには、構成に入力する必芁がある XNUMX ぀のデヌタ セットが必芁になりたす。それは、自分のパブリック IP アドレス、受信偎のパブリック IP アドレス、パブリックにするサブネットです。この VPN 接続ず事前共有キヌ。 したがっお、VPN は数分以内にセットアップされ、どのベンダヌずも互換性がありたす。

残念ながら、この話にはいく぀かの䟋倖がありたす。 IPsec 経由で OpenBSD マシンにトンネルを詊みたこずがある人なら、私が䜕を蚀っおいるのかわかるでしょう。 他にもいく぀か厄介な䟋がありたすが、実際には、IPsec を䜿甚するための優れた実践方法がさらにたくさんありたす。

プロトコルの耇雑さに぀いお

゚ンドナヌザヌはプロトコルの耇雑さを心配する必芁はありたせん。

これがナヌザヌの真の関心事である䞖界に私たちが䜏んでいるなら、323 幎以䞊前に䜜成された、NAT ではうたく動䜜しない SIP、H.XNUMX、FTP、その他のプロトコルは廃止されおいたでしょう。

IPsec が WireGuard よりも耇雑であるのには理由がありたす。IPsec はより倚くのこずを実行したす。 たずえば、ログむン/パスワヌドたたはEAP付きSIMカヌドを䜿甚したナヌザヌ認蚌です。 新しいものを远加する拡匵機胜がありたす 暗号プリミティブ.

そしお、WireGuard にはそれがありたせん。

これは、暗号化プリミティブの XNUMX ぀が匱䜓化するか完党に䟵害されるため、WireGuard がある時点で壊れるこずを意味したす。 技術文曞の著者は次のように述べおいたす。

WireGuard は暗号に関しお独自の芋解を持っおいるこずは泚目に倀したす。 暗号やプロトコルの柔軟性を意図的に欠劂しおいたす。 基瀎ずなるプリミティブに重倧な穎が芋぀かった堎合は、すべおの゚ンドポむントを曎新する必芁がありたす。 SLL/TLS の脆匱性が次々ず発生しおいるこずからわかるように、暗号化の柔軟性は珟圚倧幅に向䞊しおいたす。

最埌の文はたったく正しいです。

どの暗号化を䜿甚するかに぀いお合意に達するず、IKE や TLS などのプロトコルが䜜成されたす。 бПлее 耇雑。 耇雑すぎる はい、TLS/SSL では脆匱性が非垞に䞀般的であり、それらに代わるものはありたせん。

珟実の問題を無芖するこずに぀いお

䞖界䞭のどこかに 200 の戊闘クラむアントを備えた VPN サヌバヌがあるず想像しおください。 これはかなり暙準的な䜿甚䟋です。 暗号化を倉曎する必芁がある堎合は、ラップトップやスマヌトフォンなど䞊の WireGuard のすべおのコピヌに曎新を配信する必芁がありたす。 同時に 配達。 それは文字通り䞍可胜です。 管理者がこれを実行しようずするず、必芁な構成を展開するのに䜕か月もかかり、䞭芏暡の䌁業がこのようなむベントを実行するには文字通り数幎かかりたす。

IPsec ず OpenVPN は暗号ネゎシ゚ヌション機胜を提䟛したす。 したがっお、新しい暗号化をオンにしおからしばらくの間は、叀い暗号化も機胜したす。 これにより、珟圚の顧客は新しいバヌゞョンにアップグレヌドできるようになりたす。 アップデヌトが展開されたら、脆匱な暗号化を無効にするだけです。 以䞊です 準備 あなたは玠晎らしいです クラむアントもそれに気づきたせん。

これは実際には倧芏暡な展開では非垞に䞀般的なケヌスであり、OpenVPN でもこれには倚少の困難がありたす。 䞋䜍互換性は重芁であり、たずえ匱い暗号化を䜿甚しおいおも、倚くの堎合、これはビゞネスを閉鎖する理由にはなりたせん。 なぜなら、仕事ができなくなり、䜕癟人もの顧客の仕事が麻痺しおしたうからです。

WireGuard チヌムはプロトコルをよりシンプルにしたしたが、トンネル内の䞡方のピアを垞に制埡できない人にはたったく䜿甚できたせん。 私の経隓では、これが最も䞀般的なシナリオです。

WireGuard を䜿甚すべきではない理由

暗号

しかし、WireGuard が䜿甚するこの興味深い新しい暗号化ずは䜕でしょうか?

WireGuard は、キヌ亀換に Curve25519、暗号化に ChaCha20、デヌタ認蚌に Poly1305 を䜿甚したす。 たた、ハッシュ キヌには SipHash、ハッシュには BLAKE2 も䜿甚できたす。

ChaCha20-Poly1305 は、IPsec および OpenVPN (TLS 経由) 甚に暙準化されおいたす。

ダニ゚ル・バヌンスタむンの開発が非垞に頻繁に䜿甚されおいるこずがわかりたす。 BLAKE2 は、SHA-3 ずの類䌌性のために SHA-2 ファむナリストに遞ばれなかった BLAKE の埌継です。 SHA-2 が砎られた堎合、BLAKE も䟵害される可胜性が十分にありたす。

IPsec ず OpenVPN は、その蚭蚈により SipHash を必芁ずしたせん。 したがっお、珟圚䜿甚できないのは BLAKE2 だけであり、それは暙準化されるたでの間だけです。 VPN は敎合性を確保するために HMAC を䜿甚するため、これは倧きな欠点ではありたせん。HMAC は MD5 ず組み合わせおも匷力な゜リュヌションであるず考えられおいたす。

そこで私は、ほが同じ暗号化ツヌルのセットがすべおの VPN で䜿甚されおいるずいう結論に達したした。 したがっお、暗号化や送信デヌタの完党性に関しおは、WireGuard は他の珟行補品ず比べお安党性が高いわけではありたせん。

しかし、これさえも最も重芁なこずではありたせん。プロゞェクトの公匏ドキュメントによるず、これは泚意を払う䟡倀がありたす。 結局のずころ、重芁なのはスピヌドです。

WireGuard は他の VPN ゜リュヌションよりも高速ですか?

芁するに、いいえ、速くはありたせん。

ChaCha20 は、゜フトりェアぞの実装が容易なストリヌム暗号です。 䞀床に 128 ビットず぀暗号化したす。 AES などのブロック プロトコルは、ブロックを䞀床に XNUMX ビット暗号化したす。 ハヌドりェア サポヌトを実装するにはさらに倚くのトランゞスタが必芁ずなるため、倧型のプロセッサには、暗号化プロセスのタスクの䞀郚を実行しお高速化する呜什セット拡匵機胜である AES-NI が搭茉されおいたす。

AES-NI がスマヌトフォンに採甚されるこずは決しおないず予想されおいたしたが、実際には採甚されたした。 あたり。]。 このため、ChaCha20 は軜量でバッテリヌ節玄の代替品ずしお開発されたした。 したがっお、珟圚賌入できるすべおのスマヌトフォンには䜕らかの AES アクセラレヌションが搭茉されおおり、この暗号化を䜿甚するず ChaCha20 よりも高速か぀䜎消費電力で動䜜するずいうニュヌスが届くかもしれたせん。

明らかに、ここ数幎で賌入されたほがすべおのデスクトップ/サヌバヌ プロセッサには AES-NI が搭茉されおいたす。

したがっお、私は、AES があらゆるシナリオで ChaCha20 を䞊回るパフォヌマンスを発揮するず期埅しおいたす。 WireGuard の公匏ドキュメントには、AVX512 では ChaCha20-Poly1305 が AES-NI よりも優れたパフォヌマンスを発揮するず蚘茉されおいたすが、この呜什セット拡匵は倧型の CPU でのみ利甚可胜であり、小型でモバむル性の高いハヌドりェアには圹に立ちたせん。AES を䜿甚するず垞に高速になりたす。 - N.I.

WireGuard の開発䞭にこれが予芋できたかどうかはわかりたせんが、珟圚では、暗号化のみに釘付けになっおいるずいう事実がすでに欠点ずなっおおり、その動䜜にはあたり圱響を及がさない可胜性がありたす。

IPsec を䜿甚するず、ケヌスに最適な暗号化を自由に遞択できたす。 もちろん、これは、たずえば VPN 接続を通じお 10 GB 以䞊のデヌタを転送する堎合に必芁です。

Linux での統合の問題

WireGuard は最新の暗号化プロトコルを遞択したしたが、これはすでに倚くの問題を匕き起こしおいたす。 そのため、カヌネルでサポヌトされおいるものをそのたた䜿甚する代わりに、Linux にはこれらのプリミティブが欠劂しおいるため、WireGuard の統合は䜕幎も遅れおきたした。

他のオペレヌティング システムでの状況がどうなっおいるかは完党にはわかりたせんが、おそらく Linux の堎合ずそれほど倉わらないでしょう。

珟実はどのように芋えたすか

残念ながら、クラむアントから VPN 接続のセットアップを䟝頌されるたびに、叀い認蚌情報ず暗号化が䜿甚されおいるずいう問題に遭遇したす。 3DES ず MD5 を組み合わせた䜿甚は、AES-256 や SHA1 ず同様に、䟝然ずしお䞀般的に行われおいたす。 埌者の方が若干優れおいたすが、これは 2020 幎に䜿甚すべきものではありたせん。

鍵亀換の堎合 垞に RSA が䜿甚されたす。これは遅いですがかなり安党なツヌルです。

私のクラむアントは、皎関やその他の政府機関や機関、さらには䞖界䞭で名前が知られおいる倧䌁業ず関係しおいたす。 これらはすべお、数十幎前に䜜成されたリク゚スト フォヌムを䜿甚しおおり、SHA-512 を䜿甚する機胜はたったく远加されおいたせんでした。 それが䜕らかの圢で技術の進歩に明らかに圱響を䞎えおいるずは蚀えたせんが、明らかに䌁業プロセスを遅らせたす。

IPsec は 2005 幎以来、楕円曲線を盎接サポヌトしおいるため、これを芋るず心が痛みたす。Curve25519 も新しくなり、䜿甚できるようになりたす。 Camellia や ChaCha20 などの AES の代替手段もありたすが、明らかにそれらすべおが Cisco などの䞻芁ベンダヌによっおサポヌトされおいるわけではありたせん。

そしお人々はそれを利甚したす。 Cisco キットは数倚くあり、Cisco ず連携するように蚭蚈されたキットも数倚くありたす。 圌らはこの分野の垂堎リヌダヌであり、いかなる皮類のむノベヌションにもあたり興味がありたせん。

はい、法人郚門の状況はひどいものですが、WireGuard のおかげで倉化は芋られたせん。 ベンダヌはおそらく、すでに䜿甚しおいるツヌルや暗号化にパフォヌマンスの問題が発生するこずはなく、IKEv2 にも問題が発生しないため、代替手段を探しおいたせん。

䞀般的に、Cisco をやめるこずを考えたこずはありたすか?

ベンチマヌク

それでは、WireGuard ドキュメントのベンチマヌクに移りたしょう。 この[ドキュメント]は科孊論文ではありたせんが、それでも開発者がより科孊的なアプロヌチを取るか、科孊的なアプロヌチを参考にするこずを期埅しおいたした。 どのようなベンチマヌクも再珟できなければ圹に立ちたせんが、実隓宀で埗られたものであればさらに圹に立ちたせん。

WireGuard の Linux ビルドでは、GSO (汎甚セグメンテヌション オフロヌド) を利甚したす。 圌のおかげで、クラむアントは 64 キロバむトの巚倧なパケットを䜜成し、それを䞀床に暗号化/埩号化したす。 したがっお、暗号化操䜜の呌び出しず実装のコストが削枛されたす。 VPN 接続のスルヌプットを最倧化したい堎合、これは良い考えです。

しかし、い぀ものように、珟実はそれほど単玔ではありたせん。 このような倧きなパケットをネットワヌク アダプタに送信するには、パケットを倚数の小さなパケットに分割する必芁がありたす。 通垞の送信サむズは 1500 バむトです。 ぀たり、64 キロバむトの巚倧なパケットは 45 のパケット (1240 バむトの情報ず 20 バむトの IP ヘッダヌ) に分割されたす。 その埌、それらは䞀緒に䞀床に送信する必芁があるため、しばらくの間、ネットワヌク アダプタヌの動䜜が完党にブロックされたす。 その結果、優先順䜍が急䞊昇し、VoIP などのパケットがキュヌに入れられるこずになりたす。

したがっお、WireGuard が倧胆に䞻匵する高スルヌプットは、他のアプリケヌションのネットワヌク速床を䜎䞋させるずいう犠牲を払っお実珟されおいたす。 そしお、WireGuard チヌムはすでに 確認枈み これが私の結論です。

しかし、先に進みたしょう。

技術ドキュメントのベンチマヌクによるず、接続のスルヌプットは 1011 Mbps です。

印象的です。

これは、単䞀ギガビット むヌサネット接続の理論䞊の最倧スルヌプットが 966 バむトから IP ヘッダヌの 1500 バむト、UDP ヘッダヌの 20 バむト、およびヘッダヌの 8 バむトを匕いたパケット サむズで 16 Mbps であるずいう事実により、特に印象的です。 WireGuard 自䜓。 カプセル化されたパケットにはもう 20 ぀の IP ヘッダヌがあり、TCP には XNUMX バむトの IP ヘッダヌがもう XNUMX ぀ありたす。 では、この远加の垯域幅はどこから来たのでしょうか?

巚倧なフレヌムず䞊で説明した GSO の利点を考慮するず、フレヌム サむズ 9000 バむトの理論䞊の最倧倀は 1014 Mbps になりたす。 通垞、このようなスルヌプットは倧きな困難を䌎うため、珟実には達成できたせん。 したがっお、理論䞊の最倧倀が 64 Mbps で、䞀郚のネットワヌク アダプタでのみサポヌトされる、1023 キロバむトのさらに倪い特倧フレヌムを䜿甚しおテストが実行されたずしか考えられたせん。 しかし、これは実際の状況ではたったく適甚できず、盎接接続された XNUMX ぀のステヌション間でのみ、テストベンチ内でのみ䜿甚できたす。

ただし、VPN トンネルはゞャンボ フレヌムをたったくサポヌトしないむンタヌネット接続を䜿甚しお XNUMX ぀のホスト間で転送されるため、ベンチで埗られた結果をベンチマヌクずしお採甚するこずはできたせん。 これは単に実隓宀での非珟実的な成果であり、実際の戊闘状況では䞍可胜であり、適甚できたせん。

デヌタセンタヌに座っおいおも、9000 バむトを超えるフレヌムを転送できたせんでした。

実生掻ぞの適甚性の基準は完党に違反されおおり、私が思うに、実行された「枬定」の䜜成者は、明癜な理由で自分自身の信甚を著しく傷぀けたした。

WireGuard を䜿甚すべきではない理由

最埌の垌望の光

WireGuard の Web サむトではコンテナに぀いお倚くのこずが語られおおり、コンテナが実際に䜕を目的ずしおいるのかが明らかになりたす。

シンプルで高速な VPN は構成を必芁ずせず、Amazon がクラりドに備えおいるような倧芏暡なオヌケストレヌション ツヌルを䜿甚しお展開および構成できたす。 具䜓的には、Amazon は、AVX512 など、前述した最新のハヌドりェア機胜を䜿甚しおいたす。 これは、x86 やその他のアヌキテクチャに瞛られず、䜜業を高速化するために行われたす。

これらは、スルヌプットず 9000 バむトを超えるパケットを最適化したす。これらは、コンテナヌが盞互に通信したり、バックアップ操䜜、スナップショットの䜜成、同じコンテナヌのデプロむを行うための巚倧なカプセル化されたフレヌムになりたす。 私が説明したシナリオの堎合、動的 IP アドレスであっおも、WireGuard の動䜜にはたったく圱響したせん。

よくやった。 優れた実装ず非垞に薄い、ほが参照プロトコル。

しかし、それは完党に制埡できるデヌタセンタヌの倖の䞖界には適合したせん。 リスクを負っお WireGuard の䜿甚を開始する堎合は、暗号化プロトコルの蚭蚈ず実装においお垞に劥協する必芁がありたす。

出力

WireGuard はただ準備ができおいないず結論付けるのは簡単です。

これは、既存の゜リュヌションの倚くの問題に察する軜量か぀迅速な゜リュヌションずしお考案されたした。 残念ながら、これらの゜リュヌションを実珟するために、ほずんどのナヌザヌに関係する倚くの機胜を犠牲にしたした。 このため、IPsec や OpenVPN を眮き換えるこずはできたせん。

WireGuard が競争力を発揮するには、少なくずも IP アドレス蚭定、ルヌティング、DNS 構成を远加する必芁がありたす。 明らかに、これが暗号化チャネルの目的です。

セキュリティは私の最優先事項であり、珟時点では、IKE たたは TLS が䜕らかの圢で䟵害されたり砎損したりしおいるず信じる理由はありたせん。 どちらでも最新の暗号化がサポヌトされおおり、数十幎の運甚によっお蚌明されおいたす。 䜕かが新しいからずいっお、それが優れおいるずいうわけではありたせん。

盞互運甚性は、ステヌションを制埡しおいないサヌドパヌティず通信する堎合に非垞に重芁です。 IPsec は事実䞊の暙準であり、ほがどこでもサポヌトされおいたす。 そしお圌は働いおいたす。 そしお、芋た目がどうであれ、理論的には、将来の WireGuard はそれ自䜓の異なるバヌゞョンずさえ互換性がなくなる可胜性がありたす。

暗号化保護は遅かれ早かれ砎られるため、亀換たたは曎新する必芁がありたす。

これらの事実をすべお吊定し、盲目的に WireGuard を䜿甚しお iPhone を自宅のワヌクステヌションに接続したいず考えるのは、たさに銖を突っ蟌むマスタヌクラスです。

出所 habr.com

コメントを远加したす