成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

證書透明度 Certificate Transparency 與 Fork 一致性

安全 應(yīng)用安全
證書透明度(Certificate Transparency, CT)的本質(zhì),是構(gòu)建一個(gè)公開的、只能追加、不可篡改的?日志系統(tǒng)(Log)?,用來記錄全球所有簽發(fā)的 TLS 證書。它的核心理念不是?防止?壞證書的簽發(fā),而是確保一旦簽發(fā),就一定能被?發(fā)現(xiàn)。

我們來深入聊聊 證書透明度(Certificate Transparency, CT) 。這不僅僅是一個(gè)技術(shù)方案,更是一種設(shè)計(jì)哲學(xué),教我們?nèi)绾卧诔錆M猜忌的開放網(wǎng)絡(luò)環(huán)境中,用分布式的思路構(gòu)建信任。

信任的危機(jī):為什么需要證書透明度?

在 1995 年之前,互聯(lián)網(wǎng)上的中間人攻擊(Man-in-the-Middle, MITM)是個(gè)大問題。當(dāng)你訪問銀行網(wǎng)站時(shí),很可能會(huì)被一個(gè)偽裝的假服務(wù)器騙走密碼,因?yàn)槟銦o(wú)法確定你正在對(duì)話的到底是誰(shuí)。

為了解決這個(gè)問題,我們引入了 證書頒發(fā)機(jī)構(gòu)(Certificate Authority, CA) 和 SSL/TLS 證書體系。這個(gè)體系的核心思想很簡(jiǎn)單:

  1. 網(wǎng)站(比如 google.com)生成一對(duì)公私鑰。
  2. 它把自己的域名和公鑰打包,找一個(gè)大家都信任的權(quán)威機(jī)構(gòu)(CA),讓它簽名。
  3. 這個(gè)簽了名的包,就是 證書(Certificate) 。
  4. 當(dāng)你的瀏覽器訪問 google.com 時(shí),服務(wù)器會(huì)出示這張證書。
  5. 你的瀏覽器內(nèi)置了一份它信任的 CA 列表。它會(huì)檢查證書的簽名,如果簽名來自這個(gè)列表中的某個(gè) CA,并且證書上的域名是 google.com,瀏覽器就相信它連接的是真正的谷歌服務(wù)器。

這個(gè)模型在大多數(shù)時(shí)候都運(yùn)行良好,但它有一個(gè)致命的弱點(diǎn): 我們無(wú)條件地信任了 CA 。全球有上百個(gè) CA,只要其中任何一個(gè)被黑客攻破,或者內(nèi)部出現(xiàn)惡意行為,它就可以為任何域名簽發(fā)“合法”的證書。

想象一下,一個(gè)不知名的 CA 被黑了,攻擊者用它簽發(fā)了一張 your-bank.com 的證書。然后通過 DNS 欺騙等手段,把你引向一個(gè)假冒的銀行網(wǎng)站。你的瀏覽器會(huì)看到一張“有效”的證書,于是放心地建立了連接,你的密碼就這樣被盜了。你和銀行本身可能都對(duì)此毫不知情。

這就是 CT 要解決的核心問題:CA 簽發(fā)證書的過程是一個(gè)黑盒子,出了問題我們很難發(fā)現(xiàn)。CT 的目標(biāo)就是把這個(gè)黑盒子砸開,讓一切都公開、透明。

CT 的三大核心組件與工作流程

證書透明度(Certificate Transparency, CT)的本質(zhì),是構(gòu)建一個(gè)公開的、只能追加、不可篡改的 日志系統(tǒng)(Log) ,用來記錄全球所有簽發(fā)的 TLS 證書。它的核心理念不是 防止 壞證書的簽發(fā),而是確保一旦簽發(fā),就一定能被 發(fā)現(xiàn)。

為了實(shí)現(xiàn)這個(gè)目標(biāo),CT 系統(tǒng)主要由三個(gè)角色構(gòu)成:日志服務(wù)器、監(jiān)控器和審計(jì)器。

日志服務(wù)器 (Log Server)

