jtesta / ssh-audit

SSH server & client security auditing (banner, key exchange, encryption, mac, compression, compatibility, security, etc)
MIT License
3.42k stars 177 forks source link

Remove SSH version 1 support #298

Open jtesta opened 1 month ago

jtesta commented 1 month ago

I propose that the unmaintained SSH version 1 support be removed. Rationale is as follows:

  1. It may already be broken ever since v2.0.0 (released in 2019). Testing has never been done on it after many, many rounds of extensive organizational changes and new features (!).
  2. There is no practical point to parsing SSHv1, since the entire protocol is critically broken. Knowing that vulnerable algorithm X is enabled doesn't change the fact that the entire protocol must be disabled (in other words, hardening the algorithm list is pointless). Instead, we can simply detect if v1 is enabled, and issue a failure.
  3. Removal of support would reduce the number of lines of code in the codebase. For example:

I will take input from the community on this change. If anyone agrees with this proposal, put a thumbs-up emoji on this comment ( :+1: ). Otherwise, if you'd like to keep SSH version 1 support, put a thumbs-down emoji on this comment ( :-1: ). Voting will remain open until April 1, 2025 (for approximately 6 months). After that time, I'll follow whatever the community prefers.

perkelix commented 1 month ago

Removing SSH1 auditing and issuing a LOUD RED blanket error if SSH1 is found enabled at all seems like a good idea.

BenBE commented 1 month ago

Somewhat mixed about this:

Pro:

Con:

jtesta commented 1 month ago

Limits informational/statistical usecases (e.g. key/algorithm tracking)

Is there any real-world scenario where ssh-audit is being used to collect statistics on SSHv1 algorithms?

BenBE commented 1 month ago

Limits informational/statistical usecases (e.g. key/algorithm tracking)

Is there any real-world scenario where ssh-audit is being used to collect statistics on SSHv1 algorithms?

I'd guess they are rare, but given ssh-audit allows key extraction it's not impossible that ssh-audit is used in that way.

NathanRodet commented 1 month ago

What about forking the latest version with SSH-1 support and mention it as available in a separate unmaintained repository ?

BenBE commented 1 month ago

Or more easily, tag it and reference it in the README to the effectively same effect …

jtesta commented 3 weeks ago

What about forking the latest version with SSH-1 support and mention it as available in a separate unmaintained repository ?

@NathanRodet : anyone interested in parsing SSHv1 endpoints could just do git clone --branch v3.x.x to get the last stable version that supports it (if it even works--as mentioned above, the SSHv1 code has not been tested in the last 5 years and may never have worked!).