Schannel の TLS 1.2 において、署名アルゴリズム md5RSAがサポートされていない

現象
Schannel にて通信プロトコルにTLS 1.2 を利用した場合、署名アルゴリズムにmd5RSAと指定された証明書を認証に使用すると、InitializeSecurityContext が  SEC_E_INVALID_TOKEN エラーで失敗いたします。
 
対象となる証明書は、以下になります。
・ルート証明書
・サーバー証明書
・クライアント証明書
・証明書チェーンに存在する中間証明書。
原因
本動作は仕様となります。
Schannel の TLS 1.2 では、安全性向上のため、署名アルゴリズム md5RSA はサポートいたしておりません。

回避策
以下のいずれかの方法でSEC_E_INVALID_TOKEN エラーを回避することが可能です。

方法1.
アルゴリズム md5RSAで署名された証明書を使用する場合は、通信プロトコルはTLS 1.1 で接続を行います。
具体的にはクレデンシャルハンドルを取得する AcquireCredentialsHandle (Schannel) 関数の第五引数に渡す SCHANNEL_CRED構造体のgrbitEnabledProtocolsメンバーにSP_PROT_TLS1_1_CLIENT もしくはSP_PROT_TLS1_1_SERVERを指定します。

参考技術情報:
AcquireCredentialsHandle (Schannel) function
http://msdn.microsoft.com/en-us/library/windows/desktop/aa374716(v=vs.85).aspx

方法2.
Schannel にて TLS 1.2を利用する場合は、証明書の署名アルゴリズムで使用するハッシュアルゴリズムには SHA1 以上(sha1RSA、sha256RSA等)のアルゴリズムを利用します。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2987584 - 最終更新日: 09/29/2016 15:47:00 - リビジョン: 4.0

Windows 7 Service Pack 1, Windows 8, Windows 8.1

  • KB2987584
フィードバック