没有合适的资源?快使用搜索试试~ 我知道了~
SSL证书原理及格式1.21
需积分: 0 2 下载量 8 浏览量
2022-08-08
18:22:59
上传
评论 1
收藏 328KB DOCX 举报
温馨提示
试读
15页
2.把xx.key密钥对文件里的公钥取出来,加上一些网站的身份信息,合成一个.csr文件,.csr文件叫作证书请求文件,里面的中文信息用utf-8编码 3.我们
资源详情
资源评论
资源推荐
SSL 证书原理及格式
SSL 数字证书是在我们上网时用来验证服务器的真实身份的。SSL 是传输层的安全协议,
后来改进为 TLS,不过它用的数字证书我们仍然称为 SSL 证书。
SSL 协议的简单原理如下:
客户端发送(自己支持的 ssl/tls 协议及相关参数)给服务端
服务端(选择其中一个协议版本及相关参数)发给客户端
服务端发送(自己的 ssl 证书)给客户端
客户端(在本地查找可靠的 ca 证书去验证服务端的证书是否可信)
若服务端证书可信
客户端发送(用服务端证书里的公钥去加密密钥交换的信息)给服务端
服务端发送(用服务端自己的私钥加密的密钥交换信息)给客户端
双方计算交换后的密钥(为对称的加密算法)
客户端用交换后的密钥发一些验证信息给服务端,服务端正确响应,则 SSL 验证通过。
接下来:
双方 使用对称的加密算法去加密正式的数据
当 ssl 会话到期后,再重新交换新的密钥
ssl 用到了非对称的密钥体制中的 RSA 算法,以及 DH 密钥交换算法(当然,这个密钥
交换可能升级了,不再是原来的 DH 算法了,可能是 ECDHE),双方交换的是什么密钥?是
对称加密算法的密钥,具体是哪个对称加密算法是由 ssl 握手时协商的,可能是 DES,也可
能是 AES。
RSA 算法:
利用大整数因子分解的困难性
先随机生成 2 个大素数 p 和 q,再计算 n=p*q
ψ(n)=(p-1)*(q-1)
随机数 e (0<e<ψ(n))满足 gcd(e,ψ(n))=1,即 e 与ψ(n)互素
计算 d=e
-1
mod ψ(n)
然后就得到 公钥 pub-key 为 e,n
私钥 pri-key 为 d,n
加密算法:密文=明文
e
mod n
解密算法:明文=密文
d
mod n
加密和解密是相对的,互逆的,当用 e 去加密时,就得用 d 去解密,当用 d 去加密时,就得
用 e 去解密。要想通过 e 得知 d 是不可能的,要想通过 d 得知 e 也是不可能的,所以服务端
生成了密钥对 ed(n)后,把其中的公钥给客户端,自己保留私钥,这样就可以互相加密解密
了,
服务端用私钥加密的信息,所有的客户端都可以看到,因为客户端很轻松就能获得服务端的
证书里的公钥,但客户端发的加密消息(用公钥加密),只有服务端能看到,因为私钥只存
在服务端手里。
所以 RSA 算法不是用来加密消息的,因为客户端都能看到服务端的消息,它只是用来做
数字签名的,顺便交换密钥。
、
DH 密钥交换算法:
利用离散对数问题的难解性
q 为一个素数,a 为 q 的一个本原元,要交换密钥的双方 已知 a,q
Y = a
x
mod q
给出 x 容易算出 Y,给出得知 Y 时,反而不易(很难)算出 X
密钥交换过程如下:
用户 A 和用户 B 协商 q 和 a
用户 A 产生一个随机数 X(A)<q 用户 B 产生一个随机数 X(B)<q
用户 A 计算 Y(A)=a
x(A)
mod q 再把 Y(A)发给用户 B
用户 B 计算 Y(B)=a
x(B)
mod q 再把 Y(B)发给用户 A
用户 A 根据 B 发来的 Y(B)计算出 k=(Y(B))
X(A)
mod q
用户 B 根据 A 发来的 Y(A)计算出 k=(Y(A))
X(B)
mod q
然后,用户 A 和用户 B 算出的 k 是一样的,这个 k 就是交换后的密钥
当其他人截获了 AB 的信息,得知了 q,a,Y(A),Y(B)也无法计算出 k
因为其他人不知道 X(A)和 X(B),前面讲过,给出 Y,是不易算出 X 的。
密钥交换过程中就算使用明文,其他人也无法得知 AB 双方交换后的 k,比较安全,但
单纯使用密钥交换算法是无法应对中间人攻击的,所以得用上 RSA 算法,其中服务端使用私
钥去加密要交换的 Y(A),客户端用公钥去加密要交换的 Y(B),这样就可以应对中间人攻击,
接下来要信任的就是服务端了,因为其他人也可以宣称自己就是这个服务端,它做了流量的
劫持,不再做中间人了,自己替代了目标服务器。所以我们需要一个共同信任的机构,由这
个机构去对所有的其他服务器的公钥及相关信息做一个签名,生成一个证书,没错,就是 ssl
证书。
(这个交换的密钥是什么? 当然是对称的加密算法的密钥了,ssl 握手完成后,通信双
方就使用对称的加密算法去加密 正式的数据了,因为对称加密算法执行速度比非对称的快)
签名:
可信的 CA(验证机构)使用它的私钥把 其他服务端的(公钥及相关信息)加密(这就
叫签名),生成一个 ssl 证书,服务端收到 CA 发的证书后,部署到服务器上,当有客户请求
ssl 连接时,服务端再把这个证书给客户端,客户端用可信 CA 的公钥去解密此证书,解密
后的内容再和此证书上所宣称的信息一比对,就可得知此证书的真伪了。
可信 CA 的公钥存放在它的 CA 证书里,顶级 CA 证书是由它自己来签名的(中间 CA 的证书是
由上层 CA 来签名的)。可信的 CA 一般在操作系统安装时就放在操作系统里了。
话说我们凭什么就要相信这些 CA 呢?因为这个验证机制是人家最早提出并得到了广泛
剩余14页未读,继续阅读
阿汝娜老师
- 粉丝: 21
- 资源: 309
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0