TLSまたはトランスポート層セキュリティ(Transport Layer Security)は暗号化プロトコルです。TLSを介した通信が安全でプライベートなままであるように設計されています。この投稿では、TLSハンドシェイクとは何か、および問題が発生した場合にTLSハンドシェイクを修正する方法について説明します。
TLSハンドシェイクについて説明する前に、TLSがいつ発生するかを理解しましょう。HTTPS経由(HTTPS)でWebサイトまたはアプリケーションにアクセスするたびに、TLSが使用されます。電子メール、メッセージ、さらにはVOIPにアクセスする場合、 (VOIP)TLSを使用します。HTTPSはTLS暗号化の実装であることを知っておく必要があります。
TLSハンドシェイクとは何ですか
ハンドシェイクは、2つのエンド間のネゴシエーションの形式です。人と出会うときと同じ(Just)ように握手して、他のことをします。同様の行で、TLSハンドシェイクは2つのサーバー間の確認応答の形式です。
TLSハンドシェイク中に、サーバーは相互に検証して暗号化を確立し、キーを交換します。すべてが本物であり、予想どおり、より多くのデータ交換が行われる場合。4つの主要なステップがあります。
- (Specify)通信に使用するTLSのバージョンを指定します。
- (Choose)使用する暗号化アルゴリズムを選択します
- 信頼性は、公開鍵とSSL認証局のデジタル署名を使用して検証されます
- セッションキーが生成され、交換されます
素人の言葉で言えば、彼らは最初に挨拶し、次にサーバーはクライアントが検証する必要のある証明書を提供します。検証が完了すると、セッションが生成されます。キーは、セッションを通じてデータが交換されるために作成されます。
読む(Read):TLSとSSLの暗号化方法の違い。
TLSハンドシェイクを修正する方法
サーバー側の問題がある場合は何もできませんが、ブラウザに問題がある場合は修正できます。たとえば、サーバーが認証できない証明書を提供している場合、それについては何もできません。ただし、問題がTLSプロトコルの不一致である場合は、ブラウザから変更できます。
- システム時刻が正しいかどうかを確認します
- 中間者(Man in the middle)攻撃をチェックする
- WindowsでTLSプロトコルを変更する
- ブラウザプロファイル(Delete Browser Profile)または証明書データベースを削除する(Certificate Database)
- ブラウザをリセットします。
TLSハンドシェイクが失敗する理由は他にもたくさんあり、シナリオによって異なります。したがって、ここではTLS(TLS)を修正するいくつかの方法がありますが、その前に、常にこれらのルールを使用して問題を除外してください。
- 別のサイトに確認し、問題が解決しないかどうかを確認してください。
- 複数のネットワーク接続、つまりWiFiまたは有線に切り替えます
- ネットワークを変更(Change)します。つまり、モバイルホットスポットや別のルーターに接続するか、パブリックネットワークを試します。
1]システム時刻が正しいかどうかを確認します(Check)
これが、 TLS(TLS)ハンドシェイクがほとんどの場合失敗した最大の理由です。システム時刻は、証明書が有効か期限切れかをテストするために使用されます。コンピューターとサーバーの時刻に不一致があると、証明書の有効期限が切れているように見える可能性があります。自動に設定して時間を修正します。
ここでもう一度Webサイトにアクセスし、TLSハンドシェイクが修正されたかどうかを確認します
2]中間者問題
1つのサイトで発生し、セキュリティソフトウェアの問題が発生する場合は、1つのルールがありますが、すべてのWebサイトで発生する場合は、システムの問題です。
コンピューターのセキュリティソフトウェアまたはブラウザー拡張機能がTLS接続を傍受し、何かを変更して、問題のあるTSLハンドシェイクを引き起こしている可能性があります。システム上のウイルスがすべてのTLS(TLS)問題を引き起こしている可能性もあります。
一部のブラウザ拡張機能はプロキシ設定(change proxy settings)を変更し、この問題を引き起こす可能性があります。
いずれの場合も、コンピュータまたはセキュリティソフトウェアを修正する必要があります。これをさらに確認する最善の方法は、別のコンピューターを使用して、問題の原因となっている同じWebサイトまたはアプリケーションを開くことです。
3]WindowsでTLSプロトコルを変更する
Windows 10以前のバージョンのWindowsは、システムのプロトコル設定を一元化します。TLSバージョンを変更する必要がある場合は、インターネット(Internet) プロパティ(Properties)を使用して変更できます。
- 実行(Run)プロンプトにinetcpl.cplと入力し、 Enterキーを押します。
- [インターネット(Internet)のプロパティ]ウィンドウが開いたら、 [詳細設定(Advanced)]タブに切り替えます。
- 最後までスクロールして[セキュリティ]セクションを見つけます。ここで(Security)TLSを追加または削除できます。
- WebサイトがTLS1.2(TLS 1.2)を探していて、それがチェックされていない場合は、それをチェックする必要があります。同様に、誰かがTLS 1.3(with TLS 1.3)を試している場合は、それを確認する必要があります。
- 保存を申し込ん(Apply)で、同じWebサイトをもう一度開いてみてください。
Chrome、IE、およびEdgeはWindowsの機能を使用しますが、Firefoxは(Firefox)、証明書データベースと同様に、独自に管理します。Firefoxで(Firefox)TLSプロトコルを変更する方法は次のとおりです。
- Firefoxを開き、 about:config と入力して、Enterキーを押します。
- 検索ボックスに「TLS 」と入力し、 (TLS)security.tls.version.minを見つけます。
- 次のように変更できます。
- 1と2は、TLS1と1.1を強制します
- 3TLS1.2を強制します
- 4TLS1.3(TLS 1.3)の最大プロトコルを強制します。
読む(Read): TLS1.0を無効にする方法(How to disable TLS 1.0)。
4]ブラウザプロファイル(Delete Browser Profile)または証明書データベースを削除します(Certificate Database)
すべてのブラウザは、証明書用のデータベースを維持しています。たとえば、すべてのFirefoxプロファイルにはcert8.dbファイルがあります。そのファイルを削除し、再起動すると修正される場合、問題はローカル証明書データベースに関連しています。
同様に、Windowsでは(Windows)、IEまたはEdgeを使用する場合、証明書マネージャーが責任を負います。または、edge://settings/privacyManage HTTPS/SSL certificates and settings.]をクリックし ます。証明書を削除して再試行してください
データベースが見つからない場合は、プロファイルを削除して、再試行してください。
4]ブラウザをリセット(4] Reset Browser)
ブラウザの1つに問題がある場合は、これが最後の手段です。完全にアンインストールしてから、組み込みの機能を使用してブラウザを再インストールまたはリセットすることを選択できます。リンクをたどって、Chrome、Microsoft Edge、Firefoxをリセットします。
最後に、証明書が無効であってもWebサイトを閲覧することはできますが、Webサイトとの取引は絶対に行わないでください。クレジットカードを使用したり、アカウントのパスワードを入力したりしないでください。
これらのヒントが簡単に理解でき、ブラウザまたはコンピュータでTLSの問題を解決できたことを願っています。私はあなたに十分な解決策を提供するために最善を尽くしました、しかし正直なところ、TLSは非常に広大であり、より多くの解決策が利用できるかもしれません。
What is TLS handshake? How to fix TLS handshake?
TLS or Transport Layer Security is an encryption protocol. It is designed such that communication through TLS remains secure and private. In this post, I will explain what TLS handshake is and how to fix the TLS handshake if you face issues.
Before we go ahead and talk about the TLS handshake, let’s understand when TLS occurs. Every time you access a website or application over HTTPS, TLS is used. When you access emails, messages, and even VOIP, it uses TLS. You should know that HTTPS is an implementation of TLS encryption.
What is TLS handshake
A handshake is a form of negotiation between two ends. Just like when we meet people, we shake hands, and then go ahead with anything else. On similar lines, the TLS handshake is a form of acknowledgment between two servers.
During the TLS handshake, the servers verify each other and establish encryption, and also exchange keys. If everything is authentic, and as expected, more data exchange will take place. There are four major steps:
- Specify which version of TLS will be used for communication.
- Choose which encryption algorithms will be used
- Authenticity is verified using public key and the SSL certificate authority’s digital signature
- Session keys are generated and exchanged
In layman’s word, they first say hello, then the server offers a certificate that the client needs to verify. Once the verification is complete, a session is generated. A key is created through which data is exchanged through the session.
Read: Difference between TLS and SSL encryption methods.
How to fix TLS handshake
You cannot do anything if there is a server-side issue – but you are having a problem with the browser, it can be fixed. For example, if the server offers a certificate that cannot be authenticated, then you cannot do anything about it. However, if the problem is a mismatch of the TLS protocol, then you can change it from the browser.
- Check if the system time is correct
- Check for Man in the middle problem
- Change TLS Protocol in Windows
- Delete Browser Profile or Certificate Database
- Reset Browser.
There are many more reasons why the TLS handshake can fail, and it depends on the scenario. So here some ways to fix TLS, but before that, always use these rules to filter out the problem.
- Check with different sites, and if the problem remains.
- Switch to multiple network connections, i.e., WiFi or Wired
- Change network, i.e., connect to a mobile hotspot or different router or even try a public network
1] Check if the system time is correct
It is the top reason why the TLS handshake has failed most of the time. The system time is used to test whether the certificate valid or expired. If there is a mismatch between the time on your computer and the server, it can make certificates look expired. Fix the time by setting it to automatic.
Now visit the website again, and check if has fixed the TLS handshake
2] Man in the middle problem
There is one rule if it’s happening for one site, then its security software problem, but if it’s happening for all the websites, then its a system problem.
The security software or browser extension on your computer may be intercepting the TLS connections and changing something which results in problematic TSL handshake. It is also possible that a virus on the system is causing all the TLS problem.
Some browser extensions change proxy settings, and it may cause this problem.
In either case, you need to fix your computer or security software. The best way to further verify this is by using another computer and open the same website or application, which was causing the problem.
3] Change TLS Protocol in Windows
Windows 10 and earlier versions of Windows centralize the protocol settings in the system. If you need to change the TLS version, you can do it using Internet Properties.
- Type inetcpl.cpl in the Run prompt and hit Enter key.
- Once the Internet properties window opens, switch to the Advanced tab.
- Scroll to the end to find the Security section, and here you can add or remove TLS.
- If the website is looking for TLS 1.2, and it is not checked, you need to check it. Similarly, if someone is experimenting with TLS 1.3, you need to check it.
- Apply to save, and try opening the same website again.
While Chrome, IE, and Edge use Windows features, Firefox, like its certificate database, manages on its own. Here is how to change the TLS protocol in Firefox:
- Open Firefox, type about:config and press Enter
- In the search box, type TLS, and locate security.tls.version.min
- You can change it to:
- 1 and 2 to force TLS 1 and 1.1
- 3 to force TLS 1.2
- 4 to force a maximum protocol of TLS 1.3.
Read: How to disable TLS 1.0.
4] Delete Browser Profile or Certificate Database
Every browser maintains a database for certificates. For example, every Firefox profile has a cert8.db file. If you delete that file, and a restart fixes it, then the issue is related to the local certificate database.
Similarly, in Windows, when using IE or Edge, the Certificate Manager is responsible, or you can go to the edge://settings/privacy and click on Manage HTTPS/SSL certificates and settings. Delete certificates and try again
If you cannot find the database, delete the profile, and try again.
4] Reset Browser
It’s the last resort if you are having the issue with one of the browsers. You can choose to uninstall completely and then reinstall or reset the browser using the inbuilt feature. Follow the links to reset Chrome, Microsoft Edge, and Firefox.
Lastly, while you can browse a website even if the certificate is invalid, make sure not to perform any kind of a transaction with the website. Neither you should use a credit card, nor you should enter your account password.
We hope these tips were easy to follow, and you were able to resolve the TLS issue on your browser or your computer. I have tried my best to offer you enough solution, but honestly, TLS is extremely vast, and more solutions may be available.