b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

SSL双向身份验证和SSL双向身份验证之间的流程和区别

电脑杂谈  发布时间:2020-05-21 09:24:39  来源:网络整理

saa认证与vde认证有什么区别_ssl认证_ssl 证书认证过程

image.png

SSL单向身份验证仅要求站点部署SSL证书. 任何用户都可以访问它(IP限制等除外),但是服务器提供身份验证.

image.png

双向认证需要服务器和客户端提供身份认证,只能由服务器允许的客户端访问,安全性相对较高.

SSL / TLS工作流程

图1 SSL / TLS工作流程

CA: 证书颁发机构. 它类似于国家出入境管理处,后者向他人发行护照. 它也类似于国家工商行政管理总局,后者向公司颁发营业执照.

它具有两个主要属性:

1)CA本身是受信任的// //国际认可的

2)向他值得信赖的申请人颁发证书//和护照一样,要确定您的合法身份,您不能是分子或叛乱分子. 当然,您需要受到保护,同时,CA可以随时吊销您的证书.

证书是什么样的?实际上,您的计算机中有一堆CA证书. 你能看看吗?

360浏览器: 选项/设置->高级设置->隐私和安全性->管理HTTPS / SSL证书->证书颁发机构

Firefox浏览器: 首选项->高级->证书->查看证书->证书颁发机构

chrome浏览器: 设置->高级->管理证书->授权中心

ubuntu: / etc / ssl / certs

这些是CA证书!

CA证书ca.crt和SSL服务器证书server.crt之间有什么关系?

1)SSL Server自己生成一个私钥/公钥对. server.key / server.pub //私钥加密,公钥解密!

2)server.pub生成请求文件server.req. 请求文件包含一些服务器信息,例如域名/申请人/公共密钥等.

3)服务器将请求文件server.req提交给CA. CA验证正确之后,它将使用ca.key和请求文件来生成server.crt

4)由于ca.key和ca.crt是一对,因此ca.crt可以解密server.crt.

在实际应用中: 如果SSL客户端要验证SSL服务器. 然后,SSL服务器必须将其证书server.crt传递给客户端. 然后,客户端使用ca.crt来验证server.crt的合法性. 如果它是网络钓鱼网站,则CA将不会向他颁发有效的server.crt证书,因此客户端将使用ca.crt进行验证,并且它将失败. 例如,如果浏览器是客户端,则您要访问合法的淘宝网站,但如果您不小心访问了该浏览器,则浏览器将检查此假淘宝网络钓鱼网站的非法性,并提醒用户不要继续访问!这样,可以确保客户端的所有https访问都是安全的.

2.2单向认证和双向认证

saa认证与vde认证有什么区别_ssl 证书认证过程_ssl认证

什么是SSL / TLS单向认证和双向认证?

单向身份验证意味着只有一个对象可以验证对等证书的有效性.

通常使用客户端来验证服务器的合法性. 然后客户端需要一个ca.crt,服务器需要server.crt,server.key

双向认证是指相互验证. 服务器需要验证每个客户端,客户端也需要验证服务器.

服务器需要server.key,server.crt,ca.crt

客户端需要client.key,client.crt,ca.crt

2.3证书详细工作流程

图2证书详细工作流程

1)申请认证: 服务器需要生成公钥私钥对pub_svr&pri_svr,并同时根据pri_svr生成请求文件csr,并将其提交给CA. csr包含公钥,组织信息,个人信息(域名)和其他信息. (图1中的server.req是csr请求文件)

2)审核信息: CA通过各种方式(例如组织是否存在,企业是否合法以及它是否拥有域)来验证申请人提供的信息的真实性,例如和离线名称.

3)颁发证书: 如果信息得到批准,则CA将向申请人颁发认证文件证书.

证书包含以下信息: 申请人的公钥,申请人的组织信息和个人信息,发布机构CA的信息,有效时间,证书序列号以及其他明文形式的信息ssl认证,并且还包含一个签名.

签名生成算法: 首先,使用哈希函数来计算公共明文信息的信息摘要. 然后,CA使用私钥对信息摘要进行加密,并且密文是签名. (生成图1中的server.crt)

4)返回证书: 如果客户端请求验证服务器,则服务器需要返回证书文件. (在图1中,握手返回到server.crt)

5)客户端验证证书: 客户端读取证书中的相关明文信息,使用相同的哈希函数计算消息摘要,然后使用相应CA的公钥解密签名的数据,并比较证书. 如果它们相同,则可以确的有效性,即公钥是合法的. 然后,客户端将验证与证书有关的域名信息以及是否取消了有效期.

