Commit Graph

5381 Commits

Author SHA1 Message Date
Dirk Wetter ea16c81e97 Fix badges, try 2
* comment in status badges (try)
* stars getting to work again
2026-06-09 09:57:21 +02:00
Dirk Wetter fe080150cf Merge pull request #3053 from testssl/drwetter-patch-1
Handle badges, remove 1 bracket
2026-06-09 09:45:10 +02:00
Dirk Wetter 1bf15f41e1 Handle badges 2026-06-09 09:42:50 +02:00
Dirk Wetter cfde1df489 Merge pull request #3050 from potato-20/add-modern-security-headers
Report additional modern security headers (INFO)
2026-06-09 09:22:54 +02:00
Dirk Wetter 8f588813c0 Merge pull request #3049 from potato-20/fix-mx-host-port-2986
Fix --mx host:port parsing and incorrect no-MX message (#2986)
2026-06-08 18:33:32 +02:00
Dirk Wetter 654dc18760 Merge pull request #3052 from testssl/mac_runner_update
Update runner to macos-26 (arm64 as before)
2026-06-08 17:08:16 +02:00
Dirk Wetter 3c5b733431 Update runneer to macos-26 (arm64 as before)
... as they were strange failures in the past.

Supported runners: https://docs.github.com/en/actions/reference/runners/github-hosted-runners#single-cpu-runners .
Details: https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md
2026-06-08 16:41:37 +02:00
potato-20 0a7aff701e Report additional modern security headers as INFO
Adds X-Permitted-Cross-Domain-Policies (already highlighted in emphasize_stuff_in_headers() but never reported), Origin-Agent-Cluster, Document-Policy, Clear-Site-Data, Reporting-Endpoints, Report-To and NEL to run_security_headers(), all presence-only/INFO, matching how COOP/COEP/CORP were added in #2619.
2026-06-06 16:27:55 +05:30
potato-20 1704bdfa79 Fix --mx host:port parsing and incorrect no-MX message (#2986)
When a port was appended to the domain (e.g. "--mx example.com:25"), the suffix was passed straight into the MX DNS lookup, so no MX records were found. Strip a trailing :port off the domain before the lookup and use it as the port to test. Also fix the no-MX message, which printed $1 (the run date) instead of the domain, plus a "records(s)" typo.
2026-06-06 15:48:17 +05:30
Dirk Wetter 7f63e73ec3 Merge pull request #3046 from SteveVaneeckhout/fix-permissions-policy-duplicate
Fix Permissions-Policy header listed twice in output
2026-05-30 17:47:56 +02:00
Steve 989870e07b Fix Permissions-Policy header listed twice in output
run_security_headers() listed "Permissions-Policy" twice in its
header_and_svrty checklist: once as OK (since 2020) and again as INFO
(accidentally added in 12036fb). The loop matched the same header on
both iterations, emitting two entries to JSON (headerResponse) and the
terminal output. Remove the duplicate INFO entry, keeping the intended
OK classification.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 12:18:05 +02:00
Dirk Wetter 316b1a8014 Merge pull request #3045 from testssl/add_fs_data_clientsimulation_json
Add fs data clientsimulation json
2026-05-29 16:07:24 +02:00
Dirk 209e76541e Using a compariable Linux distro in the firstplace for updating handshake would have been great ;-) 2026-05-29 15:20:17 +02:00
Dirk ec99148700 Fix html output runner 2026-05-29 13:00:58 +02:00
Dirk 1ee1a60a99 var name append_fileout is clearer 2026-05-29 10:53:28 +02:00
Dirk 566e1b1f65 Fix diff complaint raised by ./t/12_diff_opensslversions.t 2026-05-29 10:33:03 +02:00
Dirk cff2c0810c Add Linux, not Mac baseline ;-) 2026-05-28 20:41:00 +02:00
Dirk Wetter 01d58f5e9c update client simulation data 2026-05-28 19:07:28 +02:00
Dirk Wetter cf66ad61bd Add forward secrecy data to file output
This fixes #3040 .

