预置吊销信息至chromium83---判断服务器访问的证书是否被吊销

本文介绍了在Chromium83中预置吊销信息的方法,包括CRL和OCSP校验过程。通过下载证书,获取公钥哈希值,然后在代码中添加到crlset,并重新编译运行,实现证书吊销的判断。同时,详细阐述了CRL校验的六个步骤和OCSP校验的两个步骤,指出OCSP校验可能存在的服务器通信问题。
摘要由CSDN通过智能技术生成

目录

第一步:下载证书。

第二步、获取 公钥的hash值

第三步、重新编译运行。

扩展

crl校验过程,

第一步 获取证书:

第二步 获取crl分发地址

第三步 下载crl文件

第四步 将   CRLs文件转化为pem格式

第五步 合并中间证书和CRLs文件

第六步 开始校验

OCSP 校验过程

第一步 获取OCSP地址

第二步 校验ocsp


 

    测试:“嘿嘿,我又发现了一个BUG,这个证书明明已经被吊销了为啥没有吊销提示!”
    “好吧,我看看”,心里想证书吊销不是自动判读的吗?难道还会和证书有关,自己测试了一把,我去还真是认为是没有被吊销的。
    经过查看,发现如果是正常的判断,也就是我们目前使用的证书技术的确是自动判断的,只要能上网就能通过证书序列号判断这个证书的吊销状态。
    但是,chromium浏览器默认使用了自己的吊销判断也就是crlset,刚开始接触chromium证书吊销的时候在代码中看到了crlset还是以为用的是crl,我们最常用的两种方式ocsp和crl来做吊销判断。
    原来chromium浏览器将吊销证书放置与代码中(我去,静态的!!!那我怎么知道有哪些是吊销的?只能一个一个加到代码中,这样的设计会不会有点太low呀,也不知道chromium怎么想)

    我们来看是如何加入到代码中的吧。

系统版本:UOS

需要工具:uos浏览器

第一步:下载证书。

    随便一个浏览器打开被吊销的网站:例如:https://revoked.badssl.com/

第二步、获取 公钥的hash值

执行命令:获取16进制数据

 openssl x509 -in revoked.badssl.com -noout -pubkey | openssl pkey -pubin -outform DER | openssl dgst -sha256 -c | awk '{print "0x" $2}' | sed 's/:/, 0x/g'

解释一下,大概的意思就是将公钥从证书中获取出来| 然后转化为二进制der格式 | 然后使用sha256哈希算法获取 |  一段16进制字符串  | 然后将字符串中的":"替换车给你“, 0x”

 

将revoked.badssl.com 修改为你下载的证书名字,就可以了。然后就获取一段16进制的数据。

0xc6, 0x91, 0x0d, 0x0b, 0xa9, 0xed, 0xdf, 0x59, 0x33, 0x34, 0x14, 0x9f, 0xed, 0xfe, 0x87, 0x38, 0x5f, 0x37, 0xb6, 0x25, 0x35, 0x4b, 0xb4, 0x39, 0x5c, 0x0a, 0xe2, 0xc8, 0xdf, 0x48, 0xe1, 0x7c

cert_verify_proc_blocklist.inc添加到 kSPKIBlockList变量中。

第三步、重新编译运行。

注意清空缓存,你会发现浏览器就会出现提示他的证书被吊销了。

 


扩展

我们知道crl是通过下载吊销列表,然后进行对比,如果找到了该证书的序列号就表明该证书已经被吊销,那么他是如何校验的呢?我们手动的来测试一把。

crl校验过程,

测试网站:https://revoked.badssl.com/

第一步 获取证书:

获取网站证书和中间证书。

网站证书保存名字为:www_cert.pem

中间证书保存名字为:www_chain.pem

第二步 获取crl分发地址

openssl x509 -in www_cert.pem -noout -text | grep crl

获取crl地址

第三步 下载crl文件

wget http://crl3.digicert.com/ssca-sha2-g6.crl  -O gn.crl

第四步 将   CRLs文件转化为pem格式

openssl crl -inform DER -in gn.crl -outform PEM -out crl.pem

第五步 合并中间证书和CRLs文件

cat www_chain.pem crl.pem > crl_chain.pem

第六步 开始校验

