成功讓數位皮夾變成 MyData 的資料保險箱

未簽名
已簽名資訊

豆泥的以太坊地址:mashbean.eth

狀態:未簽名

文章的身分證字號

0xf69eecaebf688e2280b16f8bad3908804fc853544d4f5543a914c114e226b2a8

這是什麼?

已簽名表示這篇文章已建立獨特的身分證字號(內容雜湊,contentHash)並且由豆泥簽署認證,簽署是採用以太坊區塊鏈的豆泥專用地址(signer.mashbean.eth)。只要內容一經修改,就會需要重新驗證換發新的身分證字號。但豆泥不是每天都在公所上班,所以偶爾會慢一點認證。

閱讀偏好
有備而來的 MyData 資料保險箱文件清單

成功讓數位皮夾變成 MyData 的資料保險箱

我把這段過程稱為「高接梨戰術」。

寫這篇心得前,我本來有點擔心會得罪還現役的同事、朋友、廠商,但想了一下,仔細看了文章應該沒什麼問題,都是公開資料,當我是一名積極公民的公共程式實驗看看就好,同時請感受我開發成功的喜悅。這篇文章會微長,請多多擔待 :)。

利申:我從數發部離職後,就沒有參與任何數發部有關的標案與職務了。雖然職級低沒有旋轉門問題,不過換個角度來全力輸出,真的輕鬆很多。

回到正題。

我讓數位皮夾搖身一變,變成資料保險箱,接下來都可以儲存由 MyData 下載下來的政府文件,包含身分證資料、戶籍謄本、地籍資料、健保投保資料、納稅證明等等。MyData 有多少政府文件,就可以抓多少資料下來,現在可以下載的有 143 個。

這實在是潛力無窮,因應時事來舉幾個例子:

家裡的王子公主要升學學區國中,需要證明設籍時間,只要出示戶籍謄本的部分資料,就可以確定他是在出生時,戶籍就登記在學區內(好卷……)。

某雙北年輕朋友被租房壓力壓得喘不過氣來,需要申請租屋補助,不過他需要證明自己不夠富有,因此需要所得資料,只要透過 MyData 下載個人所得資料,數位皮夾就可以驗證所得資格,而不透露每一筆資料。

需要出示警政署的良民證?透過 MyData 存到數位皮夾,馬上就可以出示,甚至在國外也能用。這個對想要移民、申請永居、工作簽證,甚至只是申請快速通關的人來說,會非常實用。我自己就辦過一次。

這麼多資料現在都可以安全的存在數位皮夾,而非散落在電腦、手機裡面。

你可能會好奇,啊不就是把數位文件放到 App 裡面嗎?這有多難,為何台灣政府之前沒有這種服務?我當初在數位發展部參與數位憑證皮夾規劃時,也有一樣的疑問。不過走完這一遭,我大概可以理解單純要提供一個「官方的」資料保險箱有多難。

兩年前,當時有在採購案裡規劃數位皮夾與 MyData 串連鉤稽的項目,不知道後來做到什麼程度。不過現在又過了一年半,官方皮夾是沒這個功能的,可能又又又碰上了什麼跨部門整合的難度了吧。

先來描述 MyData 碰到的問題,這源自於 MyData 先天服務架構設計上的限制。

首先,MyData 雖然叫做「我的資料」,但一開始的目標並不是讓公民可以下載自己的資料的,而是「由公民同意,讓不同機關與公司,可以拿到你的資料」。

比如說要借貸,某銀行需要你的年收入所得,你可以登入 MyData 同意後,讓內政部丟資料給銀行端,中間不用透過你,你只需要事先同意即可。其實是非常方便的。

所以我覺得 MyData 應該改名叫 YourData,因為我的資料不在我的資料,不經我手,不溶我口(好老)。好處是方便、而且文件不容易外洩(痾,前提是戶政資料庫或銀行資料庫沒外洩……)。

在數位政策上,我推測這就是典型的家父長式思維,為了便民,同時也為防止民眾資料被惡用,所以不讓民眾碰到資料。之前有投篇小論文〈從編戶齊民到避秦:數位時代的亞洲身分自主權發展〉到陽明交大的期刊討論這件事,這樣的做法其實不只是台灣這樣做,東亞許多國家也有。

這時候有一個有趣的反例故事。兩年前金曲歌后許景淳要去美國表演,但是在海關碰壁,因為新護照沒有出入境紀錄,旅行社與經紀人一時沒辦法解決問題。結果他很厲害的使用 MyData 下載到出入境證明,成功入境。

這件事有被數發部拿出來做官方宣傳案例,成為政績的一部分。而且當時也引起了民眾在社群平台「曬」出入境紀錄的風潮。

還好海關有認可這個出入境紀錄,不然許景淳就沒辦法進入美國了,歌迷會很失望。我自己前陣子因為要辦學貸,也從 MyData 下載資料作為證明,銀行端也有認這些資料。

鋪陳了這麼久,為何 MyData 不能整合數位皮夾呢?

因為這些「文件」,無論是 PDF 檔還是 ZIP 檔,都沒有電子簽章。無論是提供資料的機關,還是 MyData 平台的數發部,都沒有簽章,即使這些機關都有自己的政府憑證(GCA)。

所以這些文件其實很容易變造,挪做惡用。那你可能會問,啊發文件的機關用憑證輸入密碼簽個章就好啦,就像是臨櫃申辦文件一樣要蓋個章,這麼簡單為何不能?

