相关概念
AS2: Applicability Statement 2(适用性声明)
MIME:Multipurpose Internet Mail Extension protocol 多用途的网际邮件扩充协议
Receipt:收据,指的是消息接受者发送给消息发送者的一个确认收据。
Signed receipt, 经过签名的收据。
Synchronous Receipt:同步收据。收据返回和发送者发送的信息在同一个httpsession中发生。
Asynchronous Receipt:异步收据,收据返回和发送者发送的信息不在同一个http session中发送
Message Disposition Notification (MDN 信息处理声明): 用来传送收据的一种消息格式,一个mdn是一个收据。
Non-repudiation of receipt (NRR):收据的认可性(或者说收据的作用)当经过签名edi/ec交换信息的原始发送者验证了接收者返回的签名收据时就标志一个法律事件的发生
Cryptographic Message Syntax (CMS):加密消息语法,对任意消息进行加密,数字签名、鉴别的一种方法。
SHA-1: 一种安全的、用来进行数字签名的hash算法,在AS2中被推荐使用的算法
MIC:The message integrity check (MIC), 消息完整性校验,也称为消息的摘要,是hash算法摘要的输出
MIME HEADER:一个采用了 MIME协议的电子邮件就叫做MIME邮件,MIME邮件在RFC822文档中定义的邮件头字段的基础上,扩充了一些自己专用的邮件头字段,如使用:Content-Type头字段指定邮件体的MIME类型。 Content-Type:multipart/mixed; boundary="----=_Part_13_15604459.1297646186406".其中,“multipart/mixed”部分说明邮件体中包含有多段数据,每段数据之间使用boundary属性中指定的字符文本作为分隔标识符。
AS2: AS2协议是用来让贸易伙伴的双方交换EDI数据的协议,AS2协议中的报文分为两种,一种是发送方发送EDI数据的报文,另一种是接收方对收到数据后发送给发送方的消息(也就是Receipt);首先来看一下发送方发送给贸易伙伴的消息格式。 AS2协议可以选择签名、加密,或者不选择加密、不选择签名,都可以使用HTTP协议进行传输。
同步MDN与异步MDN
这里一个比较重要的概念就是disposition-notification-to,这个配置的是发送方需要接受MDN的地址。 如果HTTP请求中Disposition-Notification-To 和Receipt-Delivery-Option标头都没有,表示发送方不需要返回MDN。 如果HTTP请求中有Disposition-Notification-To标头(值无关紧要),Receipt-Delivery-Option标头没有,表示发送方需要同步返回MDN。 如果HTTP请求中有Disposition-Notification-To标头(值无关紧要),也有Receipt-Delivery-Option标头(表示异步返回MDN的URL),表示发送方需要异步返回MDN。
disposition-notification-options标头指示MDN的签名行为。 如:Disposition-Notification-Options: signed-receipt-protocol=required,pkcs7-signature; signed-receipt-micalg=required,sha1 其中signed-receipt-protocol键指示MDN是否需要签名,signed-receipt-micalg 键指示MDN签名算法。
MDN可以同步或异步发送,消息传输过程中,消息的发送方指定使用同步MDN或异步MDN。同步MDN意味着在原始发送消息的HTTP请求上,和HTPP响应一起将MDN返回。异步MDN意味着请求和响应使用单独的连接,允许收件人在返回状态之前处理和验证数据,用来表示消息是否处理成功。
签名
交易伙伴使用其私钥对MDN进行签名,以验证接收MDN方的身份。签名的MDN具有不可否认性,保证消息在预期的位置传递。签名使得消息和MDN具有不可否认性,被视为交付的合法证明。
消息完整性检查(Message Integrity Check, MIC)
为确保正确传输消息,接收方计算出消息完整性校验(MIC)或校验和。然后,将其放在MDN中回复给发件人。发件人收到MDN后,对比此前发送文件是计算出的校验,比较这两个值,以确保发送的消息与传递的消息相同。