信息安全工程师教程:SET处理流程
(3)SET处理流程
SET协议的工作流程:可从一个完整的购物处理流程来看,如图 5-6所示。
①持卡人注册( Cardholder Registration)持卡人在向商家购物之前必须在 CA注册,为了向 CA发送 SET消息,持卡人必须
拥有 CA的公钥,这由 CA的密钥交换证书提供。
•持卡人软件请求 CA的密钥交换公钥证书。 CA接受初始化请求:
•产生响应消息及响应消息的消息摘要并用其签名私钥加密来生成数字签名;
•将响应消息连同密钥交换证书和签名证书发送给持卡人。持卡人的软件收到初始化响应消息:校验两个证书(遍历信任链);
•验证 CA签名(用 CA的签名公钥解密其数字签名并将结果与新产生的响应消息的 Hash值比较);
•持卡人输入账号; •持卡人的软件产生注册表请求信息;
•产生 Deskeyl(随机对称密钥)来加密请求信息;
•用 CA的密钥交换公钥加密 Deskeyl和持卡人的账号得到数字信封;
•把(加密的注册表请求消息+数字信封)发给 CA。
CA收到后:
•用其私有交换密钥解密持卡人账号及 Deskeyl,然后用 Deskeyl解密注册表请求;
•确定适当的注册表,产生注册表的消息摘要,并用其私有签名密钥生成其数字签名;
•将数字签名后的注册表和 CA的签名公钥证书发送给持卡人。持卡人的软件收到注册表后:
•验证 CA签名公钥证书;
•验证 CA的签名,即用 CA的签名公钥来解密 CA的签名并将结果与新生成的注册表的 Hash值比较;
•产生一对公开/私有签名密钥;
•持卡人填写注册表;
•持卡人的软件产生证书请求,包括填入注册表的信息;
•持卡人的软件将证书请求、持卡人的签名公钥及新产生 Deskey2一起组成“信息”,然后生成证书请求的消息摘要并用持卡人的签名私钥加密来创建数字签名; •持卡人的软件产生 Deskey3加密“信息”;这个密钥连同持卡人账户信息一起用CA的密钥交换公钥加密生成数字信封;
•持卡人软件把(加密的证书请求信息+数字信封)传送给 CA。 CA收到后:
•用其私有交换密钥解密 Deakey3,用 Deskey3解密证书请求;
•验证持卡人签名,即用持卡人签名公钥解密持卡人签名并将结果与新产生的证书请求的 Hash值进行比较;
•用持卡人账户信息和注册表格上的信息校验其与证书请求信息是否一致;
•一旦通过校验,CA创建持卡人证书并用其私有签名密钥签署证书;
• CA用来自持卡人请求信息中的 Deskey2加密证书,并产生证书响应消息,然后生成响应消息摘要,并用其私有签名密钥加密来创建数字签名;
• CA把证书响应消息连同 CA的签名公钥证书传送给持卡人。持卡人软件收到后:
•使用保存的 Deskey2解密证书响应消息;
•通过信任链校验证书;
•验证 CA签名,即用 CA的签名公钥来解密 CA签名并把结果和昀新产生的证书响应的 Hash值相比较;
•将其证书及来自证书响应的信息储存起来以备将来的应用。
②商家注册( Merchant Registration) •商家软件请求 CA的密钥交换证书和注册表。 CA收到请求后:
•识别商家金融机构,选择合适的注册表并数字签名;
•将数字签名后注册表连同密钥交换证书和签名证书发给商家。商家软件收到后:
•验证 CA的两个证书;
•验证 CA的数字签名;
•产生各一对密钥交换密钥对和签名密钥对;
•商家在注册表中填写商家名称、地址及商家 ID(收单行中的唯一标识);
•商家软件产生证书请求;
•商家软件将证书请求和两个公钥组成“消息”,并数字签名“消息”;
•产生 Deskey4(随机对称密钥),用 Deskey4加密签名后消息,用 CA的密钥交换公钥加密 Deskey4和商家的 ID形成数字信封,再将所有信息向 CA发出。 CA收到后:
•用密钥交换私钥解开数字信封的 Deskey4和商家的 ID,用 Deskey5解密( 10)中的加密消息得到注册表请求;
•根据商家的数字签名验证注册表请求,如果签名有效,消息处理继续,否则,返回商家提示消息响应;
•使用商家账户信息验证注册表请求;
•注意:SET协议中没有定义 CA和收单行如何交换信息验证注册表内的信息;
•如果注册表信息有效,CA产生一个证书响应,并数字签名;
•将(证书响应+商家的两个公钥+CA的签名公钥)发给商家。商家收到后:
•验证证书;
•验证 CA的数字签名;
•保存证书至安全地方。
③购买请求( Purchese Request)
•持卡人到商家的网站浏览、挑选、订购后请求支付网关的密钥交换证书;
•商家收到请求后,为该消息制定 Numl(唯一识别号)并用商家签名私钥数字签名,然后将(签名后 Numl1+商家签名证书+支付网关的密钥交换证书)发给持卡人。持卡人收到后:
•验证商家和支付网关证书,并保存证书;
•产生订购信息 OI和支付指令 PI,将 Numl插入 OI和 PI中;
•生成 OI和 PI的双重签名,即对( OI的消息摘要+PI的消息摘要)计算 Hash值,再对 Hash值用持卡人的签名私钥加密;
•产生 Deskey6(随机对称密钥);
•用 Deskey6加密 PI的双重签名等得到加密的支付信息;用 Deskey6加密持卡人账号;用支付网关的密钥交换公钥加密 Deskey6形成支付信封;
•将 OI的双重签名、支付信封、加密的支付信息、 PI的消息摘要、持卡人密钥交换证书一起发送给商家。商家收到后:
•验证持卡人证书;
•验证双重签名,即用持卡人的密钥交换公钥解密 OI的双重签名,计算 OI的消息摘要,再对 OI的消息摘要和 PI的消息摘要计算 Hash值,再与解密后的比较;
•商家将 PI送支付网关;
•生成购物响应消息并数字签名;
•将购物响应和商家密钥交换证书发送给持卡人。持卡人收到购物响应后:
•验证商家证书;
•验证购物响应中的商家签名;
•持卡人保存购物响应。
④支付授权( Payment Authorization)
•商家软件产生并数字签署一个授权,其中包含授权的金额、Numl;
•产生 Deskey7加密授权请求并用支付网关的密钥交换公钥生成网关信封;
•商家将(加密后的授权请求+( PI+双重签名))和(网关信封+持卡人签名证书+(商家的密钥交换证书和签名证书))传给支付网关。(注意: SET协议中还包括一个销售交易,允许商家在一个消息中同时进行交易授权和支付请求)。支付网关收到授权请求后:
•解密网关信封的 Deskey7;用 Deskey7解密请求信息;
•验证商家证书;
•验证商家签名;
•支付网关解密 PI的数字信封得到 Deskey6和账户信息;用 Deskey6解密得到 PI;
•验证持卡人证书;
•验证 PI双重签名,即用持卡人签名公钥解密双重签名,计算 PI的消息摘要,与包含在 PI中 OI摘要一起计算 Hash值,与解密后的双重签名对比;
•验证 Numl和 PI中的识别号;
•将授权请求通过银行网络发向发卡行;
•生成并数字签名授权响应消息;
•产生 Deskey8加密授权响应;用商家的密钥交换公钥加密 Deskey8得到商家信封;
•产生 Deskey9加密请款标记,用支付网关的密钥交换公钥加密 Deskey9生成网关信封;
•将((加密后授权响应和商家信封)+(加密后请款标记和网关信封) +支付网关签名证书)一起发送商家。商家收到后:
•验证支付网关证书;
•用商家的密钥交换私钥解开数字信封得到 Deskey8,用 Deskey8解密授权响应;
•验证支付网关对授权响应的数字签名;
•保存授权响应、加密后的扣款令牌和请款标志,用于以后扣款处理。至此,商家完成持卡人的购物处理。
⑤支付请款( Payment Capture)
•商家产生并数字签名一个请款请求(Capture Request);
•产生 Deskeyl0加密扣款诸求,用支付网关密钥交换公钥加密 Deskeyl0生成支付信封;
•将((加密后扣款请求和支付信封)+(加密后扣款令牌和网关信封))发向支付网关。支付网关收到扣款请求后:
•用支付网关密钥交换私钥解密支付信封得到 Deskeyl0;用 Deskeyl0解密扣款请求;
•验证扣款请求的商家签名;
•用支付网关密钥交换私钥解密 Deskey9,再用 Deskey9解密请款标记;
•比较扣款请求和请款标记;
•将扣款请求通过银行网络发送到发卡行;
•生成并数字签名扣款响应消息;
•产生 Deskeyll加密扣款响应;用商家的密钥交换公钥加密 Deskeyll生成商家信封;
•将((加密扣款响应和商家信封)+网关的签名证书)一起传给商家。商家收到支付网关传来的扣款响应后:
•用商家私钥解密 Deskeyll,用 Deksyll解密扣款响应;
•验证网关证书;
•验证支付网关的签名;
•商家保存扣款响应,用于与收单行得到的付款进行对账。
各省软考办 | ||||||||||