当你要申请一个数字证书的时候,驱使你这么做的原因是什么?
仔细想一想,就会知道:
我要和别人在网络中安全地通信,所以我需要一张 CA 颁发给我的数字证书来向别人证明我的公钥
这就是申请数字证书的初衷
想和别人在网络中安全的通信,那么我就使用现在流行的非对称加密吧
哦,这样啊,那我先创建属于自己的密钥对儿吧,即公钥和私钥,然后把公钥给别人
别人不相信这是我的公钥怎么办
请 CA 帮我证明吧
这就是数字证书的作用
那么下面就可以引申出公钥和私钥的话题了
在创建证书申请文件,即 CSR 文件的时候,钥匙串中会同时生成一对儿密钥对儿,即公钥和私钥。这对密钥对儿就是用来在网络通信中进行明文加密以及数字签名的。所以在申请数字证书的时候,是势必要生成的,这是加密解密工具。
在你刚刚创建完 CSR 文件,还未提交至 CA 的时候,电脑钥匙串中就会生成一对儿密钥对儿。
当你把 CSR 文件提交,拿到 CA 颁发的证书后,需要将数字证书(你的公钥载体)和私钥进行匹配,匹配方法就是将证书安装到钥匙串当中。
我们在网络通信中,为了安全起见,公钥和私钥配合使用。现在有了权威的数字证书(权威公钥载体),我们就可以用自己的数字证书和自己的私钥配合使用,以便安全地在网络中进行通信。
只有将装载了公钥的数字证书和私钥进行匹配后,数字证书才可以和私钥搭配来使用。
当开发者下载并双击打开数字证书后,这个文件会出现在钥匙串里。它与本地钥匙串里的私钥匹配之后,开发者就可以使用它了。
证书和私钥的关系
- 证书和私钥的关系
http://www.zhihu.com/question/19882380
数字证书和私钥是匹配的关系。
就好比钥匙牌和钥匙的关系。
在数字证书签发的时候,数字证书签发系统(CA系统),在生成数字证书的同时,还会随机生成一对密钥,一个私钥,一个公钥。
数字证书标示用户身份, 相匹配的私钥和公钥,则是用来保障用户身份的可认证性。
就好比咱们拿着一串钥匙,每个钥匙上都标明有时某某房间的钥匙,但是否是真的,还需要看能不能打开相应的房门。
- 证书分为公钥证书和私钥证书。每个人的公钥、私钥证书是不一样的。但是肯定是一一对应的。
http://zhidao.baidu.com/question/112870420.html?qbl=relate_question_0&word=%D6%A4%CA%E9%D3%EB%CB%BD%D4%BF%C6%A5%C5%E4
加密技术:公钥证书加密、私钥证书解密
签名技术:私钥证书加密、公钥证书解密
加密和签名技术相结合才能实现,机密性、完整性、不可否认性。
为什么需要证书,是因为每个人的数字证书里包括了证书用户信息及密钥信息。没有证书谈不上非对称加密技术。
数字证书的个人理解:
- 数字证书是一个权威容器:
证明用户公钥的一种权威手段·
我拿到了你的公钥,但是我不能完全相信这就是你的公钥,万一是别人冒充怎么办
CA 的一张颁发给你的证书里有你的公钥,我拿到你的证书就拿到了你的公钥,这样我十分相信这就是你的公钥
数字证书就是用来证明你的公钥的确是你的公钥
数字证书就是公钥的权威载体
数字证书就是证明你的公钥的文件
数字证书就是权威公钥,你说这是你的公钥,别人不相信。但是你给别人你的数字证书,别人就相信里面的公钥是你公钥
如何确定对方身份
- 如何确定对方是就是我要找的人?有一个解决方法,因为只有我要找的那个人才有有私钥,所以只要能够确认对方我要找的那个人的私钥,那么对方就是我要找的人。
- 假如黑客拦截了你的通信请求,把自己的公钥发给了你,黑客有自己的私钥,然后黑客签名,你用黑客给你的公钥进行解签,也同样会误认为黑客就是你要找的人。所以在私钥的确定上,你需要明确知道你拥有的公钥是你要找的那个人的公钥
- CA 颁发给“你要找的那个人”的数字证书能够证明里面的公钥就是“你要找的那个人”的公钥。
- 只要确定对方拥有和自己手中拿到的目标人的权威公钥匹配的私钥,对方就是目标人
确定对方身份的措施
- 通过 CA 颁发的证书拿到目标人的权威公钥
- 用权威公钥解签,确定对方拥有目标人的私钥
- 这就可以确认对方身份了
- 只要确定对方拥有和自己手中拿到的目标人的权威公钥匹配的私钥,对方就是目标人
iOS 系统和开发者的身份相互确认
- iOS 系统要先确认 CA 的身份,进而相信该证书不是假证书,而是权威证书
- iOS 系统再去确认开发者的身份,进而确认代码签名的 APP 是安全的
- iOS 系统用 CA 公钥解签数字证书,如若摘要一致,确认对方拥有该 CA公钥对应的私钥,则能证明对方是 CA,进而证明数字证书的确是 CA 颁发的,数字证书不是假证书
- iOS 系统拿到数字证书中的开发者公钥,当然是权威公钥喽,因为有数字证书的作证
- iOS 系统用开发者的权威公钥对代码签名的资源文件进行解签,如果摘要一致,可以确认对方拥有该权威公钥对应的私钥,进而确认对方身份的确是开发者,那么 iOS 系统会认为该 APP 是合法的、安全的、完整的。