十分钟搞懂https签名

一、基本概念

1.1 对称加密、非对称加密、摘要算法

  • 对称加密:采用相同的秘钥进行加密和解密,如AES、DES等
    • 优点:计算量小、加密速度快、效率高
    • 缺点:需要提前协商固定秘钥、秘钥容易泄露
  • 非对称加密:加密和解密需要两个不同的秘钥:公钥和私钥,如RSA、DSA等。非对称加密采用复杂的算法,私钥加密的数据需要公钥解密;反之公钥加密的数据需要私钥解密。通过公钥解密公钥加密的数据难度极大,所以对外公开公钥相对比较安全。
    • 优点:安全
    • 缺点:速度慢,效率低
  • 摘要算法(Hash算法):是一种单向算法,用户可以通过hash算法对目标信息生成特定长度的唯一hash值,却不能通过hash值重新得到目标信息,常用在不可还原的密码存储、信息完成性校验,如MD5、SHA等。CRC与MD5、SHA1等相比一般用作通信数据的校验,检错能力和安全性低,CRC计算结果是一个数值,叫做CRC值。

1.2 证书、CA机构

  • root CA:根证书机构是不直接颁发end-user certificates,而是授权给多个二级CA
  • intermediates CA:中间证书机构,证书机构是一个树状结构,二级CA又可以授权给三级CA等,一般操作系统都有集成root CA的证书,而且定期会更新。
  • Distinct Name(DN):X.509中来标识唯一标识的实体,其功能类似我们平常使用的ID,不同的是,DN不是123456 这样得数字标识,而是采用多个字段来标识一个实体。如‘CN=“china”,O=“尘世公司”,ID=“123456”'表示一个DN。
  • 证书:通过合法的CA机构认证的CA证书,是end-user的公钥和认证信息通过CA机构的私有加密后的字符串
  • 证书链:最终证书到根证书的一系列证书合并而成,这个证书链的处理过程是所有根的子级指向最开始的根证书。如下图end-user certificates层层获得root certificates,然后根据系统中存放的root public key进行解密,然后反向获得end-user public key。往往服务端都包含整个链条上的证书,所以只需要反向解密验证即可。

在这里插入图片描述

二、https访问过程

2.1 申请证书

提供服务的服务方通过提交关键DN信息向有合法的CA机构申请证书,如阿里云等。也可以自己利用openssl进行自签名,自签名的证书浏览器访问会报错提示。自签名可参考这篇文章,讲述的比较清晰。

容易混淆的一点是,我们平常说的对外公开的一定是证书,证书里面包含公钥。证书采用的是X.509的格式,只要是客户端进行反解证书都可以获得公钥,所以即使自签名的证书也可以通过浏览器访问,只不过浏览器或提示不安全,如果点击继续或者设置为安全,依然可以使用https协议进行通讯。

在这里插入图片描述

2.2 交互流程

如下图,当用户发起https访问,服务端会返回CA证书(如果是自签名就是返回自签名的证书),浏览器会进行证书解析,首先会判断CA证书是否合法,比如CA机构是否合法,对应的DN信息是否匹配。如果不合法就提示用户,如果合法就获取公钥(这里不需要解密,直接解析即可获取);然后根据公钥进行随机私钥的加密,接着一步一步按照下图流程就行。

在这里插入图片描述

2.3 双向验证

如果服务端不验证客户端的身份是不需要客户端安装证书的,如果需要验证客户端就需要服务端生成专门的客户端证书(参数与上述的证书有所区别)提供个客户端(用户)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值