




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入式操作系统中ssl协议的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 随着嵌入式技术和计算机网络技术的快速发展,具备网络传输功能的嵌入式应用 越来越多,在嵌入式应用的某些特殊领域如电子商务等,人们还提出了“确保嵌入式 应用系统的数据传输安全”的需求协文将对传输层安全协议s s l :v 3 o 进行研究分析, 介绍在嵌入式系统中实现s s l 协议客户端功能的过程。 s s l 是一个完整而开放的通讯协议,它概括了使用对称密钥算法、公开密钥算法、 数字证书等来获取数据保密、数据完整性和身份认证的标准方法,通过对传输层中的 数据保护确保了应用数据的安全,是目前电子商务中最常用的安全技术之一。文章对 s s l 协议的数据处理过程及握手协商流程进行了详细介绍,还就协议的安全性进行了 研究分析,有针对性地提出了一些协议实现要点。同时文章还介绍分析了协议实现所 需的d e s 、r s a 、m d 5 等几种算法的原理及其安全性。 嵌入式系统存在计算、存储等资源有限、开发调试困难的特点,文章在分析嵌入 式系统中实现s s l 协议的特殊性的基础上,阐述了协议的具体实现过程。( 实现中采取 了降低协议灵活性,确保安全性的策略,减少了支持算法集,去掉了数据压缩处理环 节、不允许会话复用等。为提高服务器数字证书的认证速度,文章设计了一种简洁高 效的认证流程。同时,针对s s l 协议对随机数随机性要求高的情况,提出了一种有效 ,_ _ j _ 一 的随机数软件生成方法。j 关键字:嵌入式系统:安全套接字协议:数字证书;随机数 华中科技大学硕士学位论文 a b s 善r a c 置 w i t ht h e r a p i dd e v e l o p m e n t o fe m b e d d e dt e c h n o l o g i e s a n d c o m p u t e rn e t w o r k s , e m b e d d e ds y s t e mw i t hn e t w o r km o d u l ei sb e c o m i n gm o r ea n dm o r ep o p u l a r i ns o m e s p e c i a la p p l y i n go f e m b e d d e ds y s t e ms u c ha se b u s i n e s s ,w en e e dt op r o v i d eah i g hl e v e l o f s e c u r i t yt op r o t e c tt h ed a t ai nn e t w o r kt r a n s i t t h i st h e s i s i sb a s e do nt h er e s e a r c hm a d i m p l e m e n t o fs s l v 3 0i ne m b e d d e d s y s t e m s s li sao p e n i n ga n di n t e 醛t y p r o t o c o l t h a to u t l i n e s 鑫s t a n d a r dw a yt ou s e c r y p t o g r a p h y ( s e c r e tk e ya l g o r i t h m s ,p u b l i ck e y a l g o f i t h m sa n dd i g i t a lc e r t i f i c a t e ) t oa c h i e v e h i g hl e v e l so f d a t ap r i v a c y , d a t ai n t e g r i t y , a n da u t h e n t i c a t i o n i ts c c l l r e st h ea p p l i c a t i o n l a y e rb yp r o t e c t i n gd a m i nt r a n s i t s s li sp r o b a b l yt h em o s tp o p u l a rs e c u r i t yt e c h n o l o g i e s o fe b u s i n e s s t h i st h e s i sp r e s e n t st h ep r o t o c o la n dc r y p t o g r a p h i ca l g o r i t h m s ,a n da n a l y z e s t h e s e c u r i t yo f t h e m 。 t h ec h a r a c t e ra n dl i m i t a t i o no fi m p l e m e n ts s li ne r t o sa r ea n a l y z e d t tp r e s e n t st h e m e t h o da n ds p e c i a l i t yo f d e v e l o p m e n ti ne m b e d d e ds y s t e m w er e d u c et h ea l g o r i t h m sa n d a b o l i s ht h ec o m p r e s sf u n c t i o ni nt h i st h e s i s 。i td e s i g n s af l e ww a yt os o l v es e r v e r a u t h e n t i c a t i o na n dt h em e t h o do f r a n d o mn u m b e rg e n e r a t i o n k e yw o r d s : e m b e d d e ds y s t e m ;s e c u i ms o c k e tl a y e rp r o t o c o l ;d i g i t a lc e r t i f i c a t e : r a n d o mn u m b e r i l 华中科技大学硕士学位论文 i 绪论 1 1 课题背景 为便于课题背景的了解,先简要介绍武汉精伦电子“公用多业务终端”项目的情 况。 随着语音业务逐渐向移动化、p 化发展以及固网电话普及率的不断提高,在传统 语音业务上,固定电话网的a r p u 值在一定时期内仍会呈下滑趋势,因此固网业务急 需寻找新的业务增长点。“如何利用现有数字网络资源开展固网增值服务? ”被列为 电信行业重点研究专题。 在此需求背景下,作为国内公用电话最大制造商之一的精伦电子萌生了将公用电 话与数字网络嫁接融合的设想,提出了“公用多业务终端”的概念,并于2 0 0 1 年制 定了“公用多业务终端系统”项目的研发计划。该系统是建立在电信业务平台上、为 流动公众提供语音服务、信息服务和金融服务的公众服务系统,由多业务终端、终端 管理系统、增值业务管理系统等组成。 “公用多业务终端”是一种具备语音通话、数据通信的i c 卡电话终端设备。该 终端为嵌入式应用系引”,采用了专用嵌入式处理器和n u c l e u sp l l l s 【2 】嵌入式实时操作 系统。n u c l e u sp l u s 提供了抢先式实时多任务操作内核,并以软件组件的方式提供了 任务控制、内存、中断、定时器及i o 驱动管理等1 0 多个核心组件1 3 ,同时扩展了嵌 入式图形模块g r a f i x 和网络协议软件包n u c l e u sn e t ,但没有提供保护网络传输安全 h 的模块。为确保银行、证券等增值业务的网络传输安全,项目组提出了“嵌如入式 系统中s s l 协议吲的研究与实现”课题。 s s l 协议涉及的内容很多,有对称密钥算法、公开密钥算法、散列算法及数字证 书等,其实现代码都比较大,而且协议制定时没有考虑需要在资源有限的嵌入式系统 中应用的情况。因此,课题需要对s s l 协议进行详细的研究与分析,同时对嵌入式系 统的特点及开发环境进行研究,提出一种在资源有限的嵌入式系统中实现该协议的方 法,力图确保该协议的通用性、稳定性及可靠性,为“嵌入式浏览器”等制定应用接 口标准。 华中耩技大学硕士学位论文 1 2 国肉外概嚣 1 2 。l 嵌入式系统搬况 嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应成用 系统对功憨、霹靠毽、或零、诲积、功耗严疆要求酶专餍圣 葬捉系统礴。麸最裙鹃以 单片机技术为核心的系统到目前建囊在微处理器和嵌入式操作系统旗础之上的系统, 嵌入式系统经历了3 0 多筝瓣发展翻。在这箕中,嵌入式爨幸筝系统f 8 1 戆密瑗蹩嵌入式系 统发展史上的一个鬟耍里程碑。嵌入式操作系统负爨管理虑用系统的全部软、硬件资 源静分配帮调度,大大减辍了开发工作。瑗在入们穗到嵌入式系统辩,某种程度上弑 是特指近华米发展起来的具有操作祭统的嵌入式系绞。 嵌入式系统由下面凡都分组成: 硬 孛设餐平台:硬 牛设蘩平台怠捂嵌入式微处蠼器移外疆设备。嵌入式激处溪嚣 是嵌入式系统硬件中核心组成部分。目前主要的嵌入式徽处理器类型谢m i p s 、 p o w e r p c 、6 8 k 、x 8 6 、a r m 、s c _ 4 0 e 等。乡 部设备毽掇显示竣麓、霹络设釜、眷谖设备、 输入设备、音频设备等,舆体的嵌入式系统的外部设备由威用需要决定。 嵌入式操 箬系统:嵌入式揉终系统是嵌入式系统筑灵魂,宅主要受责管理系统涤 源、调度任务运行、处理进程间通僚、提供同互斥机制、中断处理锌。嵌入忒操作系 统一般采用徽内谈技术,菲常,j 、巧。实蠡搴褴是嵌入式搡 睾系统匏雯一个重娶特征。弱 前盘要的嵌入式操作系统冒外有v x w o r k s 、w i n d o w c e 、p a l m o s 、l y n x o s 、p s o s 、n u c l e u s 、 舒x 、# c o s i i 等,国内育h o p e n 、d e l t a o s 等。 功能模块及应用程序:功能蠖块及应用程序都运行在嵌入操作系统之上。功能模 块般由嵌入式操体系统开发厂商提供,包括文件系统模块、网络模块、图形用户接 口模块等,它可以针对具体袋入式系统懿盛霜进行选择或者裁剪。 日前,以信息终端为代寝的互联网时代嵌入式产品的出现,不仅为嵌入式市场展 瑷了美好裁最,注入了薪翡生命;霹蹲遣对嵌入式系统技术,特爨怒软枣 鼓寒提露辨 的挑战。这奎要包括:支持冈趋增长的功能密度、灵活的、安全的网络联接、轻便的 移动瘟用窝多媒蒋瀚售患楚疆等。 2 华中科技大学硕士学位论文 1 2 2 s s l 协议 1 9 9 4 年,n c t s c a p e 公司为保护w e b 通信协议h t t p 起草并开发了s s l 协议,该 协议的第一个成熟的版本是s s l 2 0 版,并被集成到该公司的产品中,包括n a v i g a t o r 浏览器和w e b 服务器产品等。s s l 2 0 协议的出现,基本上解决了w e b 通信协议的安 全问题,很快引起了大家的关注。1 9 9 6 年,n e t s c a p e 公司又发布了s s l 3 0 ,该版本 增加了对其它更多算法的支持和一些安全特性,并且修改了前个版本中一些小的问 题,相比s s l 2 0 更加成熟和稳定,因此很快成为事实上的工作标准。1 9 9 7 年,i e t f 基于s s l 协议发布了t l s 【9 】传输层安全协议的i n t e r a c td r a f t ,n e t s c a p e 公司宣布支持 该开放的标准。1 9 9 9 年,i e t f 正式发布了r f c 2 2 4 6 。 s s l 是一个完整而开放的通讯协议,它概括了使用对称密钥算法、公开密钥算法、 数字证书等来获取数据保密、数据完整性和身份认证的标准方法,通过对传输层中的 数据保护确保了应用数据的安全 1 0 t 4 l ,是目前电子商务中最常用的安全技术之一【1 5 】。 s s l 协议的优势在于它是与应用层协议独立无关的,该协议可给任何t c p i p 应用 提供s s l 功能。目前,i a n a 已经为具备s s l 功能的应用分配了固定端口号,例如: 带s s l 的h t t p 被分配以端口号4 4 3 ,带s s l 的s m t p 被分配以端口号4 6 5 。 n c t s c a 口e 公司在发布s s l 协议的同时向公众提供了该协议的原型系统s s l r e f , 但由于支持的算法集有限等原因,没有能够被广泛使用,以至于出现了后来的 o p e n s s l ( 参见网址:h t t p :w w w o p e n s s l o r g ) 。o p c n s s l 是为了实现s s l v 2 、v 3 和t l s v l 协议,而在世界范围内协作开发的一种健壮的、全功能的、开放源代码的软件包, 其主要包括协议实现部分s s l e a y 和算法实现部分l i b e a y 。该项目由世界范围内的志 愿社团管理,并通过i n t c m e t 进行交流和开发。本课题中s s l 协议的实现将以o p e n s s l 提供的代码为参考蓝本。 无特殊说明的情况下,文中所说的s s l 协议均指其3 0 版本。 1 2 3 协议相关理论概况 1 单向散列算法 散列也称为散列值或消息摘要,是采用单向散列函数【1 6 1 7 1 将任意长度的数据块转 换为一个定长的、不可逆转的数字,主要用于生成消息体的摘要信息( 也称指纹信息) 。 华中科技大学硕士学位论文 目前常用的散列算法所产生的散列值长度都比较长( 一般在1 2 8 位以上) ,因此找到 两个具有相同散列值的数据块的概率极低,以m d 5 为例其概率为1 2 ”8 。 常见的散列算法有:m d 2 1 引、m d 4 1 引、m d 5 2 0 】及s h a 2 ”。其中,m d 2 、m d 4 和m d 5 是 由r o n r i v e s t 设计的一组单向散列算法。m d 2 是为8 位计算机系统设计的,而m d 4 和 m d 5 为3 2 位计算机系统开发的,散列值长度都为1 2 8 位。m d 4 容易遭到攻击,到最 后几圈的加密曾被成功地攻破过。m d 5 是在m d 4 的基础上进行了改进,它虽然比m d 4 慢,但却被认为是安全的。 s h a 是由n i s t 开发的,s h a 在结构上类似于i g j ) 4 和m d 5 ,它可以从任意的长度的 消息中摘取1 6 0 位的h a s h 值。然而,该算法的安全性要比其名称所标示的低,于1 9 9 4 年发布了原始算法的修订版,称为s h a l 。 课题中需要使用单向散列函数进行消息认证校验和h m a c l 2 2 l 的计算及会话密钥的 生成。 2 对称密钥算法 对称密码体制1 6 ,1 让3 1 是从传统的简单换位、代替密码发展而来的,有时又叫传统 密码学。在大多数对称算法中,其加、解密密钥是相同的,是加密大量数据的一种行 之有效的方法。自1 9 7 7 年美国颁稚d e s ( 2 4 1 密码算法作为美国数据加密标准以来,对 称密钥密码体制得到了迅猛地发展,在世界各国得到了广泛关注和应用。 对称密钥算法从加密模式上可分为序列密码和分组密码两种。 序列密码的主要原理是:通过有限状态机产生性能优良的伪随机序列,用该序列 加密信息流得到密文序列【h 1 。序列密码算法的安全强度完全决定于它所产生的伪随机 序列的好坏。序列密码的优点是错误扩展小,速度快,利于同步,安全程度高,是军 事和外交等场合使用的主要密码技术之一。 设计分组密码算法的核心技术是:在相信复杂函数可以通过简单函数迭代若干圈 得到的原则下,利用简单圈函数及对合等运算,充分利用非线性运算】。分组密码算 法将明文按一定的位长分组,明文组和密钥组的全部经过加密运算得到密文组。解密 时密文组和密钥组经过解密运算( 加密运算的逆运算) ,还原成明文组。它要求发送 和接收者在进行信息交换之前商定一个密钥,因此分组密码算法的安全性依赖于密 钥。在实际的应用中往往是需要采用后面提到的公开密钥算法进行密钥信息交换,再 4 华中科技大学硕士学位论文 进行数据的分组加密。比较常见的分组密码算法有:d e s 、i d e a 2 q 、r c 2 2 6 1 、r c 5 2 ”、 b l o w f i s h b 8 1 、r i j n d a e l t 2 9 1 等,其中r i j n d a e l 是2 0 0 0 年n i s t 征集a e s 的获胜算法。 3 公钥加密算法 1 9 7 6 年d i f f i e 和h e l l m a n 以及m e r k l e 分别提出了公开密钥密码体制【1 6 , 1 7 , 2 3 的思 想,它要求密钥成对出现,一个为加密密钥,另一个为解密密钥,且不可能从其中一 个推导出另一个,因此公钥加密有时也叫做不对称密钥加密。自1 9 7 6 年以来,已经 提出了多种公开密钥密码算法,其中许多是不安全的,一些认为是安全的算法又有许 多是不实用的,它们要么是密钥太大,要么密文扩展十分严重。多数密码算法的安全 基础是基于一些数学难题,专家们认为这些难题( 如“因子分解”至今已有数千年的 历史了) 在短期内不可能得到解决。 公钥算法是复杂的数学方程式,其计算量很大因此速度相对较低,一般不采用公 钥算法直接进行数据信息加密。公钥算法主要有以下两种形式的应用:与散列算法结 合来提供数字签名服务;为对称加密应用提供密钥交换服务。 常用的公钥算法有以下几种: ( 1 ) r s a t 3 0 1 :目前应用最广泛的公钥加密算法,特别适用于通过i n t e r n e t 传送 的数据。r s a 算法的安全性基于分解大数字时的困难。在常用的公钥算法中,r s a 与 众不同,它能够进行数字签名和密钥交换运算,详细参见3 2 。 ( 2 ) d s a 【圳:由n s a 发明,已经由n i s t 录到f i p s 之中,作为数字签名的标准。 d s a 算法的安全性源自计算离散算法的困难。这种算法仅用于数字签名运算,不适用 于数据加密。 ( 3 ) d h 3 2 】:第一个公钥算法,以其发明者w h i t f i e l dd i f f i e 和m a r t i nh e l i m a n 的名字命名。d i f f i e h e l l m a n 算法的安全性源自在一个有限字段中计算离散算法的 困难。d i f f i e - h e l l m a n 算法仅用于密钥交换。 ( 4 ) e c c 【3 3 】:基于有限域上椭圆曲线的离散对数计算困难性。人类研究椭圆曲线 已有百年以上的历史,但真正把其应用到密码学中是1 9 8 5 年由k o b l i t z 和m i l l e r 两 人提出。其具有比r s a 更高的安全性、而且计算量小,将逐渐成为应用的主流。 4 p k c s p k c s 是r a s 数据安全公司为公开密钥密码学提供的一系列接口标准。虽然严格来 华中科技大学硕士学位论文 说,他们还算不上真正的标准,但是其中的大部分业已在公开密钥算法编程中得到广 泛应用。它主要由下面的标准文件组成: p k c s # i 3 4 1 :描述了r s a 加、解密的方法。 p k c s # 3 3 5 1 :描述了实现d i f f i e - h e l l m a n 密钥交换功能的方法。 p k c s # 5 3 6 1 :描述了用一个从口令中派生的秘密密钥加密信息的功能。它使用m d 2 或m d 5 从口令中派生出密钥,并采用d e s 的c b c 模式加密,这个功能主要用于加密从 一个计算机传送到另一个计算机的私人密钥,但是不能用于加密消息。 p k c s # 6 p 7 】:描述了公开密钥证书的标准语法,这一语法是x 5 0 9 证书的扩展。 p k c s # 7 3 8 1 :定义了数据加密或签名的通用语法,例如数字信封和数字签名。这些 语法是递归的,所以信封可以嵌套,或者可以签名已经加密的数据。这些语法还提供 了其他一些属性,例如可以与消息内容一起被鉴别的时间标记。p k c s # 7 与p e m 【l6 】兼容, 所以不需要其他密码操作,就可以将加密的消息转换成p e m 消息,反之亦然。p k c s # 7 支持多种基于证书的管理系统,p e m 就是其中的一个。 p k c s # 8 3 9 】:描述了私人密钥信息语法,包括私人密钥,一组属性和加密私人密钥 的语法。 p k c s # 9 【帅j :定义了p k c s # 6 扩展证书,p k c s # 7 数字签名消息和p k c s # 8 加密私人密 钥信息的选择属性类型。 p k c s # i o 4 1 】:描述了证书请求的标准语法。一个证书包含可以区别的名字。公开 密钥和一组属性( 可选) ,所有这些均有请求证书的用户签名。证书请求被发放到证 书机关,证书机关将请求转换成x 5 0 9 公开密钥证书或p k c s # 6 证书。 p k c s # 1 i m 2 :是密码标记的a p i 标准,详细规定了一个成为c r y p t o k 的编程接口, 它可以用于各种可以移植的密码设备。c r y p t o k 给出了一个通用逻辑模型,不需要知 道详细的技术细节,就可在可移植的设备上完成加密操作。 p k c s # 1 2 4 3 1 :描述了将用户公开密钥,受保护的私人密钥,证书和其他相关的加 密信息存放在软件中的语法,它的目的是为各种应用提供一个标准的单一密钥文件。 p k c s # 1 3 ,p k c s g l 4 ,p k c s # 1 5 这三个标准还在完善阶段,他们分别探讨椭圆曲线 算法,随机数生成以及通用密码设备方面的标准。 j x 5 0 9 数字证书 6 华中科技大学硕士学位论文 数字证书”1 又称为数字标识,与日常生活中的身份证功能相似。它建立了公共密 钥和某个实体对象之间的关联,从而提供一种在i n t e r n e t 上进行身份验证的方式。 x 5 0 9 1 4 9 , “ 是由国际电信联盟制定的数字证书标准。 x 5 0 9 的最初版本公布于1 9 8 8 年。x 5 0 9 证书由用户公共密钥和用户标识符组成。 此外还包括版本号、证书序列号、c a 标识符、签名算法标识、签发者名称、证书有效 期等信息。项目中将采用该标准的3 0 版本x 5 0 9v 3 ,它定义了包含扩展信息的数字 证书。该版数字证书提供了一个扩展信息字段,用来提供更多的灵活性及特殊应用环 境下所需的信息传送。 数字证书一般由权威的、可信赖的、公正的身份验证机构c a 颁发。基于数字证书 可提供身份验证、数字签名、加密等安全服务。在本课题中将采用数字证书对s s l 通 讯双方的身份进行验证,并使用其数据加密功能对会话密钥素材进行加密处理,确保 会话密钥的安全性。 6 随机数 随机数在密码安全和网络安全中具有广泛的应用,如r s a 中密钥对的生成、s s l 握手协议中会话密钥的生成等都使用到了随机数。如何在终端上生成高质量的随机数 也是课题研究的内容之一。 在目前的应用中有伪随机数和真随机数两种。常见伪随机数产生方法有r a n d 表产 生伪随机数、线性同余发生器产生伪随机数序列、反馈移位寄存器、a n s i x 9 1 7 伪随 机数发生器【4 5 1 等。关于真随机数产生方法,将在4 4 中详细说明。 1 3 课题主要研究工作 本课题的主要研究工作是分析在“公用多业务终端”上实现s s l 协议的可行性, 具体包括以下两个方面: 1 对s s l 协议的安全性【舶4 7 l 进行分析,探讨其对终端增值业务能够提供哪些方 面的安全服务,及如何规避其可能存在的攻击风险: 2 研究在资源( 包括计算及存储资源) 有限的嵌入式系统中实现s s l 协议【4 8 4 9 】 的可行性,慎重地进行选择裁减,在提高执行效率的情况下,确保协议的安全性和互 操作性。 华中科技大学硕士学位论文 在分析研究的基础上需要逐步实现以下几个方面内容: 1 分析并实现能够满足终端计算能力限制及安全强度需求的对称密钥算法、公 开加密算法及散列算法: 2 在n u c l e u sp l u s 中实现s s l 协议的客户端部分: 3 实现客户端对服务器数字证书合法性认证的功能,并确保认证流程的快捷、 安全、合理; 4 支持终设备数字证书的下载、更新及使用; 5 设计一种具有高质量的随机数产生方法; 6 制定s s l 协议应用的接口标准。 华中科技大学硕士学位论文 2s s l 协议分析 2 1 网络安全分析 在当今的网络应用中,存在着大量特制的协议,用来保障网络各个层次的安全, 下面主要就t c p , r i p 协议栈【5 0 1 各层次可采用的安全措施进行对比分析,阐述项目实现 s s l 的原由。 2 1 1 应用层安全 在应用层实施加密是最具强制性的,也是最灵活的,其保护的范围和力度可以根 据需要进行取舍,从而能够满足应用的特定需要。这种安全方式有以下几方面的优点: 1 由于是以用户为背景执行,所以更容易访问用户凭据,比如私人密钥等; 2 对用户需要保护的数据具有完整的访问权并能够进行充分理解。这样便能够 提供一些针对应用数据的特殊服务,如不可抵赖服务: 3 应用可自由扩展,不必依赖操作系统来提供这些服务。 应用层安全的缺点在于针对每个应用,都要单独设计一套安全机制。这意味着对 现有的应用来说,必须对其进行改进,才能提供安全保障。由于每个应用都必须定义 自己的安全机制,这样容易产生安全漏洞,为网络攻击者提供了更多的可攻击机会。 目前,比较常见的应用层安全协议有:p g p 等。相对于其他层的安全而言,有些 与数据依赖性很大的安全服务( 如“不可抵赖”安全服务) 只能在应用层实现,其他 底层的安全服务没有权力也无法理解应用层中数据的意义。 项目中本课题的主要目的是:利用终端设备有限的资源实现一种通用、可配置的 网络安全协议,满足多种应用的安全需求,而不需要针对每种应用进行定制开发。因 此,不能够选择在应用层实旖安全保护。 2 1 2 数据链路层安全 链路层加密是数据保护最透明的形式,对于其上的各层协议是不可见的。事实上, 它常常是通过增加外部加密设备来实现的。 这种加密方式的优点是对整个数据包进行加密,包括源地址和目的地址,这样能 9 华中科技大学硕士学位论文 够抗御类似于流量分析的攻击。然而它一次只能保护一段链路,数据在通过其他链路 ( 如数据交换节点) 时仍然会暴露。 同时,链路层加密还需要两个通信实体物理上连接到一起,一般在配备专用通信 线路的项目中应用,目前已经在银行a t mk 得到广泛的应用。由于本项目所涉及的通 讯实体不可能确保物理上连成一体的,因此也不能采用这种方式。 2 1 3 网络层和传输层加密 在某种意义上说,网络层和传输层加密是保护会话最有用的方式。与应用层加密 类似,它们能使系统在不安全的因特网上对话;与链路加密类似,它们几乎对所有应 用都是透明的。 这两个协议都依赖于密钥标识符的概念。密钥标识符以明文形式随每个加密数据 包一起传送,用于控制加密和解密行为。它确定诸如加密算法、加密分组长度、会话 密钥生命周期及使用何种完整性检测算法等。 网络层和传输层安全的主要区别在于其保护粒度。传输层安全可针对每个连接单 独进行,而网络层安全实篪具有全局性,一旦实施生效,将对其上层协议全部生效, 势必将增加系统的开销。 终端应用的网络安全需求存在差异性,有些服务( 如:新闻资讯浏览) 不需要安 全保护,因此,我们需要在资源有限的终端上提供一种可由应用自主选择的安全协议。 在这种需求背景下,实现传输层安全协议s s l 是最佳的选择。 2 2 s s l 协议分析 2 2 1 协议概述 s s l 协议设计的基本目标是为两个通信实体之间提供如下三种基本的安全服务: 1 身份认证:协议引入了基于公开密钥算法的数字证书认证技术,实现对通信 双方的身份真实性进行认证。认证操作在s s l 握手协商过程中完成,协议提供了无认 证、客户端对服务器的单向认证和服务器及客户端都进行认证的双向认证等3 种认证 方式。 0 华中科技大学硕士学位论文 2 数据私密:s s l 客户端和服务器之间通过协商的会话密钥及加密算法,建立 起安全的数据传输通道,确保数据网络传输的私密性。相对于公开密钥算法而言对称 密钥算法的计算复杂度低、速度较快,因此协议中传输数据的加密算法均采用对称密 钥算法。 3 数据完整:协议应用了基于散列的消息认证校验和h m a c 。h m a c 是一种执 行“校验和”的算法。它通过对数据“进行求和”来检查数据是否被更改了。 s s l 协议的体系结构如图2 1 所示,是一种基于某种可靠协议如t c p i p 之上的安 全协议,同时独立于具体的应用层协议。 团团圆应冁 s s l 协商子层 i s s l 加密子屡 i t c p 佃l a v e , 圈2 1s s l 蛳议体系结构示意图 络屡 s s l 协议分为两层:记录协议( r e c o r dp r o t o c 0 1 ) 和握手协议( h a n d s h a k ep r o t o c 0 1 ) 。 握手协议客户和服务器之间相互进行认证,并协商加密算法和密钥,记录协议是根据 握手协商结果对应用数据进行加密、解密以及检查数据完整性的过程。 2 2 2 记录协议 记录协议位于s s l 协议的底层, 定义了数据的记录封装格式及数据处理流程的 详细过程。 2 2 2 1 记录封装格式 对于采用s s l 协议的所有传输数据,包括协商握手消息、报警消息及应用数据都 被封装在如图2 2 所示的嵌套的记录结构中,其对应的数据结构将在4 2 1 中详细说 明。 华中辩技大学颁士学位论文 图2 2s s l 记录腰数据封装结构米意图 2 2 2 2 数据处理流程 记录秘议规定静数据鲶理过程黻分组鸯西密为铹主要包捺戬下丸步骤: l 。根据协商的公组加密算法的密钥长度对上朦应用数据进行分组或缀合,生残 新的记录数据单元s s l p l a i n t e x t : 2 。采耀汝蘸孵压绾算法压缩记录数掇攀元,生戏压缩数据单元s s l c o m p r e s s e d : 3 生成用于数据完整性检验的h m a c # 4 ,热密压缭矮戆数撼革元窝h m a c ,生成密文数撵鼙元s s l c i p h e r t e x t , 5 将密文数据提交给下层进杼发送处理。 攥器其俸瀛稷魏图2 3 耩示,谗录资议数霉接收处理瀛褪兔发送滚摇戆遂过程, 同时记录协议对 m 舱c 值的计算公式进行丁如下的明确定义: h m a c = h a s h ( h m a c 写密镯+ p a 畦- 2 十 h a s h ( i - i m a c 写密镧+ p a d1 + s c q _ n u m + 长度+ 数据内容) ) 其中,p a dl 程m d 5 中为字符0 x 3 6 重复4 8 次,在s h a 中熏篾4 0 次:p a d _ 2 在 m d 5 中为警符0 x 5 c 重复4 8 次,在s h a 中霪复4 0 次:s e q n u m 为零消感的序列弩; h a s h 为散剐操作,算法可为m d 5 和s h a - l 之一。 华中科技大学硕士学位论文 图2 3 分组模式记录协议数据发送处理流程 2 2 3 握手协议 握手协议在客户机和服务器间执行以建立安全的连接。在握手过程中,服务器和 客户端必须就它们将使用的s s l 协议版本达成一致,还必须在双方所理解的算法的 基础上就它们将使用的加密算法达成一致。同时需要服务器发送一个由可信的c a 签 名的x 5 0 9 数字证书来对它自己的身份进行认证。握手流程如图2 a 所示。 2 2 3 1 加密方式和压缩方式的选择 在连接建立后,通信双方就立即进行加密方式和压缩方式的选择。先由客户端提 供一个加密方式和压缩方式的清单,清单的排列顺序与它偏好相一致。服务端从中进 行选择,并把选择结果反馈回去。经过这一协商,通信双方就对如何在相应连接上使 用这两种方式达成共识。 加密方式涉及的内容包括: 1 密钥交换算法:将用于确定只有收发双方才知道的加密密钥; 2 加密算法:对连接中应用数据的加密: 3 散列算法:对连接中应用数据的完整性检查; 用户也可以定义和选用自己定义的加密方式,也可以选用s s l 3 0 版本中定义的 加密方式,如表2 1 所列。 华中科技大学硕士学位论文 r l i e n th e l l n l r e r r o r - e l l n r e r t 何c a t e 二c e r t ;n c a t er e a u e s t 1 r e r v e rh i nn n n e r e r t i 何c a 怡 r e r t i 什c a t e ! 。 r h a n o er i n h e rs n e _ cl f i n ;h e d - r r h a n 口ec i n h e rs n e c f ;n i q h e c l i e n t s e r v e r 图2 4s s l 樨手协议流捍示煮图 表2 1s s l 常见加密方式列表 加密方式密钥交换算法 加密算法散列算法 s s l _ r s a _ _ w i t hn u l l r o d 5 r s an u l lr o d 5 s s l r s a _ _ e x p o r t _ w i t hr e 44 0 m d 5 r s a _ e x p o r t m 44 0 ( 4 0 位)m d 5 s s l _ r s a _ w i t h _ r e 4 _ 1 2 8 _ s h a mr e 4 1 2 8s h a s s l d h d s se x p o r tw i t hd t s , 4 0c b es h a d hd s s _ _ e x p o r t d e s 4 b c ( 4 0 位) s h a s s l _ d h _ d s s _ w i t h _ d e s c b c s h a d hd s sd e sc b es h a s s l _ d h _ d s s _ w i t h - 3 d e s _ e d e _ c b c _ _ s h a d hd s s 3 d e s _ e d e _ c b c s h a s s ld h ed s se x p o r tw i g _ d e s 4 0c b ds d h ed s s _ e x p o r t e c s 4 0c b c ( 4 0 鼢s h a h a s s l _ d h e _ d s s _ w i t h _ d e s c b c _ s h a d h ed s sd e s c b cs h a s s l d h e d s s _ w i t h _ 3 d e se d e _ c b c _ s h a d h ed s s 3 d e s e d e c b c s h a s s ld ha n o n e x p o r t _ w i t h _ r c 44 0 _ m d 5 d h _ a n o n _ e x p o r tr c 4 _ 4 0 ( 4 0 位) r o d 5 s s l d h _ a n o n _ w l t h _ r c 4 _ 1 2 8 _ m d 5 d ha n o b r c 4 1 2 8m d 5 1 4 华中科技大学硕士学位论文 s s l f o r t e z z a _ k e a _ w i t h f o r t e z z ac b cs h f o r t e z z ak e a f o r t e z z a _ c b d s h a a s s l f o r t e z z a _ k e a _ w i t hr c 4 1 2 8s h a f o r t e z z ak e a r e 41 2 8s h a 由于本课题的应用背景是资源有限的嵌入式系统,不可能实现表2 1 所列的全部 算法。我们在对表2 1 中相关算法进行算法复杂度分析的情况下,仅实现r s a 、d e s 、 m d 5 及s h a 1 ,算法详细说明参见第3 章。 2 2 3 2 身份识别 s s l 协议可支持数字证书方式进行通讯实体的身份认证。数字证书的格式、内容 在c c i t t 的x 5 0 9v 3 建议中作了定义,其主要属性格式如表2 2 所示。 表2 2 x 5 0 9 v 3 属性列表 域描述 v e r s i o n 证书版本号 s e r i a ln u m b e r 证书序列号 a l g o r i t h mi d e n t i f i e r 证书签发者使用的签名算法 s s u e tn a m e证书签发者 v a l i d i t y有效期 n o tb e f o r e ( d a t e ) 证书在该日期之前无效 n o ta f t e r ( d a t e ) 证书在该日期之后无效 s u b j e c tn a m e获取证书的个人或组织的名字。采用“唯一命名”( d n : d i s t i n g u i s h e dn a m e ) s u b j e c tp u b l i ck e yi n f o 主体的公钥信息 a l g o r i t h m 使用何种公钥算法 s u b j e c tp u b l i ck e y 公钥( 一般为1 0 2 4 位以上的比特串) o p t i o n a lf i e l d s 可选域 i s s u e ru n i q u ei d 签证者的唯一d ( 仅2 0 版以上支持) s u b j e c tu n i q u ei d主体的唯一i d ( 仅2 0 版以上支持) e x t e n s i o n s 可任意设苴若干个扩展域( 仅3 0 版以上支持) 华中科技大学硕士学位论文 其中,e x t e n s i o n s 项是证书扩展内容,可满足应用的扩展需求。在课题应用中, 数字证书的应用需求很简单,仅为身份认证及密钥交换,因此,在终端证书处理实现 代码中不支持扩展项的扩展定义。 通信双方在使用数字证书进行身份验证前,需要获得对方证书颁发机构c a 的公 钥及其最新的证书撤消列表信息,判断该证书是否合法有效,过程简要说明如下: 1 用c a 的公开密钥来检验证书数字签名是否正确; 2 判断是证书否处于有效期内; 3 检索该证书是否在证书撤消列表中。 这部分将在4 3 1 中详细说明。 2 2 3 3 会话密钥确定 s s l 中会话密钥产生过程如图2 5 所示,具体包括以下几个步骤: 1 经过身份鉴定过程,客户端获取服务器的公密; 2 客户端产生一个随机数,作为准密钥p r e:_ m a s t e r s e c r e t 3 客户端用服务器的公开密钥加密准密钥; 4 客户端通过网络把密文传给服务器; 5 服务器用自己的私有密钥解密。 图2 5s s l 中密钥产生示意图 至此,双方都具有一个完全相同的准密钥。在此基础上,通信双方将各自使用相 华中科技大学硕士学位论文 同的规则导出会话密钥,再由会话密钥导出对称加密所需要的密钥和h m a c 计算所 需要的密钥等。 s s l 中提供以下3 种交换准密钥p r e的方式:_ m a s t e r s e c r e t 1 双方都有证书,且证书的公钥可用来加密,这时可直接运用证书来加密 p r e _ m a s t e r _ s e c r e t ; 2 双方都有证书,但证书中的公钥只可用来进行签名,不能用来加密。这时服 务器将产生临时的公开密钥,用证书私钥签名后传递给客户;客户端先对公开密钥的 签名进行验证,正确的情况下再用i 临时公开钥加密p r e m a s t e rs e c r e t 传递给服务器; 3 至少有一方没有证书,此时无证书不能对密钥交换进行签名,因此不能防止 主动攻击,这时服务器产生临时的公开钥传递给客户;客户再用该临时公开钥传递 p r e _ m a s t e rs e c r e t 给服务器a 2 2 4 警报协议 警报( a l e r t ) 是s s l 记录层所支持的一种内容类型( c o n t e n t t y p e ) ,它用来表示消息错 误的严重程度及其内容描述。最严重一级的警报消息将立即终止连接,在这种情况下, 本次会话的其他连接还可以继续进行,但会话标识符必须无效,并为防止此失败的会 话被重新建立新的连接,服务器和客户端双方均抛弃前一次会话的标识符、密钥及有 关失败的连接的共享信息等。同其他消息一样,警报消息是利用由当前连接状态所指 出的算法加密和压缩的。 在s s l 握手协议中的错误处理很简单,当发现一个错误后,发现方将向对方发警 报消息。s s l 中定义了如表2 3 中所列的错误警报。 表2 3 警报类型说明表 报警类型 报警说明 u n e x p e c t e d _ m e s s a g e 收到一意外的消息产生此警报,此警报通常是致命性的错误,不应当 在正常应用的连接中被观察到 b a d _ r e c o r d _ m a c 当收到一含有不正确的h m a c 的记录时将返回此警报。此警报通常 是致命性错误警报 d e c o m p r e s s i o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030汽车装饰件行业市场深度研究及发展前景投资可行性分析报告
- 气候变暖和降水变化对草本植物多样性的影响研究
- 植物腺苷酸激酶介导的低温胁迫信号累积机制解析
- 限域材料在水处理高级氧化领域的创新应用与发展趋势
- 2025至2030开环控制数控机床行业市场深度研究及发展前景投资可行性分析报告
- 2025成年人化学晶体结构特点考试题目及答案
- 物流班组长培训课件
- 八年级英语上册 Unit 6 I'm going to study computer science第3课时说课稿 (新版)人教新目标版
- 2024秋九年级英语下册 Module 7 English for you and me Unit 2 We all own English说课稿(新版)外研版
- 本章复习与测试说课稿-2025-2026学年高中物理鲁科版2019必修 第三册-鲁科版2019
- 银行理财规划配置方案(3篇)
- 2025年安徽省综合评标评审专家库考试历年参考题库含答案详解(5卷)
- 2025-2030中国城市更新政策演变与实施路径专项调研报告
- 儿科川崎病课件
- 2025年书记员考试题库(附答案)
- 中成药合理使用培训课件
- 建筑材料绿色采购实施方案
- 学堂在线 劳动教育 章节测试答案
- 2025-2031年中国AI成人娃娃行业市场发展规模及投资机会研判报告
- 2025年江苏省昆山市辅警招聘考试试题题库及答案详解(典优)
- 2025至2030中国个人定位信标(PLB)行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论