The impact of Apple's ATS compliance on web servers
This article was last updated on: July 24, 2024 am
I Preface
📓 Description:
This article was completed collaboratively after my colleague Huang Wentao and I collected data and experimented during the Taiping Insurance period.
This article was written in 2017, and as of this day the specifications, software versions or configuration items may change. If you want to apply, please do a perfect test before applying.
1.1 ATS Requirements
-
The negotiated version of Transport Layer Security (TLS) must be TLS 1.2;
-
The connection must use AES-128 or AES-256 symmetric ciphers, and the negotiated key exchange protocol must be one of the following:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
-
The Leaf server certificate must be signed with one of the following types of keys
- Rivest-Shamir-Adleman (RSA) keys with a length of at least 2048 bits
- Elliptic-Curve Cryptography (ECC) keys with a length of at least 256 bits
- In addition, the leaf server certificate hashing algorithm must be Secure Hash Algorithm 2 (SHA-2) with a digest length of at least 256 (i.e., SHA-256 or greater) (sometimes called a “thumbprint”).
2. Inspection items
2.1 Apache checks
- OpenSSL version: Requires greater than 1.0.1 (OpenSSL supports TLS 1.2 from 1.0.1 onwards.)
- The key exchange protocol used by current cipher suites.
- View the protocols supported by the current cipher suite. Ensure that the supported protocols are required in ATS above.
- Whether the current key length/fingerprint algorithm satisfies:
- If it is an RSA key, it must be at least 2048 bits;
- If it is an ECC key, it must be at least 256 bits.
- The fingerprint secure hash algorithm is SHA-2
- Apache version:
- Apache 2.2.23 or2.4.0 All of the above versions are supported.
2.2 NGINX check items
- OpenSSL version: Requires greater than 1.0.1
- The key exchange protocol used by current cipher suites.
- View the protocols supported by the current cipher suite. Ensure that the supported protocols are required in ATS above.
- Whether the current key length/fingerprint algorithm satisfies:
- If it is an RSA key, it must be at least 2048 bits;
- If it is an ECC key, it must be at least 256 bits.
- The fingerprint secure hash algorithm is SHA-2
- NGINX version: Recommended1.1.13The above version.
2.3 WebLogic checks
- JDK version: Requires JDK 7 or above.
3. Modify configuration items
📓 Description:
In addition to the version that does not meet the requirements of the above check items, the algorithm of the certificate, and the length of the key need to meet the requirements, there are other configuration items to configure.
3.1 Apache configuration items
Examples: Apache version 2.2.23 (TBD), OpenSSL version 1.0.1e. (Maximum compatibility configuration)
1 |
|
3.2 NGINX configuration items
Examples: Nginx version 1.11.0, OpenSSL version 1.0.1e (maximum compatibility configuration)
1 |
|
3.3 WebLogic configuration items
You need to download the java 7 policyfile on Oracle’s official website
After extraction, replaceJAVA_HOME/jre/lib/security
lowerlocal_policy.jar
、US_export_policy.jar
File.
IV. Attention
- ❗ Upgrading OpenSSL may affect sftp, ssh and other SSL-related protocols, so be cautious.
- Considering the vulnerability of old SSL versions and compatibility, it is recommended to disable SSL V2 and below protocols. (The latest recommendation is that SSL v3 is also disabled)