PKCS#8 Private Key Header
Detects unencrypted PKCS#8 private-key armor. The generic BEGIN PRIVATE KEY marker is discovery-only; a DER algorithm prelude supports medium confidence, and near-header wrapped body data or an exact compact-key prelude reaches high.
- Type
- regex
- Engine
- universal
- Confidence
- high
- Confidence justification
- High confidence: structurally constrained pattern with corroborative keyword support reduces false positive rates significantly. Added context gating and exclusion rules improve precision and reduce incidental matches.
- Detection quality
- Verified
- Jurisdictions
- global
- Regulations
- Criminal Code Act 1995 (Cth)
- Frameworks
- CIS Controls, ISO 27001, NIST CSF, PCI-DSS, SOC 2
- Data categories
- credentials, security
- Scope
- specific
- Risk rating
- 8
- Platform compatibility
- Purview: Compatible, GCP DLP: Compatible, Macie: Compatible, Zscaler: Compatible, Palo Alto: Compatible, Netskope: Compatible
Pattern
-----BEGIN PRIVATE KEY-----
Corroborative evidence keywords
private key, secret key, key file, PEM, certificate, RSA, cryptographic, api key, api_key, apikey, access key, access token, auth token, authorization, bearer, conn str, connection string, connectionstring, cookie, credential (+38 more)
Proximity: 300 characters
Should match
-----BEGIN PRIVATE KEY-----— Low-tier probe - generic PKCS#8 armor header only-----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCaPO2QBzKYKwDi QQ==— Medium-tier probe - realistic first PKCS#8 DER armor line-----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCaPO2QBzKYKwDi k8qK+5bw7VyHxKzg8V+Pw3+QsewdCZi2ueNFTlIMOo0s2ZX/b1QLzu4lu08pMD1x ioxlDQbNb1tOxNoLnGBz1eLzKyraT6AMjuQhLCPHYJTq6Mv9e8GBQ0yljRZuUt04 pXObu8jeQB7Hq+h3gqXsrlEFxc4CIxjzj+WNWhG1XsOLztFPW71Y8lI3EbWp1ERs ALFXSqS3Wp67KJUQqspdXP+tNkgyd3Ch48Xu64zI0zP/t7LB9Qmty1eU2S/iPC/l 2bvvlwQwXDsjjTp5JzVjtxGNyYY6gWwud1A557OgC3bk++TtOdoBsdfYf9yZOLmi -----END PRIVATE KEY-----— High-tier probe - realistically long PKCS#8 body with footer beyond proximity-----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIG85OP50XkCl35ewCA8uIVxShBRJnyyYxGgT51XmyVA= -----END PRIVATE KEY-----— High-tier compact-key probe - one-line Ed25519 PKCS#8 body
Should not match
-----BEGIN PUBLIC KEY-----— Public key, not private-----BEGIN CERTIFICATE-----— Certificate, not private key-----BEGIN PRIVATE KEY----- QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA— Adversarial wrapped Base64 lacks a PKCS#8 DER prelude-----BEGIN PRIVATE KEY----- PLACEHOLDER -----END PRIVATE KEY-----— Placeholder body lacks DER structureDocumentation example: -----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCaPO2QBzKYKwDi k8qK+5bw7VyHxKzg8V+Pw3+QsewdCZi2ueNFTlIMOo0s2ZX/b1QLzu4lu08pMD1x -----END PRIVATE KEY-----— Documentation quoting realistic wrapped PKCS#8 data must not enforce-----BEGIN ENCRYPTED PRIVATE KEY-----— Sibling encrypted PKCS#8 container has a different armor label
Known false positives
- PEM-encoded certificates or public keys that use similar header formats Mitigation: The pattern specifically matches the private key header text, but verify the full PEM block contains actual key material.