DOCSIS BPI 解密 - 解開 PDU




簡介

DOCSIS BPI 解密 - 取得 TEK中已經把 TEK 解出來,接下來只要使用對的的演算法就能解開加密的封包了。

DOCSIS BPI 解密 - 取得 TEK



簡介


DOCSIS 1.0 BPI 加密使用的是 DES,為了能解開封包內容必須先取得 TEK (raffic Encryption Key)。取得 TEK 是透過 BPKM (Baseline Privacy Key Management) Protocol。
BPKM 的過程中 CMTS 會使用 RSA 加密 Auth Key,CM 解開 Auth Key 後算出 KEK (Key Encryption Key),接著再用 KEK 解開 TEK,之後就能用 TEK 進行加密。

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 編碼後在頭尾補上資料標明檔案類型