linux系统下的加密原理及SSL的实现

核心提示:介绍加密/解密:今天的互联网用于数据通信安全,在通信过程中,为了保证数据的机密性和完整性,我们通常使用加密或认证机制来保证数据通信的安全性…

引入加密/解密:

为了保证数据在通信过程中的机密性和完整性,通常采用加密或认证机制来保证数据通信的安全性。

保密:

明文转换规则>密文将转换明文密文。

密文-->明文将密文转换规则——>程明文

对称加密:提供了一种加密算法本身,并要求用户提供一个关键,结合密钥和算法,将明文变成密文。相反的,它被称为对称加密,加密和解密使用相同的密钥,但该算法是不一样的。当我们有很多沟通的对象,我们不能有效地管理的关键。对称加密算法在一定程度上解决了数字保密问题,但不能解决用户有效的密钥管理问题。

数据完整性:在通信过程中,为了保证数据的完整性,这里涉及到另一种算法:单向加密算法,单向加密算法是提取数据特征码。

单向加密的特性:特性:输入:输出必须相同

雪崩效应:输入的微小变化,导致结果发生巨大变化。

定长输出:不管原始数据有多大,结果的大小是一样的。

不可逆性:原始数据不能根据特征码恢复。

为了保证数据在传输过程中不被第三方篡改,我们还可以对特征码进行加密。

引入密钥交换的概念:

如果双方以前从未沟通过,如何订立密码协议

这里使用的机制称为密钥交换(Internet密钥交换,IKE)。

需要特殊的网络协议支持,基本的重要协议:Diffie Hellman协议:网络切换算法

如果杰瑞和汤姆在因特网上有两个数据P和G,p,G指的是大素数和生成数。



杰瑞:在这个机器中选择一个随机数X。

汤姆:在这个机器中选择一个随机数Y。

传输:

杰瑞:

汤姆:

接收 uff1a

杰瑞:

汤姆:

这个过程是密钥交换算法。

认证:

介绍了公钥加密算法:非对称加密算法。

特征:密钥是成对的。

公钥:P公钥是从私钥中提取出来的,并且是公开的。

私钥:s

非对称加密算法的特点:密钥的公钥加密只能用私钥对应它解密,反之亦然。发送方用自己的私有密钥对数据进行加密,因此可以证实。发送者与对方来保证数据的保密性的公共密钥加密的数据但是,公共密钥加密算法很少用于加密数据:速度太慢。它通常用于身份验证。

它既能保证数据的机密性,又能保证另一方的身份合法性:通常有单向加密算法和非对称加密算法。

通用对称加密算法:

DES数据加密标准的数据加密标准,56bit

改进:DES,3DES

高级加密标准高级

aes192,AES256,aes512(默认为128)

单向加密算法:定长输出

MD4,MD5,SHA1,sha192,SHA256,SHA384(输出长度)CRC循环冗余校验码不提供安全保障。

非对称加密:也称为公钥加密(核心功能:加密和签名)

功能:身份认证(数字签名)、数据加密、密钥交换。

RSA:两个都可以加密并可以签名。

DSA:只有签名,公众使用。

ElGamal:商业算法,它提供了更多的服务

a和b通信的具体过程:

发送者:

1。计算数据的特征码(单向加密)

2。用自己的私钥加密签名并将其附加到数据的后面。

三.生成一个临时对称密钥

4。使用此密钥对数据进行加密,并在一定的算法之后对数据进行加密。

5。用接收者的公钥加密对称密钥并将其附加到加密数据

6。发送给收件人

B受体:

1。用自己的私钥解密加密对称密钥

2。用临时对称密钥解密数据

三.用另一个公钥解密加密签名

4。使用相同的算法计算数据的特征码,并与解密后的特征码进行比较。

CA概念的引入:

事实上,双方之间的公钥转移是为了到达对方。在这个过程中,它不能验证对方的身份。因此,有必要引入第三方认证机构CA(证书颁发机构)。

方式是:发送方将其公钥发送给第三方,由第三方对其公钥进行公证,并将信息制成证书,并添加第三方签名。只要接收方同意发送方证书的可靠性,他们就可以通过证书与证书进行通信。

整体认证是PKI(公钥基础设施)称:公共密钥基础设施

PKI的核心是CA与终端之间的信任关系。

通过检查证书吊销列表,我们可以看到,如果证书是有效的:CRL检查撤销,过期的证书或证书遗失,确保证书的安全和用户的合法性。

通用证书的当前格式:

X509证书内容包含:

公钥及其有效时限

证书的合法拥有者

证书应该如何使用

信息认证

CA签名检查码

互联网上著名的安全机制:SSL和TLS使用X509证书。

TLS和SSL的功能是什么,以及它们如何实现密钥交换:

SSL:安全套接字层安全套接字层。
的版本是:SSL版本2 SSLv3

HTTPS:是HTTP协议的加密,采用443端口,它是通过TCP层和应用层加上半层是SSL,SSL是一个库,即应用层的库在传输过程中可以实现安全传输协议,很多通过调用这个库实现加密功能。

TLS是一个开放源代码的加密机制,全称:传输层安全传输层安全和TLSv1版本相当于SSLv3 SSL版本

建立SSL会话的过程:

我们将以HTTP协议为例,简要介绍建立SSL会话的过程。

HTTP协议:双方握手三次,在沟通的过程中,客户的要求,建立一个SSL会话的服务器和客户端服务器协商,将您的证书给客户端,客户端必须先验证后获得证书(无论是信任和诚信),客户端建立会话密钥,服务器端的公钥加密密钥后发送到服务器,该密码加密的客户端服务器。

在Linux中,可以实现对称加密的工具:OpenSSL(基于SSL的开放源代码加密工具)

OpenSSL的开源实现:SSL包括三部分:

Libcrypto:一般的加密库(提供各种加密功能)

实施libssl:TLS / SSL

实现基于会话的身份验证、数据保密性和会话完整性的TLS / SSL库

多用途命令行工具。

还可以实现私有证书颁发机构。

OpenSSL包含许多子命令,可以实现很多功能,和基本用法如下:



OpenSSL的速度测试各种加密算法的速度,这是一个很好的测试工具。

ENC ndash;ciphername(加密算法的名称),这文件是{在文件读取,{出文件名加密结果储存地点} { } { -精氨酸-通过加密} { } }精氨酸D解密代码}。

Eg:对文件加密,OpenSSL ENC ndash;DES3 ndash;一个ndash;在inittab ndash;了inittab

文件解密:OpenSSL ndash;DES3 ndash;D –一个ndash;在inittab.des3 ndash;出

提取特征码(指纹)OpenSSL的补给和传输局局长--基于OpenSSL;应把

基于OpenSSL的密码字符串生成:OpenSSL密码- 1(一个基于MD5)