...
- Considering the threats you plan to protect this data from (e.g., insider attack, external user), make sure you encrypt all sensitive data at rest and in transit in a manner that defends against these threats.
- Don't Don’t store sensitive data unnecessarily. Discard it as soon as possible. Data you don't have can't don’t have can’t be stolen.
- Ensure strong standard algorithms and strong keys are used, and proper key management is in place. Consider using FIPS 140 validated cryptographic modules.
- Ensure passwords are stored with an algorithm specifically designed for password protection, such as bcrypt, PBKDF2, or scrypt.
- Disable autocomplete on forms collecting sensitive data and disable caching for pages that contain sensitive data.
- Cryptography Storage Cheat Sheet
...
6.2 Providing Cryptographic Functionality
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
This article provides a simple model to follow when implementing solutions to protect data at rest.
6.3 Password Storage Cheat Sheet
- Do not limit the character set and set long max lengths for credentials
- Use a cryptographically strong credential-specific salt
- Impose infeasible verification on attacker
- Design password storage assuming eventual compromise
6.4 Transport Layer
- Introduction
- Transport Layer Protection Cheat Sheet Providing Transport Layer Protection with SSL/TLS
- Benefits
- Basic Requirements
- SSL vs. TLS
- When to Use a FIPS 140-2 Validated Cryptomodule
- Secure Server Design
- 2.5.1 Rule - Use TLS for All Login Pages and All Authenticated Pages
- Use TLS on Any Networks (External and Internal) Transmitting Sensitive Data
- Do Not Provide Non-TLS Pages for Secure Content
- Do Not Mix TLS and Non-TLS Content
- Use "Secure" Cookie Flag
- Keep Sensitive Data Out of the URL
- Prevent Caching of Sensitive Data
- Use HTTP Strict Transport Security
- Use Public Key Pinning
- Server Certificate
- Use Strong Keys & Protect Them
- Use a Certificate That Supports Required Domain Names
- Use Fully Qualified Names in Certificates
- Do Not Use Wildcard Certificates
- Do Not Use RFC 1918 Addresses in Certificates
- Use an Appropriate Certification Authority for the Application's User Base
- Always Provide All Needed Certificates
- Be aware of and have a plan for the SHA-1 deprecation plan
- Server Protocol and Cipher Configuration
- Test your overall TLS/SSL setup and your Certificate
- Client (Browser) Configuration
- Additional Controls
- Providing Transport Layer Protection for Back End and Other Connections
- Tools
Learn More:
- OWASP Cryptographic Storage Cheat Sheet
- OWASP Password Storage Cheat Sheet
- OWASP Transport Layer Protection Cheat Sheet
- OWASP Testing Guide: Chapter on SSL/TLS Testing
- CWE Entry 310 on Cryptographic Issues
- CWE Entry 312 onCleartextStorage of Sensitive Information
- CWE Entry 319 onCleartextTransmission of Sensitive Information
- CWE Entry 326 on Weak Encryption