Database of Private SSL Keys Published
Trailrunner7 writes "A new project has produced a large and growing list of the private SSL keys that are hard-coded into many embedded devices, such as consumer home routers. The LittleBlackBox Project comprises a list of more than 2,000 private keys right now, each of which can be associated with the public key of a given router, making it a simple matter for an attacker to decrypt the traffic passing through the device. Published by a group called /dev/ttyS0, the LittleBlackBox database of private keys gives users the ability to find the key for a specific router in several different ways, including by searching for a known public key, looking up a device's model name, manufacturer or firmware version or even giving it a network capture, from which the program will extract the device's public certificate and then find the associated private SSL key."
What is the consequence of this?
Here's Google's wikileaks-like test. The database is posted on Google Code. Will they remove it?
Who left the backdoor open?
Great work! Keep it up!
Information shouldn't be kept private, which is why I support projects like this and Wikileaks!
So how does this affect things like dd-wrt, open-wrt, and tomato where custom firmware is in place?
"Bah!" - Dogbert
Until Linksys, D-Link, Netgear, et al get their collective heads out their arses, these types of tools are great for pen testing small business networks. Personally, I can't wait for the Android app; maybe I could hack one together and get it out there...
put the what in the where?
Encryption is only as strong as the idiots who implement it. The Soviets learned that the hard way during the early part of the Cold War, when they accidentally reused random one-time pad encryptors. That led to the NSA's VENONA project, and we decrypted a pretty good amount of Soviet diplomatic and spy traffic before they were tipped off.
Sadly, I'm sure that very few if any hardware vendor will change their behavior after this breach of security. Caveat emptor.
Apple ran into something similar a long time ago for Mac OS X Server. The servermgrd daemon uses a self-signed SSL cert by default to secure communications with remote management tools. About four or five versions back the certificate was identical across all installations because it was contained in the installer package. Someone had to go down and show them that you could read all of the traffic by using sslsniff and the private key from your own copy of the installer. They changed to an individual, automatically generated certificate shortly thereafter.
--Paul
So you'll have no problem posting all your passwords, social security number, bank account numbers, and so on publicly, then. Right?
This is one of the stock answers to the "information should be free" in copyright debates. The stock counter to that is that published credentials, such as passwords and the like, have little or no legitimate use other than to defraud people who do business with the rightful owner of the credentials. But this situation is far more nuanced than the typical use of this answer. Publishing an RSA private key almost sounds like publishing passwords, as an RSA key is a credential used to sign communication between a router and an end user administrator, but it's something that the router makers are distributing anyway as part of router firmware. The parallel with Wikileaks is that creating a repository of such keys is a way of pointing out the flaw in a cryptosystem where all devices have the same private key.
AFAIK OpenWRT generates a SSL/TLS Certificate the first time the https daemon is started, so it should not be affected by this.
However, i don't use the HTTPS interface, only SSH, so maybe someone else can confirm this.
From the article: "...making it a simple matter for an attacker to decrypt the traffic passing through the device". I'd think it would only be *to* the device.
SSLKeyLeaks
He who knows best knows how little he knows. - Thomas Jefferson
I'm vaguely shocked that any home routers would be using hardcoded private keys. That would be like every Schlage front door knob having identical keys.
But I can guess why it probably happened. Before StartCom started offering a gratis SSL certificate to the owner of a domain, it cost a substantial chunk of change to get an HTTPS server's public key signed by a certificate authority on the major web browsers' root CA lists. So instead, home web appliance makers used one key, got it signed once, and shipped it in every device of a given model. In order to generate individual keys per device, an appliance maker would have had to A. include the price of a CA-signed SSL certificate in the wholesale price, B. include a CD that installs the appliance maker's root certificate (and hear whining from Mac/Linux users that the EXE doesn't run), or C. register as a CA with each of the major web browser makers.
"...simple matter for an attacker to decrypt the traffic passing through the device" Wrong. This will only give the attacker the ability to decrypt encrypted sessions to/with the device. Encrypted traffic going through the device to another nonidentical host will use a different private key.
My DD-WRT router generates a new cert every reboot.
If your router appliance firmware generates a new keypair and certificate every time you restart it, you'd have no easy way to tell whether you generated a given certificate or the man in the middle generated it. Even key continuity management fails in such a case. Who signs such certs? What am I missing?
No more secrets, Marty.
Power corrupts. Absolute power...is even more fun.
If you're using home routers, they should only be configurable from the wired LAN, and only trusted people should be on that network.
Then what's the polite way to tell house guests why you're not letting them check their Facebook?
OK, you own a private SSH key of a router.
Now what?
Remeber, you got the router key, not Alice's or Bob's!
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
The private key in the SSL protocol is merely used for signing the session D-H key, which is generated for each session. Knowing the private key of an SSL server would not allow the attacker to eavesdrop the conversation. It only protects against MITM attack, which are not a real threat in this case.
We have done a security analysis of this problem at work a year ago and it turned out to be a dud.
I'd think it would only be *to* the device
That, and I think the attacker has to be on the network you're using to administer the device.
For a home router, with remote administration hopefully disabled, that would be your local net. So, if you have an attacker in your living room https: // 192.0.0.1 (or whatever) won't be any saver than http: // 192.0.0.1
Encrypted traffic going through the device to another nonidentical host will use a different private key.
If you're using your router appliance as the endpoint of an HTTPS tunnel, then tunneled HTTP traffic will be unencrypted after it leaves the appliance. It appears this would let someone sniff passwords for blogs, forums, and wikis, many of which don't use HTTPS due to the cost of a hosting plan including a dedicated IPv4 address, if someone can't sniff the route from the proxy to the HTTP site but can sniff the one from you to the proxy.
Silently drop DNS requests to facebook.com and shrug and say it must be a problem at their end when they ask?
Then they'd try Google, their webmail, and other sites on their Favorites, and see that I'm silently dropping everything. Then they'd bug me to troubleshoot the "problem at their end" for free, and if I refuse to whitelist the MAC of their laptop or tablet, and I further deny them the use of one of my own computers "just for a minute" that inevitably turns into fifteen or more, I'm perceived as inconsiderate.
For instance if I went to my local bank branch and the manager there handed me a key in person and told me to go home and install it to validate their online site, that would be better than the Verisign cert they use now.
Would they hand it to you on a CD? Tablets and netbooks don't have internal optical drives, nor do they necessarily come bundled with an external one. On a USB flash drive? Netbooks have USB host ports, but tablets and phones often (usually?) don't, and furthermore, blank USB flash drives are fairly expensive at retail (I don't know about wholesale). Besides, a targeted worm like Stuxnet could dick with the program that installs it to the operating system's key store, especially due to lack of file permissions on removable media such as USB flash drives.
Why isn't this stuff automatically generated on first boot? More secure.
So if I have WPA2 on and configure my router via a wire how would knowing my routers SSL key be all that valuable?
Procrastinating life a way at a rapid rate of speed.
Do people really change the passwords on their home router?
I suspect not...so this is pretty much a moot hack. I mean, why go through the trouble of sslsniff when you can just log in as admin/admin?
http://www.phenoelit-us.org/dpl/dpl.html
So someone is using DD-WRT to run their home network. If they only authenticate their router admin session via a physical connection to the router, is this all irrelevant? And if so, is there a way to force DD-WRT to require a non-wifi connection?
You can't imagine the amount of griping this slowdown caused from the product/marketing teams. They really really wanted it hard-coded. Fortunately "security guys" are taken seriously in Israel so as far as I know it's still generated on the fly.
I took a look at this LittleBlackBox tarball. It contains a lot of source code (sqlite, openssl, libpcap plus the the LittleBlackBox program itself which uses these libraries). I wouldn't trust any of the source code or the precompiled binaries. So that leaves you with a file called "lbb.db", which is an sqlite database. Get at that data in some other way (surely there are some sqlite tools for browsing databases or dumping them to text?)
I don't see the WRT54GL listed in there, nor Tomato firmware. Of course. The stock firmware generates the key every time you boot the thing! (Well-known, major nuisance.) Tomato generates one once which is then persisted.
This seems more like a TLS design flaw than anything else. By default SSL doesn't create perfect forward secrecy, which means that all of our encrypted conversations could be decrypted in the future simply by finding one key. That's ridiculous! If TLS as deployed used a cipher spec with PFS, then even if someone recorded all of our encrypted traffic, knowing these private keys wouldn't be enough to decrypt the sessions. It wouldn't stop the active MITM attack, but it would be an improvement over the current situation.
A possible security control for home networks would be to disconnect from the public network when you are doing administrative work on the router. Then unless the attacker has already placed a sniffer on the home network, the encrypted login credentials would not be visible from the public network while the administrative work was being done.
If the work involves the public network, perhaps the approach would be to disconnect during the login process and reconnect afterward. That might not prevent the attacker from viewing the activity with the public network but would prevent disclosure of the router credentials. Of course this might leave the attacker visibility into the transactions between the modem and the public network.
When are we going to get real about TLS+SRP binding to replace private keys and trusted third parties? With SRP support in all of the major browsers this issue would go away overnight.
Compromised private key and uncompromised self-signed private key are each subject to MITM. The only two realistic choices for the CPE vendor both suck.
When I go to my bank and enter my account password it is sent in the CLEAR over the TLS channel. The only thing protecting my password from being recovered by someone conducting an active MITM on some random leg of the Internet is blind trust in hundreds of organizations with the power to sign their own private keys to look like my banks. This situation is extremely dangerous, expensive and unecessary.
It is NOT just the CPE vendors that are being stupid here. They have no good choices available to them. The technology stacks and to some degree industry politics (CA industry) deserve equal credit for the problem.
At the end of the day secure password authentication is what most secure sites and systems really want. The authentication of the USER should provide the trust basis for initial session encryption key NOT the integrity of hundreds of unrelated third parties none of us know anything about.
We still need the PKI infustructure for cases where passwords are not used or the user has not established an account.. It is still quite useful.
Does this affect VPN on DD-WRT?
Here is the link you should be looking for: http://code.google.com/p/littleblackbox/
I will rush to execute a pre-compiled binary from a self-admitted hacker/cracker group. Sounds like a great plan ;)
Anyone with less scruples and/or more time to poke stuff: Is Fritz!Box affected? I expect them to and want to call customer support, tomorrow :)