Commit Graph
100 Commits
Author SHA1 Message Date
Dirk 5eb07e1270 Add Darwin binary from #2224 2022-09-07 10:26:02 +02:00
Dirk 8aa59d4a9a New FreeBSD x64 binary 2022-09-07 10:26:02 +02:00
Dirk 714e7049eb New Linux 32 binary 2022-09-07 10:26:02 +02:00
Dirk 35470087b5 Add newer Linux 64 bit binaries
* supporting xmpp-server, see #1575, #1589
* address security bug, see #2179
2022-09-07 10:25:51 +02:00
Dirk WetterandGitHub 01e6535ec1 Merge pull request #2226 from dcooper16/fix_ct_30
Fix certificate_transparency()
2022-09-07 10:18:59 +02:00
Dirk WetterandGitHub 14ebd0fe5d Merge pull request #2228 from dcooper16/fix_data_after_finished_30
Fix decrypting TLS 1.3 server response
2022-09-07 10:17:14 +02:00
Dirk WetterandGitHub bac8cb73f6 Merge pull request #2219 from dcooper16/fix2198_30
Fix #2198
2022-08-26 10:12:40 +02:00
Dirk WetterandGitHub bed3cbe792 Merge pull request #2216 from drwetter/alpine3.15-dockerfile_3.0
Upgrade Alpine version to the latest stable -1
2022-08-22 20:27:24 +02:00
Dirk 594fabe5c5 Address codespell issue in roff file
... by regenerating it with a newer ronn version.
2022-08-22 20:25:08 +02:00
Dirk WetterandGitHub 1154a6bc25 Upgrade Alpine version to the latest stable -1
3.15
2022-08-22 16:35:23 +02:00
Dirk WetterandGitHub c730d9529e Merge pull request #2202 from drwetter/certupdate_3.0
Cert update (3.0)
2022-07-03 16:22:18 +02:00
Dirk Wetter b148f68a85 Update README.md 2022-07-02 22:29:44 +02:00
Dirk c9dd2320ee Remove the expired DST Root CA X3 cert from ...
Apple / Linux / Microsoft stores
2022-07-02 22:29:04 +02:00
Dirk 721d1ab560 Reference to remove DST Root CA 2022-07-02 22:29:04 +02:00
Dirk af84d0ca4c add new stores 2022-07-02 22:29:04 +02:00
Dirk f04aa2fe03 Java.pem from Oracle jdk-17.0.3.1 2022-07-02 22:29:04 +02:00
Dirk 8a7a321e35 Apple.pem: picked from Internet (see etc/Readme.md) 2022-07-02 22:29:04 +02:00
Dirk 31e2c014bc add loop for Apple.pem 2022-07-02 22:29:04 +02:00
Dirk 0248d112ce fine tune instructions for Apple.pem 2022-07-02 22:29:04 +02:00
Dirk e6cfb364a9 Update cert store: Linux + Mozilla 2022-07-02 22:29:04 +02:00
Dirk WetterandGitHub b1c5a33cec Merge pull request #2192 from drwetter/update_clients1_3.0
Update client simulation for 3.0
2022-05-31 21:53:48 +02:00
Dirk Wetter 95b687b0a9 Add a few files to be ignored.. 2022-05-31 20:26:03 +02:00
Dirk Wetter 6ac9c59135 correct ch_{ciphers,sni}
That was due to a copy error from 3.1dev.
2022-05-31 20:08:37 +02:00
Dirk Wetter 445d20c360 Update client simulation for 3.0
see #2169, #2168

Added:
* Safari for macOS
* Java 17 LTS
* OpenSSL 3.0.3
* Android 11 and 12
* Go client (1.17)
* Firefox 100, Chrome and Edge 101 using Win10
* Thunderbird 91.9
* AppleMail
* LibreSSL from MacOS

* disabled Java 12 and Safari on OS X 10.12
* disabled Android < 6.0

