-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
testssl.sh 3.0 starts significantly slower than the previous version #1489
Comments
Several minutes?? There are some pre-checks which save you time later (e.g. in the protocol section) but that's a matter of seconds. Please try the following first: Also please try and see whether there;'s a difference. |
Nothing at all happens after "No engine or GOST support via engine with your /usr/bin/openssl" is printed? The next step should be printed the banner:
After "No engine or GOST support via engine with your /usr/bin/openssl" is printed, but before the banner is printed, OpenSSL is called many times in order to find out what capabilities it has (e.g., SSLv2, SSLv3, TLS 1.3, etc.). This code was recently changed to address #1418, so that is one possible source of the problem. Try running
This should be almost instantaneous. Here are the results I got:
The output you see may be different, but if the amount of time this operation takes to run isn't almost zero, then that is the source of the problem. |
The output from
By the way, this problem only affects the locally installed testssl from the ArchLinux repositories and not the version from Github with a separate openssl version. |
Just to be sure I understand. Are you seeing the banner before or after the 3 minute wait? Do you see "No engine or GOST support via engine with your /usr/bin/openssl" and then it is 3 minutes later before the banner is printed, or is some other text printed between when "No engine or GOST support via engine with your /usr/bin/openssl" is printed and when the 3 minute wait begins? What happens if you use the version from Github, but include |
Could you pls paste the output from
|
@dcooper16 the latest version from Github on 3.1dev with @drwetter
|
Hi @summerer, Thanks for the information. It seems that
The only guess I have is that the problem is happening in Perhaps Dirk has a better idea, but the next step I can think of is to try running in debug mode with timing information. As described in https://github.com/drwetter/testssl.sh/blob/67598e824fdcc0a7a25e0e85fb79e29c3866365b/doc/testssl.1.md, try running:
The resulting |
timing.txt |
Thanks @summerer, That helps a lot in finding the source of the problem (but, unfortunately, not in understanding why it is happening. Here is the first thing I noticed:
Testing for SSLv2 and SSLv3 (which /usr/bin/openssl does not support) was very fast, but testing for TLS 1.3 took about 10 seconds. This might suggest that calls of the form
take a long time if Testing which elliptic curves OpenSSL supports took 171 seconds (so about 5.7 seconds for each curve tested)! After these tests, there don't seem to be any more delays. These tests in |
LOL. I was looking for the external documentation for this debug mode earlier and I wasn't remembering that I already documented it |
Thanks David! @summerer : please try |
circa 15 seconds
circa 2 seconds |
Thanks @summerer . Actually both seem too high to me
Smells like a DNS related problem. |
Perhaps. But, I can't understand why it is slow with one version of OpenSSL but not another, or why it is slow with
but not
|
My DNS setup is as follows: The other thing I noticed was that The dot at the end might have made a difference. |
It looks to me something is broken in your setup or, less likely, openssl.
I can't tell for sure but I assume that every request goes without caching to cf. The dot in the end is needed because of multicast DNS resolvers (#1421 ). Is there a difference between |
First run with
Runtime seems to vary between 0 and 15 seconds for all commands. By the way, the problem seems to persist even if I set my DNS directly to Cloudflare in NetworkManager. |
So dnsmasq is off the hook. What's left is either a local DNS issue (Arch Linux DNS system setup) or one from CF 1. Out of curiosity I tried here Can you try to analyze this yourself pls, with 1 In a sense of an error like "we don't know this host, please hold". The response time otherwise is way too long |
@drwetter Alright, I will do some digging into this and report back if I am able to pinpoint the issue further. |
@drwetter I was able to identify the issue. Disabling DNSSEC in stubby seems to have fixed the issue. |
Closing this for housekeeping reasons. I'll be happy to reopen if needed. #1988 will partly help. |
Since updating testssl.sh to 3.0 on my Thinkpad T450 running Archlinux, every testssl command takes several minutes before it actually starts to do anything. On the version before 3.0, it only took seconds to start.
testssl prints "No engine or GOST support via engine with your /usr/bin/openssl" and then nothing happens for several minutes after which testssl behaves normally. If it helps, I was able to see a openssl process start, stop and start a new instance repeatedly in task manager while testssl seemed to do nothing.
uname -a
Linux T450 5.4.15-arch1-1 Heartbleed for STARTTLS #1 SMP PREEMPT Sun, 26 Jan 2020 09:48:50 +0000 x86_64 GNU/Linux
testssl version from the banner:
3.0 from https://testssl.sh/
git log | head -1 (if running from git repo)
running binary from ArchLinux repos
openssl version used by testssl.sh:
Using "OpenSSL 1.1.1d 10 Sep 2019" [~80 ciphers]
on T450:/usr/bin/openssl
(built: "Nov 13 16:09:29 2019", platform: "linux-x86_64")
steps to reproduce: testssl.sh or docker command line, if possible incl. host
e.g. testssl -p google.com (it doesn't really matter as long as an argument is given to testssl)
what exactly was happening, output is needed
see above
what did you expect instead?
see above
The text was updated successfully, but these errors were encountered: