Skip to content

Commit b19c314

Browse files
committed
Update release notes / openapi.yaml
1 parent d141806 commit b19c314

File tree

4 files changed

+66
-12
lines changed

4 files changed

+66
-12
lines changed

Changelog.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,32 @@
44

55
_Compared to the latest 1.10 release._
66

7-
### Feature changes
87

9-
- ...
8+
### TLS updates for NCSC 2025 guidelines
9+
10+
All tests were updated to match the
11+
[2025-05 version of the NCSC TLS guidelines](https://www.ncsc.nl/documenten/publicaties/2025/juni/01/ict-beveiligingsrichtlijnen-voor-transport-layer-security-2025-05).
12+
Most significant changes:
13+
14+
- The requirements on TLS versions, TLS authentication, curves, hashes, key exchange algorithms, FFDHE groups,
15+
RSA key lengths, and bulk encryption algorithms were updated to match the new guidelines.
16+
- A test for RSA PKCS#1 v1.5 was added (only PSS padding is sufficient).
17+
- A test for Extended Master Secret (RFC7627) was added.
18+
- Client-initiated renegotiation is now acceptable, if limited to less than 10.
19+
- All checks on certificates apply only to the TODO TODO certificates.
20+
21+
### Other TLS updates
22+
23+
- Certificates that do not have OCSP enabled, which means stapling is not possible,
24+
[are now detected as such](https://github.com/internetstandards/Internet.nl/issues/1641).
25+
Several issues with OCSP stapling reliability were also resolved.
26+
- Issues were fixed where the cipher order failed to detect some bad scenarios,
27+
including some where servers preferred RSA over ECDHE, or CBC over POLY1305.
28+
- CCM_8 ciphers are now detected when enabled on a server.
29+
- OLD ciphers are no longer detected.
30+
- The cipher order test no longer separates between "the server cipher order preference is wrong"
31+
and "the server has no preference".
32+
1033

1134
### Significant internal changes
1235

@@ -18,7 +41,18 @@ _Compared to the latest 1.10 release._
1841

1942
### API changes
2043

21-
- ...
44+
This release has API version 2.7.0.
45+
46+
The changes noted above are reflected in the API as well, e.g. which ciphers
47+
are considered bad, which are listed in the API output, along with score impacts.
48+
Additionally, the API structure changes are:
49+
- OCSP stapling has a new status `not_in_cert`, for when a certificate does not have OCSP enabled,
50+
therefore stapling is neither required nor possible.
51+
- The cipher order status no longer returns `not_prescribed` or `not_seclevel` for new tests.
52+
The insufficient statuses are now `bad` for preferring phase out over good and/or sufficient;
53+
and `sufficient_above_good` for preferring sufficient over good.
54+
- `extended_master_secret_status` and `kex_rsa_pkcs` were added to the TLS details.
55+
- `client_reneg` in the TLS details was changed from a boolean to a new enum.
2256

2357
## 1.10.3
2458

docker/develop.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ DEBUG_LOG=True
2626
INTERNETNL_LOG_LEVEL=DEBUG
2727

2828
# reduce maximum test duration and time before retest can be performed
29-
INTERNETNL_CACHE_TTL=30
29+
INTERNETNL_CACHE_TTL=300
3030

3131
# allow localhost for healthchecks, the public domain for the app and it's subdomains for connection tests
3232
ALLOWED_HOSTS=127.0.0.1,::1,localhost,.internet.test,internet.test,host.docker.internal,host-gateway

interface/batch/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from django.conf import settings
44

55
BATCH_API_MAJOR_VERSION = "2"
6-
BATCH_API_MINOR_VERSION = "6"
6+
BATCH_API_MINOR_VERSION = "7"
77
BATCH_API_PATCH_VERSION = "0"
88
BATCH_API_FULL_VERSION = f"{BATCH_API_MAJOR_VERSION}" f".{BATCH_API_MINOR_VERSION}" f".{BATCH_API_PATCH_VERSION}"
99

interface/batch/openapi.yaml

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -628,12 +628,12 @@ components:
628628
enumClass: CipherOrderStatus
629629
description: |
630630
Cipher order preference of the server:
631-
* `bad` - The server does not enforce good and sufficient over weaker ciphers.
631+
* `bad` - The server does not enforce good+sufficient over phase out ciphers.
632632
* `good` - The server enforces his own preference in a correct order.
633633
* `not_prescribed` - The server enforces his own preference but
634-
the cipher order is not based on prescribed ordering.
634+
the cipher order is not based on prescribed ordering (deprecated).
635635
* `not_seclevel` - The server enforces his own preference but
636-
the configured order is not based on security level.
636+
the configured order is not based on security level (deprecated).
637637
* `na` - The server only supports GOOD ciphers; cipher order is
638638
not relevant.
639639
* `sufficient_above_good` - the server prefers sufficient ciphers over good.
@@ -653,6 +653,15 @@ components:
653653
maxItems: 3
654654
items:
655655
type: string
656+
extended_master_secret_status:
657+
type: string
658+
enumClass: TLSExtendedMasterSecretStatus
659+
description: |
660+
Server support for Extended Master Secret (RFC7627):
661+
* `supported` - EMS is supported.
662+
* `not_supported` - EMS is not supported.
663+
* `na_no_tls_1_2` - EMS is not applicable, because the server does not support TLS 1.2.
664+
* `unknown` - support could not be determined or test ran before this feature was added.
656665
protocols_bad:
657666
type: array
658667
description: List of BAD protocols.
@@ -673,10 +682,21 @@ components:
673682
If secure renegotiation is supported by the server. (TLS1.3
674683
offers only secure renegotiation)
675684
client_reneg:
676-
type: boolean
677-
description: >
678-
If client initiated renegotiation is supported by the server.
679-
(TLS1.3 does not support client renegotiation).
685+
type: string
686+
enumClass: TLSClientInitiatedRenegotiationStatus
687+
description: |
688+
Client-initiated renegotiation:
689+
* `not_allowed` - not allowed by server.
690+
* `allowed_with_low_limit` - allowed by server, but with a sufficiently low limit (<10).
691+
* `allowed_with_too_high_limit` - allowed by server, with a limit that is too high (>=10).
692+
kex_rsa_pkcs:
693+
type: string
694+
enumClass: KexRSAPKCSStatus
695+
description: |
696+
RSA PKCS#1 v1.5 support:
697+
* `good` - server does not support RSA PKCS#1 v1.5 padding.
698+
* `bad` - server supports RSA PKCS#1 v1.5 padding.
699+
* `unknown` - support could not be determined or test ran before this feature was added.
680700
kex_hash_func:
681701
type: string
682702
enumClass: KexHashFuncStatus

0 commit comments

Comments
 (0)