Private Key Protection
TL;DR: Private keys are the foundation of PKI security—their compromise allows impersonation, decryption of traffic, and complete trust breakdown. Protection requires defense in depth: HSMs or secure key storage, encryption at rest, strict access controls, comprehensive auditing, and key rotation policies.
Overview
In asymmetric cryptography, the private key is the secret that must never be exposed. While certificates and public keys are distributed freely, the private key must be protected with extreme rigor. A compromised private key means an attacker can impersonate the legitimate key owner, decrypt previously encrypted traffic (without forward secrecy), and sign malicious content as if it came from a trusted source.
Private key protection is not a one-time implementation but an ongoing operational discipline. Keys must be protected during generation, storage, usage, backup, and destruction. The protection level must match the key's criticality: a CA root key requires maximum protection (offline HSM, multi-person access), while a short-lived service key may use cloud KMS with automated rotation.
Every major PKI breach—from DigiNotar to CodeSigning certificate compromises—ultimately traces to inadequate private key protection. Understanding the threat model, implementing appropriate controls, and maintaining operational discipline are non-negotiable for PKI security.
Related Pages: Ca Architecture, Hsm Integration, Certificate Lifecycle Management, Ca Compromise Scenarios
Key Concepts
The Private Key Threat Model
What Attackers Can Do With Private Keys
Server/Device Certificate Private Key:
- Impersonate the server or device
- Perform man-in-the-middle attacks
- Decrypt past TLS traffic (if no forward secrecy)
- Sign malicious content appearing to come from legitimate source
Code Signing Private Key:
- Sign malware appearing to come from legitimate software vendor
- Bypass application whitelisting controls
- Compromise software supply chain
- Damage reputation of legitimate vendor
CA Private Key (catastrophic):
- Issue trusted certificates for any identity
- Create rogue intermediate CAs
- Complete breakdown of trust hierarchy
- Potential for national-scale attacks (see DigiNotar case)
User Certificate Private Key:
- Impersonate user in authentication systems
- Access user's encrypted data
- Sign documents as the user
- Access corporate resources
Attack Vectors
Network-Based Exfiltration:
- Compromised server with remote access
- Malware with data exfiltration capability
- Network sniffing (if key transmitted unencrypted)
- API exploitation exposing key material
Physical Access:
- Stolen backup tapes or disks
- Decommissioned hardware not properly sanitized
- Insider threat with physical access
- Forensic recovery from disposed equipment
Software Vulnerabilities:
- Memory dumps exposing keys in RAM
- Log files containing key material
- Debug output exposing keys
- Heartbleed-style vulnerabilities leaking memory
Supply Chain:
- Compromised key generation libraries
- Backdoored random number generators
- Tampered HSMs or hardware
- Malicious certificate management software
Operational Failures:
- Keys stored in version control (GitHub, GitLab)
- Keys in configuration files or scripts
- Keys in email or chat systems
- Unencrypted backups
- Keys on shared file systems
Key Storage Security Levels
Different security requirements demand different protection levels:
Level 1: File System Storage (Lowest Security)
Characteristics:
- Private key stored as file on disk
- May or may not be encrypted
- Accessible to OS and running processes
- Protected by file system permissions
Appropriate Use Cases:
- Development and testing environments
- Non-critical internal services
- Short-lived certificates with frequent rotation
- Situations where business risk is minimal
Protection Measures:
- Encrypt private keys with strong passphrase (PKCS#8)
- Restrict file permissions (chmod 600)
- Store on encrypted volumes
- Keep keys separate from certificates
- Never commit to version control
Limitations:
- Key accessible to anyone with root/admin access
- Vulnerable to memory dumps and process inspection
- Vulnerable to backup theft if encryption key is weak
- No tamper resistance
Example:
# Generate encrypted private key
openssl genpkey -algorithm RSA -out private.key -aes256 -pass pass:SecurePassword
# Set restrictive permissions
chmod 600 private.key
chown app-user:app-group private.key
# Verify no world-readable permissions
ls -la private.key
# Should show: -rw------- 1 app-user app-group
Level 2: Operating System Keystores (Medium Security)
Characteristics:
- Keys stored in OS-managed secure storage
- Hardware-backed encryption (TPM, Secure Enclave)
- Access control integrated with OS authentication
- Better protection against file system access
Technologies:
- Windows: Certificate Store with CNG/CryptoAPI
- macOS: Keychain with Secure Enclave
- Linux: Kernel keyring, TPM integration
Appropriate Use Cases:
- Enterprise workstations
- Mobile devices
- Servers with TPM support
- Applications needing OS integration
Protection Measures:
- Require user or system authentication for key access
- Enable TPM/Secure Enclave backing where available
- Configure minimum access privileges
- Enable audit logging for key operations
Limitations:
- Still vulnerable to OS-level compromise
- Limited tamper resistance
- Key extractability varies by implementation
- Performance may be limited for high-volume operations
Level 3: Cloud KMS (Medium-High Security)
Characteristics:
- Keys managed by cloud provider
- Hardware-backed security (cloud HSMs)
- API-driven access with IAM controls
- Automatic key rotation capabilities
- Audit logging included
Providers:
- AWS: KMS, CloudHSM
- Azure: Key Vault, Managed HSM
- GCP: Cloud KMS, Cloud HSM
- HashiCorp: Vault Transit
Appropriate Use Cases:
- Cloud-native applications
- Kubernetes workloads
- High-scale certificate operations
- Organizations without HSM expertise
- Automated certificate rotation
Protection Measures:
- Use IAM policies to restrict key access
- Enable key usage logging and monitoring
- Implement key rotation policies
- Use separate keys for different environments
- Leverage automatic key versioning
Limitations:
- Dependency on cloud provider
- Potential regulatory concerns (data sovereignty)
- Network latency for key operations
- Cost can be significant at scale
- Key material typically exportable (varies by service)
Example (AWS KMS):
# Create KMS key
aws kms create-key --description "Application signing key"
# Encrypt data with KMS key
aws kms encrypt --key-id $KEY_ID --plaintext "sensitive data" --output text
# Decrypt data
aws kms decrypt --ciphertext-blob fileb://encrypted-data --output text
Level 4: Hardware Security Modules (Highest Security)
Characteristics:
- Dedicated cryptographic hardware
- FIPS 140-2 Level 3+ certification
- Tamper-resistant and tamper-evident
- Keys never extractable in plaintext
- Multi-person access controls
Use Cases:
- Certificate Authority operations
- Root and intermediate CA keys
- Code signing for critical software
- High-value transaction signing
- Regulated industries (finance, government)
- High-assurance PKI
Protection Measures:
- Physical security controls for HSM
- M-of-N key access (require multiple key holders)
- Comprehensive audit logging
- Secure backup with split knowledge
- Regular security audits
Limitations:
- High cost (hardware and operational)
- Complexity in setup and operation
- Requires specialized expertise
- Performance may limit throughput
- Vendor lock-in considerations
Key Advantages:
- Keys generated and used entirely within HSM
- Physical tamper detection
- FIPS validated security
- Regulatory compliance
- High assurance for critical operations
Example HSM Vendors:
- Thales (formerly Gemalto) Luna
- Entrust nShield
- Utimaco SecurityServer
- AWS CloudHSM (managed service)
- Azure Managed HSM
Practical Guidance
Key Generation Best Practices
On-Device Generation
Generate keys where they'll be used whenever possible:
Server Certificate:
# Generate key on server (never transmitted)
openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
# Generate CSR for CA signing
openssl req -new -key private.key -out certificate.csr
# CA signs CSR and returns certificate
# Private key never leaves server
Advantages:
- Key never transmitted over network
- No exposure during generation/transmission
- Complies with security best practices
HSM Generation:
# Generate key in HSM (never exported)
pkcs11-tool --module /usr/lib/libCryptoki2.so --login --keypairgen --key-type RSA:2048 --label "CA-Key"
# Key stored in HSM, only public key exported
Entropy and Randomness
Private keys must be generated with cryptographically secure random number generators (CSRNG).
Good Entropy Sources:
/dev/urandom(Linux)CryptGenRandom(Windows)- Hardware RNG (RDRAND, TPM)
- HSM internal RNG
Poor Entropy Sources (Never Use):
rand()function- Current timestamp
- Process ID
- Predictable seeds
Verify Entropy:
# Check available entropy (Linux)
cat /proc/sys/kernel/random/entropy_avail
# Should be >1000 for key generation
# Install haveged if entropy is low
apt-get install haveged
Encryption at Rest
PKCS#8 Encrypted Private Keys
# Generate unencrypted key
openssl genpkey -algorithm RSA -out private-unencrypted.key
# Convert to encrypted PKCS#8 format
openssl pkcs8 -topk8 -in private-unencrypted.key -out private-encrypted.key -v2 aes256
# Or generate directly as encrypted
openssl genpkey -algorithm RSA -out private.key -aes256
# Verify encryption
openssl pkey -in private-encrypted.key -text -noout
# Will prompt for password
Password Selection:
- Minimum 20 characters
- Mix of character types
- Use password manager or generated passwords
- Consider using key derivation function (KDF)
Key Encryption Key (KEK) Architecture
For automated systems requiring unattended key access:
Master Key (KEK) → Stored in HSM/KMS
↓ Encrypts
Data Encryption Keys → Stored on disk (encrypted)
↓ Encrypt
Private Keys → Stored on disk (double encrypted)
Implementation Pattern: 1. Generate master KEK in HSM/KMS 2. Generate data encryption keys (DEK) for each service 3. Encrypt DEKs with KEK, store encrypted DEKs 4. Encrypt private keys with DEKs 5. For key use: Decrypt DEK with KEK, decrypt private key with DEK, use key, clear from memory
Benefits:
- Private keys never unencrypted on disk
- KEK rotation doesn't require re-encrypting all keys
- Access control at KEK level
- Audit trail at KEK access points
Access Control
Principle of Least Privilege
Who Needs Access:
- CA Operations: Only authorized CA administrators
- Server Keys: Only the application process running the service
- Code Signing: Only authorized build systems/developers
- User Keys: Only the individual user
Access Control Matrix Example:
| Key Type | Generate | Use | View Cert | Backup | Revoke | Destroy |
|---|---|---|---|---|---|---|
| Root CA | Security Team | Security Team | All | Security Team | Security Team | Security Team |
| Intermediate CA | Security + PKI | PKI Team | All | Security Team | Security + PKI | Security Team |
| Server | App Team | Application | All | App + Security | App Team | App Team |
| Code Sign | Dev Lead | Build System | All | Security Team | Dev Lead | Dev Lead |
| User | User | User | User | Backup System | User/Admin | User/Admin |
Operating System Controls
Linux:
# Create dedicated key user
useradd -r -s /bin/false keyuser
# Set ownership and permissions
chown keyuser:keyuser /path/to/private.key
chmod 400 /path/to/private.key # Read-only for owner
# Configure service to run as keyuser
systemctl edit myservice.service
# Add: User=keyuser
# Use SELinux for additional isolation
chcon -t httpd_cert_t /path/to/private.key
Windows:
# Set ACL for private key
$acl = Get-Acl "C:\Keys\private.key"
$acl.SetAccessRuleProtection($true, $false) # Remove inheritance
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl","Allow")
$acl.SetAccessRule($rule)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators","FullControl","Allow")
$acl.SetAccessRule($rule)
Set-Acl "C:\Keys\private.key" $acl
API Access Control (Cloud KMS)
# AWS KMS Policy Example
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow application use",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/ApplicationRole"
},
"Action": [
"kms:Decrypt",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Sid": "Allow admin management",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/SecurityAdmin"
},
"Action": [
"kms:*"
],
"Resource": "*"
}
]
}
Monitoring and Auditing
What to Log
Key Operations:
- Key generation events
- Key usage (signing, decryption operations)
- Key access attempts (successful and failed)
- Key export or backup operations
- Key deletion or destruction
- Permission changes
Context Information:
- User/service identity
- Source IP address
- Timestamp
- Operation type
- Key identifier
- Success/failure status
- Request parameters
Detection Scenarios
Anomaly Detection:
- Unusual number of key operations
- Key access from unexpected IP addresses
- Key operations outside business hours
- Failed authentication attempts spike
- Key access by terminated users
Example Alert Rules:
ALERT: PrivateKeyAccessFromNewIP
IF key_access_event.ip NOT IN historical_ips
AND key_type = "ca" OR key_type = "code_signing"
THEN notify security_team
ALERT: ExcessiveKeyUsage
IF count(key_operations) > threshold_per_hour
AND operation_type = "decrypt"
THEN investigate_potential_compromise
ALERT: OffHoursCAKeyAccess
IF key_type = "root_ca" OR key_type = "intermediate_ca"
AND time NOT BETWEEN 09:00 AND 17:00 local_time
AND day NOT IN scheduled_maintenance
THEN notify security_team URGENT
Key Rotation
Rotation Strategies
Proactive Rotation (Preventive):
- Scheduled key replacement
- Reduces exposure window
- Limits damage if past compromise undiscovered
Reactive Rotation (Incident Response):
- Immediate replacement after compromise
- Emergency procedures required
- Requires certificate revocation
Rotation Frequency Guidelines:
| Key Type | Recommended Frequency | Rationale |
|---|---|---|
| Root CA | Never (20+ year lifetime) | Rotation requires trust redistribution |
| Intermediate CA | Annually | Limits compromise exposure |
| TLS Server (automated) | 30-90 days | Enables automation testing |
| TLS Server (manual) | Annually minimum | Balance security and operations |
| Code Signing | 1-2 years | Requires reissuing signed artifacts |
| User Authentication | 1-2 years | Balance security and user friction |
Rotation Implementation
Step-by-Step Process:
-
Generate New Key Pair
-
Obtain New Certificate
-
Deploy New Certificate (Parallel Run)
- Configure service to accept both old and new certificates
- Test new certificate in non-production
-
Monitor for issues
-
Cutover
- Make new certificate primary
- Keep old certificate active for grace period
-
Monitor client compatibility
-
Revoke Old Certificate
-
Destroy Old Key
Secure Key Destruction
When keys are no longer needed, they must be securely destroyed:
File System Keys
Linux:
# Multiple overwrite passes
shred -vfz -n 35 private.key
# Or use secure-delete package
srm -v private.key
# For SSDs (wear leveling makes overwrite unreliable)
# Use whole-disk encryption and securely erase encryption keys
Windows:
# Use sdelete (Sysinternals)
sdelete -p 7 C:\Keys\private.key
# Or cipher command
cipher /w:C:\Keys\
HSM Keys
# HSM-specific destruction (example with PKCS#11)
pkcs11-tool --module libCryptoki2.so --login --delete-object --type privkey --label "OldKey"
# Verify deletion
pkcs11-tool --module libCryptoki2.so --login --list-objects
Backup Media
- Physical destruction: Shredding, incineration, degaussing
- Cryptographic erasure: If backup encrypted, destroy encryption key
- Verification: Document destruction, obtain certificate of destruction
- Chain of custody: Track media from removal to destruction
Common Pitfalls
- Storing keys in version control: Committing private keys to Git, SVN, or other VCS
- Why it happens: Keys in config files; developers not understanding risk; convenience over security
- How to avoid: Use .gitignore for key patterns; pre-commit hooks to detect keys; education
-
How to fix: Rotate compromised keys immediately; revoke certificates; scan entire repository history; consider repository private
-
Unencrypted backups: Backing up private keys without encryption
- Why it happens: Backup tools default to unencrypted; lack of backup encryption strategy
- How to avoid: Encrypted backup volumes; separate key encryption; test backup restoration
-
How to fix: Re-encrypt existing backups; rotate keys if backup security unknown; implement encrypted backup process
-
Keys in configuration management: Private keys in Ansible, Puppet, Chef, Terraform state
- Why it happens: Convenience of centralized configuration; misunderstanding of CM security model
- How to avoid: Use secrets management (Vault, AWS Secrets Manager); separate key distribution mechanism
-
How to fix: Rotate exposed keys; implement proper secrets management; audit CM repositories
-
Inadequate key access controls: World-readable key files, shared admin accounts
- Why it happens: Misconfiguration; lack of understanding; troubleshooting shortcuts becoming permanent
- How to avoid: Automated permission checks; infrastructure as code with correct permissions; regular audits
-
How to fix: Immediately fix permissions; rotate keys if unauthorized access possible; review audit logs
-
Key material in logs or error messages: Debug output or stack traces containing key data
- Why it happens: Verbose logging during development; insufficient sanitization; error handling exposing sensitive data
- How to avoid: Sanitize all output; review logging configuration; test error conditions
- How to fix: Rotate exposed keys; scrub logs; fix logging code; alert on similar patterns
Security Considerations
Forward Secrecy
TLS connections using Diffie-Hellman key exchange provide forward secrecy—compromise of server private key doesn't allow decryption of past captured traffic.
Without Forward Secrecy (RSA key exchange):
- Attacker captures encrypted traffic
- Later compromises server private key
- Can decrypt all captured traffic
With Forward Secrecy (DHE/ECDHE):
- Ephemeral keys used for each session
- Session keys not derivable from server private key
- Past traffic remains secure even if private key compromised
Implementation:
# Prefer ECDHE cipher suites (nginx)
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
Memory Protection
Private keys in application memory are vulnerable to:
- Memory dumps
- Debugger attachment
- Process memory reading
- Swap/hibernation file exposure
Mitigations:
- Clear sensitive data from memory after use (memset to zero)
- Use secure memory allocation (mlock to prevent swapping)
- Disable core dumps for sensitive processes
- Enable address space layout randomization (ASLR)
- Use memory-hard functions for key derivation
Example (C):
#include <sys/mman.h>
#include <string.h>
// Allocate locked memory for private key
unsigned char *key = mmap(NULL, key_size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_LOCKED, -1, 0);
// Use key...
// Securely clear before freeing
memset(key, 0, key_size);
munmap(key, key_size);
Side-Channel Attacks
Private key operations may leak information through:
- Timing attacks: Key operations taking different time based on key bits
- Power analysis: Power consumption revealing key material
- EM radiation: Electromagnetic emissions during crypto operations
- Cache timing: CPU cache behavior leaking key information
Mitigations:
- Use constant-time cryptographic implementations
- Hardware with side-channel countermeasures (HSMs)
- Blinding techniques for RSA operations
- Regular security assessments
Real-World Examples
Case Study: GitHub RSA Key Exposure (2023)
GitHub accidentally exposed RSA SSH private host key in public repository. While not a certificate private key, this demonstrates how easily keys can be exposed.
Impact: Anyone could impersonate GitHub's servers in man-in-the-middle attacks.
Response: GitHub immediately rotated the host key, notified users, and improved secret scanning.
Key Takeaway: Even sophisticated organizations make mistakes. Automated detection and rapid rotation capabilities are essential.
Case Study: Code Signing Certificate Theft
Multiple incidents where developers' code signing certificates were stolen through malware and used to sign malicious software (Stuxnet, Flame malware).
Attack Vector: Compromised developer workstations with code signing keys stored in Windows Certificate Store.
Impact: Malware signed with legitimate certificates bypassed security controls and damaged vendor reputation.
Key Takeaway: High-value keys (especially code signing) require hardware protection. Developer workstations are high-risk environments for critical keys.
Case Study: DigiNotar CA Compromise (2011)
DigiNotar's CA private keys were compromised, allowing attackers to issue rogue certificates for Google, Mozilla, CIA, and others.
Root Cause: Inadequate key protection—CA keys not in HSM, weak access controls, compromised servers with key access.
Impact: Complete loss of trust, DigiNotar bankruptcy, browsers removed all DigiNotar certificates.
Key Takeaway: CA keys demand maximum protection. HSMs, offline operations, and multi-person controls are non-negotiable for CA operations.
Further Reading
Essential Resources
- NIST SP 800-57 - Key Management Recommendations - Comprehensive government guidance on key management
- FIPS 140-2 - Cryptographic Module Security Requirements - HSM security standards
- OWASP Key Management Cheat Sheet - Developer-focused guidance
Advanced Topics
- Hsm Integration - Hardware Security Module implementation
- Ca Architecture - CA key protection in architecture design
- Ca Compromise Scenarios - What happens when keys are compromised
- Certificate Lifecycle Management - Operational key management
References
Standards and Guidelines
Cryptographic Specifications
HSM and Hardware Security
Password-Based Key Derivation
Secret Sharing and Key Backup
Secure Deletion
Attack Research
Industry Standards
Compliance and Legal
Academic Research
Historical Incidents
Books and Comprehensive Guides
Change History
| Date | Version | Changes | Reason |
|---|---|---|---|
| 2025-11-09 | 1.0 | Initial creation | Critical security topic documentation |
Quality Checks:
- [x] All claims cited from authoritative sources
- [x] Cross-references validated
- [x] Practical guidance included
- [x] Examples are current and relevant
- [x] Security considerations addressed
-
NIST. "Recommendation for Key Management." NIST SP 800-57 Part 1 Rev. 5, May 2020. Nist - Detail ↩
-
NIST. "Security Requirements for Cryptographic Modules." FIPS 140-2, May 2001. Nist - Detail ↩
-
NIST. "Security Requirements for Cryptographic Modules." FIPS 140-3, March 2019. Nist - Detail ↩
-
NIST. "A Framework for Designing Cryptographic Key Management Systems." NIST SP 800-130, August 2013. Nist - Detail ↩
-
NIST. "Recommendation for the Entropy Sources Used for Random Bit Generation." NIST SP 800-90B, January 2018. Nist - Detail ↩
-
Moriarty, K., et al. "PKCS #1: RSA Cryptography Specifications Version 2.2." RFC 8017, November 2016. Ietf - Rfc8017 ↩
-
NIST. "Digital Signature Standard (DSS)." FIPS 186-4, July 2013. Nist - Detail ↩
-
NIST. "Recommendations for Discrete Logarithm-based Cryptography: Elliptic Curve Domain Parameters." NIST SP 800-186, February 2023. Nist - Detail ↩
-
Trusted Computing Group. "TPM 2.0 Library Specification." 2019. Trustedcomputinggroup - Tpm Library Specification ↩
-
OASIS. "PKCS #11 Cryptographic Token Interface Base Specification Version 2.40." 2015. Oasis-open - Pkcs11 Base ↩
-
OASIS. "Key Management Interoperability Protocol Specification Version 2.1." January 2020. Oasis-open - Kmip Spec ↩
-
Percival, C., Josefsson, S. "The scrypt Password-Based Key Derivation Function." RFC 7914, August 2016. Ietf - Rfc7914 ↩
-
Biryukov, A., Dinu, D., Khovratovich, D. "Argon2 Memory-Hard Function for Password Hashing." RFC 9106, September 2021. Ietf - Rfc9106 ↩
-
Kaliski, B. "PKCS #5: Password-Based Cryptography Specification Version 2.1." RFC 8018, January 2017. Ietf - Rfc8018 ↩
-
Shamir, A. "How to Share a Secret." Communications of the ACM, Vol. 22, No. 11, pp. 612-613, November 1979. Acm - 10.1145 ↩
-
Feldman, P. "A Practical Scheme for Non-interactive Verifiable Secret Sharing." FOCS 1987. ↩
-
Pedersen, T.P. "Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing." CRYPTO 1991. ↩
-
NIST. "Guidelines for Media Sanitization." NIST SP 800-88 Revision 1, December 2014. Nist - Detail ↩
-
Gutmann, P. "Secure Deletion of Data from Magnetic and Solid-State Memory." USENIX Security Symposium, July 1996. ↩
-
Kocher, P., Jaffe, J., Jun, B. "Differential Power Analysis." CRYPTO 1999. ↩
-
Genkin, D., et al. "Get Your Hands Off My Laptop: Physical Side-Channel Key-Extraction Attacks on PCs." CHES 2014. ↩
-
Kocher, P., et al. "Spectre Attacks: Exploiting Speculative Execution." IEEE S&P 2019. ↩
-
Boneh, D., DeMillo, R.A., Lipton, R.J. "On the Importance of Checking Cryptographic Protocols for Faults." EUROCRYPT 1997. ↩
-
CA/Browser Forum. "Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates." Current version. Cabforum - Baseline Requirements Documents ↩
-
CPA Canada/AICPA. "WebTrust Principles and Criteria for Certification Authorities." Current version. Cpacanada ↩
-
ETSI. "General Policy Requirements for Trust Service Providers." ETSI EN 319 401, V2.3.1, 2021. Etsi - Etsi En ↩
-
European Parliament. "Regulation (EU) No 910/2014 on electronic identification and trust services (eIDAS)." July 2014. Europa - Txt ↩
-
PCI Security Standards Council. "Payment Card Industry (PCI) Data Security Standard." Version 4.0, March 2022. Pcisecuritystandards ↩
-
Heninger, N., et al. "Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices." USENIX Security 2012. ↩
-
Lenstra, A.K., Verheul, E.R. "Selecting Cryptographic Key Sizes." Journal of Cryptology, Vol. 14, pp. 255-293, 2001. ↩
-
Chen, L., et al. "Report on Post-Quantum Cryptography." NIST Internal Report 8105, April 2016. Nist - Detail ↩
-
Fox-IT. "DigiNotar Certificate Authority breach - Operation Black Tulip." September 2011. Fox-IT DigiNotar Report ↩
-
Comodo. "Comodo Fraud Incident Report." March 2011. ↩
-
Durumeric, Z., et al. "The Matter of Heartbleed." ACM IMC 2014. Acm - 10.1145 ↩
-
Schneier, B. "Applied Cryptography: Protocols, Algorithms, and Source Code in C." 2nd Edition, Wiley, 1996. ↩
-
Anderson, R. "Security Engineering: A Guide to Building Dependable Distributed Systems." 3rd Edition, Wiley, 2020. ↩
-
Ferguson, N., Schneier, B., Kohno, T. "Cryptography Engineering: Design Principles and Practical Applications." Wiley, 2010. ↩