证书基础
1. 概念
1.1. 公私钥
- 我这里提到的密钥概念可以理解为一个 String 串就行
- 对称加密:也就是加密和解密所使用的密钥是同一个,常用到的有 AES、DES、3DES 等等,这类加密方式容易理解,不过多赘述。
- 非对称加密:加密和解密所使用的密钥是一对,也就是两个,若 A、B 是一对密钥,那么加密使用 A 则解密只能使用 B,加密使用 B 则解密只能使用 A。这也就是公私钥的原型。
- 公钥,就是公开的,每个人都可以拿到它,称之为公钥;私钥则相反,只有一个人能拥有,并且是保密的。
1.2. 数字签名
- 数字签名和加解密不同,是对一段信息做 hash 算法(MD5,RSA 等)运算,生成唯一标识该信息的一个特征串。
- 那么我们要做的就是对我们的密文信息再进行一次签名,将签名得到的签名特征串附在原文后,那么对方接收到报文以后,如果能验签通过,那就能确定消息是你发的了。
1.3. 签名,验签
- 如果你用公钥签名,那么地球人都能签出一样的特征串,而只有一个人能验签,那又陷入僵局……,但如果用私钥签名,那么只有你一个人能唯一签出该特征串,地球人都能验签,那就都能确定该信息是你发出的。所以结论就是:私钥加签,公钥验签。
- 如果用到的是非对称加密,那么你和第三方之间就有两对公私钥,各自持有对方的公钥和自己的私钥。网络通讯中我们一般用自己的私钥将报文加签,用第三方提供的公钥将报文中涉及安全隐私的部分加密,然后第三方会用我们提供公钥进行验签,验签通过后再用他们自己的私钥将报文加密部分解密。
- 一个可信任的第三方认证中心(CA),CA 把你的公钥进行认证,并颁发一个数字证书给到你,该证书里面包含了你的公钥,而你给别人的公钥也替换成数字证书,别人拿到数字证书,在确认是 CA 签发的后,就认为你的公钥合法可信的。
- 证书就是经过 CA 认证的公钥。
- 参考链接