SSL协议分析及实现

摘要:目的:该文主要讨论SSL协议的组成和工作过程,应用SSL实现Internet上的安全。方法:先了解SSL协议的体系结构,并通过SSL通信过程和握手协议的工作过程完全了解SSL协议的工作过程。结果SSL协议是在TCP/IP套接层的安全协议,SSL协议很好的解决了Internet上信息的安全传输,弥补了TCP/IP协议的不足,使得我们在网络上传输数据得到安全保障。结论:该文通过对SSL协议的分析及实现过程的讨论,使得我们对SSL实现Internet上的安全有一个全面的了解,并提出其不足之处并加以完善。

关键词:SSL协议;C/S结构;握手协议;TCP/IP协议

中***分类号:TP311文献标识码:A文章编号:1009-3044(2008)29-0304-03

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] 顾兵.***技术在企业中的应用[J].中国海洋平台,2003(1):44-46.

[2] 懂洪伟,冯斌,杨开荞.***关键技术探讨[J].计算机工程,2002(11):159-161,177.

[3] Eric R.SSL and TLS Designing and Building Secure Systems[M].崔凯,译.北京:中国电力出版社,2002.

[4] 李均锐,戴宗坤,李哲,宋成勇.SSL协议及其安全性分析[J].信息安全与通信保密,2004(6):28-30.

[5] 李海成.解析SSL握手协议[J].鞍山师范学院学报,2005(2):64-66.

转载请注明出处学文网 » SSL协议分析及实现

学习

百年飘香福源馆

阅读(16)

福源馆位于河南街中部,是吉林市百年老字号商铺中的佼佼者,开创于明末清初,至今已经有近400年历史。福源馆的糕点,伴随着一代又一代江城人成长,其味道香醇,已经成为江城人生活中不可或缺的一部分,福源馆也成为当地赫赫有名的中华老字号食品企业

学习

胡萝卜种植要点

阅读(71)

本文为您介绍胡萝卜种植要点,内容包括胡萝卜种子种植方法,盆栽胡萝卜怎么种植。胡萝卜为伞形科胡萝卜属二年生草本作物,其营养丰富,是难得的果、蔬、药三者兼用的佳品。胡萝卜适应性强,生长期短,病虫害少,管理简便。关键词:胡萝卜种植病虫害防

学习

黄帝内经 第9期

阅读(28)

本文为您介绍黄帝内经 第9期,内容包括黄帝内经9-1全文,黄帝内经第9篇。黄帝问曰:合人形以法四时五行而治,何如而从?何如而逆?得失之意,愿闻其事。岐伯对曰:五行者,金木水火土也,更贵更贱,以知死生,以决成败,而定五藏之气,间甚之时,死生之期也帝曰:愿卒

学习

微信公众号影响力排行榜

阅读(35)

本文为您介绍微信公众号影响力排行榜,内容包括十大微信公众号排行榜,微信早报公众号排行榜。这是本刊推出的第二期微信公众号影响力排行榜,在榜单的统计制作中,从600万个公众号中选出入围名单,而且完全采用手工搜寻的方式,就如置身于茫茫大

学习

“骆驼牌香烟”创始人 理查德·雷诺兹

阅读(287)

财富档案闻名于世的“骆驼”牌香烟,以其上佳的品质,充满神秘的东方情调的“骆驼”烟标的独特设计,在竞争激烈的烟草行业中盛名不衰,“骆驼”问世至今已有80余年历史了,它已成为世界名牌香烟中的常青树。只要对香烟有一点了解的人,都应该知道“

学习

伊犁地名的由来

阅读(32)

本文为您介绍伊犁地名的由来,内容包括伊犁各个地名由来,伊犁地名什么意思。伊犁,中华锦绣河山的一角,伟大祖国西北边疆的咽喉和屏障。自古以来,这里就是多民族的聚居地,素有“中亚人种博览地”之称。多少年以来,民族杂居、民族斗争、民

学习

屋面防水漏水原因及补救措施

阅读(16)

本文为您介绍屋面防水漏水原因及补救措施,内容包括防水漏水如何补救,鱼池防水漏水怎么补救。在现今建筑大量的建造与改革中,屋面防水作为确保工程建筑质量的一个重要环节,同时从施工技术、管理维护方面分析了建筑屋面漏水的原因,以及新型的

学习

浅析21世纪初世界多极化趋势的主要表现

阅读(37)

本文为您介绍浅析21世纪初世界多极化趋势的主要表现,内容包括21世纪前20年世界多极化发展趋势,世界多极化趋势的出现原因背景。进入21世纪以来,多极化趋势不断发展,主要表现在“多强”与“一超”的实力对比由不平衡逐步走向相对均衡化,并且

学习

敕勒川,阴山下;地无为,石有道

阅读(26)

说起包头,戈壁石自然是占据了半壁江山。临近产地、石种资源丰富、交通便利、有成熟的市场资源,这都成为了包头石市发展有力的推动条件,包头的玩石起步也比较早。前几年,市场大热时,包头也是整个石市的一股极有力量的队伍,不论是石商还是玩家,都

学习

