Podcast
Root Causes 226: The Six Benefits of SSH Certificates


Hosted by
Tim Callan
Chief Compliance Officer
Jason Soroko
Fellow
Original broadcast date
May 24, 2022
In this third episode in our series on SSH keys, we identify the six main benefits of SSH certificates and how they mitigate the problems with SSH identified in earlier episodes.
Podcast Transcript
Lightly edited for flow and brevity.
I’d like to talk about this in context of authentication and the number one benefit I would say, Tim, is trust. In other words, if you go back to SSH just with the raw key pair, we talked about one of the problems earlier, I’ll connect this, that trust on first use, where you get that big notification that – it’s not an error message, it’s essentially a declaration of, there’s no guarantee that what you’re connecting to is what you think it is. You better do your homework. Whereas, with certificate-based SSH Authentication, you’re not having to do that homework. That homework has been done for you, presumably by the centralized trust system. In other words, if the thing you’re connecting to possesses a public and private key pair, and it’s going to trade that private key pair with you at the point of trust and first use with this new scenario authentication, you have immensely more confidence that you are speaking to the actual server that you’re actually intending to speak to. And so, no more big warning message at the beginning, Tim. That’s a huge thing for SSH.
Therefore, it’s the certificate itself that allows for itself to be signed, and that signing is part of what you could call a policy. In other words, you shouldn’t trust it unless it is signed by that central authority. And so, therefore, your trust of the centralized authority is essentially what allows trust to be spread across all of the different parties.
Perfection would be as soon as I’ve done my job - whatever my task is that I used this SSH certificate for, I would actually like this certificate to no longer be usable as soon as I’ve done my job. And so, therefore, what is ideal in that case? Because you may know how long it’s going to take, you might not know how long it’s going to take. I would say what a lot of people are doing is saying, ok, well, is that a day, is that two days? And what the problem is, some people, within a 24-hour period might still be – they may have the certificate issued to them 24 hours ahead of time, they’re doing a job, and then right at the 24-hour mark, they might still be doing their job, and the certificate expires. So that’s the big chicken and egg problem that we run into, and so therefore, I don’t think it’s a one-day type of scenario.
In other words, when we say, lower maintenance, it’s at least giving you the capability of doing maintenance in a much, in a frictionless way, because it is – that capability should be built into your Certificate Lifecycle Management System.
Alright. I agree, lower maintenance. But otherwise, think about what is the nightmare. You’ve got these keys, and they’re just keys. They work, I mean, what you really have to do, your version of expiration when you're using raw keys is somehow, prove beyond a shadow of a doubt that this key, this private key, is no longer in use anyway.
And there’s a lot of different reasons to revoke, Tim, and we’ve talked about that on previous podcasts. But at least you get those capabilities because with things like SSH, replacement processes and revocation, well, you could say that it – replacement kind of exists, but revocation does not.
Revocation actually is – if you think about what would it take to do the equivalent to a revocation in an SSH key pair, we could list out what it would take here. It’s technically possible, but it’s a lot of work. And it’ s almost, really in reality, I think the reality of it is, it’s almost impossible because where are all the copies of the keys, Tim?
As well, if you determine that there’s an automated system that needs to be reissued, have a renewal process for certificates because after a week or two or a month, whatever it is you decide for you that your certificate lifecycles are, that renewal process can actually be automated by your Certificate Lifecycle Management System. SSH raw cannot do that.