* documention update how to add a client simulation
* add curves-mapping.txt file
2022-05-31 17:08:40 +02:00
Dirk WetterandGitHub 2ca53116ca Merge pull request #2190 from EliteTK/3.0-fix-crime-tls1.3
Fix CRIME test on servers only supporting TLS 1.3
2022-05-25 08:39:09 +02:00
Dirk WetterandGitHub 897443f035 Merge pull request #2185 from drwetter/censys_fix_2127.3.0
Fix censys link (3.0)
2022-05-14 13:50:25 +02:00
Dirk 78e67d8fff Shorten censys link
Remove sort order and fix the argument separator
2022-05-14 11:52:45 +02:00
Dirk d38a8b283d Backport #2184, Censys link
See #2127. The line is very long though: 152 chars
2022-05-14 11:42:43 +02:00
Dirk WetterandGitHub 41deaf908d Merge pull request #2170 from drwetter/fix_banner_3.0
Fix banner and remove STARTTLS NNTP CI check
2022-05-04 12:12:39 +02:00
Dirk Wetter a773f00fce Fix banner and remove STARTTLS NNTP CI check
On macOS in dark mode the git tag in grey wasn't visible. It was
changed now to light grey. It also works at least on Linux
using a light terminal background.

The NNTP server which we used for STARTTLS checks seems ofen
not to work. Thus this PR removes that for the 3.0 branch.
2022-05-04 10:56:16 +02:00
Dirk WetterandGitHub 980ec6ba33 Merge pull request #2166 from dcooper16/backport_2157_2160_2162
Backport #2157, #2160, #2162
2022-05-03 21:11:30 +02:00
Dirk WetterandGitHub 793eaa3f84 Merge pull request #2165 from drwetter/ftp_starttls_auth_only_3.0
Relax STARTTLS FTP requirement (3.0)
2022-04-28 07:30:51 +02:00
Dirk 405f431612 Relax STARTTLS FTP requirement (3.0)
In rare? occassions where the STARTTLS FEAT request only displays AUTH instead
of AUTH TLS, testssl.sh fails as it cannot upgrade to TLS.

Required by RFC 4217 is only AUTH ("MUST"), AUTH TLS is optional ("should"), see section 6.
This PR relaxes the presence of TLS after AUTH and fixes #2132 for the 3.0 branch.
2022-04-27 14:52:46 +02:00
Dirk WetterandGitHub 2eac75d5b5 Merge pull request #2155 from dcooper16/server_pref_no_default_protocol_30
Fix run_server_preference() with no default protocol
2022-04-24 18:12:19 +02:00
Dirk WetterandGitHub 0047e1f153 Merge pull request #2153 from dcooper16/no_session_id_30
Fix setting NO_SESSION_ID
2022-04-14 18:08:53 +02:00
Dirk WetterandGitHub 55785afb5e Merge pull request #2152 from dcooper16/fix2147_30
Fix getting CRL
2022-04-14 18:07:29 +02:00
Dirk WetterandGitHub a47bc2097e Merge pull request #2146 from dcooper16/ossl3_fix_30
More OpenSSL compatibility fixes
2022-04-12 18:51:06 +02:00
Dirk WetterandGitHub 395907a79f Merge pull request #2144 from dcooper16/ossl3_compat_30
OpenSSL compatibility fix
2022-04-07 21:34:30 +02:00
Dirk WetterandGitHub 4a5d93dad6 Merge pull request #2143 from dcooper16/fix2138_30
Fix #2138 in 3.0 branch
2022-04-07 21:27:32 +02:00
Dirk bc2c8d6eaa Remove trailing spaces to get rid of failing status of CI 2022-04-01 18:07:19 +02:00
Dirk WetterandGitHub 25ef6dc2ca Merge pull request #2136 from drwetter/drwetter-patch-1
fix markup of roff in doc/
2022-04-01 14:38:17 +02:00
Dirk WetterandGitHub 68a35b7610 fix markup of roff in doc/ 2022-04-01 14:37:30 +02:00
Dirk WetterandGitHub 1f846f73d8 Merge pull request #2135 from drwetter/drwetter-patch-1
docs --> doc
2022-04-01 14:13:20 +02:00
Dirk WetterandGitHub 084990a890 docs --> doc
fix wrong dir for CI
2022-04-01 14:12:56 +02:00
Dirk WetterandGitHub 2078ca52a8 Merge pull request #2134 from drwetter/2074_md_fixes.3.0
Implement fixes in documentation from #2074 (3.0)
2022-04-01 14:08:45 +02:00
Dirk 61c4aa2cb7 Implement fixes in documentation from #2074 (3.0)
kudos @k0lter

  * numbering
  * some ticks / backticks
