美文网首页CA认证
从零学习 CA 系列

从零学习 CA 系列

作者: 走在成长的道路上 | 来源:发表于2017-08-31 15:09 被阅读0次

    近期由于项目需要,开始转向 CA 证书相关的知识恶补中,都很少写日志了。

    废话少说,进入正题,本人之前没有接触过加密,也就更没有接触过 认证相关的知识,如下内容为学习过程中个人体会。

    本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。

    数字证书通常可分为两大类,根据证书持有者分类和根据密钥分类。

    根据证书持有者分类

    1. 根据证书持有者是否为 CA 进行分类
      根据证书持有者是否为 CA ,可将证书分为 2 类: CA 证书 和 用户证书。 CA 证书可以给用户或其他 CA 签发证书,用户证书不允许给其他用户或 CA 签发证书。
      X.509 格式中通过扩展 BasicConstraints 来区分这2类证书。当其中的 cA 项为 TRUE 时表示 CA 证书, 为 FALSE 时表示用户证书。

    2. 按照证书持有者类型进行分类
      根据证书持有者类型,通常将证书分为几类:个人证书、单位证书和系统证书等。

    • 个人证书 CA 系统给个人签发的证书,代表个人身份。证书中需要包含个人信息(如姓名、身份证、E-mail、电话等) 和个人的公钥。
    • 单位证书 CA 系统给机构或组织等签发的证书,代表单位身份。证书中需要包含单位信息(如名称、组织机构代码、E-mail、联系人等) 和单位公钥。
    • 系统证书 CA 系统给软件系统或设备系统等签发的证书,代表系统身份。证书中需要包含系统信息(如 IP 地址、域名等) 和系统的公钥。系统证书又包括 Web 服务器证书、域控制器证书、VPN 设备证书、OCSP 服务器证书、时间戳服务器证书等。

    X.509 格式本身并不支持这种分类,通常通过在 Subject 中增加 DN 项进行区分,如可以增加 OU = PERSON 表示个人证书,OU=UNIT 表示单位证书等。

    根据密钥分类

    1. 根据密钥对产生方式进行分类
      根据密钥对产生方式,可将证书分为2类:签名证书和加密证书。

      • 签名证书及私钥只用于签名验签,不用做加密解密。为保证该密钥对的唯一性,该密钥对必须由用户端密码模块产生和保存,在证书签发过程中 CA 中心并不知道其私钥,只对其公钥进行操作。
      • 加密秘钥及私钥只用于加密解密,不能用于签名验签。为实现秘钥恢复或行业监管,该密钥对必须由CA中心产生,并回送给用户端密码模块保存。CA 中心同时保存该密钥对,必要时可恢复该密钥对。
    2. 根据证书用途进行分类
      根据证书用途,通常将证书分为 SSL 服务器证书、SSL 客户端证书、代码签名证书、 Email 证书、时间戳服务器证书、OCSP服务器证书等。SSL 证书只用于 SSL/TLS 应用, Email 证书只用于安全电子邮件,代码签名证书只用于对代码进行签名验签。
      X.509 格式中通过扩展项 ExtKeyUsage 来区分这几类证书。为保持证书内容的统一性,扩展项 KeyUsage 必须设置合适的值。
      ExtKeyUsage 中已经定义的类型如下:

      • id-kp-serverAuth: 用于 SSL/TLS Web 服务器身份认证
      • id-kp-clientAuth: 用于 SSL/TLS Web 客户端身份认证
      • id-kp-codeSigning: 用于对可下载的执行代码进行签名
      • id-kp-emailProtection: 用于保护Email
      • id-kp-timeStamping: 用于将对象摘要值与时间绑定
      • id-kp-OCSPSigning: 用于OCSP响应包进行签名

    相关文章

      网友评论

        本文标题:从零学习 CA 系列

        本文链接:https://www.haomeiwen.com/subject/wkhpdxtx.html