這是 CT 的心臟。你可以把它想象成一個(gè)公開的賬本。

  • 只能追加 (Append-only) :新的證書記錄只能添加到末尾,不能修改或刪除歷史記錄。
  • 加密保證 (Cryptographically Assured) :內(nèi)部使用一種叫 默克爾樹(Merkle Tree) 的數(shù)據(jù)結(jié)構(gòu)來組織所有證書。這棵樹的樹根(root hash)是對(duì)整個(gè)日志內(nèi)容的一個(gè)緊湊、安全的摘要。有了它,我們可以非常高效地驗(yàn)證:

某張證書是否真的存在于日志中(這被稱為 包含證明 (Proof of Inclusion) )。

日志的任何兩個(gè)版本之間是否一致,即新版本是否是舊版本的純粹追加(這被稱為 一致性證明 (Consistency Proof) )。

全球有多個(gè)獨(dú)立的組織(比如 Google, Cloudflare)在運(yùn)行這樣的日志服務(wù)器。為了避免單點(diǎn)故障和惡意行為,一個(gè)證書通常會(huì)被同時(shí)提交到多個(gè)不同的日志中。

監(jiān)控器 (Monitor)

監(jiān)控器是一個(gè)獨(dú)立的監(jiān)察服務(wù)。它的任務(wù)很簡(jiǎn)單: 持續(xù)不斷地盯著所有已知的 CT 日志 ,下載所有新加入的證書,然后檢查里面有沒有可疑的東西。

比如,Google 公司會(huì)運(yùn)行一個(gè)監(jiān)控器,專門尋找所有為 *.google.com 簽發(fā)的證書。一旦發(fā)現(xiàn)一個(gè)不是自己申請(qǐng)的,或者是由一個(gè)意料之外的 CA 簽發(fā)的證書,Google 的安全團(tuán)隊(duì)就會(huì)立刻收到警報(bào)。同理,任何一個(gè)網(wǎng)站所有者都可以運(yùn)行自己的監(jiān)控器,守護(hù)自己的域名。

審計(jì)器 (Auditor)

審計(jì)器通常內(nèi)嵌在我們的 瀏覽器 中。它的作用是在我們?nèi)粘I暇W(wǎng)時(shí),驗(yàn)證服務(wù)器提供的證書是否符合 CT 的規(guī)范。

當(dāng)瀏覽器訪問一個(gè) HTTPS 網(wǎng)站并收到證書時(shí),它會(huì)檢查證書中是否包含一個(gè)或多個(gè) 簽名證書時(shí)間戳(Signed Certificate Timestamp, SCT) 。

SCT 是什么?當(dāng)一個(gè) CA 把證書提交給 CT 日志時(shí),日志服務(wù)器會(huì)返回一個(gè) SCT。這就像一張回執(zhí),是日志服務(wù)器對(duì) CA 的一個(gè) 承諾 :“我收到了這張證書,并保證會(huì)在規(guī)定時(shí)間內(nèi)(通常是 24 小時(shí))將它公開到我的日志里”。

瀏覽器(審計(jì)器)看到 SCT 后,會(huì)驗(yàn)證其簽名是否來自一個(gè)它信任的日志服務(wù)器。只要驗(yàn)證通過,瀏覽器就認(rèn)為這張證書是“公開可審計(jì)的”,即使它還沒來得及去日志里查詢,也愿意接受它。這個(gè)機(jī)制給了日志一個(gè)短暫的緩沖期來處理證書,同時(shí)保證了沒有證書可以“私下”使用而不留痕跡。

