• 关于证书认证技术的相关概念理解


    目前的信息系统建设过程一般都要进行信息安全方面的考虑,目前主要的技术主要是证书认证技术。本文主要是对证书认证技术涉及的基础知识进行整理。

    本文将按照问答的形式进行讲解。

    1. 数字证书是什么?

    数字证书本质上是一些有效的信息(比如身份证号码,组织机构编号等),以及为了实现加密和签名,需要提前生成的公钥和私钥。因此数字证书在制作时需要提供持有证书人的个人(单位)信息,然后通过专业机构通过加密机进行密钥的生成以及灌注。

    2. 证书是任何人都可以发放的吗?

    当然不是。

    证书必须有CA机构进行发放,而且CA机构也不是无限制的。一般来说:

    clip_image001

    CA机构只有两级,普通的IT企业不能随便的建立CA。

    常见的CA机构比如:国家密钥管理局CA认证服务。

    3. 证书分类说明。

    常见的分类有:

    服务器证书,个人证书,其他扩展证书

    服务器证书:被安装于服务器设备上,用来证明服务器的身份和进行通信加密。一般使用SSL技术。我们平常访问网站时如果使用了Https来进行访问,那么访问的服务器内部就使用了服务器证书。

    个人证书:主要被用来进行身份验证和电子签名。一般有两种方式,存放到USBkey中(硬证书)以及从证书服务器中下载(软证书)。一般USBKey中存在两套证书,分别用来进行加密和签名。

    需要注意的是:服务器证书是为了实现数据链路层的数据加密,如果实现数据访问层的数据加密,需要在服务器中添加一个个人证书。

    4. 上面提到的公钥和私钥是什么?

    要解决这个问题,首先明确数据加密的方式。一般来说有两种:

    对称加密算法和非对称加密算法。

    对称加密算法的原理:

    clip_image003

    非对称加密算法的原理“

    clip_image005

    由于对称加密算法相对不是很安全,目前大部分使用非对称加密算法。

    而在非对称加密算法中,私钥用来进行密文的解密,只有一份,掌握在证书持有者手中。而公钥可以有很多,分发到给证书持有者发送数据的人群中。

    5. 上面提到的签名和加密是什么意思?

    其实上面非对称算法解决的基本问题就是加密问题。常见的应用场景是:客户端和服务器之间的通讯加密,服务器和服务器之间的通讯加密。

    客户端和服务器之间的通讯加密:服务器需要有一份证书(包含私钥),客户端拥有该证书的公钥,通过公钥进行加密。

    服务器和服务器之间的通讯加密:数据接受服务器中持有证书,数据发送服务器持有对方的公钥。

    那么签名是过程是什么呢?看下图:

    clip_image006

    clip_image007

    上面两个图:一个时签名过程,一个是签名验证过程。

    通过上面两个图,你应该看明白了,签名实际上也是使用了非对称加密算法。

    签名现在一般有两种模式:

    1. 按照上图模式中,要进行签名认证需要传递三个内容:签名,公钥,以及电子文件。

    2. 第二种模式,把签名,公钥,电子文件重新进行加工,变成一文件进行传递。

    总结来说:

    签名解决的问题是防止对方抵赖的问题,因为数据加密的私钥只有证书持有者才会有。

    加密解决的是数据防止明文被窃取以及被串改的问题,因为没有私钥就无法将密文进行解密。

    注意:由于签名需要传递明文才能进行签名校验,所以签名过程不能解决明文被窃取的问题。

    6. 如果在系统登录的过程中使用证书技术,除了使用证书签名之外,还有其他的校验吗?

    有,除了通过签名确认保证用户的有效性外,服务器还对证书进行CRL(信任链)进行验证,保证证书是合法的CA机构分发的,以及证书在有效期内。

  • 相关阅读:
    堆中的路径
    二叉搜索树的操作集
    windows 利用凭据进行远程连接
    解决通过域名访问不了
    Linux 安装redis
    mybatis之resultType
    nuxt 引入swiper插件报错 Cannot resolve swiper/dist/css/swiper.css
    windows 设置连接linux redis
    linux 安装redis报gcc错误
    maven打包好的jar安装到本地库
  • 原文地址:https://www.cnblogs.com/sdjnzqr/p/4277092.html
Copyright © 2020-2023  润新知