想要發展數位經濟?請先搞定數位認證與簽章這些基礎建設 !

先處理數位認證與簽章的基礎建設,再談數位經濟

最近政府常常大談數位經濟,前瞻計畫裡面也談了不少數位經濟。但很可惜的是,在這些炫目的煙火之下,數位經濟的基礎建設 : 數位認證與簽章,卻是非常殘破不堪。

日前有機會接受《報導者》採訪,提到了 公文系統綁定自然人憑證 的問題,也與友人合寫一篇 < 從痛苦的線上報稅反思國家數位認證政策 > 。但限於篇幅,沒有機會細談技術細節,謹以此篇短文,拋磚引玉,希望諸位先進能共同檢討目前自然人憑證的技術問題,希望能在 2019 年自然人憑證與身分證合併之前,徹底解決自然人憑證跨平台的問題,也希望能共同規劃出未來 「數位國家‧創新經濟發展方案」(DIGI+) 中描述的「具公信力及開放性之網路身分識別中心」。

雙因子認證

首先要強調,該文初步的建議,不是要完全放棄自然人憑證卡(PKI 智慧卡,public key infrastruture smart card),該篇文章是先拿報稅來當例子,引起共鳴,但主要的目的是,檢討政府網站服務與公文系統委外發包時,把認證(authentication)和 PKI 智慧卡混用的狀況。

而文中所述「規劃出多種數位身分認證模式,將相關的資安風險攤開後,告知民眾、使其理解,並把選擇權交還給民眾,讓民眾可依自己的習慣及風險接受程度,選擇適當的認證機制」。 其中一條路便是開放各式雙因子認證(兩階段認證),在密碼、掛號信、電話語音、手機簡訊、USB Security Key、Time-based OTP Smart Card、PKI 智慧卡、生物特徵 … 等因子之中選取兩個當認證。

目前在台灣不需要自然人憑證卡作認證的例子已經有,報稅軟體的登入支援身份證字號+戶號+查詢碼(可臨櫃查調取得,或查詢稅額試算通知書),電子發票歸戶則支援手機號碼+驗證碼(可透過 email 取得)。

公文系統綁定自然人憑證是個極大的限制

台灣的公文系統綁定自然人憑證卡(PKI 智慧卡),先天就對行動載具的支援不良,除非外接讀卡機,否則就無法在手機或平板電腦上面簽核公文,加上跨平台的支援不完整,使得公務員怨聲載道。

雖然政府曾經於 102 年委託廠商開發了 跨平台公文製作模組 ,但沒有繼續推廣與維護。傳聞北市府也因為硬體卡片的負擔,曾經考慮自行架設整個公鑰基礎建設, 發行公務人員職務憑證。除了成本考量,北市資訊局李維斌局長也表示:

電子公文應該用職務憑證簽章,不應該綁定自然人憑證, 其概念類似於實體公文應該用職務章蓋章,不應該用個人私章。

硬體憑證與軟體憑證誰比較安全?

台灣的自然人憑證已經開始支援 行動自然人憑證 ,TWCA(臺灣網路認證公司)亦開始支援 TWID(投資人行動網) 行動憑證(軟體憑證)。如果,加密過的憑證可以下載到手機,實在看不出來有任何理由拒絕下載到 PC 端。

而且自然人憑證的 HiPKI Local Server 在本機傳輸資料時無加密,實在是有安全上的疑慮。比較起來,反而是利用雙因子認證後,下載加密後的數位憑證,整個過程比較安全。

問題出在自然人憑證卡自訂規格,跨平台又支援不良

中華電信所開發的自然憑證卡雖然號稱遵守國際標準,但是其實有用了幾個很特別的自訂指令,根據友人測錄的結果,一開始需要有四道特別的 APDU command ,之後才會進入標準的操作程序。

除了採用了特殊的自訂指令,中華電信的跨平台憑證元件使用一個罕見的方式,利用 HiPKI Local Server 在本機傳輸資料,來間接達成多瀏覽器的支援。更麻煩的是,雖然中華電信有這個跨平台憑證元件,政府的網站服務也不一定有支援,必須另外向相關網站的管理者要求採用跨平台憑證元件。

以 Mac 報稅為例,沒有專屬軟體,所以必須透過瀏覽器,而且得打開許多安全權限,才能使用 Java Applet 的軟體套件,但 Java Applet 是過時的,連原廠都不繼續支援的模式。

因為內政部與中華電信共同核發的自然人憑證卡跨平台的支援不良,不但影響發卡總量,也導致其他政府單位必需自立救濟另外找出新的認證方法,繞過自然人憑證卡。

比如,早期的 健康存摺(健保就醫紀錄) 只能從自然人憑證下載,後來終於 開放註冊過的健保卡下載, 而報稅軟體也支援了多種不需自然人憑證的方式登入,像是原本就有金融憑證,去年開始也開放健保卡報稅。

各國案例

理論上自然人憑證應該可以拿來作金融交易,簽署合約,但據聞 內政部不會出面舉證簽驗章的歷程與合法性 ,所以金融機構在網路交易上,只好另外去購置商用憑證來增加不可否認性。

