6 ms·
A load of nice tricks, thanks. I'm a bit concerned about the public keys public url. Ok, it's just public keys, so it must be safe, but I wonder : is it safe l
by oelmekki 13y ago
A load of nice tricks, thanks.
I'm a bit concerned about the public keys public url. Ok, it's just public keys, so it must be safe, but I wonder : is it safe like it's "safe" publishing a login without a password ? In other word, doesn't knowing public key make easier to break private one ?
- graphene 13y agoNo, that's the whole point of public key cryptography; that the private key cannot feasibly be used to derive the public key, but the other way around is trivial.
- Anderkent 13y ago>the private key cannot feasibly be used to derive the public key, but the other way around is trivial I assume you meant to say that the private key cannot feasibly be derived from the public key, but the other way around is trivial.
- graphene 13y agoYes, you're absolutely right; it seems it's too late to edit my original post though...
- sergiosgc 13y agoUsually, the keys are entirely symmetrical. You just name one public and the other private. It's difficult to generate one from the other. The easy task is generating both at the same time.
- skeletonjelly 13y agoCan't you generate a public key from a private one easily?
- gbaygon 13y agoYes: ssh-keygen -y -f private_key.pem > public_key.pub
- emmelaich 13y agoYes and no. It extracts the public key from the private key file. The "private" key file includes both keys. The public key file doesn't.
- dlitz 13y ago> The "private" key file includes both keys. It wouldn't need to, though. Given the private key (n,d), the public key is probably (n,65537).
- darkarmani 13y agoThe private key is normally stored in a file containing both the private and public key.
- dlitz 13y ago> Usually, the keys are entirely symmetrical. You just name one public and the other private. Nice try, General Alexander. :P In DSA, the public key is (p,q,g,y) and the private key is (p,q,g,x). The public "y" is computed directly from the private key using the formula: y = g^x mod p. Thus, anyone who has the private key can compute the public key. In RSA, the public key is (n,e) and the private key is (n,d). They're not interchangeable because of two speedups that we use: 1. Small public exponents. Most of the time, e is either 65537, 5, or 3. This speeds up encryption and signature verification, but also means you can trivially guess the public key. 2. CRT exponentiation. The private key is actually (n,d,p), where p is one of the prime factors of n. This speeds up decryption and signature verification, but recall that the security of RSA is based upon the difficulty of factoring n.
- seniorsassycat 13y agoPublishing a public key does not make cracking they private key easier. I guess if I got access to someone elses private key but I didn't know whose it was I could use the published keys to identify who the private key belongs to.
- oelmekki 13y agoOk, thank you both for clarification.
- txutxu 13y agoNo. But it eases "man in the middle" attacks (someone impersonating the host you think you're connecting to, with that key). Still, if someone puts your pub key in an authorized_keys of a malicious host, and then manipulates your DNS or ARP to conduct you to such host, you should get some SSH warnings about the host fingerprint, etc. And still, if you're using a dedicated key, the only possible attack could be to make you commit your repo changes, to the malicious machine instead of to github.
- inopinatus 13y agoThis is also the reason not to forward your ssh-agent (in my view, one of the most poorly considered features of ssh).
- dlitz 13y agoIf agent-forwarding wasn't implemented, more people would just copy their private keys to several machines. At least when you use agent forwarding, your key is only exposed while you're actually connected to the machine.