第一章 緒論
第一節 Public Key Infrastructure
公開金鑰基礎建設(Public Key Infrastructure,PKI),是一種由密碼學原理、擁 有者、管理者三方組成的基礎架構,其旨在於數位憑證(Digital Certificate)的相關
應用,如建立及發放憑證、管理使用、復原撤銷等,而數位憑證可以用來驗證使 用者身分,是網路上目前所使用的身分驗證方法,常見的PKI 應用如企業(網站、
IoT)、個人(報稅、網銀、e-mail)。
任何人都可向憑證認證機構(
Certificate Authority,CA
)註冊自己的公開金鑰與個人相關資訊,以取得一張經過憑證認證機構簽名的數位憑證,之後在網路通訊 時可以藉由展示此數位憑證,檢驗者會根據憑證的有效性,來決定是否信任憑證 的擁有者。
圖 1 PKI 基礎架構
2
憑證有效性除了透過驗證CA 簽名外,還需要向 CA 確定該憑證是否被撤銷,憑 證撤銷方式有兩種,第一種「CRL[1]」是 CA 會定期發布撤銷名單,而檢驗者需
要先下載完整的撤銷名單,再逐一比對要檢驗的憑證是否再名單內。第二種
「OCSP[2]」則是 CA 會建立憑證狀態資料庫,檢驗者只需要向 CA 提供憑證資訊,
CA 就會根據資料庫回傳該憑證的最新狀態給檢驗者,目前憑證狀態有「good」、
「revoked」、「unknown」三種。
第二節 Digital Certificate
數位憑證是用於 PKI 架構的電子資料,可以用來證明公開金鑰(Public Key) 的擁有者身份,其標準格式為 X.509[3]。數位憑證會儲存擁有者身分資訊、公鑰 以及CA 對該憑證所簽屬的數位簽章(Digital Signature),該簽章可以確保數位憑證 的儲存內容正確無誤。擁有者憑著此憑證,可向其他網路上的服務商或使用者證 明身份,來獲得對方的信任,以致使用某些需要身份證明的網路服務,而收到憑
證的網路服務商或使用者,會向CA 詢問該憑證是否過期、數位簽章是否有效等
資訊,來核實憑證的正確性。其中最主要的功用是在檢查擁有者身分時,擁有者 不需傳送個人相關敏感資訊(如電話、身分證、住址等)給驗證者。透過這種資 料交換方式,擁有者既可證明身分,也不必公開私人資料,對個人隱私有極大的 保障。
3
第三節 Public Key Infrastructure 的問題
PKI 雖然在網際網路上使用已久,但其本身有不少問題陸陸續續被人提出[4]。
在架構方面,因運作全仰賴 CA 負責,故惡意攻擊者常會透過癱瘓或是駭入 CA 等方式,來攻擊憑證的使用者,例如:2011 年 Diginotar 事件[5],攻擊者駭入 CA
後頒發一系列假憑證。
在流程方面又分為頒發跟撤銷兩部分,首先頒發憑證的部分,很多 CA 發證
門檻低,只要你付錢就可以取得,這代表惡意使用者會在前期偽裝成正常網站或 服務,潛伏一段時間後才轉變為釣魚、病毒網站等進行惡意攻擊[6]。接著在撤銷 部分,CA 具有單點故障問題,這個「單點」並不是指某一設備,而是指 CA 本
身,因為使用者欲檢查憑證有無撤銷需向CA 進行連線確認,但使用者有可能因
為各種問題(例如:CA 被 DoS 攻擊、DNS 被串改),導致無法順利向 CA 整體取 得資訊;除此之外,CA 為中心化架構,頒發及撤銷憑證通常是不透明的,雖然 CA 擁有撤銷憑證的權利,但使用者若被惡意/意外撤銷憑證,會「很難」或「需
要很長的一段時間」才能進行申訴,因為使用者無法取得實質的證據證明自己的
清白,再者,網路服務無遠弗屆,使用者與CA 不一定會在相同的地域上,聯繫
客服往往需要大量時間進行轉接、翻譯。
4
第四節 Decentralized Public Key Infrastructure
為了解決中心化帶來的種種問題,開始有人研究「去中心化公開金鑰基礎建 設(Decentralized Public Key Infrastructure,DPKI)」,從發現PKI 問題開始到現在,
已有不少成功的案例或實作,目前可分成兩大類別,其一為採用信任網路(Web of trust)為基礎,如 PGP[7],它移除 CA 的部分,憑證改由使用者自己頒發,透過取 得其他使用者簽名(信任)來增加自己憑證的可信度,雖然解決了 CA 單點故障的
問題,但可信度極度仰賴受他人簽名數量,導致新加入的成員難已受到大家信任,
也無法快速融入網路內;另一種則是使用近幾年蓬勃發展的區塊鏈技術[8]來完成,
又稱為Blockchain-based PKI,因為區塊鏈具有資料公開及不可串改的特性,拿來 存放、管理憑證擁有很高的透明性及安全性,並且其底層為分散式系統,可以避 免單點故障問題,詳細區塊鏈細節會在後面章節說明。
目前Blockchain-based PKI 有全去中心化及半去中心化兩種,前者如 Mustafa Al-Bassam 所做[9],其結合信任網路(Web of trust)與區塊鏈技術,讓使用者將憑證
本身以及它人簽名儲存到區塊鏈上,與PGP 相似只是儲存憑證位置不同而已;後
者有Karen Lewison and Francisco Corella 所做[10],其保留了 CA 的部分,並讓 CA 將憑證資訊、撤銷資訊均放入區塊鏈,使用者只需要到區塊鏈查看憑證資訊,
不必與CA 通訊,也不用像[9]一樣需要累積一段時間才能正常使用。
5
第五節 Blockchain-based PKI 的問題
儘管半去中心化架構看起來很完美,但解決舊問題的同時,新問題也隨之產 生,導致Blockchain-based PKI 始終無法取代目前的 PKI 成為主流,主要問題主 要有三點,詳情如下:
問題一 區塊鏈頻寬限制
塊鏈交易速度非常慢,以區塊鏈技術中的以太坊(ethereum)[11]為例,其 TPS(每秒交易量)只有 10,一天最多 86 萬多筆交易,但光是一家免費的憑證機構 let's encrypt,一天所要頒發的憑證數量就大約 100 萬張[12],區塊鏈完全無法負
荷如此龐大的憑證發放。
問題二 缺乏監督機制
將憑證儲存在分散式系統的區塊鏈中,雖然解決檢驗憑證時的單點故障問題,
但是在發放與撤銷的動作流程上,其實還是不透明的中心化情形,坦白來說CA
只是換了一個儲存憑證資訊的位置而已,使用者還是無法取得有用的證據,來證 明CA 放入區塊鏈的憑證資訊是否有問題。
圖 2 Blockchain-based PKI 的中心化部分示意圖
6
問題三 牴觸 GDPR
歐盟於2018 年實施一般資料保護規範(
General Data Protection Regulation,
GDPR
)[13],其目的為加強歐盟境內人民電子資料保護(personal data)的保護,法 規內容不僅重新定義個人資料(personal data)的範疇,對資料的使用與儲存也有更多嚴格的限制,且不論企業或服務提供者是否在歐盟境內,只要使用資料或服務 對象與歐盟人民有關,均需符合GDPR 之規範,若違反 GDPR 將被處以高額罰鍰,
然而GDPR 內有兩項新法規,與區塊鏈技術的特性互相牴觸,導致區塊鏈必定無 法符合GDPR:
其一,個人資料儲存時必須假名化(pseudonmisation),意即若不使用額外資訊,
旁人是無法從儲存的資料逆推當事人,且額外資料必須另外存放,然而[9][10]兩
篇論文,直接將憑證放入區塊鏈的做法,等於直接將憑證擁有者的個人資訊以明 文方式公開到網路上。
其二,資料的當事人可以行使「被遺忘權」,資料擁有者可要求控制資料的
一方,刪除所有個人資料的任何連結、副本或複製品,但很不巧的,區塊鏈具有 不可刪除的特性,資料一旦放上去,除非所有儲存節點損毀(幾乎不可能),因此
憑證的擁有者永遠無法行駛被遺忘權。
7
第六節 目標&解決方法
PKI 與 DPKI 雖然都是致力於解決身分驗證,但或多或少都有一些缺陷,因
此我們目標是融合兩方之長,建立一個更為安全、方便的身分驗證架構,由於PKI 最大的問題在於單點故障以及流程不透明,而區塊鏈技術正好是PKI 問題的最佳 解法,因此本篇論文將著重於解決Blockchain-based PKI 的問題。
為了解決區塊鏈本身頻寬限制以及抵觸GDPR 部分,我們研究了新的資料結 構「TP-Merkle Tree[14]」來進行憑證的儲存及驗證,透過此結構可以將一百萬張
的憑證壓縮成一筆資料再儲存到區塊鏈上,完美的解決了假名化以及交易數量限 制,至於運作不透明的部分,我們建立了一套包含釐清責任、快速申訴、自動賠 償的完整監督機制,透過PoV 技術取得有效證據的情況下,可以大幅度降低 CA 出錯或作詭的機率,即使發生問題,使用者只需要使用證據,即可輕易從區塊鏈 上得到相應的加密貨幣[15]當做賠償,而不必考慮跨國客服時貨幣、時差及語言
不同等問題。
8