加密技术---openss 理论
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加密技术---openss 理论相关的知识,希望对你有一定的参考价值。
OpenSSL
两台主机之间怎样进行安全的数据传输呢?
ssl/TLS 是什么?为什么可以实现数据的加密传输?
ssl/TLS是安全的套接字层,在应用层和传输层又虚拟了一个层,当http封装完后传输给TCP层时候,调用SSL层来对数据进行加密
什么是openssl?
openssl 是SSL的开源的实现。它有三部分构成。
libcrypto:加密库(不通信时候可以单纯加密本地数据)
libssl (ssl/TLS的实现。基于会话的、实现身份认证、数据机密性和会话完整性的ssl/TLS库)openssl 多用途的命令行工具
攻击类型: 威胁保密性的攻击:窃听、通信量分析; 威胁完整性的攻击:更改、伪装、重放、否认 威胁可用性的攻击:拒绝服务(DoS) 解决方案: 技术(加密和解密)、 服务(用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务) 服务: 认证机制 、访问控制机制
密钥算法和协议
对称加密
特性:
1、加密、解密使用同一个密钥;
2、将原始数据分割成为固定大小的块,逐个进行加密; 注:可以保证数据的机密性
缺陷:
1、密钥过多;
2、密钥分发困难;
算法:3DES,AES,Blowfish
公钥加密 密钥分为公钥与私钥
特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
用途:数字签名:主要在于让接收方确认发送方的身份;
密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
数据加密
算法:RSA(主要用于密钥交换,也可签名,也可以加密和解密数据), DSA(只能用于签名), ELGamal
单向加密
特性:定长输出、雪崩效应;提出数据指纹;只能加密,不能解密;
算法:md5: 128bits sha1 160bits sha224, sha256, sha384, sha512
你知道怎样保证密钥传输的安全性?密钥交换: IKE
公钥加密RSA(使用对方的公钥加密) 缺点是:在网上传输了
Diffie-Hellman(密码不在网上传输)
A和B传输数据如何保证数据机密性、完整性、身份验证的呢? 如下图
1、同理B收到数据后,用自己的私钥解密,得到对称密钥。
2、然后用对称密码解密整个数据,保证了数据的机密性。B用A的公钥能够解密数据特征码,可以验证数据来自于A。
3、B再次用单向加密算法就算出数据特征码进行比对,如果一样表示数据没有改动,验证了数据的完整性。
为什么要用到pki?
PKI: 公钥基础设施:可以用来验证数据来源的合法性
组成: 签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库:
SSL会话主要三步:
客户端向服务器端索要并验正证书;
双方协商生成“会话密钥”;
双方采用“会话密钥”进行加密通信;
如图:
client server
A-----------------------------------B
------->hello
hello <---------------
验证证书,公钥加密随机数--------->
B计算所有的随机密钥,生成一个对称密钥
服务端握手结束通知
SSL Handshake Protocol:
第一阶段:ClientHello:
支持的协议版本,比如tls 1.2;
客户端生成一个随机数,稍后用户生成“会话密钥”
支持的加密算法,比如AES、3DES、RSA;
支持的压缩算法;
第二阶段:ServerHello
确认使用的加密通信协议版本,比如tls 1.2;
服务器端生成一个随机数,稍后用于生成“会话密钥”
确认使用的加密方法;
服务器证书;
第三阶段:
验正服务器证书,在确认无误后取出其公钥;(发证机构、证书完整性、证书持有者、证书有效期、吊销列表)
发送以下信息给服务器端:一个随机数;
编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送;
客户端握手结束通知;
第四阶段:
收到客户端发来的第三个随机数pre-master-key后,计算生成本次会话所有到的“会话密钥”;
向客户端发送如下信息:
编码变更通知,表示随后的信息都将用双方商定的加密方法和密钥发送;
服务端握手结束通知;
本文出自 “学而思” 博客,请务必保留此出处http://xwj4611.blog.51cto.com/7126230/1761050
以上是关于加密技术---openss 理论的主要内容,如果未能解决你的问题,请参考以下文章