OpenSSLにおける PSKヒントの役割は正確には何ですか? クライアントの一種のサーバー識別だと思いますが、具体的なものは何も見つかりませんでした。
1 に答える
PSK IDヒントは明確に定義されていません(RFC 4279を参照)。事前共有キー(PSK)スキームでは、クライアントとサーバーの両方が同じ暗号キーのセットを導出できる必要があります。IDヒントは、サーバーがクライアントにキーの導出方法を指示するために提供するものです。
各サーバーは独自の方法でキーを生成できるため、クライアントはサーバーについて何かを知って、PSKIDヒントをどう処理するかを知る必要があります。また、実装ごとにヒントの使用方法が異なります。
たとえば、NETCONFは、PSKを生成するときにヒントを直接使用します(ここで、+
は連結を意味します)。
PSK = SHA-1(SHA-1(psk_identity + "Key Pad for Netconf" + password) +
psk_identity_hint)
一方、Symbian Secure User Plane Location(SUPL)プロトコルは、これを使用してプロトコルバージョンを表示し、クライアントが使用できるPSKジェネレーターのリストを提供します。
PSK-TLSで使用されるキー識別子はRAND@SLPの形式である必要があります。ここで、SLPはFQDN形式であり、RANDは128ビットの数値です。SUPL 1.0には、次のキー識別子が定義されています。
..。
PSK_H-SLP_Master_KeyおよびPSK_SPC_Keyは、128ビットまたは256ビットの長さである必要があります。PSK-TLSプロトコルで使用されるキーヒントは、「3GPP2SUPL1.0キー」に設定する必要があります</p>
同様に、 EMVスマートカードのTLS-PSKは、IDヒントを使用してPSKの計算方法を決定します。
パラメータpsk-identity-hintがサーバーによって配信されない場合、デフォルトモードが選択されます。このデフォルトモードは、静的PSKで機能します。それ以外の場合、psk-identity-hintは、xCDOL1値とPSK計算の特定のプロファイルを決定します。
ご覧のとおり、サーバーからPSKヒントを取得した場合、サーバーが提供する情報とその処理方法をすでに知っている必要があります。そうしないと、サーバーが生成するのと同じキーのセットを生成できなくなります。
脚注:NokiaはPSK-TLSドラフトRFC 4279を担当し、仕様を実装するパッチをOpenSSLに提出しました。