䜿甚すべきでない理由 WireGuard

最近 WireGuard 倚くの泚目を集めおおり、実際、それは新たな「スタヌ」である。 VPNしかし、芋た目ほど良いものなのでしょうかいく぀か気づいた点を述べ、実装に぀いお怜蚌したいず思いたす。 WireGuardIPsec に取っお代わる゜リュヌションではない理由を説明するため、 OpenVPN.

この蚘事では、いく぀かの神話を解き明かしたいず思いたす。 WireGuardはい、かなり長い蚘事なので、ただお茶やコヌヒヌを淹れおいない方は、今がその時です。たた、私のたずたりのない考えを校正しおくれたピヌタヌにも感謝したいず思いたす。

開発者の信甚を倱墜させるこずが私の目的ではありたせん。 WireGuard圌らの努力やアむデアを軜芖しおいる。圌らの補品は機胜しおいるが、個人的には、実際ずは党く異なるものずしお提瀺されおいるず思う。IPsec の代替品ずしお提瀺されおいるが、 OpenVPN実際、それは珟圚では存圚しない。

補足ずしお、このような䜍眮付けの責任は WireGuard 報道したメディアによっお拡散されるのであっお、プロゞェクト自䜓やその制䜜者によっお拡散されるのではない。

最近、コアの話題に぀いお Linux 良いニュヌスはほずんどなかった。゜フトりェアで軜枛された恐ろしいプロセッサの脆匱性に぀いお聞かされたが、開発者の実甚的な蚀葉遣いで曞かれたリヌナス・トヌバルズの説明はあたりにも粗雑で退屈だった。スケゞュヌラやレベル0ネットワヌクスタックも、光沢のある雑誌で取り䞊げるには分かりやすい話題ずは蚀えない。そしお、そこに珟れたのが WireGuard.

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

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

技術文曞 WireGuard

この蚘事は以䞋に基づいおいたす 公匏ドキュメント WireGuardゞェむ゜ン・ドネンフェルドが執筆した蚘事で、圌はその抂念、目的、技術的な実装に぀いお説明しおいたす。WireGuard] コア郚分 Linux.

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

WireGuard [
]は、ほずんどのナヌスケヌスでIPsecだけでなく、他の䞀般的なナヌザヌ空間および/たたはTLSベヌスの゜リュヌションも眮き換えるこずを目指しおいたす。 OpenVPNより安党で、より生産的で、より䜿いやすい[ツヌル]です。

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

そしお次は

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

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

䜿甚すべきでない理由 WireGuard

それは起こるでしょうか WireGuard [IPsec]サむト間VPNを眮き換えるべきでしょうか

いいえ。シスコやゞュニパヌなどの倧手ベンダヌが自瀟補品のためにそれを取埗する可胜性は党くありたせん。 WireGuard圌らはよほどの緊急事態でもない限り、「通りすがりの列車に飛び乗る」ようなこずはしたせん。埌ほど、圌らが自瀟補品を車内に蚭眮できないであろう理由に぀いおいく぀か説明したす。 WireGuardたずえ圌らがそうしたくおも。

それは生き残れるだろうか WireGuard 私のRoadWarriorは、ノヌトパ゜コンからデヌタセンタヌたで移動したす。

いいえ。 WireGuard このような機胜を実珟するには、非垞に倚くの重芁な機胜が欠けおいたす。䟋えば、トンネルサヌバヌ偎で動的IPアドレスを䜿甚できないため、それだけでこの補品の利甚目的党䜓が損なわれおしたいたす。

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

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

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

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

WireGuard そんなに簡単に䜿えるんですか

ただだ。私はそうは蚀っおいない。 WireGuard これは2点間をトンネルで結ぶための優れた代替手段には決しおならないだろうが、今のずころは、将来的に目指すべき補品のアルファ版に過ぎない。

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

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

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

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

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

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

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

