bugzilla-daemon at bugzilla.mindrot.org
2019-Oct-11 11:46 UTC
[Bug 3082] New: Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 Bug ID: 3082 Summary: Add support for deterministically derived keys Product: Portable OpenSSH Version: 8.1p1 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P5 Component: ssh-keygen Assignee: unassigned-bugs at mindrot.org Reporter: nils.rennebarth at googlemail.com Created attachment 3335 --> https://bugzilla.mindrot.org/attachment.cgi?id=3335&action=edit patch for 8.0p1 to support derived keys In our project we connect a cluster of appliances to a central managing system via ssh. When a new appliance is deployed, the administrator provides it with an ip address and a "connection password". Later, the manager connects to the configured ip address (over a supposedly untrusted network), and the "connection password" is used as a shared secret to build a mutual trust and exchange long lived public keys that secure all future communication. [Yes, this provisioning procedure is outdated and should be replaced, e.g. by letting the appliance generate a key pair locally and just transmitting the public key to the managing system, but for now we can't change the established procedure] Connecting to an untrusted machine via ssh with password authentication will immediately reveal the shared secret to a man-in-the-middle, so using the shared secret this way is out of the question. What we came up with instead is to use the shared secret by deterministically deriving an ssh key pair on both, the appliance and the manager. Each side installs the public key in its authorized_keys file, the manager contacts the appliance first, using the key for pubkey authentication, and transmit its IP address and its (public) host key. The appliance will respond in the same way and transmit its (public) host key. As soon as both sides did receive a message from the other one, they can trust each other and exchange the long lived keys. To support this method of trust establishment, I wrote the attached patch for ssh-keygen, to derive a key from a given secret eterministically (by seeding the PRNG). The patch applies cleanly to the original 8.0p1 sources. Would you consider adding this feature to ssh-keygen? Another possible use case might be human memorizable key pairs, so I think it is not too tightly bound to our specific use case. -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2019-Oct-11 12:04 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 --- Comment #1 from Nils Rennebarth <nils.rennebarth at googlemail.com> --- Uhh, the patch only works for ed25519 type keys, as the other keys are generated by openssl directly, which of course doesn't use the arc4random random number generator. -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2019-Oct-14 09:51 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 --- Comment #2 from Nils Rennebarth <nils.rennebarth at googlemail.com> --- Created attachment 3336 --> https://bugzilla.mindrot.org/attachment.cgi?id=3336&action=edit Improved and updated patch for deterministic keys -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2019-Oct-14 09:54 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 --- Comment #3 from Nils Rennebarth <nils.rennebarth at googlemail.com> --- I uploaded a new patch, now against 8.1p1, that works for all key types, i.e. for ed25519 as well as for openssl generated keys. -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at mindrot.org
2020-May-08 05:10 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |djm at mindrot.org --- Comment #4 from Damien Miller <djm at mindrot.org> --- Created attachment 3393 --> https://bugzilla.mindrot.org/attachment.cgi?id=3393&action=edit deterministic ed25519 key generator I think this feature is a bit too niche to support in OpenSSH and too much of a weapon for users to shoot themselves in the feet with. If you need such an ability, then it's pretty easy to implement as a standalone program (like the attached proof-of-concept). We certainly do not want to implement this by adding hooks to the PRNG. That sort of stuff has yielded compromise after compromise in other programs. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2020-May-08 05:11 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2020-May-10 02:31 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #3393|text/x-go |text/plain mime type| | -- You are receiving this mail because: You are watching someone on the CC list of the bug. You are watching the assignee of the bug.
bugzilla-daemon at mindrot.org
2021-Apr-23 05:00 UTC
[Bug 3082] Add support for deterministically derived keys
https://bugzilla.mindrot.org/show_bug.cgi?id=3082 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #5 from Damien Miller <djm at mindrot.org> --- closing resolved bugs as of 8.6p1 release -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
Reasonably Related Threads
- Confusion using "ssh-add -D" and then "ssh-add -l"
- Confusion using "ssh-add -D" and then "ssh-add -l"
- handling duplicate names deterministically and adding alternative checksum algorithms
- [LLVMdev] Deterministic iteration over llvm iterators
- Another Fedora decision