瑞典的 BankID

反觀瑞典的 BankID ,一開始是銀行發展出來的,但現在可以通用於銀行,政府與公司,能夠處理認證與簽約(簽章),BankID 同時支援智慧卡憑證與軟體憑證,軟體憑證可以置入行動電話與各式平板裝置,也開始有 開源軟體的支援

愛沙尼亞的 eid

愛沙尼亞的 數位憑證(eid) 分成(1)ID-card 與 Digi-ID : 兩者皆是 PKI 智慧卡 ,(2)Mobile-ID : 內有憑證的 sim card,(3)Smart-ID : 置於手機內的軟體憑證,可利用 ID-Card 或 Mobile-ID 下載。其中 ID-Card,Digi-ID,Mobile-ID 的相關支援軟體 皆已開源

荷蘭的 digid.nl

荷蘭的狀況,引言自 gugod:「帳號管理都是這個 digid.nl,其他服務(比方說稅務)用 OAuth(Open Authorization,開放授權) 與 digit.nl 整合。 辦 digid.nl 帳號要先在戶政司登記居處地址。網站申辦後,會在登記地址收到實體信,內有 verification token,所以開帳號就要一個星期,但一個星期內沒做完就失敗。要從頭來。不過這一關過了之後就全部都是 OAuth,都沒有卡片。」

關於 OAuth

如果開放了各式多元的身份認證方式之後,要所有的網站服務都支援各式的認證會有困難,這時候 OAuth 機制就可以派上用場,一方面可以當作 Single Sign-On 的機制,一方面也可以作為授權 A 機關的資料給 B 機關資料的機制,比如說未來的罷免連署電子系統,就應該可以透過 OAuth 從中選會跟內政部做「經由使用者同意的戶籍認證」

相關回應

先前文章發表後,有網友回應:「PKI 智慧卡更安全,所以我們不應該用其他不安全的認證方式」。

事實上在身份認證(authentication)這個範圍,如果單獨只認 PKI 智慧卡,一樣不安全,硬體卡片仍然要搭配密碼(or PIN)才安全,這就回到了我們主張的雙因子認證。

比如說,大部分人的健保卡是沒有設定 PIN 的,所以健保卡應用於在報稅軟體的登入前,健保卡必須先去作網路服務註冊,在申報軟體登入時,採用健保卡+註冊密碼登入。

也有網友回應:「我用 iphone 報稅很順啊 ?」

因為 Web-based 的報稅系統支援身份證字號+戶號+查詢碼,所以可以登入後,取得相關的報稅資料。但是此法由於缺乏私鑰(憑證),將會無法簽章,如果用 OAuth 流程的話,後台系統是可以在用戶使用身分證戶號登入後,發一個 session key 下來作簽核用。

財政資訊中心的回應則是:「綜合所得稅網路報税除可使用自然人憑證申報外,也提供查詢碼、認證碼、 IDN 加戶號及金融憑證等非實體身分認證方式,在確保納稅義務人課稅資料安全原則下,提供多元身分認證管道,據統計使用者 95% 是滿意的;至於因使用自然人憑證之 Mac 用戶申報時須下載安装 JAVA 元件等操作費時問題,已請行政院 PDIS 協作小組協助,邀專家及 end user 討論,共同研議改進作法。未來除改進操作流程加強便利性外,亦將就認證身分證方式加強改善。您寶貴的建議,也將納入後續改善之參考。」

我們必須強調,這是整個國家的認證與簽章架構的問題,並不是單一報稅軟體的問題,所有的戶政、財稅、醫療、商業合約,都會遇到認證與簽章的問題。

呼籲

我們了解當初選擇硬體智慧卡的公鑰基礎建設有其時代背景,但懇請各界先進能夠理解認證架構可以跟 PKI 智慧卡分開。

我們也希望在討論整體架構的時候,政府內部能有人能夠長期的規劃與對口,而非國發會、內政部、經濟部互相推諉或轉給外包廠商回答,我們無法想像國家級的基礎建設竟然長期被綁定於單一廠商之下。

我們希望能開放各種雙因子認證(兩階段認證),數位憑證能夠同時納入智慧卡與軟體憑證,軟體憑證將易於置入個人電腦、行動電話與平板等各式裝置。如果確認那些雙因子認證是夠安全的,也應該開放利用雙因子認證後,能夠下載加密後的數位憑證,不該限制只能用硬體卡片下載。而且,相關基礎軟體必須以開放原始碼釋出,以利相關廠商繼續發展。

有了良好的認證機制與公鑰基礎建設,才有可能談到上層的數位經濟。

最後本文感謝無法具名的朋友,漫才達人 saul,g0v 高村長,ocf.tw pellaeon 等人的協助與建議。

延伸閱讀: 開放文化基金會與唐政委交流

這篇文章 想要發展數位經濟?請先搞定數位認證與簽章這些基礎建設 ! 最早出現於 INSIDE 硬塞的網路趨勢觀察