Set协议参与方:
用户,卖家,CA,internet,物流中心,银行
规范:
- 用户,卖家,支付网关通过internet与ca交流
- CA与银行通过专用网络
- 收单银行与发卡银行通过银行专用网络
- 支付网关与银行通过网络专线交互
步骤:
- 购买初始化请求:用户c向商家M请求交易号,消息一
- 回答:M指派交易号,签名后,消息二发送给c
- 购买请求:c验证消息二后发送购买请求消息三给M,其中包含(OI,PI),详细过程见后面
- 授权与获取请求:M验证后,产生授权请求到支付网关P,消息4
- P回答:验证后,看PI,OI,持卡人是否一致,通过则发消息给M,消息5
- 购买回答:M收到5后,转发给c,消息六。
其中步骤3中发送的消息3是双签名,5是验证,如何实现:
- C产生OI和PI,OI是订单消息,PI是付款消息,分别hash,有H(OI), H(PI), 然后连接二者,再hash,得H(PO),然后用自己的私钥加密,
得Sign(H(PO)), 之后发送(OI,H(pI),sign(H(po))给M,发送(PI,H(OI),sign(H(PO))给P,分别用对方的公钥加密。附带上自己的证书。
-
验证方法:
M和P分别用自己的私钥解密,
对M而言得到,OI,hash之,得到H(OI),然后加上c发过来的H(PI),并hash之,得到H(PO1),用c的公钥解密sing(H(PO)),得到H(PO),然后用
H(PO1)与H(PO)比较,银行也这么做,如果H(PO1)和H(PO2)均与H(PO)一致,则认为消息一致。
That's easy!