DOCSIS 是從 DOCSIS 1.1 (BPI+) 開始使用 certificate 來驗證 CM 和 CMTS 之間金鑰交換的訊息, 在 DOCSIS 1.0 (BPI), CM 送出 AUTH-REQ 時沒有憑證, 直接丟出 RSA public key, BPI+ 加強了這一階段的驗證, CM 要送出 AUTH-INFO (CA certificate), AUTH-REQ (CM certificate), 讓 CMTS 驗證 CM 來源是否正確
BPI+ Certificate 架構
BPI+ certificate 共有 3 層
- DOCSIS Root CA certificate
- Manufacturer CA (distributed model) or CableLabs Mfg CA (centralized model) certificates
- CM Device certificate
Cablelabs 已經不再簽發 Manufacturer CA certificate, 只剩下 centralized model, 另外 Root 除了簽發 Mfg CA certificate 以外, 也用來簽發 Code Verification Certificate (Legacy-PKI) 和 CableLabs DOCSIS CVC CA Certificate (New-PKI)
Certificate 格式
X.509 v3 Field | Description |
---|---|
tbsCertificate.version | Indicates the certificate version. Always set to v3 (value is 2) |
tbsCertificate.serialNumber | Unique integer assigned by the issuing CA to the certificate |
tbsCertificate.signature | OID and optional parameters defining the algorithm used to sign the certificate. This field contains the same algorithm identifier as the signatureAlgorithm field below |
tbsCertificate.issuer | Distinguished Name of the CA that issued the certificate |
Certificate.validity | Defines when the certificate becomes active and when it expires |
tbsCertificate.subject | Distinguished Name identifying the entity whose public key is certified in the subjectPublicKeyInfo field |
tbsCertificate.subjectPublicKeyInfo | Field contains the public key material (public key and parameters) and the identifier of the algorithm with which the key is used |
tbsCertificate.issuerUniqueID | Optional field to allow reuse of issuer names over time |
tbsCertificate.subjectUnique ID | Optional field to allow reuse of subject names over time |
tbsCertificate.extensions | Extension data |
SignatureAlgorithm | OID and optional parameters defining the algorithm used to sign the certificate. This field contains the same algorithm identifier as the signature field in tbsCertificate |
signatureValue | Digital signature computed over the ASN.1 DER-encoded tbsCertificate |
- signature
-
DOCSIS 3.0 以前的 certificates 用的都是 sha1WithRSAEncryption, DOCSIS 3.1 開始改成 sha256WithRSAEncryption
- validity
-
DOCSIS 3.0 以前使用 ASN.1 UTCTime 編碼, 時間範圍是 1950~2049, 3.1 之後時間會超過 2050, 超過的部份改用 GeneralizedTime 編碼
- issuer, subject
-
這裡的文字編碼一律先採用 PrintableString set, 若出現其他字元 DOCSIS 3.0 用 T.61/TeletexString, DOCSIS 3.1 用 UTF8String
Legacy-PKI
DOCSIS Root Certificate
countryName=US
organizationName=Data Over Cable Service Interface Specifications
organizationalUnitName=Cable Modems
commonName=DOCSIS Cable Modem Root Certificate Authority
CableLabs Mfg CA Certificate
countryName=US
organizationName=CableLabs, Inc.
organizationalUnitName=DOCSIS
organizationalUnitName=D CA00001
commonName=CableLabs, Inc. Cable Modem Root Certificate
Manufacturer CA Certificate
countryName=<Country of Manufacturer>
[stateOrProvinceName=<state/province>]
[localityName=<City>]
organizationName=<Company Name>
organizationalUnitName=DOCSIS
[organizationalUnitName=<Manufacturing Location>]
commonName=<Company Name> [<Serial Identifier>] Cable Modem Root Certificate Authority [<SerialIdentifier>]
CM Device Certificate
countryName=<Country of Manufacturer>
organizationName=<Company Name>
organizationalUnitName=<manufacturing location>
[commonName=<Serial Number>]
commonName=<MAC Address>
Code Verification Certificate
countryName=<country of subject company>
organizationName=<subject code-signing agent>
organizationalUnitName=DOCSIS
commonName=Code Verification Certificate
用 []
標示的欄位可以省略, 用<>
標示的欄位要填入相對應的值, countryName 是 2 碼的 country code, CM MAC 格式範例為 00:55:66:11:22:33
DOCSIS 3.0 之後的 CM certificate 已經不再使用 commonName=Serial Number
New-PKI
CableLabs Root CA Certificate
c=US
o=CableLabs
ou=Root CA01
cn=CableLabs Root Certification Authority
CableLabs Device CACertificate
c=US
o=CableLabs
ou=Device CA01
cn=CableLabs Device Certification Authority
CM Device Certificate
c=<Country of Manufacturer>
o=<Company Name>
ou=<Manufacturing Location>
cn=<MAC Address>
CableLabs DOCSIS CVC CA Certificate
c=US
o=CableLabs
ou=CVC CA01
cn=CableLabs CVC Certification Authority
Code Verification Certificate
c=<Country of Manufacturer>
o=<Company Name>
cn=Code Verification Certificate
DOCSIS 3.1 只有 Centralized Model, 沒有 Manufacturer CA certificate 了, CVC 的 chain 則是多了一層 CableLabs DOCSIS CVC CA
- subjectPublicKeyInfo
-
所有的 DOCSIS certificate 用的都是 rsaEncryption, 差別在於 key 的長度不同
- issuerUniqueID,subjectUniqueID
-
所有的 DOCSIS certificates 都沒用到這兩個欄位
extensions
以下只列出必須有的 extension
Legacy-PKI
DOCSIS Root CA Certificate
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:1
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
CableLabs Mfg CA Certificate
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
Manufacturer CA Certificates
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
Code Verification Certificate
X509v3 extensions:
X509v3 Extended Key Usage: critical
Code Signing
Manufacturer CA Certificates 也可以沒有這些 extensions
New-PKI
CableLabs Root CA Certificate
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
Calculated per Method 1
CableLabs Device CACertificate
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Subject Key Identifier:
Calculated per Method 1
X509v3 Authority Key Identifier:
Calculated per Method 1
CM Device Certificate
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Authority Key Identifier:
Calculated per Method 1
CableLabs DOCSIS CVC CA Certificate
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Subject Key Identifier:
Calculated per Method 1
X509v3 Authority Key Identifier:
Calculated per Method 1
Code Verification Certificate
X509v3 extensions:
X509v3 Extended Key Usage: critical
Code Signing
X509v3 Authority Key Identifier:
Calculated per Method 1
Authority, Subject Key Identifier 計算方法 RFC5280
參考資料
- CM-SP-BPI+-C01-081104
- CM-SP-SECv3.0-I15-130808
- CM-SP-SECv3.1-I05-151210