从《琵琶记》中看中国古代戏曲的中和美

阅读(19)

本文为您介绍从《琵琶记》中看中国古代戏曲的中和美,内容包括琵琶记是什么戏曲剧种,戏曲琵琶记剧情解析。【摘要】《琵琶记》作为中国古代戏曲中一颗璀璨的明珠,作者高明以一种中和的审美情怀重新审视剧本中的人物,开辟出一种和合相善的审

学习

上世纪30年代上海的舞场

阅读(29)

在1936年,上海的公共交际场所,除了咖啡馆,文化声望低一些的是歌舞厅、卡巴莱和舞厅:前者指装饰华美,是经常有卡巴莱表演的场所,那主要是外国人光顾的地方;而后者就只有一支小乐队,一些“的士舞者”或伴郎。当时,上海有超过300家的卡巴莱(歌舞厅)和

学习

恐怖的三叠纪恐龙

阅读(21)

本文为您介绍恐怖的三叠纪恐龙,内容包括恐怖的恐龙故事,三叠纪的食肉恐龙排名。你或许会感到奇怪:为什么所有的大陆变得乱七八糟的,还挤在了一起?其实,这全是滚烫的石头造成的。陆地实际上是一片无比巨大的岩石,漂浮在由熔化了的滚烫岩石组成

学习

塑造品牌形象 培育品牌优势

阅读(29)

本文为您介绍塑造品牌形象 培育品牌优势,内容包括品牌建设和品牌打造方法,品牌内涵对品牌形象塑造的意义。纵观当今世界,“品牌竞天下”已经成为市场竞争的大趋势,决定企业竞争胜败的关键因素取决你是否拥有赢得社会公众和广大客户普遍信

学习

内部控制监督评价

阅读(38)

本文为您介绍内部控制监督评价,内容包括内部控制的评价与监督,内部控制评价指引全文最新。【摘要】加强内部控制必须强调其监督与评价问题。内部审计、内部控制的自我评估与外部评估影响上市公司内部控制建设的有效性。加强内部审计,大力

学习

孤石爆破飞石原因分析及安全技术措施

阅读(21)

爆破飞石破坏作用会对建筑物和人员会造成严重的危害,因此,爆破安全至关重要,必须在技术与施工中采取有效的预防与防护措施。本文结合施工案例,分析了孤石爆破的特点与危害,探讨了孤石爆破拆除过程中安全技术措施的控制,以期为相关的爆破工作提

学习

日本福岛核电站周边核辐射监测分析

阅读(35)

本文为您介绍日本福岛核电站周边核辐射监测分析,内容包括福岛核电站辐射量分布图,福岛核电站附近海域核辐射剂量。[摘要]2011年3月11日日本福岛第一核电站发生了七级特重大核事故。为测定核事故后核电站周围辐射量对居民健康,环境安全等

学习

深圳市重点税源分析及建议

阅读(27)

本文为您介绍深圳市重点税源分析及建议,内容包括重点税源主要分析,重点税源管理分局的繁杂度和难度。[摘要]本文探讨了我国税源预测和分析工作存在的问题,提出了做好此项工作的对策和建议。并以深圳为例进行了重点税源分析,具体就深圳近年

学习

外国刑法中的违法性阻却事由比较分析

阅读(28)

本文为您介绍外国刑法中的违法性阻却事由比较分析,内容包括我国刑法对国外犯的适用原则,刑法在国外的效力。我国刑法中所规定的违法性阻却事由主要为正当防卫和紧急避险,但理论界同时也认为还包括自救行为、正当业务行为、法令行为等。与

学习

航空铝合金及其材料加工分析

阅读(23)

本文为您介绍航空铝合金及其材料加工分析,内容包括航空铝合金的发展回顾与展望,航空铝合金材料参数。航空制造中的铝合金材料,是比较重要的加工材料,由于航空制造对安全性及质量性能的要求比较高,在加工铝合金材料时,要注重结构材料的性能,提

学习

汽车信贷主要障碍及着力点的分析

阅读(25)

本文为您介绍汽车信贷主要障碍及着力点的分析,内容包括汽车信贷问题分析,汽车信贷的对策。汽车信贷的高需求与狭窄扭曲的汽车信贷渠道并存是目前国内汽车信贷市场的典型特征。依据国内汽车信贷市场的现实状况,认清汽车信贷渠道中的主要障

学习

《青蛇》电影音乐分析

阅读(57)

本文为您介绍《青蛇》电影音乐分析,内容包括青蛇赵文卓电影完整版,青蛇跳舞那段音乐。[摘要]《白蛇传》经由李碧华操刀改编,鬼才徐克执导,给这个家喻户晓的传奇故事赋予生命后,有了另一番新意,改名为《青蛇》。这部电影非常成功,其中最为出彩的

学习

国有企业的资本运作分析

阅读(22)

本文为您介绍国有企业的资本运作分析,内容包括国有企业资本运作的案例,国有企业资本管理案例分析。通过吸收合并的资本运作方式以有限的资源杠杆去撬动更多的资源,以较低的成本扩张,对企业资源进行整合,谋求企业产业化与专业化发展,对实现