日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一文读懂密码学中的证书

發(fā)布時(shí)間:2024/2/28 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文读懂密码学中的证书 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一文讀懂密碼學(xué)中的證書

之前的文章中,我們講到了數(shù)字簽名,數(shù)字簽名的作用就是防止篡改和偽裝,并且能夠防止否認(rèn)。但是要正確運(yùn)用數(shù)字簽名技術(shù)還有一個(gè)非常大的前提,那就是用來(lái)驗(yàn)證簽名的公鑰必須真正的屬于發(fā)送者。

如果你獲取到的公鑰是偽造的,那么不管你的簽名算法多完美,也是會(huì)得到錯(cuò)誤的結(jié)果。

那么我們?cè)趺床拍馨踩墨@得發(fā)送者的公鑰呢?這里就需要使用到證書了。所謂證書就是通過(guò)第三方的可信機(jī)構(gòu)對(duì)發(fā)送者的公鑰進(jìn)行簽名而得到的。

這里有兩個(gè)概念:公鑰證書(Public-Key Certificate, PKC)和認(rèn)證機(jī)構(gòu)(Certification Authority, CA)。熟悉區(qū)塊鏈的朋友應(yīng)該經(jīng)常會(huì)聽到CA這個(gè)名詞,CA就是這里的認(rèn)證機(jī)構(gòu)。

證書的例子

我們看一個(gè)實(shí)際中可能會(huì)遇到的例子:

