[電源を入れる] HTTPS接続の確立

オリジナルリンク:https://www.cnblogs.com/shiqi17/p/9756880.html

https://www.jianshu.com/p/bd75ab32ae57

接続を確立するためにHTTPプロセスをクリックしてください:HTTPスリーウェイハンドシェイク、HTTPリクエストは、何が起こったかであります

A、HTTPS

 
HTTPは、ハイパーテキスト転送プロトコルです。送信データへのHTTPプロトコルは、とても危険な個人情報を送信するためにHTTPプロトコルを使用して、ある暗号化されていない、クリアテキストです。データ伝送のプライバシーを暗号化できることを確認するには、HTTPを介して送信されるデータのためにそのように設計NetscapeのSSL(セキュアソケットレイヤー)プロトコルはHTTPS暗号化され、これにより誕生しました。SSL現在のバージョンは3.0で、IETF(インターネット技術タスクフォース)はSSL 3.0のためにIETFに続いて、RFC 6101で定義されているがアップグレードされているので、RFC 2246で定義されているがTLS(トランスポート層セキュリティ)1.0、。実際に、私たちは今、TLSを使用するHTTPSプロトコルですが、期限のSSLに比較的早期に出現し、今もサポートされているブラウザは、SSL HTTPSはまだ同義であるが、それはTLSであるかどうかSSLが最後の世紀であります事、SSL 3.0の最後のバージョンは、TLSは、私たちのために優れた血統を続けるために、今後のSSL暗号化サービスを継承します。TLSバージョン1.2は、現在、RFC 5246で定義されている、まだ広く使用されていません

  • HTTPS暗号化HTTPはSSL / TLSを使用してオーバー。これらは、TCP / IPに基づいています
     
HTTPS接続確立プロセス

HTTPS安全性と効率性の両方のために、対称暗号化と非対称暗号化を使用しています。送信処理では3つの主要が含まれます。

  • サーバーの公開鍵と秘密鍵、非対称暗号化が使用され

  • 対称暗号化に使用されるクライアントが生成したランダムキー

 
HTTPS接続手順、上記の図は、8つのステップに分けることができます。
  • 1、クライアントアクセスは接続をhttpsを指定します。

客户端会把安全协议版本号、客户端支持的加密算法列表、随机数C发给服务端。

  • 2、服务端发送证书给客户端

服务端接收密钥算法配件后,会和自己支持的加密算法列表进行比对,如果不符合,则断开连接。否则,服务端会在该算法列表中,选择一种对称算法(如AES)、一种公钥算法(如具有特定秘钥长度的RSA)和一种MAC算法发给客户端。

服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。

在发送加密算法的同时还会把数字证书和随机数S发送给客户端

  • 3、客户端验证server证书

会对server公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。

  • 4、客户端组装会话秘钥

如果公钥合格,那么客户端会用服务器公钥来生成一个前主秘钥(Pre-Master Secret,PMS),并通过该前主秘钥和随机数C、S来组装成会话秘钥

  • 5、客户端将前主秘钥加密发送给服务端

是通过服务端的公钥来对前主秘钥进行非对称加密,发送给服务端

  • 6、服务端通过私钥解密得到前主秘钥

服务端接收到加密信息后,用私钥解密得到主秘钥。

  • 7、服务端组装会话秘钥

服务端通过前主秘钥和随机数C、S来组装会话秘钥。

至此,服务端和客户端都已经知道了用于此次会话的主秘钥。

  • 8、数据传输

客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。

同理,服务端收到客户端发送来的密文,用服务端密钥对其进行对称解密,得到客户端发送的数据。

おすすめ

転載: www.cnblogs.com/Koaler/p/11986269.html