瀏覽器如何驗(yàn)證 SCT 簽名?

  1. 預(yù)置/更新的信任日志列表(Log List)
  • 大多數(shù)主流瀏覽器(Chrome、Firefox、Safari 等)會(huì)內(nèi)置一個(gè)「信任的 CT 日志服務(wù)器公鑰」列表,也會(huì)定期通過瀏覽器自身的更新機(jī)制(類似瀏覽器更新或 CRL/OCSP 更新方式)來刷新這份列表。
  1. 數(shù)字簽名檢查
  • 當(dāng)瀏覽器收到帶有 SCT 的 TLS 握手消息或證書時(shí),就已經(jīng)拿到了 SCT(內(nèi)含:證書的哈希、時(shí)間戳、日志標(biāo)識(shí)符等)和相應(yīng)的簽名。
  • 瀏覽器在本地利用對(duì)應(yīng)日志服務(wù)器的公鑰,按照 CT 協(xié)議定義的結(jié)構(gòu)(通常是 ECDSA-over-P256 或 Ed25519 等)去驗(yàn)證這段簽名。
  • 如果簽名校驗(yàn)通過,就證明這個(gè)日志服務(wù)器在給定的時(shí)間點(diǎn)「確實(shí)」收到過這份證書,并承諾會(huì)在其公開的 Merkle Tree 里追加它。

整個(gè)過程完全在本地完成,不需要瀏覽器再去詢問任何第三方服務(wù)器。

工作流程總結(jié)

  1. CA 準(zhǔn)備簽發(fā)一張證書。
  2. CA 將這張(預(yù))證書發(fā)送給多個(gè) CT 日志服務(wù)器。
  3. 每個(gè)日志服務(wù)器返回一個(gè) SCT。
  4. CA 將這些 SCT 嵌入最終的證書里(或者通過其他方式提供給服務(wù)器)。
  5. Web 服務(wù)器將帶有 SCT 的證書發(fā)送給來訪的瀏覽器。
  6. 瀏覽器(審計(jì)器)驗(yàn)證 SCT 的有效性,確認(rèn)這張證書的簽發(fā)行為是公開的。
  7. 與此同時(shí),域名所有者的監(jiān)控器正在掃描 CT 日志,一旦發(fā)現(xiàn)未經(jīng)授權(quán)的證書,就會(huì)發(fā)出警報(bào)。

通過這個(gè)流程,任何一張被瀏覽器接受的證書,都必然會(huì)被置于公眾的監(jiān)督之下。攻擊者即使騙過了一個(gè) CA,也無(wú)法阻止這張偽造的證書出現(xiàn)在公開日志中,從而被監(jiān)控器發(fā)現(xiàn)。

CT 的安全基石:分叉一致性與八卦協(xié)議

一個(gè)聰明的人可能會(huì)問:如果一個(gè)惡意的日志服務(wù)器和 CA 合謀,給我的瀏覽器看一個(gè)包含偽造證書的、特供版的日志,同時(shí)給監(jiān)控器看一個(gè)正常的、不含該證書的日志,這不就繞過整個(gè)體系了嗎?

這種行為被稱為 “equivocation” 或者 視圖分叉(View Forking) 。CT 的設(shè)計(jì)者早就考慮到了這一點(diǎn),并引入了一個(gè)強(qiáng)大的屬性: 分叉一致性(Fork Consistency) 。

簡(jiǎn)單來說,一個(gè)行為良好的 CT 日志(基于 Merkle Tree)必須保證,它的任何新狀態(tài)都是舊狀態(tài)的簡(jiǎn)單追加。如果你今天看到的日志樹根是 STH_new,昨天看到的是 STH_old,那么日志服務(wù)器必須能提供一個(gè)數(shù)學(xué)證明(一致性證明),來表明 STH_new 對(duì)應(yīng)的日志包含了 STH_old 的全部?jī)?nèi)容,并且只是在后面增加了一些新條目。

如果一個(gè)惡意日志想對(duì)你搞“特供版”,它就必須永遠(yuǎn)維護(hù)這個(gè)為你定制的分叉。比如,它今天給你看了包含偽造證書的日志版本 A,明天為了讓你相信日志還在正常增長(zhǎng),它必須給你看版本 A+,后天是 A++……它不能突然給你看一個(gè)和主干日志 B 合并后的版本,因?yàn)樗鼰o(wú)法提供從 A 到 B 的一致性證明。

這意味著,這個(gè)惡意日志必須為你一個(gè)人永遠(yuǎn)地維護(hù)一個(gè)獨(dú)特的、虛假的世界。這不僅成本高昂,而且非常脆弱。一旦你和別人交流一下你們各自看到的日志樹根(STH),或者你的瀏覽器緩存了舊的 STH,然后訪問網(wǎng)絡(luò)時(shí)發(fā)現(xiàn)新的 STH 與舊的不一致且無(wú)法提供證明,欺騙行為就會(huì)立刻敗露。

