OpenVPN 2.4マニュアル から正しく理解できれば、ECDH TLS cipher suites
を使用している場合は、dh none
を設定できます。これは、dhキーを使用する場合と同じ(またはそれ以上の)セキュリティレベルになりますが、これは正しい仮定ですか?
Tls-authについては、マニュアルには「キーファイルを使用して認証だけでなくTLS制御チャネルも暗号化する場合は、代わりに-tls-cryptを使用する」と記載されています。
現在、私は[〜#〜] [〜#〜]を実行していますが、設定ではtls-auth
またはtls-crypt
を設定していますが、ログにはありますそうですか
Control Channel: TLSv1.2, cipher TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384, 521 bit EC, curve: secp521r1
楕円曲線を使用する場合、tls-crypt
オプションは不要であることを意味しますか?または、このオプションがなくても制御チャネルがすでに暗号化されている場合、tls-crypt
はどのようなセキュリティを追加しますか? UDPまたはTCPを使用している場合、違いはありますか?
ありがとう!
ECDH
とDH
はどちらも Diffie-Hellman鍵交換 のバリアントであり、計算的に複雑な除算を行う アーベル群 が必要です。しかしながら:
DH
アルゴリズムの適切な有限フィールドの生成は比較的時間がかかりますが(時間がかかります)、OpenVPNはopenssl dhparam
でそれを実行し、dh <filename>
で結果を提供するように求めます。このように、NSAの予算内にある Logjam攻撃 の影響を受ける可能性がある事前定義されたグループを使用しません。ただし、有限体での因数分解はよく理解されている主題であるため、DH
はECDH
よりも低速であり、同等のセキュリティレベルを備えています。
良い楕円曲線を生成するのは難しいので、mustpredefined ones を使用し、ecdh <filename>
オプションはありません。 dh
オプションについては、楕円曲線でdh none
を使用できます。楕円曲線での除算はあまり開発されていないため、DH
と同じレベルのセキュリティを確保するには、現在はより小さな曲線が必要です。
tls-auth
またはtls-crypt
オプションがなくても、dataはalwaysを暗号化します。 TLS
プロトコルは、前のポイントと同様に、鍵交換で取得した鍵を使用してデータを暗号化します。これらのオプションは、 TLSハンドシェイク の4つのパケットの処理方法を制御します。
通常、(HTTPS
プロトコルのように)ピアはお互いの事前の知識を持っていないため、暗号化されません。しかし、OpenVPNには利点があります。サーバーとすべての承認済みクライアントで共通の 対称キー を構成できます。これにより、これらの4つのパケットに署名または暗号化されます。
これにより、サーバーは署名されていないすべてのClientHello
メッセージをドロップできます。before計算的に重いTLS
プロトコルにリソースを割り当てます。そのため、攻撃者が一度に数千の接続を開始するDDoS
攻撃からより簡単に生き残ることができます。
tls-auth
の使用は、クライアントごとのWPA-Enterprise
認証とともに、Wi-Fiネットワークで共通のWEP
キーを構成することに似ています。主な違いは、WEP
暗号化は大きく破られているのに対し、HMAC
署名またはAES
暗号化はそうではないということです。したがって、Wi-Fiネットワーク上で前述の構成を再現することはできません(ソフトウェアではサポートされていません)。
UDP
対TCP
の選択は簡単です。可能な限りUDP
を使用してください。 TCP
は、送信されたすべてのIPパケットが失われることなく、送信された順序で到着することを保証します。
これはいい感じですが、VPN
トンネルは内部TCP
接続も転送します。パケットが失われた場合、OpenVPN
クライアントと内部TCP
接続を確立したプログラムの両方が起動しますretransmitting。ただし、内部接続から再送信されたパケットは宛先に到着しますafterOpenVPN
によって再送信されたパケットは配信されました。これにより、不要なネットワークトラフィックが発生します。
編集:DH
とECDH
の強さの比較が利用可能です。 Keylength.com :
DH
グループの必要なサイズは、列Discrete Logarithm Group
にあります。
同等の強度を持つ楕円曲線のサイズはElliptic Curve
列にあり、
たとえば、楕円曲線の次の構成:
ecdh-curve prime256v1
openssl dhparam -out /etc/openvpn/dh.pem 3072
を使用してDH
パラメータを生成し、以下を使用することと同等です。
dh /etc/openvpn/dh.pem
NIST勧告によって提供される値は、おおよそ OpenSSLセキュリティレベル に対応します。デフォルトのセキュリティレベルはレベル1です。これは、DH
グループの場合は最低2048
ビット、楕円曲線の場合は224
ビットです。 tls-cipher
オプションを使用して増やすことができます(形式については OpenSSLドキュメント を参照)。例えば。設定:
tls-cipher DEFAULT:@SECLEVEL=4
上記の2つの設定を必要なグループサイズ(DH
の場合は7680
、ECDH
の場合は384
)に調整するまで、OpenVPN接続は失敗します。