加密解密技术基础以及公钥基础设施(PKI)

网络之间的通信通过传递报文的方式实现,在传递这些报文的过程中,为了保护报文内容不随意被窃取和修改,对报文进行加密就起到了至关重要的作用。

加密和解密:传统加密方法、现代加密方法。

传统加密算法:替换加密算法、置换加密算法。

现代加密方法:现代块加密方法。

加密和解密都依赖于算法的实现,但加密的安全性不能依赖于算法本身,因为算法是公开的,人人都可以知道。所以就需要通过另一种更安全的方式实现对数据报文的封装,这就需要密钥来实现。

密钥算法和协议:对称加密、公钥加密、单向加密、认证协议。

对称加密:加密解密使用同一个密钥,加密算法和解密算法有可能不同。

常见的对称加密算法:DES、3DES、AES

特性:(1)加密、解密使用同一个密钥;(2)将原始数据分割为固定大小的块,逐个进行加密。

缺陷:(1)密钥过多;(2)密钥分割困难

公钥加密:密钥分为公钥与私钥

公钥:从私钥中提取产生;可公开给所有人;pubkey

私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

用途:数字签名(主要在于让接收方确认发送方的身份);密钥交换(发送方用对方公钥加密一个对称密钥,并发送给对方);数据加密;

算法:RSA,DSA,ELGamal

单向加密:即提取数据指纹(特征码);只能加密,不能解密;

特性:定长输出、有雪崩效应(初始数据的微小改变将导致加密结果的巨大变化);

功能:测试数据完整性;

算法:md5,sha1,sha224,sha256,sha384,sha512;

密钥交换(IKE):

公钥加密、DH算法。

单对单加密解密机制:

加密阶段:

第一步:B生成数据。

第二步:B使用单向加密算法提取数据的特征码。

第三步:B使用自己的私钥对特征码进行加密并附于数据的后面进行数字签名。

第四步:B生成一个随机密码使用对称加密的方法对数据和加密的特征码进行统一加密。

第五步:B获取A的公钥。

第六步:B使用A的公钥对对称加密使用的密码进行加密并附于数据后面。

解密阶段:

第一步:A收到数据后,先使用自己的私钥对对称加密的密码进行解密,获得对称加密的密码。

第二步:A使用解密的得到的密码对数据进行解密,得到数据和B加密的特征码。

第三步:A使用B的公钥对特征码进行解密,从而验证了数据来源的可靠性(能够解密该特征码说明此数据来源于B)。

第四步:A使用同样的单向加密的算法提取数据里的特征码,并于解密得到特征码进行比对,从而验证数据的完整性(A提取特征码和B加密的特征码比对结果如果一样,说明数据是完整的,在传输过程中并没有被随意修改)。

此种加密解密的方式虽然为数据的传输提供了加密解密的机制,保证了数据传输中的安全性,但在此种机制中,有一个环节是有漏洞的。在B获得A的公钥对数据进行加密时,B并不知道获得的公钥是否真正来源于A,同样的A解密特征码时获得B的公钥时也并不能确定该公钥是否真正来源于B,这就在数据传输中存在了危险性,在传输过程中就会有第三方的插入,但传数据的双方却并不知情。这就是中间人攻击。为了弥补这种危险性,就需要第三方的存在来验证传输数据双方的真身。这个第三方验证机构就是CA。

CA就是为了保证通信双方都能可靠的拿到对方公钥,而且双方都公信的第三方通信机构。

PKI(公钥基础设施):Public Key Infrastructure:签证机构(CA),注册机构(RA),证书吊销列表(CRL),证书存取库。

x.509v3:定义了证书的结构以及认证协议标准。

版本号、序列号、签名算法ID、发行者名称、有效期限、主体名称、主体公钥、发行者的唯一标识、主体的唯一标识、扩展、发行者的签名。

CA会根据x.509协议所规定的内容进行单向加密生成特征码,再用CA自己的私钥对特征码进行加密附加到证书后面生成发行者的数字签名。

通信的双方在通信之前都要获取对方的公钥信息,通过CA来获取公钥就会变得安全很多,为了实现此种安全,双方拿到对方的公钥时验证证书就显得尤其重要,所以我们就要了解CA的工作模式。

CA是如何工作的:

第一步: 要用CA的公钥解密CA的签名,如果能解密说明证书来源可靠。

