ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:817.04KB ,
资源ID:13433677      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13433677.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(客户和服务器端的安全通信Word文档格式.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

客户和服务器端的安全通信Word文档格式.docx

1、程序设计原理.3.1通信协议设计.3.2技术原理44.技术细节.64.1申请证书4.2双向身份认证84.3协商会话密钥.94.4生成摘要4.5加解密文件.4.6完整性验证.105实验演示.10 参考文献.16 21. 作业要求实现客户和服务器端的安全通信功能,其中包括:(1) 基于公钥证书,实现双向的身份认证(2) 会话密钥协商(算法自选)(3) 数据传输:加密、完整性保护(算法自选)(4) 简明的设计文档图 1.1 协议流程图2. 作业分工赵鹏: 认证, 会话密钥协商, 代码整合田敏求: 数据加解密卓雪君 张秋艳: 通信部分, 摘要生成, 完整性验证, 界面,代码整合 宋晓明: 文档3. 程

2、序设计原理3.1 通信协议设计整个通信过程包括了:证书申请、双向身份验证、会话密钥协商、传送/接收加密文件、文件完整性校验五大部分。具体协议设计如图3.1所示。 图3.1 C/S通信协议图图中一些符号注释如下:KS_PUBLIC:服务器公钥KS_PRIVATE:服务器私钥KC_PUBLIC:客户端公钥KC_PRIVATE:客户端私钥n1, n2:随机数,用来防止重放攻击K:会话密钥Seed:生成会话密钥的种子M:发送的明文文件m:明文文件对应的摘要其中证书采用离线拷贝的方式,保证通信双方在建立连接前已经拥有对方的证书。在双向身份验证的过程中采用生成随机数的方式防止了重放攻击。协商会话密钥的过程

3、中传送的是经过加密的生成会话密钥的种子。传送文件时,在文件末尾附上了用MD5生成的文件摘要,方便接收方进行文件的完整性验证。3.2 技术原理(1) Openssl简介SSL是Secure Socket Layer(安全套接层协议)的缩写,目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。改协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。Openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算

4、法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。Openssl采用C语言作为开发语言,这使得它具有优秀的跨平台性能。Openssl支持Linux、UNIX、windows、Mac等平台。openssl目前最新的版本是0.9.8e. OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。(2) CryptoAPI简介微软的CryptoAPI是PKI推荐使用的加密

5、API。其功能是为应用程序开发者提供在Win32环境下使用加密、验证等安全服务时的标准加密接口。CryptoAPI处于应用程序和CSP(cryptographic service provider)之间,如图3.2所示。图3.2 Microsoft CryptoAPICryptoAPI的编程模型同Windows系统的图形设备接口 GDI比较类似,其中加密服务提供者CSP等同于图形设备驱动程序 ,加密硬件(可选)等同于图形硬件,其上层的应用程序也类似,都不需要同设备驱动程序和硬件直接打交道。 CryptoAPI共有五部分组成:简单消息函数(Simplified Message Functions

6、)、低层消息函数(Low-level Message Functions)、基本加密函数(Base Cryptographic Functions)、证书编解码函数(Certificate Encode/Decode Functions)和证书库管理函数(Certificate Store Functions)。其中前三者可用于对敏感信息进行加密或签名处理,可保证网络传输信心的私有性;后两者通过对证书的使用,可保证网络信息交流中的认证性。5CryptoAPI可以从保密和确证这两方面来保证安全通信。CryptoAPI系统有四类函数:基本Cryptographic函数、简化Cryptographi

7、c函数、存储函数和验证加密/解密函数,前两类函数提供保密性,后两类函数提供确证。CryptoAPI允许调用这些函数来加密数据、交换公钥、散列一个消息来建立摘要以及生成数字签名。CryptoAPI使用两种密钥:会话密钥与公钥/私钥对。会话密钥采用单钥密码体制,效率高,但必须保证密钥的安全传递。公钥/私钥算法较慢,主要用于身份的认证以及用于加密少量数据,例如用于加密会话密钥。Microsoft CryptoAPI体系结构如图3.3所示:图 3.3 Microsoft CryptoAPI体系结构4.技术细节4.1 申请证书主要通过openssl的命令来手工生成证书,主要过程为:(1) 生成RSA密钥

8、对:Openssl genrsa -out prikey.pem 1024(2) 利用密钥对生成证书请求:Openssl req new key prikey.pem out req.pem(3) 利用openssl自带的ca来给证书请求签名Openssl ca in req.pem out cert.pem notext参数notext的作用是生成的证书中不带明文的生成过程。利用同样的步骤生成client.pem,server.pem和各自相应的私钥文件prikeyclient.pem, prikeyserver.pem4.2 双向身份认证假设通信双方为A,B,在通信之前都拿到了对方的证书。

9、那么验证过程为:(1) 生成一个随机的字符串m(2) sha1(m), 利用hash算法对m做sha1计算(3) 利用A自己的私钥对sha1(m)加密,完成签名Asha1(m)(4) 利用B的公钥来对m进行加密,B,然后和第3步完成的内容一起发送给B(5) B利用自己的私钥对B进行解密,同时利用A的公钥对Asha1(m)解密,然后比较内容是否相同。(6) 在B端重复(1)-(5)的步骤。4.3协商会话密钥由A端生成一个随机的字符串,用这个字符串作为对称密钥生成的种子。然后将这个字符串用B的公钥进行加密然后传输给B。B接收到后利用自己的私钥进行解密,得到种子字符串。双方都利用这个种子字符串来生成

10、对称加密密钥。4.4 生成摘要首先获得指定CSP密钥容器句柄,然后创建一个空哈希对象,并将指定的文件加到指定的哈希对象,进行哈希。这样就实现了对一个不定长度的文件生成摘要的过程,摘要长度为128Bit。4.5 加解密文件(1) 文件加密步骤 打开源文件File.txt 取得密钥容器(CSP)句柄 根据用户输入的密码创建一个会话密钥,即应用对称密钥对原文件加密。i.ii.iii.iv. 创建一个Hash对象 用用户输入的密码产生一个散列 通过散列生成一个会话密钥 销毁Hash对象 非对称密钥由于效率非常低,所以一般不用于对数据直接加密,而是对会话密钥进行加密,然后把它传送给对方。对方通过非对称密钥解密获得会话密钥(即对称密钥),然后再对数据文件进行解密。 加密数据文件i. pbBuffer循环读入待加密文件的固定长度的内存块;如果一次读入整个文件,那样会很浪费内存空间,而且影响扩展性,即存在缓冲区溢出的可能。 清理回收工作i. 释放内存缓冲区空间、密钥句柄、CSP句柄等。(2) 文件解密步骤打开加密文件EnctyptedFile.txt取得密钥容器(CSP)句柄根据用户输入的密码创建一个会话密钥,即应用对称密钥对原文件解密。实际应用中,这个用户输入的“密码”是一个产生密钥的种子,一旦产生完会话密钥

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1