Google は PSP セキュア ネットワーク プロトコルに関連する開発を発見しました

Googleは、データセンター間のトラフィックの暗号化に使用されるPSP(PSPセキュリティプロトコル)の仕様の公開とリファレンス実装を発表した。 このプロトコルは、IPsec ESP (カプセル化セキュリティ ペイロード) と同様の IP 経由のトラフィック カプセル化アーキテクチャを使用し、暗号化、暗号整合性制御、および送信元認証を提供します。 PSP 実装コードは C で書かれており、Apache 2.0 ライセンスに基づいて配布されます。

PSP の特徴は、暗号化と復号化の操作をネットワーク カード側に移す (オフロード) ことによって計算を高速化し、中央プロセッサの負荷を軽減するプロトコルの最適化です。 ハードウェア アクセラレーションには、特別な PSP 互換ネットワーク カードが必要です。 PSP をサポートしないネットワーク カードを備えたシステムの場合は、SoftPSP のソフトウェア実装が提案されます。

UDP プロトコルは、データ転送のトランスポートとして使用されます。 PSP パケットは IP ヘッダーで始まり、次に UDP ヘッダー、そして暗号化と認証情報を含む独自の PSP ヘッダーが続きます。 次に、元の TCP/UDP パケットの内容が追加され、整合性を確認するためのチェックサムを含む最後の PSP ブロックで終わります。 PSP ヘッダーは、カプセル化されたパケットのヘッダーとデータと同様に、パケットの ID を確認するために常に認証されます。 カプセル化されたパケットのデータは暗号化できますが、TCP ヘッダーの一部を平文のまま (真正性制御を維持しながら) 選択的に暗号化を適用することも可能で、たとえば、中継ネットワーク機器上のパケットを検査する機能を提供します。

Google は PSP セキュア ネットワーク プロトコルに関連する開発を発見しました

PSP は特定のキー交換プロトコルに関連付けられておらず、いくつかのパケット形式オプションを提供し、さまざまな暗号化アルゴリズムの使用をサポートしています。 たとえば、暗号化と認証 (認証) には AES-GCM アルゴリズムがサポートされ、実際のデータを暗号化しない認証には AES-GMAC がサポートされています。たとえば、データに価値がないが、データが価値がないことを確認する必要がある場合です。送信中に改ざんされていて、最初に送信されたものが正しいものであることを確認します。

一般的な VPN プロトコルとは異なり、PSP は通信チャネル全体ではなく、個々のネットワーク接続のレベルで暗号化を使用します。 PSP は、トンネル化された UDP 接続と TCP 接続ごとに個別の暗号化キーを使用します。 このアプローチにより、異なるアプリケーションやプロセッサからのトラフィックをより厳密に分離することが可能になります。これは、異なるユーザーのアプリケーションやサービスが同じサーバー上で実行されている場合に重要です。

Google は、自社の内部通信の保護と Google Cloud クライアントのトラフィックの保護の両方に PSP プロトコルを使用しています。 このプロトコルは当初、Google レベルのインフラストラクチャで効果的に動作するように設計されており、数百万のアクティブなネットワーク接続が存在する場合や XNUMX 秒あたり数十万の新しい接続が確立される場合でも暗号化のハードウェア アクセラレーションを提供する必要があります。

「ステートフル」と「ステートレス」の 256 つの動作モードがサポートされています。 「ステートレス」モードでは、暗号化用のキーがパケット記述子でネットワーク カードに送信され、復号化のためにマスター キー (24 ビット AES) を使用してパケット内に存在する SPI (セキュリティ パラメータ インデックス) フィールドから抽出されます。 、ネットワーク カードのメモリに保存され、XNUMX 時間ごとに交換されます)により、ネットワーク カードのメモリを節約し、機器側に保存される暗号化された接続の状態に関する情報を最小限に抑えることができます。 「ステートフル」モードでは、IPsec でのハードウェア アクセラレーションの実装方法と同様に、各接続のキーがネットワーク カードの特別なテーブルに保存されます。

Google は PSP セキュア ネットワーク プロトコルに関連する開発を発見しました

PSP は、TLS と IPsec/VPN プロトコル機能の独自の組み合わせを提供します。 TLS は、接続ごとのセキュリティという点では Google に適していましたが、ハードウェア アクセラレーションに対する柔軟性の欠如と UDP サポートの欠如により、適していませんでした。 IPsec はプロトコルの独立性を提供し、ハードウェア アクセラレーションを適切にサポートしていましたが、個々の接続へのキー バインドをサポートしておらず、少数のトンネルのみを作成するように設計されており、完全な暗号化状態をメモリ内のテーブルに保存するため、ハードウェア アクセラレーションのスケーリングに問題がありました。ネットワーク カードの容量 (たとえば、10 万の接続を処理するには 5 GB のメモリが必要です)。

PSP の場合、ネットワーク カード メモリを占有することなく、暗号化の状態に関する情報 (キー、初期化ベクトル、シーケンス番号など) を TX パケット記述子またはホスト システム メモリへのポインタの形式で送信できます。 Google によると、これまでは、同社のインフラストラクチャにおける RPC トラフィックの暗号化にコンピューティング能力の約 0.7% と大量のメモリが費やされていました。 ハードウェア アクセラレーションを使用した PSP の導入により、この数字を 0.2% に削減することができました。

出所: オープンネット.ru

コメントを追加します