WebクライアントがSSLとTLSに対応しているかどうか

>エラー

WebAPIの呼び出しがうまくいかず「ハマった」話 - 星と月と太陽と

 

ここで言われている、

 

リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。

これが出ました。解消するには、

 

VB.NETでTLS1.2対応 - Qiita

 

ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls12

最初のブログで言われているのを参照して、わたしのプロジェクトではSystem.Net.WebClient()をインスタンシングして使うので、そのWebClientインスタンスについて、プロパティを

 

System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or System.Net.SecurityProtocolType.Tls12

として直りました。インスタンスがデフォルトの設定ではTLS1.2に対応していない(TLS1.2での通信をすることを想定せず、当該企画によって暗号化されたデータを読めない)ということでしょうか。

 

>SSLTLSとは

SSLとTLSとは?意外に知らないSSLとTLSの違い(簡単編) - 常時SSl Lab

 

SSL(Secure Socket Layer)は、インターネット上でやりとりされるデータの「盗聴」「改ざん」「なりすまし」を防止するための暗号化プロトコル(通信方法)です。

現在、通称としてSSLと呼ばれているものは、SSLに変わる新しい仕組みの『TLS(Transport Layer Security)』というものになっています。

SSLとかTLSとかというのは暗号通信の規格のようです。

 

httpとhttpsの違いとは?知らないと恥ずかしいWEBセキュリティの基本 - CyberSecurity.com

 

httpはTLSなし、httpsTLSありの、サーバ側の運用ということのようです。ちなみに上記修正前のWebClientで、アクセスできたサイトをみると、httpでした。Httpsのサイトへのアクセスの際にはクライアント側もtls1.2が必要ということのようです。普段われわれがWebブラウジングに使っているブラウザもTLS1.2に対応しているのでしょうか。私が普段使っているFireFoxだと、

 

参考

 

検索窓にabout:config

 

f:id:zizamo2193:20210424142429p:plain

 

security.tls.version.max、minのところを確認、で分かるみたいです。

 

f:id:zizamo2193:20210424142445p:plain