Linux Kernel Git Repositories Add 2-Factor Authentication
LibbyMC writes For a few years now Linux kernel developers have followed a fairly strict authentication policy for those who commit directly to the git repositories housing the Linux kernel. Each is issued their own ssh private key, which then becomes the sole way for them to push code changes to the git repositories hosted at kernel.org. While using ssh keys is much more secure than just passwords, there are still a number of ways for ssh private keys to fall into malicious hands. So they've further tightened access requirements with two-factor authentication using yubikeys.
Someone might commit code to our open source project. We can't have that.
Did they have a problem with that? Or are they operating on the possibility, instead? Do you have a third source of information?
Because the summary isn't clear, and the article is a how-to.
Well, malware injection to the linux kernel isn't a mere possibility. The incident that happened back in late 2003 comes to mind.
You mean I can no longer use my Battle.net Authenticator for my commits?
Get free satoshi (Bitcoin) and Dogecoins
Finally the Linux kernel which runs almost the entire Internet is as secure as my MMORPG accounts. About time. :P
Can someone explain how non-challenge/response tokens without internal clocks work?
What prevents someone from just hitting the button 100 times while you're not looking and saving the codes? Or using a code you used before? Where is this information kept? They don't have an onboard processor, there's no timestamping.
Thank you!
Do you invite friends in your house from times to times ?
Then by your logic it's totally okay to leave the door wide open to perfect strangers and burglars too.
I don't think you are intentionally trying to misrepresent the facts, but before others take the misrepresentation of the facts and run with it ...
I think you are confusing a failed attempt with a successful injection. The checks and balances in place stopped it sans two-factor auth. This just makes it even more unlikely.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Agreed, the path that was taken for that attempt wouldn't have worked. However, if someone had been able to compromise the credentials that would authorize a check in to the main repository, it most definitely would have worked. Adding in two factor authentication just makes it that much harder.
Let's see:
- Authenticated kernel source.
- Checksummed distro ISO.
- Eeprom subverted thumb drive.
The point is that only *you* should ever have access to the private key, having someone else generate it (as is suggested by the wording in this article) would be very unusual, as you would not want to use this key for anything else, and someone else would have your private key for no good reason. Someone could even potentially use this key to fake your identity in commits.
The problematic wording is here: "Each is issued their own ssh private key".
TODO: 753) write sig.
As someone who has to use a smartcard to even login to their workstation and every message is digitally signed, I'm not particularly impressed.
No. SSH keys are not used to sign commits, GNUPG (gpg) 4096-bit RSA keys are used to sign commits and tags. The SSH keys mentioned are used for git-over-ssh transport, only, not even for remote shell access (which doesn't exist anymore in kernel.org, I am told).
There is no mistake here -- the ssh private keys are generated on the kernel.org provisioning system, encrypted to the developer's PGP key (which is verified using the PGP web of trust) and then emailed out. The developer then decrypts the ssh private key on their workstation using their own PGP private key. Our copy of the ssh private key is destroyed in the process, so we only keep the ssh public key. PGP web of trust is king in the kernel.org world.
If you open yourself to the foo, You and foo become one.
I think his point is that you should NEVER use a private key created by a 3rd-party. Security 101. There's always exceptions to the rules, even in the case of "never", but it should be very rare and well understood. Still considered bad security practice.
Really, that's interesting and I stand corrected. Thanks.
I still fail to see the benefit of generating the key on the kernel.org system and sending it PGP encrypted. Why not just generate yourself and send it to the kernel.org administrators PGP encrypted instead? (as per the reply below, using 3rd party private keys is bad practice)
TODO: 753) write sig.
Least amount of back-and-forth between the developer and the admin ("sorry, your key has to be at least 2048 bits", "you forgot to sign your mail", "sorry, I sent you guys the wrong key"), plus it helps assure it's a dedicated SSH key and isn't shared between many other projects and therefore copied across workstations. Mostly, though, it reduces hassle.
If you open yourself to the foo, You and foo become one.