2022-04-01 14:03:06 +02:00
Dirk WetterandGitHub 7733140e6e Merge pull request #2126 from drwetter/drwetter-patch-1
Remove reference to fixed 3.0.x version
2022-03-16 17:00:17 +01:00
Dirk WetterandGitHub 9e14cbf255 Remove reference to fixed 3.0.x version 2022-03-16 16:59:50 +01:00
Dirk WetterandGitHub 21fdf5f2de Merge pull request #2121 from dcooper16/ffdhe_supported_groups
Add FFDHE groups to supported_groups
2022-03-09 22:08:44 +01:00
Dirk WetterandGitHub 5e9ee13780 Merge pull request #2119 from dcooper16/rsapss
Include RSA-PSS in ClientHello
2022-03-09 14:14:44 +01:00
Dirk WetterandGitHub 5bd2952108 Merge pull request #2109 from drwetter/bump_version_3.0
Bump version in 3.0 branch
2022-02-19 14:38:16 +01:00
Dirk Wetter 06821e31ff Codespell 2022-02-19 14:37:14 +01:00
Dirk Wetter 7729fd1267 Add a few items 2022-02-19 14:28:24 +01:00
Dirk Wetter c6dce9d8b3 Bump patch version number 2022-02-17 09:10:41 +01:00
Dirk WetterandGitHub f96df1138b Merge pull request #2107 from drwetter/fix_2096.3.0
Fix "ID resumption test failed" under Darwin (3.0)
2022-02-17 09:04:57 +01:00
Dirk Wetter 93b9a37c0c Fix "ID resumption test failed" under Darwin (3.0)
Under Darwin using LibreSSL it was not possible to test for session
resumption by session ID.

This fixes the issue #2096 for 3.0 by checking not only the return value of the
s_client hello but also whether a probable certificate is being returned.
2022-02-16 23:18:04 +01:00
Dirk WetterandGitHub de0f4f7a7e Merge pull request #2104 from drwetter/fix_2103
Fix JSON output bc of missing locale in alpine (3.0)
2022-02-16 12:18:26 +01:00
Dirk Wetter c511319683 Fix JSON output bc of missing locale in alpine (3.0)
It is now being tested whether the binary locale exists and
there's a global introduced for that.

Also there's no fileout warning at this early stage anymore
as it leads to non-valid JSON
2022-02-16 10:45:12 +01:00
Dirk WetterandGitHub a385339b10 Merge pull request #2102 from drwetter/fix_2100_3.0
Fix locale error message when en_US.UTF-8 isn't available (3.0)
2022-02-15 11:10:53 +01:00
Dirk Wetter f872bd5e3e fix typo 2022-02-14 19:54:08 +01:00
Dirk Wetter f149c7450a Fix locale error message when en_US.UTF-8 isn't available (3.0)
Therefore a new global function was declared checking whether any of
the known locales work on the client without seeting them.
C / POSIX should work as well for LC_COLLATE.

This fixes #2100 for 3.0 .
2022-02-14 19:52:14 +01:00
Dirk WetterandGitHub 8b2fae0e3b Merge pull request #2095 from drwetter/fix_2052.Darwin.3.0
Fix Darwin / LibreSSL startup problem (3.0)
2022-02-02 13:34:38 +01:00
Dirk Wetter 37c6d78bfa Fix Darwin / LibreSSL startup problem (3.0)
This PR addresses a bug where a user encountered the question "The results
might look ok but they could be nonsense. Really proceed".

That happened under Darwin and probably some LibreSSL versions when
checking some hosts. sclient_auth() returned 1 indicating no SSL/TLS
handshake could be established.

