イベントID | 詳細 | ソース |
---|---|---|
36887 | 次の致命的な警告を受け取りました: 20。 | Schannel |
致命的と言われてビクッとするがまずSchannelとやらは何かというと、ここによればどうもSSL絡みの何からしい。MSのURLはコロコロ変わるんで後日面倒がないように抜粋。別に読まなくてよろしい。
Schannel は、インターネットで標準的に用いられている 2 種類の認証プロトコル、Secure Sockets Layer (SSL) とトランスポート層セキュリティ (TLS) を実装するセキュリティ サポート プロバイダー (SSP) です。
セキュリティ サポート プロバイダー インターフェイス (SSPI) は、認証など、セキュリティ関係の機能を実行するために Windows システムで用いられる API の 1 種です。SSPI は、Schannel SSP をはじめとする数種類のセキュリティ サポート プロバイダー (SSP) に共通のインターフェイスとして機能します。
トランスポート層セキュリティ (TLS) プロトコルの Version 1.0、1.1、1.2、Secure Sockets Layer (SSL) プロトコルの Version 2.0、3.0、データグラム トランスポート層セキュリティ (DTLS) の Version 1.0、Private Communications Transport (PCT) プロトコルは、いずれも公開キーの暗号化に基づいています。セキュリティ チャネル (Schannel) 認証プロトコル スイートは、これらのプロトコルに対応しています。どの Schannel プロトコルでも、クライアント/サーバー モデルが使用されています。
この時点でもう特に大きな害はないというのは見当が付くがそれだとネタにならない。という事でもうちょっと気合い入れて調べてみたらこういうのを見つけた。下記の表はこことここから生成。
AlertCode | AlertMessage | Description |
---|---|---|
0 | close_notify | コネクションの終了を通知する |
10 | unexpected_message | 不適切なメッセージを受信したことを通知する |
20 | bad_record_mac | 受信したメッセージのMACが不正であることを通知する |
21 | decryption_failed | メッセージサイズがブロック数と異なるなど復号化時に問題が発生したことを通知する |
22 | record_overflow | 上限を超えたサイズのメッセージを受信したことを通知する |
30 | decompression_failure | 伸張したデータが大きすぎるなど、データ伸張時に問題が発生したことを通知する |
40 | handshake_failure | 指定されたセキュリティパラメータのセットに、利用できるものがないことを通知する |
42 | bad_certificate | 壊れた証明書、署名の正当性が確認できない、などを通知する |
43 | unsupported_certificate | サポートされていない証明書であることを通知する |
44 | certificate_revoked | 署名者によって無効化された証明書であることを通知する |
45 | certificate_expired | 期限切れの証明書である、または現在無効な証明書であることを通知する |
46 | certificate_unknown | 証明書の処理中に何らかの問題が発生して、証明書を受理できないことを通知する |
47 | illegal_parameter | ハンドシェイク中のパラメータが範囲外、または他フィールドと矛盾していることを通知する |
48 | unknown_ca | 有効な証明書チェーンを受信したが、CA証明書がないか、信頼できるCAでないため受け付けられなかったことを通知する |
49 | access_denied | 有効な証明書を受信したが、アクセスコントロールを適用したときに、送信者がネゴシエーション継続の中止を決定したことを通知する |
50 | decode_error | フィールド値が範囲外であったり、メッセージの長さに異常があり、メッセージのデコードができないことを通知する |
51 | decrypt_error | ハンドシェイク暗号化に失敗したことを通知する。署名の検証、鍵交換の復号、終了メッセージの検証に失敗したことも含まれる |
60 | export_restriction | 輸入規制に従わないネゴシエーションが行われたことを通知する |
70 | protocol_version | 指定されたプロトコルバージョンはサポート対象外であることを通知する |
71 | insufficient_security | クライアントで利用可能な暗号化アルゴリズムよりもより安全なアルゴリズムが必要であることを通知する |
80 | internal_error | メモリアロケーション失敗など、ハンドシェイクとは無関係な理由でネゴシエーションが継続できなくなったことを通知する |
90 | user_cancelled | ハンドシェイク中にユーザーが処理中止を要求したことを通知する |
100 | no_renegotiation | 再ネゴシエーションによるセキュリティパラメータの変更ができないことを通知する |
255 | unsupported_extension | その他 |
SSL及びTLSが返すAlert Codeの一覧だ。これによるとうちは20を返してるんでbad_record_macという事らしい。macってなんだよ?macアドレスか?と思ったら違う。ここによれば、要するにデータのハッシュを送信側と受信側で付き合わせて改竄の有無を確認すると言う事らしい。ここまで来てやっとエラーの意味が分かった。このハッシュが合わないよと言ってる訳か。致命的と言えば致命的だがOSにダメージがいく類いの物ではないようだ。意味が分かってめでたしめでたし。