system: [SYSTEM]

user: 6. 优化应用 SSL协议在电子商务、网上支付、机密文件的网络传输上发挥重要作用，用来保证信息的可靠、机密、完整性的传输，优化后的SSL协议对上述应用的安全性的到加强。下面详细描述优化后的SSL协议在电子商务中的一个应用实例，在网络交易中，客户下单后必须将自己的订单信息完整地传输给商家，才可以保证交易的正常进行，在双方都安装有TCM芯片的前提下，在网络间传输信息时采用优化后的SSL协议，其具体通信过程如下： T C ：客户端安装的TCM芯片； T S ：商家端安装的TCM芯片。 1) 客户 → 商家： C l i e n t H e l l o ( C ， V e r _ c ， R a n _ c ， S u i t _ c ) 客户通过 C l i e n t H e l l o 消息将它支持的SSL版本、加密算法、密钥交换算法、 h m a c 算法等信息发送给商家。 2) 商家 → 客户： S e r v e r H e l l o ( S ， V e r _ s ， R a n _ s ， S u i t _ s ) ，与1)相对应，商家通过 S e r v e r H e l l o 消息将Server端支持的SSL版本、加密算法、密钥交换算法、 h m a c 算法等信息发送给客户。 3) 商家 → 客户：商家进行SSL证书认证，将携带自己公钥信息的数字证书 P u b K C e r t S 和商家公钥 P u b K S 发送给客户。 4) 商家 → 客户：商家进行平台认证，将自身的平台身份证书 P E K C e r t S 和对应的平台身份公钥 P E K S 发送给客户。 5) 商家：商家封装TCM证书信息为 m 1 : m 1 = ( P E K S ， P E K C e r t S ) ；封装SSL证书信息为 m 2 ： m 2 = ( P u b K S ， P u b K C e r t S ) 。 6) 商家：商家计算 m 1 的哈希值 h m 1 ： h m 1 = h m a c ( m 1 ) ；计算 m 2 的哈希值 h m 2 ： h m 2 = h m a c ( m 2 ) ；计算 m 1 、 m 2 的哈希值 h m 12 ： h m 12 = h m a c ( m 1 ‖ m 2 ) 。 7) 商家：商家生成签名密钥对 K S 、 K P ，商家进行数字双签名得到 D S S ： D S S = a e n c ( m 12 ， K C S ) ，利用数字双签名将TCM平台身份证书和SSL证书关联在一起，表名此次SSL协议的特定平台环境为TCM中的信息。 8) 商家 → 客户：商家把 K S ， m 1 ， D S S 及 m 1 的哈希值 h m 1 发送给客户端TCM即 T C M C ，这样TCM只能得到 m 2 的杂凑值，但得不到 m 2 ；把 m 2 ， D S S 及 m 2 的哈希值 h m 2 发送给客户端主机 H C ，这样 H C 只能得到 m 1 的杂凑值而得不到 m 1 。 9) 客户：客户端TCM进行平台身份和SSL证书对应关系验证： 计算 h m ′ 12 = a d e c ( D S S ， K P ) ；计算 h m 1 = h a m c ( m 1 ) ;验证方程 h m 12 = h a m c ( m 1 ‖ m 2 ) 是否成立，若成立则签名有效，继续以下步骤，否则终止此次协议。 10) 客户：客户端主机进行平台身份和SSL证书对应关系验证： a) 计算 h m ′ 12 = a d e c ( D S S ， K P ) ；计算 h m 2 = h m a c ( m 2 ) ； b) 验证方程 h m 12 = h a m c ( m 1 ‖ m 2 ) 是否成立，若成立则签名有效，继续以下步骤，否则终止此次协议。 11) 客户：客户端TCM验证 P E K S 和 P E K C e r t S 。 12) 客户 → 商家：客户端发送 P E K C 和 P E K C e r t C 给商家，商家验证 P E K C 和 P E K C e r t C 。 13) 商家 → 客户：商家发送Server Hello Done消息，通知客户版本和加密套件协商结束，开始进行密钥交换。 14) 商家 → 客户：商家主机 H S 调用 T C M _ C r e a t e K e y E x c h a n g e (   ) ； 商家 T S 接到调用后: a) 创建秘钥协商会话，随机生成会话句柄 s h d Y 随机生成临时秘钥私钥y，计算临时秘钥公钥 Y = g y 将临时秘钥对 ( y ， Y ) 存储在TCM中并与句柄 s h d Y 绑定； T S 返回Y， s h d Y 给 H S ， H S 将Y发送给客户端 H C 。 15) 客户→商家：客户端主机 H C 随机生成一个预主秘钥 P r e M a s t e r S e c r e t ； 客户端TCM即 T C ：a) 随机生成临时秘钥私钥x，计算临时秘钥公钥 X = g x ； 计算 s e e d = S M 2 K E ( P E K C ， P E K S ， Y ， X ) ， K 1 = k d f ( ' e n c r y p t i o n ' ， s e e d ) ， K 2 = k d f ( ' i n t e r g r i t y ' ， s e e d ) ; 计算 a = s e n c ( P r e M a s t e r S e c r e t ， K 1 ) ， b = h m a c ( a ， K 2 ) ， s b l o b = ( a ， b ) . T C 返回X和 s b l o b 给 H C ， H C 将X和 s b l o b 传给 H S ， T C 同时删除临时秘钥对 ( x ， X ) 。 16) 商家：商家端TCM即 T S ：a) 计算 s e e d = S M 2 K E ( P E K C ， P E K S ， Y ， X ) ， K 1 = k d f ( ' e n c r y p t i o n ' ， s e e d ) ， K 2 = k d f ( ' i n t e r g r i t y ' ， s e e d ) ; 将 s b l o b 前32字节赋值给b，其余字节赋值给a； 验证 b = h a m c ( a ， K 2 ) ， 计算 P r e M a s t e r S e c r e t = s d e c ( a ， K 1 ) ， 用SMK存储主秘钥保护 P r e M a s t e r S e c r e t = s d e c ( a ， K 1 ) ： k e y B l o b = s e n c ( P r e M a s t e r S e c r e t ， S M K ) 。 商家：商家端TCM所有者调用 T C M _ R e l e a s e E x c h a n g e S e s s i o n ( s h d Y ) ， T S 接到调用后，删除 s h d Y 指向的临时秘钥对 ( y ， Y ) 。 商家：商家主机利用协商好的算法及参数 V e r _ c 、 V e r _ s 计算得到主密钥 M a s t e r S e c r e t ，接着计算 F i n i s h e d 消息的内容，及哈希值： F i n i s h e d = M D 5 ( M a s t e r S e c r e t + P a d 2 + M D 5 ( H a n d s h a k e M e s s a g e s + M a s t e r S e c r e t + P a d 1 ) )       + S H A ( M a s t e r S e c r e t + P a d 2 + S H A ( H a n d s h a k e M e s s a g e s + M a s t e r S e c r e t + P a d 1 ) ) 公式中 H a n d s h a k e M e s s a g e s 表示握手消息指从客户端问候消息开始的内容，不包括此消息在内的到这个步骤的信息， P a d 1 和 P a d 2 为填充字节。 商家→客户：商家 H S 传送 C h a n g e C i p e r S p e c 、 F i n i s h e d 给客户端 H C 。客户端 H C 计算主密钥： M a s t e r S e c r e t = h m a c ( P r e M a s t e r S e c r e t ) ， H C 计算 F i n i s h e d 消息的内容： F i n i s h e d ′ = M D 5 ( M a s t e r S e c r e t + P a d 2 + M D 5 ( H a n d s h a k e M e s s a g e s + M a s t e r S e c r e t + P a d 1 ) )       + S H A ( M a s t e r S e c r e t + P a d 2 + S H A ( H a n d s h a k e M e s s a g e s + M a s t e r S e c r e t + P a d 1 ) ) 比较 F i n i s h e d ′ 和 F i n i s h e d ，相同表示消息未被篡改，最后客户端也将 F i n i s h e d ′ 发给商家表示整个握手过程的结束。 商家：商家验证客户端发送的 F i n i s h e d ′ 消息，如果成立，则可以分块导出 M a s t e r S e c r e t 。 客户：客户端可以放心地使用主密钥 M a s t e r S e c r e t 加密订单信息发送给商家，商家可以用主密钥加密发送请求付款消息。