今後10年間のITの大きなテーマの一つは、間違いなく_ポスト量子暗号_への_移行_になるでしょう。大手ハイテク企業から中小企業まで、私たちは皆、量子コンピュータの到来からデータを保護するために、ハードウェアとソフトウェアを確実にアップデートしなければならないでしょう。遠い未来のことのように思えますが、それは後回しにできる問題ではありません。現在取り込まれた暗号化された(ポスト量子暗号で保護されていない)データは、将来、十分に強力な量子コンピュータによって解読されてしまう可能性があります。
幸いなことに、私たちはもうすぐそこに到達します。暗号コミュニティによる世界規模の多大な努力の結果、私たちは、今後数十年にわたってポスト量子暗号の絶対的基準となるものをすでに把握しています。公開日:2024年のどこか。ほとんどの人にとって、移行は簡単なソフトウェアアップデートで済むことを願っていますが、すべての人にとってそう簡単にはならないでしょう。すべてのソフトウェアがメンテナンスされているわけではありませんし、ハードウェアのアップグレードが必要になる可能性もあるでしょう。一歩引いて見てみると、多くの企業はネットワーク上で動作するすべてのソフトウェアの完全なリストさえ持っていないのです。
Cloudflare Tunnelのお客様にとって、この移行はよりシンプルなものになります。ポスト量子Cloudflareトンネルの導入:このブログ記事では、最初にCloudflareトンネルの仕組みの概要を説明し、お客様がポスト量子マイグレーションを行う際にどのように役立つかについて説明します。次に、始め方について説明し、最後に細かい技術的な核心部分について説明します。
Cloudflareトンネル
Cloudflareトンネルを利用すると、内部ネットワーク内にあるサーバーの隣で[cloudflared](https://github.com/cloudflare/cloudflared)
サービスを実行することにより、インターネットに安全に公開することができます。例えば、[cloudflared](https://github.com/cloudflare/cloudflared)
をお客様の内部ネットワークにインストールした後、オンプレミスのウェブアプリをインターネットに公開し、例えばexample.comで公開して、リモートワーカーがどこからでもアクセスすることができます。
Cloudflareトンネルリクエストの有効期間。
その仕組みは?cloudflared
は、近くの2つのCloudflareデータセンター、例えばサンフランシスコ(接続3)と他の1つへの長時間接続を確立します。従業員がお客様のドメインにアクセスすると、近く(例えばフランクフルト)のCloudflareサーバーに接続します(1)。そのサーバーは、これがCloudflareトンネルであり、cloudflared
がサンフランシスコのサーバーに接続していることを知っているため、リクエストをそこに中継します(2)。帰りは逆方向の接続でリクエストがcloudflared
に到達し、貴社の内部ネットワーク経由でウェブアプリに渡されます(4)。
Cloudflareトンネルは本質的にシンプルで便利なツールですが、その素晴らしさはその上で何ができるかにあります。無料で利用できるCloudflareのDDoS攻撃対策、Cloudflare Accessによる細かいアクセス制御(アプリケーションがサポートしていなくても)、およびリクエストログなどが可能です。そして、忘れてはならないのが、目の前の問題です。
ポスト量子トンネル
私たちの目標は、ユーザーからオリジンまで、誰もが簡単に完全なポスト量子セキュリティで保護された接続ができるようにすることです。ポスト量子Cloudflareトンネルはこのための強力なツールです。これを使えば、ユーザーはアプリケーションをアップグレードせずにポスト量子セキュリティで保護された接続の恩恵を受けることができます(図中の接続4)。
本日、この目標に向けて2つの重要なステップを実行します。cloudflared
2022.9.1に、--post-quantumフラグが追加されました。これを指定するとcloudflared
から当社のネットワーク(接続3)への接続がポスト量子セキュリティで保護されます。
また、本日、ポスト量子ブラウザー接続(接続1)への対応を発表しました。
ブラウザ(および他のHTTPクライアント)は、当社のネットワークが提供するポスト量子セキュリティをまだサポートしていません。また、当社のデータセンター間の接続(接続2)をポスト量子セキュリティにする必要があります。
攻撃者は脆弱な接続を1か所だけアクセスできるようになればよいですが、攻撃者はすべてにアクセスできるわけではありません。ポスト量子セキュアにするごとに、侵害の機会を1つ減らすことができるのです。
私たちはポスト量子トンネルをデフォルトにしたいと強く願っていますが、現時点ではベータ機能です。その理由は、使用する暗号とネットワークプロトコルへの統合がまだ最終的なものになっていないためです。今すぐpost-quantumをデフォルトにしてしまうと、ユーザーはcloudflared
を、私たちが合理的に予想するよりも頻繁に更新しなければならなくなってしまいます。
利用開始
cloudflared
の頻繁な更新は問題ではないでしょうか?それでは、ポスト量子Cloudflareトンネルを試してみてください。2022.9.1以上を実行していることを確認し、cloudflared
に--post-quantumフラグを付けてを実行するだけです。
cloudflared
をサービスとして実行する場合、トンネル構成ファイルにpost-quantum: true
を追加することでポスト量子をオンにすることができます。便利なことに、cloudflared
サービスは、パッケージマネージャによってインストールされていない場合、自動的に自身を更新します。
$ cloudflared tunnel run --post-quantum tunnel-name
2022-09-23T11:44:42Z INF Starting tunnel tunnelID=[...]
2022-09-23T11:44:42Z INF Version 2022.9.1
2022-09-23T11:44:42Z INF GOOS: darwin, GOVersion: go1.19.1, GoArch: amd64
2022-09-23T11:44:42Z INF Settings: map[post-quantum:true pq:true]
2022-09-23T11:44:42Z INF Generated Connector ID: [...]
2022-09-23T11:44:42Z INF cloudflared will not automatically update if installed by a package manager.
2022-09-23T11:44:42Z INF Initial protocol quic
2022-09-23T11:44:42Z INF Using experimental hybrid post-quantum key agreement X25519Kyber768Draft00
2022-09-23T11:44:42Z INF Starting metrics server on 127.0.0.1:53533/metrics
2022-09-23T11:44:42Z INF Connection [...] registered connIndex=0 ip=[...] location=AMS
2022-09-23T11:44:43Z INF Connection [...] registered connIndex=1 ip=[...] location=AMS
2022-09-23T11:44:44Z INF Connection [...] registered connIndex=2 ip=[...] location=AMS
2022-09-23T11:44:45Z INF Connection [...] registered connIndex=3 ip=[...] location=AMS
何らかの理由でポスト量子トンネルの作成に失敗した場合、次のようなエラーメッセージが表示されます。
post-quantumフラグが指定されている場合、cloudflared
がポスト量子で_ない_接続にフォールバックすることはありません。
2022-09-22T17:30:39Z INF Starting tunnel tunnelID=[...]
2022-09-22T17:30:39Z INF Version 2022.9.1
2022-09-22T17:30:39Z INF GOOS: darwin, GOVersion: go1.19.1, GoArch: amd64
2022-09-22T17:30:39Z INF Settings: map[post-quantum:true pq:true]
2022-09-22T17:30:39Z INF Generated Connector ID: [...]
2022-09-22T17:30:39Z INF cloudflared will not automatically update if installed by a package manager.
2022-09-22T17:30:39Z INF Initial protocol quic
2022-09-22T17:30:39Z INF Using experimental hybrid post-quantum key agreement X25519Kyber512Draft00
2022-09-22T17:30:39Z INF Starting metrics server on 127.0.0.1:55889/metrics
2022-09-22T17:30:39Z INF
===================================================================================
You are hitting an error while using the experimental post-quantum tunnels feature.
Please check:
https://pqtunnels.cloudflareresearch.com
for known problems.
===================================================================================
2022-09-22T17:30:39Z ERR Failed to create new quic connection error="failed to dial to edge with quic: CRYPTO_ERROR (0x128): tls: handshake failure" connIndex=0 ip=[...]
特徴
セットアップの段階が肝心で、一度確立すれば、通常のトンネルと同じように使えます。つまり、トンネルが確立されれば、性能と信頼性は同一である必要があります。
私たちが使っているポスト量子暗号は非常に非常に高速ですが、ハンドシェイクの際におよそ1キロバイトの余分なデータをやり取りする必要があります。その差は、実際に使ってみても気付きにくいでしょう。
私たちの最大の懸念は、一部のネットワーク機器/ミドルボックスが、より大きなハンドシェイクによって混乱する可能性があることです。もし、量子化後のCloudflareトンネルがうまくいっていないのであれば、ぜひお知らせください。[email protected]までご連絡いただき、お使いのミドルボックスまたはISPをお知らせください。
機器の中身
--post-quantum
フラグが指定された場合、cloudflared
は、ネットワークへのトンネル接続を QUICトランスポートに制限し、それぞれTLS識別子0xfe30
と0xfe31
を持つポスト量子ハイブリッド鍵交換X25519Kyber512Draft00
とX25519Kyber768Draft00
のみを許可します。これらは、古典的なX25519とポスト量子セキュアKyberの間のハイブリッド鍵交換です。Kyberが安全でないことが判明した場合でも、X25519の非ポスト量子セキュリティに依存することができます。これらの鍵交換は、私たちのネットワークでサポートされているものと同じです。
cloudflared
は、この2つの鍵交換のいずれかをランダムに1つ選択します。後者は通常TLSの初期パケットを2つ必要とする_ClientHello_に対し、前者は1つで済むためです。これにより、断片化された_ClientHello_が問題を起こすかどうかをテストすることができます。
cloudflared
がポスト量子接続の確立に失敗すると、試行されたキー交換、cloudflared
のバージョン、エラーをpqtunnels.cloudflareresearch.comに報告し、ネットワークの問題を可視化することができるようにします。量子トンネル導入後のアップデートについては、そちらのページをご覧ください。
cloudflared
と当社のネットワークの間のトンネルの制御接続と認証は、まだポスト量子的な安全性ではありません。ここでは、トンネル自体のデータの_store-now-decrypt-later_に対する問題よりも緊急性はありません。
Goでは、これらのポスト量子QUIC鍵交換をオープンソースでサポートしています。
展望
今後10年間で、業界はポスト量子データ保護を展開することになるでしょう。ソフトウェア・アップデートのように簡単なケースもあれば、はるかに難しいケースもあるでしょう。ポスト量子トンネルは、Cloudflareのネットワークとお客様のオリジン間の接続をシンプルかつ使いやすい方法で保護します。これは、誰もが個人情報を保護しながら安全なインターネットを楽しみ続けることができるための、ポスト量子インターネットへの重要な一歩です。