关于证书认证技术的相关概念理解
目前的信息系统建设过程一般都要进行信息安全方面的考虑,目前主要的技术主要是证书认证技术。本文主要是对证书认证技术涉及的基础知识进行整理。
本文将按照问答的形式进行讲解。
1. 数字证书是什么?
数字证书本质上是一些有效的信息(比如身份证号码,组织机构编号等),以及为了实现加密和签名,需要提前生成的公钥和私钥。因此数字证书在制作时需要提供持有证书人的个人(单位)信息,然后通过专业机构通过加密机进行密钥的生成以及灌注。
2. 证书是任何人都可以发放的吗?
当然不是。
证书必须有CA机构进行发放,而且CA机构也不是无限制的。一般来说:
CA机构只有两级,普通的IT企业不能随便的建立CA。
常见的CA机构比如:国家密钥管理局CA认证服务。
3. 证书分类说明。
常见的分类有:
服务器证书,个人证书,其他扩展证书
服务器证书:被安装于服务器设备上,用来证明服务器的身份和进行通信加密。一般使用SSL技术。我们平常访问网站时如果使用了Https来进行访问,那么访问的服务器内部就使用了服务器证书。
个人证书:主要被用来进行身份验证和电子签名。一般有两种方式,存放到USBkey中(硬证书)以及从证书服务器中下载(软证书)。一般USBKey中存在两套证书,分别用来进行加密和签名。
需要注意的是:服务器证书是为了实现数据链路层的数据加密,如果实现数据访问层的数据加密,需要在服务器中添加一个个人证书。
4. 上面提到的公钥和私钥是什么?
要解决这个问题,首先明确数据加密的方式。一般来说有两种:
对称加密算法和非对称加密算法。
对称加密算法的原理:
非对称加密算法的原理“
由于对称加密算法相对不是很安全,目前大部分使用非对称加密算法。
而在非对称加密算法中,私钥用来进行密文的解密,只有一份,掌握在证书持有者手中。而公钥可以有很多,分发到给证书持有者发送数据的人群中。
5. 上面提到的签名和加密是什么意思?
其实上面非对称算法解决的基本问题就是加密问题。常见的应用场景是:客户端和服务器之间的通讯加密,服务器和服务器之间的通讯加密。
客户端和服务器之间的通讯加密:服务器需要有一份证书(包含私钥),客户端拥有该证书的公钥,通过公钥进行加密。
服务器和服务器之间的通讯加密:数据接受服务器中持有证书,数据发送服务器持有对方的公钥。
那么签名是过程是什么呢?看下图:
上面两个图:一个时签名过程,一个是签名验证过程。
通过上面两个图,你应该看明白了,签名实际上也是使用了非对称加密算法。
签名现在一般有两种模式:
1. 按照上图模式中,要进行签名认证需要传递三个内容:签名,公钥,以及电子文件。
2. 第二种模式,把签名,公钥,电子文件重新进行加工,变成一文件进行传递。
总结来说:
签名解决的问题是防止对方抵赖的问题,因为数据加密的私钥只有证书持有者才会有。
加密解决的是数据防止明文被窃取以及被串改的问题,因为没有私钥就无法将密文进行解密。
注意:由于签名需要传递明文才能进行签名校验,所以签名过程不能解决明文被窃取的问题。
6. 如果在系统登录的过程中使用证书技术,除了使用证书签名之外,还有其他的校验吗?
有,除了通过签名确认保证用户的有效性外,服务器还对证书进行CRL(信任链)进行验证,保证证书是合法的CA机构分发的,以及证书在有效期内。