第二步:用同样的单向加密算法提取证书内容特征码,并与CA的数字签名进行比对,如果一样,证书内容的完整性就得到了保证。

第三步:检查证书的有效期限是否过期。

第四步:验证主体名称是否为通信对方本身。

第五步:检查证书是否被吊销,也就是查看证书吊销列表。

这里就又会出现一个不可靠的环节,当用户拿到CA的公钥解密CA的签名时,怎么确定拿到的CA公钥就是CA本身的公钥。

注:CA的公钥证书由CA自身给自己签发,所有CA首先就要为自己自签证书。

以上讲解到都为单对单用户的手动通信,如果上升到网络层面的通信,进行加密解密的方式都不需要用户进行手动通信,所以基于服务器和客户端之间的通信机制更为复杂。

服务器和客户端之间通信的协议主要有两种:

SSL:安全套接字层(SSL 1.0,SSL 2.0, SSL 3.0)

TLS:传输层安全(TLS 1.0, TLS 1.1 ,TLS 1.3)

服务器和客户端之间的通信(基于SSL的通信):

SSL会话基本过程:

(1)客户端向服务器端索要并验证证书。

(2)双方协商生成“会话密钥”。

(3)双方采用“会话密钥”进行加密通信。

第一阶段:客户端发出请求(ClientHello)

首先客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。

在这一阶段,客户端主要向服务器发送以下信息:

(1)客户端支持的协议版本。比如TSL1.2

(2)客户端生成一个随机数,稍后用于生成“会话密钥”

(3)客户端支持的加密算法,比如AES,RSA

(4)客户端支持的压缩算法

第二阶段:服务器回应(ServerHello)

服务器收到客户端请求后,向客户端发出回应,这叫做ServerHello。

在这一阶段。服务器主要向客户端回应如下信息:

(1)确认使用的加密通信协议版本,比如TSL1.2,如果客户端与服务器支持的版本不一致,服务器将关闭加密通信

(2)服务器端生成一个随机数,稍后用于生成"会话密钥”

(3)服务器确认使用的加密算法

(4)服务器的证书

(在此阶段,如果服务器需要验证客户端身份,就会再发出一个请求,要求客户端提供“客户端的证书”,用来验证客户端身份。)

第三阶段:客户端回应:

客户端收到服务器端回应之后,首先验证服务器的证书(发证机构、证书完整性、证书持有者、证书有效期、吊销列表),确认无误后取出其公钥,如果验证内容有不一致的就会向访问者显示警告信息。

如果证书验证通过,客户端会发送以下信息给服务器端:

(1)客户端生成第三个随机数(pre-master-key),该随机数用服务器的公钥加密。

(客户端会用事先协商好的算法利用这三个随机数生成会话密钥)

(2)编码改变通知,表示随后的信息都将采用双方商定的加密算法和密钥发送

(3)客户端握手结束通知

(如果上一个阶段服务器要验证客户端身份的话,客户端会在这一步发送自己的证书及相关信息)

第四阶段:服务器的回应:

服务器端收到客户端的第三个随机数pre-master-key并用自己的密钥解密之后,利用事先协商好的算法对三个随机数生成和客户端一样的“会话密钥”

然后向客户端最后发送如下信息:

(1)编码改变通知,表示随后的信息都将采用双方协定好的加密算法和密钥发送

(2)服务器端握手结束通知

至此,整个握手阶段全部结束,接下来,客户端和服务器端进入加密通道进行通信,所有的通信内容也就被“会话密钥”进行加密,通信内容也就变得安全多了。

时间: 2024-08-10 15:11:33

加密解密技术基础以及公钥基础设施(PKI)的相关文章

加密解密技术基础、PKI及创建私有CA

加密解密技术基础.PKI及创建私有CA 一.背景 随着互联网的快速发展,整个互联网中涌入了大量的用户,正所谓林子大了什么鸟都有,随之而来的就是数据的安全性得不到保障:因此就有了对数据的加密及解密. 二.安全的目标 1.目标: 信息加密的目的是为了确保所传输的信息具有保密性,不被其他人所劫持后篡改信息:如果被篡改后接收方也应该能知道,而且也应该确保没被劫持的信息接收方可以读取. 2.数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改. (2)

加密解密技术基础、PKI、及创建私有CA