假如A要向B發(fā)送一條消息,這條消息希望使用B的公鑰來(lái)加密,但是A事先無(wú)法知道B的公鑰到底是什么,那么可以使用下面的證書架構(gòu):

  • 在第一步,B需要生成自己的密鑰對(duì),然后將公鑰注冊(cè)到CA中。這里CA就是一個(gè)第三方的可信賴的機(jī)構(gòu)。
  • CA獲得到了B的公鑰之后,使用自己的私鑰對(duì)B的公鑰進(jìn)行簽名,得到證書。
  • A從CA獲得到證書和CA的公鑰(CA是個(gè)可信賴機(jī)構(gòu),可以從公共站點(diǎn)中獲取),并使用CA的公鑰來(lái)驗(yàn)證證書簽名的合法性。
  • A獲得了B的公鑰,使用B的公鑰加密消息。
  • B用自己的私鑰解密消息,得到明文。
  • 好了,這就是一個(gè)最簡(jiǎn)單的證書使用的例子。

    證書的標(biāo)準(zhǔn)和生成

    因?yàn)樽C書是由認(rèn)證機(jī)構(gòu)頒發(fā)的,使用者需要對(duì)其進(jìn)行驗(yàn)證,那么就需要一個(gè)標(biāo)準(zhǔn)的證書格式來(lái)方便使用者使用。最廣泛的一個(gè)證書標(biāo)準(zhǔn)格式是由ITU(International Telecommunication Union)和ISO(International Organization for Standardization)制定的X.509規(guī)范。

    x.509有很多擴(kuò)展格式包括:DER、CRT、CER、PEM等。他們?cè)诓煌沫h(huán)境中有不同的用處。

    那么怎么生成證書呢?可以借助第三方工具,也可以使用命令行命令比如:openssl來(lái)生成。具體的生成命令這里就不細(xì)講了。

    PKI

    有了證書的格式,是不是就可以實(shí)際使用證書了呢?

    其實(shí)這還是不夠的,我們還需要定義證書該由誰(shuí)來(lái)頒發(fā),如何頒發(fā),如果作廢證書等。而PKI(Public-Key Infrastructure)公鑰基礎(chǔ)設(shè)施就是為了有效的使用證書而制定的一系列規(guī)范和協(xié)議。

    PKI的組成主要有三部分:

  • 用戶
  • 用戶是使用PKI的人,也就是需要借助CA來(lái)發(fā)布自己的公鑰和獲取別人公鑰的人。

  • 認(rèn)證機(jī)構(gòu)
  • 認(rèn)證機(jī)構(gòu)就是CA了,它是對(duì)證書進(jìn)行管理的人。CA除了生成證書之外,還有一個(gè)非常重要的工作就是作廢證書。

    因?yàn)橛脩粲锌赡軙?huì)丟失密鑰,或者出于特殊的原因,廢棄掉某些證書。那么就可以向CA發(fā)起一個(gè)作廢請(qǐng)求。而作廢的證書會(huì)被保存在CRL中。CRL就是對(duì)外的證書廢棄列表。用戶在使用證書的時(shí)候必須首先查看該證書是否在CRL列表中。如果在則該證書不能夠被使用。

  • 倉(cāng)庫(kù)
  • 倉(cāng)庫(kù)是一個(gè)保存證書的數(shù)據(jù)庫(kù),用戶注冊(cè)之后生成的證書都存在倉(cāng)庫(kù)中,以供其他的用戶獲取使用。

    CA的層級(jí)結(jié)構(gòu)

    我們?cè)贔abric中有了解到有個(gè)root CA的概念,這是什么意思呢?

    我們從上面的介紹可以知道,其實(shí)CA不僅僅可以由機(jī)構(gòu)來(lái)?yè)?dān)任,任何人只要會(huì)對(duì)公鑰進(jìn)行簽名都可以構(gòu)建CA。

    如果是一個(gè)很大的機(jī)構(gòu)要構(gòu)建CA,比如一個(gè)總公司要構(gòu)建CA,那么它可以先構(gòu)建一個(gè)root CA,然后再在root CA之下構(gòu)建子CA,這些子CA來(lái)負(fù)責(zé)底層具體用戶的證書頒發(fā)。

    對(duì)證書的攻擊

    因?yàn)樽C書是基于數(shù)字簽名技術(shù),所以所有基于數(shù)字簽名技術(shù)的攻擊都適用于證書。

    這里主要針對(duì)于PKI體系的攻擊做個(gè)介紹:

  • 在公鑰注冊(cè)之前替換公鑰。
  • 用戶B如果想生成證書的話,需要在CA注冊(cè),并且將自己的公鑰提交到CA。那么在公鑰提交之前,可能會(huì)被惡意替換。

  • 竊取認(rèn)證機(jī)構(gòu)的私鑰
  • 所有的用戶公鑰都是由CA的私鑰做簽名的,如果CA的私鑰被盜的話,那么所有的證書都是不安全的。

    CA其實(shí)是一個(gè)中心化的機(jī)構(gòu),中心化的機(jī)構(gòu)往往都會(huì)出現(xiàn)這樣的問(wèn)題。攻破一個(gè)就攻破了所有。

  • 偽裝成認(rèn)證機(jī)構(gòu)
  • 攻擊者可以偽裝成認(rèn)證機(jī)構(gòu)讓用戶上當(dāng)。所以用戶在注冊(cè)的時(shí)候一定要小心。

  • CRL時(shí)間差攻擊
  • 如果B的密鑰丟了,那么他會(huì)向CA提交一個(gè)廢棄申請(qǐng),但是在提交申請(qǐng)到申請(qǐng)生效,到CRL生成直接有一個(gè)時(shí)間差,這段時(shí)間內(nèi)廢棄的密鑰仍然可以合法使用。

    更多精彩內(nèi)容且看:

    • 區(qū)塊鏈從入門到放棄系列教程-涵蓋密碼學(xué),超級(jí)賬本,以太坊,Libra,比特幣等持續(xù)更新
    • Spring Boot 2.X系列教程:七天從無(wú)到有掌握Spring Boot-持續(xù)更新
    • Spring 5.X系列教程:滿足你對(duì)Spring5的一切想象-持續(xù)更新
    • java程序員從小工到專家成神之路(2020版)-持續(xù)更新中,附詳細(xì)文章教程

    更多內(nèi)容請(qǐng)?jiān)L問(wèn) http://www.flydean.com/certificate/

    總結(jié)

    以上是生活随笔為你收集整理的一文读懂密码学中的证书的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。