Code Verification Certificate (CVC) 是 cable modem 作 secure software download (SSD) 時提供給 CM 驗證 image 用的憑證, 當 manufacturer 要出新的 software 時, 會用 private key 簽名, 並把含有相對應 public key 的 certificate (也就是 CVC) 丟給 CM 驗證, CM 先檢查 CVC, 確認 CVC 正確後就能用 CVC 裡面的 public key 檢查 software 的簽名是否正確, 利用這種方式來驗證 software 的可靠性與正確性
通常, 這個 private key 都會放在一個需要重重關卡才能進入的地方, 所以要測試 CM SSD 功能時會用 Test CVC, 製作 Test CVC 的步驟很簡單, 只要裝好 OpenSSL 就可以開始製作, CableLabs 有詳細的步驟說明
到 Cablelabs 下載 Test Certificates
Legacy PKI (DOCSIS 3.0 以前的版本)
1. 製作 csr_config.txt
1 2 3 4 5 6 7 8 9 10 11 12 |
|
O 的值要和 CM 的 manufacturer’s organizationName 一致
2. 用以下指令產生 CSR 和 private key
1
|
|
如果是要製作實際在用的 CVC, 作到這一步就可以了, 把 private key 保管好, csr 送給 CableLabs, 簽約, 繳費 CableLabs 就會處理接下來的事情, 若是要做 Test CVC 就繼續往下做
3. 製作 extension 欄位的設定檔 ext.txt
1
|
|
4.用 Test DOCSIS Root Key 簽發憑證
1 2 3 |
|
然後就能拿 TEST_DOCSIS_MFR_CVC.crt 和 TEST_DOCSIS_MFR_CVC_PRIVATEKEY.pem 去 sign image 了
New PKI (DOCSIS 3.1)
製作 DOCSIS 3.1 的 CVC 方法和 3.0 的差不多, 設定檔和 CA 換一下就可以了
1. 製作 csr_config.txt
1 2 3 4 5 6 7 8 9 10 11 12 |
|
3.1 的演算法變成 SHA-256
2. 產生 CSR 和 private key
1
|
|
3.1 CVC RSA key length 變為 2048 bits
3. 製作 extension 欄位的設定檔 ext.txt
1 2 |
|
3.1 CVC 多了 authorityKeyIdentifier 這個 extension, authorityKeyIdentifier 的值會是 CVC CA 的 subjectKeyIdentifier1
4. 用 Test DOCSIS CVC CA Key 簽發憑證
1 2 3 |
|
3.1 CVC 的 chain 多了一張 CVC CA, 不再是直接由 Root 簽發, 製作 signed image 時除了 CVC 和 private key 之外也要把 CVC CA 包進去