Also this removes the debug lines within the if statement (bottom of run_client_simulation() ), probably
a historic leftover.
2026-05-28 19:03:39 +02:00
Dirk Wetter 9567e65a01 Merge pull request #3043 from testssl/issue_cmdline_warnings
Introduce early warning function
2026-05-28 13:31:27 +02:00
Dirk Wetter 75376d38bf Introduce early warning function
... which warns also via file output when not recommended command
line options are used.

This function named issue_cmdline_warnings() is being called in
lets roll after all fileout() functions has been initialized.
It needs to make use of fileout_insert_warning() though because
otherwise the JSON output is not correct.

Besides the previoulsy introduced warning when scanning IP addresses,
warnings of usage of '--fast' and '--ssl-native' will end up also
in a file now which gives ther tools using the machine readable
output to detect bad scan conditions.

Also warnings when scanning the most known IPv4 addresses
from Cloudflare, Google and Quad9, are avoided.
2026-05-28 10:37:16 +02:00
Dirk Wetter ca99b45f1f Merge pull request #3042 from testssl/grhza-3.3dev
Improve PR #3041
2026-05-27 18:16:42 +02:00
Dirk Wetter f8af511952 Improve PR #3041
* move message when scanning IP address to the very beginning, inside parse_cmd_line()
* improve message
* just check whether there are no chars a-zA-Z

* move [[ $caa_node =~ '.'$ ]] || caa_node+="." into the while loop
2026-05-27 16:53:06 +02:00
Raymond Huygen d4f1b31f0d Fix DNS CAA check for IP scans and subdomains
- Skip CAA lookup entirely when NODE is an IP address; show
  "not checked (IP address scan)" instead of spuriously querying
  IP octets as domain labels and reporting "not offered"
- Force FQDN (trailing dot) on the initial caa_node before the
  walk loop so dig does not apply the resolv.conf search domain
  to the first query, which could return a false result
- Add a visible warning in the scan header when scanning by IP
  address, noting that trust/CAA and other domain-specific checks
  may be unreliable and the user should rescan with the hostname
2026-05-25 17:01:11 +02:00
Dirk Wetter 2f51cff728 Merge pull request #3039 from phpipam/3.3dev
Added link to php-ssl Certificate scanning integration
2026-05-19 17:27:07 +02:00
Dirk Wetter 84235d35c0 Merge pull request #3038 from testssl/more_handshakes_updates
Client handshake updates
2026-05-18 22:14:26 +02:00
Dirk 7871d800f9 adjust baseline runner output 2026-05-18 21:30:57 +02:00
Dirk 01b7ad7cc8 correct name 2026-05-18 21:30:34 +02:00
Dirk 56697cee48 Consolidate handshakes for all Safaris 26.4
Looked before at ja3, but for Chromium-browsers ja4 is relevant.
The client column needed to be extended with 1 space.
2026-05-18 21:16:43 +02:00
Dirk b4e58dfbb5 Consolidated Handshakes
went through a couple of pcap files and determined ja3 + ja4 sums.

- Android 15/16 are the same (previously ja3 taken instead of ja4 and wrong host. One has to use chrome !)
- Edge 101/Chrome 101 are the same (will be deprated next time)
- surprisingly Java 17.0.3 and 21.0.6 were the same.

- Added: Ja3/ja4 for old Apple Mail and Thunderbird
2026-05-18 18:45:04 +02:00
Dirk 7897cdcd84 Android 16
As mentioned in the comment: For Androids ja3 is is not unique, probably because of GREASE.
One can add two handshakes after another and they are different. ja4 seems more consistent here.

