On 4/27/22 20:01, Wietse Venema wrote:
Michael Stroeder:
Either way a compromised CA or a compromise KDC is bad news...
Yes!
And one of my biggest concerns are bad operational practices. That's why
admins should not have to manually deal with crypto key files like
service keytabs or TLS server keys.
To implement strong (network) security, some system will have to
keep some secret somewhere. Few people can afford operating an HSM
(hardware security module), what are the remaining options.
With bad operational practices I think of the real-world cases of e.g.
Kerberos service keytab files sent via unencrypted e-mail to an admin
for installation, and keys never rotated later...
Or the enterprise CA private key accidently exported from MS CA and sent
to an admin requesting a TLS server certs...
When designing systems I try to follow the principle of separating
functions as much as possible. Actually, Wietse, already in the 90s I
was heavily inspired by your work (TCP wrapper, multi-process design of
postfix) and a book by Cheswick & Bellovin.
So even if you cannot afford a HSM you can e.g. use ssh-agent via Unix
domain socket for your SSH-CA to avoid having to grant direct read
access to the SSH-CA's private key to your SSH-CA service. Simple
solutions, which you can isolate a bit more with stuff already available
on many Linux systems (AppArmor or SELinux, systemd sand-boxing, etc.).
Or similar the GnuPG key agent.
Or LoadCredential= in systemd.exec(5) also looks interesting.
Unfortunately there's no such ready-to-use component widely available
for OpenSSL-based systems.
My question on openssl-users:
https://mta.openssl.org/pipermail/openssl-users/2020-April/012344.html
According to Rich's answer here there might be some code in the OpenSSL
tracker.
https://mta.openssl.org/pipermail/openssl-users/2020-April/012345.html
Some years ago I also tried to use a PKCS#11 proxy. But I couldn't even
compile its OCaml code. Nowadays there seem to be forked-again
implementations in C. Not sure whether they work or are maintained.
Ciao, Michael.