Javaテクノロジスタック
www.javastack.cn
より質の高い記事を読むためにフォロー
著者:背骨の上に立つ
出典:juejin.im/post/5ebe6870f265da7bce2696b9
「1. HTTPSがある理由」
HTTPSが登場する前は、すべてのリクエストがプレーンテキストで送信されていたため、送信中に誰かがパケットを傍受したりキャプチャしたりすると、すべての通信コンテンツが漏洩します。
より安全な方法は、通信内容を暗号化してから相手に送信することです。暗号化には、対称暗号化と非対称暗号化の2つの方法があります。
「2番目の対称暗号化」
対称暗号化とは、暗号化と復号化に同じキーを使用することです。しかし、通信の前に、クライアントとサーバーはそのような同じキーを持っていません。当事者の1つは、他の当事者に鍵を送信する必要があります。
送信プロセス全体の間、検証操作は行われないため、ハッカーはこのキーを傍受して暗号化されたコンテンツを解読することもできます。したがって、純粋な対称暗号化は安全ではありません。
「3つの非対称暗号化」
非対称暗号化とは、暗号化と復号化に異なるキーを使用することです。秘密鍵で暗号化して公開鍵で復号化することも、公開鍵で暗号化して秘密鍵で復号化することもできます。しかし、この状況があります。サーバーは秘密鍵と公開鍵を持ち、公開鍵をクライアントに送信します。クライアントは公開鍵を取得できるため、ハッカーも公開鍵を取得できます。
その後、サーバーからクライアントに送信されたすべてのコンテンツがハッカーによって解釈されます。ハッカーはサーバーの秘密鍵を持っていないため、クライアントはサーバーを公開鍵で暗号化し、影響を受けることなくサーバーに送信します。したがって、純粋な非対称暗号化も安全ではありません。
「鍵を転送するプロセス」
「4。主要なプロセスのグラフィカルな送信」
HTTPSは対称暗号化を使用して通信コンテンツを暗号化し、使用されるキーはAと呼ばれます。非対称暗号化を使用してキーAを暗号化し、それを相手に送信します(少し複雑です)。鍵Aが他人の手に渡らない限り、送信されたデータは他人に解読されません。
だから問題は、このキーを安全に相手に送る方法ですか?
鍵の送信プロセスを見てみましょう。
「5。なぜHTTPSは信頼できるのですか?」
HTTPSは3つの問題を解決するため、信頼できます。Spring BootはHTTPSをサポートしています。この推奨事項については、公式アカウントのJavaテクノロジースタックをフォローし、ブートに返信して他のチュートリアルをご覧ください。
暗号化通信は、他人が情報を入手したとしても、元の情報に戻すことはできません。
中間者攻撃を防ぎます。ハッカーはサーバーになりすますことはできません。ステップ2で、サーバーがクライアントにCA証明書を提供したためです。
クライアントが証明書を検証する場合、それは証明書と公開鍵がサーバーによって送信され、信頼性と信頼性があることを意味します。
クライアントが証明書を検証できない場合は、証明書が信頼できず、偽物である可能性があることを意味します。
CA証明書の信頼性。CA証明書は、企業または個人が申請する必要があり、その後、ドメイン名はメール検証などの方法で検証されます。ハッカーがWebサイトを装って証明書を取得する可能性を回避します。
技術レベルでは、CAの公開鍵はオペレーティングシステムまたはブラウザに書き込まれます。復号化できるのは、CA組織の秘密鍵で暗号化されたコンテンツのみです。証明書が実際にCAによって発行されていることを確認します。
「6、鍵の役割」
最後に、各キーの役割を確認しましょう。
最近の人気記事:
2. あなたの認識を破ります!Javaのnullポインタは実際にこのように遊ぶことができます
3. Tomcatをぶら下げて、Undertowのパフォーマンスは非常に爆発的です!!
4. スプリングブートは残酷です。一度に3つのバージョンをリリースしてください。
5. Spring BootはどのようにしてRedisを迅速に統合しますか?
7. Spring Boot Redisは分散ロックを実装しています。
8. 中国人は小さくて完全なJavaツールライブラリをオープンソース化しました!
9. 中国のオープンソースは非常に使いやすいRedisクライアントです。!
QRコードをスキャンして、Java Technology Stackの公式アカウントをフォローし、より多くのドライグッズを読んでください。