亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        區(qū)塊鏈電子認證系統(tǒng)的設(shè)計與實現(xiàn)

        2020-08-31 01:38:50周硙
        軟件工程 2020年8期

        周硙

        摘 ?要:本文提出了一種基于區(qū)塊鏈的電子認證系統(tǒng)(CA/PKI)。該系統(tǒng)數(shù)據(jù)持久化及訪問依賴于區(qū)塊鏈的去中心化特性,相對于單點部署PKI系統(tǒng)具有更高的可靠性,且運維難度低于集群部署;同時系統(tǒng)繼承了區(qū)塊鏈不可篡改、不可偽造的特性,可以對數(shù)字證書的簽發(fā)、驗證、吊銷關(guān)鍵環(huán)節(jié)實現(xiàn)數(shù)據(jù)存證,方便各方交換數(shù)據(jù),并保證全程留痕。上述特性使得該系統(tǒng)可以便捷的實現(xiàn)私有部署,成本低、安全性高,在企業(yè)級應(yīng)用、電子商務(wù)等領(lǐng)域具有潛在的應(yīng)用價值。

        關(guān)鍵詞:區(qū)塊鏈;電子認證服務(wù);證書基礎(chǔ)設(shè)施

        中圖分類號:TP311 ? ? 文獻標(biāo)識碼:A

        Abstract: This paper proposes a digital authentication system (CA/PKI, Certificate Authority/Public Key Infrastructure) based on blockchain. The data persistence of this system depends on decentralized characteristics of blockchain. It is more reliable than single-point deployment of PKI system, and the operation and maintenance is easier than that of the cluster deployment. This system inherits the characteristics of blockchain that cannot be compromised. This solution can issue, verify, and revoke key certificates to realize data storage certificates, facilitate the exchange of data, and ensure that traces are kept throughout the process. The above features make the system easy to implement private deployment, taking into account the cost and security, and it is highly expected to be available in enterprises and e-commerce areas.

        Keywords: blockchain; Certificate Authority; Public Key Infrastructure

        1 ? 引言(Introduction)

        數(shù)字證書廣泛的使用在金融交易、電子簽名、用戶鑒權(quán)等場景。即可以代替?zhèn)鹘y(tǒng)的用戶名密碼認證模式、也可以在原有系統(tǒng)上提供雙因子認證,進一步提高系統(tǒng)安全性[1]。信息系統(tǒng)利用數(shù)字證書核實用戶身份。證書包含身份信息、授權(quán)信息及第三方權(quán)威機構(gòu)的數(shù)字簽名。其中數(shù)字簽名,由具有公信力的第三方證書頒發(fā)機構(gòu)(Certificate Authority,CA)核實信息后,用密碼學(xué)方法計算得到。CA同時提供了公鑰基礎(chǔ)設(shè)施(PKI)實現(xiàn)證書的生命周期管理。PKI需要實現(xiàn)證書簽發(fā)、更新、作廢、查詢等一系列服務(wù)[2]。特定場景下有部署私有CA/PKI的需求,如企業(yè)級應(yīng)用等。CA將成為整個系統(tǒng)安全的基石,采用中心化部署時,CA的安全將是系統(tǒng)安全的重中之重,需要該組織機構(gòu)具有相應(yīng)的技術(shù)能力、管理能力,需要有專業(yè)的團隊,并投入充足的建設(shè)及后期維護費用。

        區(qū)塊鏈?zhǔn)且环N集體維護的分布式共享加密數(shù)據(jù)庫[3],眾多的項目證明它具有不可偽造、全程留痕、可以追溯的技術(shù)特性。區(qū)塊鏈可以不依賴中心化權(quán)利機構(gòu),對現(xiàn)有中心部署的CA/PKI系統(tǒng)是一項重要的補充,能夠有效降低單點風(fēng)險,具有低成本、部署簡單、安全性高的優(yōu)勢[4,5]。

        2 ? 設(shè)計概述(Design overview)

        2.1 ? 設(shè)計目標(biāo)

        CA系統(tǒng)核心功能是簽發(fā)數(shù)字證書、管理數(shù)字證書。根證書、中級證書的存放及使用安全是系統(tǒng)安全的核心。目前主要措施有:私鑰物理隔離、操作日志審計、多人共同簽發(fā)、人員背景調(diào)查等。用戶的證書可能會丟失或者被盜,系統(tǒng)需要實現(xiàn)證書吊銷功能。該功能是PKI維護的一個在線列表,列舉了所有在有效期內(nèi)但是有安全風(fēng)險的證書。在證書存在安全隱患時,持有人可以向PKI申請將不安全的證書加入吊銷列表。其他用戶可以通過在線查詢協(xié)議,查詢證書吊銷列表,從而判斷一個證書是否有效。本文用區(qū)塊鏈技術(shù)代替部分CA/PKI流程,設(shè)計了可低成本私有化部署的方案。該方案利用多私鑰共同簽名頒發(fā)證書,代替?zhèn)鹘y(tǒng)的多人共同操作的簽發(fā)環(huán)節(jié),通過公共賬本代替?zhèn)鹘y(tǒng)日志系統(tǒng)及證書在線查詢協(xié)議,通過智能合約和區(qū)塊鏈共識協(xié)議響應(yīng)重大安全事件。

        2.2 ? 系統(tǒng)角色

        CA的根證書是一切信任的基礎(chǔ),僅用于生成中級證書,不用于普通證書的簽發(fā)。用戶證書的簽發(fā)流程是首先由用戶提交CSR,操作員在管理人員及審計人員見證下,用中級證書簽發(fā)用戶的數(shù)字證書。本文所述方案沿襲了CA的基本流程,設(shè)計了普通用戶、見證人、礦工、訪客四種用戶角色,見圖1。

        普通用戶對應(yīng)傳統(tǒng)CA/PKI框架下的證書持有人。在區(qū)塊鏈系統(tǒng)中,普通用戶自行生成私鑰及公鑰。公鑰附加身份信息打包成證書請求文件(CSR)。CSR經(jīng)私鑰數(shù)字簽名后發(fā)送給見證人。經(jīng)過多名見證人核實信息并簽發(fā)后,即得到數(shù)字證書(CRT)。

        見證人是簽發(fā)的負責(zé)人,具有提案權(quán)及投票權(quán)。見證人在接收到普通用戶的CSR后,如果確認了用戶信息正確,可以將相關(guān)信息廣播給礦工,發(fā)一起個證書簽發(fā)提案,即提案權(quán)。見證人同時需要監(jiān)聽鏈上數(shù)據(jù),如果發(fā)現(xiàn)新的CSR上鏈,需要對其進行投票,即投票權(quán)。投票通過的CSR將由智能合約自動生成CRT,實現(xiàn)證書簽發(fā)。

        礦工負責(zé)區(qū)塊生成及公共賬本維護。礦工是唯一接觸區(qū)塊鏈的角色,礦工之間通過底層的區(qū)塊鏈技術(shù),如Fabric/Ethereum框架,實現(xiàn)區(qū)塊鏈基本功能。每個礦工均持有一份公共賬本,賬本記錄了證書的提案、投票、吊銷的狀態(tài)。礦工對其他角色暴露服務(wù)接口,負責(zé)①接收見證人的提案;②運行智能合約,處理投票,并根據(jù)結(jié)果更新公共賬本的數(shù)據(jù);③處理證書吊銷請求;④響應(yīng)訪客的查詢請求。

        訪客可以訪問區(qū)塊鏈數(shù)據(jù),驗證一個證書的簽名是否合法,也可以在線獲取證書的狀態(tài),確認證書是否被吊銷。

        2.3 ? 客戶端

        區(qū)塊鏈不需要中心服務(wù)器,系統(tǒng)由若干獨立客戶端構(gòu)成的對等網(wǎng)絡(luò)運行??蛻舳丝梢酝瑫r具有上述四種角色中的一種或多種??蛻舳艘訫aster/Slave模式工作,Master實例負責(zé)監(jiān)控其他Slave,必要時對故障實例重啟。礦工以網(wǎng)絡(luò)及磁盤IO操作為主,事件驅(qū)動的單線程模式完全可以充分利用典型的硬件資源;見證人需要響應(yīng)CSR操作,適當(dāng)增加見證人可以談提高系統(tǒng)吞吐量。因此典型情況,客戶端可以包含一個礦工及多個見證人。

        3 ? 證書管理(Certificate management)

        3.1 ? 證書簽發(fā)請求

        普通用戶需在區(qū)塊鏈上具有合法身份,該身份是一個區(qū)塊鏈地址及控制該地址的私鑰。用戶需要自行使用區(qū)塊鏈的密鑰算法,生成一對密鑰。并由公鑰通過哈希算法生成區(qū)塊鏈地址。

        在擁有區(qū)塊鏈身份后,可以創(chuàng)建CSR文件。首先為CSR文件創(chuàng)建一對密鑰,私鑰有用戶自行保管,不能公開。將證書授權(quán)的域名、主體名稱、國家地區(qū)、密鑰算法及其他附加信息序列化成屬性集。CSR文件是比較成熟的格式,OpenSSL等工具可以非常便捷完成上述工作,但是此類工具缺少對自定義字段的處理能力,考慮到Postal Address字段通常閑置,因此用該字段存儲用戶區(qū)塊鏈地址,實現(xiàn)CSR與用戶身份在區(qū)塊鏈的上關(guān)聯(lián)。最后公鑰、證書內(nèi)容及數(shù)字簽名重新打包生成CSR文件。

        3.2 ? 預(yù)見證過程

        普通用戶將CSR發(fā)送給各見證人,各見證人首先對CSR文件進行預(yù)見證。見證人之間通過Paxos/Raft等一致性算法[6],對驗證結(jié)果進行協(xié)商。如果見證人發(fā)現(xiàn)證書信息有錯誤,如身份或域名信息不符,可以直接否決該CSR。如果見證人均同意了該證書,則需要選舉一位見證人負責(zé)發(fā)起CSR上鏈請求。由該負責(zé)人將CSR廣播給各礦工,礦工通過區(qū)塊鏈共識協(xié)議,實現(xiàn)CSR數(shù)據(jù)上鏈。

        預(yù)見證階段是必要的。見證人在預(yù)見證階段已完成了CSR的信息核驗,并在上鏈之前已在大多數(shù)見證人間達成一致,CSR上鏈后,見證人只需要對文件內(nèi)容進行復(fù)核,不需要對CSR內(nèi)容進行實質(zhì)性核驗,因此加快了區(qū)塊鏈上的多簽名程序。預(yù)見證算法效率高于區(qū)塊鏈共識協(xié)議,預(yù)先在見證人間取得一致,避免了CSR上鏈后在最終簽署階段產(chǎn)生分歧的可能性,節(jié)約了處置分歧的區(qū)塊鏈資源。見證人的選舉程序可以避免同一CSR,被不同見證人重復(fù)提交。最后預(yù)見證過程可以避免無效CSR直接上鏈,在上鏈前就否決掉無效的CSR,減少鏈上空間的浪費。圖2給出了預(yù)見證過程的時序圖。

        3.3 ? 證書簽發(fā)

        各見證人需要監(jiān)聽區(qū)塊數(shù)據(jù)更新。發(fā)現(xiàn)新的CSR上鏈后,獨立核實CSR請求信息,并獨立決定同意或否決該CSR。同意或者否決意見均需要提交到區(qū)塊鏈上。見證人把自己的決定和簽名結(jié)果發(fā)布給礦工。礦工負責(zé)驗證CSR文件自身的合法性及各見證人的投票意見,當(dāng)投票數(shù)滿足既定規(guī)則時,將會自動觸發(fā)CSR對應(yīng)的簽發(fā)或否決邏輯。該邏輯在區(qū)塊鏈上表現(xiàn)為多簽名智能合約[5],以下代碼展示了其核心邏輯,當(dāng)同意的見證人數(shù)量超過常量MIN_SIGNATURES時,該合約發(fā)布一個CRT事件,代表簽發(fā)一個數(shù)字證書:

        function sign(uint csrId) public isWitness {

        CSR storage csr = csrs[csrId];

        ...

        csr.count++;

        if( csr.count >= MIN_SIGNATURES ) {

        ...

        emit CRT(csrId);

        deleteCsrs(csrId);

        }

        }

        因為礦工負責(zé)提供證書查詢服務(wù),為了提高查詢性能,需要采用Redis等KeyValue數(shù)據(jù)庫,加速查詢的效率[7]。當(dāng)?shù)V工發(fā)現(xiàn)證書更新時,需要及時更新緩存,保證數(shù)據(jù)一致性。圖3下圖給出了證書簽發(fā)的時序圖。

        3.4 ? 證書吊銷

        證書吊銷,由證書私鑰持有人向礦工節(jié)點發(fā)起吊銷申請。用證書私鑰及用戶私鑰分別對吊銷申請簽名,最后將吊銷申請及簽名發(fā)給礦工,礦工驗證后將申請發(fā)布于區(qū)塊鏈上,實現(xiàn)證書吊銷。該吊銷方法適用于普通用戶的證書,也適用于見證人的中級證書吊銷。礦工需提供相應(yīng)的數(shù)據(jù)訪問API供訪客查詢。吊銷申請一經(jīng)確認,不可撤銷。

        4 ? 實現(xiàn)(Implementation)

        4.1 ? 賬本

        區(qū)塊鏈數(shù)據(jù)主要有UTXO和賬戶兩種模式。CA/PKI系統(tǒng)需要存儲CSR、CRT及簽名歷史,UTXO無法滿足要求,因此本系統(tǒng)考慮賬戶模式。為了完成證書的生命周期管理,需要存儲證書管理規(guī)則和狀態(tài)信息。證書的管理規(guī)則以智能合約的形式存儲于區(qū)塊鏈中,一個CSR對應(yīng)一個智能合約的實例。實例的狀態(tài)描述了證書的簽署狀態(tài)以和吊銷狀態(tài)。證書的管理規(guī)則對應(yīng)了區(qū)塊鏈智能合約的事件處理;證書的狀態(tài)對應(yīng)了區(qū)塊鏈智能合約的狀態(tài)機。

        4.2 ? 節(jié)點與角色

        區(qū)塊鏈系統(tǒng)通常是若干個節(jié)點構(gòu)成的分布式系統(tǒng)。一個節(jié)點可以具有一種角色,也可以同時具有多種角色。區(qū)塊鏈技術(shù)誕生的初期,網(wǎng)絡(luò)各個節(jié)點是完全對等的,一個節(jié)點要與其他所有節(jié)點具有相同的功能,持有所有歷史區(qū)塊的數(shù)據(jù)。該數(shù)據(jù)模型對于礦工的任務(wù)是必要的,但是不利于其他角色使用區(qū)塊鏈功能。后續(xù)發(fā)展出了多種節(jié)點類型,大體分成全節(jié)點和輕節(jié)點兩類。全節(jié)點具有完整的數(shù)據(jù),有能力對所有業(yè)務(wù)進行驗證,可以執(zhí)行智能合約;輕節(jié)點只保存了有限數(shù)據(jù),僅可以驗證事件是否發(fā)生。在本系統(tǒng)中,少部分礦工節(jié)點負責(zé)維持整個區(qū)塊鏈的運行,需要以全節(jié)點方式工作。見證人可以通過礦工獲取區(qū)塊鏈數(shù)據(jù),投票過程是構(gòu)造投票請求附加數(shù)字簽名,由礦工節(jié)點完成后續(xù)操作,見證人不需要完整的區(qū)塊數(shù)據(jù),可以采用輕節(jié)點方式運行。

        4.3 ? 區(qū)塊鏈瀏覽代理

        相對于全節(jié)點,輕節(jié)點只需保留有限的數(shù)據(jù),以便查詢證書的狀態(tài),典型情況下輕節(jié)點數(shù)據(jù)量約為全節(jié)點的10%到25%。但是對于用戶而言依然需要保存相當(dāng)?shù)臄?shù)據(jù)。傳統(tǒng)的Web系統(tǒng)中,瀏覽器只需要信任少數(shù)CA的根證書。以對根證書的信任為基礎(chǔ),通過證書鏈,將信任延伸到SSL服務(wù)器,瀏覽器只需要幾百KB的存儲即可以完成證書鏈校驗。本文方案沿用證書鏈傳遞信任的設(shè)計,以減輕終端用戶的成本。訪客可以信任一部分見證人,根據(jù)證書鏈追溯計算一個證書是否由可信的見證人簽發(fā)。其次可以在線請求證書狀態(tài)。礦工提供區(qū)塊鏈數(shù)據(jù)的代理訪問服務(wù)。普通用戶和訪客可以不運行客戶端實例,不需要直接讀取、校驗區(qū)塊鏈數(shù)據(jù),只需要通過礦工代理數(shù)據(jù)請求,詢問一個證書是否被簽發(fā)、證書過期時間以及是否被吊銷。該代理服務(wù)稱為區(qū)塊鏈瀏覽代理,對內(nèi)負責(zé)與各個礦工溝通,及時更新數(shù)據(jù),更新緩存;對外提供Rest接口方便用戶查詢數(shù)據(jù)。該服務(wù)有可能成為系統(tǒng)瓶頸,需要合理設(shè)計緩存系統(tǒng)。

        5 ? 討論(Discussion)

        5.1 ? 共識協(xié)議的選擇

        共識協(xié)議是區(qū)塊鏈節(jié)點實現(xiàn)數(shù)據(jù)一致的算法。常見的共識協(xié)議為PoW、DPoS及PBFT。DPoS及PBFT均適合本系統(tǒng)方案[8]。DPoS優(yōu)勢在于對投票權(quán)的精細控制,不同節(jié)點可以擁有不同權(quán)重的投票權(quán),安全性較好的節(jié)點可以分配較高的投票權(quán)。因為投票權(quán)可以與身份無關(guān),所以DPoS不要求所有節(jié)點實名,只需要持有投票權(quán)超過一定比例的節(jié)點實名。投票權(quán)的分配是公開的,因此偽造身份的虛假節(jié)點很難獲得足夠的投票權(quán),即無法威脅到系統(tǒng)安全。PBFT不需要管理投票權(quán),在實現(xiàn)方面成本相對較低。PBFT可以容忍不超過1/3的節(jié)點惡意篡改數(shù)據(jù)。為了控制該風(fēng)險,通常需要對礦工節(jié)點實名管理,并及時將惡意節(jié)點除名。

        5.2 ? 安全性

        系統(tǒng)安全性取決于區(qū)塊鏈安全、見證人根證書及中級證書的安全。區(qū)塊鏈系統(tǒng)對數(shù)據(jù)安全有天然優(yōu)勢,如果想篡改數(shù)據(jù),DPoS協(xié)議要求具有50%以上的投票權(quán),PBFT協(xié)議要求1/3以上的節(jié)點合謀[9],以上兩點均很難實現(xiàn)。見證人的根證書中級證書的私鑰如果泄露或者被不當(dāng)使用,可能會簽發(fā)出假證書。相對于傳統(tǒng)CA,區(qū)塊鏈系統(tǒng)可以通過多簽名智能合約,強制要求多名見證人共同簽名才能簽發(fā)證書,因此個別見證人的安全事件不影響系統(tǒng)的安全性。同時礦工可以通過投票的方式,決定吊銷見證人的見證資格,保證系統(tǒng)的安全性。

        5.3 ? 成本優(yōu)勢

        私有部署CA/PKI系統(tǒng),主要成本用于維護系統(tǒng)安全?;趨^(qū)塊鏈的系統(tǒng),可以有效減少系統(tǒng)在安全方面的成本支出。區(qū)塊鏈通過多個獨立節(jié)點的一致決議,代替了單點系統(tǒng)簽發(fā)證書的程序,系統(tǒng)不受個別節(jié)點的影響??梢怨?jié)約部署單獨的高防服務(wù)器及保管私鑰的專用物理空間的相關(guān)成本。系統(tǒng)核心業(yè)務(wù)邏輯以區(qū)塊鏈智能合約為基礎(chǔ),由多個礦工共同執(zhí)行,可以有效避免人為錯誤及人員舞弊,有效降低管理成本。

        6 ? 結(jié)論(Conclusion)

        本文提出了一種基于區(qū)塊鏈的電子認證系統(tǒng)改進方案。該系統(tǒng)具有見證人、普通用戶、訪客、礦工四種角色。礦工角色負責(zé)區(qū)塊鏈數(shù)據(jù)的訪問,實現(xiàn)了數(shù)據(jù)的持久化;見證人系統(tǒng)利用多簽名智能合約實現(xiàn)數(shù)字證書的簽發(fā)、查詢、吊銷關(guān)鍵流程,其中簽發(fā)過程通過預(yù)見證及鏈上簽署兩步完成,可以提高簽發(fā)效率,降低區(qū)塊鏈數(shù)據(jù)存儲壓力。本文所述方案中數(shù)據(jù)持久化依賴于區(qū)塊鏈的中心化特性,具有天然的高可靠性;證書簽發(fā)流程依賴于智能合約,避免了人為因素;數(shù)字簽名需要有多位見證人聯(lián)署,增加了系統(tǒng)安全性。上述安全特性使得該系統(tǒng)可以減少在硬件、場地方面的成本投入。相對于CA/PKI系統(tǒng)具有明顯的成本優(yōu)勢,廣泛適用于CA/PKI私有部署需求。

        參考文獻(References)

        [1] Brecht B, Therriault D, André Weimerskirch, et al. A Security Credential Management System for V2X Communications[J]. ?Intelligent Transportation Systems, IEEE Transactions on, 2018, 19(12):3850-3871.

        [2] Patsonakis C, Samari K, Kiayias A, et al. Implementing a Smart Contract PKI[J]. IEEE Transactions on Engineering Management, 2020(99):1-19.

        [3] Ahmed M, Pathan A S K. Blockchain: Can It Be Trusted?[J]. Computer, 2020, 53(4): 31-35.

        [4] Yeh K H, Su C, Deng R H, et al. Special issue on security and privacy of blockchain technologies[J]. International Journal of Information Security, 2020, 19(3): 243-244.

        [5] 邵奇峰,金澈清,張召,等.區(qū)塊鏈技術(shù):架構(gòu)及進展[J].計算機學(xué)報,2018,041(005):969-988.

        [6] 李東輝,吳小志,朱廣新,等.分布式數(shù)據(jù)庫協(xié)調(diào)技術(shù)- Zookeeper[J].科技展望,2016,026(001):7-8;10.

        [7] 曾超宇,李金香.Redis在高速緩存系統(tǒng)中的應(yīng)用[J].微型機與應(yīng)用,2013, 032(012):11-13.

        [8] 王曉光.區(qū)塊鏈技術(shù)共識算法綜述[J].信息與電腦(理論版),2017,379(09):78-80.

        [9] 黃秋波,安慶文,蘇厚勤.一種改進PBFT算法作為以太坊共識機制的研究與實現(xiàn)[J].計算機應(yīng)用與軟件,2017(10):294-299;303.

        作者簡介:

        周 ? 硙(1983-),男,博士,博士后.研究領(lǐng)域:大數(shù)據(jù)及區(qū)塊鏈.

        久久网视频中文字幕综合| 亚洲 另类 小说 国产精品| 成人免费无遮挡在线播放| 日本免费人成视频播放| 欧美精品v欧洲高清| 青青草视频在线播放观看| 极品老师腿张开粉嫩小泬| 一本无码人妻在中文字幕免费| 日韩欧美国产亚洲中文| 久久综合九色综合久久久| 精品国产精品三级精品av网址| 女厕厕露p撒尿八个少妇| 日韩中文字幕一区二区高清| 国产精品自拍网站在线| 人妻中文字幕乱人伦在线| 中文字幕日韩一区二区三区不卡| 在线观看av国产自拍| 久久精品亚洲热综合一本色婷婷| 精品人妻av区乱码| 久久精品成人欧美大片| 精品人妻免费看一区二区三区| 很黄很色的女同视频一区二区 | 亚洲AV秘 无码二区在线| 国产av午夜精品一区二区入口| 绝顶高潮合集videos| 欧产日产国产精品精品| 红杏性无码免费专区| 中文字幕女同人妖熟女| 欧美人与禽zozzo性伦交| 91日本精品国产免| 亚洲中文字幕诱惑第一页| 国产一区二区三区精品免费av| 狠狠色噜噜狠狠狠狠色综合久 | 六月丁香婷婷色狠狠久久| 久久国产亚洲中文字幕| av免费在线播放视频| 国产肥熟女视频一区二区三区| 免费二级毛片在线播放| 蜜桃夜夜爽天天爽三区麻豆av| 精品无码av一区二区三区| 国产高清无码在线|