摘要算法
略
对称加密
略
非对称加密
略
数字签名
使用摘要算法对原文进行签名后使用rsa的私钥对摘要进行加密。
不过rsa在实际使用中有两种手段,一种是直接加密,这样对对长度有要求,不能超过rsa所选定的质因数的长度,或者进行分段加密。
因为rsa加密很慢,第一种方法在加密较长文件时会很蛋疼,所以一般使用第二种加密方法。使用对称加密加密原文,然后使用rsa加密对称加密中使用的秘钥。
数字证书
数字证书通俗理解就是被认证过的数字签名。
数字签名中的原文可以是一些文本内容,也可以是签名者的信息。如果是签名者的信息,就可以使用认证的方法对这个人的信息进行认证,表示认证者认同签名者的信息。
证书认证的过程就是认证者使用自己的私钥对数字签名进行签名,准确来说是对数字签名中的公钥进行签名。这样只有认证者的公钥可以验签,以此来保证安全。然而认证者可以是私人,可以是权威机构。如果认证者是权威机构,那么这个数字证书就可以成为CA证书,是权威机构核查过申请者的信息之后使用自己的私钥加密而产生的。
为了数据传输安全,越来越多的网站启用https。在https握手阶段,服务器首先把自己的证书发送给用户(浏览器),浏览器查看证书中的发证机构,然后在机器内置的证书中(在PC或者手机上,内置了世界上著名的CA机构的证书)查找对应CA证书,然后使用内置的证书公钥校验服务器的证书真伪。如果校验失败,浏览器会提示服务器证书有问题,询问用户是否继续。
例如12306网站,它使用的自签名的证书,所以浏览器会提示证书有问题,在12306的网站上有提示下载安装根证书,其用户就是把自己的根证书安装到用户机器的内置证书中,这样浏览器就不会报证书错误。但是注意,除非特别相信某个机构,否则不要在机器上随便导入证书,很危险。
csr:证书请求文件,通过私钥生成。其中包含申请者的信息、申请者的公钥
crt:证书,CA机构通过私钥对认证申请者的公钥进行加密。包含被认证者的信息、认证机构的信息、认证者的私钥
base64
p12
x509
dv、ov、sv
PKCS#1-PKCS#15
x509
cer
crt
pem
p12
综合实例
我们知道在 iOS 中向 Apple 申请证书时,需要生成 csr 文件并上传。这个过程中涉及到的操作有:
1、证书申请者生成自己的私钥
图:
2、通过私钥生成 csr 文件(第一步和第二部可以合成一步)
图:
3、将 csr 文件上传给 Apple,csr 文件中包含申请者的公钥和申请者的信息
图:
4、Apple验证 csr 文件的合法性,如果合法则进行验签操作
图:
5、如果验签通过,审核申请者的信息是否属实。
6、如果校验全部通过,则使用自己的私钥对 csr 文件进行签名生成 CA 证书颁发给证书申请者
使用x509指令查看Apple办法的证书的信息

3、验证csr文件中包含公钥且公钥是通过私钥生成的
1、通过钥匙串生成csr文件


该步骤产生3个文件,一个是请求文件csr,另外两个是公私钥文件,可以再钥匙串中查看并导出,结果如下:

将三个文件全部导出到文件夹中,其中私钥导出的格式只能是p12: