SSL

    xiaoxiao2022-07-01  132

    SSL通信过程

    1、当客户机c连接服务器s时,它发送一个28字节的随机值 nc到服务器, 2、而s的回应是自己的随机值 ns,加上证书 certs。 3、客户机确认VkCA( < attrs, Eke, interval >,a ) = true, 并且确认当前时间处于有效时间区间interval。如果两个条件都满足,则就证明了服务器的身份。接着客户机生成一个随机的46字节的预主密钥(premaster secret)pms,并且发送cpms = Eke(pms)。 4、服务器恢复pms = Dkd(cpms)。 现在客户机和服务器都有了nc、ns和pms,它们可以算出共享的48字节的主控密钥(master secret) ms = H(nc, ns, pms)。只有服务器和客户机可以计算ms,因为只有它们知道pms。此外,ms对nc和ns的依赖确保了ms会是新鲜的。此时,客户机和服务器通过ms计算下列密钥:

    对称加密密钥kcscrypt, 加密客户机到服务器的消息对称加密密钥ksccrypt, 加密服务器到客户机的消息MAC生成密钥kcsmac, 用于生成客户机到服务器的消息认证者MAC生成密钥kscmac, 用于生成客户机到服务器的消息认证者

    为了发送消息m,客户机发送: c = Ekcscrypt(<m, Skcsmac(m)>) 收到c后,服务器恢复 <m, a> = Dkcscrypt( c ) 当Vkcsmac(m, a) = true 时,接收m。同样,为了发送消息m到客户机,服务器发送 c = Eksccrypt(<m, Skscmac(m)>) 而客户机恢复 <m, a> = Dksccrypt( c ) 当Vkscmac(m, a) = true 时,接收m。

    服务器证书内容

    证书certs内容:

    服务器的各种属性attrs,包括唯一的特别(distingusihed)名称和常用(DNS)名称。服务器的非堆成加密算法E()的标识。这个服务器的公共密钥ke证书应为有效的时间区间(interval)。CA根据以上信息计算数字签名a,也就是说,a = SkCA(<attrs, Eke, interval>)。
    最新回复(0)