7 ms·
OpenSSH versus SSH
- nailer 4y agoOpenSSH’s relationship to SSH Labs is similar to what Linux is to Unix: one is considered the default implementation (where you like it or not) and the other an irrelevant standard (likewise).
- zokier 4y agoOr Chromes relationship to Web :)
- js2 4y agoThis protocol/standard vs implementation is not uncommon. BIND was synonymous with DNS for a long time, to the point that I'd argue that some of the things specified in the DNS RFCs should have been considered BIND-specific implementation details. For example, RFC 1035 specifies the syntax of zone files used by BIND. I'd argue that even AXFR (zone transfers) as a replication mechanism should have been a BIND implementation detail.
- tptacek 4y agoThis was Daniel Bernstein's argument, back when he was doing djbdns, and I believe it got him kicked off the IETF DNS list (he was, in this one instance, correct; I'm still confused about why zone files are a part of the DNS standard).
- AceJohnny2 4y agodjb is a great lesson in how "being an asshole" can be counterproductive.
- akira2501 4y ago> counterproductive If the goal of a committee member is merely to be included in the committee. Otherwise, if the committee is merely operating as a rubber stamp for every one of it's members proposals, then there may not be much productive value in remaining there. Apparently that feeling was mutual.
- imwillofficial 4y agoThere is a middle ground to he found, in upholding high standards without getting kicked off the team
- 1letterunixname 4y agoTrue. I think perhaps the model of IETF design-by-committee, with giant industry players who wish to sink specifications under the weight of risky and unnecessary features, is much like the "too many cooks" problem. It's better to have smaller groups of renowned experts create minimal protocols rather than force another ASN.1 or IPsec on the world.
- tptacek 4y agoI don't really think that stereotype holds, and, especially in the DNS case, it often seemed like random university IT administrators were the people monkeywrenching the specifications.
- ggm 4y agoASN.1 is tiny. It's the encoding rules which add complications.
- pixl97 4y agoThe rules for a turing machine are tiny... it's potential output is not. When you're looking for a small subset of well defined behaviors in order to maintain compatibility and application security those complications matter a lot.
- 4y ago
- 0xdeadbeefbabe 4y agoSeems most counterproductive if you lose.
- cvalka 4y agoDJB is a gift to humanity.
- riceart 4y agoAs if djb not being an asshole would have saved the IETF from their incompetent buffoonery. Yeah let’s just blame it all on one guy for not being a sycophant rather than lay the responsibility on the actual buffoons.
- 1letterunixname 4y agoOther than source-less reputation bashing / gossip, are instances of poor behavior? Also consider TdR of OpenBSD and OpenSSH has been polarizing but impactful.
- tptacek 4y agoI think the track records are tellingly comparable.
- dehrmann 4y agoSounds like Theo de Raadt.
- Intermernet 4y agoExcept that a huge amount of the world runs on cryptography designed by him, because all the standards committees and government orgs are somehow less trustworthy than this "asshole".
- 1vuio0pswjnm7 4y agodjb is like a litmus test. How someone reacts to him can reveal whether that person is someone who thinks they are smarter than they really are, a personality type that is common amongst software developers. These are the type of people who cannot admit when they are wrong, and will never admit that they are incompetent. Arguably, it is because of such people that we are drowning in crappy software, and even worse, that crappy software is popular. IMHO, djb is on the side of the user, whether intentionally or not. djbdns allowed me, a user, to take control of DNS on the networks and computers I own. The philosophy of BIND at the time felt like "DNS is for DNS experts. We're experts. Do as we tell you."^1 I also learned nsd so I do use BIND zone file format. But I never became a BIND user. 1. I see a parallel in the context of "certificate authorities". Nothing wrong with "CAs" in theory but in practice, i.e., commercialisation of certificates and browser-centricity, the system reeks. Pay to play, or at least mandatory third party intermediaries, and generally user hostile.
- akerl_ 4y agoI think it might be dangerous to elevate people in this way. Probably djb is a human, who doesn’t represent a dowsing rod for your evaluation of the world.
- throwawayapples 4y agoonly this one instance? what about port randomization or Curve25519?
- kiwijamo 4y agoI think it's good that there's a standard for zone files. I've migrated from one dns server to another and being able to just carry over the same zone files has been useful. I also for some time had a master using one dns software and slaves using different software (as part of a mirgariton keeping a known good server using the old software and moving others to the new software and testing to ensure both were producing the same responses). Had zone transfers not been standardised I would not have been able to do this. I agree that perhaps the easy path of just adoptong the BIND implementation should not have happened but I would argue having a standard is better than just leaving it to hoping the implementation detail remains compatible between different software.
- tptacek 4y agoIt's absolutely useful to have a standard form for DNS zone files; it just shouldn't be a part of the DNS standard. There's no scarcity of RFC numbers, and zone files should be a separate, optional RFC. (They're practically obsolete now, so there isn't much uncertainty about who had the better side of this argument.)
- AndyMcConachie 4y agoNot sure what you mean by obsolete. https://www.internic.net/domain/root.zone https://www.internic.net/domain/root.zone I agree that they are optional, but I wouldn't go so far to say they're obsolete.
- tptacek 4y agoAnybody building a new DNS server at this point is going to back it with a database, not a bunch of text files.
- stevenjgarner 4y agoPowerDNS [1] has been doing that under the GPL since 2002, featuring a large number of different backends ranging from simple BIND style zonefiles to relational databases and load balancing/failover algorithms. [1] https://www.powerdns.com/ https://www.powerdns.com/
- mlyle 4y ago> I'd argue that even AXFR (zone transfers) as a replication mechanism should have been a BIND implementation detail. AXFR has been valuable for interop, though, and allows you to have diverse implementations of authoritative servers.
- fanf2 4y agoThe syntax of zone files originally came from JEEVES, not BIND. It’s implemented by most other DNS software, and is not at all specific to BIND. Same for AXFR and other parts of the DNS protocol.
- nijave 4y agoDropbear seems pretty common on busybox devices (or at least consumer routers) https://matt.ucc.asn.au/dropbear/dropbear.html https://matt.ucc.asn.au/dropbear/dropbear.html
- deleted 4y ago[deleted]
- classichasclass 4y agoDropbear is also very portable to lots of architectures and OSes, and runs well on small systems. I endorse it highly.
- achillean 4y agoIt's the 2nd most popular SSH daemon across the Internet: https://www.shodan.io/search/facet?query=port%3A22&facet=product https://www.shodan.io/search/facet?query=port%3A22&facet=pro...
- cbsmith 4y agoAnother way I'm feeling old... I remember back when OpenSSH was just a plucky upstart implementation of SSH.
- StayTrue 4y agoI did the original import of the unencumbered SSH sources into the OpenBSD CVS repository (imported to the wrong path and Theo blew up lol). Haven't thought about it in ages and the distance of the memory is making me feel old too.
- grepfru_it 4y ago>theo blew up Those rash of OpenSSH and OpenSSL vulnerabilities back in the late 90s seemed like it was targeted at Theo just because he acted like a jerk and he knew it. The never compromised tagline of OpenBSD was flushed down the toilet and at the time it really seemed like it was a deliberate attack
- trelane 4y agoYep. I wanted to say it was F-Secure SSH, but the timeline on Wikipedia doesn't quite match. The development of SSH and the history of Data Fellows/F-Secure kinda line up, though. https://en.wikipedia.org/wiki/Secure_Shell https://en.wikipedia.org/wiki/Secure_Shell https://en.wikipedia.org/wiki/F-Secure https://en.wikipedia.org/wiki/F-Secure
- trelane 4y ago
- hultner 4y agoThis makes me think about something I thought of a while back, is there any library/app which lets me expose a TUI/cli-app over ssh without actually caring about securing OpenSSH for this use case?
- gopalv 4y agoAre you thinking of something like the Blinkenlights Star Wars telnet demo from a while ago? The "securing" part aside, ssh still gives you a whole terminal experience very similar to the telnet one & the ability to draw into it (like if you were using Emacs on the shell host). You can set something like that up by forcing a command on ssh instead of a shell (like what github does for git).
- hultner 4y agoYeah I was thinking of something like that. But I still feel a bit uneasy with configuring OpenSSH securely, I’ve escaped such setups before, gaining full shell access through exploits. Maybe I’m overly paranoid.
- tinus_hn 4y agoNo you’re not, there are far too many unexplored interfaces. Then again many programs aren’t secure against untrusted input either.
- yjftsjthsd-h 4y agoLike ForceCommand, or turning off authentication?
- AceJohnny2 4y agoDo you mean something like Paramiko, an SSH library for Python? https://www.paramiko.org https://www.paramiko.org
- dizhn 4y agohttps://github.com/charmbracelet/wish https://github.com/charmbracelet/wish If you're actually willing to write the app.
- jmclnx 4y agoI read this and if I understand it, someone wants to add some kind of automatic key exchange kind of like what happens with 'https:' ? Please do not do this :) One comment I agree with from a linked article: https://mjg59.dreamwidth.org/65874.html https://mjg59.dreamwidth.org/65874.html >It takes all the problems associated with HTTPS and makes it SSH's problem also. This relates also to the reasons why OpenSSH refuses to accept patches that implement SSL/TLS pki and instead implemented their own CA model.
- mjg59 4y agoNo, I'd like sites to be able to present a CA to trust rather than a static key to trust and then be able to rotate their keys without triggering identity change notices.
- jmclnx 4y agoThis stuff is a bit over my head. Under this scenario, if the site rotates their key, will I need to decide on my system to trust it or not ? Maybe change something on my system ? Or does the remote site use my ssh public key transparently to know it is me, and allow me in ? So I do nothing at my end ? I guess that would be OK by me. But as I noted above, I am guessing.
- _cenw 4y agoYour key is not involved here at all. You can also sign host keys and then trust the CA instead of the host key with TOFU, but as mentioned in the article, there's no way to do this without having the user fiddle with their SSH config and I'm unsure how good the tooling for distributing revocations is. Vault has a setup guide, along with the little dance a user would have to do: https://developer.hashicorp.com/vault/docs/secrets/ssh/signed-ssh-certificates#host-key-signing https://developer.hashicorp.com/vault/docs/secrets/ssh/signe...
- mjg59 4y agoUnder this scenario you wouldn't need to do anything if the site rotates their key - the new key would be presented with a certificate signed with the same CA key. But no clients support doing this kind of semi-automated enrollment at the moment. You can manually add the trusted certificate to known_hosts, though.
- OliverJones 4y agoOpenSSH is indeed widely used. But the only game in town they're not. There are commercial SSH implementations that aren't based on OpenSSH, reasonably widely used too. For decades I've used a Windows product called SecureCRT based on their own ssh and sshd stacks at Van Dyke. I'm sure there are others too. (I hated putty's UI.) There's an obvious infosec observation here. Different stacks, different hacks. Maybe individual infosec people should adopt a randomly chosen stack from among the less popular. Then the dreaded zero-day that hits the most popular stack won't cut off their access entirely.
- tonyarkles 4y agoI totally forgot that the very original version of SSH came out in 1995 and turned into a commercial product. https://www.ssh.com/home-page https://www.ssh.com/home-page
- chasil 4y agoWe run it on our VAX. The article also says: "I don't think anyone else is working on new protocol features; instead, OpenSSH comes up with them and then people with other SSH implementations either follow along or not." One obvious exception is curve25519-sha256@libssh.org which is the preferred kex.
- firstlink 4y agoTo this day I occasionally attempt to run `emerge ssh` to update it and get back portage's version of "I can't do that, Dave". Then, "oh, right..." `emerge openssh`.
- mardifoufs 4y agoI'm curious to know what are the advantages of using those other implementations instead of OpenSSH. Was it mostly because Windows didn't have openssh? Or do they provide more features (or less! which could be good for security)? I have only ever used OpenSSH so I'm totally ignorant about everything else!
- 4y ago
- er4hn 4y agoInterestingly enough this is getting another layer on top of it. Google is working on something called "HIBA" (https://github.com/google/hiba https://github.com/google/hiba) which is an extension to OpenSSH SSH Certificates. So now you have layers of: - SSH RFC - OpenSSH extensions to SSH - Google extensions to OpenSSH
- awesomeMilou 4y agoThis looks like it's adding something similar to Kerberos-like authentication the connection rather than the OS auth level. Pretty cool.
- 1letterunixname 4y agoMore layers, more abstractions, more divergence, more interoperability problems, more vulnerabilities. There's already mature CA support in OpenSSH https://dev.to/gvelrajan/how-to-configure-and-setup-ssh-certificates-for-ssh-authentication-b52 https://dev.to/gvelrajan/how-to-configure-and-setup-ssh-cert... And even OpenSSH 8.2+ supports FIDO2 built-in. Can add TOTP, FIDO2/u2f, ldap, or kerb with pam also.
- hsbauauvhabzb 4y agoWhat’s the value of a CA in openSSH? Is it purely so you don’t have to self manage known_hosts, based on mutual trust with the CA? Edit: or is there some ability for clients to leverage the CA to establish trusts without authorized_keys?
- pritambaral 4y agoBoth. Either. See more: https://web.archive.org/web/20201203110622/https://ef.gy/hardening-ssh https://web.archive.org/web/20201203110622/https://ef.gy/har...
- CaliforniaKarl 4y agoIs there a citation for this: > In one recently relevant example, one reason Github didn't take advantage of OpenSSH's protocol extension for offering multiple host keys (to enable upgrades or transitions) is that they don't use OpenSSH but instead a different implementation. ? I thought GitHub didn't use the host-key-migration capability because the host key change was implemented on a semi-emergency basis. I mean, in this case I don't think you'd want to start a host-key migration without announcing it, and GitHub wanted off of the exposed RSA host key very quickly.
- noobcoder 4y agoI feel OpenSSH is more powerful overall. Its cryptographic key management allows users to generate and manage keys securely which useful for larger organisations, where managing a large number of keys can be challenging.
- shp0ngle 4y agoJust to make sure. OpenSSL is not related to OpenSSH, right