Podcast
Root Causes 224: The Five Problems with SSH Keys


Hosted by
Tim Callan
Chief Compliance Officer
Jason Soroko
Fellow
Original broadcast date
May 17, 2022
In this follow-on to our earlier episode explaining SSH keys, we discuss the five problems SSH keys present to organizations using them. And we give a peek at how to solve these problems.
Podcast Transcript
Lightly edited for flow and brevity.
And all the mistakes that can be made. The pitfalls of PKI, etc. And yet, I would say OpenSSH, whereas PKI is a pretty specialist type of thing, OpenSSH is almost literally everywhere. I'm not joking when I say that. And yet, none of those scrutinies that we obsess over with PKI are there. And yet, to me, it's just the Wild West. And if you wonder why it's a golden age to be a bad guy right now, this is one of them.
Well, if you wanted to get into the business of having visibility to your keys, and you don't have the equivalent of a certificate lifecycle management for these raw crypto key pairs, how in the world are you tracking them? Well, the simple answer is most organizations are not tracking them at all.
And for those that sometimes do think that they're tracking them, Tim, this is one I've read countless times, and it makes me cringe bad guys or pen testers more often - hopefully, more often - will go into an organization and see almost the equivalent of a digital key rack right at the door.
So number four - loss of control.
And that is, Tim, if you want to be authenticating into systems, what happens if it's not just a person authenticating? What happens if you're using an automated system to authenticate into remote servers? Well, I'll tell you that Secure Shell SSH is phenomenal. Just fantastic to be able to do things securely through that encrypted pipe. Just so great. It's the reason why SSH is used everywhere. Well, unfortunately, it's so good that if you if you are creating some sort of automated system that needs to have that authenticated SSH session, you might actually say, I'm going to take my private key, and I'm just going to embed it in the code so that it can go off and authenticate all by itself. And you might laugh and say, oh, nobody would ever do that. Well, go to your favorite web browser search engine and look that up and you will see tons of examples of this being found in the public domain. In other words, GitHub repositories, just, loaded with SSH private keys. And so thankfully, thankfully, there is a tool that's available to do a best practice of where to put your keys, where to put your secrets, and where to hide them in a secure manner, and use them in an automated way and those things are called credential vaults. This is a place to put key material and usernames and passwords. So it's not just being a password engine, it is a place to put a lot of your secrets. You can call it by an API. You can call it by a number of different methods and so that when you're automating authentication to various remote sites with your SSH keys, you can then use that to be able to retain control over those keys. But for now, because of this ubiquitous nature, there's still a lot of, well, I'll call it what it is. It's unsafe user behavior that’s so egregious that I think this category of loss of control needs to be called out.
And because of that, doing what we consider revocation in the world of PKI and certificates, you just don't have that in SSH raw key pairs.

