Rosio Pavoris a blog

Cisco sucks at crypto

I’m in a class called Netwerkbeheer (Network Management), which spans two semesters and is a transparent excuse to peddle CCNA certifications. As a result, I spend a lot of time playing with Cisco routers and switches, and one of the many, many things that annoy me about Cisco’s IOS is their cavalier attitude towards security and cryptosystems. A particularly egregious example of this is Cisco’s type 7 encryption.
If you’ve ever configured a Cisco router, you’ve probably encountered it. When the misleadingly named service password-encryption is running, setting a password with the enable password command “encrypts” the password, so that when you issue the show running-config command, you’ll see a line like

enable password 7 08314940000A

instead of the plaintext password, which you’d see if the so-called “password-encryption” was turned off.
Type 7 “encryption” manifests itself in a few other places, including in FTP passwords and various routing protocol authentication passwords.

Type 7 has been known to be broken for a decade and a half now,0 but people continue to use it, almost always for bad reasons.1,2 To drive home just how broken type 7 is, let’s look at it in detail.

The general form of the type 7 “ciphertext” is (0[0-9]|1[0-5])([0-9A-F]{2})+. Some experimenting finds that the length of the “ciphertext” is always twice the length of the plaintext, plus two. Can you guess why?

The “encryption” key is always a number in the range 0-15, which would be easy enough to bruteforce, but that turns out to be unnecessary, since it’s provided (in decimal form) as the first two characters of the “ciphertext”.
That key determines the starting point in a table of twenty-six secondary keys (which, incidentally, is dsfd;kfoA,.iyewrkldJKDHSUB; I don’t know why the table has 26 entries instead of 16), which are XORed in turn with the characters in the plaintext. If the key is, say, 7, the first character in the plaintext is XORed with the seventh character in the table, the second character in the plaintext is XORed with the eighth character in the table, the third with the ninth, &c.
Each resulting character is then converted to two hexadecimal digits (the input can only be ASCII, of course) and appended to the ciphertext.

And that’s seriously all there’s to it. The result is a “cipher” that’s either slightly less or slightly more secure than writing out your passwords in permanent marker on the outside of the door of the server room, depending on how you manage your configuration files.
Because I know this is going to be an issue at some point, I’ve written a simple utility that encrypts and decrypts passwords using type 7, which you can find here.

You’d think this would be a moot point because people should realise their configuration files are sensitive information, but people are, of course, idiots. In that sense, type 7 isn’t just worthless, but actively harmful, because it gives people a false sense of security.


0 http://insecure.org/sploits/cisco.passwords.html

1 The original intent of type 7 was apparently to foil shoulder-surfers, who might see your configuration file as it scrolls by on your screen. Cisco’s official stance (now) is that if security is an issue, the router configuration file itself should be treated as vulnerable data, not just the passwords that may or may not be displayed in it. That would be fair enough, if it wasn’t at odds with Cisco’s default way of saving and loading configuration files, which is through plain TFTP over the regular network, with no options for encryption of either the config or the passwords themselves. But, you know.
(The claim that type 7 is so weak because the router has to be able to reverse it is bullshit, of course. At most it’s true for PAP authentication, but anyone who considers PAP passwords secret information has no business being anywhere near a router.)

2 Cisco themselves now advise against using it, instead suggesting people use type 5, which isn’t encryption, but just hashing with MD5. Which is also broken, of course. The CCNA materials also state that at least type 7 is “better than no encryption”, but I’d argue that it’s worse, because its security is equivalent to plaintext, while also giving idiot network admins the impression that it’s not.
I’m told a type 6 exists now, which is based on AES and supposed to be better. AFAIK our routers don’t support it, and I’m not holding my breath either way.

10 Comments

  1. Gerald Sussman said,

    Please renumber your footnotes so they start with zero.

  2. Cairnarvon said,

    Alright.

  3. Elp said,

    If it were your company, what encryption system would you be using?

  4. Cairnarvon said,

    None. The output of show running-config is meant to be fed back to the router verbatim to configure it, and there’s no secure way to have passwords in there unless you treat the whole file as sensitive information. Not having encryption reminds people not to be idiots and share their shit.

  5. Elp said,

    “Dear Livejournal,
    I kant beleeve it! The polis came to my house today, with a printed copy of my journal, the part from yesturday where I talked in great detail about how I robbed that bank! And the acktually arrested me for it!!!1!
    Now I’m in JALE!!!!!! HOW DID THEY NOW?!?!?!

    Sigh.

  6. Bradley said,

    ENTERPRISE security

  7. likeer said,

    tis a beautiful post…Thanks for the informations they are too helpful for this subject…

  8. Как посмотреть Type 7 пароль средствами IOS? | !L8vvsl6fSk said,

    [...] Почитать о type 7 паролях можно по этой ссылке. [...]

  9. Serg said,

    Je kan ook gewoon “reset” doen in “Configuration register” van cisco router

    PS: Ik wist niet dat je het zo gemakkelijk kon decrypteren. Ik vind het heel raar dat ze dat nog steeds “Type 7 encryption” gebruiken.

  10. Cairnarvon said,

    Ook waar, maar om aan het configuration register te kunnen moet je al toegang hebben, en qua malafide praktijken is het ook niet de meest subtiele aanval.
    Het probleem is dat er geen duidelijke goede manier is om het te doen, ofschoon er wel betere zijn.

Post a Comment

RSS feed for comments on this post · TrackBack URL