AS2的实际应用

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: AS2的实际应用

由于客户的需要,项目中需要使用AS2协议与客户进行系统连接,因此对AS2的协议进行研究和学习。AS2的协议是支持B2B的贸易伙伴间进行EDI数据交换的协议。以下是学习的笔记。

术语(涉及的名词)
MIME简介
  • AS2消息
  • AS2消息传送 (HTTP)
  • AS2-MDN消息
  • 项目简介 与应用实例
术语
  1. 1)AS2 :Applicability Statement 2
    2)MIME : 多用途的网际邮件扩充协议(Multipurpose Internet Mail Extension protocol)
    3)B2B : Business to Business
    4)EDI :Electronic Data Interchange
    5)EC: Business-to-Business Electronic Commerce
    6)Receipt: 收据 ,是一个功能性的消息,是接受者发送给发送者的一个信息交换的确认收据;这个收据可以是异步发送也可以是同步发送
    7)Signed Receipt:经过签名的收据
    8)Synchronous Receipt: 同步收据,收据返回和发送者发送的信息在同一个httpsession中发生。
    9)Asynchronous Receipt:异步收据,收据返回和发送者发送的信息不在同一个http session中发送
    10)Message Disposition Notification (MDN): 用来传送收据的一种消息格式,一个mdn是一个收据
    11)Non-repudiation of receipt (NRR): 收据的认可性(或者说收据的作用),当经过签名edi/ec交换信息的原始发送者验证了接收者返回的签名收据时就标志一个法律事件的发生。
    12)S/MIME: 是对Internet MIME messages进行数字签名或者加密的格式和协议;
    13)Cryptographic Message Syntax (CMS): 对任意消息进行加密、字数签名、鉴别的一种封装方法;
    14)SHA-1: 一种安全的、用来进行数字签名的hash算法,在AS2中被推荐使用的算法
    15)MD5: 一种安全的数字签名hash算法,在AS2中允许使用的算法
    16)MIC: The message integrity check (MIC), 消息完成行校验,也称为消息的摘要,是hash算法摘要的输出。
    17)User Agent (UA): AS2请求的操作和处理应用。

2 MIME介绍

  • MIME协议用于定义复杂邮件体的格式,它可以表达多段平行的文本内容和非文本的邮件内容,例如,在邮件体中内嵌的图像数据和邮件附件等。另外,MIME协议的数据格式也可以避免邮件内容在传输过程中发生信息丢失。MIME协议不是对RFC822邮件格式的升级和替代,而是基于RFC822邮件格式的扩展应用。
  • MIME HEADER:一个采用了 MIME协议的电子邮件就叫做MIME邮件,MIME邮件在RFC822文档中定义的邮件头字段的基础上,扩充了一些自己专用的邮件头字段,如使用:Content-Type头字段指定邮件体的MIME类型。
    Content-Type:multipart/mixed; boundary=“----=_Part_13_15604459.1297646186406”.其中,“multipart/mixed”部分说明邮件体中包含有多段数据,每段数据之间使用boundary属性中指定的字符文本作为分隔标识符。
  • Content-Transfer-Encoding HEADER:
    Content-Transfer-Encoding头字段用于指定MIME消息体中的内容所采用的邮件编码方式:
    7bit:指消息体内容全部是没有经过编码的ASCII字符。
    8bit:指消息体内容是没有经过编码的原始数据,且其中包含有非ASCII字符的数据。现在的邮件服务器基本上都支持8Bit编码。
    BASE64:Base64是将二进制数据转换成可打印的ASCII字符的一种最常见的编码方式,它的基本原理是将一组连续的字节数据按6个bit位进行分组,然后对每组数据用一个ASCII字符来表示。
    BINARY:使用文件源内容(HTTP支持)
  • Content-Disposition:Content- Disposition头字段用于指定邮件阅读程序处理数据内容的方式,有inline和attachment两种标准方式,inline表示直接处理,而attachment表示当做附件处理。

3 S/MIME

S/MIME是一套标准,它描述客户端如何创建,操作,接受和读被数字签名、信息加密的邮件。
  • S/MIME增加了新的MIME数据类型,用于提供数据保密、完整性保护、认证和鉴定服务等功能,这些数据类型包括“应用 /pkcs7-MIME”(application/pkcs7-MIME)、“复合/已签名”(multipart/signed)和“应用 /pkcs7-签名”(application/pkcs7-signature)等。
  • S/MIME只保护邮件的邮件主体,对头部信息则不进行加密,以便让邮件成功地在发送者和接收者的网关之间传递。
    MIME 消息可以包含文本、图象、声音、视频及其它应用程序的特定数据。
  • S/MIME 并不仅限于邮件的使用,它也能应用于任何可以传送 MIME 数据的传输机制,例如 HTTP 。

4 AS2

AS2协议是用来让贸易伙伴的双方交换EDI数据的协议,AS2协议中的报文分为两种,一种是发送方发送EDI数据的报文,另一种是接收方对收到数据后发送给发送方的消息;首先来看一下发送方发送给贸易伙伴的接收方的消息格式。