This PR modifies sclient_auth() so that in those cases 0 is returned by
skipping the check for the session ID. As NO_SSL_SESSIONID needs to
be set when there's no session ID. This is done separately.

This fixes #2052 for 3.0
2022-02-02 12:20:06 +01:00
Dirk WetterandGitHub 1809595576 Merge pull request #2082 from dcooper16/sclient_dev_null_30
Send /dev/null to s_client
2022-01-06 21:19:00 +01:00
Dirk WetterandGitHub 82f64a376a Merge pull request #2068 from drwetter/polish+fixhttpclockskew_3.0
Backport HTTP 'Age' header field
2021-12-10 17:43:10 +01:00
Dirk Wetter fab42dd477 Backport HTTP 'Age' header field
See #2032 / #2067, kudos @Wahnes. This is a backport for 3.0

    Currently, when "HTTP clock skew" is calculated, this is taken to be the
    difference between the timestamp of the moment the HTTPS request was sent and
    the date given in the HTTP Date header. This does not yield valid results in
    case a HTTP cache is used, either on the client side or on the server side.
    According to the HTTP specs, the Date field will contain the timestamp the
    response was created, which may not be the timestamp the response was
    delivered.

    Consider the following example that queries the Varnish project's web server.
    Note that Varnish is a popular HTTP caching server, so HTTP caching will of
    course be used when serving HTTP responses from this project's web server.
    testssl.sh https://varnish-cache.org/ This will typically output a HTTP clock
    skew of some thousand seconds.

    The patch takes into account the HTTP Age header that caching servers add to
    the HTTP response to signal the response's freshness. As client-side caches
    normally do not cache HTTPS requests (except maybe for "enterprise" HTTP proxy
    caches that do MITM HTTPS proxying), this is mostly targeted to HTTPS websites
    that employ server side HTTP caching.

    Addtional polishing:

    * address my comments in #2032
    * add JSON field HTTP_headerAge if they exists
    * output HTTP_AGE if it was detected
    * do stripping of line feeds closer to where variables were set
2021-12-10 15:27:43 +01:00
Dirk WetterandGitHub 2cd0ab5b82 Merge pull request #2065 from dcooper16/fix_json_header_30
Fix JSON header in 3.0
2021-12-09 13:17:28 +01:00
Dirk WetterandGitHub bc203c5b4c Merge pull request #2062 from dcooper16/update_host_depended_vars_30
Update reset_hostdepended_vars()
2021-12-08 15:28:22 +01:00
Dirk WetterandGitHub 89bd8294e2 Merge pull request #2058 from mspncp/git-simplify-worktree-check-3.0
Simplify check for git working tree in 3.0
2021-12-07 08:55:24 +01:00
Dirk WetterandGitHub 6a00a6037c Merge pull request #2051 from dcooper16/fix2049_30
Fix #2049 in 3.0
2021-11-30 14:41:46 +01:00
Dirk WetterandGitHub c076f5645b Merge pull request #2048 from drwetter/fix_badFileDescriptor_3.0
Fix for "Bad file descriptor" with --connect-timeout option (3.0)
2021-11-29 09:35:00 +01:00
Dirk 4a02dcb767 Fix for "Bad file descriptor" with --connect-timeout option (3.0)
This fixes #1834 and #1435 for branch 3.0. (3.1dev: #2047)

The --connect-timeout option had the problem that under certain circumstances
like parallel mass scanning didn't work. The culprit was that a subshell command
was used to connect to the target but the file descriptor wasn't exported.

