The surprising persistence of RSA keys in SSH
utcc.utoronto.ca
utcc.utoronto.ca
The good news is that GitLab uses Ed25519 keys as the recommended default [0]. GitHub still recommends RSA keys by default [1].
[0]: https://docs.gitlab.com/ee/ssh/README.html#generating-a-new-...
[1]: https://help.github.com/en/github/authenticating-to-github/g...
ECDSA suspected backdoored by NSA
EdDSA/Ed25519 like ECDSA but community made
RSA32768 might be okay but weird
Can I assume RSA is still 'good enough' though and something to just 'phase out' as my servers come and go?
Basically, every first year computer science student who has taken discrete math can write a (horribly broken, ineffecient) implementation of RSA encryption and decryption and have a pretty good intuitive understanding of what is going on.
In fact, I did that just for fun as a first year CS student.
With elliptical curves, I have read through the multiple websites and explanations and over several years and still feel I do not have an intuitive grasp of what is really going on.
It seems my memory of it was traumatizing, one of the few assignments I had where I remember where I sat in the library computing this assignment on paper. Without electronic assistance.
To a lot of people, this will sound like
"Monads are just monoids in the category of endofunctors"
Basically, every high school student knows what prime numbers are, what factors are, what exponentiation is, what modulo (remainder) is. A scientific calculator will have all the functions for you to do RSA encryption by hand with small primes.
You need more math courses to understand what it means to multiply a point by a scalar along a curve.
https://arstechnica.com/information-technology/2013/10/a-rel...
>A more interesting property is that any non-vertical line will intersect the curve in at most three places.
If this is correct, that means a line could intersect at 1,2, or 3 places.
>Let's imagine this curve as the setting for a bizarre game of billiards. Take any two points on the curve and draw a line through them; the line will intersect the curve at exactly one more place.
No that is not correct. I can already see two points where a horizontal line would only intersect 2 points and not intersect another. Basically, you can draw a line tangent to the curve on the left and intersect only 2 points instead of three.
These geometric explanations strike me as simplifications, and as I imagine what it would look like in code, I get the feeling that there would be all sorts of special cases, boundary conditions, and asymptotes.
This can be done with RunCommand, a manual Session Manager connection, or by storing your public keys in parameter store and pulling them in via a startup scrip in Instance Metadata.
To take advantage of SessionManager or RunCommand, you do need to have the SSM agent installed along with an IAM role. This isn’t a fit for every set of requirements.
The latter approach can be accomplished with a minimal IAM role and the AWS CLI. In the event your subnet doesn’t have NAT, you will need an SSM endpoint in your VPC.
Your best bet is AFAIK ECDSA with NIST parameters.
I just happened to be considering new yubikeys, maybe I will finally migrate everything. Though I could support ed25519 with my previous idea on handling it (where yubikeys serve as decryption device for elsewhere stored crypto machine.
https://support.yubico.com/support/solutions/articles/150000...
Seems false, doesn't it?
4k and especially 8kbit RSA provide greater assumed security, and the cpu/communication performance of 4/8kbit RSA is perfectly adequate for SSH. They also provide greater compatibility.
Why would I downgrade my cryptographic security to use a different cryptosystem with performance characteristics which aren't very relevant for interactive logins and get reduced compatibility at the same time?
I'd be much more interested in an ed448 or a ed25519+SPHINCS+ hybrid for SSH authentication -- at least they wouldn't be unambiguously less secure than what I'm currently using per our best current understanding.
Same deal for GPG/PGP: they added ed25519 which has less security than the keys most people were already using (4kbit RSA)... when the performance advantages are essentially irrelevant for the application. The non-performance related advantages seem small relative to to the compatibility and security posture.
https://www.google.com/amp/s/mobile.reuters.com/article/amp/...
This has basically nothing to do with the underlying cryptosystem.
Instead of explicitly configuring RSA keys, SSH could have been setup where you put their SHA256 hash in the authorized key file. (The pubkey itself would sent by the user at auth time and checked against its hash)
Same holds for RSA.
Disclaimer: Iana cryptographer
If this is the first time you're hearing about RSA starting to be phased out, and the new Ed25519, look into it. Or click this if you're lazy. https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e...
Also of note, is Ed25519 does not harden itself with additional "bits" in the normal RSA sense, it relies on "rounds" of KDF to apply more brute-force protection to the passphrase (you did set a passphrase on your key right?). I would suggest using the -a option with 1000 or more rounds. If you pick 50,000 rounds you might be waiting 5 minutes to log in though.
Also of note, ECDSA (the other one) has had curve trust concerns due to NIST possibly being subverted by the NSA. You can read for days on this, but bottom line is we've all agreed to move on. https://security.stackexchange.com/a/227771 / https://safecurves.cr.yp.to/
That doesn't make sense. Key stretching your pass phrase, and the number of bits your key pair is, is totally separate. The reason people dont talk about number of bits in Ed25519, is that the security margins are higher and many of the more efficient algos for cryptoanalyzing this stuff dont work on elliptic curves, so you dont have to be constantly changing the key strength to keep up with better computers, its just always 256 bits.
But IANA cryptographer.
https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa40...
Yes, it does, it is just not Ed25519 anymore, check out Curve448 and EdDSA-Ed448, same Edwards curve construction, more bits, more security. It's just that Ed25519 is plenty strong for many use cases.
Also, don't confuse the strength of the KDF with the strength of the curve itself as others have noted - Ed25519 is the same strength whether you hash your passphrase 1 or 50000 times. But with the 1 round your key might be easier to brute force if you have a weak passphrase.
So if you know how to use X448/Ed448 public/private keypairs with SSH, do tell.
> OpenSSH 6.7 was released on 2014-10-06.
I am not sure why this matters? If you have not updated your system for 8 years, I am sure you have worse problems than restricted account privilege escalation.
Switching defaults is always a complex trade-off.