為了讓這種“交流日志樹根”的行為系統(tǒng)化,CT 的原始設(shè)計(jì)中還包含了一個(gè) 八卦協(xié)議(Gossip Protocol) 。瀏覽器和監(jiān)控器之間可以互相交換它們看到的 STH,一旦發(fā)現(xiàn)不一致,就意味著某個(gè)日志服務(wù)器在作惡。盡管在當(dāng)前的實(shí)際部署中,gossip 協(xié)議并未被廣泛實(shí)現(xiàn),但利用這一點(diǎn)來作惡的攻擊“非常笨拙且風(fēng)險(xiǎn)極高”,所以系統(tǒng)在缺少它的情況下依然相當(dāng)安全。

常見問題與生產(chǎn)啟示

監(jiān)控器 (Monitor) 和審計(jì)器 (Auditor) 有什么區(qū)別?

這是理解 CT 的關(guān)鍵。

  • 審計(jì)器 (Auditor) :在你的 瀏覽器 里。它只關(guān)心 當(dāng)前 遇到的這一張證書。它通過檢查 SCT 來確認(rèn)這張證書“已登記”,但它不關(guān)心日志里的其他證書。它的檢查是 被動(dòng)的、個(gè)例的 。
  • 監(jiān)控器 (Monitor) :是一個(gè) 獨(dú)立的服務(wù) 。它關(guān)心的是 所有 的證書。它會(huì)完整地拉取日志,主動(dòng)地、地毯式地搜索它關(guān)心的域名(比如 *.mit.edu),檢查每一張相關(guān)證書的合法性。它的檢查是 主動(dòng)的、全局的 。

為什么需要多個(gè)獨(dú)立的日志服務(wù)器?

為了 去中心化 和 容錯(cuò) 。如果只有一個(gè)日志,它一旦宕機(jī),所有 CA 都無(wú)法簽發(fā)被瀏覽器接受的證書。如果它變壞了,整個(gè)系統(tǒng)就失去了意義。通過要求證書出現(xiàn)在多個(gè)獨(dú)立的日志中,CT 大大提高了系統(tǒng)的健壯性和抗審查性。

CT 有什么啟示?

  1. 信任模型 :CT 是一個(gè)典型的從“相信權(quán)威”轉(zhuǎn)變?yōu)椤斑^程可審計(jì)”的范例。在設(shè)計(jì)需要多方協(xié)作的分布式系統(tǒng)時(shí),這是一個(gè)非常重要的思想。與其假設(shè)每個(gè)參與者都是好人,不如設(shè)計(jì)一個(gè)機(jī)制,讓每個(gè)人的行為都公開透明,作惡行為能被輕易發(fā)現(xiàn)。這正是區(qū)塊鏈等技術(shù)的核心思想之一。
  2. 審計(jì)優(yōu)于預(yù)防 :在很多場(chǎng)景下,完全 預(yù)防 問題的發(fā)生是不可能或成本極高的。CT 提供了一個(gè)B計(jì)劃:即使無(wú)法阻止壞證書被簽發(fā),我們也能確保它被 發(fā)現(xiàn) 。這種“檢測(cè)與響應(yīng)”的設(shè)計(jì)思路在安全、運(yùn)維等領(lǐng)域非常普遍。
  3. 數(shù)據(jù)結(jié)構(gòu)的力量 :Merkle Tree 在這里起到了定海神針的作用。它用很小的成本(一個(gè)樹根哈希值)實(shí)現(xiàn)了對(duì)海量數(shù)據(jù)的完整性校驗(yàn),并提供了高效的包含/一致性證明。理解其原理對(duì)于設(shè)計(jì)需要數(shù)據(jù)校驗(yàn)和同步的系統(tǒng)大有裨益。
  4. 隱私問題 :CT 也不是完美的。比如隱私問題:如果瀏覽器為了獲取“包含證明”而頻繁向日志服務(wù)器查詢某個(gè)證書,這可能會(huì)暴露用戶的瀏覽歷史。這是一個(gè)開放性問題,業(yè)界也在探索如私有信息檢索(Private Information Retrieval, PIR)等技術(shù)來緩解它。