客户端将具有内置的受信任CA证书信息(包括公共密钥). 如果不信任该CA,则找不到相应CA的证书,并且该证书也将被确定为非法. (在图1中,检查是可选的,我们可以选择不验证服务器证书的有效性)

6)密钥协商: 验证后,服务器和客户端将进行密钥协商. 接下来,服务器和客户端将使用对称密钥加密. (出色的对称加密时间性能)(图1中的pre-master / change_cipher_spec / encrypted_handshake_message过程)

7)数据传输: 服务器和客户端使用对称密钥来加密和解密数据.

2.4单向SSL / TLS身份验证过程

---------------------

(1)client_hello

客户端发起一个请求,以纯文本形式发送请求信息,包括版本信息,密码套件候选列表,压缩算法候选列表,随机数,扩展字段和其他信息. 相关信息如下:

受支持的TSL协议版本最高,从低到高SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,目前不再使用低于TLSv1的版本;

客户端支持的密码套件列表,每个密码套件对应于以前的TLS原理中的四个功能的组合: 身份验证算法Au(身份验证),密钥交换算法KeyExchange(密钥协商),对称加密算法Enc(信息加密)和信息摘要Mac(完整性检查);

用于后续信息压缩传输的受支持的压缩算法压缩方法列表;

saa认证与vde认证有什么区别_ssl 证书认证过程_ssl认证

随机数random_C,用于随后的密钥生成;

扩展字段扩展,支持协议和算法相关参数以及其他辅助信息等. 公共SNI是扩展字段,以后将分别讨论该字段的作用.

(2).server_hello + server_certificate + sever_hello_done

server_hello,服务器返回协商信息的结果,包括选择的协议版本ssl认证,选择的密码套件,选择的压缩方法,随机数random_S等的协商信息,其中随机数用于后续密钥协商;

server_certificates,服务器端配置相应的证书链,用于身份验证和密钥交换;

server_hello_done,通知客户端已发送server_hello消息;

(3). 证书验证

如上所述,[证书链]可信证书路径的可信度;

证书是否吊销吊销,离线CRL和OCSP都有两种,不同的客户端行为会有所不同;

到期日期到期日期,证书是否在有效时间范围内;

域名域名,检查证书域名是否与当前访问的域名匹配,并对匹配规则进行后续分析;

(4).client_key_exchange + change_cipher_spec + encrypted_handshake_message

client_key_exchange,在通过有效性验证后,客户端将计算一个随机数Pre-master,并使用证书公钥对其进行加密,然后将其发送到服务器;

此时,客户端已经获得了计算协商密钥所需的所有信息: 两个明文随机数random_C和random_S以及它们自己生成的用于计算协商密钥的Pre-master;

enc_key = Fuc(random_C,random_S,Pre-Master)

change_cipher_spec,客户端通知服务器,后续通信将使用协商的通信密钥和加密算法进行加密通信;

encrypted_handshake_message,结合以前所有通信参数的哈希值和其他相关信息,生成一条数据,并使用协商密钥会话密钥和算法进行加密,然后发送到服务器以进行数据和握手验证;

(5).change_cipher_spec +加密的握手消息

服务器使用私钥解密加密的Pre-master数据. 根据之前交换的两个明文随机数random_C和random_S,计算协商密钥: enc_key = Fuc(random_C,random_S,Pre-Master);

先计算所有接收到的信息的哈希值,然后解密客户端发送的crypted_handshake_message消息,以验证数据和密钥的正确性;

change_cipher_spec,验证通过后,服务器还发送change_cipher_spec通知客户端,后续通信将使用协商的密钥和算法进行加密通信;

encrypted_handshake_message,服务器还结合所有当前的通信参数信息来生成一条数据,并使用协商密钥会话秘密和算法来加密并发送给客户端;

(6). 握手结束

客户端计算所有接收到的信息的哈希值,并使用协商后的密钥对crypted_handshake_message进行解密,验证服务器发送的数据和密钥,并在验证后完成握手;

(7). 加密通讯

saa认证与vde认证有什么区别_ssl认证_ssl 证书认证过程

开始使用协商的密钥和算法进行加密通信.

2.5实际的Wireshark分析

我们构建的SSL / TLS服务器为192.168.111.100,客户端为192.168.111.101. 客户端需要验证服务器的合法性.

