web-dev-qa-db-ja.com

OpenVPN -cipher vs -tls-cipher?

現在、サーバーで-tls-cipherコマンドを使用して、必要な暗号(TLS-DHE-RSA-WITH-AES-256-GCM-SHA384)のみを許可していますが、-cipherコマンドもあり、OpenVPNのマニュアルページでは、それらの間の違い。グーグルからも有用な情報は返されませんでした。多くの websites も私も2つを使うべきだと言っていますが、理由は言わないで、最初にここを確認したいと思いました。

接続の暗号化に-tls-cipherのみを使用するようにするには、-cipher + AES-256-GCMを使用する必要がありますか?

OpenVPN 2.3を使用しています。

7
Freedo

'モダン' OpenVPN(2.x、TLSモードを使用)は基本的に2つの接続をセットアップします。

  1. 「制御チャネル」。これは低帯域幅チャネルです。 「データチャネル」のネットワークパラメータとキーマテリアルが交換されます。 OpenVPNはTLSを使用して制御チャネルパケットを保護します。

  2. 「データチャネル」。これは、実際のVPNトラフィックが送信されるチャネルです。このチャネルは、制御チャネルを介して交換されるキーマテリアルでキーイングされます。

これらのチャネルは両方とも、単一のTCPまたはUDPポートで二重化されています。

--tls-cipherは、制御チャネルで使用される暗号を制御します。 --cipher 一緒に --authデータチャネルの保護を制御します。

また、セキュリティに関して、OpenVPNはTLSのようなmac-then-encryptではなく、encrypt-then-macをデータチャネルに使用します。あなたが聞くすべてのCBC関連の問題は、mac-then-encrypt + CBCの組み合わせによるものです。これは、データチャネルのAES-CBCがセキュリティの観点から完全に適切であることを意味します。

(そして、データチャネルのGCMサポートはまだありません。それはOpenVPN 2.4で到着します。)

12
Steffan Karger