2017-01-14 20 views
0

システム上で2つの事前共有キーを生成し、2つのホストAとBに配布して、AとBがそれらのキーを使用して、それら? 私はRSAのような公開鍵については言及していませんが、2つの事前共有鍵が2つの当事者に引き渡されています!OpenSSLで事前共有キーを使用する方法

私はそれをC++で実装する必要があります。可能であれば、私はそのための解決策が必要です。

+0

*」は、それがAとBは、その後の間で暗号化された接続のためにこれらのキーを使用できるように、2つのホストAとBに配布、システム上の2事前共有鍵を生成することが可能である見ますそれら "* - はい。 TLSは、そのための暗号スイートのファミリーにTLS-SRPとTLS-PSKを提供します。両方とも共有秘密鍵を使用して安全なチャネルを構築します。 SRPはDiffie-Hellman問題を使用し、PSKは基本となるプリミティブとしてブロック暗号を使用します。 – jww

+0

しかし、両方とも認証のために事前共有キーのみを使用します。彼らは引き続き実際の暗号化のために交渉されたセッション鍵を使用します。 – EJP

+0

それでは、2つのホストが事前共有鍵を使用するにはどうすればよいですか?着信接続を受け取ったときに読み込んで適用する特別なディレクトリにコピーするだけでいいですか? – wasp256

答えて

1

はい、可能です。あなたが探しているように見えるのは、対称鍵暗号化です。

この場合、キーは通常、必要な乱数の数だけです。暗号的に安全なRNGソースがあればOKです。あとでopensslを使うつもりなら、RAND_bytes()が動作します。

またAES Encryption -Key Generation with OpenSSL

+0

しかし、この生成された鍵をホスト上に置き、受信側のSSL/TLS接続にどのように使用させるのでしょうか? – wasp256

+0

それは質問の文章が求めるものではありません。しかし、この例は、 "openssl tls psk"というグーグルの最初のリンクで見つけることができます。https://bitbucket.org/tiebingzhang/tls-psk-server-client-example/src/783092f802383421cfa1088b0e7b804b39d3cf7c?at=default – viraptor

関連する問題