我们只查看TLSv1.1数据包:

第一个程序包(第25个)Client Hello程序包,即SSL / TLS单向身份验证过程的(1)

第二个软件包(第27号)服务器Hello软件包,包括服务器证书等. 这是SSL / TLS单向身份验证过程的(2)

第三包(第28号)服务器证书验证完成,并且同时发送客户端密钥交换+更改密码规范+加密握手消息. 也就是说,SSL / TLS单向身份验证过程(4)

第四包(第29号)密钥协商,更改密码规范+加密的hanshake消息. 即(5)SSL / TLS单向身份验证过程

第五个数据包(第30个)握手完成. 开始上层数据传输. SSL / TLS单向身份验证过程(7)

2.6 SSL / TLS相互认证过程

它与单向身份验证几乎相同,除了在客户端对服务器证书进行身份验证之后,客户端会将自己的证书client.crt传递给服务器. 服务器通过身份验证后,密钥协商开始.

实际的Wireshark分析:

与单向身份验证相同:

我们构建的SSL / TLS服务器为192.168.111.100,客户端为192.168.111.101. 客户端需要认证服务器的合法性,服务器还需要认证客户端的合法性!

我们只查看TLSv1.1数据包:

第一个程序包(第55号)Client Hello程序包,即SSL / TLS单向身份验证过程的(1)

第二个软件包(第57号)服务器Hello软件包,包括服务器证书等. 这是SSL / TLS单向身份验证过程的(2)

第三包(第60号)服务器证书验证完成,并且同时发送客户端证书client.crt,其中还包括客户端密钥交换+更改密码规范+加密的握手消息. 也就是说,SSL / TLS单向身份验证过程(4)

第四包(第61号)服务器验证客户端证书的有效性. 通过密钥协商后,请更改密码规范+加密的hanshake消息. 即(5)SSL / TLS单向身份验证过程

重发数据包(编号62)由于网络原因,TCP重发了60号数据包.

第五个数据包(第64个)握手完成. 开始上层数据传输. SSL / TLS单向身份验证过程(7)

2.7证书和其他格式说明

crt / key / req / csr / pem / der等扩展名是什么?

1).crt表示证书,.key表示私钥,.req表示请求文件,.csr表示请求文件,.pem表示pem格式,.der表示der格式.

您可以根据需要命名文件扩展名. 命名不同的扩展名只是为了了解需求. 但是,文件中的信息已格式化. 与exe和PE格式一样,证书有两种格式.

saa认证与vde认证有什么区别_ssl 证书认证过程_ssl认证

pem格式和der格式. 所有证书,私钥等可以是pem或der格式,具体取决于应用程序的需求.

pem和der格式可以相互转换:

openssl x509 -in ca.crt -outform DER -out ca.der // pem-> der

openssl x509-通知der -in ca.der -out ca.pem // der-> pem

pem格式: 加密的文本文件,通常以以下开头和结尾:

1

-----开始使用RSA私钥-----

-----结束RSA私钥-----

或:

-----开始证书请求-----

-----结束证书请求-----

或:

----开始证书-----

-----结束证书-----

der格式: 加密的二进制文件.

2)证书以纯文本形式包含申请人的公钥,申请人的组织信息和个人信息,颁发机构的CA信息,有效期,证书序列号等信息,并包含签名. 例如,查看百度证书的详细信息.

a)首先下载百度证书

要访问Firefox浏览器,请单击左上角的绿色小锁,单击向右箭头,单击更多信息,单击以查看证书,单击详细信息,然后单击导出. 您可以导出百度的证书baiducom.crt

b)查看证书详细信息的命令

openssl x509 -noout -text -in baiducom.crt

在详细信息中,存在一个字段: X509v3基本约束: CA: FALSE

此字段指示证书是CA证书还是常规的非CA证书. 有关详细说明,请参阅RFC5280#第4.2.1.9节,并且RFC5280还详细描述了证书的工作方法.

3)私钥加密,公钥解密!

2.8 SSL / TLS与Openssl,mbedtls之间是什么关系?

SSL / TLS是一种工作原理. openssl和mbedtls是SSL / TLS的特定实现,与TCP / IP协议和套接字之间的关系非常相似.

三: 在本地生成与SSL相关的文件

3.1证书生成脚本

我们使用makefile.sh脚本在本地创建一个CA(ca.crt + ca.key),并使用该CA分别向服务器和客户端颁发证书.

makefile.sh


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-217573-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...