TWNICRPKI技術實作介紹

RPKI技術實作介紹(RPKI technical implementation details)

資源公鑰基礎建設(RPKI)運作系統由數個相互作用的軟體元件組成,以提供資源憑證服務。此系統包含三個高階軟體元件:

■ 憑證引擎(Certification Engines):
負擔RPKI憑證授權機構(Certification Authorities,CA)所需的憑證引擎。
■ 簽章引擎(Signing Engines):
使用硬體簽章模組(Hardware Signing Modules, HSM)去保護密鑰,並以RFC3779標準進行憑證簽署。
■ 儲存庫(Repositories):
透過rsync協定發布RPKI結果的儲存庫。

RPKI運作程序簡介(RPKI process in brief)

憑證引擎運行一個CA,並將簽名的結果發佈在一個存儲庫中。已簽名的結果反映了註冊表數據庫的當前狀態。憑證引擎是在Linux系統上託管的,並且可以在獨立Linux系統上運行的簽名引擎調用PKI加密,這些系統可選地連接到HSM。離線憑證引擎與一個CA進行會談,APNIC在線引擎與另一個會談。託管引擎不使用HSM支持的密鑰進行會員簽名服務,其簽名引擎提供功能鍵管理。憑證引擎使用獨立於註冊數據庫的離散數據庫在MySQL中維護狀態。訪問註冊表以及命令和控制功能是通過託管在kumera上的中介系統進行管理的。TWNIC維護一個離線root,也稱為信任錨(Trust Anchor,TA)CA,用來反應成員在線上CA持有憑證的資訊。根據會員在RPKI 服務管理系統中的請求,通過它們接收會員憑證和操作簽名。

RPKI實作技術(RPKI implementation technologies)

RPKI系統是用Perl編寫的,使用CPAN和其他函式庫。PKI函數通過使用OpenSSL實現,使用Rob Austein(ISC)編寫的修改,由OpenSSL通過1.0.0版本之後的主流程式碼發布。此外,還使用OpenSSL 引擎工具將PKCS.11 HSM合併到OpenSSL命令中,為OpenSSL簽名服務提供HSM備份密鑰。 系統組件之間的通信由Apache 2.2提供,使用REST / XML形式的查詢和回應。角色的邏輯分離通過將其實體分離到不同的主機而得到加強。
註:為防止災難性密鑰遺失,離線根CA使用在備用離線CA上實體備份的密鑰和備份token。這些可以連接到與RPKI不相關的其他HSM並與其通信,因此在重新啟動電源下仍可使用。 標準系統背景程序提供如rsync存儲庫發布的其他功能,並定期作業在引擎上運行,以便通過UNIX“cron”背景程序進行認證和簽名。 離線的信任錨CA需要手動干預,因為其HSM互動需要在安全機房中作於離線系統輸入PIN碼。它不能通過網路服務做遠端控制。 TWNIC在虛擬化,複製硬體上託管的MySQL資料庫以提供資料庫服務。使用不同的MySQL資料庫將RPKI資料從核心註冊表中分離出來。

RPKI產品(RPKI products)

■ 由TWNIC RPKI系統發布的PKI憑證符合RFC6487。
■ 由TWNIC RPKI系統生成的簽名對象符合RFC6488。
■ 存儲庫內容記錄在清單,符合RFC6486。

除了憑證,CRL和清單外,TWNIC還發布符合RFC6492的Route Origin Attestations(ROA)。 TWNIC不在TWNIC CA中生成ROA。成員託管的系統反映了成員設定特定來源AS 與前綴關係。 TWNIC自己的網路資源,也通過管理系統進行管理。 TWNIC CA作為註冊管理機構,將會員透過會員入口網站提出設定的請求動作是分開的。

儲存庫與發佈(Repository and publication)

公共儲存庫的存取基於rsync通訊協定,採用RFC5781定義的統一資源標識符(URI)。Rsync是由目前非正式定義的程式碼所實作。
TWNIC RPKI服務管理系統設定的ROA會存放在TWNIC CA的資料庫中,並每日定期透過rsync同步到儲存庫並加入APNIC的信任錨(Trust Anchor),讓使用者可以透過驗證工具驗證ROA設定

存儲庫驗證(Repository validation)

TWNIC的儲存庫目前使用RIPE開發的RPKI Validator驗證工具,提供web界面以及router查詢界面供驗證。
請參考TWNIC提供那些Validator服務?

TWNIC RPKI服務系統架構及各元件間的互動運作如下圖所示:

圖示說明:

(1) TWNIC CA與APNIC簽署CA憑證,在TWNIC建立一個可信任的憑證授權中心(Certification Authority,CA),APNIC會將屬於TWNIC的Certified Resource指定給TWNIC,並儲存在TWNIC CA的資料庫中。

(2) TWNIC PRKI服務管理系統會先與TWNIC資源管理系統溝通,取得會員的ID、IPv4、IPv6、ASN等資源,並與TWNIC CA資料進行比對,TWNIC資源持有者透過TWNIC PRKI服務管理系統檢視其資源憑證及管理(新增/修改/刪除)ROA,並傳到TWNIC CA server。

(3) TWNIC CA每日定期透過rsync同步到儲存庫並加入APNIC的信任錨(Trust Anchor),讓使用者可以透過驗證工具驗證ROA設定,並提供RPKI Validator驗證工具讓使用者及router進行驗證。