分散式數字身份DID簡介(五)DID的應用
在上一篇文章中,我們給出了一種零知識證明的方法,解決使用者身份屬性的隱私問題,下面我們再來談談基於DID技術,我們都能在什麼場景去應用。
01
無密碼安全登入
這個使用場景大家應該都很熟悉了,就類似於微信掃碼登入,當我們要註冊或者登入一個網站時,不需要再填寫使用者名稱、密碼、郵箱之類的資訊,只需要用手機裡的數字身份APP掃描登入頁的二維碼,然後在APP中彈出掃碼後的資訊,選擇確認登入即可。使用DID的APP與傳統的微信掃碼登入不同之處就在於DID中使用者的身份資訊是使用者自己掌握的,而微信掃碼登入的身份資訊是騰訊掌握的,如果哪一天騰訊封禁了你的微信賬號,那麼你將無法登入所有之前使用微信登入的網站。而DID不會有這個問題,因為沒有人能夠封禁你的DID。使用DID實現無密碼登入的流程如下:
使用者開啟要登入的網站,網站伺服器生成一個包含隨機分配的ID、網站DID、網站伺服器URL的二維碼。
使用者解鎖手機中的DID APP,並掃描網站上的二維碼。
APP獲得二維碼中的ID和伺服器提交URL,生成登入請求,並使用網站DID去區塊鏈查詢DID檔案,獲得網站伺服器的公鑰,用公鑰加密請求資料,傳送到網站伺服器。
網站伺服器用私鑰解密登入請求,並在區塊鏈中查詢DID對應的DID檔案,從中獲得公鑰,用公鑰驗證簽名,確保DID為對應的使用者。
網站伺服器驗證透過,重新整理登入頁面為已登入狀態。
從整個流程中我們可以看到,伺服器並不知道使用者的密碼,而且也無法獲得除使用者的DID和DID檔案以外的任何資訊,從而保證了使用者隱私資料的安全。從此再也不用擔心XX網站使用者資訊洩露或者密碼被駭客撞庫,登入了其他網站盜取有用資訊的情況發生。
02
身份認證
在大量的涉及價值的網路中,尤其是金融產品的網路,都要求做好KYC和AML。尤其是KYC,需要獲得使用者的一些身份資訊,而每註冊一個金融網站就需要認證一次身份資訊十分繁複,使用DID進行身份認證可以簡化這個流程。以某網際網路金融APP為例,如果一個新使用者想在上面做投資,那麼需要提供手機驗證碼、身份證照片驗證、人臉識別驗證、錄製影片等手續。而如果該使用者又去另一個網際網路金融的APP裡面,又得再次進行相關的驗證,非常的麻煩。而如果基於DID,可以將身份認證的手續大為簡化。當然要進行身份認證的前提是:公安機關、大學等身份資訊、證書頒發機構已經將VC生成,併發到了使用者手中。使用者將VC儲存在自己的雲空間或者自己的手機中。
在使用者透過無密碼登入APP後,進行實名認證的過程如下:
使用者登入到網站或者APP或者商家點選認證按鈕。
伺服器根據業務需求,生成需要認證的資訊的請求,並將請求以二維碼或者其他方式傳送給使用者DID的APP。
DID APP收到認證請求後,查詢本DID是否有滿足要求的VC,是否有對應的欄位等,如果滿足要求,顯示認證的內容,並請求使用者透過指紋或者密碼解鎖私鑰進行簽名,以生成VP。
使用者在確認資訊無誤後,解鎖私鑰,生成VP,並將VP以二維碼或者直接回傳商家伺服器的形式,傳送到商家伺服器。
商家伺服器收到VP後,驗證VP簽名無誤,滿足驗證的要求,顯示驗證透過。商家伺服器將VP儲存,並關聯使用者DID。
除了金融場景要求的KYC之外,前面我們也舉例過的公司入職時要驗證學歷、酒店入住的時候要驗證身份、買菸酒時要驗證年齡大於18歲,在購買景區門票時驗證學生身份享受學生折扣等。
03
電子簽名
在傳統的電子簽名方案中,使用者需要預製一個U盾,該U盾中含有分配給該使用者的私鑰還有給該使用者頒發的證書,每次簽名需要插入U盾,安裝外掛,才能正常使用。而基於U盾的電子簽名方案具有以下幾個問題:
1.需要很長的時間來準備U盾(製作證書),所以不能立刻申請,立刻使用。
2.U盾必須隨身攜帶,而使用者一般只有隨身帶手機的習慣,沒有隨身帶U盾的習慣。
3.簽名方在首 次簽名後可以對原檔案進行修改,然後重新簽名,仍然驗證透過的。
基於數字身份DID的電子簽名方案可以很好的解決前面提到的三個問題。其使用流程如下:
使用者透過自己的手機建立好DID後,先向可信發證方發起請求,獲得VC,並將VC儲存在使用者端。該VC就相當於傳統PKI體系的證書檔案。
使用者在審閱檔案確認沒問題後,計算檔案Hash,將檔案Hash和其他摘要資訊透過二維碼或者其他方式傳送到DID APP中。
DID APP請求使用者解鎖私鑰,並用私鑰對檔案雜湊進行簽名,並同時將:DID、檔案Hash、簽名值上鍊。
PC端檢索區塊鏈,獲得上一步驟上鍊的DID、簽名值等資訊,驗證透過,將簽名結果展示在檔案中。
以上步驟中,因為VC的生成和下載都是軟體實現,所以不需要長時間等待U盾製作;而且私鑰透過加密儲存到手機中,不用單獨再隨身帶個U盾;簽名結果直接上鍊,防止篡改,預防簽名方多次簽名同一個檔案多個版本的情況。
04
個人隱私保護
這個我在前面兩篇文章,使用者身份屬性的選擇性披露和零知識證明中已經詳細講到了,使用者在亮證的時候只披露驗證方需要的資訊,而不會把整個證件的所有資訊暴露,從而實現了個人隱私保護的目的。
另外還有進一步的一種叫PDC(個人資料中心)的方案,個人資料都加密儲存在個人的資料中心中並與個人的DID關聯,每個人對自己的資料負責,當需要獲取使用者的某些隱私資料時,需要該DID的授權才能解密訪問。這屬於一個比較新,而且還沒有真正應用起來的方案,細節就不再贅述。
05
物聯網標識
前面提到的幾個應用場景都是針對人的身份,實際上IOT也可以與DID進行緊密結合,我們給每個IOT裝置都分配其獨一無二的IDD,基於物聯網+區塊鏈+DID構建:商品溯源、車聯網、智慧製造、智慧城市等應用場景。
以製造業中的製造機器為例,每個機器都有一個DID,該DID是由機器的製造商生成並賦予每臺機器的,當機器運轉時會產生大量的生產資料,該機器會將資料簽名,將非敏感生產資料、簽名結果和DID上鍊。機器的製造商可以根據鏈上資料得知機器的執行情況,便於更好的售後保養服務。當企業需要貸款時,銀行可以根據區塊鏈上的生產資料,並結合機器製造商的背書,判斷企業的生產經營情況,評估貸款風險。
我們再以高價值商品的物聯網防偽溯源為例,當每個商品被製造出來時,商家就為其IOT裝置生產私鑰並建立唯 一的DID。因為私鑰無法複製匯出,所以只有在區塊鏈上登記了DID的商品才是正 品。而且商品的DID可以對映對應的非同質化通證,以數字化的形式表現商品的流轉過程。
06
總結
DID技術是一個具有廣泛應用場景的技術,尤其在關於居民身份資訊的電子政務領域具有明顯的優勢,但是該技術需要公安部門之類的背書,目前還沒有真正應用起來的場景。但是在不久的將來,隨著個人隱私資料的保護立法和人民群眾隱私保護意識的加強,DID必然會大放異彩。除了人的身份外,隨著物聯網技術,車聯網技術,尤其是新興的AIoT技術的發展,物品的身份標識也越來越重要,並以物聯網標識為基礎可以擴充出大量的應用場景。
版權宣告:本文為CSDN博主「studyzy」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:
https://blog.csdn.net/studyzy/article/details/115266932
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012206/viewspace-2998295/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式數字身份DID簡介(一)基本概念分散式
- BSN DID(數字身份服務)簡介、角色、結構、功能和特性
- 分散式技術的基礎應用:數字貨幣和身份認證分散式
- 1364 - Field did doesnt have a default value
- Hyperledger 身份社群完成了 DID: Indy 方法的開發,使其邁向更廣闊的網路
- implicit declaration of item ‘write’; did him mean ‘fwrite’?
- Error waiting for a debug connection: ProcessException: adb did not report forwarded portErrorAIExceptionForward
- error: pathspec ‘myupstream‘ did not match any file(s) known to gitErrorGit
- PropertyReferenceException: No property courseId found for type CoursePic! Did you mean ‘courseid‘?Exception
- TXC分散式事務簡介分散式
- 國家資訊中心與公安部第一研究所簽署分散式數字身份研究應用合作協議分散式協議
- 深耕DID,INTO錢包拿到進入Web3的鑰匙Web
- The connection to the server 10.10.0.2:6443 was refused - did you specify the right host or port?Server
- 數學簡史:現代數學的五大應用
- Redis應用(二) --分散式鎖以及壓測介紹Redis分散式
- git和TortoiseGit pull和push報錯:git did not exit cleanlyGit
- webpack 5 報錯 entry “mian“ not found did you spescify the correct option?Web
- TypeError: Cannot read private member xxx from an object whose class did not declare itErrorObject
- mssql sqlserver updatetext關鍵字應用簡介說明SQLServer
- [譯]自主權身份簡介
- 區塊鏈與DID的結合能帶來什麼好處?區塊鏈
- 分散式跟蹤系統zipkin簡介分散式
- 分散式事務(七)之Seata簡介分散式
- lms框架分散式事務使用簡介框架分散式
- BSN實名DID服務釋出會在北京召開
- ORA-00445: background process "J000" did not start after 120 seconds
- 切換分支時:pathspec master did not match any file(s) known to gitASTGit
- 分散式應用服務的拆分分散式
- Redis 應用-分散式鎖Redis分散式
- JAVA 分散式 - 分散式介紹Java分散式
- git did not exit cleanly(exit code 128)報錯的部分原因及解決方法Git
- Installation did not succeed. The application could not be installed莫名其妙的問題解決APP
- vue注入元件時報錯:did you register the component correctly? For recursive components......Vue元件
- 構建dubbo分散式平臺-dubbo簡介分散式
- springcloud微服務分散式雲架構簡介SpringGCCloud微服務分散式架構
- 微服務分散式跟蹤工具Brave簡介微服務分散式
- Testcontainer桌面應用簡介AI
- [譯] 響應式 Web 應用(五)Web