資訊科普系列(11) — 自然人憑證

曹仲辰
MODA IT
Published in
Nov 3, 2023

在電子化政府推動方案中。將電子化政府電子認證體系架構分為 PKI與PMI,分別提供公鑰憑證(Public-Key Certificate)及屬性憑證(Attribute Certificate)服務,用來做為G2G、G2B、G2C之身分識別及資格確認之用。而在與自然人相關的PMI發展上,相關主管機關可以依權責分工設立屬性憑證管理中心(AA)及RA,簽發自然人主體相關的屬性憑證,其中將包括電子化的證照及證明書。

GPKI

政府機關公開金鑰基礎建設(Government Public Key Infrastructure, GPKI)是依電子化政府推動方案,為健全電子化政府基礎環境建設。

它是依照ITU-T X.509標準建置的階層式公開金鑰基礎建設,由政府憑證總管理中心(Government Root Certification Authority, GRCA),及各政府機關所設立的下屬憑證機構(Subordinate CA)所組成。

來源/https://grca.nat.gov.tw/index2.html

政府憑證總管理中心

總管理中心為 GRCA,負責

  1. 自簽憑證、自發憑證(Self-Issued Certificate)、交互憑證及下屬憑證機構憑證之簽發及管理。
  2. 訂定 GPKI 交互認證程序,簽發及管理 GPKI 第 1 層下屬憑證機構憑證、GPKI 外之其他憑證機構憑 證。。
  3. 將簽發之憑證及憑證機構廢止清冊公布於儲存庫。

下屬憑證機構主要負責簽發及管理用戶憑證。必要時依階層式公開金鑰基礎建設之建構方式簽發憑證予下屬憑證機構,下屬憑證機構不可直接與 GPKI 外之憑證機構進行交互認證。

註冊中心

  1. 註冊中心負責蒐集及驗證用戶 身分及相關資料之正確性。
  2. 總管理中心應自行擔任註冊中心角色,下屬憑證機構可另設立註冊中心。

自然人憑證

憑證管理中心機房位於內政部資訊中心

自然人憑證又稱「網路上的身分證」,憑藉著其所持有的內容,可以在線上進行安全又快速的個人身分辨識,進而在網際網路上更快捷地申辦 各項服務,免除傳統申辦方式所花費的時間和精力。```

自然人憑證係遵循 X.509 v3的標準格式,包含:基本欄位、擴充欄位 與 CA 簽章等三部份。

來源/https://ah.nccu.edu.tw/bitstream/140.119/113259/1/259.pdf

三大功能:

  1. 身分識別:基於公開金鑰基礎建設的非對稱加密技術,使用金鑰來確認身分。當使用者註冊自然人憑證時,會被要求提供個人身分證明文件和其他相關資訊,然後這些資訊將被用來製作金鑰,當中包含著公鑰及私鑰,也正因為公私鑰的應用與交互驗證,使相關應用服務可因此進行使用者的身分驗證。
  2. 簽章:自然人憑證可以在電子文檔上簽名,確保文件的完整性和不可否認性。當要做驗證簽章時應該使用公鑰,若是要製作簽章時則應使用私鑰。簽章文件使用雜湊演算法,將輸入訊息轉換為固定長度的訊息摘要,並且具有唯一性,以確保簽章的安全性。文件發送後,接收者可使用簽署者的公鑰來驗證簽名的有效性。自然人憑證簽章於電子文件簽署,除可有效地確保文件的完整性和不可否認性,還能夠提高簽署效率,減少繁瑣的手工簽署流程,並可確保安全性。
  3. 加解密:使用非對稱加密的原理來保護資料的機密性。自然人憑證有公私鑰,私鑰儲存於實體IC卡或行動裝置的安全區中,不論使用何種方式都無法取出私鑰,當您要做加密運算時應該使用公鑰,若是要做解密運算時則應使用私鑰。

通常憑證簽章/解密都是用同一組key,自然人憑證IC卡內存放「簽章用」及「加密用」兩個憑證。

HiPKILocalSignServer

以自然人憑證進行加密/簽章

安裝了HiCos之後,我們可以在http://127.0.0.1:61161/selfTest.htm看到相關資訊與IC卡資料。

「popupForm.htm」,這是在做簽章簽章的時候會跳出來的小視窗,裡面以純JavaScript開發而成的,裡面會監聽「message」事件(主要是POST)來判斷目前卡片的狀態。

事件的狀態有:

  • MakeSignature 簽章中
  • umakeSig 簽章中
  • GetUserCert 憑證讀取中
  • DecryptData 解密中
  • writecert 寫憑證中
  • CheckEnvir 資料讀取中
  • changeUserPINCode 密碼變更中
  • makeCsr 製作憑證請求檔中

HiCos主要有三隻執行檔,負責簽章加解密

  • 加密/解密 HiPKIDecrypt.exe(解密)
  • 簽章 HiPKISign.exe(簽章)、HiPKIWriteCert.exe(寫入簽章)

ListInfo.exe 會列出讀卡機與卡片相關資訊

範例 https://gist.github.com/peter279k/d2803696d657c84a76f3739611d92db4

新版跨平台ChtICToken.js

修正當GCA/XCA/MOEACA更新到第三代CA後,
可能發生讀取到IC卡裡面不同的憑證的問題

參考資料

https://ah.nccu.edu.tw/bitstream/140.119/113259/1/259.pdf

https://gpkiapi.nat.gov.tw/hisecure/index.do

--

--