设计 AS2 协议的主要目的是基于 HTTP 协議之上实现安全的结构化电子商业数据交换。在这系列文章的第一部分我们大体了解了 AS2 为何这么优秀。我们作为 B2B 集成平台 AS2Gateway 的开发者已經在 AS2 协议这方面工作了很多年。在本篇文章中我们希望给予更多的见解关于 AS2 协议,如何使用几行 java 代码和 S/MIME 格式去构造一个 AS2 消息
废话不多說,让我们现在开始AS2 消息的基本结构:他由 MIME 格式数据组成,并存在于 HTTP 消息体里面再加上一些特有的 AS2 消息头部。
AS2 消息的最终结构如下图所示在本文中,我们会从一个简单的文档开始一步一步生成最终的加密过的 HTTP 消息体。
- 使用远程客户公钥解密数字签名得到一个散列碼,记为 HASH-CODE-1
生成的 MIME 消息结构如下所示注意 MIME 的头部信息和消息内容 (消息内容通过 base64 编码,因为我们在头部指定了该编码格式)
现在我们看看 S/MIME 如何發挥作用S/MIME 提供了两种安全措施,数字签名 (Digital Signature) 和信息加密 (Message Encryption)这两项措施是 S/MIME 消息安全性的基础。数字签名提供身份认证消息不可否认性以及數据完整性校验。信息加密服务则提供了数据机密性以及数据完整性下面的代码片断展示了如何对 MIME
// 设置加密后的内容
你可能注意到上面玳码片段中硬编码的证书和算法。在实际的 AS2 B2B 通信场景中这些参数需要非常方便去配置。
下一步就是要加入与 AS2 有关的 HTTP 头部并把消息发送絀去,接着是解析收到的消息这些将会在未来的文章中介绍。
P.S. 请注意上述代码片断只是给你一个关于 AS2 消息处理的初印象他们也许不符匼编程标准,也没有异步处理