The PR changes the logic so that the connect pre-check is still done in a subshell
If this fails it proceeds with error handling if NR_SOCKET_FAIL is above threshold.
Otherwise it just connects again.
2021-11-28 18:21:43 +01:00
Dirk WetterandGitHub f5bd5d3eac Merge pull request #2045 from dcooper16/fix_sub_cipherlists_30
Fix sub_cipherlists() in 3.0
2021-11-23 10:00:01 +01:00
Dirk WetterandGitHub 11325ff04e Merge pull request #2041 from dcooper16/ossl31_30
Support OpenSSL 3.0.1-dev and 3.1.0-dev
2021-11-11 17:02:23 +01:00
Dirk WetterandGitHub d43fa50022 Merge pull request #2027 from dcooper16/improve_cipher_pref_check_30
Improve cipher_pref_check() in 3.0
2021-10-27 21:03:19 +02:00
Dirk WetterandGitHub aaf7248028 Merge pull request #2021 from drwetter/improve_precheck_curves_3.0
Improvement for testing curves with several openssl / libressl versions (3.0)
2021-10-26 12:00:06 +02:00
Dirk Wetter 1b2903e7ac Improvement for testing curves with several openssl / libressl versions
As noted in #2016 the detection of curves in find_openssl_binary()
was not yet perfect.

This commit removes another connect call. Also it corrects the port statement
for LibreSSL-like pre-checks as port 0 generally seems to me better suited.
Inline documentation was added.

It worked so far with OpenSSL 1.0.2, 1.1.1 and 3.0 and LibreSSL 3.4.

This is for 3.0. Similar commit (a11bd1585e)
was for 3.1dev, see PR #2020 .
2021-10-24 22:01:08 +02:00
Dirk WetterandGitHub 25a8579a5a Update ISSUE_TEMPLATE.md 2021-10-21 10:53:36 +02:00
Dirk WetterandGitHub 0ac95be1fc Merge pull request #2018 from drwetter/cab_is4browsers_3.0
Add browser requirement for the entropy of cert serial (3.0)
2021-10-21 09:50:21 +02:00
Dirk Wetter a580c20434 Add browser requirement for the entropy of cert serial
see also https://github.com/drwetter/testssl.sh/issues/2013#issuecomment-947834789
2021-10-20 19:41:43 +02:00
Dirk WetterandGitHub 3e68dbd8ac Merge pull request #2012 from drwetter/windows_dns_fix_3.0
Addressing lame DNS responses on WSL (3.0)
2021-10-20 08:59:20 +02:00
Dirk WetterandGitHub a3e589e331 Merge pull request #2015 from drwetter/fix_len_certserialnum_3.0
Check cert serial len + fix output when too big (3.0)
2021-10-20 08:58:25 +02:00
Dirk Wetter 36f6093ca9 Check cert serial len + fix output when too big (3.0)
Same as #2014, this is for 3.0 though.

OpenSSL shows certificate serial numbers >35 with a LF (0A). Testssl.sh
just output that which makes JSON invalid and displays the LF in the terminal
too.

This PR fixes that (#2010) by adding text filters so that the
serial number is not a multiline string.

Also this PR introduces a new function: a size check of the cert serial.
Below 8 bytes the CAB Forum's lower limit is hit which says the entropy
from a CSPRNG should be at least 64 bits. It is assumed that below 8 bytes
length this requirement isn't possible to meet (needs to be clarified with
Shannon, 8 bytes seems to low to me).
The high threshold is according to RFC 5280, Section-4.1.2.2 .

See also #2013.

The output has changed, so that on the terminal the serial has one line,
SHA1 and SHA256 each one line. The new json key is "cert_serialNumberLen".
2021-10-19 20:27:43 +02:00
Dirk Wetter 6c555f478b Addressing lame DNS responses on WSL (3.0)
This commit provides a global variable to the RFC 6761 use of "invalid."
which WSL clients don't seem to handle very well, see #1738, #1812.
"invalid."  is used as a target to find out in a couple of pre-checks what
is supported by the openssl version.

This PR reduces the number of ``openssl s_client -connect`` by a huge factor.
For the remaining invocations the OS used is being determined and if WSL is
assumed (the check is probably not 100% accurate) it uses ``127.0.0.1:0`` instead.
In (unfortunately only a few) pre-tests the response was immediate.

Also it is possible to use another target if needed by

     NXCONNECT=<mytargethere>:<myport> ./testssl.sh <URL>

