数字证书的理解

  以前虽然也知道数字证书的概念,但是仅仅停留在表面的层次,对其详细的工作原理甚是不解。

  总结了下数字证书方面的几个问题:

  1、为何需要数字证书?

  2、数字证书是如何确保证书不可被伪造的?

  3、如何验证数字证书的有效性?

  4、为何不用数字证书进行数据加密?

  通信双方在发送消息的时候都有可能被黑客截获并篡改,如何保证数据通信的安全?第一要验证通信双方的身份,第二要对通信的数据进行加密。

  非对称加密算法通过公私钥来实现身份的认证,数据的加密通过对称加密算法实现,非对称算法用于协商对称加密算法和加密秘钥。

  第一个问题:首先需要公钥私钥机制来防止网络的身份伪造,而如何交换公私钥呢?

  a.把公钥放在网上,供别人下载,但是这个链接无法保证就是服务器发布的,如果是别人伪造的呢?

  b.通信前,先把公钥发给客户,但是黑客也可以冒充服务器,将黑客的公钥发给客户,这样黑客就可以冒充服务器了

  所以需要借助一个可信的第三方对服务器的公钥以及一些基本信息进行签名,数字证书里包括公钥和表示其身份的一些信息,最后CA对这些信息使用自己的私钥进行签名(注意:CA用私钥签名的信息是公钥以及其他一些信息的hash

 

  第二个问题是因为数字证书的最后有CA的签名,而签名需要CA的私钥,因而无法伪造

 

  第三个问题:首先读取证书的签发机构,在系统中如果找到该签发机构的证书,则用该机构的公钥解密加密的指纹,然后用解密出的指纹算法计算出证书的指纹,两者相比对,一致的话则证书没有被修改;如果没找到签发机构的证书则说明证书可能有问题,弹出错误信息。(可信的证书一般都会预装在系统中,如果是自己内部的证书,可以先安装在系统中,但是到外部环境就无法使用了)

 

  第四个问题:首先非对称加密算法效率一般不如对称加密算法,另外如果对于客户端&服务器的模型,只有服务器有证书,那么服务器使用自己的私钥加密,那么大家都知道它的公钥,加密相当于没有加密。

posted @ 2013-08-27 15:42  聂风  阅读(563)  评论(0编辑  收藏  举报