Generating Test DOCSIS CVC




熟悉 OpenSSL 的操作後,製作 Test CVC 就很簡單了, 只要照著 spec 把值填進去就可以了
先紀錄最簡單的方法, 使用 DOCSIS 提供的 test root cert/key 製作 test cvc

第一步

CableLabs下載TEST DOCSIS 3.0 or Earlier Certificate Steps (Legacy PKI)

第二步

解壓縮, 按照 TEST_DOCSIS_MFR_CVC_STEPS.txt 的步驟,改一下 config, 打打指令就完成了

第零步

根據 CM-SP-SECv3.0-I13-100611.pdf 的 III.1.7 Code Verification Certificate Format, 編寫 config file, 製作 CVC

OpenSSL 操作筆記 - 產生 CSR


有了 private key 之後就可以作 CSR 了, req 指令就是拿來產生 CSR 的, 使用時需要搭配 config file 一起使用, 即便給了滿滿的參數
req 還是會去找 distinguished_name 這個設定, config file 的筆記在這裡

參數簡介

以下列出幾個製作 CSR 常用的參數

OpenSSL 操作筆記 - OpenSSL.cnf (req section)


功用

使用openssl ca,req,x509 指令時需要下很多參數,為了方便可以把一些值寫在 config file 裡, 另外還有一些比較複雜的內容
以及無法用指令修改的參數必須寫在 config file 裡

檔案路徑

若下指令時沒有指定路徑.openssl 會去抓環境變數OPENSSL_CONFSSLEAY_CONF,若沒有這些變數
就用 compile 時設定的路徑, 通常是 $OPENSSL_DIR/openssl.cnf
OPENSSL_DIR 可用 version 指令查詢
openssl version -d 
我手邊的電腦測出來結果是
Ubuntu: OPENSSLDIR: "/usr/lib/ssl"
CentOS: OPENSSLDIR: "/etc/pki/tls"
Windows:OPENSSLDIR: "/usr/local/ssl/openssl.cnf"

OpenSSL 操作筆記 - 產生 RSA 金鑰

Certificate 的目的就是用來發布 public key, 在 public key 上加入各種屬性讓人知道這張 certificate 的作用是什麼, 再加上一段 CA 的簽名,增加這隻 public key 的可靠性
在 DOCSIS 1.0 的時候, 跑 bpi 時, CM 直接丟 public key 與頭端溝通, DOCSIS 1.1 之後 bpi 變成 bpi+ , 這時候 CM 丟的就是 certificate 了, CMTS 可以用它已知的 CA 去檢查 CM certificate 是否為正確的
作 certificate 第一步就是製作 key, 目前我用到的都是用 RSA

openssl 產生 RSA key 有多種方式,有專門產生 key 的, 和順便產生 key 的

OpenSSL 操作筆記 - 檔案格式轉換

格式簡介

Certificate 和 key 可以存成多種格式, 常見的有 DER , PEM , PFX



  • DER


  • 將 certificate 或 key 用 DER ASN.1 編碼的原始格式, certificate 就是依照X.509的方式編碼, key 則是又能分為PKCS#1 和PKCS#8



  • PEM


  • 把 DER 格式的 certificate 或 key 使用 base64-encoded 編碼後在頭尾補上資料標明檔案類型

    Generating KDC Certificate for PacketCable

    測試 PacketCable Secure provisioning 時需要用到 KDC, 如果是用真實的 certificate , 那大家都一樣,不會有問題,但一般測試時都是用 test certificate, 這時就可能遇到不一致的問題了, 經過種種不可考得原因, 手邊出現了2組 KDC certificate, 造成兩邊測試結果不同,觀察後發現一邊用的是 Cablelabs 提供的 test certificate, 另一邊是不知道誰按照 spec 一層層做出來的 certificate, 為了讓以後測試一致, 把 KDC certificate 用 Cablelabs 提供的 test certificate 重新 sign 過就可以了