2017年11月22日 星期三

以員工證別證或自然人憑證 (憑證晶片卡) 登入系統


PC上要裝卡片驗證軟體(跨平台網頁元件),軟體中含有一 Local Server (HTTP Server Listen 某個 port)。

Client(Browser)端做的事:
1. User 鍵入 pin code,將 pin code 交給 LocalServer 檢查。

2. pin code 正確時,LocalServer 再對憑證中要簽章的欄位 (ToBeSign(TBS),
    也對含憑證沒有的東西 (如卡片 ID, SessionID等) 以員工 private key 進行簽章。
簽章含
 (1).憑證
  a.憑證該有的
   序號
   CA
   到期日
   ...
  b.主體屬性(2.5.29.9)
   Group ID,
   Cert Type, (員工卡、委外卡、自然人憑證、...),
   員工代號
 (2) 其他
  a.卡號
  b.簽章時間
  c.Nonce (Session ID) 
3. Local Server 返回簽章後的資訊給登入頁。
4. 登入頁將步驟 2 的簽章內容傳給 AP Server 端。

AP Server端做的事:
1. 確認憑證是否為信任的 CA 所發
2. 拿憑證裡的員工 public key 驗簽章。
3. 檢查憑證序號是否在廢止清冊裡。
4. 檢查憑證效期。
5. 員工資訊自憑證取得。卡號、Nonce(SessionID)自簽章的其他Object取得(不在憑證內)。
6. 員工資訊存入 Session、登入成功導轉至功能頁面。


為了達到不同 Browser 可以驗 pin code 與簽章,現在的 solution 透過 Local Server (HTTP Server) 來實現。過去沒有用 Local Server 的 Solution 時,只能以 IE ActiveX 方式來做。所以早期的卡片驗證,限定只能在 IE 瀏覽器上執行。

Reference:
    HiPKI開發套件:https://publicca.hinet.net/HiPKI-01.htm
 自然人憑證晶片卡登入方式一樣。



沒有留言: