数字证书原理

基础知识

1. 公钥密码体制

公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:

  • 加密:通过加密算法和公钥对明文进行加密,得到密文。
  • 解密:通过解密算法和私钥对密文进行解密,得到明文。
  • 注:由公钥加密的内容,只能由私钥进行解密;由私钥加密的内容,只能由公钥进行解密。

公钥密码体制的公钥和算法都是公开的,私钥是保密的。

2. RSA

RSA算法一直是最广为使用的"非对称加密算法"(加密使用的密钥和解密使用的密钥是不相同的)

这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。

RSA密码体制是一种公钥密码体制。

3. 签名
是在信息的后面再加上一段内容,可以证明信息没有被修改过。

一般是对信息做一个hash计算得到一个hash值。
注:这个过程是不可逆的,也就是说无法通过hash值得出原来的信息内容。

在发送信息时,会把得到的hash值加密后做为一个签名和信息一起发出去。 接收方在收到签名和信息后,会重新计算信息的hash值,并和信息所附带的hash值(解密后)进行对比,如果一致,就说明信息的内容没有被修改过,因为这里的hash计算可以保证不同的内容一定会得到不同的hash值,所以只要内容一被修改,根据信息内容计算的hash值就会变化。

HTTPS通信过程

注:以下内容将使用:{} 表示加密后的内容,[ | ]表示密钥和算法进行加密

  1. client 发送请求。
    client -> server : hi,你是服务器吗?

  2. server 发送自己的数字证书,证书中有服务器的公钥。(server持有私钥)
    server -> server : hi,我是服务器,这是我的数字证书。

  3. client 检验数字证书,证书正确发送随机的字符串
    client -> server : 请证明你是服务器!这是一个随机字符串。

  4. server 先对随机字符串hash处理,再加密
    注:防止黑客模拟用户发送特殊字符串,从而破解
    server -> server : {hash处理的随机字符串}[私钥|RSA]

  5. client 验证hash处理的随机字符串,发送一个对称加密算法和密钥,并用公钥加密
    client -> server : {对称加密算法和密钥}[公钥|RSA]

  6. 之后 client与server之间用 client发送的对称加密算法加密,进行信息传输(增加序号;增加信息摘要:对信息进行hash计算;每次通讯都需要增加)
    注:

    • (增加序号):防止黑客捣乱(多次重发已发过的信息)
    • (增加信息摘要):防止黑客修改密文

    server -> client : {序号0,已收到你发的对称加密算法和密钥,你想干啥?摘要}[密钥|对称加密算法]
    client -> server : {序号1,haha,摘要}[密钥|对称加密算法]
    server -> client : {序号2,hehe,摘要}[密钥|对称加密算法]

证书的构成和原理

  • Issuer (证书的发布机构)
    指明这个证书是什么机构发布的(只是创建证书,不是指证书的使用者)。

  • Valid from , Valid to (证书的有效期)
    证书的使用期限。 过了有效期限,证书就会作废,不能使用。

  • Subject (主题)
    证书的所有者

  • Public key (公钥)

  • Signature algorithm (签名所使用的算法)
    指的这个数字证书的数字签名所使用的加密算法,这样就可以使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。指纹的加密结果就是数字签名

  • Thumbprint, Thumbprint algorithm (指纹以及指纹算法)
    用来保证证书的完整性的,也就是说确保证书没有被修改过。
    原理:在发布证书时,发布者根据指纹算法(一个hash算法)计算整个证书的hash值(指纹)和证书放在一起,使用者在打开证书时,自己也根据指纹算法计算一下证书的hash值(指纹),如果和刚开始的值对得上,就说明证书没有被修改过,因为证书的内容被修改后,根据证书的内容计算的出的hash值(指纹)是会变化的。
    注:指纹以及指纹算法 会使用证书机构的私钥用签名算法加密

  • yyy所有者的证书如下:
    ×××××××××××××××证书内容开始×××××××××××××××××

    Issuer : xxx

    Subject : yyy

    Valid from : 某个日期

    Valid to: 某个日期

    Public Key : 一串很长的数字

    Signature algorithm : zzz
    …… 其它的一些证书内容……

    {证书的指纹和计算指纹所使用的指纹算法}[xxx的私钥|zzz]

    ×××××××××××××××证书内容结束×××××××××××××××××

详细数字证书原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值