引论:我们为您整理了13篇ssl协议范文,供您借鉴以丰富您的创作。它们是您写作时的宝贵资源,期望它们能够激发您的创作灵感,让您的文章更具深度。
篇1
ssl Protocol Analysis and Implementation
HU Xiao-ye1,LI Jun-yi2
(1.Baoji University of Arts and Sciences Equipment Department,Baoji 721007,China; 2.Dept. Comput. Sci. & tech., Shanxi Police Profession College,Xi'an 710043,China)
Abstract: Aim Discuss the configuration and working process of the SSL protocol,apply SSL to achieve internet security.Means First understand the system construction of SSL protocol,then understand the protocol's working process by SSL communicate and handclasp protocol process.Result SSL protocol is a security protocol base on the TCP/IP,SSL protocol settle the problem of security on internet,make up the shortage of TCP/IP,give us security of data transfer in internet.Conclusion Discussing the configuration and working process of the SSL protocol, make us to understand the SSL protocol all-around, and bring forward it's shortage and consummate it.
Key words: SSL protocol;C/S configuration;handclasp protocol;TCP/IP protocol
1 引言
目前,随着Internet的快速发展,互联网上的信息安全越来越引起人们的关注。特别是近年来基于互联网的网上银行、电子商务和电子政务的发展,如何保证传输信息,特别是网上交易信息的不可否认性、保密性、完整性已成为急待解决的问题。为此,人们发明了安全套接层SSL协议(Security Socket Layer Protocol,简称SSL),是Internet上使用广泛的保密通信的一种安全协议。
2 概述
SSL协议是由Netscape公司为制定数据安全性所开发的通信协议。1995年,Netscape公司提出了SSL2.0之后,很快就成为一个事实上的标准,并为众多的厂商所采用。1996年,Netscape公司了SSL3.0,该版本增加了对除了RSA算法之外的其他算法的支持和一些安全特性,并且修改了前一个版本中一些小的问题,相比SSL2.0更加成熟和稳定。1999年l月EITF基于SSL协议了TLS1.0(Transport Layer Security)版本,Netscape公司宣布支持该开放的标准。
SSL协议向基于TCP/护的客户/服务器应用程序提供了客户端和服务器的鉴别、数据完整性、及信息机密性等安全措施。该协议通过在应用程序进行数据交换前交换SSL初始握手信息来实现有关安全特性的审查。在SSL握手信息中采用了DES、MDS等加密技术来实现机密性和数据完整性,并采用X.509的数字证书实现鉴别。该协议已成为事实上的工业标准,并被关泛应用于Internet和Intranet的服务器产品和客户端产品中。如Netscape公司、微软公司、IBM公司等领导Internet/Intranet网络产品的公司已在使用该协议。
3 SSL协议的体系结构
SSL协议主要由两层组成,分别是握手协议层和记录协议层,握手协议建立在记录协议之上,此外还有警告协议、更改密码说明协议和应用数据协议等对话协议和管理提供支持的子协议。其组成如图所示:
握手协议HandshakeProtocol和记录协议Record Protocol是SSL协议的核心组成部分。其上是超文本协议HTTP、文件传输协议FTP和传输控制协议TELNET。它们控制文本的传输。支撑握手、记录协议的低层通信是用户数据报文和TCP/IP协议。
SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密的结果。接受消息需要解密、验证、解压和重组,再把结果发往更高一层的客户。以下是两个主要协议的论述和分析。
1) 记录协议:具体实现压缩/解压缩、加密/解密、计算机MAC等与安全有关的操作。建立之上的还有:
更改密码说明协议:此协议由一条消息组成,可由客户端或服务器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护,接收方得此消息后,立即指示记录层把即将读状态变成当前读状态,发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。
警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样,警告消息在当前状态下被加密和压缩。警告消息有以下几种:
关闭通知消息、意外消息、错误记录MAC消息、解压失败消息、握手失败消息、无证书消息、错误证书消息、不支持的证书消息、证书撤回消息、证收过期消息、证书未知和参数非法消息等等。
应用数据协议:将应用数据直接传递给记录协议。
SSL记录协议原理如图2所示。
2) 握手协议:SSL握手协议是用来在客户端和服务器端传输应用数据而建立的安全通信机制。
―算法协商:首次通信时,双方通过握手协议协商密钥加密算法,包括数据加密算法和文摘算法。
―身份验证:在密钥协商完成后,客户端与服务器端通过证书交换,互相验证对方的身份,一般通过目录服务器的L DAP查询完成。
―确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和服务器各自根据这个秘密信息确定数据加密算法的参数(一般是对称密钥)。
由此可见,SSL协议是端对端的通信安全协议,即数字通信安全管道。
4SSL协议的实现工作过程
4.1 SSL通信过程
基于OpenSSL的程序可以被分为两个部分:客户机和服务器,使用SSL协议使通信双方可以相互验证对方身份的真实性,并且能够保证数据的完整性和机密性。建立SSL通信的过程如图3所示。
SSL通信模型采用标准的C/S结构,除了在TCP层上进行传输之外,与普通的网络通信协议没有太大的区别,基于OpenSSL的程序都要遵循以下几个步骤:
1) OpenSSL初始化
在使用OpenSSL之前,必须进行相应的协议初始化工作,这可以通过下面的函数实现:
int SSL_library_int(void);
2) 选择会话协议
在利用OpenSSL开始SSL会话之前,需要为客户端和服务器制定本次会话采用的协议,目前能够使用的协议包括TLSv1.0、SSLv2、SSLv3、SSLv2/v3。
需要注意的是,客户端和服务器必须使用相互兼容的协议,否则SSL会话将无法正常进行。
3) 创建会话环境
在OpenSSL中创建的SSL会话环境称为CTX,使用不同的协议会话,其环境也不一样的。申请SSL会话环境的OpenSSL函数是:
SSL_CTX *SSL_CTX_new(SSL_METHOD * method);
当SSL会话环境申请成功后,还要根据实际的需要设置CTX的属性,通常的设置是指定SSL握手阶段证书的验证方式和加载自己的证书。制定证书验证方式的函数是:
int SSL_CTX_set_verify(SSL_CTX *ctx,int mode,int(*verify_callback),int(X509_STORE_CTX *));
为SSL会话环境加载CA证书的函数是:
SSL_CTX_load_verify_location(SSL_CTX *ctx,const char *Cafile,const char *Capath);
为SSL会话加载用户证书的函数是:
SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file,int type);
为SSL会话加载用户私钥的函数是:
SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx,const char* file,int type);
在将证书和私钥加载到SSL会话环境之后,就可以调用下面的函数来验证私钥和证书是否相符:
int SSL_CTX_check_private_key(SSL_CTX *ctx);
4) 建立SSL套接字
SSL套接字是建立在普通的TCP套接字基础之上,在建立SSL套接字时可以使用下面的一些函数:
SSL *SSl_new(SSL_CTX *ctx);
//申请一个SSL套接字
int SSL_set_fd(SSL *ssl,int fd);)
//绑定读写套接字
int SSL_set_rfd(SSL *ssl,int fd);
//绑定只读套接字
int SSL_set_wfd(SSL *ssl,int fd);
//绑定只写套接字
5) 完成SSL握手
在成功创建SSL套接字后,客户端应使用函数SSL_connect( )替代传统的函数connect( )来完成握手过程:
int SSL_connect(SSL *ssl);
而对服务器来讲,则应使用函数SSL_ accept ( )替代传统的函数accept ( )来完成握手过程:
int SSL_accept(SSL *ssl);
握手过程完成之后,通常需要询问通信双方的证书信息,以便进行相应的验证,这可以借助于下面的函数来实现:
X509 *SSL_get_peer_certificate(SSL *ssl);
该函数可以从SSL套接字中提取对方的证书信息,这些信息已经被SSL验证过了。
X509_NAME *X509_get_subject_name(X509 *a);
该函数得到证书所用者的名字。
6) 进行数据传输
当SSL握手完成之后,就可以进行安全的数据传输了,在数据传输阶段,需要使用SSL_read( )和SSL_write( )来替代传统的read( )和write( )函数,来完成对套接字的读写操作:
int SSL_read(SSL *ssl,void *buf,int num);
int SSL_write(SSL *ssl,const void *buf,int num);
7) 结束SSL通信
当客户端和服务器之间的数据通信完成之后,调用下面的函数来释放已经申请的SSL资源:
int SSL_shutdown(SSL *ssl);
//关闭SSL套接字
void SSl_free(SSL *ssl);
//释放SSL套接字
void SSL_CTX_free(SSL_CTX *ctx);
//释放SSL会话环境
4.2 SSL握手协议的工作过程
SSL协议的工作过程主要就是握手协议的工作过程。下面我们重点讲述握手协议的工作过程。图4是握手协议简化的握手顺序。
SSL协议具体握手过程描述如下:
―客户Client端发送ClientHello信息给服务器Server端,Server回答ServerHello。这个过程建立的安全参数包括协议版本、“佳话”标识、加密算法、压缩方法。另外,还交换两个随机数:ClientHello.Random和ServerHello.Random.用以计算机“会话主密钥”。
―Hello消息发送完后,Server会发送它的证书和密钥交换信息,如果Server端被认证,它就会请求Client端的证书,在验证以后,Server就发送H elloDone消息以示达成了握手协议,即双方握手接通。
―Server请求Client证书时,Client要返回证书或返回“没有证书的指示,这种情况用于单向认证,即客户端没有装证书,然后Client发送密钥交换消息。
―服务器Server此时要回答“握手完成“消息(Finished),以示完整的握手消息交换已经全部完成。
―握手协议完成后,Client端即可与Server端传输应用加密数据,应用数据加密一般是用第②步密钥协商时确定的对称加/解密密钥,如DE S、3DE等等,目前商用加密强度为128位。非对称密钥一般为RAS,商用强度1024位,用于证书的验证。
5 总结
SSL协议很好的解决了Internet上信息的安全传输,弥补了TCP/IP协议的不足,使得我们在网络上传输数据得到安全保障。SSL协议虽然得到了广泛的应用,但是它也存在了很多不足。SSL协议中引入了很多安全机制,如非对称密钥交换、数据加密、消息认证码MAC、身份认证等,因为用以保护数据的所有加密密钥都是通过masterSecret来产生的,故协议的所有安全几乎都依赖于masterSecret的保密,如果某个会话的masetrSecert被攻破的话,这个会话就会完全暴露于攻击之下。而且SSL协议不提供交易的不可抵赖性。对于电子商务应用来说,使用SSL可保证信息的真实性、完整性和保密性。但由于SSL不对应用层的消息进行数字签名,因此不能提供交易的不可否认性,这是 SSL在电子商务中使用的最大不足。有鉴于此,网景公司在从Communicator 4.04版开始的所有浏览器中引入了一种被称作"表单签名(Form Signing)"的功能,在电子商务中,可利用这一功能来对包含购买者的订购信息和付款指令的表单进行数字签名,从而保证交易信息的不可否认性。综上所述,在电子商务中采用单一的SSL协议来保证交易的安全是不够的,但采用"SSL+表单签名"模式能够提供较好的安全性保证。
参考文献:
[1] 顾兵.VPN技术在企业中的应用[J].中国海洋平台,2003(1):44-46.
[2] 懂洪伟,冯斌,杨开荞.VPN关键技术探讨[J].计算机工程,2002(11):159-161,177.
篇2
一、SSL协议
1.SSL概述
SSL(Secure Socket Layer,安全套接层)协议是 Netscape 公司于1994年提出的一个网络安全通信协议,是一种在两台机器之间提供安全通道的协议。它具有保护传输数据,以及识别通信机器的功能。SSL最初是通过加密HTTP连接为Web浏览器提供安全而引入的。
SSL在TCP上提供一种通用的通道安全机制,任何可以在TCP上承载的协议都能够使用SSL加以保护。在TCP或IP四层协议族中,SSL协议位于传输层与应用层之间,基于可靠传输协议TCP,服务于各种应用层协议,如HTTP、POP、TELNET等,它们在SSL协议上运行分别被称作HTTPS、POPS、TELNETS协议等,分别对应的端口号为443、995、992等。
图1 SSL协议结构图
2.SSL体系结构
SSL协议在结构上分为两个层次:底层为记录层协议(Record Protocol),负责封装高层协议(包括握手协议)的数据,保证SSL连接的数据保密性和完整性;高层为握手层,由四个并行的协议构成:握手协议(Handshake Protocol)、修改密码参数协议(Change Cipher Spec Protocol)、报警协议(Alert Protocol)、应用数据协议(Application data Protocol),高层协议需要记录层协议支持,其中握手协议与其他的高层协议不同,主要负责在交换应用层数据之前进行协商加密算法与密钥,其他高层协议属于应用开发的范畴,而要得到握手协议的支持,而握手协议则是SSL底层实现必须具有的功能,因为记录层协议的完成也由它来保证。
二、基于SSL协议的VPN技术研究
1.SSLVPN概念
SSL VPN是指一种基于数据包封装技术的,利用SSL或TLS协议结合强加密算法和身份认证技术的,可靠安全地构建VPN的一种方法。它作为一种新的VPN的实现方法,SSL VPN可以用来构建外联网、内联网和远程接入访问。它通过数据包封装的隧道技术来实现虚拟专用网的私有性,通过PKI技术和密码学技术来鉴别通信双方的身份和确保传输数据的安全。
2.SSL VPN的工作模式
(1)基于Web模式的SSL VPN系统
客户端使用浏览器通过SSLVPN 服务器来访问企业局域网的内部资源。SSLVPN 服务器相当于一个数据中转站,Web浏览器对WWW服务器的访问经过SSL VPN服务器的处理(解密、身份鉴别、访问控制)后转发给WWW服务器,从WWW服务器发往Web浏览器的数据经过SSL VPN服务器处理(过滤、加密)后送到Web浏览器。
图2 基于Web模式的SSL VPN系统
(2)基于客户模式的SSL VPN
用户在客户端安装一个SSL VPN客户端程序,当客户端访问企业内部的应用服务器时,需要经过SSL VPN客户端程序和SSL VPN服务器之间的保密传输后才能到达。从而在SSLVPN客户端和 SSLVPN服务器之间,由SSL协议构建一条安全通道,保护客户端与SSLVPN服务器之间的数据传输。此时,SSLVPN服务器充当服务器的角色,SSL VPN客户端充当客户端的角色。
图3 基于客户端模式的SSL VPN系统
(3)局域网到局域网模式的SSL VPN系统
在网络边缘都安装和配置了SSLVPN服务器。当一个局域网内的终端要访问远程网络内的应用服务器时,需要经过两个SSL VPN服务器之间的保密传输后才能到达。从而在两个SSLVPN服务器之间,由SSL协议构建一条安全通道,保护局域网之间的数据传输。此时,SSL VPN服务器充当安全网关的角色。
图4 局域网到局域网模式的SSL VPN系统
参考文献:
篇3
解决方法:
篇4
Internet payment system based on SSL and SET protocol
JIANG Zhihua
(Info. Eng. College, Shanghai Maritime Univ., Shanghai 200135, China)
Abstract: Internet payment is the bottleneck that restricts the development of E-Business. So the general internet payment system framework for bank card is introduced, and an Internet payment system based on Secure Socket Layer (SSL) and Secure Electronic Transaction (SET) protocol is proposed. And its payment flow and security are detailed and discussed.
Key words: Internet payment; secure socket layer; secure electronic transaction; E-Business; payment system; E-Wallet
0 引 言
网络支付方式是电子商务发展的关键要素.电子商务交易支付涉及支付安全和实现平台的统一,信息安全技术已经为网络支付研究出一系列安全加密及信息传输的技术规范,如以安全套接层(Secure Socket Layer, SSL)协议和安全电子交易协议(Secure Electronic Transaction, SET)为代表的网络支付协议及应用于网上的数字签名、用户论证等技术.本文结合SSL和SET网络支付协议及应用技术,讨论基于第三方运营的网络支付方式,发挥SET的严密性和SSL的简单直观性等特点,使网络支付系统构建体现资源整合、方便交易特色的统一支付平台.
1 网络支付模式
网络支付是指电子商务交易的当事人,包括消费者、厂商和金融机构,使用安全电子支付手段通过网络进行的货币支付或资金流转,对支付的要求是能够实现跨地跨行的交易支付快捷且安全,并保证银行之间、银行商户之间的资金结算准确无误.电子支付的方式主要有3类:一类是电子货币类,如电子现金和电子钱包等;另一类是电子信用卡类,包括银行磁卡、智能卡和电话卡等;还有一类是电子支票类,如电子支票、电子汇款和电子划款等.
在电子支付的3种基本支付方式中信用卡(银行卡)支付得到世界范围内的普及[1],能很好地解决小额在线支付结算中的安全问题,因此越来越多的人愿意接受并且喜欢利用信用卡进行网络支付.信用卡网络支付模式总体有下面4种.
1.1 无安全措施的信用卡支付模式
这种支付模式是指持卡人利用信用卡进行支付结算时,几乎没有采取任何技术上的安全措施而把信用卡号码和密码直接传送给商家,然后由商家负责后续处理的模式(见图1).这是在电子商务发展初期各方面都不太成熟,特别是银行对电子商务的支持还不完善的情况下出现的,风险由商家负责,安全性差,持卡人的信用卡隐私信息完全被商家掌握,支付效率较低.[2]
1.2 借助第三方机构的信用卡支付模式
为了降低在无安全措施支付模式中的风险,在买方和卖方之间启用1个具有诚信的第三方机构,这个机构持有持卡客户的信用卡账号信息用于与银行的支付结算,并负责将交易信息在商家和客户之间传递(见图2).这种方式对第三方机构的公正、信誉和操作规范有很高的要求[3],主要风险由第三方机构承担,安全性得到一定的保证;但由于并未发挥银行网络在支付中的作用,在提高安全性的同时支付效率没有得到提高,成本也较高,且不太适合小额的网上支付.
1.3 基于SSL协议机制的信用卡支付模式
这种方式为Internet环境下信用卡支付的典型方式(见图3):使用SSL作为安全会话,保护和防止Internet其他用户获取信用卡帐号等机密信息.交易多方身份验证机构认证中心(Certification Authority,CA)的作用是间接的,主要是为支付各方颁发证书.用户以明文方式输入其信用卡号,该卡号将被加过密的SSL会话发送给商家的服务器并转发给发卡银行.这种通过商家中转支付信息的SSL支付模式不能保证支付账户信息不被商家看到,所以改进的SSL支付模式就是客户浏览器与银行服务器之间直接建立SSL加密联接.SSL支付模式是应用最为广泛的网络支付模式,其特点是应用方便、成本较低、安全性高、市场产品成熟,国内大多数商业银行的信用卡网络支付系统都采用这种技术模式,绝大多数的网上商家均支持这种模式的信用卡应用.
SET协议是由Visa和MasterCard联合开发的1种开放性标准.SET协议可以让持卡人在开放网络上发送安全的支付指令和获取认证信息.SET主要用于兼容当前的信用卡网络,目前涉及的是B2C的电子商务交易.在交易之前,客户必须到相应的发卡银行柜台办理应用SET协议机制的信用卡,并下载安装持卡客户端软件(电子钱包软件),将信用卡相关信息添加进客户端软件,最后为其中的信用卡申请数字证书;同样,商户需到银行办理这类信用卡结算事宜,得到服务器端SET支持软件,并且从CA得到数字证书.作为银行网络与外部网的接口支付网关,也须得到数字证书的认证.在交易过程中,SET介入信用卡支付的全过程,由于加密、认证较多,支付处理速度相对SSL机制的信用卡支付稍慢,各方开销也大一些,但该协议设计得很安全,已经成为事实上的工业标准.[4]
2 基于SSL和SET的网络支付
2.1 网络支付原理
目前应用较多的SSL和SET机制各有优劣.SSL强调的重点在于实现网络支付的便捷性,即可以在任何1网的PC上进行网上支付(需要安全认证和数字证书的下载),但是用户必须遵循不同银行卡相对独立的支付规则,且针对银行的是特约商户,一般商户不能支持所有银行卡.而SET流程设计安全,一般利用安装在物理设备(用户PC硬盘)之上的电子钱包模拟实际购物,对于用户而言很直观也比较易用,但是移动性却因为需要安装电子钱包软件而丧失,每次网络支付都要安装电子钱包软件很不现实.
结合SSL和SET网上支付的优势,将安装在本地硬盘的电子钱包置于网络上,由独立的第三方(网络服务商)管理用户电子钱包,并使网上钱包与银行的前端接口――支付网关有机结合,这样用户在网上购物与支付时,以浏览器加密专用通道(即SSL)的方式使用SET机制的电子钱包功能.
2.2 网络支付流程
网络支付流程见图4.
从图4可知,利用网上钱包进行在线支付的大致流程如下:(1)申请电子钱包.客户要在网上钱包服务商处开通网上钱包功能,申请电子钱包并进行设置.一般情况下客户可以到柜台申请,也可以在线申请,成功后用户得到网上钱包的账号和密码.用户还需对自己的电子钱包进行设置,将信用卡及支付卡账号、密码等信息存入网上钱包的个人账户中,除此之外还应对电子钱包的保密性做设置.(2)使用钱包中的信用卡支付.网上钱包实际上是个统一的支付平台,用户在SSL会话界面输入自己的网上钱包账号和密码进入钱包系统,选择信用卡进行支付.此时SET介入其中,对于银行支付网关,可以是与网上钱包平台集成的统一支付网关,也可以是银行自身的支付网关.收单行扣款成功返还给网上钱包平台,再通过SSL通知客户支付成功信息.
3 网络支付的安全性讨论
网络支付给用户带来使用上的方便,而且SSL和SET的结合能够使支付交易的速度得到提高.SSL和SET协议在网络安全上根据不同的安全要求和级别采取相应的安全防范措施.同样,网络支付在应用中也采用诸如数字签名、数字信封和数字摘要等技术,使其安全性问题就在于第三方钱包运营商的公正性(如钱包用户基本信息的保密问题等)以及钱包用户身份合法性上.
前者应当强化第三方机构(服务商)的审核,可以在应用中由业界普遍认同的绝对公正的金融机构担任网上钱包的服务商,同时CA应适时地加以身份鉴证;技术上加强用户对钱包账户信息的自我控制,对钱包运营商的数据监控.对于后者[5],应加强密码系统的安全性,用户应注意账户信息的保密和密码的及时更新,必要时可以采用动态密码机制.另外将账户信息集成在存储设备(如智能卡)上,采用双重身份登陆方法,也是实现网上钱包个人安全登陆的好办法.目前,国内金融网络建设的“银联”模式就是这样的实际应用,“银联”是依托于银行卡跨行跨地的资金流转业务而产生的,除了提供银行卡方便的现金支取和消费刷卡之外,其技术优势可完全应用于网络支付,作为第三方的支付网关,代表众多商业银行的支付工具,已经实现在线支付的即时到账,各类具有银联标志的银行卡都能方便地完成网络支付,并且正得到越来越多的应用.
4 结 论
本文阐述的是基于SSL和SET相结合的网络支付系统,是权衡两者利弊的较佳方案.可以看到,网络支付依托的是传统的网络支付模型和工具,在系统构成上主要要素不变,这就说明已经成熟的网络支付协议及安全技术是支付系统的基础,而在支付方式的形式上有比较大的拓展空间,这要根据实际的支付环境来决定.在设计网络支付系统时,应充分考虑支付环境和交易的情况,做到安全和便捷的统一.
参考文献:
[1] 梁春晓, 安徽. 电子商务从理念到行动[M]. 北京: 清华大学出版社, 2001.
[2] 柯新生. 网络支付与结算[M]. 北京: 电子工业出版社, 2004.
篇5
随着计算机技术和Internet的飞速发展,商业活动实现了电子化,从而发展成为电子商务。电子商务借助互联网、企业内部网和增值网等计算机与网络和现代通信技术,按照一定的标准,利用电子化工具,将传统的商业活动的各个环节电子化、网络化,从而以数字化方式来进行交易活动和相关服务活动。
电子商务包括电子货币交换、供应链管理、电子交易市场、网络营销、在线事务处理、电子数据交换(EDI)、存货管理和自动数据收集系统。电子商务完全不同于传统的商务活动,它是一种以网络为载体的新的商务运作方式。
(1)SSL不能提供交易的不可否认性。SSL协议是基于Web应用的安全协议,它只能提供安全认证,保证SSL链路上的数据完整性和保密性。却不能对电子商务的交易应用层的信息进行数字签名,因此,SSL不能提供交易的不可否认性,这可以说是SSL在电子商务中最大的缺陷。
(2)SSL只能提供客户机到服务器之间的两方认证,无法适应电子商务中的多方交易业务。
(3)SSL易遭受Change Cipher Spec消息丢弃攻击。由于SSL握手协议中存在一个漏洞:在finished消息中没有对变换加密的说明消息进行认证处理,在接收到该消息前,所有的密码族都不做任何加密处理和MAC保护,只有在接收到Change Cipher Spec消息之后,记录层才开始对通信数据进行加密和完整性保护。这种处理机制使得SSL易遭受Change Cipher Spec消息丢弃攻击。
(4)SSL无法避免通信业务流分析攻击。由于SSL位于TCP/IP的协议层之上,因此,无法对TCP/IP协议头部进行保护,导致潜在的隐患。攻击者通过获取IP地址、URL请求的长度以及返回的Web页面的长度等信息,可以分析出用户访问的目标,再加上SSL协议只支持对 块密码的随机填充,没有提供对流式密码算法的支持,使得SSL无法阻止这类攻击。
4 总结
电子商务正飞速地发展。用于保障电子商务活动的安全协议主要有S-HTTP、STT、IKP、SET和SSL。其中SSL协议是目前电子商务采用的主要的网上交易协议。SSL协议采用了加密、认证等安全措施,结合了Hash算法,较好地保证了数据在传输过程中的保密性、可靠性和完整性,在一定程度上放置了欺骗、篡改、重放等攻击。本文在介绍SSL协议栈及其工作原理和机制的基础上,对基于SSL的电子商务的安全性进行了分析。
参考文献:
篇6
SSL Protocol in the Network Communication of the Application
ZHANG Yang
(Liaoning University Computing Center, Shenyang 110036, China)
Abstract: SSL protocol is to provide a secure channel between computers a security protocol, data transmission is encrypted. This article has wireless video surveillance system for the study, the introduction of the SSL protocol in the system, the application of the protocol on the server and the client’s network communication, which can achieve data transmission security, authentication and message integrity.
Key words: SSL protocol; information security; network communication
无线视频监控系统服务器和客户端之间采用的C/S模式组成的,实现对视频信号实时采集和压缩编码后,将图像传输到指定的视频服务器上。那么命令信息在传输过程中,数据的安全性是我们需要解决的重要问题。所以在该系统中引入了SSL协议,把SSL协议应用在服务器和客户端的网络通信中,通过数据加密提高信息的安全性。
1系统设计原则和目标
1.1系统设计原则
该系统的服务器和客户端都是在windows操作系统利用VC的socket建立连接,实现网络通信。考虑到服务器和客户端之间数据传输的安全性和有效性,设计过程中注意以下几个方面:
1)并发性:因为服务器和客户端之间建立联系,一般是一台服务器对应多个客户端进行通信的,每个终端优先级是平等的,为了实现客户端的并发,在服务器端采用VC中的多线程技术,使得每个客户端都能和服务器同时产生通信。
2)安全性:该系统是服务器和客户端之间利用socket通信,客户端向服务器发送请求命令,服务器收到后回应请求,如果在通信过程中命令信息不加密,信息容易被非法窃取,直接通过TCP协议传输信息是不安全的,所以要引入SSL协议,使所有的命令信息是加密传输的,保证了信息的安全性。
3)实时性:由于视频监控系统对画面的实时性要求非常高的,如果图像也是通过加密传输的话,会严重影响图像的传输速率,也就失去了实时性的要求,所以,我们在处理图像传输时就不像命令信息一样通过SSL加密传输了,满足了图像的实时性要求。1.2系统设计的目标
该系统实现的目标就是服务器端和客户端建立连接,满足并发性的要求;在通信过程中,双方发送的命令信息通过SSL加密传输,提高安全性;图像传输通过TCP协议传输,满足视频传输的实时性。
2网络通信模块的设计
主要讨论的是服务器和客户端之间的网络通信问题,服务器和客户端之间有两种信息:服务器向客户端转发的视频流信息;服务器和客户端之间传输的命令信息。从信息的安全性考虑,在该系统中引入SSL加密协议,在数据传输过程中,即使数据被黑客窃取也不会将数据还原。确保了数据的安全性。
因为监控视频对图像的实时性要求非常高,不能有太长的时间延迟,而视频在传输过程中产生的流量非常之大,直接通过TCP协议传输视频信息可以有效降低时间延迟。
因此,通过SSL协议传输各种命令信息,我们可以把SSL通信模块封装成sslclient类和sslserver类,提供了接口函数,只需要调用对应的API就可以实现SSL加密通信。
3 SSL网络通信技术的实现
3.1 SSL通信模块的工作流程
该系统的整个结构可以分为服务器和客户端两个部分组成,而其中的SSL通信模块为现实这两个部分之间的数据通信的安全传输提供服务。主要从外部和内部两个方面来分析,从外部来看,系统包括初始化握手部分和数据传输部分两个部分内容,这两个部分的内容具体对应SSL协议的“握手协议”和“记录协议”。从内部来看,SSL模块可划分为初始化、SSL连接、身份认证和数据传输几个模块,初始化主要为SSL连接做准备工作,身份认证主要是验证对方数字证书以证明身份的有效性。如果服务器也要求进行客户端身份认证,会以同样的方法对客户端的证书进行验证。当服务器和客户端互相进行验证之后。会在两者之间成功建立SSL连接,形成一个安全数据传输通道,传输数据类似于TCP的套接字,直接写入或者读取数据。如图1所示。
图1 SSL通信模块的结构图
3.2实现的过程
在通信模块中,服务器实现的过程很简单,和客户端实现的过程类似,服务器等待客户端发送请求的连接,之后初始化一条SSL连接,它就从客户端读取或写入数据发送到客户端。按照功能也可以分为四部分:初始化过程、连接过程、身份认证过程和数据传输。
1)初始化过程:客户端的开发时调用openssl函数实现的,首先是初始化SSL库,在选择会话连接所使用的协议:ssl_method* sslv3_client_method();再去申请SSL会话的CTX:ssl_ctx* ssl_ctx_new(ssl_method* meth);,目的是连接对象进行SSL握手、数据的读写;最后是家在私有密钥和数字证书并设置加密套件。
然而服务器初始化过程和客户端初始化过程类似,不同只是服务器调用sslv3_server_method()函数来实现的。
2)连接过程:服务器调用listen函数开始监听客户端的TCP连接请求,调用accept函数接受客户端的TCP连接;申请一个BIO对象,把SSL绑在在这个对象上;调用SSL的accept函数接受客户端的SSL连接。
3)身份认证:由于系统采用双向身份认证机制进行身份认证,所以服务器和客户端的证书都要互相进行认证方可正常通信,二者进行信息对比,如果一致,表明验证通过,否则将关闭与客户端之间的连接。
4)数据传输:服务器与客户端建立连接后就可传输数据,所有数据是经SS加密处理后进行传输的。
4结束语
在当今信息化飞速发展的社会中,信息数据在日常生活和工作中显得越来越重要,所以信息安全的重要性也越来越受到人们的重视,数据在保存和传输过程中如何可以防止黑客窃取,正是该文研究的对象。该文以视频监控作为实例来研究,既要保证视频传输的实时性,又要保障数据的安全性,所以我们采用服务器和客户端之间采用灵活的双重连接制,通过SSL协议进行数据加密传输,提高了机密信息传输的安全性。
参考文献:
[1]付沙,何诚,文旭华.基于SSL协议的安全网络通信的理论和实现[J].计算机与现代,2006(11).
[2]曾强.网络安全协议SSL原理及应用[D].天津:天津大学,2005.
[3]唐玲.数字证书系统的设计研究[D].合肥:合肥工业大学,2004.
[4]韩澄宗.网络实验室中的视频监控系统[D].杭州:浙江大学,2006.
篇7
随着当前各类高校及高职学校的校园网建设并投入使用,校园网的各种信息资源需要通过网络为身处不同地点的教师、学生及员工共享使用。当前许多高职院校均存在多个校区的网络构架,仅通过互联网络实现网络的联接,显然会存在较多的隐患,毕竟互联网是一个开放的使用TCP/IP技术实现网络连接和不可管理的互联网络。因此,如何解决位于不同校区的网络基础设施有可能互不兼容子网络实现安全的互联互通成为一个较为突出的难题。而这些在其他各类网络互联中的难题催生了VPN技术的出现。
1 VPN技术分类
VPN(virtual private network)技术是指利用网络资源临时建立一个安全的网络连接,或特定的网络通道将网络中物理上分布于不同区域的局域网络连接成为一个逻辑上的专门网络,一般VPN技术采用隧道技术、身份认证技术、数据加密技术以及密钥管理等关键技术来实施网络通信的数据安全性保护。
VPN技术根据实现技术的不同一般可以分为PPTP、L2TP、MPLS、IPSec、SSL等,其中,基于SSL协议的VPN技术是目前应用最为广泛的一种VPN技术。
2 基于SSL协议的VPN技术
一般来说,SSL协议是在客户端和服务器端之间建立安全通道的一种协议,该协议对通信双方身份进行认证同时对传输的数据进行保护。SSL协议通常是建立在如TCP协议这样的可靠的传输层协议之上,同时独立于应用层协议。高层的应用协议HTTP、FTP大多可透明地运行于SSL协议之上。
1)SSLVPN的实现原理。SSLVPN是一种数据包封装技术,一般采用SSL/TLS协议与加密算法、身份认证技术等构建VPN。虽然SSL协议不是为实现VPN而设计的,但SSL对VPN实现所需的数据加密、身份认证和密钥管理等提供了必要的技术支持。
在实现过程中,用户通过浏览器内建的Secure SocketLayer封包处理功能,连回到网络内部的SSLVPN服务器,采用网络封包转向的方式,让用户在远程计算机执行应用程序,读取网络内部服务器数据。SSLVPN一般采用标准的安全套接层(SSL)对数据进行加密,在应用层上保护数据的安全性。SSLVPN技术可实现用户安全的进行内部网络的访问。
2)SSLVPN的特点
其客户端支撑维护简单,大多基于SSL协议的远程访问不需要在远程客户端上安装软件就可以通过Web浏览器访问到企业内部的网络资源;还可以实现远程安全接入,通常在网络防火墙后设置一个SSL服务器在用户通过浏览器上输入URL后,该连接通过SSL服务器进用户身份验证后映射到相应的应用服务器上实现远程安全接入;SSLVPN还可对加密隧道进行细分,让网络用户不仅可接入互联网还可访问内部资源;SSLVPN还可穿越NAT和防火墙设备;能够较好地抵御外部系统和病毒攻击;在网络部署上灵活方便,因为SSLVPN一般部署在内网中防火墙之后,可以随时根据需要,添加需要VPN保护的服务器,不影响原有网络结构。
当然,SSLVPN技术也存在其认证方式仅有通过相应的证书来进行单向认证的不足之处。
3 SSL VPN在多校区校园网中的应用
多校区校园网一般是由于当前同于区域内的多所职业院校进行合并后形成的特色,一般校区分布在不同行政区域,有多个独立的校区,校区之间地理位置上不接壤等,一般为了实现几个校区之间的互联,多采用租用当地通信运行商的光线实现网络互联。
在此类校园网络中,其网络数据资源如电子图书馆必须要根据电子版权的有关版权保护规定通过安全和加密技术控制分发内容和途径,以防止非法的使用。在高职院校中多数电子资源都存在IP访问限制,其数据库资源多在资源提供商的服务器上。服务商一般采用访问者的IP地址认证来确认授权的用户的使用。因此校内的IP都可方便的使用相应资源,而校外的合法用户,由于在网络外部,其IP都不在范围内,就使得他们无法浏览所需的网络资源,这是一种可管理、可认证、安全的远程访问校园内部资源的解决方案, SSLVPN方案就解决了校外网用户访问校内网的数字资源的问题。同时,SSLVPN也极大的方便校园网中的应用理人员对设备的管理,对于一些简单的网络或资源故障,管理人员可以通过SSLVPN对相应的设备进行操作实现故障排除。并且SSLVPN在连接时采用了安全认证,也保证了数据传输时的安全。
总之,VPN技术使得未来网络中基于WEB访问的网络资源运行模式起到了极大的促进作用,其中SSLVPN技术也由于大量移动网络的应用而得以广泛的应用。
参考文献:
[1] 马淑文.SSL VPN技术在校园网中的应用与研究[J].计算机工程与设计,2008(11):5137-5143.
[2] 阳富民,刘军平.统一认证技术研究与实现[J].计算机工程与科学, 2007,29(2):124-126.
[3] 奥尼尔,冉晓旻.Web服务安全技术与原理[M].北京:清华大学出版社,2003.
[4] 戴宗坤,唐三平.VPN与网络安全[M].北京:电子工业出版社,2002.
篇8
文献标识码:A 文章编号:1672-7800(2015)005-0154-04
作者简介:牛乐园(1990-),女,河南许昌人,中南民族大学计算机科学学院硕士研究生,研究方向为信息安全。
0 引言
人类建立了通信系统后,如何保证通信安全始终是一个重要问题。伴随着现代通信系统的建立,人们利用数学理论找到了一些行之有效的方法来保证数字通信安全。简单而言就是将双方通信的过程进行保密处理,比如对双方通信的内容进行加密,这样可有效防止偷听者轻易截获通信内容。SSL(Secure Sockets Layer) 及其后续版本 TLS(Transport Layer Security)是目前较为成熟的通信加密协议,常被用于在客户端和服务器之间建立加密通信通道。TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。截至目前其版本有1.0,1.1、1.2[1],由两层协议组成:TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
1 TLS协议结构
TLS协议是对SSL协议规范后整理的协议版本,建立在可靠的传输层上,如TCP(UDP则不行)。应用层可利用TLS协议传输各种数据,来保证数据的安全性和保密性[2]。
安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS 记录协议(TLS Record)和TLS握手协议(TLS Handshake)。较低层为 TLS记录协议,位于某个可靠的传输协议(如TCP)上。
TLS记录协议是一种分层协议。每一层中的信息可能包含长度、描述和内容等字段。记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用 MAC、加密以及传输结果等,并对接收到的数据进行解密、校验、解压缩、重组,然后将它们传送到高层客户机。
TLS记录层从高层接收任意大小不间断的连续数据。密钥计算:记录协议通过算法从握手协议提供的安全参数中产生密钥、IV 和 MAC 密钥。TLS 握手协议由3个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。
TLS握手协议由3种协议封装,包括改变密码规格协议、警惕协议、握手协议。TLS协议结构如图1所示。
2 TLS1.2消息流程
在整个通讯过程中,为实现TLS的安全连接,服务端与客户端要经历如下5个阶段[3]:①Client申请链接,包含自己可以实现的算法列表以及其它信息;②Server回应链接,回应中确定了这次通信所使用的算法,将证书发送给对方,证书中包含了自己的身份和公钥;③Client在收到消息后会生成一个秘密消息ClientKeyExchange――(此秘密消息经处理后,将用作加密密钥(会话密钥)),用Web服务器的公钥加密并传至Server;④Server再用私钥解密秘密消息ClientKeyExchange,并进行处理,生成会话密钥(用于之后的数据加密),会话密钥协商成功;⑤Client和Server得到会话密钥,并用此会话密钥进行数据加密。
TLS1.2在传输层协议的消息主要包含8条消息,消息结构如图2所示,分别是ClientHello版本协商、ServerHello版本协商、Server Certificate证书消息、HelloDone接收结束标识、 ClientKeyExchange即Client交换密钥消息、Client的Finished消息、CertificateVeri验证证书消息、Server的Finished消息。
2.1 ClientHello和消息
ClientServer
client_version|| client_random|| session_id|| cipher_suites|| compression_methods|| extensions
消息描述:该消息包括客户端的版本号client_version,用于告知服务器client可以支持的协议最高版本,来协商安全协议版本。client_random是client产生的一个随机数,由client的日期和时间加上28字节的伪随机数组成,用于后面的主密钥计算。session_id由服务连接得到,发送给server来建立一个新的会话连接。cipher_suites是client提供给server可供选择的密码套件,用于协商密钥交换,数据加密以及散列算法。compression_methods是客户端支持的压缩算法。extensions是客户端的扩展域。
client_version: Protocol version(协议版本),该字段表明了客户能够支持的最高协议版本3.3。
random:它由客户的日期和时间加上28字节的伪随机数组成,该客户随机数将用于计算master secret(主秘密)和prevent replay attacks(防止重放攻击)。
session_id:一个会话ID标识一个可用的或者可恢复的会话状态。一个空的会话ID表示客户想建立一个新的TLS连接或者会话,而一个非空的会话ID表明客户想恢复一个先前的会话。session_id有3个来源:①之前的会话连接;②当前连接,客户端仅仅想通过更新random结构得到连接值时使用;③当前激活的连接,为了建立几个独立的连接而不再重复发起连接握手。
2.2 ServerHello消息
ServerClient:
server_version||server_random|| session_id|| cipher_suites|| compression_methods|| extensions
消息描述:该消息包含6个消息项,server_version取客户端支持的最高版本号和服务端支持的最高版本号中的较低者,本文所用的是TLS1.2。server _random是服务端生成的随机数,由服务器的时间戳加上28字节的伪随机数组成,也用于主密钥的生成。session_id提供了与当前连接相对应的会话的标识信息。从客户端处接收到会话标识后,服务器将查找其缓存以便找到一个匹配的session_id。
server_version: Protocol version(协议版本),取客户端支持的最高版本号和服务端支持的最高版本号中的较低者。TLS版本为3.3。random:它由客户的日期和时间加上28字节的伪随机数组成,该客户随机数将用于计算master secret(主秘密)和prevent replay attacks(防止重放攻击)。session_id:该域提供了与当前连接相对应的会话的标识信息。如果从客户端接收到的会话标识符非空,则服务器将查找其缓存以便找到一个匹配。
2.3 Server Certificate消息
ServerClient:
version||serialNumber||algorithmIdentifier||issuer||utcTime||subject_name||subject_key_info|| signature
消息描述:该项消息为可选项,证书主要包含4部分内容,version是证书版本,文章统一定为X509v3。主体名称指明使用该证书的用户为server_subject。subject_key_info是证书包含的公钥信息,该消息项有两项内容:一个是证书的公钥,发送给client后用于加密client生成的预主密钥,并把密文信息发送给server。server收到该密文信息后可以使用自己的私钥解密得到预主密钥;另一个是所用的散列算法。signature:证书验证签名信息,用以验证证书。version:证书版本号,为X.509V3。subject_name:证书主体名称。
subject_key_info:标识了两个重要信息:①主体拥有的公钥的值;②公钥所应用算法的标识符。证书私钥对证书的所有域及这些域的Hash值一起加密。
2.4 ServerKeyExchange消息
ServerClient:
KeyExchangeAlgorithm|| ServerDHParams
KeyExchangeAlgorithm:密钥交换算法,文章定义的密钥交换算法为RSA。ServerDHParams:Diffi-Hellman参数,若交换算法为RSA,则此项为空。
2.5 CertificateRequest消息
ServerClient:
certificate_types|| supported_signature_algorithms|| certificate_authorities
消息描述: 可选消息项,该消息是Server服务器向Client请求验证证书信息。在一般应用中只对Server服务器进行认证,而Server服务器要允许只有某些授权的Client才能访问服务器,此时需要用到该消息对Client进行认证。Client认证是通过Server服务器给Client发送一条 CertificateRequest消息而开始,如果Server发送这条消息,则Client必须向server发送自己的证书。客户端收到该消息后,发送一条 Certifcate 消息(与服务器传送证书的消息一样)和一条 CertificateVerify 消息予以应答。
certificate_type:客户端提供的证书类型,该处为rsa_sign。supported_signature_algorithms:可以验证server的散列/签名算法对。certificate_authorities:可以接受证书消息的特定名称。
2.6 Client Certificate消息
ClientServer:
version||serialNumber||algorithmIdentifier||issuer||utcTime||subject_name||subject_key_info|| signature
消息描述:可选消息项,该证书主要包含4部分内容,version是证书版本,文章统一定为X509v3。主体名称指明使用该证书的用户为server_subject。subject_key_info是证书包含的主要公钥信息,该消息项有两项内容:一个是证书的公钥,另一个是所用的散列算法。signature是证书验证签名信息,用以验证证书。
version:证书的版本号,为X.509V3。subject_name:证书主体名称。subject_key_info:标识了两个重要信息:①主体拥有的公钥的值;②公钥所应用的算法的标识符。算法标识符指定公钥算法和散列算法(如RSA和SHA-1)。signature:用证书私钥对证书的所有域及这些域的Hash值一起加密。
2.7 ClientKeyExchange消息
ClientServer:
KeyExchangeAlgorithm|| EncryptedPreMasterSecret
消息描述:该消息是密钥交换消息。之前的消息协商中规定密钥交换算法为RSA算法,所以该消息中KeyExchangeAlgorithm的内容为RSA。此时,client随机生成一个48字节的预主密钥,用从server证书得来的公钥来加密这个预主密钥,加密算法为RSA算法。client加密预主密钥并在ClientKeyExchange消息中将密文EncryptedPreMasterSecret发给server,使server得到预主密钥。
KeyExchangeAlgorithm:算法选择为RSA。EncryptedPreMasterSecret:客户端生成一个48字节的预主密钥,用从server证书得来的公钥来加密该预主密钥,加密预主密钥消息并发送密文。
2.8 CertificateVerif消息
ClientServer
handshake_messages[handshake_messages_length]
消息描述:可选消息项,如果服务器请求验证客户端,则该消息完成服务器验证过程。客户端发送一个certificate_verify消息,其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名。handshake_messages指所有发送或接收的握手消息,从clienthello消息开始到CertificateVerif消息之前(不包括CertificateVerif消息)的所有消息集合,包括握手消息的类型和变长字段。这是到目前为止HandShake结构的整合。
3 Blanchet演算模型建立流程
Blanchet演算模型主要包括类型定义、时间定义、方法定义、通道定义、时间声明、初始化进程描述[4]、客户端进程描述与服务端进程描述。TLS1.2最主要的功能体现在客户端与服务端的消息传递。
3.1 协议事件声明
在Blanchet演算中首先要声明要证明的事件。TLS1.2协议的消息流程中最重要的就是认证性和密钥的保密性[5]。认证性包括客户端对服务端的认证和服务端对客户端的认证,保密性是对会话密钥的秘密性进行认证。表示server事件发生之前client事件一定发生,用来验证服务端用户。在更严格的定义下进行服务端验证,事件声明代码如下。
event server(output).
event client(output).
query x:output;
event server(x)==>client(x).
query x:output;
event inj:server(x)==>inj:client(x).
query secret premastersecret.
3.2 初始化进程
协议模型初始化进程如下所示,ClientProcess表示客户端进程[6],ServerProcess表示服务端端进程,表示多个ClientProcess进程并发执行,集中一次模拟现实协议执行。
process
in(start,());
new seedone:rsakeyseed;
let pkeyrsa:rsapkey=rsapkgen(seedone) in
let skeyrsa:rsaskey=rsaskgen(seedone) in
new seedtwo:keyseed;
let signpkey:pkey=pkgen(seedtwo) in
let signskey:skey=skgen(seedtwo) in
new keyhash:hashkey;
out(c,(pkeyrsa,signpkey,keyhash));
((! N ClientProcess) |
(! N ServerProcess) )
3.3 客户端和服务端进程
客户端的消息流程包括版本协商、算法协商、密钥协商、密钥交换和请求验证。版本协商是协商客户端、服务端可以通用的版本[7],一般是客户端和服务端都支持的最高版本,密钥协商完成后Client向Server发送verifydata认证请求消息,内容包括username、servicename、methodname,method_specific,请求Server验证身份,并在此定义对客户端的验证事件client(verifydata)。
服务端进程首先接收客户端进程发送的版本信息[8],并与自己的版本信息匹配协商得到协商版本client_version。版本信息协商完成后接收客户端所支持的算法信息,至此算法协商完成。进入密钥协商阶段,首先Server接收Client发送的密钥参数信息c_s_random_s,用来计算hash验证;Server收到Client的验证请求后对Client进行验证并接收Client发来的验证消息,用所收到的所有消息计算验证信息。在此插入事件event server(verifydata_fc)来验证客户端。
3.4 验证结果
本文在介绍TLS1.2协议的基础上对其数据流程进行分析[9],使用Blanchet建立模型并分析其安全性和认证性。经过一系列的流程跟进并使用自动化证明工具Cryptoverif对TLS1.2进行模型建立,经过一系列的Game转换得出分析结果如图3所示[10]。结果证明,TLS1.2协议的会话密钥具有安全性,在认证阶段能够对客户端通过消息签名进行验证。
4 结语
为了研究TLS1.2协议在应用中的安全性,本文对TLS1.2协议的消息流程进行了分析。通过对每一步消息流中消息项的研究分析,得出TLS1.2协议的整体消息结构,最终实现服务端对客户端的验证流程分析。基于Blanchet演算对分析的消息流程应用一致性对服务端认证客户端和客户端对服务端的验证建立模型。协议模型通过协议转换工具转换为CryptoVerif的输入代码TLS1.2.cv,使用CryptoVerif对模型进行分析,并证明了TLS1.2协议的安全性与认证性。后续研究中将给出TLS1.2协议的Java安全代码,并分析其安全性。
参考文献:
[1] 陈力琼,陈克非.认证测试方法对TLS协议的分析及其应用[J].计算机应用与软件,2008,25(11):6-7.
[2] 于代荣,杨扬,马炳先,等.基于身份的TLS协议及其BAN逻辑分析[J].计算机工程,2011,37(1):142-144.
[3] MORRISSEY P, P SMART N,WARINSCHI B.The TLS handshake protocol: a modular analysis[J]. Journal of Cryptology,2010,23(2):187-223.
[4] 卢敏,申明冉.基于RSA签名的TLS协议的新攻击发现及其改进[J].消费电子,2013(14):69-70.
[5] 高志伟,耿金阳.基于优先级策略的 TLS 握手协议研究[J].石家庄铁道大学学报:自然科学版,2014(3):69-74.
[6] 唐郑熠,李祥.Dolev-Yao攻击者模型的形式化描述[J].计算机工程与科学,2010(8):36-38.
[7] 邵飞.基于概率进程演算的安全协议自动化分析技术研究[D].武汉:中南民族大学,2011.
篇9
一、Modbus RTU协议与S7-200相互关系简介
目前支持Modbus通信的DCS、PLC系统和过程仪表大都采用基于串行接口的Modbus RTU模式,西门子公司提供了针对西门子PLC Modbus RTU的协议库。极大的简化了Modbus RTU通信的开发,以便快速实现二者的相关应用。通过Modbus RTU从站指令库,使得S7-200可以作为Modbus RTU中的从站,以实现与Modbus主站设备的通信。
二、软硬件准备
1.软件:ModScan测试软件、Step7-MicroWin V4.0SP06编程软件、S7-200Modbus指令库文件。
2.硬件:PC机、西门子S7-200PLC(CUP224XP CN REL02.01)、PPI编程电缆、USB-TO-Serial电缆、RS232转RS485模块。
3.焊接RS485通讯电缆一根(Date+ DB9 3引脚、Date- DB9 8引脚)、RS485通讯电缆连接200PLC的Port0端口。
三、使用Modbus 指令库需要注意事项
1.使用Modbus指令库,对STEP7 Micro/win软件版本的要求。软件版本必须是V3.2或者以上版本。
2.S7-200 CPU必须是固化程序修订版2.00或最好支持Modbus主设备协议库。
3.目前市场已经推出针对端口0和端口1的Modbus RTU主站指令库,以及针对端口0的Modbus RTU从站指令库,故在使用时一定要区分开。
4.一旦CPU的端口被用于Modbus RTU主站或从站协议通讯时,该端口就无法用于其他用途,包括与STEP7 Micro/win通讯。当需要与STEP7 Micro/win通讯时把CPU打到STOP位即可通讯。
5.利用指令库编程前首先应为其分配存储区,否则Step7-MicroWin在编译时会报错。分配存储区时在对话框输入库存储区的起始地址,注意避免该地址与程序中其他地址重复使用,也可以点击“建议地址”按钮,系统将自动计算存储区分配地址。
四、S7-200 PLC控制器组态
我们是用ModScan32做主站来读取从站(S7-200)的数据。所以在S7-200 PLC里面只用Modbus从站协议指令, Modbus从站协议指令包括MBUS_INT和MBUS_SLVE两条协议指令。如图1
图 1
1.MBUS_INT指令,用于启用和初始化或停止Modbus从站通信。在使用MBUS_SLVE指令之前,必须执行MBUS_INT指令。在指令完成后立即设定“完成”位,才能执行下一条指令。MBUS_INT指令引脚含义如下:
1.1EN:西门子指令使能位。因为是初始化用触点SM0.1即可。
1.2Mode:“模式”参数。用于启动和停止Modbus通信,允许使用以下两个数值:1-启动,2-停止。
1.3Address:“地址”参数。输入Modbus从站地址,取值范围为1~247.
1.4Baud:“波特率”参数。Baud:“波特率”参数可选1200、2400、9600、19200等。
1.5Parity:“奇偶校验”参数。0-无校验;1-奇校验;2-偶校验。
1.6Delay:“延时” 参数。附加字符间延时,默认值为0。
1.7MaxIQ:“最大I/Q位”参数。设置参与通信的最大I/O点数,S7-200的I/O映像区为128/128,默认值为128。
1.8MaxAI:“最大AI字”参数。设置参与通信的最大AI通道数,可为16或32。
1.9MaxHold:设定供Modbus地址4xxxx使用的V存储器中的字保持寄存器数目。
1.10HoldStart:保持寄存器区起始地址,以&VBx指定。
1.11Done:初始化完成标志,成功初始化后置1。
1.12Error:初始化错误代码。0-无错误。
2.MBUS_SLVE指令,用于Modbus主设备发出请求服务,并且必须每次扫描时执行,以便允许该指令检查和回复Modbus请求。MBUS_SLVE指令无输入参数,在每次的扫描EN开启时执行。MBUS_SLVE指令引脚含义如下:
2.1EN:西门子指令使能位。因为每个周期都需要执行,故用SM0.0即可。
2.2Done:“完成”参数。Modbus执行通信时置1,无Modbus通信活动时为0。
2.3Error:错误代码。0-无错误。
五、测试软件ModScan32设置
ModbusRTU测试软件ModScan32,在通讯中是中主站,监视从站和向从站发送命令。以下是ModbusRTU测试软件ModScan32如图2: 图 2
ModScan32测试软件的画面中相关参数意义如下:
1.通信端口的选择。如果PC用的 RS485 转换器接的是串口一(COM1),此下拉选项设置为 COM1 即可。
2.Baud:波特率的选择。与S7-200 PLC内设置保持一置。
3.Word:数据位。默认值8。
4.Parit:奇偶校验。与S7-200 PLC内设置保持一置。
5.Stop:停止位。默认值1.
6.Device Id:下位机地址。与S7-200中MBUS_INT模块的Address引脚一置。
7.Address:寄存器的起始地址。
8.Length:寄存器长度。
9.MODBUS Point Type:Modbus点类型选择。依次出现的是继电器状态、输入状态、锁存器、输入寄存器。
10.Number of Polls:发送和接受命令的次数。
11.Valid Slave Responses:有效命令的次数。
六、通讯测试
S7-200 PLC和测试软件ModScan32设置完毕后,系统上电、通讯线连接好就可以进行调试。Modbus RTU地址与S7-200的地址对应关系 Modbus地址总是以00001、30004之类的形式出现。S7-200内部的数据存储区与MODBUS的0、1、3、4共4类地址的对应关系所示:
MODBUS地址
S7-200数据区
00001-00128……………………………Q0.0-Q15.7
10001-10128……………………………I0.0-I15.7
30001-30032……………………………AIW0-AIW32
40001-4xxxx……………………………T + 2*(xxxx-1)
其中T为S7-200中的缓冲区起始地址,即HoldStart。如果已知S7-200中的V存储区地址,推算MODBUS地址的公式为:MODBUS地址=40000+(T/2+1)
篇10
一、借用条款
1、借用条件:
甲方使用乙方的adsl宽带上网业务。
2、甲方借用乙方adsl设备(限壹台),设备具体描述如下:
品牌:
型号:
序列号:
3、该adsl设备所有权归乙方所有,在甲方使用乙方adsl宽带业务的前提下,乙方将此台adsl设备免费借给甲方使用。
4、借用期内,若甲乙双方中任何一方提出停借请求,都必须以书面形式提前一个月通知对方,经双方协商一致,甲方归还adsl设备给乙方后双方解除本协议。
二、双方的责任和义务
1、借用期内若甲方暂停使用adsl宽带业务,应将adsl设备归还乙方,本协议同时自动终止。用户恢复使用adsl业务后如需要再借用设备必须重新签定借用协议。
2、借用期内若甲方取消使用adsl宽带业务,将视为甲方单方面终止协议,甲方必须将adsl设备及时归还给乙方,本协议自动终止。
3、乙方保证所提供adsl设备的质量。在借用期内,甲方必须妥善保管adsl设备。
4、借用期内,如果adsl设备因质量原因发生故障,甲方可将设备带到乙方处更换。
5、借用期内,如果adsl设备因人为损坏发生故障,经原生产厂家确认可以维修,甲方需承担维修费用,乙方将负责提供备用设备保证甲方正常使用,直到设备修理好后双方置换;如果原生产厂家确认设备无法维修,本协议自动终止,甲方需承担设备赔偿责任,具体赔偿金额为____________________元。赔偿费用一次性在电话______________托收。
6、借用期内,乙方免费提供该设备的首次安装、调试服务,并代为培训该设备的安装调测方法,至于其它范围的服务,以乙方公开的服务承诺为准。
7、如出现以下情况之一,本协议将自动终止:
第一种情况:甲方暂停使用乙方adsl业务;
第二种情况:甲方由adsl业务转为其它宽带业务;
第三种情况:甲方不再使用乙方adsl业务;
8、协议终止前甲方应将adsl设备(包括设备、外包装、说明书、连线、包装盒内附属配件等)及其它连同adsl设备一同借用的附属设备(语音分离器等)一并完好归还。若归还时发生包装不全、设备缺损等情况,甲方应负责补全,否则甲方应照价赔偿。
三、争议和仲裁
1、所有与本协议执行有关的争议将通过双方友好协商解决,如果双方不能通过友好协商解决争议,则将该争议提交至镇江市仲裁委员会仲裁。
2、仲裁裁定的最终结果对双方均有约束力。
3、仲裁费用由败方承担。
4、仲裁进行过程中,双方将继续执行仲裁部分以外的协议内容。
四、其它事项
1、本协议由于不可抗力导致不能履行的,双方均不承担违约责任,共同协商变更或解除协议。
2、本协议与国家法律法规或上级部门的政策和规定相抵触时,应依据国家法律法规或上级部门的政策和规定变更本协议。
3、本协议自双方签字盖章之日起生效,该协议在甲方使用乙方adsl宽带业务期间有效。本协议一式两份,双方各执一份,具有同等法律效力。
篇11
Logistic方程是荷兰生物学家Verhulst在19世纪中叶提出的,它不仅能够大体上描述人口及许多物种数量的变化规律,而且在经济、管理、传染病学等领域也有着广泛的应用。因为由这一方程建立的模型能够描述一些事物符合逻辑的客观规律,所以称它为Logistic方程。最初的人口模型是英国著名人口学家Malthus调查了英国一百多年的人口统计资料,得出了人口增长率r不变的假设,并据此建立了著名的人口增长模型
(1)
其中N=N(t)表示时刻t的人口数量,N0是初始时刻人口的数量,很容易解出
(2)
当r>0时,(1)式表示人口数量按指数规律随时间无限增长。但从长期来看,任何地区的人口都不可能无限增长。实际情况是人口增长到一定数量以后,增长速度就会慢下来。因为自然资源、环境条件等因素对人口的增长都会起到阻滞作用,而且随着人口的增加,这种阻滞作用会越来越大,所以人口增长率 就不应该是个常量,应该随人口数量的增加而变小。不妨令 ,其中Nm是自然资源和环境条件所容纳的最大人口数量,r为固有增长率。可以看到当N=Nm时,人口就不再增长,即r(Nm)=0。于是得到人口的阻滞增长模型(Logistic模型)
(3)
rN体现人口自身的增长趋势,因子 则体现了资源和环境对人口增长的阻滞作用。若以N为横轴,dN/dt为纵轴,方程(3)的图形(图1),可以看到人
图1 图2
口增长速度dN/dt随N的变化趋势先快后慢,当N=Nm/2时增长速度最快。方程(3)可以用分离变量法求得 (图2),是平面上一条S形曲线,人口增长速度先快后慢,当t∞时,NNm,拐点在N=Nm/2处。这个模型描绘的人口变化趋势与实际情况基本符合,而方程(3)称为Logistic方程,方程右端带有阻滞增长因子。
2 Logistic方程在技术革新推广中的应用
社会的进步离不开技术的进步创新,对于一项新技术在该领域中推广一直是经济学家和社会学家关注的问题。假设在某一社会中某领域共有Nm个企业,初始时刻有N0家企业采用了一项新技术,N(t)表示t时刻采用新技术的企业数量, 那么这项技术如何推广到该领域中的其它企业,其它企业将以怎样的速度接受该技术呢?在推广过程中我们可以认为,对于一个尚未采用新技术的企业家来说,只有当采用新技术的企业家对他谈论了该技术后,他才有可能会采纳。那么在t到t+t这段时间内,新增的企业数量N应该与之前已采纳新技术的企业数量N(t)和还不知道这项技术的企业数量Nm-N(t)成正比,即
其中c为比例系数,它与人们接受新事物的能力,新技术转化为生产力等方面有关
当t0时,得
(4)
(5)
方程(4)为技术革新推广的Logistic模型,从方程(4)中还可以看到,企业家采用这一新技术的速度是先快后慢,当数量未达到Nm/2时,接纳的速度越来越快,到达Nm/2后速度开始减慢,直到趋向于零,最终所有的企业都进行了技术革新,淘汰旧技术,采用新技术。
3 Logistic方程在传染病学中的简单应用
随着科技的进步、卫生设施的改进、医疗水平的提高以及人们对自身健康的关注,曾经一些全球肆虐的传染病像天花、霍乱已得到控制,但一些新的、变异的传染病悄悄地向人类袭来。像上世纪的艾滋病、2003年SARS、今年的H7N9禽流感病毒,给我们的生命和财产都带来了极大的危害。因此建立传染病模型,分析感染人数的变化规律是一个有必要的工作。在这里我们建立关于传染病传播的简单模型。
假设在疾病传播期内所考察地区的总人数N不变,不考虑出生、死亡、迁移。人群分为易感者和已感染者,以下称为健康人和病人。t时刻这两类人在总人数中所占比例分别记作s(t)和i(t),每个病人每天有效接触人数为常数λ,λ称为日接触率。那么从t到t+t时间段内新增病人人数为N[i(t+t)-i(t)]=λNs(t)i(t)t s(t)+i(t)=1
整理得到
当t0时,得 (6)
它的解为 (7)
其中i0为初始时刻病人所占比例。
由方程(6)及其解(7)同样可以看到i=1/2时,病人增加得最快,可以认为是医院门诊量最大的一天,预示着传染病的到来,此时 ,当有效接触数λ越小,这一天来临得就越晚,所以为了推迟这一天的到来,可以通过改善卫生环境、提高医疗水平、对患者作必要的隔绝来降低λ的值。另外一方面,从(7)可以看到当t∞时,i1即所有人都会感染,显然不符合实际。这是因为我们没考虑病人会被治愈,考虑到这一因素,只需要在方程(6)的右端再减去一个因子μi(μ表示日治愈率)即可,在这里我们就不讨论。
由于Logistic方程能够反映出一些事物本身符合逻辑的规律,它在社会、经济、科学研究中都有着重要的作用,非常值得我们去深入研究。
参考文献:
[1] 龚德恩,范培华.微积分[M].北京:高等教育出版社,2008.
[2] 姜启源,谢金星,叶俊.数学模型(第3版)[M].北京:高等教育出版社,2004.
篇12
作为Lotus Notes和Domino协作软件的重大拓展计划,IBM Lotus将向Nokia Symbian设备、BlackBerry、Google Android操作系统和iPhone提供全新支持,以满足日益增加的移动设备对企业应用和业务流程的需求。
据IDC预计,到2011年,市场将有1万亿与互联网相连接的设备。为此,Lotus致力于向所有移动设备提供支持,保证用户无论身处何处都能够提供服务。如今,Lotus已率先为移动设备提供了最广泛的邮件和协作支持,包括新版Lotus Notes Traveler软件将对Google Android手机操作系统2.0和2.1版本提供协作支持。
IBM在本次大会上了“协作议程”(Collaboration Agenda),它集合了IBM行业领域的专家和专业知识、软件实验室的技术专家以及咨询服务专家,旨在通过协作技术和行业专长,为企业量身定制协作路线图和战略,帮助企业改善人员互动方式,加速业务流程,实现可衡量回报。
篇13
工业控制己从单机控制走向分散控制,并走入网络时代。工业控制网络为数据采集、工业控制提供了方便,节省了成本,提高了性能。实际应用中,往往需要不同厂家控制系统的数据共享,或某集成系统不能满足控制需要而额外加系统,需要将2种不同系统进行互联。
1.Modbus协议简介
Modbus协议是应用于控制器上的一种通用语言。通过此协议,控制器相互之间、控制器和其他设备之间可以进行通信。它己成为一种通用工业标准。通过Modbus 协议,不同厂商生产的控制设备可以连成工业网络。
标准的Modbus 协议使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验等。控制器能直接或经山Modem组网。Modbus协议将通讯参与者规定为“主"(Master)和“从”(Slave)。主设备可单独和从设备通信,也能以广播方式和所有从设备通信,而从设备之间不能通信。
Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。设备(或广播)地址提供从机地址,从机根据地址判别是否接收请求,以做出相应响应,用户必须设置每台从机的地址。功能代码告诉从机该完成什么样的动作,例如功能代码3表示读取从机保持寄存器并返回其中的内容,数据区的内容就必须包括从机的寄存器地址,需要读的寄存器的个数。错误校验域用于校验信息是否正确传输,采用循环冗长检测方法,CRC域附加在消急的最后,添加时先是低字节然后是高字节。故CRC的高位字节是发送消息的最后一个字节。
2.通信系统硬件组成及连接
Modbus 协议运行在RS-232/RS-485标准的接口系统中,实际应用中,可根据现场情况决定用哪一种:RS-232只能实现一对一的连接,其传输速率局限于20 Kbps,并且传输距离在没有Modem的情况下只有15m左右(用户可以用Modem扩展传输距离);RS-485最多可驱动32台设备,其传输距离在100 Kbps时可达1200m。
TPS系统的RS-485接口最多可以连接15个设备,连接方法可参考手册,终端要有120Ω的终端电阻。
3.通信系统硬件组态及编程
3.1 TPS系统组态
首先对SI IOP进行组态。在HPM(APM)控制功能组态中有以下一些参数与通讯有关:
NNUMERIC:Numeries量的最大个数,要求为16的倍数。
NSTRING:Strings量的最大个数,要求为16的倍数。
NTIME:Times量的最大个数,要求为32的倍数。
NARRSLOT:最大可以设置256个A rray点,其中最多80个可用于SI卡。
SCANPER:指明HPMM(APMM)以多长的周期扫描SI数据并把它们打包进Array点中,此参数影响到A rray点的最大设置量。当扫描周期为1s时,A rray点最多为80个;当扫描周期为0.5s时,Array点最多为40个;当扫描周期为0.25s时,Array点最多为20个。
组态画面的第2页组态Array点的类型、大小和起始地址索引。注意每种点的类型不能超过其规定的大小。其起始地址可为。0-99999之间的任意数值,TPS系统通过起始地址定义Modbus功能号和数据传送地址,其中最高位决定所选用Modbus功能号,低4位为Modbus功能号读/写数据的地址。
3.2 Siemens PLC中的组态与编程
CP341/CP441-2模块是西门子S7-300/400系列PLC中支持Modbus串行通讯的模块,CP341有1个(CP441-2有2个)串行通讯口(RS-232C或TTY或RS-485/422)。以使用这种通讯模块实现S7 300/400与Modbus主从站通讯,该系统使用CP341。要实现Modbus通讯时,需要在CP341/CP441-2模块上插入相应协议的硬件狗,CP模板才能够支持Modbus(RTU格式)。
首先安装STEP7 5.x软件和CP34.x模板所带的软件驱动程序。模板驱动程序包括了对CP341进行参数化的窗口、用于串行通讯的FB程序块、模板不同应用方式的例子程序,CP341模板手册的附录B中说明了CP模板通讯口的针脚定义。当系统上电,CP341模板初始化完成后,SF灯点亮;断电,在CP模块上插入Modbus从站硬件狗,然后安装Modbus从站软件包,安装完软件包后,就可在项目中组态Modbus从站,双击CP341模块,记录下模板的硬件地址(编程时用到此参数),在模块的属性窗口中点击Parameter:按钮,选择Modbus从站协议,将PC和PLC连接起来,PLC上电,点击Load Drivers图标,弹出装载驱动窗口:点击Load Drivers按钮,完成从站驱动安装过程,进行Modbus驱动装载的时候,PLC必须处于STOP状态。再双击信封图标,打开Modbus从站参数设置窗口,具体设置参数有波特率、数据位、奇偶校验位、停止位、从站地址等。
设置完参数后进行编程,FB80是CP341的Modbus通讯功能块,Modbus通讯功能块用DB80作为其背景数据块。FB 180是CY441-2的Modbus通讯功能块,其背景功能块为DB180,这2个功能块必须在用户程序的循环程序中运行(通常为081)。在081中调用FB80/ FB180,设置其输入输出参数,FB80和FB 180中参数具体可参考手册。
PLC每一次冷启动后必须进行1次Modbus功能块初始化设置,具体体现为给CP_STA-RT 1个上升沿触发信号,OB100为PLC冷启动后执行的第1个功能块,此处OB100是为通讯进行一些初始化设置。Modbus通讯功能块调用FB 7 "PRCV_RK"(Receive data)和FB 8“P_SN D_RK"(Send data)(CP341),SFB BSEN D( CP 441-2)进行CP和功能块之间的通信,故相应的功能块也应组态在工程中并下装到CPU中。
4.结束语
目前DCS在石化企业中应用相当广泛,但在一些场合,比如开关量较多、安全可靠性要求不是很高、信号比较集中等场合,DCS并不是最佳选择,这时候也可以考虑PLC和DCS相结合的方法。使用这种方法,不但减小了TPS系统的控制负荷,提高了控制精度,而且费用较低,起到了良好的经济效益。 [科]
【参考文献】