Many commercially available embedded device manufactures use the same keys for all instances of their respective devices. This situation is so rampant, a project called littleblackbox has created a catalog of these keys. From their site:

A command line utility is included to aid in the identification of devices or network traffic that use these known private keys. Given a public certificate, the utility will search the database to see if it has a corresponding private key; if so, the private key is displayed and can be used for traffic decryption or MITM attacks.

Having a connection that has been "secured" by a publicly known private key provides the user with a false sense of security (especially if CA signed certificates are used), potentially making the device manufacturer liable (in my non-attorney opinion). So why do they do it? Is there some odd benefit I'm missing? The obvious solution to me would be to generate a key and a self-signed certificate upon the device's first boot.


3 Answers 3


It is probably easier to manufacture these devices if they can all use the same image. Also, what if the shared key needs to be stored in ROM or a place that cannot easily be updated during first boot?

  • 1
    Whilst I generally agree that it is easier to dump the same image on every device, it is also trivial to modify each image with a random key each time. Heck, you can program most of these ROM chips with an Arduino.
    – Polynomial
    Oct 9, 2012 at 8:20
  • @Polynomial My thoughts exactly. The whole situation seems a bit insane to me.
    – Sean W.
    Oct 9, 2012 at 11:34

There are a lot of legal issues at play and IANAL.

The thing to remember is that devices are sold in a lot of different countries. Many of these have a severe lack of privacy laws, or more accurately, laws in place to ensure that electronic privacy doesn't exist for their citizens.

If the devices were to create their own private keys, then it would make meeting the demand that the traffic be decryptable by authorities problematic. You would have to setup a central server and have those keys transferred to that server anyway, thereby reducing their effectiveness.

Also, if someone else found out that the private keys were being transferred out (or worse, that server was hacked) then the company in question would face a lot of criticism by the media in countries that do provide for some forms of electronic privacy..

Global companies have to walk a serious tight rope that unfortunately means they simply can't follow best practices with regards to security without either preventing sales of their devices in the offending countries or facing criminal charges. If they decide not to play in those countries, then their market share is limited AND not seen as a "global" player which is a whole other marketing problem.

It's really a catch 22. Even service providers such as FB, Twitter, Google and others have faced fines, censure and serious legal issues in places ranging from Brazil to Iran. Heck, even the UK and the US have laws in place that, depending on circumstance, your communications and usage history must be exposed in the clear.

At the end of the day, electronic privacy is kind of a myth. The "encryption" that exists, especially on electronic devices, is there simply to prevent the unskilled from snooping on you. Kind of like having a door with a window and a deadbolt. The deadbolt is going to stop your neighbor from just walking in; but a determined intruder (even the police) will break the glass.


This article is pretty telling about the situation in the US: http://keepyourassets.net/2012/09/27/fbi-renews-broad-internet-surveillance-push/

The primary things to take note: 1. they already have laws in place forcing communications companies to work with them. 2. Skype etc is playing by those laws. 3. A lot of service providers already comply, the FBI just wants it to be formalized to reduce their own costs.

On GPS tracking: http://techdailydose.nationaljournal.com/2012/08/aclu-sues-for-fbi-gps-tracking.php

  • Out of pure non-legal curiosity, do you know which category the USA falls under?
    – Sean W.
    Oct 8, 2012 at 14:32
  • 1
    @SeanW. That's an interesting one. On the one hand we do have privacy laws. On the other we also have wiretapping laws in place that cover snooping the communication of electronic devices. The big communications companies like AT&T have even been found to funnel all data, in an unencrypted format, through lines controlled by the NSA/CIA/FBI. This enables them (ostensibly with a court order) to pick out whatever they want. So, I'm not entirely sure the USA is really better than say Iran in that aspect... We just have judges that hopefully provide a bit more oversight on this.
    – NotMe
    Oct 8, 2012 at 14:36
  • @SeanW: Of course, the recent cases involving GPS trackers being placed on vehicles without court orders implies that the various police forces are trying to find their way in the new world... We know that google/ms/yahoo frequently receive court orders demanding data on certain people; we also know that their are standard fees paid to those companies for that data by the police forces. And we know that such arrangements have been in place with all sorts of communications companies for a long time.
    – NotMe
    Oct 8, 2012 at 14:37

The obvious solution to me would be to generate a self-signed certificate on the device's first boot.

In order to "generate a self-signed certificate on the device's first boot" the device software needs to have the private key used for signing certificates. This is just as bad (if not worse) as having the same certificate in all the devices.

Provisioning different certificates for each device significantly increases the complexity of the manufacturing process and adds to the cost (as it increases the device production time). A manufacturer will never do something like this unless forced to.

  • I meant the device should generate it's own key and certificate. Sorry for the ambiguity; PKI is not my specialty.
    – Sean W.
    Oct 8, 2012 at 20:01
  • The device can generate it's own key and certificate. But the device still needs to receive from outside the private key used to sign it's certificate. This certificate signing key can't be generated by the device itself. The goal of having a certificate is to be able to prove the identity of a device. This can't be achieved by randomly generating a key and certificate; since anyone can do this it doesn't prove identity. To prove identity someone trusted needs to certify that this certificate belongs to this device. If this isn't clear I would suggest you read the Wikipedia article on PKI. Oct 8, 2012 at 20:12
  • Ah, I see. What I was thinking of was a situation where one cares less about identity, and more about the encryption. For example, nessus generates a self signed certificate to secure its web portal logins.
    – Sean W.
    Oct 8, 2012 at 20:18
  • The only goal of a certificate is to prove identity. Self signed certificates are signed by a secret private key and in this way prove identity (albeit only to someone who trusts the owner of that secret private key). Oct 8, 2012 at 20:27
  • I agree with your answer. However your last comment is a bit off. Proof of identity is not a core feature of a certificate. If it was you wouldn't be able to install certs in a web farm crossing global boundaries. Quite frankly, they don't even prove the "owner" of said cert is who they say they are. Hence the reason for "extended validation". A cert is 100% about attempting to protect data while it is in motion between site A and site B; it can't do anything else. Even that protection has a limited life span; sometimes quite long, but it should still be noted.
    – NotMe
    Oct 8, 2012 at 21:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .