Skip to content

Latest commit

 

History

History
63 lines (54 loc) · 4.84 KB

File metadata and controls

63 lines (54 loc) · 4.84 KB

Threat Model Analysis for smallstep/certificates

  • Threat: CA Private Key Compromise
    • Description: An attacker gains unauthorized access to the root or intermediate CA's private key. This allows the attacker to sign arbitrary certificates, effectively impersonating any entity within the PKI and completely undermining trust.
    • Impact: Complete compromise of the PKI. All certificates issued by the compromised CA (or its subordinates) are untrustworthy. The attacker can perform MITM attacks using fraudulent certificates, issue certificates for phishing, and bypass any security controls relying on certificate-based authentication.
    • Affected Component: CA private key storage (HSM, KMS, file system). The step-ca server itself.
    • Risk Severity: Critical
    • Mitigation Strategies:
      • Use a Hardware Security Module (HSM) or a robust Key Management System (KMS).
      • Implement strict multi-factor authentication and access control.
      • Regularly audit access logs and key usage.
      • Consider an offline root CA with an online intermediate CA.
      • Implement key ceremony procedures.
      • Physically secure the HSM or server.
  • Threat: Unauthorized Certificate Issuance
    • Description: An attacker, without compromising the CA private key, gains unauthorized access to issue certificates. This could be due to weak authentication, misconfigured provisioners, or a vulnerability, allowing them to create certificates for unauthorized entities.
    • Impact: The attacker can issue certificates for unauthorized services or users, leading to MITM attacks using these certificates, phishing, or bypassing access controls that rely on valid certificates. The PKI is partially compromised.
    • Affected Component: step-ca server API, provisioner configuration, authentication mechanisms.
    • Risk Severity: High
    • Mitigation Strategies:
      • Implement strong authentication (e.g., multi-factor authentication) for the step-ca API and CLI.
      • Use the principle of least privilege for provisioners.
      • Regularly audit provisioner configurations and access logs.
      • Implement rate limiting on certificate issuance.
      • Use short-lived certificates and automate renewal.
      • Monitor Certificate Transparency (CT) logs.
  • Threat: Revocation Information Tampering (OCSP/CRL)
    • Description: An attacker intercepts and modifies OCSP responses or CRLs to make a revoked certificate appear valid. This allows the continued use of a compromised certificate.
    • Impact: A revoked certificate continues to be accepted, allowing an attacker to impersonate a legitimate service or user even after their certificate should have been invalidated. This undermines the revocation mechanism.
    • Affected Component: OCSP responder, CRL distribution point, client-side OCSP/CRL validation.
    • Risk Severity: High
    • Mitigation Strategies:
      • Ensure OCSP responses and CRLs are digitally signed, and clients validate these signatures.
      • Use OCSP stapling.
      • Configure short lifetimes for OCSP responses and CRLs.
      • Use a highly available and reliable infrastructure for OCSP and CRL distribution.
      • Implement monitoring and alerting for OCSP/CRL availability.
      • Protect the OCSP responder and CRL distribution point from DDoS.
  • Threat: Provisioner Hijacking
    • Description: An attacker gains control of a provisioner, allowing them to issue certificates with elevated privileges or bypass restrictions. This enables the creation of unauthorized certificates.
    • Impact: The attacker can issue unauthorized certificates, potentially with broader scope or longer lifetimes. This leads to MITM attacks using these certificates, impersonation, and unauthorized access.
    • Affected Component: Provisioner configuration and authentication, step-ca server's provisioner management.
    • Risk Severity: High
    • Mitigation Strategies:
      • Use strong, unique credentials for each provisioner.
      • Implement multi-factor authentication for provisioner access.
      • Regularly rotate provisioner credentials.
      • Securely store provisioner secrets.
      • Monitor provisioner activity.
      • Use the principle of least privilege.
      • Secure the system hosting the provisioner.