リンクを作成するためのHttps

Httpsリンクプロセス

クライアントこんにちは

sequenceDiagram
客户端->>服务端: Client Hello

クライアントは、Client Helloメッセージをサーバーに送信します。このメッセージには、クライアントがサポートするTLSバージョン、暗号スイート、およびクライアントが生成したランダム番号が含まれています。

サーバーこんにちは

sequenceDiagram
客户端->>服务端: Client Hello
服务端-->> 客户端: Server Hello

クライアントからClientHelloメッセージを受信した後、サーバーはServer Helloメッセージをクライアントに返します。このメッセージには、TLSバージョン、この通信用に選択された暗号スイート、およびサーバーによって生成されたランダム番号が含まれています。

サーバー証明書

sequenceDiagram
客户端->>服务端: Client Hello
服务端-->> 客户端: Server Hello
服务端-->> 客户端:服务器证书

次に、サーバーは独自の証明書をクライアントに送信します。証明書の内容は通常、次のようになります。

1.証明書フォーマットバージョン

証明書のバージョン番号は、ディレクトリクエリに使用される証明書形式で使用されるX.509バージョン番号を指定するために使用されます。

2.証明書のシリアル番号

証明書のシリアル番号。証明書の発行者は、ディレクトリクエリのためにCAによって発行されたすべての証明書を識別するために、証明書の一意のシリアル番号を指定します。

3.署名アルゴリズム識別子

この証明書で使用される署名アルゴリズム(SHA-1、RSAなど)を指定するために使用される署名アルゴリズム識別子。

4.発行者

この証明書を発行したCAの名前。これは、認証用の証明書を発行したCAの識別可能な一意の名前(DN、識別名)を指定するために使用されます。

5.有効期間

証明書の有効期間。証明書の有効性を確認するために、証明書の開始日(notBefore)と終了日(notAfter)を指定します。

6.件名

ユーザープリンシパル名。認証用の証明書ユーザーのX.500一意名(DN)を指定するために使用されます。

7.件名公開鍵情報

ユーザープリンシパル公開鍵情報。

(1)アルゴリズム識別子、アルゴリズム識別。公開鍵を識別するために使用されるアルゴリズム。

(2)サブジェクト公開鍵、ユーザーサブジェクトの公開鍵。公開鍵自体を識別するために使用され、暗号化/復号化およびデジタル署名に使用されます。

8.発行者の一意のID

まれにしか使用されない、発行者のオプションの一意の識別子。

9.サブジェクト一意ID

対象証明書の所有者の一意のID。めったに使用されません。

10.拡張機能

追加情報を指定するための証明書拡張(拡張フィールド)。

証明書を確認する

验证的内容主要是两个:1、公钥的合法性。 2、证书的用户主体信息 公钥的校验可以通过证书链来验证,验证证书的用户主体信息可以避免拦截者通过向证书机构申请证书之后把证书返回给客户端。也就是说验证公钥的同时验证公钥提供者的身份是不是客户端要访问的服务端。

sequenceDiagram
客户端->>服务端: Client Hello
服务端-->> 客户端: Server Hello
服务端-->> 客户端:服务器证书
客户端->> 服务端:Premaster Secret

证书验证通过之后,客户端将前面的客户端随机数、服务端随机数生成一个Premaster Secret,之后发给服务端,至此,服务端和客户端都拥有一份相同的客户端随机数、服务端随机数和Premaster Secret。然后client和server会使用 Pseudo-Random Function 生成一个Master Secret,Master Secret用于在客户端和服务端两边生成:客户端加密密钥、服务端加密密钥、客户端 MAC Secret、服务端MAC Secret。

客户端加密密钥:用于加密客户端发送的消息。 服务端加密密钥:用于加密服务端发送的消息。 客户端 MAC Secret:用于对客户端发送的消息做hash算法用的Secret。 服务端MAC Secret:用于对服务端发送的消息做hash算法用的Secret。

为什么要客户端和服务端各自有一套加密密钥和MAC Secret呢? 这样是为了防止拦截者把客户端发送的消息原封不动的返回给客户端,如果用的是同一套则客户端会认为这是服务端返回回来的消息。

おすすめ

転載: juejin.im/post/6971672994867314725
おすすめ