使用AS2(http)协议实现 B2B 商用数据交换 (一) [译]

前言

译自:https://dzone.com/articles/as...
公司的 B2B 系统要使用 AS2 这种古老的协议跟客户做对接,主要面向国外客户,国内基本上都是 FTP。网上关于 AS2 的文章和 github 上可用的轮子都非常少,所以我翻译了一些 AS2 的文章供参考学习。
Applicability Statement 2或叫 AS2 协议规格书定义了一种在互联网上传输商业数据的安全可靠的机制。

AS2 消息内容

AS2 协议本身并没有限制 AS2 消息的内容。不过,AS2 的消息内容通常是结构化的商业文档,例如发票,采购订单等。所以 AS2 系统通常用来处理 EDI (电子数据交换)。EDI 的标准主要有:

  • 联合国推荐的 UN/EDIFACT 是唯一的国际标准,主要是北美洲以外的地区在使用
  • 美国标准的 ANSI ASC X12 (X12),主要是美国佬在使用
  • TRADACOMS,英国零售业在用
  • ODETTE 标准,欧洲汽车工业在用

AS2 消息能够携带非 EDI 的内容,例如 XML, CSV, 文本或二进制文件。

MDN - Message Disposition Notice (消息处理通知)

MDN 是由接收方通过 AS2 协议签发的电子收据。通常,接收方使用私钥,生成 digital signature (数字签名),数字签名的生成主要基于 MIC (数据完整性校验码) 和其他 AS2 属性,例如 From/To AS2 ID, message ID 等。发送方收到 MDN 后校验 MDN 中的 MIC 是否跟发送时计算出来的 MIC 相同 (计算 MIC 使用散列算法,例如 MD5, SHA),确认接收方是否成功接收到完整的消息。MDN 总会附带 (接收方) 签名,这样双方都不能否认这个电子收据。
MDN 并不意味着接收方商业伙伴成功处理了 AS2 消息文档,仅仅说明 AS2 消息传输成功 (被商业伙伴接收)。

AS2 vs 传统 B2B 协议

相比传统的 B2B 协议,AS2 (在不借助专用设备,软件或私有网络的情况下) 提供了一种安全,高效,易用的交易环境。AS2 优点主要有:

  • 对消息内容进行加密(使用非对称加密技术,例如RSA)——所以只有目标用户才能解密这个消息。
  • (发送方) 通过 (接收方) 签署过的 MDN 确认 AS2 消息内容被完整传输——接收方基于 (AS2消息内容的) 散列码进行签名并附在电子收据 (MDN) 上。
  • 防止恶意模仿——接收方通过 AS2 消息签名验证消息是来自可信任的交易伙伴,而不是其他可疑模仿者。
  • 防火墙友好,节约成本—— AS2 不使用昂贵的增值网络。

使用AS2(http)协议实现 B2B 商用数据交换 (一) [译]_第1张图片

既然 AS2 协议运行在 HTTP 之上,因此消息很容易通过防火墙。AS2 还可使用 SSL 加密技术或 HTTP 认证这些额外的安全措施。AS2 协议使用交易伙伴的数字证书 (中的公钥) 加密消息内容,消息内容也附带了 (已方私钥签署的) 电子签名保证消息的完整性和不可否认性。通过接收方签发的 MDN,发送方可以确认 AS2 传输过程是否安全,内容是否被篡改。MDN 作为 AS2 消息的一对一电子收据,在推进 B2B 贸易中扮演着重要的角色。

你可能感兴趣的:(b2b,as2)