Slashdot Mirror


Remote RSA Timing Attacks Practical

David Brumley and Dan Boneh writes "Timing attacks are usually used to attack weak computing devices such as smartcards. We show that timing attacks apply to general software systems. Specifically, we devise a timing attack against OpenSSL. Our experiments show that we can extract private keys from a OpenSSL-based server such as Apache with mod_SSL and stunnel running on a machine in the local network. Our results demonstrate that timing attacks against widely deployed network servers are practical. Subsequently, software should implement defenses against timing attacks. Our paper can be found at Stanford's Applied Crypto Group."

223 comments

  1. Personal crypto? by pro-mpd · · Score: 5, Interesting

    OK, so we know now that SSL servers may be vulerable. Can this sort of an attack be used against personal encryption, a la pgp?

    1. Re:Personal crypto? by The+Mainframe · · Score: 0

      That's what I'm worried about. I've just put a significant (OK, not that significant, but still) amount of effort into ensuring that all communication between me and my co-conspirators on a potentially money-making net venture is secure. Should I now worry that all of my e-mail since this summer can be read?

      --
      --Bennett Prescott
      Former Lord Of Packets
    2. Re:Personal crypto? by Anonymous Coward · · Score: 4, Funny

      Only if you type really, really fast.

    3. Re:Personal crypto? by SgtPepper · · Score: 1, Informative

      Well, according to the article:

      "Many crypto libraries completely ignore the timing attack and have no defenses implemented to
      prevent it. For example, libgcrypt [6] (used in GNUTLS and GPG) and Cryptlib [7] do not defend
      against timing attacks."


      So I would say yes it is (If you consider GPG the same has PGP that is)

    4. Re:Personal crypto? by Anonymous Coward · · Score: 0

      No.

    5. Re:Personal crypto? by tjohns · · Score: 5, Informative

      No. According to the article, "Timing attacks enable an attacker to extract secrets maintained in a security system by observing the time it takes the system to respond to various queries." Once you choose to encrypt and send a message with GPG/PGP, it is done, and that is that. Aide from the conversation your computer makes with the SMTP server, there is no further communication between hosts, so there is no way somebody could try to measure the time it takes to generate an encrypted reply to something.

      Therefore, as long as your computer isn't comprimised, you're fine. However, if your computer is comprimised, well, you've got bigger things to worry about than somebody trying to time how long it takes to encrypt a message. ;-)

    6. Re:Personal crypto? by SgtPepper · · Score: 4, Informative

      I should clarify though that it would only be possible if someone was on your system WHILE you were encrypting something or decrypting something that was encrypted with your key. It isn't /possible/ to execute this attack AFTER something is encrypted, only during the encrypting process.

      Someone tell me if I'm wrong...I might be, but I don't think I am...

    7. Re:Personal crypto? by Anonymous Coward · · Score: 2, Funny

      I should clarify though that it would only be possible if someone was on your system WHILE you were encrypting something or decrypting something that was encrypted with your key. It isn't /possible/ to execute this attack AFTER something is encrypted, only during the encrypting process.

      Someone tell me if I'm wrong...I might be, but I don't think I am...


      You shouldn't worry. Oh yea, and can you send that last email again please? I had to reboot and missed it.......

    8. Re:Personal crypto? by the_quark · · Score: 2, Informative

      Theoretically possible. But they'd have to get you to encrypt arbitrary chosen-plaintext, and a lot of it, to check the timings. It's probably easier just to root the box and steal your password with a keyboard sniffer.

    9. Re:Personal crypto? by Anonymous Coward · · Score: 0

      Dude you reveal more in this little slashdot poast than in all of your encrypted emails.

    10. Re:Personal crypto? by jareds · · Score: 2, Informative

      No, they'd have to get you to decrypt chosen ciphertext (but they don't need the result of the decryption, just the timing). PGP uses public-key cryptography, so anyone can encrypt chosen plaintext.

    11. Re:Personal crypto? by MullerMn · · Score: 2, Funny

      You shouldn't worry. Oh yea, and can you send that last email again please? I had to reboot and missed it.......

      Damn Windows-using crackers....

    12. Re:Personal crypto? by bo-eric · · Score: 1

      A theoretical possibility is that someone makes, say, a message containing javascript code to measure the time it takes for GPG to decrypt the message... I don't know if this would be possible - the method described requires pretty precise timings and I know absolutely nothing about how good rtc support javascript has, nor if it is possible to embed a script in such a way in a message. It still takes about a million chosen plaintexts, so hopefully it won't work in practise, but if you're this paranoid you probably don't have javascript/html enabled in mail anyway.

      --

      -- Free speech is only free if your time is worth nothing.
    13. Re:Personal crypto? by Anonymous Coward · · Score: 0

      Based on the paper it seems that you would have to encypt the text and then decrypt the text ... the timing is based on the decryption. The way they do this on a server is by sending it a "shared secret" that has been encrypted with the public key then sending it to the server which then decrypts it with the private key, realizes the formatting of the "shared secret" is wrong and returns an error. They time how long it takes from the time they send the message to the time they get the error back.

    14. Re:Personal crypto? by mmol_6453 · · Score: 1

      However, if your computer is comprimised, well, you've got bigger things to worry about than somebody trying to time how long it takes to encrypt a message. ;-)

      I beg to differ. While a rooted box can be fixed, along with the administrative policies around it, a PGP private key is a much more serious thing to have leak.

      Any and all material previously encrypted with that material is now vulnerable, whether it be stored on the rooted box itself, or on a webserver for my easy access. (I've got a physically secured slip of paper with my private key that I carry around with me.)

      So, a compromised private key is a much more severe issue than a rooted box, no matter how that box got rooted.

      --
      What's this Submit thingy do?
  2. Oh Shiiiiiiit! by The+Mainframe · · Score: 4, Funny

    Great, and this after I've been bragging about my 'not-breakable for a billion years' 2048-bit key.
    $mouth . $foot

    --
    --Bennett Prescott
    Former Lord Of Packets
  3. What a shame. by AltGrendel · · Score: 1, Offtopic

    Pity this didn't appear BEFORE the Paul Kocher post.

    --
    The simple truth is that interstellar distances will not fit into the human imagination

    - Douglas Adams

    1. Re:What a shame. by br0ck · · Score: 1

      Well, the first question was modded to +5 and asks this very question so I guess we'll be hearing his thought on this topic when he replies.

  4. How could OpenSSL be vulnerable to security attack by MisterFancypants · · Score: 4, Funny
    Microsoft didn't write OpenSSL..How could this be possible????

  5. Dan Boneh by blackmail · · Score: 3, Funny

    Is one smart cookie. He's also the only prof I wouldn't take a class from because it wasn't webcast. In other words you can't pause and rewind his live lectures. He talks real fast. And tilts his head at a 30 degree angle to his left.

    1. Re:Dan Boneh by ChadN · · Score: 3, Interesting

      I took a couple classes from him, and found him to be a very good lecturer. VERY knowledgeable about his subject, and very well organized with his presentation.

      Even reading all the course books intently, I got a great deal of helpful information from the lectures.

      --
      "It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
    2. Re:Dan Boneh by offpath3 · · Score: 1

      Agreed. Prof Boneh is an absolutely excelent lecturer. I'm taking 255 from him right now, and I actually feel bad every time I have to miss class and watch it online.

    3. Re:Dan Boneh by smd4985 · · Score: 1

      I loved cs255 but I got killed grade-wise. Interestingly, my bad performance didn't sour me on crypto - I still find it an enthralling subject and I actually find many occasions to use what I learned in a real-world setting.

      --
      smd4985
    4. Re:Dan Boneh by tonydiesel · · Score: 1

      He always looked (and sounded) to me like the Israeli Adam Sandler. Damn he's smart. One of the best CS profs I ever had! He's lent his name/work to a new little company:

      IdentiCrypt

    5. Re:Dan Boneh by gmaddox · · Score: 1

      Agreed. My grades will certinly suffer as a result of taking 255, but I love the class and he's an amazing lecturer.

  6. Invulnerable? by RoC+MasterMind · · Score: 1, Interesting
    1. Re:Invulnerable? by Negatyfus · · Score: 1

      This sounds like such a load of bullshit. Can anybody explain to me how a website is supposed to "look up" stored cache data from a browser? When a user requests a certain website, a browser will simply check to see if the version it has in its cache is still up to date and present the cached data to the user. A third website is not in between this process.

  7. Umm... by Anonymous Coward · · Score: 5, Funny

    That summary is so buzzword-rich I feel compelled to purchase a product, if one were offered.

    1. Re:Umm... by j4ck50n · · Score: 1

      LOL, too bad I don't have any mod points.

    2. Re:Umm... by Anonymous Coward · · Score: 0

      That's so funny

  8. Not cracking crypto by Phishpin · · Score: 3, Insightful

    The article says that they "can extract private keys from an OpenSSL-based web server". That doesn't sound like a compromise to the RSA algorithm. They just got the private key.

    --
    -phish
    1. Re:Not cracking crypto by Anonymous Coward · · Score: 0

      exactly ;)

    2. Re:Not cracking crypto by Anonymous Coward · · Score: 0

      It certainly isn't a compromise to the RSA algorithm.. but it is a compromise of a specific implementation.

  9. Crypto for Idiots by photonrider · · Score: 1, Troll

    Is there an english translation of this anywhere? I read the paper and there's lots of impressive looking formula's and stuff in there but I don't see how figuring out how long it takes to decrypt/encrypt something can tell you what it is. Doesn't make sense to me.

    1. Re:Crypto for Idiots by ManicGiraffe · · Score: 5, Informative

      Heh, everyone hold on, it's been a few years since the crypto class in college:

      RSA is based on modular arithmetic. This is nasty stuff: it's not unbreakable, but so difficult to reverse that it's not practical to do so. Basically, when my client sends a request to start a SSL session to a server, I send a number g. The server and client use that number to create a shared key that they use to encrypt their messages.

      Here's the fun part: the server can only unlock the shared messages using its private key. When I send it an encrypted message, it takes the server a certain amount of time to try and unlock it. If the number g I used to encrypt the message is close to the number that is the server's private key, it takes noticably less time for the server to respond with "good message" or "bad message". So by sending millions of queries, I can narrow in on the private key just by timing how long it takes the server to answer me.

      Note it doesn't help me read messages, only to get the private key. Of course, once I have that key, I can read anything the server receives - like credit card numbers, email addresses, etc.

      I've probably confused a few details - someone with more recent experience here feel free to correct me.

    2. Re:Crypto for Idiots by mmol_6453 · · Score: 1

      Wouldn't the private key then change, during the next SSL connection?

      I can see how it would be a real problem for SSL-based VPNs, though.

      --
      What's this Submit thingy do?
    3. Re:Crypto for Idiots by Vengeful+weenie · · Score: 1

      Nope, the session key changes, the private key is basically "identity", ie. who the server is.

  10. is this easy to implement? by circletimessquare · · Score: 4, Interesting

    just randomize the timing in every reply... a few NOOPs?

    or am i missing something?

    it would seem to me that the encryption/ decryption process has no self-awareness of what is a short and long time to reply. therefore, maybe you need another process to watch the time it takes to reply. it could average it over time and provide some sort of super-lengthening of the time it takes to reply so that long replies can be made to look shorter than an artifically lengthened short reply?

    because if you just lengthen the short replies, doesn't that still reveal something since a really long reply will still show a spike?

    if replies happen on the order of 5-50 nanoseconds naturally (hypothetically speaking), and you lengthen the short replies so that the range becomes something like 35-50 nanoseconds, then that could still reveal something.

    so what is needed is maybe a superlengthening of replies so that 5-50 nanoseconds becomes 100-200 nanoseconds? only that way could you hide the difference between a 5 nanosecond and a 50 nanosecond reply completely, no?

    doesn't this have implications though on overall speed? or are the times still so tiny it really doesn't matter?

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    1. Re:is this easy to implement? by selectspec · · Score: 4, Informative

      It's called RSA Blinding which pads the computation by some random timings. Implementations vary but typical performance overhead is 2-10%.

      --

      Someone you trust is one of us.

    2. Re:is this easy to implement? by Anonymous Coward · · Score: 0

      You're right, there IS a very easy solution!!!!

      .

      .

      .

      ...wait for it...

      .

      .

      .
      Just call sleep() before returning.

      *insane laughter*

    3. Re:is this easy to implement? by rew · · Score: 4, Informative

      The idea is that bad code will do something like:

      if (bit[i] != key[i]) return FALSE;

      By timing this accurately, you'll know what (approximately) bit failed. Once fixed, and everyone agrees the fix is trivial, your code will look something like:

      if (bit[i] != key[i]) bad_bit = 1;
      else good_bit = 1;
      [...]
      if (bad_bit) return FALSE;

      As you can see the computer has to do exactly the same work for a good or a bad bit. Thus the timing should be identical.

      It's VERY VERY hard to mask these timing issues by "random" delays. Worst case, the attacker guesses your random numbers. Best case, the attacker will have to run his attack a couple more times to get the same results through the noise.

      Cryptographers have known about this for years. In fact, this (kind of) attack was posted on slashdot no more than a week ago.

      Roger.

    4. Re:is this easy to implement? by Anonymous Coward · · Score: 0

      And I implemented it everywhere I used RSA where it could be probed like this probably before the term "blinding" was coined, certainly before it was common.

      I can't believe OpenSSL didn't do this...

    5. Re:is this easy to implement? by alecthomas · · Score: 1
      [athomas@cavern:~]man RSA_Blinding_on
      RSA_blinding_on(3) OpenSSL RSA_blinding_on(3)

      NAME
      RSA_blinding_on, RSA_blinding_off - protect the RSA
      operation from timing attacks

      ...
      That being said, mod_ssl doesn't appear to use this function, which could be why it is vulnerable to this attack.
    6. Re:is this easy to implement? by Anonymous Coward · · Score: 0

      Hmm, so if I write a daemon that checks passwords using strcmp, and my C library's implementation stops after the first mismatch, I might have the same hole?

      As far as I can tell from your post, anything that works like this would eventually yield a password. You just keep throwing more and more tries at it and see how long it takes to see how many chars you got right.

      Assuming I understand this correctly, doesn't that mean a _lot_ of software potentially has this problem?

    7. Re:is this easy to implement? by vofka · · Score: 1
      You don't need the else good_bit = 1; part, for two reasons:
      1. The 'else' does change the amount of work done, and
      2. The else is redundant anyway, since at the end of the test-set, you only need to check the 'bad_bit' flag to see if comparison failed
      On a Multitasking OS, there will still be timing differences, due to thread preemption and task swapping etc, but these differences should not yield anything useful to cryptanalysis.
      --
      Disclaimer: I meant what I thought, not what I wrote! What? You can't read my Mind? Oh dear!
    8. Re:is this easy to implement? by rew · · Score: 1

      You are not fit to be a cryptographic-program-writer. You SHOULD check the assembly output of your compiler before deploying the code, to make sure that the "else" part consumes exactly the same number of cycles.

      On an CISC machine you should possibly even modify the assembly:

      ; test the bit.
      jne elsepart
      mov 1, badbit
      jmp next
      elsepart:
      mov 1, goodbit
      next:

      by adding a

      jmp next

      into the "else" part to make the timing identical. It is exactly these minute timing differences that cryptanalysts use to determine the probable values of the bits..... Even in the presence of multitasking timing differences, or even networking delays, they manage to reduce the "time-to-crack" from billions of years to something humans can understand.

      On a RISC machine you often have conditional instuctions. The compiler will then most likely turn the C-pseudocode above into something like

      mov 1, R3
      test [....]
      moveq R3, R4
      movne R3, R5 ...
      store R4, badbit
      store R5, goodbit

      which needs no modification to be entirely "flat" on the timing front...

      Roger.

    9. Re:is this easy to implement? by btg · · Score: 1

      RSA blinding doesnt mess with the timings, actually. All it does is multiply in a random number to the ciphertext before decryption and then divide it out later. It defeats these kind of attacks nicely because the attacker cant control the ciphertext that is actually getting fed into the RSA algorithms. There is a fixed (rather than random) performance penalty.

    10. Re:is this easy to implement? by vofka · · Score: 1

      You are of course, quite correct... My Humblest of apologies...

      If only I hadn't posted, I would moderate myself down!!!
      Somebody shoot me! It's been one of those days!

      --
      Disclaimer: I meant what I thought, not what I wrote! What? You can't read my Mind? Oh dear!
    11. Re:is this easy to implement? by Anonymous Coward · · Score: 0

      Passwords are hashed before comparison. Since you don't have a reverse hashing function, you can't determine a guess that will be close to your target. "abcdefgh" is similar to "abcdemgh", but after you hash these strings they won't be anything like each other at all.

    12. Re:is this easy to implement? by catch23 · · Score: 1

      why can't they fix the timings? ie, make all computations last a maximum and a minimum of 5 seconds. That way, all computations will take the same amount of time, how could the program detect this?

    13. Re:is this easy to implement? by John+Sullivan · · Score: 1
      Hmm, so if I write a daemon that checks passwords using strcmp, and my C library's implementation stops after the first mismatch, I might have the same hole?

      This is the traditional way timing attacks are used. In fact measurement of timing to this precision is often difficult, and the canonical exploit was to place the password across a memory page boundary (first n characters at end of first page, remainder in second page) then ask ths OS to verify it. By testing to see whether a page fault had occurred you knew whether the first n character were right, thus turning an exponential search into a linear one. Same theory, different measurement method.

      Assuming I understand this correctly, doesn't that mean a _lot_ of software potentially has this problem?

      Not a lot, because this is a well known flaw and any serious password implementation takes steps to avoid it. (Always compare every character in the supplied password, even if you know early on that the whole thing is invalid.)

      --
      This is my World Wide Web of Whatever
    14. Re:is this easy to implement? by EnigmaticSource · · Score: 1

      True.

      But what about languages that dont produce Machine Specific instructions? Seems that random of fixed length function times would be the only way to reliably protect bytecode from languages like `Java' and `.Net'.

      Albeit that editing your ASM is the De Facto best way, it is not always an alternative.

      (Side Note: Damn... I was just starting to finally like java)

      --
      The Geek in Black
      I know my BCD's (when I'm Sober)
    15. Re:is this easy to implement? by rew · · Score: 1

      That is exactly the idea. You can decide on the number (5 seconds) in advance, but will waste a lot of time if the computation really takes a lot less. Or you might end up with "no improvement" if you happen to buy a faster computer....

      So the trick is usually to make all yes/no paths take exactly the same amount of time. That's the idea I was trying to show.....

  11. In a nutshell... by Dr.+Bareback · · Score: 5, Informative
    The paper was admittedly somewhat difficult reading for those of us who are not frequently subjected to academic research texts. However, I would like to take some time to shed some light on the topic for those of you who do not have an Master's degree from Harvard as I do. :)

    These timing attacks are very different from those executed against an embedded device, such as a smart chip, in that the attack against the smart chip aims to disrupt the device and cause it to skip one or more instructions in order to breach the security. These attacks instead use timing attacks as an oracle which allows the malicious hacker to make thousands of guesses against the insecure server, knowing that the timing of the response will eventually give away the key. For instance, by sending a specially crafted packet to one of these vulnerable SSL servers, one will be able to deduce from the timing whether a given bit in the private key is a 0 or a 1, simply by looking at how much time it takes to respond (on the average, for that particular crafted input). You can see how this could be a bad thing.

    Although this could be a very nasty threat today for machines within a small, predictable network distance from the attacker, there is hope. In the 2.5 kernel, developers have begun adding features that randomize round trip latency for packet reponses. This means that these systems will not serve as good oracles for an active attacker because the timings generated by the randomization feature will not approximate an even (normal) distribution. This means that even by averaging them out, it will not be possible to determine from the timing of a cryptographic response whether (say) the bit is a zero or a one.

    This vulnerablility has actually been discussed as a possiblility for the past few years (mostly within the CERT "members only" club) but it was not until recently that a practical exploit was published. So if your keys were compromised before this went public, perhaps one of the blackhats figured the trick out first. :(

    1. Re:In a nutshell... by Anonymous Coward · · Score: 0, Offtopic
      However, I would like to take some time to shed some light on the topic for those of you who do not have an Master's degree from Harvard as I do.

      And we all know that Harvard is one of the top schools in CS. Or at least that's what their recruiter tried to convince me of. It's sad, but every interaction I've had with a Harvard student or Harvard grad has made me feel like they're a pretentious asshole. You do your school a rather large injustice by using it's name like this.

    2. Re:In a nutshell... by Anonymous Coward · · Score: 0
      ... there is hope ... features that randomize round trip latency for packet reponses. This means that these systems will not serve as good oracles ... because the timings ... will not approximate an even (normal) distribution. This means that even by averaging them out, it will not be possible to determine from the timing ...
      You do realize that all they need to know is the distribution of this "randomized" latency, right? And all they have to do to figure that out is send the same packet N consecutive times (or just read the source code).

      The root problem is with the crypto algorithm, not the network. Adding random network latencies will just piss off the users while doing nothing to thwart the hackers.

      I'm guessing "how to fix a problem by masking the symptoms" is a required course at Harvard?

    3. Re:In a nutshell... by Anonymous Coward · · Score: 0

      He's a troll.

    4. Re:In a nutshell... by Lux · · Score: 4, Insightful

      I'm pretty sure you're trolling, but I'll bite...

      Your elitism has been commented on thoroughly, so I'll skip to the meat. :)

      It takes 1.5 million queries to break an SSL key using this technique if you have an account on the same machine. That's for a local attack.

      They go on to give evidence that a remote attack is possible, but don't actually give parameters that would indicate the complexity of the attack. 1.5 million queries is already kind of pushing it though, and I would imagine taking the attack to the remote setting, even with a small round trip, will explode the complexity significantly. So the attack may not be feasible at all.

      Furthermore, adding random variance to latency data doesn't theoretically help much. Get enough samples, and that noise drops out. It raises the number of queries, yes, but doesn't stop the latency from forming a statistically usable distribution.

      -Lux

    5. Re:In a nutshell... by chialea · · Score: 1

      Err... it's not the crypto algorithm, per se, but the implementation. If you look at the paper, certain compiler options can partially mask it, but what you really want is blinding, or if you're really hard-core, you might want to use the techniques in a paper from STOC/FOCS that I believe is called "Secure CryptoComputing for NC1".

      Essentially what you're trying to do is mask the difference in the timings, unless you're using a theoretically interesting technique.

      Lea

    6. Re:In a nutshell... by Anonymous Coward · · Score: 0

      Sorry.

      Emphasizing the word 'algorithm' was a poor choice on my part. Of course I meant the implementation of the algorithm, but I was busy pointing out that it wasn't a networking problem, so I didn't go into enough detail. *sniff*

      Anyway, thanks for catching the ambiguity. ;)

    7. Re:In a nutshell... by sql*kitten · · Score: 2, Funny

      I would like to take some time to shed some light on the topic for those of you who do not have an Master's degree from Harvard as I do.

      Harvard should teach a course on how to shut up about Harvard :-P

    8. Re:In a nutshell... by quintessent · · Score: 1

      So, how about semi-random latency? Take the longest expected maximum time of a query, then add a small random time to that just to mix things up. Once you've calculated this, make sure the query takes that long.

    9. Re:In a nutshell... by Anonymous Coward · · Score: 0

      I dunno. Everyone I hang with hates to mention Harvard, because it usually causes adverse reactions in the people we're talking to.

      We call it "dropping the H bomb" :P

    10. Re:In a nutshell... by Anonymous Coward · · Score: 0

      Relying on slight randomization to make things significantly more difficult is a bad idea.

      Overcoming such effects is a well-understood signal processing problem and is not difficult.

      Not masking the timing of RSA operations so many years after the original paper warning about timing vulnerabilities was published (mid- to late 90s, I think) is simply inexcusable.

    11. Re:In a nutshell... by Xenographic · · Score: 0, Redundant

      You don't want to add randomness; the signal will still be there, just under more noise. You want to remove that signal entirely, by making all these calculations take the same amount of time, no matter what; even if you can short circuit them. If you think about it long enough, you'll realize that we want to remove the information we're sending them--that's much better than hiding it :]

    12. Re:In a nutshell... by Anonymous Coward · · Score: 0

      Definitely true of most Harvard students/grads that I know as well. But I wouldn't go so far as to suggest that all Harvard students/grads try to keep from mentioning it. I've certainly had some unfortunate encounters with guys who try to work their connection to Harvard into every conversation (which is actually quite amusing when they're talking to another Harvard grad without even realizing it). Then again there are usually so many other things to dislike about those people that it's really minor in comparison. And I note you posted anonymously (as am I), presumably to keep from associating yourself with Harvard. Too bad, I'm not ashamed of graduating from Harvard, but I'm not about to open myself up to a bunch of flames for it either.

    13. Re:In a nutshell... by quintessent · · Score: 1

      I believe that's what I just described. I make the signal take the same time. Then I add a small random value to that just for redundancy.

    14. Re:In a nutshell... by Xenographic · · Score: 1

      In that case, the extra randomness is pointless unless you want to lower the QoS...

  12. Xbox by Anonymous Coward · · Score: 5, Interesting

    Wouldn't this type of attack be feasible on the Xbox instead of trying to factor the key? You even have access to the hardware so very precise timing could be done.

    Just a thought.

    1. Re:Xbox by Anonymous Coward · · Score: 0

      OK, that was dumb. Too bad your comment is even dumber.

    2. Re:Xbox by Nintendork · · Score: 1
      Actually, you're the idiot. The whole point of the exploit is to determine the value of the private key. The original poster was just saying that latency could be measured quite accurately since the traffic would be over the LAN.

      -Lucas

    3. Re:Xbox by Anonymous Coward · · Score: 0

      What part of "the DVD signing key isn't stored in your hardware or on any public network" are you having trouble understanding?

    4. Re:Xbox by patrik · · Score: 1

      I hear that at least the BIOS is RC4 encrypted. This attack would not work on decrypting most modern symmetric ciphers since all encryption/decryption is constant time. Actually symmetric ciphers are much more secure than the Public/Private Key (per keylength 7kbit RSA ~ 256 AES) . In fact with PGP and I would guess SSL is the same they only use the Private Public key encryption to securely agree upon a symmetric key to encrypt the data with. Symmetric keys use XORs are permutations to encrypt and are generally faster.

      Patrik

      --
      ----------
      Just your ordinary BOFH ;)
      http://killertux.org
    5. Re:Xbox by PissingInTheWind · · Score: 1

      No. The key they are looking for isn't stored on the Xbox.

      --

      A message from the system administrator: 'I've upped my priority. Now up yours.'
    6. Re:Xbox by John+Sullivan · · Score: 1
      Actually symmetric ciphers are much more secure than the Public/Private Key (per keylength 7kbit RSA ~ 256 AES)

      Symmetric and asymmetric ciphers solve completely different problems. Whether one or the other is more secure is a meaningless question. It depends not only on the key size (which could be chosen arbitrarily in either case to 'prove' whatever assertion you wanted), but also on the problem domain and how closely the ciphers in question map to it, and also the current state of the art in cryptanalysis which marches forwards every year.

      In fact with PGP and I would guess SSL is the same they only use the Private Public key encryption to securely agree upon a symmetric key to encrypt the data with.

      This is a performance issue. Symmetric ciphers simply don't provide the capability that is required for securing ad-hoc channels, but asymmetric ciphers are too slow for encrypting the entirety of the communication. RSA encrypting a 3DES key provides a bridge between the two.

      Symmetric keys use XORs are permutations to encrypt and are generally faster.

      I don't even know what you're trying to say here, but ciphers built on pure XOR tend to be pathetically weak. The stronger symmetric ciphers use some combination of arithmetic, non-arithmetic, lookup tables, permutation and other methods to build up non-linear functions which are highly resistant to analysis.

      At the most fundamental level, even RSA is just a combination of ANDs and NOTs (or equivalent logic). There are slow symmetric ciphers too, though speed in hardware, software or both is generally an important consideration in their design.

      --
      This is my World Wide Web of Whatever
    7. Re:Xbox by krogoth · · Score: 1

      No. The attack has to be done on a server that has the private key, and if the xbox has the private key things would be much easier :)

      --

      They that quote Benjamin Franklin on liberty and safety deserve neither.
    8. Re:Xbox by karlm · · Score: 1
      Symmetric keys use XORs are permutations to encrypt and are generally faster.

      Somebody set us up the cipher? ... parse error, brain dumping core.

      Maybe you read a bit on RC4 and picked out a few key words. The RC4 stream cipher is dirt simple, blazingly fast, and consists of only addition, XOR, and swapping of single bytes within a 256-byte buffer. Unfortunately, it has some serious caveats, such as discarding the first 256 bytes of keystream and taking care to never repeat keys.

      Stream ciphers are most commonly produced by taking the output of a keyed pseudorandom function (which may also take previous plaintext/ciphertext as input, most notably a black cipher in CFB mode), known as the keystream, and XORing it with the plaintext to geerate the ciphertext.

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
    9. Re:Xbox by patrik · · Score: 1

      Symmetric keys use XORs are permutations to encrypt and are generally faster.

      It should read. What I said made no sense grammatically and made even less sense technically. Thank you for taking my mistake so literal. It should read: Symmetric ciphers use XORs AND permutation to encrypt and are generally faster. I was actually speaking of DES when I said this I figured RC4 was ver similar and it is in many respects.
      --
      ----------
      Just your ordinary BOFH ;)
      http://killertux.org
    10. Re:Xbox by karlm · · Score: 1
      DES and RC4 are just about as different as two symeteric ciphers can be. If you were referring to DES, you left out one of the most important aspects, the non-linear substitutions (via the sboxes). DES's simple permutation key schedule is a weakness. (Key complementation properties, weak and semiweak keys, etc.) The initial and final permutations make no difference to its security in ECB or CBC modes. The expansion permutation is really the only permutation that does much for security.

      I can code RC4 up from memory. It's a simple algorithym and the keystream output is independent of the plaintext. DES on the other hand has several tables and permutations to memorize if you want to code it from memory. I'm not aware of anyone ever coding up DES from memory. DES is a block cipher, and is not a stream cipher in it's bare form.

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
  13. After reading the article.... by myst564 · · Score: 5, Informative

    It seems that this is severe when the attacker is very "close" in network terms to the server. It relies on the time difference when multiplying numbers in OpenSSL.

    So, if you are "far" away from the SSL server, I suppose this attack isn't as "good".

    All this talk about closeness and goodness really just means we're using smoke and mirrors.

    OpenSSL needs to figure out how to be completely mundane with any input string from the client.

    1. Re:After reading the article.... by Basje · · Score: 1

      Theoretically, you are right, practically, no.

      Basically, if your connection to the attacked machine is shorter, the noise you'll receive is less.

      Considering that there are thousands of compromised machines on the internet, there'll probably be a machine closeby that is vulnerable to some known exploit. That machine can then be used by the cracker as a proxy that does the timings. It may also do the attack automated, and at the end just relay the resulting key somewhere.

      Remember that most machines are in a serverroom or datacenter, no computer is alone on the internet.

      --
      the pun is mightier than the sword
  14. Followup or what? by Stavr0 · · Score: 4, Informative
    Swiss Researchers Find A Hole In SSL

    This sounds a lot like the weakness discovered last month by the LASEC folks in Switzerland ...

    1. Re:Followup or what? by SiliconEntity · · Score: 4, Informative

      No, the recent OpenSSL attack was different. That relied on distinguishing messages which failed due to a bad MAC versus bad padding. The timing was slightly different in the two cases. It allowed you to get some portions of a sample message decrypted.

      The new attack just looks at how long the RSA decryption takes for carefully chosen values, and determines from that what the RSA secret exponent is, which means the RSA secret key. So this leaks the server's secret key and the server operator loses all of his cryptographic security. It's a much worse break.

      However the timing precision needed for the new attack is much tighter thatn for the pad-vs-mac one, so at this point it can only be mounted across a LAN or on a shared-user system.

  15. Where's the DMCA lawsuit by Anonymous Coward · · Score: 5, Funny

    Why don't all the OpenSSL folks sue these guys under the DMCA? It's good enough for Adobe, it should be good enough for Open Source folks, right?

    1. Re:Where's the DMCA lawsuit by Lemmeoutada+Collecti · · Score: 1

      I can see a few reasons:

      1) We want it fixed, not hidden (no security through obscurity)
      2) That which does not root our boxen makes them stronger
      3) Can't afford the legal fees and lawyers
      4) Too busy with pr0n

      Pick whichever floats your boat

      --

      You can have it fast, accurate, or pretty. Pick any 2.
  16. Palladium by minus_273 · · Score: 1

    the bit about MS palladium being a security risk is very intersting also very ironic.

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
  17. Is this different from the recent OpenSSL warning? by rthille · · Score: 1

    my.domain.org daily insecurity output for Fri Feb 21 03:15:01 PST 2003

    Running /etc/security.local:
    Package openssl-0.9.6g has a weak-encryption vulnerability, see http://www.openssl.org/news/secadv_20030219.txt

    --
    Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
  18. Re:How could OpenSSL be vulnerable to security att by minus_273 · · Score: 2, Funny

    if it makes you feel better, the TLS standard was a mix of MS PCT and SSL :)

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
  19. Define Remote.... by SgtPepper · · Score: 4, Informative

    According to the conclusion at the end of the article:

    "We devised and implemented a timing attack against OpenSSL { a library commonly used in web
    servers. Our experiments show that, counter to current belief, the timing attack is eective when
    carried out between two machines in a local network. Similarly, the timing attack is eective
    between two processes on the same machine and two Virtual Machines on the same computer. We
    hope these results will convince designers of crypto libraries to implement defenses against timing
    attacks as described in the previous section.
    "

    So it looks like it is only useful against machines on the local network, which means you would have to have a comprimised machine on the network to launch the attack from. Possible yes, but it's not has simple has querying a remote system over the internet (I would assume that the unknown latency would render a timing attack useless, but couldn't use you use a traceroute to determine the latency and compinsate? Just a thought..) Anyway, I don't expect there to be 1,000s of comprimised servers by tommorow...

    1. Re:Define Remote.... by stratjakt · · Score: 1

      Similarly, the timing attack is e ective
      between two processes on the same machine and two Virtual Machines on the same computer.


      Sounds like a "get out of chroot jail free" card to script kiddies. So you get a free account on some linux server somewhere, and use it as a launching point for havoc.

      --
      I don't need no instructions to know how to rock!!!!
    2. Re:Define Remote.... by chuck · · Score: 1

      So it looks like it is only useful against machines on the local network


      This particular implementation maybe. You're right that it won't mean 1000 cracked machines tomorrow, but it's the beginning.


      Consider if it takes 100 packets to determine a piece of the private key on a local network. How many more packets would it take to control for a couple of routers? 100 times? Okay, so from a remote part of the network, now it takes 10,000 packets to determine that same part of the key. And it takes 100 times longer to get the whole key. That's still bad.

    3. Re:Define Remote.... by sfe_software · · Score: 1

      Anyway, I don't expect there to be 1,000s of comprimised servers by tommorow...

      No, but does that make this any less valid? A determined cracker will find a way. Maybe he has to comprimise an internal box first, to then be able to crack the SSL key -- does that make this any less risky?

      It seems to me, to avoid timing attacks, that the server (SSL or whatever) should be careful to ensure that the response timing is similar whether it is an error condition or success condition -- in other words, give no clue, timing or otherwise, whether a particular query was successful, partly right, or a failure. The response timing (similar to the other timing vulnerability discovered a few weeks ago) should not give any indication as to how "close" you are to cracking the key -- much like common methods of determining if a human response is a lie or truth.

      To truly hide is to truly mask the response timing, either by artificially (randomly) inflating the response time, or (better still) inflating the response time to result in a similar timing pattern regardless of the cause (success or failure or anything in between).

      Anyone really considering security has thought of this already, and either artificially pads the response time, or at least makes the timing seem arbitrary.

      --
      NGWave - Fast Sound Editor for Windows
  20. Is the xbox vulnerable to this? by Anonymous Coward · · Score: 2, Interesting

    I am aware that there is currently an effort to find the private key for the xbox. When I saw this headline I immediately wondered if the xbox is vulnerable. I assume it is not because it is only doing client encryption?

    1. Re:Is the xbox vulnerable to this? by Anonymous Coward · · Score: 0

      you answered your own question. Xbox verfies only, the private signing key does not exist on the box so it would be hard for it to reveal it..

    2. Re:Is the xbox vulnerable to this? by Neon+Spiral+Injector · · Score: 1

      Correct, it isn't vulnerable, because you can't send something to the Xbox and say, "encrypt this", and see how long it takes.

    3. Re:Is the xbox vulnerable to this? by flonker · · Score: 1

      Simple. Send 1.5 million Linux binaries to Microsoft to sign, and measure the response times.

  21. Oh... by Anonymous Coward · · Score: 0

    I thought they were talking about things like DDOS attacks and what not.

    If they were, I was going to say, that slashdot is THE most effective time attack ever. The time between a posting on slashdot and the webserver the story is on going down... remarkible..

  22. Chill please, It's not that bad by Tailhook · · Score: 3, Interesting

    IANACE (crypo expert)

    The attack works by measuring the time it takes for an SSL server to encrypt things. By causing the SSL server to do lots of encrypting of known things, you can derive a private key. Apparently, this must be repeated many times and is highly dependent on timing. Thus, it's not fast and network latency, high server load, etc. will reduce the effectiveness of the attack. Further, subtle environment differences prevent an obvious "script kiddy" level implementation of this attack. A relevant quote from the paper:

    As we will see, the performance of our attack varies with the exact environment in which it is applied. Even the exact compiler optimizations used to compile OpenSSL can make a big difference.

    A solution to this might be to implement a small random delay before the server returns cyphertext to the client, no? A few extra milliseconds here and there would probably be sufficient.

    --
    Maw! Fire up the karma burner!
    1. Re:Chill please, It's not that bad by iabervon · · Score: 1

      It would be trivial to prevent the attack: add a nanosleep(10) to the end of each operation, and any amount of time under the size of a timeslice disappears, because the SSL server will spend the rest of the timeslice sleeping, making the timing perfectly uniform.

      If you want to be sure (and deal with multi-timeslice operations and kernels that give the process control in a more timely fashion), use setitimer. It's not a hard problem to correct, but people didn't previously think that it was actually a problem (i.e., that you learned significantly more about the private key from timing than you did from seeing something encrypted with it).

    2. Re:Chill please, It's not that bad by Anonymous Coward · · Score: 0

      15ms + 0 to 50%, averaged over many samples, is still more than 10ms + 0 to 50%. (heck, you could probably tell the difference between 10ms + 0 to 100% and 15ms with enough samples even though they average the same)

      Adding a random delay only makes it take a little longer. Padding them all out so it's constant time is much better.

    3. Re:Chill please, It's not that bad by cduffy · · Score: 1

      A solution to this might be to implement a small random delay before the server returns cyphertext to the client, no? A few extra milliseconds here and there would probably be sufficient.

      No, you don't always want to have that delay (random or otherwise), or it can be accounted for -- better is to have a desired total time for the operation (random or otherwise) and usleep(desired_total_time-time_taken), and much better than that is just to perform all the possible steps in any case (merely discarding those which aren't necessary given the actual paths takes).

  23. He's right by Anonymous Coward · · Score: 0

    This is a case of being able to closely inspect the details of a system, and finding a way to penetrate it.

    It's no coincidence these tests werent done with MSFT products.

    Happy Hacking, everybody! The end of Open Source!

  24. I'm sorry by Anonymous Coward · · Score: 0

    but it looks like you're appending your foot to your mouth. If you want to put your foot in your mouth, I'd try something like $mouth = 'foot' or something. Thanks.

    1. Re:I'm sorry by Anonymous Coward · · Score: 2, Funny

      mouth < foot

    2. Re:I'm sorry by Tailhook · · Score: 4, Funny

      A SQL varient of this is far more effective:

      insert into mouth values ('foot')

      --
      Maw! Fire up the karma burner!
    3. Re:I'm sorry by Vengeful+weenie · · Score: 1

      insert into mouth
      select from feet
      where speech like 'DOH!';

  25. Re:for all of you!! fellow ROT-13 readers! by Anonymous Coward · · Score: 0

    That reads like The Hobbit!

  26. Re:for all of you!! fellow ROT-13 readers! by Anonymous Coward · · Score: 0
    Translation of parent:
    David Brumley and Dan Boneh writes "Timing attacks are usually used to attack civilians buildings such as WTC. We show that timing attacks apply to several towers. Specifically, we devise a timing attack against USA. Our experiments show that we can collapse WTC from a pathetic weapon such as two planes with only 4 terrorists inside. Our results demonstrate that timing attacks against big towers are practical. Subsequently, infidels should implement defenses against timing attacks. Our paper can be found at Al Quada's Applied Crypto Group."
    Disclaimer: I'm just a translator. I do not endorse the views expressed.
  27. Re:for all of you!! fellow ROT-13 readers! by Phroggy · · Score: 1

    um, that really wasn't funny.

    --
    $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
    $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  28. ROT-13+ by silvakow · · Score: 3, Funny

    Is there even a reason to be concerned with this when ROT-13+ is perfectly secure? It was recently expanded from regular ROT-13 so it doesn't only encrypt letters, so it should be good enough for any application.

    --
    In the long run, we're all dead.
    1. Re:ROT-13+ by iggymanz · · Score: 2, Funny

      For added security, I encrypted this post with Rot-13 *twice*

    2. Re:ROT-13+ by silvakow · · Score: 1

      I don't mean to sound redundant here or anything, but you know how people use DES 3 times and called it 3DES? Why not use ROT-13+ 3 times and call it 3ROT-13?

      --
      In the long run, we're all dead.
    3. Re:ROT-13+ by (H)elix1 · · Score: 1

      For added security, I encrypted this post with Rot-13 *twice*

      (Putting on my best Scooby voice) That would be called Rot-Row-13...

    4. Re:ROT-13+ by Pharmboy · · Score: 1

      don't mean to sound redundant here or anything, but you know how people use DES 3 times and called it 3DES? Why not use ROT-13+ 3 times and call it 3ROT-13?

      ROT-13 CUBED sounds more L337. I was gonna do a super script 3, but /. wont let me. That would be more L337.

      --
      Tequila: It's not just for breakfast anymore!
  29. Practical? by Anonymous Coward · · Score: 2, Interesting
    If this method of attack develops bits of a private key by averaging the response time of lots of "specially crafted packet[s]", how would you conduct an attack that would succeed in the real world?

    It's going to take a lot of time for a 1024-bit key, and it seems to me such an attack should be easily noticed, and even then the timing dependency should make this attack impossible to pull off in the real world unless you're sitting right next to the target box.

    1. Re:Practical? by djbrums · · Score: 2, Informative

      It takes 2 hours in the real world. If you log connections, you'll see it there. But do you watch your logs that closely? One funny defense to try is to run OpenSSL w/ logging to a full disk. The full disk breaks the timing attack as the OS valiantly and unsuccessfully tries to find free blocks to record the SSL error message.

    2. Re:Practical? by ca1v1n · · Score: 2, Informative

      I saw Boneh give a talk on this a few days ago. One machine, over a LAN, can do it in two hours. Sure, that can be noticed if you know to look for lots of aborted SSL sessions, but if you don't have this on an IDS or something like that, someone can Nimda your secretary's box and still get your private key before your sysadmin gets back from the weekly staff meeting.

  30. Do you even read the article????? by Anonymous Coward · · Score: 0


    Why is this a 5?

    The article provides FAR superior timing masking ideas.

    Of course, it would be asking alot to read the article first

    1. Re:Do you even read the article????? by circletimessquare · · Score: 0, Offtopic

      good lord, excuse me for asking some questions.

      "rtfm!" i know, i know, i've heard it a million times before...

      can i discuss it on the discussion board, please? do i have your permission? or do i have to have doctoral thesis level knowledge before my question can be considered credible?

      that's hardly in the spirit of open discussion, no?

      relax dude, it's just slashdot, don't take it so seriously ;-P

      --
      intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    2. Re:Do you even read the article????? by Anonymous Coward · · Score: 0

      relax dude, it's just slashdot, don't take it so seriously

      Perhaps you should take your own advice, no?

  31. No testing needed to crack MS products by Anonymous Coward · · Score: 0

    Just use the damn crap, and pretty soon someone somewhere will send you multiple proofs of the insecurity of your system...

  32. Master's degree from Harvard by Anonymous Coward · · Score: 1, Funny

    GW Bush is trolling /.?

    1. Re:Master's degree from Harvard by Anonymous Coward · · Score: 0

      No the grammers too good

  33. Actualyl it IS that bad by Anonymous Coward · · Score: 5, Interesting


    Being further from the server will add noise, but they already compensate for noise by averaging 7 samples (5 would have been sufficient for local use). Over a remote network, you take more samples. (perhaps quite a few)

    It currently takes 2 hours to crack a server.
    If you have a week or so of time on your hands, a realtively unused server (not mail.bigisp.com but admin.bigisp.com), and the asministrator doesn't notice the traffic spike, quite a few sites could be vulnerable.

    Remember, people get upset when crypto can be cracked in terms of *years* and *dollars*. This can crack things in HOURS on a fast pc.

  34. Re:for all of you!! fellow ROT-13 readers! by Anonymous Coward · · Score: 0

    vag
    znva(vag netp, pune* neti[])
    {
    pbafg pune* cge;
    pune ohs[OHS_FVMR];

    juvyr (!srbs(fgqva))
    {
    vag yra = sernq(ohs, 1, fvmrbs(ohs), fgqva);

    sbe (cge = ohs; cge < ohs + yra; ++cge) {
    *cge = EBG13(*cge);
    }

    sjevgr(ohs, 1, yra, fgqbhg);
    }

    erghea 0;
    }

  35. Idiot... by andfarm · · Score: 3, Informative
    Buffer overflows are a result of sloppy code missing length checks.

    Timing attacks are completely unrelated -- they are a result of code running predictably enough that the timing of a response leaks information. They are not a general security breach -- this is an isolated case where a large number of requests to a modSSL server could leak the server's private key -- but nothing else.

    --

    TANSTAAFI: There Ain't No Such Thing As A Free iPod.

    1. Re:Idiot... by Pharmboy · · Score: 1

      Buffer overflows are a result of sloppy code missing length checks.
      Timing attacks are completely unrelated -- they are a result of code running predictably enough that the timing of a response leaks information. They are not a general security breach -- this is an isolated case where a large number of requests to a modSSL server could leak the server's private key -- but nothing else.


      So, the timing is so perfect because the code produces such predictable results, it leaks information? Maybe if they put some sloppy code in the length checks, it wouldn't be so predictable... ;)

      --
      Tequila: It's not just for breakfast anymore!
    2. Re:Idiot... by veddermatic · · Score: 1

      Then, imagine if they got all CAT5 cable manufaturers' line workers drunk every night before work, thus ensuring hangovers which would reslt in differing quality of cable, giving you unpredticable latency....

      I smell Patent!!

      --
      Department of Homeland Security: Removing the rights real patriots fought and died for since 2001
    3. Re:Idiot... by Tuxinatorium · · Score: 1

      umm, no, the speed of light is pretty constant, buddy. Sure, it's slightly slower the denser the material is. But the difference is negligible compared to the total travel time of the light, and that is only about half to one third of the total latency. Light can cover the equatorial circumference of the earth in 133ms, and most paths are much shorter than that despite the networking in jagged lines.

    4. Re:Idiot... by ClosedSource · · Score: 1

      Actually, in a way buffer overflows and predictable timing have a lot in common.

      Why is a lack of length checks so common in legacy code? Because it's human nature not to spend additional time on things that are not critical. Prior to exposure to hackers, the majority of potential buffer overflows were harmless. Most would never occur under normal conditions.

      Now predictable timing in encryption code can be exploited by hackers, so in a way it's just as much a bug as a potential buffer overrun. The trend is to create new classifications of bugs based on vulnerabilities.

    5. Re:Idiot... by veddermatic · · Score: 1

      Aparently the speed of humor is not, as the joke I made hasn't quite gotten to you yet =)

      --
      Department of Homeland Security: Removing the rights real patriots fought and died for since 2001
  36. For all of you NOT rot-13 readers decoded by dark-br · · Score: 1

    David Brumley and Dan Boneh writes "Timing attacks are usually used to attack civilians buildings such as WTC. We show that timing attacks apply to several towers. Specifically, we devise a timing attack against USA. Our experiments show that we can collapse WTC from a pathetic weapon such as two planes with only 4 terrorists inside. Our results demonstrate that timing attacks against big towers are practical. Subsequently, infidels should implement defenses against timing attacks. Our paper can be found at Al Quada's Applied Crypto Group."

    1. Re:For all of you NOT rot-13 readers decoded by Anonymous Coward · · Score: 0
      Karma whore!!! I posted the translation 50 minutes before you.
      Re:for all of you!! fellow ROT-13 readers! (Score:0) by Anonymous Coward on Thursday March 13, @08:43PM (# 5508404)
      For all of you NOT rot-13 readers decoded (Score:2) by dark-br (473115) on Thursday March 13, @09:33PM (# 5508596)
    2. Re:For all of you NOT rot-13 readers decoded by Anonymous Coward · · Score: 0
      *snore*
      2) You're a jerk, so no one cares.
      Sorry, I'm new here. I didn't know that pointing out karma whores makes someone a jerk. I'll have to remember that the next time I catch you karma whoring. :)
  37. That's a different, but interesting, problem. by astroboscope · · Score: 2, Insightful
    ...which doesn't involve crypto.

    Since it came out in 2000, have modern browsers fixed the cache cookie problem? (Besides refusing cookies?)

    --
    If we were ants living on a Rubik's cube, differential geometry would be a little more confusing.
  38. An explanation of this attack by Myria · · Score: 5, Informative

    The exploit behind this is actually not that complicated, if you know RSA. In RSA, you have these formulas:

    C=M^e mod n (encryption/signature verification)
    M=C^d mod n (decryption/signing)

    When OpenSSL wants to sign a message C, it needs to produce the signature M using the "M=C^d mod n" formula above. Calculating this is simple in idea: calculate C to the d'th power modulo n. However, d is a very big number; on average, it is n/2. There is no way you can calculate C^d mod n by multiplying C with itself many times.

    The answer to this is to use a "repeated squaring" algorithm. Let's say that d=17, and you want to calculate C^d. Multiplying C 17 times works, but is very slow. It is possible to calculate C^17 using the following formula:

    C^17 = C * C^16
    C^17 = C * (((C^2)^2)^2)^2

    Now, there are only 5 multiplies: 4 squares and one multiply with C. There is a pattern to when you square and when you multiply. The number 17 is 10001 in binary. The binary digits tell you when to square and when to multiply.

    You start with the number 1, and go through the bits in 10001 from left to right. For each bit, either 0 or 1, you square. But if a bit is a 1, you also multiply. This means that the first step (a 1 bit), you square, then multiply by C. Since you started out with 1, you get C here. For the next 3 bits, all 0's, you square, getting C^8 as your result. The last bit is a 1. You square, getting C^16, then multiply by C again, since it's a 1 bit. This gets you C^17.

    The problem here is that "1" bits require a different amount of work than "0" bits. When you have a "1" bit, you have to perform an additional multiply than for a "0" bit. If you can somehow time each multiplication/square step, you can determine whether the bit of "d" was a 0 or 1. If you can do this 2048 times, you can calculate all the bits of the private key, which is "d". That is what this attack does, minus all the complicated details.

    This RSA hole can only possibly be exploited when the attacker has physical access to the device (as in a smart card attack), or the owner of the private key automatically signs/decrypts messages sent from a client (as in OpenSSL). Manual encryption systems, such as those used for email, can't be exploited this way realistically.

    Myria ^-^ *hugs*

    --
    "Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
    1. Re:An explanation of this attack by alanwj · · Score: 2, Interesting
      The problem here is that "1" bits require a different amount of work than "0" bits. When you have a "1" bit, you have to perform an additional multiply than for a "0" bit. If you can somehow time each multiplication/square step, you can determine whether the bit of "d" was a 0 or 1. If you can do this 2048 times, you can calculate all the bits of the private key, which is "d". That is what this attack does, minus all the complicated details.

      So, does that mean a feasible solution to prevent this sort of attack would be to perform the multiply operation irrespective of what the bit is, and only use the result if the bit is a 1? Would there be any real downsides to fixing it this way?

      Alan
    2. Re:An explanation of this attack by Myria · · Score: 2, Informative

      Yes, that will work ^-^. Note that if you do this, you also will need to do the modulo operation on the multiplication result you're about to discard. Otherwise, the lack of a modulo operation would become a noticeable time difference.

      Myria ^-^ *hugs*

      --
      "Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
    3. Re:An explanation of this attack by Garridan · · Score: 1

      That is what this attack does, minus all the complicated details. Wow. So... none of the complicated details are used in the attack? So it uses magic?

    4. Re:An explanation of this attack by btg · · Score: 2, Interesting

      Ím sorry, but thats just crap.

      Please read the paper. The key to this attack is the selection of different multiplication algorithms depending on the lengths of the words being multiplied. Then, depending on the algorithm, the timing attack is based on whether the ciphertext is larger, smaller, or a multiple of the secret RSA moduli. Your explanation is a little too oversimplified.

  39. Re:Actually it IS that bad by Tailhook · · Score: 1

    Busy sites will have variable server load for the attacker to cope with. It's more than just network latency you have to factor out.

    I wonder to what degree not knowing the precise parameters of the SSL server would complicate things. If, for instance, you don't know whether the server is a SPARC, Intel or some form or dedicated hardware. Each combination of software and hardware would have wildly different behavior relative to the very precise measurements required.

    Also, by it's nature, this attack probably can't be used to implement a general purpose worm. So to be safe you'll need a lot of hosts in different locales at your disposal. If you spend too much time cracking remote hosts from a single site you will get found.

    Finally, once you have a private key, you also need access to the traffic between the compromised server and whomever is trusting it. Without this it's not much good. Once you have managed to reliably tap that traffic, what then would you do with it? It's not a cash machine that starts pumping out money on command. Passively sniff collecting credit card numbers to sell off? Rouge employees do that all the time anyhow. Implement a man-in-the-middle somehow?

    A concerted effort against a specific target could result in some successful theft of something. As we all know, however, there are many ways to attack a system when one has focus.

    As vulnerabilities go, I don't think it rates very high. I'll bet 99% of the SSL servers and other encryption endpoints in the world will be made secure against this in the course of regular upgrades before an actual attack results in any real consequence.

    But, then again, IANACE. :)

    --
    Maw! Fire up the karma burner!
  40. Why hasn't the simple fix reached OpenSSL? by dido · · Score: 5, Interesting

    I believe Paul Kocher first proposed (this is PDF) this attack way, way back in 1995, and as I recall, he even applied it to networked systems. RSA Labs' BSAFE, since version 3.0 has included a "blinding factor" in its RSA implementation that renders this attack ineffective. Reading the original RSA Labs bulletin (also PDF) on this attack shows a very simple fix, and I'm surprised that this hasn't made its way into OpenSSL! Ron Rivest proposed this back in early 1996. What's up?

    --
    Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
    1. Re:Why hasn't the simple fix reached OpenSSL? by mh_cryptonomicon · · Score: 3, Informative

      Actually, if you look at the Cryptonomicon.Net article about this attack, you can see that, in fact, blinding has been added to the OpenSSL code. The issue is whether or not it is turned on by developers.

    2. Re:Why hasn't the simple fix reached OpenSSL? by dido · · Score: 2

      Interesting. But why in the name of all that is holy, did the OpenSSL developers choose to use an insecure-by-default system that requires every developer of an OpenSSL server application to turn on the blinding algorithm explicitly? That will mean patching every application! Apparently, some distributions that bundle OpenSSL don't include the blinding code either, without having it compiled in, which points to the distinct possibility that OpenSSL has this option turned off by default for some reason. The next release should have it turned on and active by default all the time, unless there's a really pressing reason not to (e.g. if turning it on would decrease the speed of the whole thing by roughly an order of magnitude, which I seriously doubt).

      --
      Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
    3. Re:Why hasn't the simple fix reached OpenSSL? by mh_cryptonomicon · · Score: 1

      This is a very valid point. A number of us like to kvetch about Microsoft deploying IE in a non-secure default configuration, we should probably ask the same question of open source developers. I think there are three issues here: what the OpenSSL team is doing, what the disto developers are doing, and what application developers are doing. The OpenSSL guys are writing the source code for a crypto library that can actually be made to be secure by default against timing attacks. This is, however, not the default configuration. So, because it's not the default configuration, the distro people grab the source, compile it with more or less the default options and move on. Application developers use crypto and ssl services from libcrypto or libssl and sort of "just expect it to work." Part of the problem is that the level of understanding of these issues is rather limited within the latter two groups listed above. I'm not saying they're morons. Far from it. But they're not crypto specialists, and there's documentation out there that will actually tell you that if you're using CRT, you're not succeptible to timing attacks. So, If you're not attending the conferences and hearing about advances on some of these types of attacks, you might not know that you would want to turn on blinding by default.

    4. Re:Why hasn't the simple fix reached OpenSSL? by emag · · Score: 1

      Performance. Turning RSA blinding on results in a performance penalty. Even the paper itself, in section 6, Defenses, mentions that RSA blinding will add a 2% to 10% performance penalty, depending on implementation. So yes, it's possible it *might* decrease performance by an order of magnitude (a reduction of 10% would be a magnitude lower). It's still a good idea.

      --
      "The urge to save humanity is almost always a false front for the urge to rule." --H.L. Mencken
  41. Re:for all of you!! fellow ROT-13 readers! by Anonymous Coward · · Score: 0

    tr A-Za-z N-ZA-Mn-za-m

  42. You assume the pretension is inadvertent. by j.e.hahn · · Score: 0, Offtopic

    You assume that:

    1) Harvard thinks it's a bad thing to have pretentious, exclusionary alums.
    2) That this attitude isn't inculcated in those who attend Harvard.

    I've attended an Ivy (Brown, not Harvard) and the reality is they get off on the "we're better than everyone else" bit. It's about money and power -- something abundant in much of the student and alumni populace at Ivies.

    This is not to say everyone at Harvard is like that (or any other top-notch school...) I've got friends from Harvard who aren't. But a lot of Harvard alums are. Same goes for any prestigious institution.

    1. Re:You assume the pretension is inadvertent. by Anonymous Coward · · Score: 0

      While your point about there being many students at Harvard who "get off on the 'we're better than everyone else' bit" is certainly true, I don't believe any actual Harvard grad would so blatantly and pointlessly state his connection to Harvard in a post like that. I live in Cambridge, MA near Harvard Square and have met plenty of Harvard students and grads, some of whom tried to work the fact that they went to Harvard into every conversation, but none of them were that arrogant and ridiculous about it. It's clearly intended as a provocation. It's a troll.

  43. Use this attack against X-Box by philthechill · · Score: 5, Interesting

    The paper mentions that things like palladium may also have this kind of problem (unless they implement timing protections of some sort), which leads me to believe the 2048-bit X-Box key could also be attacked this way, and probably much faster since you might be able to attack it right on the box without going over a network.

    But I could be wrong.

    Phil

    1. Re:Use this attack against X-Box by PaddyM · · Score: 1

      Yeah. But they should have waited for Palladium to go gold before they let everyone know the inherent flaw.

    2. Re:Use this attack against X-Box by Anonymous Coward · · Score: 0

      Myria's post, further down (give him/her the mod points): Too bad this system can't be used against the Xbox signature key, because signing of games is not done in real time..

    3. Re:Use this attack against X-Box by jareds · · Score: 3, Informative

      Microsoft's private key isn't on the X-box, but rather their public key is. This is because the public key is what the box needs to verify that a game is signed by Microsoft. It certainly does not need the private key. Hence, there is no private key on the box to extract.

      X-box security is actually extremely different from Palladium. For Palladium, it is inherently necessary to have a private key (that is, a private key inaccessible to the end user) with every computer, so that computers can authenticate the trusted kernel (aka Nexus) that they are running to third parties. If they use an RSA implementation vulnerable to a timing-based attack, a local user could easily perform such an attack, extract the key, and forge any desired authentication.

    4. Re:Use this attack against X-Box by leuk_he · · Score: 1

      The whole point is that a binary is validated by the xbox rom. if this validation is also timecritical then an attack might be possible.
      (If OK takes longer than Not ok)

      Or is the checking of a signed message an complete different method?

    5. Re:Use this attack against X-Box by jareds · · Score: 2, Insightful

      Think about what you're saying for a second. If it is possible, using any sort of method whatsoever, to extract an RSA private key from a device that has only a public key, RSA is completely broken in general. In this particular example, I just build an X-box, substituting my adversary's public key for Microsoft's public key, perform whatever hocus pocus you're suggesting, and get my adversary's private key.

      The fact is that the timing attack given in the article involves timing decryption, an activity where the private key is used. For the reasons I outlined above, it would make no sense to have a timing attack where what you're timing only involves the public key.

      In general, since X-boxes do not have the private key, the private key cannot be found given unrestricted access to X-boxes unless RSA is broken.

    6. Re:Use this attack against X-Box by bperkins · · Score: 1

      So maybe we could attack the X-Box this way:

      Write a game for the X-Box. Drop it in the mail to have it signed by microsoft, and start your stop watch. Write down how long it takes to get back. Repeat 1.5 million times.

      The might get a bit suspicious when you send in games like Rouge Ninja Fighters 1432143, though.

  44. From far away? Probably not... by j.e.hahn · · Score: 3, Informative
    (I would assume that the unknown latency would render a timing attack useless, but couldn't use you use a traceroute to determine the latency and compinsate? Just a thought..)

    You'd need to know something about how the latency varies. It's not constant. It's got a probability distribution over some range. (it's bounded below, and probably above too...)

    Problem is, if that probability distribution is random, or "near" random, you're going to have a bitch of a time extracting enough info to perform an attack of this sort. This is why you need to be close; it's not because there's low latency (that helps) but because the latency has low variation, which means you can assume a value for it and subtract that out. With a random distribution, your "signal" will be lost in the noise.

    It's another example of an attack being not quite as practical as advertised to the public. There's a real threat here, but it's not the "ultimate 'sploit".

    1. Re:From far away? Probably not... by bshuttleworth · · Score: 3, Insightful

      Hmmmm... Not as unlikely as that - lots of people host on virtual-machines (e.g. Verio) or with managed hosting companies (e.g. Rackspace, which is why I'm nervous ;) ). That means that latency is very low, and fairly consistent.

      Just a thought.

    2. Re:From far away? Probably not... by jpiterak · · Score: 2, Insightful
      True, but you could also send a burst of traceroute packets (udp or tcp timeouts) to all the routers in the route at the same time that you perform an iteration of the attack.

      Then you could (somewhat) compensate for latency with each iteration.

      Not necessarily elegant or foolproof, but I think possible... I wonder how much varience/latency (noise) you can reasonably account for before the exploit breaks down (or becomes too time-consuming to be worthwhile...)?

    3. Re:From far away? Probably not... by j.e.hahn · · Score: 1

      Well, I'm not familiar enough with the technical nitty gritty, but I'm not sure latency samples will necessarily be sufficient. Again, if the probability distribution is sufficiently random, they don't really tell you anything about the latency in the packets you actually care about.

      As for where it breaks down, I'd have to check the original paper again, but it'd be at about 50% of the necessary time resolution for the attack. In otherwords, if we need timing data accurate to 10 microseconds, and the latency data has a variance exceeding 5 microseconds, we probably can't get sufficient data out of the results. (This is just a guess.) It might actually be an interesting paper to determine exactly what sort of latencies hamper the attack, and extend/rebuff the attack based on this.

      There may even be some prior art, already. I recommend further reading.

  45. Why triple-DES is better than triple-ROT-13 by yerricde · · Score: 2, Informative

    you know how people use DES 3 times and called it 3DES? Why not use ROT-13+ 3 times and call it 3ROT-13?

    ROT-n is a closed associative binary operation. That is, two composed ROT-i and ROT-j make a ROT-k. This is not true of DES, which is why DES E(i) D(j) E(i) provides 112 bits of effective key length.

    --
    Will I retire or break 10K?
    1. Re:Why triple-DES is better than triple-ROT-13 by Bill+Privatus · · Score: 1

      Wish I had some mod points left. This was very funny! Quite nicely turned, I must say.... :-)

      Now let's compare the turning radius of a Mitsubishi-Fuso step-van and a Lmborghini Contach. At. oh, 40 mph or 4 Gees, whichever comes first <8^)

      --
      Redundancy is good; triple redundancy is twice as good! - Me.
  46. Re:for all of you!! fellow ROT-13 readers! by Anonymous Coward · · Score: 0

    Just Great... We need a ROT-13 enabled gcc so we can ROT-26 our code.

  47. Ooooh, DAN Bon-EH by Ayanami+Rei · · Score: 1

    Funny, cuz I read:
    Da Boner

    As in, the boner is one smart cookie... and he tilts his head at 30 degree angle to left.

    And I say, damn he needs to get some air then. Let 'em boys out!

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  48. Re:How could OpenSSL be vulnerable to security att by muzzmac · · Score: 1

    Thanks! My fantasy world is consistent again.

  49. Re:Is this different from the recent OpenSSL warni by mh_cryptonomicon · · Score: 1

    Congratulations, you've found a reference to a completely different attack.

    This is a relatively well known type of attack. You ask a private key holder to decrypt a bunch of things and ask it how long it took. To defend against these types of attacks, the private key holder can either a) decrypt only a few things for you (which is a bit anti-social if you're an SSL engine.) or b) lie to you about how long it took to decrypt the things you sent.

    The second option is effectively what happens when blinding is turned on.

  50. Ooh Ooh Brown! I'm so smaaart! nt by Kahlua · · Score: 0, Offtopic

    nt

  51. Why random delay and not fix delay ? by freuddot · · Score: 2, Insightful

    Everybody's suggestion seems to be to add a random delay to responses.

    Why ?

    Why not make the response time fixed ? Like in the biggest possible response time. If every query was responded in x ms, NO info would be leaking to the attacker. Or am I missing something ?

    1. Re:Why random delay and not fix delay ? by underworld · · Score: 2, Informative

      Having a fixed "response time" would be appropriate. But it seems simpler to add a random delay before replying than it is it determine the elapsed time and then compensate with a difference delay.

      In other words:

      x = time to process

      random delay:
      response time = x + Rand(y)

      fixed delay:
      response time = x + (FixedTime - x)

      The other problem with a Biggest Possible Fixed Time is performance. Encryption already causes overhead; maximizing overhead on remote network connections is not generally viewed as a Good Thing (TM). Plus you have to figure out what the Biggest Possible delay is, and that just sounds like homework (yuch!).

    2. Re:Why random delay and not fix delay ? by Anonymous Coward · · Score: 0
      Plus you have to figure out what the Biggest Possible delay is, and that just sounds like homework (yuch!).
      Shrug. You could just measure the maximum time as the process runs. Then just spin* until you hit that amount of time.

      And if you're worried about exposing yourself before the max delay has been measured, try it with a few thousand random values at startup.

      * - yes, I know spinning is a bad idea. This is just a reply to the 'homework' comment.

    3. Re:Why random delay and not fix delay ? by Anonymous Coward · · Score: 0

      Randomizing the delay is only useful if the randomized value is a multiple of a number that is bigger than the value to be hidden and the remainder is truncated.

      Ooops. But that reduces to picking a random multiple of a fixed delay, so it turns out that randomization doesn't give us any benefit at all! ;)

      Note: This isn't a straw-man argument. It's a mathematical fact that you can average-out any random distribution if you take enough samples. Thus you have to truncate what you want to hide in order to prevent someone from being able to calculate an average time difference.

    4. Re:Why random delay and not fix delay ? by lamber45 · · Score: 1
      The other problem with a Biggest Possible Fixed Time is performance. Encryption already causes overhead; maximizing overhead on remote network connections is not generally viewed as a Good Thing (TM).


      Look at Figure 4 in the paper carefully; even after compiling with -O0, the RSA library takes no more than 2x10^7 CPU cycles, which works out to 8.3 ms wall-clock time at the processor-speed they mentioned. Some random no-name drive has an 8.9 ms seek-time. Besides, this isn't necessarily a performance-hit; the system could just do a usleep(100000-usecs_taken) and gain the same security-benefit as log as the attacker can't do a ps against the system.

    5. Re:Why random delay and not fix delay ? by mindriot · · Score: 1

      That's usually what is being done. Timing attacks often work simply by noticing that if a key/message/whatever fails to be accepted at a certain stage in the algorithm, the function returns a little earlier or so. As such, the basic protection scheme just says, never return early when an error/improper packet/etc. is encountered, but take the algorithm all the way through and just return failure at the end. (blatantly simplified for explanatory purposes of course...) But if you just time any encryption to e.g. count the number of squares and multiplys as mentioned in another thread here, I'd suppose it's a bit harder to unify response time for any input.

    6. Re:Why random delay and not fix delay ? by Henn · · Score: 1

      The problem with adding random delays is that it doesn't really help much (as long as you actively spin).

      Let's say that x is the amount of time it would have normally taken for an operation, and R is a random delay. Through various means (for instance, by reading the source :), we determine that R gets mod'd by a constant (k) in order to bound it (don't want those processes spinning for 15 minutes!)

      So total time (T) = x + R % k

      Assuming a good random number generator, over many iterations (R%k) will average out to ~(k/2)

      You can now calculate x using:
      x = ave(T) - k/2

      A few extra steps, but we got back what we were looking for.

      If you used actual sleeps (ie - usleep(2)) instead of active sleeps, the scheduler and background contention would likely normalize the numbers to the clock ticks and diminish the effectiveness of these attacks.

  52. Uniform response time. by The+Monster · · Score: 2, Redundant
    Rather than randomly padding the response time, how about running tests to determine the longest time that can be reasonably expected to take for the calculation, then adding some fudge factor to arrive at a set constant.
    Where 'constant' need only be constant for a specific length of message. An implementation that allows different sized-packets to be input would be allowed to use a formula to determine the response time, such that any two packets of the same size would have the same response time
    Set a timer to that constant prior to the calculation to trigger the actual reply at the specified time. That way EVERY transaction takes EXACTLY the same time, and no information is given up. Even the dumbest smart cards should be capable of keeping track of time

    Alternatively, add your random padding to the constant, not to the time required to do the calculation. That has the advantage of giving DISinformation to the attacker. And there is a certain charm to that, don't you think?

    --

    [100% ISO 646 Compliant]
    SVM, ERGO MONSTRO.

    1. Re:Uniform response time. by DJPenguin · · Score: 1

      It's in the article. Well, paper. That's called "Quantizing" and it's one of the three possible solutions to the problem.

  53. re: Why random delay and not fix delay? by markhahn · · Score: 2, Insightful

    fixed or random delays work find - as long as you don't leak info about the key. this is mentioned in the paper.

    the attack is a nice proof-of-concept, but almost totally impractical. notice that their "lan" was a completely private switch, with just the attack and target machines on it. if your lan is anything like mine, there's huge variance that will defeat the attack. not to mention that any other activity on the target machine will make the attack harder, or any kind of traffic shaping (they were doing 140 probes per second). not to mention simply turning on blinding.

    it's great to see this vuln demonstrated in the lab, but really no need to worry about it.

  54. hah, I win by Anonymous Coward · · Score: 1, Funny

    All you fools who use OpenSSL, this thing cannot touch my 1337 telnet servers.

  55. ROT-26 is TWICE as secure as ROT-13 by lewko · · Score: 1

    Behold my 31337 ROT-26 encryption method:

    David Brumley and Dan Boneh writes "Timing attacks are usually used to attack civilians buildings such as WTC. We show that timing attacks apply to several towers. Specifically, we devise a timing attack against USA. Our experiments show that we can collapse WTC from a pathetic weapon such as two planes with only 4 terrorists inside. Our results demonstrate that timing attacks against big towers are practical. Subsequently, infidels should implement defenses against timing attacks. Our paper can be found at Al Quada's Applied Crypto Group."

    --
    Do you or your partner snore? - Visit www.snoring.com.au
    1. Re:ROT-26 is TWICE as secure as ROT-13 by TheRaven64 · · Score: 1

      Actually, ROT-26 is better employed for copy protection. Under the DMCA you can prosecute anyone who writes code to bypass it...

      --
      I am TheRaven on Soylent News
  56. Non-deterministic, workable, timing delay by Bill+Privatus · · Score: 2, Insightful

    All the OpenSSL developers need to do is check between each calculation, and wait until a slashdot article is moderated at "insightful"....NOT :-D

    ("funny", now, would operate like a geiger counter somewhere in the western region of the former U.S.S.R...and would probably overload the servers of the world; there would quite simply be no delays in any SSL engine on the planet.)

    Not that I'm trying to add to the noise, mind you...

    --
    Redundancy is good; triple redundancy is twice as good! - Me.
  57. A billion years? by Iron+Fusion · · Score: 2, Interesting

    Not breakable for a billion years? Assuming that a typical modern computer could check at least 1000 keys per second, and that Moore's law continues and computing power keeps doubling every 18 months, then it would "only" take 3057 years until a typical computer was capable of checking all possible 2048 bit keys in 1 second. Sure, that's a long time, but hardly a billion years :).

    1. Re:A billion years? by Anonymous Coward · · Score: 0

      The flaw in this is, of course, that it's highly unlikely that Moore's Law will continue to apply for over 3000 years (Moore himself has said that he's been pleasantly surprised that it's remained true for as long as it has).

      In 3000 years, Moore's Law would predict that computing power would double 2000 times -- 2**2000 or about 10**600 times faster than today's computers. For comparison consider that modern computers are "only" about 10**10 times faster than computers of 50 years ago. This would require switching times far faster than known quantum events (all well over 10**-100 seconds), or alternatively systems with far more parallel processors than there are atoms in the known universe (well under 10**100 atoms). Somehow I doubt that we'll be able to overcome those limits :).

    2. Re:A billion years? by Anonymous Coward · · Score: 0

      But when quantum based computers become mature enough, I'd say in at most 200 years, the ability to perform trillions of operations simultaneously will negate any kind of physical speed/time limitations. Every current known algorithm will be O(1)!

  58. Re: Why random delay and not fix delay? by Anonymous Coward · · Score: 0

    All they have to do is to take more samples to smooth out the random noise you get in practice. In the test environment they managed to crack the key in 2 hours. If they take 100 times as many samples, the attack takes 8 days 8 hours. Some of the bits they get may still be erroneous, but even if there are a dozen bits they got wrong, they can then fix them through brute force during the rest of the 8th day, and then break into the machine on the 9th day. All they need now is a machine where the sysadmins don't look at the logs too often...

  59. Separate key pairs for different jobs ... by invi · · Score: 2, Insightful

    Again, this shows how important it is to use separate key pairs for different jobs.

    Imagine you use the same private key for both vulnerable SSL servers, and for offline protocols, such as PGP or S/MIME. Whoever successfully attacks your interactive SSL server would be capable of reading encrypted mail sent to you in the past.

  60. No humor? by Anonymous Coward · · Score: 0

    I thought this was funny; no more slashdot humor for you!

  61. Or for the microsoft crowd: by Anonymous Coward · · Score: 0

    For Each foot In mouth

    MsgBox "Oh Shiiiiiit!"

    Next foot

  62. Not so! Best case is better. by tmoertel · · Score: 1
    rew wrote:
    It's VERY VERY hard to mask these timing issues by "random" delays. [...] Best case, the attacker will have to run his attack a couple more times to get the same results through the noise.
    This is true only if the random delays are added to the running time of the operation you want to conceal. A simple, alternative method that reveals no information about the operation's running time is to decide upon the total (typically random) running time before performing the operation. Then, after the operation completes, pad out the balance of the decided-upon time with a delay:
    desired_run_time = true_random(MAX_PADDING) + MAX_RUNNING_TIME_OF_OP
    clock_0 = get_time_hires()
    perform_op()
    hires_sleep(desired_run_time + clock_0 - get_time_hires())
    You'll notice that this method reliably conceals the running time of perform_op and, further, that true_random can be replaced with a weaker function (and even a constant!) without risk of compromising the running time of the concealed operation.

    Nevertheless, it would be better to rewrite the concealed operation so that its running time didn't reveal sensitive information. Having to use delaying tactics imposes a significant response-time penalty, which can be a problem where low latency is desired. But it's nice to know that these concealment techniques are available when it's not possible to change the concealed operation (e.g., when the operation is part of a closed-source library).

    1. Re:Not so! Best case is better. by Submarine · · Score: 1

      Very true.

      If you *add* a random delay J of variance sigma^2, the attacker will take the average of n measurements, which will give him the real timing with a jitter of variance sigma^2/n.

      Of course, if sigma is large compared to the necessary timing precision, n would be prohibitely large. On the other hand, we cannot make sigma too large for fear of loss of performance.

      We should definitely get the numbers and compute the orders of magnitude.

  63. Would this type of attack be feasible on the Xbox by laertes · · Score: 1

    Yes. You simply have to setup some hardware to monitor the amount of time the encryption hardware spends verifying the discs. Then, you try to reverse engineer the particular algorithms they use in the hardware. This isn't as bad as it seems: there's only a finite number of known ways to accomplish something like RSA (or ElGamal, or AES (but I don't think the Xbox uses AES)). This paper might serve as a guide, but you'd likely have to perform simmilar analysis to what the paper's authors did.

    Once you did it though, I expect that you could have the key in a day or two. Once again, we are taught that the weakness isn't in the math, it's in the implementation.

    --

    Yes, I'm still a junky. Are you still a bitch?
  64. Why not add end to end timing guarantees? by Henn · · Score: 1

    The recent SSL timing attacks I've seen have had their fixes be of the sort "Make the failure scenario take the same amount of time as the success scenario", which essentially causes certain paths to waste compute cycles purposely and unnecessarily. By gathering the max possible invocation time, opeenssl could just grab the time at invocation, then call usleep up till its max. This offers distinct overall advantages over the lengtening in that it causes the implementation to use processing resources much more efficiently (the scheduler will run other jobs while openssl sleeps), and also gives coders the freedom to implement the application in an optimal manner and still reap the benefits. Besides, users can't really tell the difference between 30ms and 70ms anyhow :)

    1. Re:Why not add end to end timing guarantees? by Henn · · Score: 1

      On second thought, this works best when defending against network attacks.

      If on the same system, then a user could examine the total amount of compute time the process had taken with ps(1), then go from there.

      The granularity may or may not be good enough.

  65. They also assume .. by apankrat · · Score: 1

    .. that the logs on the target machines neither exist nor ever audited. And as with any probing method, the vulnerbility can very simply be fighted by rating incoming connections. Let the OpenSSL do its job efficiently, and guard against logistics of the vulnerability instead.

    --
    3.243F6A8885A308D313
  66. Re: the private key cannot be found by apankrat · · Score: 1

    In general, since X-boxes do not have the private key, the private key cannot be found given unrestricted access to X-boxes unless RSA is broken.

    Sure it can, but not with a timing attack of course. Just nit picking.

    Public key is essentially a pair of e and (p*q), where e - some number, p and q - primes. And the private key is an inverse of e by modulo (p-1)*(q-1). Thus factoring public key gives you private one.

    --
    3.243F6A8885A308D313
  67. Ah, nevermind the first reply by apankrat · · Score: 1

    Forgot to read the context of the thread as usual :)

    --
    3.243F6A8885A308D313