EDI是将贸易、运输、保险、银行和海关等行业的信息,用一种国际公认的标准格式,形成结构化的事务处理的报文数据格式,通过计算机通信网络,使各有关部门、公司与企业之间进行数据交换与处理,并完成以贸易为中心的全部业务过程。
Internet普及之前,EDI的传输协议主要是FTP,在VAN(增值网)上进行传输,Internet普及之后,企业更倾向于在Internet上进行传输,因为其费用低廉,但相应的需要新的传输协议以保证报文传输的安全性,于是就出现了FTPS,AS2,OFTP2等传输协议。
本文将对现行的较为常见的EDI报文传输协议进行介绍,分析其优缺点,本文中部分观点为本人在实践中的经验总结,仅供参考。关于传输协议的详细描述,请访问IETF官方网站:https://www1.ietf.org 阅读相应的RFC白皮书。
FTP(File Transfer Protocol)
简介:FTP协议基于TCP/IP协议,最早使用于文件共享,采用的是client/server架构
优点:易于实现;成本低,如果在公网中进行传输,server端需要一个固定IP,以供client端进行连接,而对于client端无特别要求
缺点:(1)安全性差,server端通过用户认证(user/password)模式控制用户对某文件或文件夹下的访问权限,而没有对数据进行加密,也没有对信息流进行加密,一旦第三方截获数据流就可以获得数据信息;(2)交互性差,当client上传数据后,没有任何来自server端的反馈以证明server端已经成功接收到文件,因此client端并不知道数据是否已经“真”的上传到server端;当server要向某client发送文件时,server只能将文件放到相应目录下等待client来取,并且没有任何反馈以证实client已经成功获取到文件。
技术文档:http://www.ietf.org/rfc/rfc959.txt
FTPS (FTP over SSL)
简介:FTPS是一种以扩展常用的文件传输协议(FTP)的添加了对传输层安全性(TLS)和安全套接字层 (SSL)的加密协议的支持。
优点:易于实现;成本低,如果在公网中进行传输,server端需要一个固定IP,以供client端进行连接,而对于client端无特别要求;安全性好
缺点:交互性差,当client上传数据后,没有任何来自server端的反馈以证明server端已经成功接收到文件,因此client端并不知道数据是否已经“真”的上传到server端;当server要向某client发送文件时,server只能将文件放到相应目录下等待client来取,并且没有任何反馈以证实client已经成功获取到文件。
技术文档:http://tools.ietf.org/html/draft-murray-auth-ftp-ssl-06
SFTP(SSH File Transfer Protocol)
简介:SFTP协议是基于早期的SCP协议,SFTP一般都是用到SSH安全信道进行文件传输。人们经常把SFTP和FTP/FTPS混淆,它们是完全不同的两个协议。SFTP提供了安全访问远程文件以及进行文件加密传输的功能。早期的SCP协议一般只用于文件加密传输,而SFTP则对其进行了扩展,使其能够进行一些远程文件操作,包括文件管理,文件目录管理,文件下载取消等功能。
优点:安全性好;成本低,如果在公网中进行传输,server端需要一个固定IP,以供client端进行连接,而对于client端无特别要求;
缺点:交互性差,当client上传数据后,没有任何来自server端的反馈以证明server端已经成功接收到文件,因此client端并不知道数据是否已经“真”的上传到server端;当server要向某client发送文件时,server只能将文件放到相应目录下等待client来取,并且没有任何反馈以证实client已经成功获取到文件。
AS2 (Applicability Statement 2)
简介:AS2是基于HTTP协议和SMIME协议。AS2的开发是为了能在公网(Internet)上安全的传输数据,但一般用于传输EDI报文。美洲国家公司较多使用AS2协议进行EDI报文的传输。
AS2有以下特点:
1. 使用HTTP协议和HTTPS协议传输文件
2. 可以对Message进行签名认证,但不是必须的
3. 可以对Message进行加密,但不是必须的
4. 可以要求接收方发送MDN(信息发送通知,用于告知发送方已成功接收文件,并返回接收文件的相关信息用于确认),但不是必须的
5. 如果发送方要求接收方发送MDN:
a) 如果接收方成功解密文件,并成功认证了文件签名,将会返回”success” MDN告知发送方已成功接收文件
b) 如果接收方解密(认证)失败或是接收文件失败,将会返回”failed” MDN告知发送方接收文件失败
6. 可以要求接收方对MDN进行签名,但不是必须的
7. 多种MDN返回方式:
a) 同步方式,要求接收方在同一个HTTP连接中返回相应的MDN,该方式不能进行大文件(5M+)传输
b) 异步方式,允许接收方稍后使用另一个HTTP协议连接发送MDN,该方式用于传输大文件
c) 通过Email返回MDN
优点:安全性高,可以使用多种加密方式对文件进行加密,同时还可以使用SSL对整个HTTP连接进行加密;不可否认性,采用签名认证,接收方接收到文件并通过签名认证后即可确认文件确属发送方发送,否则该文件不是发送方发送,同时发送方接收到MDN并通过签名认证即可确认该MDN确属接收方发送,否则该MDN不是接收方发送;交互性强,发送方接收到MDN后可以确认接收方已经接收文件成功(失败)。
缺点:成本高,AS2是点对点协议,要求接收方和发送方都有固定IP
技术文档:http://www.ietf.org/rfc/rfc4130.txt
OFTP/OFTP2(Odette File Transfer Protocol)
简介:OFTP是由Odette组织提出的用于传输EDI报文的传输协议。OFTP2弥补了OFTP在安全性上的不足,增加了报文加密,报文签名和EERP(End-to-end-response 接收方用于通知发送方已成功接收文件)签名。OFTP2可以在多种网络上进行文件传输,例如internet, ISDN, X.25等。
OFTP2特点
1. 支持多种协议进行传输文件,例如:TCP/IP, X.31, X.25, ISDN
2. 可以使用SSL对整个会话进行加密
3. 发起会话时必须设置会话密码
4. 可以对Message进行签名认证,但不是必须的
5. 可以对Message进行加密,但不是必须的
6. 接收方成功接收文件后必须向发送方发送EERP(End-to-end-response 接收方用于通知发送方已成功接收文件)
7. 接收方接收文件失败必须向发送方发送NERP(Negative end response 接收方用于通知发送方接收文件失败)
8. 可以对EERP进行签名,但不是必须的
9. 可以对NERP进行签名,但不是必须的
10. 需要使用ODETTE组织给予的ODETTE CODE作为公司标示进行文件传输
优点:安全性高,可以使用多种加密方式对文件进行加密,同时还可以使用SSL对整个会话进行加密;不可否认性,采用签名认证,接收方接收到文件并通过签名认证后即可确认文件确属发送方发送,否则该文件不是发送方发送,同时发送方接收到EERP(NERP)并通过签名认证即可确认该EERP(NERP)确属接收方发送,否则该EERP(NERP)不是接收方发送;交互性强,发送方接收到EERP(NERP)后可以确认接收方已经接收文件成功(失败);支持多种传输协议,TCP/IP, X.31, X.25, ISDN
缺点:成本高,OFTP2是点对点协议,要求接收方和发送方都有固定IP;从技术层面上来说,OFTP2比AS2协议更加严谨,但是相应的实现难度也比AS2更大
技术文档:http://tools.ietf.org/html/rfc5024 http://tools.ietf.org/html/rfc2204=
Rosettanet
简介:RosettaNet标准主要由三个部分组成:
1. 贸易伙伴接口流程(PIP)描述了供应链中两个贸易伙伴之间的活动、决策及交互关系,以实现商业贸易。RosettaNet PIPs 专门规定了系统与系统之间基于XML 的对话,以说明贸易伙伴间的商业流程。
2. RosettaNet实施架构核心规范(RNIF)提供了快速有效实施RosettaNet标准的交换协议,包括如何打包,如何路由PIP消息等
3. RosettaNet词典为供应链中的企业开展业务提供了一个公共平台。企业不再需要费力独自开发,同时也减少了因每个企业定义的术语不统一而带来的采购流程中的困惑。RosettaNet词典包括RosettaNet商业词典和RosettaNet技术词典。
RosettaNet标准不仅包括传输协议的定义(RNIF),还包括业务处理流程和基于XML的报文信息的定义,而AS2,FTP,OFTP等仅属于传输协议,因而RosettaNet标准严谨,更加复杂,实施难度更大。
优点:严谨和完善,不仅定义了传输方式,还包括业务处理流程等;安全性高,不仅可以对消息加密,还可以对整个对话加密;不可否认性,采用了数字签名。
缺点:Rosettanet标准结构复杂,不易实现;成本高,要求接收方和发送方都有固定IP