總結(jié)

CT 的核心貢獻(xiàn)在于,它巧妙地利用 強(qiáng)制公開 和 可審計(jì)性 ,為一個(gè)原本封閉、基于絕對(duì)信任的系統(tǒng)(CA 體系)打上了一個(gè)透明的補(bǔ)丁。它并沒有推翻原有的體系,而是通過增加日志、監(jiān)控和審計(jì)這三個(gè)角色,讓所有參與者(CA、網(wǎng)站主、用戶)互相監(jiān)督,形成了一種新的制衡。

它的關(guān)鍵屬性是保證了盡管存在惡意,但每個(gè)人看到的都是同一份日志 (everyone sees the same log, despite malice) 。這種一致性,正是我們?cè)跇?gòu)建大型分布式系統(tǒng)時(shí)所追求的終極目標(biāo)之一。

責(zé)任編輯:武曉燕 來源: Piper蛋窩
相關(guān)推薦

2017-07-25 14:38:56

數(shù)據(jù)庫(kù)一致性非鎖定讀一致性鎖定讀

2022-12-14 08:23:30

2021-06-22 10:22:08

業(yè)務(wù)IT一致性首席信息官

2016-12-19 18:41:09

哈希算法Java數(shù)據(jù)

2021-02-05 08:00:48

哈希算法?機(jī)器

2021-02-02 12:40:50

哈希算法數(shù)據(jù)

2016-11-16 19:15:34

消息時(shí)序分布式系統(tǒng)

2020-05-12 10:43:22

Redis緩存數(shù)據(jù)庫(kù)

2020-11-24 09:03:41

一致性MySQLMVCC

2022-03-22 09:54:22

Hash算法

2021-06-30 21:13:49

CPUCache數(shù)據(jù)

2022-10-19 12:22:53

并發(fā)扣款一致性

2024-05-28 00:50:00

RedisMySQL緩存

2021-04-24 16:58:03

數(shù)據(jù)庫(kù)工具技術(shù)

2024-05-08 16:37:17

MySQLRedis數(shù)據(jù)庫(kù)

2021-09-15 07:46:42

哈希一致性哈希算法

2009-06-18 09:18:08

Oracle檢索數(shù)據(jù)數(shù)據(jù)一致性事務(wù)恢復(fù)

2021-06-11 09:21:58

緩存數(shù)據(jù)庫(kù)Redis

2023-12-01 13:51:21

數(shù)據(jù)一致性數(shù)據(jù)庫(kù)

2021-06-03 15:27:31

RaftSOFAJRaft
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人在线免费观看 | 婷婷色国产偷v国产偷v小说 | 国产精品一区二区久久 | 亚洲精品久久久一区二区三区 | 久久aⅴ乱码一区二区三区 91综合网 | 精品日本久久久久久久久久 | 欧美精品一区二区三区四区 在线 | 午夜精品一区二区三区在线 | 欧美一区二 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕专区 | 日韩精品一区二区三区视频播放 | 国产精品国产a | 久久亚洲精品国产精品紫薇 | 久久久久久久久国产精品 | 国产精彩视频 | 欧美中文一区 | 久久久久免费精品国产小说色大师 | 亚洲视频一区 | 久久精品一区二区视频 | 北条麻妃国产九九九精品小说 | 999久久精品 | 国产色网 | 一区二区三区在线 | 国产精品午夜电影 | 欧美在线视频不卡 | 久久男人天堂 | 国产一区免费 | 国内自拍视频在线观看 | 一区在线视频 | 中文字幕乱码视频32 | www.日本三级| 久草视频2 | 九九视频在线观看视频6 | 玖玖国产 | 亚洲欧美在线视频 | 国产欧美在线播放 | 91免费在线| av中文字幕在线 | 黄色毛片在线播放 | 久久99精品国产自在现线小黄鸭 |