公部門想的跟你不一樣。發文件的主管機關可能會說,因為可能會被亂用,我就不敢簽,而且有沒有預算,來讓我可以發標案開發簽章?數發部會說,我只是營運 MyData,總不能叫我背書吧?(以上只是我的內心小劇場推測)

由於這個服務一開始並不是要讓你持有文件的,因此沒有考慮到民眾自己如果持有這些文件的話,會有什麼場景需求。

比如入出國日期證明書的申請頁面,MyData 的網站很明確的說「本個人文件取得後僅供個人保存與參考」,並沒有說可以利用、出示、證明喔。其他許多文件頁面也都有這個警語。

如果真的是這樣,許景淳就沒辦法入境美國了;繼續推論,如果真的這樣規定,數發部就不應該發新聞稿,這樣豈不是自己打自己的臉?

因此我們可以這樣猜測,「本個人文件取得後僅供個人保存與參考」是防禦性用詞,出事的話可以拿出來防禦,不過平常是默許民眾自行使用這些文件的,這個默許甚至不是默許,因為數發部新聞稿也鼓勵這樣做了。(詳見新聞稿:金曲歌后許景淳讚揚 MyData 平臺,透過數位服務解決緊急出入境問題)

基於默許使用的前提,我們就可以來實驗數位皮夾整合 MyData 啦!我做了兩件事。

一個是我把各種可以下載下來的 MyData 文件做了資料保險箱專區,能做資安保護的部分當然都有做到;二來是深度整合了 MyData、行動自然人憑證以及數位皮夾。

MyData 可以在數位皮夾的 App 裡面開啟,因為他是 PWA(相容手機瀏覽介面),輸入資料後透過行動自然人憑證 App 登入,然後跳轉回數位皮夾,就可以把資料下載下來了。不用自己從下載項目資料夾重新搬,同時保證了資料完整性(用 SHA256 做 hash)。

數位皮夾在這個案例裡是自主開發的「有備而來」數位皮夾,不是官方「數位憑證皮夾」。在我心中理想大同的世界是,數位皮夾、行動自然人憑證、MyData 終有一天,可以整合在一起(國際上有很多好案例,比如烏克蘭的 Diia)。

第二件創舉更激進,我透過 MyData 發行了「數位身分證」。

我把「戶政國民身分證資料」抓下來(當然只有民眾本人可以抓),然後把 PDF 的欄位清理出來,發行成數位皮夾卡片(可驗證憑證,VC)。這樣就可以打造無盡的驗證場景,比如「是否台灣人」、「是否成年」、「是否本人」。

發行者目前是皮夾本人自己的 DID 簽章,再加上行動自然人憑證的本人簽章,用這種方式發行了數位身分證。

你問簽發者為何不是內政部?這只是一個民間實驗,當然不會有內政部。內政部不知道要過多久才會考慮這種解法,他們有 New eID 事件的 PTSD 吧。

這邊產生了一種多層次信任上的空缺,因為是自發,所以沒有在信任清單上面,這是官方數位皮夾體系的空缺;二是「戶政國民身分證資料」的 PDF 檔案並沒有被內政部簽章,這是電子簽章上面的空缺;三是 MyData 雖然有網頁憑證簽章(應該是台網公司承接),但沒有主動背書這份文件從接收到發出的完整性。

但凡只要有一方簽章,我就可以使用零知識證明魔法,來完成「數位身分證」的官方有效性,譬如 zkPDF、zkTLS 等技術,詳情可以在我的開發報告裡面看到。

所以目前數位身分證只能用自簽憑證來背書,不過行動自然人憑證效力其實很強喔,因為電子簽章法修法後,行憑的「數位簽章」等於本人意思之表示,是有法定效力的。目前的數位身分證只能做到這邊。

此外,並非所有經過 MyData 的文件都沒有數位簽章,2022 年考試院就官宣,透過 MyData 下載的國家考試及格電子證書有考試院的簽章,所以這其實是做得到的。可惜沒有支援更之前的,不然我就可以拿我的醫師國考合格證書來玩玩看。

因此瓶頸點在發行機關身上,不在數發部的 MyData 身上。

我把上面的縫合怪打法,稱為「高接梨戰術」,在既有 MyData 的數位服務之上,設計出符合個人數位自主權的新一代數位基礎設施——具有資料保險箱功能的數位皮夾。

當然這個數位皮夾是百分百相容於官方的數位憑證皮夾的,原始碼也公開。

不過我也可以想像官方皮夾要這樣推動有多困難,一來是公婆很多,二來是平行單位的合作是需要大量的人情世故+預算的,三來是即使是部內的單位也不是預設的合作好夥伴,許多事情需要疏通。

另一個是皮夾的發行或驗證的建置費用,各部門與其廠商報價不一,從五個零到七個零所在多有。我即使到現在還是很難理解為何價差會這麼大,當然有很多不足為外人道的考量吧。

不過本文沒有要處理資訊採購的博弈與各單位之間的穀倉效應,那是我下週去牛津以後才要仔細推敲的問題。

回到 MyData 資料保險箱,有了各種政府文件後,其實就可以實作各種應用場景了。

我在「請出示皮夾」中,又多開了「戶籍是否在某某縣市」、「所得是否在門檻內」、「指定日期是否有勞保」等驗證情境。

真的是潛力無限,而且更重要的是,這種路徑個資洩漏與授權的邊界小非常非常多,這其實才是個資法裡面「最小揭露原則」的具體示範。

今天就分享到這邊,所有的思路、設計、原始碼一樣都開源開放,歡迎一起努力討論,共同貢獻!

閱讀完整開發報告:整合 MyData:用數位皮夾實踐資料保險箱

← 回文章列表