openssl verify -crl_check -CAfile crl_chain.pem www_cert.pem

输出结果如下

C = US, ST = California, L = Walnut Creek, O = Lucas Garron Torres, CN = revoked.badssl.com
error 23 at 0 depth lookup: certificate revoked
error www_cert.pem: verification failed

可以看到该证书显示是被吊销的,操作过程中我们需要下载CRLs文件,随着时间推移这个文件会越来越大,因此在校验的时候会比较费时。不推荐。

 

OCSP 校验过程

第一步 获取OCSP地址

openssl x509 -in www_cert.pem -noout  -ocsp_uri

输出结果:http://ocsp.digicert.com

第二步 校验ocsp

openssl ocsp -issuer www_chain.pem -cert www_cert.pem -CAfile www_chain.pem -no_nonce --text -url http://ocsp.digicert.com -header Host=ocsp.digicert.com

输出结果如下:

OCSP Request Data:
    Version: 1 (0x0)
    Requestor List:
        Certificate ID:
          Hash Algorithm: sha1
          Issuer Name Hash: 105FA67A80089DB5279F35CE830B43889EA3C70D
          Issuer Key Hash: 0F80611C823161D52F28E78D4638B42CE1C6D9E2
          Serial Number: 0371B58A86F6CE9C3ECB7BF42F9208FC
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: 0F80611C823161D52F28E78D4638B42CE1C6D9E2
    Produced At: Nov 15 10:38:51 2020 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: 105FA67A80089DB5279F35CE830B43889EA3C70D
      Issuer Key Hash: 0F80611C823161D52F28E78D4638B42CE1C6D9E2
      Serial Number: 0371B58A86F6CE9C3ECB7BF42F9208FC
    Cert Status: revoked
    Revocation Time: Oct  7 20:30:39 2019 GMT
    This Update: Nov 15 10:38:51 2020 GMT
    Next Update: Nov 22 09:53:51 2020 GMT

    Signature Algorithm: sha256WithRSAEncryption
         b0:f1:42:fb:64:e1:d6:e9:e3:fb:e6:fd:7f:57:47:80:ad:83:
         ce:38:f4:bc:e4:0c:23:ee:1d:d0:8e:05:c1:63:3e:1b:13:f4:
         54:47:c3:1d:58:d0:17:d2:76:5d:26:cd:8a:a3:4b:51:c2:cb:
         24:b7:b4:d8:26:7e:1d:32:a1:08:26:e3:3e:7b:10:52:ec:96:
         1f:52:a3:e4:51:8b:22:98:70:b2:64:e6:1f:68:a1:31:8f:7d:
         42:0b:5b:c6:e7:a4:62:ae:de:46:ef:a8:ff:d2:95:71:55:ad:
         ad:eb:0f:82:df:94:1a:3e:fa:31:47:46:20:76:e1:ef:be:ee:
         fc:76:59:2b:6b:c4:f9:ad:82:91:7c:29:28:4e:45:70:0e:ed:
         bd:8b:bd:63:26:a6:7e:d3:10:1d:4c:a0:4f:9a:c4:11:e0:c3:
         26:3e:c5:b4:19:77:92:58:0a:92:7f:e6:42:0a:65:6a:a4:01:
         b7:67:59:cd:cc:97:a1:22:a9:00:2a:59:42:41:ee:b0:bd:b8:
         5f:7e:07:ee:42:98:ab:27:68:83:c8:9f:91:b8:0b:b2:a9:37:
         18:94:7b:00:03:75:2a:3d:2d:0c:d6:cf:04:80:3b:a3:11:fc:
         7c:ab:da:b1:d8:c9:86:33:7f:7f:77:43:0d:50:f5:fd:01:ee:
         d4:05:ed:62
Response verify OK
www_cert.pem: revoked
        This Update: Nov 15 10:38:51 2020 GMT
        Next Update: Nov 22 09:53:51 2020 GMT
        Revocation Time: Oct  7 20:30:39 2019 GMT

ocsp需要能于ocsp服务器进行通信才能校验。

校验OCSP 封装

服务器不支持

openssl s_client -connect revoked.badssl.com:443 -status -tlsextdebug < /dev/null 2>&1 | grep -i ocsp

输出

OCSP response: no response sent

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三雷科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值