zoukankan      html  css  js  c++  java
  • 【Java】Java与数字证书

    Java与数字证书

     

    证书(Certificate,也称public-key certificate)是用某种签名算法对某些内容(比如公钥)进行数字签名后得到的、可以用来当成信任关系中介的数字凭证。证书发行机构通过发行证书告知证书使用者或实体其公钥(public-key)以及其它一些辅助信息。证书在电子商务安全交易中有着广泛的应用,证书发行机构也称CA(Certificate Authority)。

    证书的签发和应用

    证书在公钥加密应用中的作用是保证公钥在某些可信的机构发布,其在协议SSL、电子交易协议SET等方面有重要的应用。

    图1显示了一个最简单的证书应用方法:

    证书的应用步骤是: 

    (1) A把自己的公钥PKA送到CA(Certificate Authority); 

    (2) CA用自己的私钥和A的公钥生成A的证书,证书内包括CA的数字签名。签名对象包括需要在证书中说明的内容,比如A的公钥、时间戳、序列号等,为了简化这里不妨假设证书中只有三项内容:A的公钥PKA、时间戳TIME1、序列号IDA。那么CA发送给A的简单证书凭证可表达为:CertA=Eca[TIME1,IDA,PKA]; 

    (3) B同样把自己的公钥PKB送到CA; 

    (4) B得到CA发布的证书CertB; 

    (5) A告知B证书CertA; 

    (6) B告知A证书CertB。 

    A、B各自得到对方证书后,利用从CA得到的公钥(在CA的自签证书中)验证彼此对方的证书是否有效,如果有效,那么就得到了彼此的公钥。利用对方的公钥,可以加密数据,也可以用来验证对方的数字签名。 

    本文为了方便说明,并没有使用从CA获得的证书,而是通信双方各自产生自签证书,也就是说图1的A和B并没有经过CA,不过前提是A和B之间是互相拥有对方的证书。 

    证书的内容和意义

    证书核心项意义
    Version 告诉这个X.509证书是哪个版本的,目前有v1、V2、v3
    Serial Number 由证书分发机构设置证书的序列号
    Signature Algorithm Identifier 证书采用什么样的签名算法
    Issuer Name 证书发行者名,也就是给这个证书签名的机构名
    Validity Period 证书有效时间范围
    Subject Name 被证书发行机构签名后的公钥拥有者或实体的名字,采用X.500协议,在Internet上的标志是惟一的。例如:CN=Java,OU=Infosec,O=Infosec Lab,C=CN表示一个subject name。

  • 相关阅读:
    parted分区流程操作
    配置sudo命令行为审计
    sudo详细介绍
    groupadd(创建组)重要参数介绍
    useradd常用参数介绍
    /etc/default/useradd文件内容及对应功能
    linux基础正则
    centos 7.5 安装mongodb
    centos 7.5 安装mysql
    php删除制定文件及文件夹
  • 原文地址:https://www.cnblogs.com/qiuxiangmuyu/p/6150465.html
Copyright © 2011-2022 走看看