AS2协议可以选择签名、加密,或者不选择加密、不选择签名,都可以使用HTTP协议进行传输。
不签名不加密时,如下图:

  • 实际报文样式:
  1. POST / HTTP/1.1
  2. as2-version: 1.2
  3. ediint-features: multiple-attachments, CEM
  4. mime-version: 1.0
  5. recipient-address: http://localhost:10080
  6. message-id: <mendelson_opensource_AS2-1297645774218-2@mycompanyAS2_mendelsontestAS2>
  7. as2-from: mycompanyAS2
  8. as2-to: mendelsontestAS2
  9. subject: AS2 message
  10. from: as2@company.com
  11. Connection: close, TE
  12. date: Mon, 14 Feb 2011 09:09:34 CST
  13. content-type: application/EDI-Consent
  14. disposition-notification-to: http://localhost:8080/as2/HttpReceiver
  15. disposition-notification-options: signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1, md5
  16. content-disposition: attachment; filename=“AS2Message8994276009463294233.as2”
  17. host: localhost:10080
  18. Content-Length: 1075
  19. User-Agent: mendelson opensource AS2 1.1 build 33 - www.mendelson-e-c.com
  20. Expect: 100-Continue

  21. ISA*00*ASCENTIAL *01*92511930 *zz*myPartner *zz*myCompany *940401*0942*U*00201*000000002*0*T*>
  22. GS*PO*006250740*3122721850*940401*0942*1*X*002003
  23. ST*850*1
  24. BEG**BY*ab100**931028
  25. NTE**This is a header message
签名不加密
  1. POST / HTTP/1.1
  2. as2-version: 1.2
  3. ediint-features: multiple-attachments, CEM
  4. mime-version: 1.0
  5. recipient-address: http://localhost:10080
  6. message-id: <mendelson_opensource_AS2-1297646186359-5@mycompanyAS2_mendelsontestAS2>
  7. as2-from: mycompanyAS2
  8. as2-to: mendelsontestAS2
  9. subject: AS2 message
  10. from: as2@company.com
  11. connection: close, TE
  12. date: Mon, 14 Feb 2011 09:16:26 CST
  13. content-type: multipart/signed; protocol=“application/pkcs7-signature”; micalg=sha1; boundary=“----=_Part_13_15604459.1297646186406”
  14. disposition-notification-to: http://localhost:8080/as2/HttpReceiver
  15. disposition-notification-options: signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1, md5
  16. content-disposition: attachment; filename=“smime.p7m”
  17. host: localhost:10080
  18. Content-Length: 3344
  19. User-Agent: mendelson opensource AS2 1.1 build 33 - www.mendelson-e-c.com
  20. Expect: 100-Continue

  21. ------=_Part_13_15604459.1297646186406
  22. Content-Type: application/EDI-Consent
  23. Content-Transfer-Encoding: binary
  24. Content-Disposition: attachment; filename=AS2Message8994276009463294233.as2

  25. ISA*00*ASCENTIAL *01*92511930 *zz*myPartner *zz*myCompany *
  26. ------=_Part_13_15604459.1297646186406
  27. Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data
  28. Content-Transfer-Encoding: base64
  29. Content-Disposition: attachment; filename=“smime.p7s”
  30. Content-Description: S/MIME Cryptographic Signature

  31. MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIAwggLQMIIC
  32. ------=_Part_13_15604459.1297646186406–
  • 加密不签名

实际报文样式

POST / HTTP/1.1

as2-version: 1.2

ediint-features: multiple-attachments, CEM

mime-version: 1.0

recipient-address: http://192.168.1.101:10080

message-id: <mendelson_opensource_AS2-1298089731500-1@mycompanyAS2_mendelsontestAS2>

as2-from: mycompanyAS2

as2-to: mendelsontestAS2

subject: AS2 message

from: as2@company.com

connection: close, TE

date: Sat, 19 Feb 2011 12:28:51 CST

content-type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m

receipt-delivery-option: http://192.168.1.101:8080/as2/HttpReceiver

disposition-notification-to: http://192.168.1.101:8080/as2/HttpReceiver

disposition-notification-options: signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1, md5

content-disposition: attachment; filename=“inbound.EDIX12”

host: 192.168.1.101:10080

Content-Length: 1496

User-Agent: mendelson opensource AS2 1.1 build 33 - www.mendelson-e-c.com

Expect: 100-Continue

0

本文转自 https://blog.csdn.net/lzw5240/article/details/77897835?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170113628616800186576907%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=170113628616800186576907&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-77897835-null-null.142v96pc_search_result_base9&utm_term=mendelson%20%20opensource%20AS2%201.1&spm=1018.2226.3001.4187,如有侵权,请联系删除。

相关文章
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
24478 1
|
8月前
|
安全 网络安全 数据安全/隐私保护
Mendelson AS2 介绍下载和配置
Mendelson AS2 介绍下载和配置
|
6月前
|
机器学习/深度学习 存储 人工智能
这7个矢量数据库你应该知道!
这7个矢量数据库你应该知道!
2342 10
|
6月前
|
测试技术 编译器 PHP
PHP 7与PHP 8的性能比较
本文通过对比分析PHP 7和PHP 8在不同场景下的性能表现,揭示新版本在执行速度、内存占用等方面的改进。利用实际测试数据支撑结论,为开发者提供升级决策的依据。
|
8月前
|
Linux
Linux|编译最新版的openssh-server-9.3的rpm包的使用方法(二)
Linux|编译最新版的openssh-server-9.3的rpm包的使用方法(二)
605 0
|
8月前
|
Java API Docker
[AIGC] Spring Boot Docker 部署指南
[AIGC] Spring Boot Docker 部署指南
158 0
|
数据可视化
2019-nCov疫情实时趋势数据可视化Echarts学习(1):柱图和折线图
2019-nCov疫情实时趋势数据可视化Echarts学习(1):柱图和折线图
99 0
|
JSON 移动开发 监控
快递单号物流轨迹方案介绍——内附物流API对接指南
什么是物流轨迹,有什么用,今天来详细聊一聊
2621 2
快递单号物流轨迹方案介绍——内附物流API对接指南
|
存储 缓存 移动开发
构建跨平台应用的利器——UniApp入门指南
构建跨平台应用的利器——UniApp入门指南
|
机器学习/深度学习 传感器 算法
融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)-附matlab代码
融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)-附matlab代码

热门文章

最新文章