Jimmy's blog

TCL, DOCSIS 測試筆記

DOCSIS Certificate

| Comments

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

Comments