2017-12-06 4 views
1

私は軽いhttpサーバ(組み込みソフトウェアソリューション)を持っています。このhttpサーバはhttps接続を処理するopenssl関数を呼び出しています。暗号の順序を定義するopenssl関数

httpsサーバーにいくつかの暗号の優先順位を付けるようにします。

代わりにセッションキーを交換するためのRSA方式を使用して、あなた は、楕円曲線のDiffie-Hellmanの(ECDHE)を使用する必要があります:DH暗号を優先している場合は、次のlinkによると、https接続がより安全であるため、キー交換。 鍵交換アルゴリズムではなく、 暗号化アルゴリズムとしてRSA公開鍵暗号システムを使用できます。 ECDHEは通常のDH(Diffie-Hellman)よりもはるかに速い ですが、どちらもSSL接続に関連するエンティティだけがアクセスできる 鍵を作成します。 セッションキーがサーバーのキーペアにリンクされていないため、 サーバーの秘密キーのみを使用してSSLセッションを復号化することはできません。

完全転送秘密を有効にするには、次の手順を実行する必要があります。

1- DHE に続くリストの一番上にECDHE(楕円曲線 のDiffie-Hellmanの)スイートを、配置するために、あなたの暗号スイートを並べ替え(Diffie-Hellman)スイートです。

2 SSLクライアントによって提供される暗号スイートのリストからDH以外の鍵交換以外の暗号 スイートを有効にするようにサーバーを構成します。

DH暗号を最初に作成するために私のopensslサーバーの暗号順序を変更する方法はありますか?

+0

コードはどこですか... –

+0

好奇心の強い素材です。 SSLは、PKIではなく対称暗号化を使用します。鍵交換にRSAを使用しない場合は、RSAをまったく使用していません。 – EJP

答えて

1

OpenSSLの文書、ここでは関係の関数呼び出しからSSL_set_cipher_list

OpenSSLは、ここで使用する文字列を推奨される鍵交換としてRSAを使用して!kRSA無効にするので、HIGH:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4で、短命DHの使用を強制し、提供していますあなたがあなたの質問に書いている完全な前方の秘密。

免責事項として、上記の暗号化文字列は現在推奨されているものではない場合があります。これはOpenSSLのドキュメントで推奨されているものです。

+0

ssl CTX initの後に 'SSL_set_cipher_list()'の代わりに 'SSL_CTX_set_cipher_list()'を使うことは可能ですか? – MOHAMED

関連する問題