美文网首页
证书概念及相关操作

证书概念及相关操作

作者: flow__啊 | 来源:发表于2017-03-20 13:20 被阅读100次

    x.500

    作用:

    是ITU-T关于目录服务的一系列规范、协议,用于解决国际电话、电报互联互通、邮件发送时的人员查找、身份认证等问题。

    其它:

    • 包括的子集: X.501 X.509

    • 协议簇(1988年发布):
    • DAP 轻量级实现:LDAP
    • DSP
    • DISP
    • DOP

    ASN.1(Abstract Syntax Notation One,抽象语法标识)

    作用:

    是一台平台无关、语言无关的数据结构定义语法。

    编码格式(都可以编成XML格式):

    • BER 常用
    • CER 常用
    • DER 常用
    • XER
    • TLV :二进制流的TLV方式表达数据结构

    BER

    Basic Encoding Rules 基本编码格式

    DER

    Distinguished Encoding Rules 卓越编码格式

    • 是BER的一个子集,为更严格的一个变种版本
    • 定长

    CER

    Canonical Encoding Rules 权威编码格式

    • CER和DER一样,都是BER的限定编码规则的子集。
    • CER和DER不同在于它是不定长编码,可以用于大数据块的封装。

    导出证书格式

    • DER 编码二进制 X.509(.CER)
    • Base64 编码 X.509(.CER)
    • 加密消息语法标准 - PKCS #7(.P7b)
    • 个人信息交换 -PKCS #12(.PFX)
    • Microsoft 序列化证书存储(.SST)

    注 前三个导出的证书都是DER编码
    第一种是二进制格式
    第二种是PEM(安全电子邮件)格式的的文本格式
    第三种是包括证书链的二进制格式,也可以是文本格式。
    这里的CER仅是指文件后缀名,与ASN.1的CER编码没关系

    PEM

    • Privacy Enhanced Mail 安全增强邮件
    • 这是一种文件格式,这格式使用一个头,尾标识文件的内容,如下:

    被加密的私钥

    ---BEGIN ENCRYPTED PRIVATE KEY ---
    LDKSFJSADJLSDKJGKLDFJFLSDKJFKLSDJSKLJFDGHKLSD
    DJFLASKDFJLSKDFJKLSDJLDGHDJCVNDKFJGHDLFJSKLDF
    DGJFKLCJVIHJURFJDGKLJFGDIJFGIOWEJIOLDJEOGEORI
    ---BND ENCRYPTED PRIVATE KEY  ---
    

    证书格式

    ---BEGIN CERTIFICATE---
    LDKSFJSADJLSDKJGKLDFJFLSDKJFKLSDJSKLJFDGHKLSD
    DJFLASKDFJLSKDFJKLSDJLDGHDJCVNDKFJGHDLFJSKLDF
    DGJFKLCJVIHJURFJDGKLJFGDIJFGIOWEJIOLDJEOGEORI
    ---END CERTIFICATE---
    

    他们之间的关系

    • 所有X.509都是DER编码,DER是指ASN.1的编码规则,.der证书文件一般是二进制文件。
    • CER可用于PKCS#7证书(p7b)的编码,但一般是指证书的文件后缀,.cer证书可以是纯BASE64文件或二进制文件。
    • PEM通常也是指文件的后缀,为内容使用BASE64编码且带头带尾的特定格式,二进制的文件不应该命名为pem。
    • CRT是微软的证书后缀名,和.CER是一回事。
    • 微软的CryptAPI很强大,证书的各种格式都可以识别,比如纯BASE64编码的、标准PEM格式的、非标识PEM格式的(不是64字节换行、没有头尾等)、二进制格式的。
    • 但openssl、JCE则不行,必须是标准的PEM格式和DER格式。

    一些术语

    PFX

    Personal Information Exchange

    • PKCS#12是PFX的后续版本,一般情况二者为等同概念
    • PFX或PKCS#12 是包括私钥的个人证书,通过口令保护私钥
    • 后缀名为.pfx 或 .p12
    • openssl keytool portecle(keyStore工具)都可以生成PFX证书

    CRL/ARL

    Certificate Revocation List(证书吊销列表)

    • 也属于X.509标准,定义在RFC5280

    LDAP

    Lightweight Directory Access Protocol(轻量目录访问协议)

    • 是X.500 DAP协议的一个轻量级实现。
    • 基本上遵循X.500的大部分标准,所以LDAP的DN结构、object class、attributes都是X.500标准。

    一些操作(java)

    KeyStore 类

    • 主要来读取密钥
    • 分两种情况 1 知道key的名字 2 不知道key的名字
    • 第一种,先用fileinputstream 得到key名,再取key值
    • 第二种,直接 keystore.getkey("name",passsword) passwrod是keystore的密码

    certificate 类

    • 主要用来得到公钥
    • certificate.getpublickey

    检验签名

     //用公钥验签
        //第一个data 是原文
        //第二个data 是加密之后
        public static boolean verify(byte[] data, PublicKey publicKey, byte[] sign) throws Exception {
            Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
    
            //验签的过程
            signature.initVerify(publicKey);
            //进行操作与比对
            signature.update(data);
            //看看值是否一样
            return signature.verify(sign);
    
        }
    
    
    
    

    相关文章

      网友评论

          本文标题:证书概念及相关操作

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