This is for 3.0. For 3.1dev see #1988 .
2021-10-18 20:09:16 +02:00
Dirk WetterandGitHub 136b9416f5 Merge pull request #2006 from drwetter/fix_1992_certificateIssuerName_3.0
Fix invalid JSON when certificate issuer contains non-ASCII chars (3.0)
2021-10-03 21:05:11 +02:00
Dirk 2e821b9f62 Fix invalid JSON when certificate issuer contains non-ASCII chars (3.0)
Changed printf %s to printf %b which cause now to output UTF-8 correctly.

See #1992.
2021-10-03 18:31:06 +02:00
Dirk WetterandGitHub c3d2cf75b4 Merge pull request #2003 from drwetter/drwetter-patch-1
Fix typo / spelling error
2021-10-02 22:32:44 +02:00
Dirk WetterandGitHub 9f8ed56534 Fix typo / spelling error 2021-10-02 22:31:14 +02:00
Dirk WetterandGitHub c1210e98a5 Merge pull request #1948 from drwetter/bump_version_3.0.6
Bump version to 3.0.6
2021-10-02 22:21:53 +02:00
Dirk WetterandGitHub 1732e9c919 Merge branch '3.0' into bump_version_3.0.6 2021-10-02 22:21:36 +02:00
Dirk WetterandGitHub b68147150a Merge pull request #2000 from mig5/fix-letsencrypt-remove-dst-root-x3-ca-cert-3.0-fixed
Remove the expired DST Root CA X3 cert from all trust stores, and ensure Mozilla's is up to date (fixes ISRG X1 alternate path) - 3.0 branch
2021-10-02 08:37:03 +02:00
Dirk WetterandGitHub 6c874cccee Merge pull request #1989 from drwetter/fix_1982-3.0__kali.cnf
Fix #1982: Newer openssl.cnf break openssl detection (3.0)
2021-09-15 12:41:56 +02:00
Dirk Wetter 8a53039de6 Fix #1982: Newer openssl.cnf break openssl detection (3.0)
Newer configuration files from openssl may include statements
which aren't compatible with our supplied old openssl version.
This commit adds an autodetection of such a file and uses a
openssl.cnf provided by this project then.

The openssl.cnf is from a Debian Jessie package.

See also #1987
2021-09-15 11:25:10 +02:00
Dirk WetterandGitHub 24ba9e6efa Merge pull request #1986 from DimitriPapadopoulos/3.0
Typos found by codespell
2021-09-14 14:49:37 +02:00
Dirk WetterandGitHub 19760b2775 Merge pull request #1980 from drwetter/fix_1978_3.0
Fix minor inconsistency in description of cipher categories (3.0)
2021-09-10 08:10:00 +02:00
Dirk a239ac7a6a Fix GHA (starttls nntp)
using another IP
2021-09-09 23:21:08 +02:00
Dirk 7be262f287 Fix minor inconsistency in description of cipher categories
A longer while back the section ~ "Testing standard ciphers" was
renamed to "Testing cipher categories". However the internal help
didn't reflect that.

This fixes that, including an addtion to the documentation.

Note: the help still lists "-s --std, --standard" as a cmd line
switch.
2021-09-09 21:50:03 +02:00
Dirk WetterandGitHub 99be55650a Merge pull request #1977 from ap-wtioit/3.0-fix_dig_r_check
Fix dig -r check to only run if dig is available
2021-09-06 10:30:47 +02:00
Dirk WetterandGitHub 516cd43dd3 Merge pull request #1973 from drwetter/fix_dig-r_3.0
Fix cases where dig -r wasn't working (3.0)
2021-09-01 19:33:43 +02:00
Dirk 80cbdf2748 Fix cases where dig -r wasn't working (3.0)
Similar to #1972.

* the ignore ~/.digrc option from dig is now parsed from the builtin help
* there was a potential DNS call which is now avoided
* the +noidnout check is now parsed from the builtin help
* the OPENSSL_CONF="" in check_resolver_bins() was moved a few lines higher to avoid other errors in the terminal
* redo check for noidnout by also using the help function of dig

See also #1949
2021-09-01 18:51:03 +02:00