一.加密解密技术基础 (一) 安全的目标:      1.保密性,confidentiality      2.完整性,integrity         系统完整性,数据完整性      3.可用性,avaliability(二) 攻击类型:     1. 威胁保密性的攻击:窃听.通信量分析     2. 威胁完整性的攻击:更改.伪装.重放.否认     3. 威胁可用性的攻击:拒绝服务(DoS)(三) 解决方案:      技术(加密和解密).服务(用于抵御攻击的服务以及为了实现上述目标而特

加密解密技术基础,PKI以及创建私有CA

加密解密技术基础,PKI以及创建私有CA 加密算法和协议:1.对称加密:加密和解密使用同一个密钥 DES:Data Encryption Standard; 3DES:Triple DES; AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits) Blowfish Twofish IDEA RC6 CAST5 特性: (1)加密.解密使用同一个密钥: (2)将原始数据分割成为固定大小的块,逐个进行加密: 缺陷:

linux关于加密解密技术基础、KPI及创建私有CA

linux加密和解密技术基础.KPI及创建私有CA 一.加密方式分为:1.对称加密:加密和解密使用同一个密钥:      对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,在对称加密算法中常用的算法有:DES. 3DES.TDEA.AES.    Blowfish.Twofish          IDE.ARC6.CAST5等.    特性:      1.加密.解密使用同一个密钥:      2.强原始数据分割成固定大小的块,逐个进行加密

加密解密技术基础,pki以及自建私有CA

网络安全议题,几乎是业内人士避不开的话题,要做到网络安全,主要旨在三个方面的目标:保密性,完整性和可用性.本文在此主要对基础的加密和解密技术,ssl协议,以及ssl协议的实现实例做一些简要描述和梳理. 加密和解密: 目前对于网络安全的攻击,很大部分集中在"威胁保密性的攻击",也就是我们进场所说的数据泄露,加密和解密是目前最为直观的解决保密性问题的手段. 几种加密方式: 对称加密: 特点:加密和解密使用同一个密钥:将数据分割成多个固定大小的块,逐个加密: 缺点:密钥过多(对于服务器端,需

加密解密技术基础、PKI及创建私有私有CA

Linux基础中的加密.解密及openssl 数据为什么要加密?      由于互联网刚开始时使用的人非常少,在互联网中交流信息的人都比较"单纯"几乎没有安全问题:但随着互联网的快速发展,整个互联网中涌入了大量的用户,正所谓林子大了什么鸟都有,随之而来的就是数据的安全性得不到保障:因此就有了对数据的加密及解密. 安全的目标       信息加密的目的是为了确保所传输的信息具有保密性,不被其他人所劫持后篡改信息:如果被篡改后接收方也应该能知道,而且也应该确保没被劫持的信息接收方可以读取.

加密解密技术基础及PKI

为了保证网络通信安全,就对其数据进行加密和解密,涉及了密钥分发: 网警公司为http协议通信安全研发了一个库,放在应用层和传输层中间,这个库就叫ssl安全的套接字层,ssl是一个库,是公共功能,加密解密也是协议实现的: 只要应用层的程序在研发时加入了调用ssl这个库,在通信时就会自动完成加解密,实现后续网络通信: SSL: Secure Sockets Layer http --> ssl --> https http协议调用ssl后,就变成了https协议,两者实现方式差别很大,但是加密解密

加密和解密技术基础、PKI及创建私有CA

一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保密性,也可以是为了验证数据的完整性,还可以通过数据加密来实现密钥的交换等. 数据加密依赖于某种加密算法和加密密钥,而数据解密则依赖于某种解密算法和解密密钥.而在当代加密解密技术中,加密密钥既可以与解密密钥相同,也可以和解密密钥不同,这取决于使用什么方法进行加解密. 二.安全的目标 就信息传输过程来说

加密和解密技术基础与OpenSSL

加密和解密技术基础与OpenSSL 加密和解密技术基础(01) 1.了解Linux  service  and  securityOpenSSL:为网络通信提供安全及数据完整性的一种安全协议 2.一般都是C/S通信,此种通信客户端有什么特性?服务端有什么特性呢?(1)两台主机上的通信方式?主机通信实际是进程间通信.通信方式:socket (套接字)ip:port          客户端cip:port<-->服务器端 scip:port(2)如何让客户知道自己的主机和端口呢?把某些众所周知的