IPsecが他の技術よりも耇雑な理由はいく぀かありたす。 WireGuard: それだけではありたせん。䟋えば、ログむンIDずパスワヌド、たたはEAP察応のSIMカヌドを䜿甚しおナヌザヌ認蚌を行いたす。さらに、新しいナヌザヌを远加する機胜も備えおいたす。 暗号プリミティブ.

そしお、 WireGuard これは存圚したせん。

そしおこれは぀たり WireGuard いずれは、暗号プリミティブのいずれかが匱䜓化したり、完党に䟵害されたりするため、このシステムは機胜しなくなるだろう。技術文曞の著者は次のように述べおいる。

これは、こずは泚目に倀したす WireGuard 暗号技術に過信しおいる。意図的に暗号方匏ずプロトコルに柔軟性を持たせおいない。基盀ずなるプリミティブに深刻な脆匱性が発芋された堎合、すべおの゚ンドポむントを曎新する必芁がある。SSL/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は蚭蚈䞊必須ではありたせん。そのため、珟時点でVPNず䜵甚できないのは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を䞊回る性胜を発揮するずされおいたすが、この呜什セット拡匵は倧型プロセッサでのみ利甚可胜であり、小型のモバむルハヌドりェアでは圹に立たず、これらのハヌドりェアでは垞にAES-NIの方が高速になりたす。

開発段階でこれが予芋できたかどうかは分かりたせん。 WireGuardしかし今日では、䞀぀の暗号化方匏に瞛られおいるずいう事実自䜓が既に欠点ずなっおおり、その運甚にあたり良い圱響を䞎えない可胜性がある。

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

統合の問題 Linux

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

他のオペレヌティングシステムでの状況はよくわかりたせんが、おそらくそれほど違いはないでしょう。 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 です。

印象的です。

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

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

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

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

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

䜿甚すべきでない理由 WireGuard

最埌の垌望の光

サむト WireGuard コンテナに぀いお倚くの議論が亀わされ、それらが実際に䜕のために䜜られたのかが明らかになっおきた。

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

これらはスルヌプットず9000バむトを超えるパケットサむズを最適化し、コンテナ通信、バックアップ操䜜、スナップショット䜜成、コンテナ展開などのための巚倧なカプセル化フレヌムを生成したす。動的IPアドレスを䜿甚しおもパフォヌマンスに圱響はありたせん。 WireGuard 私が説明したシナリオの堎合。

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

しかし、完党に制埡できるデヌタセンタヌ以倖の䞖界では、それは単玔に適しおいたせん。リスクを冒しお䜿甚を開始するず、 WireGuard暗号化プロトコルを蚭蚈・実装する際には、垞に䜕らかの劥協を匷いられるこずになるでしょう。

出力

私にずっお結論を出すのは難しくない WireGuard ただ準備ができおいたせん。

これは、既存の゜リュヌションの倚くの問題に察する軜量か぀高速な゜リュヌションずしお意図されおいたした。残念ながら、これらの゜リュヌションを実珟するために、ほずんどのナヌザヌにずっお重芁な倚くの機胜を犠牲にしたした。そのため、IPsecや OpenVPN.

するために、 WireGuard 競争力を高めるためには、少なくずもIPアドレス蚭定、ルヌティング、DNS蚭定機胜を远加する必芁がある。そのためには、暗号化されたチャネルが䞍可欠であるこずは蚀うたでもない。

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

盞互運甚性は、制埡できない第䞉者の端末ず通信する堎合に非垞に重芁です。IPsec は事実䞊の暙準であり、ほがすべおの堎所でサポヌトされおいたす。そしお、それは機胜したす。そしお、理論的にはどのようなものであっおも、 WireGuard 将来的には、異なるバヌゞョンの自分自身ずも互換性がなくなる可胜性がある。

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

これらの事実党おを吊定し、盲目的に利甚したいずいう願望 WireGuard 接続するには iPhone 自宅にワヌクステヌションを蚭眮するこずは、珟実から目を背けるこずの極みず蚀えるだろう。

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster