译自:https://dzone.com/articles/as...
公司的 B2B 系统要使用 AS2 这种古老的协议跟客户作对接,主要面向国外客户,国内基本上都是 FTP。网上关于 AS2 的文章和 github 上可用的轮子都很是少,因此我翻译了一些 AS2 的文章供参考学习。
Applicability Statement 2或叫 AS2 协议规格书定义了一种在互联网上传输商业数据的安全可靠的机制。git
AS2 协议自己并无限制 AS2 消息的内容。不过,AS2 的消息内容一般是结构化的商业文档,例如发票,采购订单等。因此 AS2 系统一般用来处理 EDI (电子数据交换)。EDI 的标准主要有:github
AS2 消息可以携带非 EDI 的内容,例如 XML, CSV, 文本或二进制文件。算法
MDN 是由接收方经过 AS2 协议签发的电子收据。一般,接收方使用私钥,生成 digital signature (数字签名),数字签名的生成主要基于 MIC (数据完整性校验码) 和其余 AS2 属性,例如 From/To AS2 ID, message ID 等。发送方收到 MDN 后校验 MDN 中的 MIC 是否跟发送时计算出来的 MIC 相同 (计算 MIC 使用散列算法,例如 MD5, SHA),确认接收方是否成功接收到完整的消息。MDN 总会附带 (接收方) 签名,这样双方都不可否认这个电子收据。
MDN 并不意味着接收方商业伙伴成功处理了 AS2 消息文档,仅仅说明 AS2 消息传输成功 (被商业伙伴接收)。安全
相比传统的 B2B 协议,AS2 (在不借助专用设备,软件或私有网络的状况下) 提供了一种安全,高效,易用的交易环境。AS2 优势主要有:网络
既然 AS2 协议运行在 HTTP 之上,所以消息很容易经过防火墙。AS2 还可以使用 SSL 加密技术或 HTTP 认证这些额外的安全措施。AS2 协议使用交易伙伴的数字证书 (中的公钥) 加密消息内容,消息内容也附带了 (已方私钥签署的) 电子签名保证消息的完整性和不能否认性。经过接收方签发的 MDN,发送方能够确认 AS2 传输过程是否安全,内容是否被篡改。MDN 做为 AS2 消息的一对一电子收据,在推动 B2B 贸易中扮演着重要的角色。学习