This should be kept in mind for all clients "supplying some grease"
2026-05-18 16:50:06 +02:00
Miha Petkovšek bedd224aa7 Added link to php-ssl Certificate scanning integration 2026-05-18 16:31:20 +02:00
Dirk 56e4a74485 Add OpenSSL 4.0 2026-05-17 15:23:42 +02:00
Dirk a35e9f816d Broaden table for client simulation
... as some clients are the same and space wasn't enough.
2026-05-16 16:14:24 +02:00
Dirk dd4c0b371d Handshakes for iOS + iPadOS 26.4. added 2026-05-16 16:04:13 +02:00
Dirk 7be3897437 Update MacOS/Safari 26.4
it has PQC kx finally, whohoo
2026-05-15 21:31:06 +02:00
Dirk 14e8df3fab Update readme wrt ja3/ja4 + imotr tweaks 2026-05-15 21:30:07 +02:00
Dirk 60131b4b5d - Update Apple Client Simulations 2026-05-15 21:28:54 +02:00
Dirk Wetter 0e59b983f1 Merge pull request #3030 from testssl/fix_unicode_3003
Fix DN conversion when reading certificate issuer
2026-04-22 15:34:21 +02:00
Dirk Wetter 146605e740 Merge pull request #3031 from testssl/fix_doc-problem_3029
Fix doc error regarding MAX_SOCKET_FAIL + MAX_OSSL_FAIL
2026-04-20 18:58:51 +02:00
Dirk b773fa9939 Fix doc error regarding MAX_SOCKET_FAIL + MAX_OSSL_FAIL
The trailing error messages were swapped in the paragraphs /
description for MAX_SOCKET_FAIL + MAX_OSSL_FAIL .

This fixes the confusion for 3.3dev , see #3028 .
2026-04-20 18:43:59 +02:00
Dirk b573a4f786 Fix DN conversion when reading certificate issuer
This fixes #3003 .

The conversion to proper UTF-8 should have taken place by just using
`-nameopt RFC2253`, see manpage openssl-namedisplay-options(1ssl).

As @dcooper16 suggested removing esc_msb should help. This may look
counterintuitive but works.
2026-04-20 18:09:36 +02:00
Dirk Wetter d2d684e31b Merge pull request #3029 from testssl/fix_fix_2809
Address missing extended_master secret extension properly
2026-04-20 17:49:24 +02:00
Dirk cff949bb90 Address missing extended_master secret extension properly
This PR "fixes feature" #2809 which was formerly not properly implemented in #2982,
see comment https://github.com/testssl/testssl.sh/issues/2806#issuecomment-4164847538.

Now TLS 1.3.-only servers won't get penalized when the master secret extension
is missing.
2026-04-20 16:31:44 +02:00
Dirk Wetter 7c47d8a8eb Merge pull request #3023 from dcooper16/identity_ossl_tls13_ciphers
Identify TLS 1.3 ciphers by OpenSSL name
2026-04-17 11:59:10 +02:00
Dirk Wetter 24eb5dec8a Merge pull request #3024 from dcooper16/missing_groups
Add missing TLS 1.3 Brainpool groups
2026-04-15 11:41:14 +02:00
David Cooper 74a60d25ea Identity TLS 1.3 ciphers by OpenSSL name
This commit changes the way that TLS 1.3 ciphers are identified by the OpenSSL names. To the degree possible, rather than checking for prefixes that have historically been used in various versions of OpenSSL and LibreSSL, the cipher name being checked against the known list of TLS 1.3 cipher suites that $OPENSSL supports.

In the few places in which the cipher suite name to be checked may not be supported by $OPENSSL, a check for the prefix "TLS_" is also used.
2026-04-14 14:46:48 -07:00
David Cooper 4b3a133a50 Add missing TLS 1.3 Brainpool groups
This commit adds recognition of the TLS 1.3 Brainpool groups when parsing the supported_groups extension in the server's extensions.
2026-04-13 12:58:31 -07:00
Dirk Wetter 57cca5c2a0 Merge pull request #3020 from dcooper16/use_sigalgs
Use OpenSSL with -sigalgs option to obtain server's certificate
2026-04-13 09:36:47 +02:00
Dirk Wetter 93ae5d78f4 Merge pull request #3021 from dcooper16/missing_sigschemes
Add missing TLS signature schemes
2026-04-13 09:34:20 +02:00