去中心化的身份認證方案
⑴ 為什麼很多平台還在用人工實名認證的方法 即要求上傳身份證正反面照片,這種很容易造成用戶信息泄露。
首先這個方法是相對安全的,其次這個方法對於商家更便利,談談個人的一些理解。
1、是因為傳統的人工實名認證方法已經非常常見,大家也早已習以為常,但是如果不是必須的情況下很多用戶是不願意去進行實名認證的,這就會造成很多平台白白流失了很多真實客戶。同時這種方法等待時間較長,用戶體驗很不好,容易流失客戶。
⑵ 如果有一個去中心化的身份認證系統
如果有一個去中心化的身份認證系統,我覺得我們上網的體驗將會徹底的改變。
無意間看見一家研究 區塊鏈身份認證的公司 ,以下是他們的產品說明,總結就是:
1、用戶自由創建建立一個或多個包含自己身份信息的賬戶
2、賬戶可以包含公開和私密的信息,信息的查看需要在用戶的授權下才可進行
3、該賬戶是去中心化的,用戶使用私鑰進行管理,其他第三方不能篡改
有了這樣的系統,它會節約我們上網時5%用於驗證、登錄、找回密碼的時間,並能讓我們有效的管理自己的個人身份與品牌信息。
以後瀏覽網站可以省略需要注冊、登錄的流程。身份驗證直接在瀏覽器和網站完成。網站本身也需要在該系統登記,提交需要驗證用戶身份的申請,並根據信息的私密程度分級。用戶隨後訪問網站時,再根據網站的申請,決定是否同意網站查看自己的信息。
由於該系統是去中心的,信息的所有權,修改權將在用戶手中。(敏感信息的修改,可以通過第三方機構認證。比如不能隨意修改自己的出生日期等)。
⑶ 去中心化DID身份認證的應用解析
去中心化DID的目的,是在保護用戶隱私的前提下,支持在多個網路中共享ID,實現互操作性,從而構建更好的web生態。前一章節 去中心化DID身份認證的技術解析 ,介紹了DID基本的技術原理,這一章節,我們簡單描述幾個DID的使用場景。
現在人們已經習慣微信掃碼登錄,或是支付寶授權登錄等,這樣就可以用微信賬號、支付寶賬號直接登錄到第三方網站上。所以我們的個人信息是由微信、支付寶保管,相信這些大網站不會崩潰,也不會泄露我們的數據等。但「大數據殺熟」現象就是一個反例,網站利用我們的數據,操縱著我們的支付,這是用戶信息中心化管理的弊端。
以小學生入學登記為例,家長報名時需要出示戶口本(證明這小孩戶口是在當地,也確實是家長的娃)、房產證(證明房屋是該家長的,該房屋也確實歸屬於所屬校區)外加其他結婚證、疫苗接種證明等。這些證明都是紙質的,都是由相關部門蓋章確認了的。只是使用的時候很麻煩,家長需要把所有證件都帶上,萬一丟了補辦也很繁瑣。
微眾銀行實現的「粵康碼」與「澳門健康碼」互通項目,就是基於區塊鏈+DID技術實現了跨境身份的認證,使得前往澳門的內地旅客,除了提供核酸證明以外,只需申領「粵康碼」即可輕松過關,無需再次填寫澳門本地的健康碼。
再以買房為例,在買房前期,售樓處會要求購房者先出示一個資金證明(比如存款>500萬),這樣的話購房者就需要將好幾個銀行的資金挪到一家銀行,湊夠500萬後,再開具一個證明給售樓處。對購房者來說,資金在幾家銀行間來回挪動就是損失,同時也泄露了金額數目。
如果採用DID就會便捷很多(前提還是多個銀行、購房者、售樓處都已經在區塊鏈上注冊了DID),流程如下圖所示。
購房者手裡有多個銀行所給的銀行存款證明VC,他可以將這些VC中的金額合並,之後加上零知識證明ZKP的proof隱藏具體的數目,簽名後轉成VP發給售樓處。售樓處驗證這個VP的正確性後,並驗證零知識證明ZKP的proof的正確性,確認購房者擁有500多萬的資金,但卻不知道具體數目。
伴隨著IoT設備的種類擴大,物聯網的數據也逐漸豐富起來,但物聯網設備的安全,及物聯網數據的可信度也逐漸引起人們的關注。
如果能以DID給物聯網設備進行身份標識,就可以控制物聯網設備的安全性,並從源頭確認數據的可信度。
以工廠的機器為例,每個機器都由其製造商賦予了一個DID。當機器運轉時會產生大量的生產數據,可以將這些生產數據(非敏感的)進行簽名,將數據、簽名結果和DID一同保存在區塊鏈上。
機器的製造商可以根據鏈上數據得知機器的運行情況,便於更好的售後保養服務。
當企業需要貸款時,銀行可以根據區塊鏈上的生產數據,並結合機器製造商的背書,判斷企業的生產經營情況,評估貸款風險。 (這也算是區塊鏈跨多方機構使用的一個場景)
以雲網盤數據共享為例,如果我想要把網盤上的一些照片發給出版商,就在雲網盤上申請一個鏈接,並加上一個訪問密碼,交給出版商去訪問。出版商拿到這個號碼就能取回照片,但這個密碼可能給其他人重復使用,就導致我的照片被泄露了。
採用DID方式,可以相對安全地將數據共享給使用者,如下圖所示(前提:數據保管方、數據方、用戶都在區塊鏈上注冊了DID).
本章簡短地介紹了DID的幾個使用場景,也是我目前收集到的。但紙上得來終覺淺,以後可以嘗試多種DID,並挖掘出更多真實應用。
⑷ 鍖哄潡閾炬庝箞鏍峰仛韜浠借
鍖哄潡閾炬庝箞鍋氳韓浠借よ瘉
鍖哄潡閾炬槸涓縐嶅幓涓蹇冨寲銆佸叕寮閫忔槑鐨勫垎甯冨紡鏁版嵁搴撴妧鏈錛岃兘澶熶繚璇佹暟鎹鐨勫彲闈犳у拰瀹夊叏鎬э紝鍥犳よ騫挎硾搴旂敤浜庤韓浠借よ瘉銆
鍖哄潡閾捐韓浠借よ瘉鐨勮繃紼嬩竴鑸濡備笅錛
鐢ㄦ埛娉ㄥ唽錛氱敤鎴峰湪鍖哄潡閾句笂娉ㄥ唽璐﹀彿錛屽苟鎻愪氦涓浜轟俊鎮錛屽寘鎷濮撳悕銆佽韓浠借瘉鍙風爜絳夈
韜浠介獙璇侊細鍖哄潡閾句笂鐨勮妭鐐硅繘琛岃韓浠介獙璇侊紝紜淇濈敤鎴鋒彁浜ょ殑淇℃伅鏄鐪熷疄鐨勩佹湁鏁堢殑銆
韜浠借よ瘉錛氱粡榪囪韓浠介獙璇佸悗錛岃妭鐐逛細涓虹敤鎴風敓鎴愪竴涓鍞涓鐨勮韓浠芥爣璇嗙︼紙ID錛夛紝璇ユ爣璇嗙﹁縐頒負鈥滃叕閽モ濓紝騫剁敤浜庡悗緇鐨勮韓浠借よ瘉銆
絳懼悕璁よ瘉錛氱敤鎴蜂嬌鐢ㄨ嚜宸辯殑縐侀掗瀵歸渶瑕佽よ瘉鐨勪俊鎮榪涜屾暟瀛楃懼悕錛屽苟灝嗙懼悕涓婁紶鍒板尯鍧楅摼涓娿傚尯鍧楅摼鑺傜偣浣跨敤鍏閽ラ獙璇佺懼悕鐨勬湁鏁堟э紝紜淇濊ヤ俊鎮鏄鐢辯敤鎴鋒湰浜哄彂鍑虹殑銆
鏁版嵁瀛樺偍錛氱粡榪囪韓浠借よ瘉鐨勪俊鎮浼氳瀛樺偍鍦ㄥ尯鍧楅摼涓婏紝淇濊瘉鏁版嵁鐨勫畨鍏ㄦу拰鍙闈犳с
鎬諱箣錛屽尯鍧楅摼韜浠借よ瘉鍒╃敤鍘諱腑蹇冨寲銆佸垎甯冨紡鐨勭壒鐐規潵紜淇濈敤鎴風殑韜浠戒俊鎮瀹夊叏銆佸彲闈狅紝鍚屾椂淇濊瘉韜浠戒俊鎮鐨勯殣縐佹у拰淇濆瘑鎬с
⑸ 去中心化DID身份認證的技術解析
去中心化數字身份(Decentralized Identity,DID)是基於區塊鏈技術建立起來的一種數字身份系統。它可以保證身份數據真實可信,同時也能保護身份用戶相關的隱私,確保跟個人身份相關的數據歸屬於個人所有。很吻合2021年11月開始實施的《中國個人信息保護法》,有沒有?
V1.0 傳統的身份認證 :用戶在每個網站上都重復注冊賬號,使用賬號+密碼的方式登錄,每個網站各自掌握著用戶的身份信息,如圖1(a)所示。
缺點 :重復注冊賬號,用戶會時常不記得賬號密碼;而且多個網站都有用戶的信息,也導致信息泄露。
V2.0 以單點登錄代表的身份認證 :用戶在一個網站上注冊的賬號,可以授權登錄到其他網站,比如在支付寶、微信、facebook、google等網站注冊號賬號後,授權登錄到其他網站,如圖1(b)所示。
缺點 :用戶的信息都掌握在幾個大網站內,會有」店大欺客「的成分存在,也容易出現信息泄露的情況,如facebook的用戶信息泄露問題。
V3.0 去中心化的身份認證 :用戶保管自己的身份信息,在必要的時候,以最小化的方式出示給各個網站確認即可,如圖1(c)所示。
算缺點么? 需要區塊鏈作為底層技術支撐,將區塊鏈作為一個可信任的第三方,來保證身份信息的完整性和正確性。
DID 文檔是對DID的詳細說明,是一對一的關系,可以看作由兩部分組成:DID metadata,以及 DID public key,如圖4(a),其中public key是關鍵,用於數字簽名或加密操作等。
一般 DID 由用戶自己保存,而將DID document 保存在區塊鏈上(可以DID為 key 做索引),以保證DID document 的正確性。
當用戶在區塊鏈上注冊 DID 時,可以根據智能合約生成DID 及相關的document,並由智能合約負責 DID在鏈上的讀取和更新等。
DID的認證過程涉及四方的交互:證書頒發者,證書持有者(可以擁有一個app保存多張證書憑據VC),驗證方,以及DID注冊系統(比如區塊鏈)。
證書頒發者是一個權威機構,比如某大學、公安機關等;持有者會保存權威機構發布的憑據VC(比如從大學拿到的畢業證,公安機關拿到的身份證等);驗證者會對這些憑據的表示(VP),並結合區塊鏈上的信息進行驗證。
DID認證的前提是權威機構、VC持有者、驗證者都已經在區塊鏈上注冊了各自的ID。
VC(Verifiable Credential) : 可驗證的憑據,這相當於大學頒發的畢業證,或是公安機構頒發的身份證等。其格式如圖4(b)所示,包括:
(1) VC metadata,比如發行人、發行日期、聲明(claim)的類型等;
(2) claim: 是一個或者多個關於主體的說明,比如身份證憑據的聲明包含:姓名、性別、出生日期、民族、住址等;
(3) proof證明:保存了頒發者的數字簽名,用於驗證該VC的正確性及來源等。
有些實現方案中使用app或是錢包存儲VC,持有者自己保管,也可以將VC存在區塊鏈中,作為私密數據保存。
VP(Verifiable Presentation) : 可驗證的憑據表示,或者說是可驗證的憑據的展示方式,有些場景下持有者不便於將VC直接給驗證者看,或者一次驗證中會涉及多個VC,所以就將一個或多個VC包裝成VP,其格式如圖4(c):
(1) VP元數據,包含了版本等信息;
(2) VC列表,要對外展示的VC的內容,如果是選擇性披露或者隱私保護的情形,就需要對原始的VC做一些變動並加上對變動的證明。
(3) proof證明,主要就是持有者對本VP的簽名信息。
VC中的claim五花八門,可能是大學畢業證書、身份證、駕駛證、結婚證等,為了能正確地解析,就需要提前在區塊鏈中注冊其解析方式。
這種事情一般由Authority來完成,按照業務場景分類,定義不同類型數據結構的Claim結構,並注冊在區塊鏈上,以保證全網通用。
以身份證為例,其完整的VC憑據包括姓名、性別、出生日期、民族、住址、照片等。在買火車票時,可能只需要姓名和身份證號碼;上學報名時,可能僅需要姓名、出生日期等;確認少數民族身份時,必須要明確民族信息。所以很多場景下,不是全部選項都需要,可能只需要其中的一兩項,可以僅僅披露必須項。
但如何確認披露的這幾項是正確的,沒有被修改過呢?這里用到了經典的Merkle Tree結構,如圖5所示。比如在只需要披露生日的場景下,就可以借用」生日「的兄弟選項」民族「,以其到樹根的路徑<Hash1, Hash34> + MerkleRoot 來驗證」生日「的正確性。
比如證書到期了,頒發者需要撤銷之前發布的憑據VC,這里用到了密碼學中的累加器。
在頒發者發布VC時,會給每個VC都設置一個大素數,並保存所有大素數的RSA累加結果;當需要撤銷某個VC時,就先用該VC的大素數去除Accumulator,並更新Accumulator,之後驗證時,用 VC 對應的大素數去除 Issuer 公開的 Accumulator,如果能整除,則表明是VC是有效的(未被撤銷)。
基於Ethereum,比較知名的DID是uPort。我也曾關注過Hyperledger的DID項目 Hyperledger Indy,但其底層採用了自己的一套區塊鏈架構,而非Hyperledger Fabric,這估計是基於Fabric 的DID實現的場景較少的原因。微眾銀行FISCO BCOS基於自己的BCOS架構,實現了自己的一套 WeIdentity .
該章節只簡單講述了DID是什麼,並粗略介紹了其使用原理,還有很多細節未能一一道來,如需要更多細節請移步:
在本文中介紹了DID的單一實現方式,今天看到另外一篇博客 Demystifying Digital Identity (2/2) 或參考其翻譯 揭開數字身份的神秘面紗2/2 ,建議通過一組鏈接文檔來實現擴展的DID,以信息圖譜的方式來組織文檔,如主鏈、關聯的多個賬戶、分類的基本信息profile、關聯的外部服務或資源等,如下圖。這樣的DID,就可以對接任何應用程序、服務或用戶,而且是一個全球可用的、分布式的、可審查的DID。