Slashdot Mirror


DARPA Delving Into the Black Art of Super Secure Software Obfuscation

coondoggie writes Given enough computer power, desire, brains, and luck, the security of most systems can be broken. But there are cryptographic and algorithmic security techniques, ideas and concepts out there that add a level of algorithmic mystification that could be built into programs that would make them close to unbreakable. That's what the Defense Advanced Research Projects Agency (DARPA) wants for a new program called "Safeware." From DARPA: “The goal of the SafeWare research effort is to drive fundamental advances in the theory of program obfuscation and to develop highly efficient and widely applicable program obfuscation methods with mathematically proven security properties.”

124 comments

  1. Good luck with that. by jcochran · · Score: 3, Insightful

    The objective of "mathematically proven security properties" via program obfuscation is definitely not achievable. After all, it's a given security principle of "security through obfuscation" is unsupportable. If an adversary is capable of obtaining the executable of a program, they can also reverse engineer that same executable. It may take a lot of effort, but it is always achievable.

    1. Re:Good luck with that. by roman_mir · · Score: 2, Insightful

      OTOH all security is by obscurity, what is a password if not a piece of data that is obscured from most people and supposedly is only known by the one that owns it?

    2. Re:Good luck with that. by Anonymous Coward · · Score: 1, Insightful

      Security through obscurity as a first line of defense is perfectly fine. Now if the obscurity is the entirety of your security then you have problems.

    3. Re:Good luck with that. by Racemaniac · · Score: 2

      How sure are you? If you can execute the program, that still doesn't mean you can predict exactly what it does and understand everything it could possibly do.
      A simple example of checking a password: you can see that the program hashes it and checks it against the hash it should be, doesn't mean you know what the right password is to get beyond it.
      Even if you can execute the program, triggering every possible machine state to analyze it is impossible for non trivial programs. And i'm wondering what they could come up with to obfuscate the program logic that would make it computationally very hard to look into the program :).

    4. Re:Good luck with that. by Fwipp · · Score: 5, Informative

      Well, something that is obscure is just something that's hard to read. A password is supposed to be hidden, and not seen at all. "Security through obscurity" is the idea that they'll be able to see your algorithms, just not figure it out.

    5. Re:Good luck with that. by IamTheRealMike · · Score: 5, Informative

      The objective of "mathematically proven security properties" via program obfuscation is definitely not achievable. After all, it's a given security principle of "security through obfuscation" is unsupportable. If an adversary is capable of obtaining the executable of a program, they can also reverse engineer that same executable. It may take a lot of effort, but it is always achievable.

      That is the standard consensus view in the software industry, yes. I'm afraid to tell you though, that it's wrong.

      Last year there was a mathematical breakthrough in the field of what is called "indistinguishability obfuscation". This is a mathematical approach to program obfuscation which has sound theoretical foundations. This line of work could in theory yield programs whose functioning cannot be understood no matter how skilled the reverse engineer is.

      It is important to note here a few important caveats. The first is that iO (to use the cryptographers name) is presently a theoretical technique. A new paper came out literally 5 days ago that claims to discuss an implementation of the technique but I haven't read it yet. Will do so after posting this comment. Indeed, it seems nobody is quite sure how to make it work with practical performance at this time.

      The second caveat is that the most well explored version of it only applies to circuits which can be seen as a kind of pure functional program only. Actually a circuit is closer to a mathematical formula than a real program e.g. you cannot write circuits in C or any other programming language we mortals are familiar with. Researchers are now starting to look at the question of obfuscating "RAM programs" i.e. programs that look like normal imperative programs written in dialects of, say, C. But this work is still quite early.

      The third caveat is that because the techniques apply to pure functions only, they cannot do input or output. This makes them somewhat less than useful for obfuscation of the sort of programs that are processed with commercial obfuscators today like video games.

      Despite those caveats the technique is very exciting and promising for many reasons, none of which have to do with DRM. For example iO could provide a unifying framework for all kinds of existing cryptographic techniques, and enable cryptographic capabilities that were hereto only conjectured. For example timelock crypto can be implemented using and iO obfuscator and Bitcoin.

    6. Re:Good luck with that. by lgw · · Score: 1

      If an adversary is capable of obtaining the executable of a program, they can also reverse engineer that same executable. It may take a lot of effort, but it is always achievable.

      Well, you can also brute force a 256-bit key. It may take the lifetime of the universe, squared, but it is achievable.

      The whole point of this technology is that the computer executing the code doesn't have the source or data in the clear.

      There's some existing work designed for databases that work just this way. I send "the cloud" and encrypted query that causes the server to sum a column in some encrypted table and return me the encrypted result all without the server having any keys. It's all manipulation of encrypted data in such a way that you return the manipulated result without any information leaking - even to the server doing the manipulation.

      And, of course, once you have a few primitive operations, you can build a Turing-complete system. Performance is the thing though. The first approach I saw took seconds to increment a counter or somesuch, IIRC, just really unworkably slow. But it seems all it takes to make all of this work is sufficient performance gains, so sure, I can see it in time.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    7. Re:Good luck with that. by Anonymous Coward · · Score: 1

      Fully homomorphic encryption. 'nuff said. Happens to be my current project: developing a processor that uses FHE. Unfortunately, they don't want to use specialized hardware. Does an FPGA count?

      CARRIER LOST. ;)

    8. Re:Good luck with that. by Anonymous Coward · · Score: 0

      Well, something that is obscure is just something that's hard to read. A password is supposed to be hidden, and not seen at all.

      Obscure as a verb means to hide/cover or to make difficult to understand. From Merriam Webster:

      2obscure verb \äb-skyur, b-\
      : to make (something) difficult to understand or know : to make (something) obscure

      : to hide or cover (something) : to be in front of (something) so that it cannot be seen

      http://www.merriam-webster.com...

      They are basically synonyms.

    9. Re:Good luck with that. by Fwipp · · Score: 3, Informative

      Fortunately, Merriam Webster is not the final and complete authority on the connotations of words, nor on how they are used within specialized disciplines.

    10. Re:Good luck with that. by Fwipp · · Score: 1

      Thanks, this is very interesting. I'd imagine that DARPA is aiming to do further research along these lines.

    11. Re:Good luck with that. by Noah+Haders · · Score: 1

      OTOH all security is by obscurity, what is a password if not a piece of data that is obscured from most people and supposedly is only known by the one that owns it?

      not impressed. "security by obscurity" generally refers to restrict information on how a system works in order to make it harder for people to access. pwords are not that - everybody knows that a system can be accessed by a password, and there are protocols in place for resetting or releasing passwords (if that is the case), etc. The rules of the game are well publicized.

    12. Re:Good luck with that. by Anonymous Coward · · Score: 0

      Fortunately, Merriam Webster is not the final and complete authority on the connotations of words, nor on how they are used within specialized disciplines.

      Except there definition matches pretty much every other dictionary. And obscure does not mean something different in technical terms. You've just made that up.

      Dictionary.com:

      verb (used with object), obscured, obscuring.
      12.
      to conceal or conceal by confusing (the meaning of a statement, poem, etc.).
      13.
      to make dark, dim, indistinct, etc.
      14.
      to reduce or neutralize (a vowel) to the sound usually represented by a schwa ().

      Conceal is also a synonym for hide.

      The Oxford English Dictionary:

      VERB

      [WITH OBJECT] Back to top
      1Keep from being seen; conceal:
      grey clouds obscure the sun
      MORE EXAMPLE SENTENCES
      SYNONYMS
      1.1Make unclear and difficult to understand:
      the debate has become obscured by conflicting ideological perspectives
      MORE EXAMPLE SENTENCES
      SYNONYMS
      1.2Keep from being known:
      none of this should obscure the skill and perseverance of the workers

      OED is a definitive source of the English language and also says that obscure means to conceal.

      And the OED defines conceal as:

      VERB

      [WITH OBJECT]
      1Not allow to be seen; hide:

      So, sorry, but you are wrong.

    13. Re:Good luck with that. by Megol · · Score: 0

      But you are? Nice ego you got there...

    14. Re:Good luck with that. by tlambert · · Score: 1

      Security through obscurity as a first line of defense is perfectly fine. Now if the obscurity is the entirety of your security then you have problems.

      It tends to give you a false sense of being more protected than you actually are, and it gives management incentive, through this false sense working on them as well, that they budget less for the work on real security in depth.

      There's a natural human psychological barrier against getting a good lock for one's front door, when one already has a lock for one's front door. Why buy another lock, when I have a perfectly good lock? It's the same mentality behind the anti-circumvention and reverse engineering language in the DMCA: only bad guys would do that.

      In fact, this is a problem with the whole "security in depth" idea, since it goes against the intuitions of those controlling the budget strings.

      It's one of the reasons I think ASLR is pretty much bullshit, just the same as code obfuscation is bullshit. Most code obfuscation comes down to "but people can't read assembly language!", or, worse, "but people can't read Java byte code!", or, worst of all, "What's 'gnu indent'?".

    15. Re:Good luck with that. by Anonymous Coward · · Score: 0

      No, in this case the established use of the term in the field is.
      And in the context of homomorphic encryption, obscurity has a rather narrow definition.
      Namely, an obscure algorithm has properties such that the entity performing some operation on the ciphertext can't easily (= without solving a specific computationally hard problem) discern what operation on the equivalent plaintext it is performing.

    16. Re:Good luck with that. by IamTheRealMike · · Score: 5, Informative

      OK, I read the paper.

      The money quote is at the end:

      The evaluation results from Section 4 show that work still needs to be done before program obfuscation is usable in practice. In fact, the most complex function we obfuscate with meaningful security is a 16-bit point function, which contains just 15 AND gates. Even such a simple function requires about 9 hours to obfuscate and results in an obfuscation of 31.1 GB. Perhaps more importantly (since the obfuscation time is a one-time cost), evaluating the 16-bit point obfuscation on a single input takes around 3.3 hours. However, it is important to note that the fact that we can produce any “useful” obfuscations at all is surprising. Also, both obfuscation and evaluation are embarrassingly parallel and thus would run significantly faster with more cores (the largest machine we experimented on had 32 cores).

      Translated into programmer English, a "16 bit point function" is basically a mathematical function that yields either true or false depending on the input. It would correspond to the following C++ function prototype:

      bool point_function(short input);

      In other words you can hide a 16-bit "password" inside such a function and discover if you got a match or not. Obviously, obfuscating such a function is just a toy to experiment with. "SHA256(x) == y" is also a point function and one that can be implemented in any programming language with ease - short of brute forcing it, there is no way to break such an "obfuscated point function". Thus using this technique doesn't presently make a whole lot of sense. However, it's a great base to build on.

      I should note that the reference to AND gates above doesn't mean that the program is an arbitrary circuit - it means that the "program" which is being obfuscated is in fact a boolean formula. Now you can translate boolean circuits into boolean formulas, but often only at great cost. And regular programs can only be translated into circuits at also a great cost. So you can see how far away from practicality we are. Nonetheless, just last year the entire idea that you could do this at all seemed absurd, so to call the progress so far astonishing would be an understatement. Right now the field of iO is developing so fast that the paper's authors note that whilst they were writing it, new optimisations were researched and published, so there are plenty of improvements left open for future work.

    17. Re:Good luck with that. by Anonymous Coward · · Score: 0

      I am skeptical about unbreakable-obfuscation reaching the likes of C or Java. A program by definition is set of instructions to be read / executed by the machine. If it is readable by machine, it should be readable by a human. No problem there.

      Is a C program obfuscated? No problem, just disassemble to executable and understand the assembly code.

    18. Re:Good luck with that. by fabrica64 · · Score: 1

      So you can basically "mathematically" obfuscate a function that is a"pure" function not implementable in a imperative programming and that it has no IO = you can obfuscate something that has no use and probably nobody knows well what it is doing :-)

    19. Re:Good luck with that. by hawkinspeter · · Score: 1

      I imagine that self-altering program code could become incredibly hard to analyze and unravel.

      --
      You're a temporary arrangement of matter sliding towards oblivion in a cold, uncaring universe
    20. Re:Good luck with that. by 93+Escort+Wagon · · Score: 1

      I am skeptical about unbreakable-obfuscation reaching the likes of C or Java.

      Perhaps; but perl had it down pat years ago.

      --
      #DeleteChrome
    21. Re:Good luck with that. by Anonymous Coward · · Score: 0

      It's one of the reasons I think ASLR is pretty much bullshit,

      And yet you would be wrong. Without ASLR return to libc exploits are trivial.

    22. Re:Good luck with that. by Anonymous Coward · · Score: 1

      Assume for the moment it is true.

      That also means that an undetectable virus will exist as well.

    23. Re:Good luck with that. by flyingsquid · · Score: 1

      Well, I found the summary completely incomprehensible, so DARPA is apparently well on their way with this new technology to befuddle and obfuscate...

    24. Re:Good luck with that. by tlambert · · Score: 1

      It's one of the reasons I think ASLR is pretty much bullshit,

      And yet you would be wrong. Without ASLR return to libc exploits are trivial.

      Without shitty libc implementations, return to libc exploits are NOT trivial.

    25. Re:Good luck with that. by disambiguated · · Score: 2

      Without ASLR, return to x exploits are trivial for all x. All that is needed is the address of a function (or any code -- it doesn't have to be the 'official' entry point of a function) that does something useful to the attacker, and a way to clobber the stack.

      This doesn't really have anything to do with libc, except that it is a rich source of well known addresses (without ASLR). So what in the hell are you talking about?

    26. Re:Good luck with that. by FatdogHaiku · · Score: 1

      Well, I found the summary completely incomprehensible, so DARPA is apparently well on their way with this new technology to befuddle and obfuscate...

      I thought that was the purview of the legislature...

      --
      You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
    27. Re:Good luck with that. by ShanghaiBill · · Score: 2

      I imagine that self-altering program code could become incredibly hard to analyze and unravel.

      There are many tricks to make it hard. Some CISC instruction sets have variable length instructions, and allow instructions to start at any byte offset. So you can have the same string of bytes execute a completely different sequence of instructions depending on the offset of the entry point. This can make dis-assembly very challenging. I have heard from my biologist friends that DNA sometimes does the same thing, with the same DNA sequence encoding different proteins depending on the offset of the start codon.

    28. Re:Good luck with that. by tlambert · · Score: 1

      This doesn't really have anything to do with libc, except that it is a rich source of well known addresses (without ASLR). So what in the hell are you talking about?

      Why is "arbitrary return to X" a problem in the first place? Is it shitty code that should be running in a sandbox and having it's jumps outward sanitized to the location the jump originated in the first place maybe the problem?

      You could always run only the non-shitty code outside the sandbox.

    29. Re: Good luck with that. by Anonymous Coward · · Score: 0

      Sorry to shatter your world but ASRL can be broken by using spraying techniques. In particular the Windows implementation is ridiculously bad.

    30. Re:Good luck with that. by Anonymous Coward · · Score: 0

      I think you just failed the job interview. :-)

      And there *are* ways of generating code that is meaningless until it is run on the right machine and in exactly the right context with the machine not able to function if it is disassembled to a level necessary to know enough about it's internals to have any hope of emulating it's function and the required context to then map the functionality of the code. i.e. Even if you got your hands on the hardware you would not be able to dig deeply enough into it's internals to intercept the dynamic keys it uses, without causing it to forget the key and sequence position and therefore become useless.

      However doing it on commodity hardware (or emulators thereof), that can be halted, stepped and interrogated at the gate level, is much much harder. Was the latter scenario what you had in mind?

    31. Re:Good luck with that. by Anonymous Coward · · Score: 0

      So, sorry, but you are wrong.

      No, not really. The meaning of the word within the field of computer science is accepted as "to make something difficult to understand or interpret". Just because there are additional meanings to a word, it doesn't mean that all those alternatives are applicable to a particular case.

    32. Re:Good luck with that. by indeterminator · · Score: 1

      You could always run only the non-shitty code outside the sandbox.

      Good luck with that. Particularly, with the part of figuring out which software is good enough to not require a sandbox. And that's before considering the bugs your sandbox has.

    33. Re:Good luck with that. by Anonymous Coward · · Score: 0

      Merriam Webster doesn't deal in connotations. They deal in denotations.

      Your abuse of the English language makes me cringe.

    34. Re:Good luck with that. by tlambert · · Score: 1

      Run all your libraries in ring 2 (currently unused on Intel) instead of ring 3 with all the shitty code.

    35. Re:Good luck with that. by Anonymous Coward · · Score: 0

      Fully homomorphic encryption. 'nuff said.

      The religious right is firmly against your gay encryption.

    36. Re:Good luck with that. by K.+S.+Kyosuke · · Score: 1

      Hey, it's not "gay encryption", it's only gay-shaped.

      --
      Ezekiel 23:20
    37. Re:Good luck with that. by K.+S.+Kyosuke · · Score: 1

      Just because a given string of bytes executes on a computer (or a Turing machine) doesn't mean that it's easily analyzable by humans. We humans never venture into the overwhelmingly vast space of all valid programs, huddling in the tiny portion of it where organized, structured programs reside. But a proper compiler could presumably turn it into a functionally equivalent, yet extremely messy version, beyond what current optimizing compilers do (including making a lot of transformations randomly along the way, for example). Whether it would be worth the effort...I'm not sure.

      --
      Ezekiel 23:20
    38. Re:Good luck with that. by Anonymous Coward · · Score: 0

      the lifetime of the universe, squared

      Please express this value in Library of Congress.

    39. Re:Good luck with that. by Anonymous Coward · · Score: 0

      The religious right is firmly against your gay encryption.

      Always knew they were in the closet.

    40. Re:Good luck with that. by indeterminator · · Score: 1

      Seems to me that would only make things worse when your libraries have bugs: Why rings 1 and 2 aren't used?

    41. Re:Good luck with that. by tlambert · · Score: 1

      Seems to me that would only make things worse when your libraries have bugs: Why rings 1 and 2 aren't used?

      That reference does not seem to indicate it would be a bad idea, only that "the benefits are reduced".

      Ring 2 on VAX hardware is where installed system images (read: like libraries) ran. Same place they run on OpenVMS on Itanium.

      People who do not know history are doomed to keep pounding their heads against a brick wall until they repeat it correctly.

    42. Re:Good luck with that. by bluefoxlucid · · Score: 2

      ASLR changes the security issue from "trivial, undetectable remote access or privilege escalation" to "trivial, deafeningly loud denial-of-service."

      I can write shellcode that hijacks a function, spawns a thread, and creates a controlled jump back to an earlier function, simulating a successful return and allowing the program to continue--a separate thread downloads and mmap()s in a shared object, which provides all the exploit functions without even spawning a new process, even so far as to open a temporary file and then unlink() it and fill it and mmap() the fd so that malware code never goes into a bluntly visible file. This strategy allows httpd or proftpd or any other target with a remote code execution flaw to continue running uninterrupted, while itself hosting a malicious agent.

      If the program spawns fork()ed copies, I'd have to repeatedly crash the program--I'd return to the incorrect location, due to not knowing the stack or library or anonymous segment or heap or main executable base addresses--as I chewed iteratively through millions of connections. This is incredibly visible: dmesg shows millions of segfaults, and a smart HIDS could delay and restrict connections from addresses which had connected (initiated) to any socket handled by the crashing process (parent-child fork()-without-execve() relationship). 64-bit systems take this up to the order of 10^30, an infeasible number of attempts even if the system's HIDS and administrator are inattentive; while programs which replace workers after hundreds of executions are facing independent randomized events.

      ASLR turns failed security and perfect compromise into less-than-perfect security and less-than-perfect compromise. The cost is effectively null: the moment there's an unused CPU nanosecond, the system recovers from the slowdowns imposed by ASLR. It's on the order of pulling an additional number out of memory (a passively-gathered entropy pool kept in a ring buffer).

      One of the biggest benefits of ASLR, heap protection, and stack smash protection is the rapid exposure of security flaws: any attempt has an overwhelming probability of exposing the attack, directing eyes toward the bug. ASLR, double-free, and canary protections often trigger on harmless errors which allow the program to continue running under normal conditions, aren't an attack, and happen during normal work; ASLR is the least tended to do this (because let's face it: if you miss a JMP by a byte, you miss it by a hundred miles), while the other two similar guards are very prone to cause crashes when you fuck up. Likewise, banning the mapping of memory that is simultaneously writable and executable causes errant writes to do this a lot (and makes some exploits flat-out impossible, instead of impossibly unlikely).

    43. Re:Good luck with that. by Fwipp · · Score: 1

      I always get those mixed up.

  2. obfuscation methods by Anonymous Coward · · Score: 0

    Great, I look forward to code like,
    *c+++=c+++1;

    1. Re:obfuscation methods by zephvark · · Score: 1

      If only I had a mod point, I'd be modding that as "funny". That's the most completely hilariously wrong code.

  3. Mathematically proven? by Anonymous Coward · · Score: 0

    I sense buzzwords. I can prove mathematically that 1+(-1)=(-1)+1. If youre not specific, "mathematically proven" is just a buzzword.

    1. Re:Mathematically proven? by Anonymous Coward · · Score: 0

      I sense buzzwords. I can prove mathematically that 1+(-1)=(-1)+1. If youre not specific, "mathematically proven" is just a buzzword.

      If you're going to comment on such things, then you should probably understand what a Mathematical Proof is. And then provide one if you're going to claim you can do so.

  4. Increasing To Less by Anonymous Coward · · Score: 0

    I'm looking forward to the day when my phone, with a i16 CPU containing 64 cores, has the same end-user performance as my 486.

    1. Re:Increasing To Less by Anonymous Coward · · Score: 0

      me too, how else can you obfuscate an executable in a known environment.

  5. security through obscurity by JustNiz · · Score: 2

    I'm amazed that someone who supposedly knows what they are doing would even suggest this.
    Program obfuscation is completely the wrong approach. It is just another mechanism that relies on security through obscurity, which has been proven time and again to be a short-term solution at best.
    When something is actually secure, it's readability should be irrelevant.

    1. Re:security through obscurity by Anonymous Coward · · Score: 0

      The underlying security of a cryptographic hash algorithm and PRNG used to generate salts are irrelevant if I don't obscure my password from others, right?

    2. Re:security through obscurity by Anonymous Coward · · Score: 2, Informative

      Security through obscurity can work to a point. *IF* you make it hard enough.

      Take for example Raiden II. That game has only recently (in the past month) been 'cracked'. Even though only sorta. There is no encryption. It is all just bundled into a 'cop' chip.

      The point though with their 'security' was not to never be cracked. But just make it a big enough pain in the ass that the bootlegers didnt copy the game for a long time. You could argue it took nearly 20 years to crack. Not bad for security through obscurity.

      The entire emulation scene is basically cracking all those systems. To them a badge of honor is to actually accurately emulate the 'security'.

      With security it is *never* 100%. It is just a matter of time and money.

      Even if I come up with something that 100% provably secure. I am not going to show you how it works. I am not going to make it in any way easier. The obscurity is not for the security. It is mostly to waste your time. If that takes long enough the message may longer be worth decoding.

    3. Re:security through obscurity by Anonymous Coward · · Score: 0

      Have to agree with you. Whether it is the computer that must be exposed to all I/O, or a human operator that is free to treat any mechanism, or any piece of a mechanism as a black box. An output is directly related to an input regardless of how it arrives. Obscurity is after all, the weak link in the chain at best because it can be ignored, and at worst when it simply isn't obscure enough. Above all, never forget, a smith and wesson beats 5 Aces.

    4. Re:security through obscurity by TubeSteak · · Score: 1

      When something is actually secure,

      That's like saying "when we have world peace."

      Programmers make coding mistakes. It is inevitable.
      Even the best coding techniques can only reduce errors, not stop them completely.

      --
      [Fuck Beta]
      o0t!
    5. Re:security through obscurity by carlhaagen · · Score: 1

      There are different aspects of "security through obscurity". In this case I don't think obfuscation equals obscurity, as the software is still available in its whole form. But I agree with you that this is a pretty weak effort.

    6. Re:security through obscurity by cryptizard · · Score: 1

      Except they are not talking about "security through obscurity" they are talking about a very specific kind of cryptographic program obfuscation. It is not at all the same.

    7. Re:security through obscurity by gweihir · · Score: 1

      I suspect the intention behind this is to hide backdoors that are intentionally placed. Tell the clueless public that the "TCP/IP stack is now protected from hacking by code obfuscation", when in fact a magic packet gets the NSA access to everything and it is very hard to find that out looking at the source.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:security through obscurity by wvmarle · · Score: 1

      And I always thought that PERL had been invented just for this purpose. That language has obfuscation built in!

    9. Re: security through obscurity by Anonymous Coward · · Score: 0

      this. spot on.

    10. Re:security through obscurity by JustNiz · · Score: 1

      wow I hadn't thought of that. If I had mod points you'd get them.

    11. Re:security through obscurity by micahraleigh · · Score: 1

      I'm not sure if you have a legitimate point or are arguing for an ideology here (i.e. everyone should have the same incoming, military, software, etc).

      I can reverse engineer the output of a dotfuscated solution, for example, but the code is so mangled during the obfuscation process (where classes are hacked and merged semi-arbitrarily and variable names turn into "A", "x34Kj", etc) that it becomes unmanageable to make any changes to.

      Being able to reliably make changes to the source code is almost the entire cost of software development.

    12. Re:security through obscurity by JustNiz · · Score: 1

      >> Being able to reliably make changes to the source code is almost the entire cost of software development.

      It sounds like you're suggesting that making the $ cost of doing something not commecially profitable is alone sufficient to be a good security mechansim.

    13. Re:security through obscurity by micahraleigh · · Score: 1

      I'm not sure it's "alone suffecient", but if I can make reversing too expensive for my competitors, foreign adversaries, etc, I wouldn't call it "the completely wrong approach".

    14. Re:security through obscurity by JustNiz · · Score: 1

      by extension then, neither is it completely the right one.

  6. waiving my consultancy fee today by ne0n · · Score: 2, Funny

    Pro tip for DARPA: use perl, hand out the source. Same end result but probably a few reverser suicides along the way.

    --
    $ :(){ :|:& };:
    1. Re:waiving my consultancy fee today by Tablizer · · Score: 1

      First translate the algorithm into Perl, and then run it on a Perl interpreter written in BrainFuck, of which the BrainFuck interpreter is written in APL, which runs on a machine language written for a drum-based OS from the early 1960's.

    2. Re:waiving my consultancy fee today by fibonacci8 · · Score: 1

      First translate the algorithm into Perl, and then run it on a Perl interpreter written in BrainFuck, of which the BrainFuck interpreter is written in APL, which runs on a machine language written for a drum-based OS from the early 1960's.

      You shouldn't knock Visual BASIC like that...

      --
      Inheritance is the sincerest form of nepotism.
  7. All aboard the bloat boat... by Anonymous Coward · · Score: 1

    So now on top of abstraction layers and lazy code we can look forward to wasting cycles on advancing the cat and mouse game of a security. I know I'm going to sound like an old codger, but my daily computing tasks have not really changed substantially since the mid 90s (emails, web browsing, shell access, word processing, etc). Streaming video and modern web technologies are awesome; it's not like there haven't been any worthy advances, but addressing excess power consumption, e-waste, and other associated issues would be a more worthy research goal IMHO.

  8. Not Security Through Obscurity by Anonymous Coward · · Score: 1

    This is a very different usage of "obfuscation" from what people typically use in everyday programming. It's coming out of some recent work in cryptography. See for example:

    Candidate Indistinguishability Obfuscation and Functional Encryption for all circuits
    http://eprint.iacr.org/2013/451.pdf

    What this line of work may allow you to do is have a cloud computer run some code on some data for you, without revealing anything to the computer about either the code or the data. Without breaking the crypto the cloud provider can't know which of the many indistinguishable possible programs you've actually run. The downside is that there is an absurd amount of overhead in doing this right now (think minutes of computation per clock cycle per transistor used in the original computation).

    For a little more discussion see:
    http://security.stackexchange.com/questions/50937/describe-an-example-of-indistinguishability-obfuscation-or-functional-encryption

    1. Re:Not Security Through Obscurity by LordLimecat · · Score: 1

      It seems to my uninformed mind like you would have to have already processed the data to create the sum total code path that the cloud computer is to run, at which point you no longer need them to run it.

    2. Re:Not Security Through Obscurity by gweihir · · Score: 1

      Still, this does not make software "secure". In typical attacks you just want the software to misbehave in some way that gets you a shell. You do not need to understand what it does for that. In fact, most modern attacks involve fuzzing and then only looking at the specific things that break in order to subvert them. There is no need to understand what the code actually is supposed to be doing.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Not Security Through Obscurity by gweihir · · Score: 2

      And before I forget: These techniques are excellent to hide backdoors and such, and thereby make software much, much less secure. That may be the real intent. After all, you do not want some vigilante to find the secret government backdoors in everything.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  9. Not if the NSA has any say by Anonymous Coward · · Score: 0

    But there are cryptographic and algorithmic security techniques, ideas and concepts out there that add a level of algorithmic mystification that could be built into programs that would make them close to unbreakable.

    This will never be allowed to work. Even if practical the surveillance community won't allow something secure to exist, even for the government, because it would leak out eventually to the public and harm the children.

  10. Blast from the past: the Orange Book by cold+fjord · · Score: 1

    This feels like a blast from the past, specifically the Trusted Computer System Evaluation Criteria (TCSEC) aka the "Orange Book."

    DoD 5200.28-STD - December 26, l985

    4.1 CLASS (A1): VERIFIED DESIGN

    Systems in class (A1) are functionally equivalent to those in class (B3) in that no additional architectural features or policy requirements are added. The distinguishing feature of systems in this class is the analysis derived from formal design specification and verification techniques and the resulting high degree of assurance that the TCB is correctly implemented. This assurance is developmental in nature, starting with a formal model of the security policy and a formal top-level specification (FTLS) of the design. Independent of the particular specification language or verification system used, there are five important criteria for class (A1) design verification:

    4.2 BEYOND CLASS (A1)

    Most of the security enhancements envisioned for systems that will provide features and assurance in addition to that already provided by class (Al) systems are beyond current technology. The discussion below is intended to guide future work and is derived from research and development activities already underway in both the public and private sectors. As more and better analysis techniques are developed, the requirements for these systems will become more explicit. In the future, use of formal verification will be extended to the source level and covert timing channels will be more fully addressed. At this level the design environment will become important and testing will be aided by analysis of the formal top-level specification. Consideration will be given to the correctness of the tools used in TCB development (e.g., compilers, assemblers, loaders) and to the correct functioning of the hardware/firmware on which the TCB will run. Areas to be addressed by systems beyond class (A1) include:

    DEF CON 20 - Tom Perrine - Creating an A1 Security Kernel in the 1980s

    DEF CON 20 Archive

    --
    much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
    1. Re:Blast from the past: the Orange Book by zephvark · · Score: 1

      4.2 BEYOND CLASS (A1)

      Most of the security enhancements envisioned for systems that will provide features and assurance in addition to that already provided by class (Al) systems are beyond current technology.

      Ah, lovely. Government language at its most... statuesque. That's an incredibly awkward way to say, "Dude! We can't do it!"

  11. Use a MicroSoft product - obfuscation guaranteed! by Anonymous Coward · · Score: 0

    Use a MS product - obfuscation is guranteed...it will be so dizzying...even the program's own developers won't be able to decipher it! It will combine the "beauties" of Microsoft "Help", Microsoft C/C#, .NET and throw in a little bit of Microsoft Bob for good measure!

  12. Thats good by Sla$hPot · · Score: 2, Interesting

    But how do you scan code for back doors, trojans, viruses, malware, bots etc.?

    1. Re:Thats good by Fwipp · · Score: 1

      You don't. But we already don't scan the majority of proprietary (or even open source) code that we run on our machines, so effectively, the difference might not be that great.

      You can disable its ability to communicate with the outside world, or monitor communications it does make, to warn others that the code may be malicious. But that's about it.

  13. I'm deeply skeptical by swillden · · Score: 1

    Software obfuscation confronts exactly the same core problem as DRM: The goal is to both provide information, in usable form, and not provide the same information, to the same recipient, at the same time. That's impossible. So in both cases all you can do is to try to raise the bar, make it harder to extract the convenient form of the information, but "mathematically proven security properties" must be forever out of reach.

    Unless maybe they define "obfuscation" differently than I do.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    1. Re:I'm deeply skeptical by Anonymous Coward · · Score: 0

      Their definition seems to be "Given two programs, A and B, that generate the same output for the same input, but use different algorithms. When obfuscated, you can't (efficiently) tell obfuscatedA from obfuscatedB." Which implies that you can't figure out from the obfuscated versions which algorithms were used originally. But they have to work, so they must contain functioning algorithms.

      Now, what this sounds like to me is "we can hide the algorithms we wrote by turning them into new, weird, hard to understand algorithms, to the point that you can't take the new algorithm and generalize it to solve anything else."

    2. Re:I'm deeply skeptical by gweihir · · Score: 1

      It is not the same problem. DRM has to be secure against the machine it runs on. That is impossible. Secure software has to be secure at some perimeter (network socket, IPC interface, etc.), but anything inside this perimeter is assumed to be trustworthy. Secure software _is_ possible.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:I'm deeply skeptical by 93+Escort+Wagon · · Score: 1

      Unless maybe they define "obfuscation" differently than I do.

      It wouldn't be the first time this has happened in academic circles.

      A friend of mine did his PhD in Artifical Intelligence a couple decades ago, and has been working in the field since then. Some years back we were having an discussion about the Turing Test or something related, but it seemed like we were arguing past each other. Well, after some time it came out the source of the problem - at least according to him, what AI people think of when they discuss whether a system "understands" a language (to pick one narrow example) is different than how most people would think of it. A person (or computer) possessing a (theoretical) book containing every possible response to every conceivable question and statement in, say, Chinese, would be considered to understand Chinese, even if the book was completely based on phonetics and the owner of the book could not interpret what was being said. It's all about the perception of the observer.

      My response was if the owner of the book couldn't use his "understanding" to discover where the bathroom was, then he doesn't really understand the language; but that didn't sway him.

      --
      #DeleteChrome
    4. Re:I'm deeply skeptical by lennier · · Score: 1

      A person (or computer) possessing a (theoretical) book containing every possible response to every conceivable question and statement in, say, Chinese, would be considered to understand Chinese,

      I've always had a problem with this definition of the Chinese Room scenario. It's the following:

      To be successful in a conversation, that 'book' with responses to questions has to model not just the language, but also the subject domain and the personality of the simulated Chinese speaker. That means that not only does the book have to be huge - we're talking a giant library - but it also has have a representation of a personality inside. And the ability to store knowledge and alter that personality, depending on the depth of the conversation to be modelled.

      I think most people thinking about the Chinese Room really really underestimate the amount of knowledge you need to store in that book in order to have the simplest of natural-language conversations without it quickly falling off the rails. For example:

      Q: 'Hello!"
      A: 'Hi there. How can I help you?'
      Q: 'Hello!"
      A: ... -- if the rules say 'repeat the same Hello response', you've already failed.
      Q: 'Say, how do you feel about the Occupy Central protests in Hong Kong? Are any of your family affected?'
      A: ... -- right here the room has to track a model of current news, which requires real-time processes for fetching news, parsing it, building models of world events, maintaining a simulated persona with a political alignment, a simulated family with emotional connections to each, a backstory of all these relationships if asked.... there's a nearly infinite number of possible conversational branches. And if the actual person 'operating' the room isn't aware of this information, there's still an algorithm which has to be doing it.

      So most people look at the description of the Room, go 'this could be trivially represented with a bunch of index cards which obviously aren't intelligent/aware', but that's not an actual solution to the Room. A solution which does work would have to be doing such an enormous amount of effort that it actually *would* be 'aware' of a lot of things even if it doesn't have a 'feeling' of that awareness. But even then it would need to have a model of what such a 'feeling' would be like; and we currently have no idea of what such a model would be like.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    5. Re:I'm deeply skeptical by Anonymous Coward · · Score: 0

      Ah, this reminds me of my days correcting assignments as a TA.

    6. Re:I'm deeply skeptical by swillden · · Score: 1

      It is not the same problem. DRM has to be secure against the machine it runs on. That is impossible. Secure software has to be secure at some perimeter (network socket, IPC interface, etc.), but anything inside this perimeter is assumed to be trustworthy. Secure software _is_ possible.

      Obfuscation also has to be secure against the machine it runs on.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  14. virtual processor? by marked23 · · Score: 1

    I think what they are asking for is a virtual processor that executes encrypted instructions on a physical processor through homomorphic encryption. Existing techniques for this are insanely slow. They want some new math to make it faster, so that it's practical.

    1. Re:virtual processor? by currently_awake · · Score: 1

      If you need a new processor you may as well just add encryption and local key storage and local memory to an existing processor and let it decode and run the code internally, with all outputs re-encrypted.

    2. Re:virtual processor? by gweihir · · Score: 1

      Actually no. Security functionality at some point must interact with its environment. Homomorphic encryption does _not_ allow the software to make decisions that are hidden from the processor, yet get passed to some the environment, like an access decision or the like.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  15. I'm deeply skeptical by Anonymous Coward · · Score: 0

    Unless maybe they define "obfuscation" differently than I do.

    BINGO! Ladies and gentlemen, we have a winner!

  16. "When I use a word," by Tenebrousedge · · Score: 1

    No, not all security is obscurity. If your list of things that need to be kept secret includes your security implementation, and especially your algorithm, then you have flawed security. Multi-level security increases the number of things you need to have and/or know in order to compromise the system. With e.g. ROT-13 or another shift cipher, once you know that they are using that cipher, there is no other knowledge that you need in order to break it. On the other hand, if you have an arbitrary number of keys and the knowledge that your opponent is using e.g. SSL, you don't have any greater ability to compromise other users.

    Security through obscurity may be an overused phrase, but it does have a specific meaning; it only really makes sense in the context of security systems. You may use words however you wish, but to me that's not glory.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
  17. DARPA is trying to improve virus/malware? by Anonymous Coward · · Score: 0

    DARPA is trying to improve virus/malware? Could have been the title.

    1. Re:DARPA is trying to improve virus/malware? by KarlH420 · · Score: 1

      Yes, better packers will come from this.

  18. Re:Use a MicroSoft product - obfuscation guarantee by Anonymous Coward · · Score: 0

    This program contains graphic material,
    including Microsoft Bob.
    Viewer discretion is advised.

  19. DARPA loves the 'philes by BrennanPratt · · Score: 1

    According to Eric Holder, information security == material support for pedophiles. I expect the DOJ to promptly due DARPA out of existence!

    1. Re:DARPA loves the 'philes by Anonymous Coward · · Score: 0

      You're that Alabama Sheriff aren't you?

      Joking aside if the program can be ran it can be cracked. To my knowledge there is no downloadable software that exist today that has not been cracked. Well except for garbage software that nobody wants. Hey! I might be on to something here!

      prin "More Hot Pockets!"

  20. If a compiler can... by carlhaagen · · Score: 3, Insightful

    ...interpret the obfuscated source code, then why wouldn't a human be able to?

    1. Re:If a compiler can... by wvmarle · · Score: 1

      As I understand it, it's the compiler output which is obfuscated. Not the source code itself. After all, the original source code must be understood by a human programmer in order to be written in the first place.

    2. Re:If a compiler can... by DocSavage64109 · · Score: 1

      Another poster mentions that a 16 bit function consisting of "15 AND gates" takes 31 GB of space and takes 3 hours to process. That actually does seem beyond a human to unobfuscate, but I bet a well written tool should be capable (if they can actually find the part that matters in that 31 GB).

    3. Re:If a compiler can... by brantondaveperson · · Score: 1

      Another programmer who's yet to see any Perl source...

    4. Re:If a compiler can... by wvmarle · · Score: 1

      Even in Perl the original source is usually understood by the programmer. This means that, given enough effort, another human programmer can figure out what it does.

    5. Re:If a compiler can... by Anonymous Coward · · Score: 0

      Correct. But the question should've been: If a computer can interpret (run) the obfuscated compiler output, then why wouldn't a human (who understands how the computer works) be able to? Call it a team of humans, who build custom tools just to achieve this goal; with enough resources and dedication it is always possible.

      You can make reverse engineering take more time/resources, and even to the point it becomes not economically feasible (when you could recreate the original work from scratch for less). Maybe you could even push it to require more time than the eventual heat death of the universe (baring new math/physics). But theoretically impossible? Just from obfuscation? I find that very hard to believe.

  21. On PowerPC3 cpu by Anonymous Coward · · Score: 0

    Yes! It is a Macintosh from 1994 running Mac OS 8.3.

    Ha ha

  22. Verilog by tepples · · Score: 0

    Actually a circuit is closer to a mathematical formula than a real program e.g. you cannot write circuits in C or any other programming language we mortals are familiar with.

    Kevin Horton (kevtris in #nesdev on EFnet) writes circuits in Verilog for a living.

  23. Entire copyright term by tepples · · Score: 1

    You could argue it took nearly 20 years to crack. Not bad for security through obscurity.

    But not nearly as long as what the industry wants, which is 95 years after first publication.

  24. Why yet another attempt to avoid working security? by Anonymous Coward · · Score: 0

    So yet another fancy pants security scheme that probably won't really fundamentally change anything?

    At this point, wouldn't it have been cheaper to bite the bullet and go back to capability model computing even though it requires recoding of pretty much all our software? (OS400 used to do that sort of thing and the AS400 seem to have been pretty solid security wise; also it is apparently mathematically provable that capability model based software can be made secure)

    On the plus side doing that should guarantee a revenue stream for the software industry that is not petty renting of software, if they can get back to some good old upgrade cycles due to the necessary overhaul.

    As a bonus the recent announcement of a capability model enhanced 64-bit processor with modified FreeBSD seems to imply that the whole ordeal might not even be too bad.

  25. You are going to need to put it in... by Karmashock · · Score: 1

    ... a different language. Take Ancient Egyptian... without a Rosetta Stone there would be no means to translate it. The whole structure of the language was inscrutable without some sort of introduction to it.

    Your program and system ideally should run on custom hardware. Not known computer hardware that must conform to known standards. The system will not be as fast or cheap. But it will be so different that it will be difficult to understand. And what a programmers cannot understand they will not be able to hack.

    Have a unique hardware platform. Reinvent the computer but do it differently enough that no existing technology is similar. And then come up with your own operating system that is likewise just different.

    Building, maintaining, and operating such systems might be a pain... but they'll be very secure.

    The systems that translate between these systems and the rest of the internet should be top secret. Lose one or get it compromised and you have to start all over again.

    --
    I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
  26. "close to unbreakable" = "breakable" by gweihir · · Score: 1

    This really is BS. Sure, you can obfuscate complex function, e.g. mathematical functions, to the point that reading the code becomes pretty hard. (That includes most crypto, but note that non-standard crypto has a tendency to be insecure and standard crypto can be recognized.) But even there, an attacker can simply try out the functionality and recognize what it does for the cases that matter. For simple functionality (and most functionality is simple, e.g. data access or access control), this does not work at all. Obfuscate all you like on these, it is easy to find what they do.

    Really, all security-related code that can be written, can be analyzed as it has to interact with its environment and that gives away what it does. This is just another "magic" technique that will continue to fail delivering, while unscrupulous researchers will be getting grant after grant based on false promises. I find that pretty reprehensible.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  27. HELLO WORLD by Anonymous Coward · · Score: 0

    ouch that hurts

  28. safeware by Twelfth+Harmonic · · Score: 1

    is the lamest title i've ever heard..

  29. four words, people by ihtoit · · Score: 1

    Black Box Hacker Challenge. Or variations on the name. It's what I'm calling it.

    OK, before you start with "HONEYPOT!", no it isn't, and this isn't a new idea either. It's been done. Many times. By lots of companies. Including Google - and the NSA, and all to test security on various bits of software outside of lab conditions. In case you're new here, a BBHC is a standalone or more commonly an integrated part of, a hacker convention where you take a blackbox (literally, hence the name of the game) loaded with code or some other prize and challenge the participants to break into it - often with a hard time limit. If the challenge beats the players, it can be reasonably assumed that that bit of code is reasonably secure. If it's broken, the usual response is to bow out gracefully after handing over the prize and figure out where you went wrong for the next time round. Or maybe the prize is a salaried position (mmm, work in the public cybersecurity sector, any insiders care to share whether they think there's job security in that?)

    Out of interest, has the Google Pwnium 4 Chromebook challenge been beaten yet? I can't find anything on it. Maybe I'm looking on teh wrong interwebz.

    Some great examples of conventions where BB challenges occur with regularity are Blackbox, HackInTheBox, PPC, DefCon, ICS, CanSecWest.

    --
    Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
  30. What positive aspects could that have? by Casandro · · Score: 1

    This seems like something only useful for malware. After all the only reason you don't want the person to know what code they run is to do something they don't want you to do. And that's essentially the definition of malware.

    1. Re:What positive aspects could that have? by Anonymous Coward · · Score: 0

      So nobody would ever run code on someone else's machine that they might potentially not trust? Nobody will ever use that cloud shit unless they're drug dealers or pimps. Think of the children!

      Fucking bootlicking shill. Die in a fire.

    2. Re: What positive aspects could that have? by Anonymous Coward · · Score: 0

      wtf are you talking about. your definition of shill must be different then mine.

    3. Re:What positive aspects could that have? by Anonymous Coward · · Score: 0

      You are confusing "having something to hide" and "doing something bad". You have plenty of things to hide (your credit card numbers, you having sex with your partner, ...) and these are not bad things at all.

      This research can be used to hide things. Like many things, it can be used for good or for bad.

  31. Good luck with that. by Anonymous Coward · · Score: 0

    Actually, there's some weird math going on out there.

    "Obfuscation" in this context refers to a specific mathematical adventure. It has a neat property that if I implement an algorithm two different ways, and run one of them through an "obfuscator", it's provably impossible to figure out which one you started with, given the obfuscated program.

    That's fine, and interesting. But here's where it gets cool: If I use one interesting secret to implement the algorithm one way, and a *different*, interesting secret to implement it the other... where is the secret? If it's provably impossible to identify the original algorithm given the obfuscated code, then reverse engineering the obfuscated code must contain neither secret. Or Both. Or ... something else?

  32. In other word programmer pretty much are right by aepervius · · Score: 1

    Once you add all your caveat you have a pretty piece of hardware which gives you number you cannot see the function is for, while good for hardware, most software in the real world do not work like that. Once you start unrolling the instructions, consider input and output, then sooner or later depending on how much effort you want to have, you won't be able to hide your program inside working. The simple fact is that contrary to your hardware argument, the software has to be executed by the CPU. Frankly you can hide far more stuff from the common mortal with hardware than you can with software.

    --
    C. Sagan : A demon haunted world:
    http://www.amazon.com/gp/product/0345409469/
    visit randi.org
    1. Re:In other word programmer pretty much are right by cryptizard · · Score: 2

      What they are trying to construct (and at least partially succeeding), though, is a cryptographic construct whereby you can feed input in one end and "iterate" the computation, but not know what computation you are actually doing. Imagine that every time you do any operation on two variables, you actually do all possible operations (i.e. multiply, add, shift, etc.) and only one output is stored. The trick is that which one is actually kept is hidden from you cryptographically. That is a very crude metaphor for what they are doing, I suggest reading the paper for the details. It's actually very well written. The point is, however, that this technique is much more complicated and more powerful than obfuscation that people are traditionally familiar with, and it really does have the potential to do what you describe as being impossible.

    2. Re:In other word programmer pretty much are right by 0111+1110 · · Score: 1

      The trick is that which one is actually kept is hidden from you cryptographically.

      But what if you happen to be a CPU who just wants to execute a series of instructions? Is there some way to tell the CPU which opcode you want to execute without also telling a human who is merely pretending to be a CPU? If it is cryptographically hidden then how can the CPU read it?

      --
      Quite an experience to live in fear, isn't it? That's what it is to be a slave.
    3. Re:In other word programmer pretty much are right by cryptizard · · Score: 1

      Yes, the CPU executes all of them like I said. The "you" in this is the computer. It executes obliviously (think homomorphic encryption, but hiding even the circuit) so that someone with the key can recover the correct output but the entity doing the computation doesn't know what it actually computed.

  33. And in next news by Anonymous Coward · · Score: 0

    If they succeed to create such tool, they will soon want tool that can unravel what the first tool did, just because China/Russia...

  34. Don't we already have that by Anonymous Coward · · Score: 0

    Isn't TOR the textbook example of that?

  35. Obvious work is obvious by Anonymous Coward · · Score: 0

    It's obvious they want to study this not to become more secure, but to understand how to attack someone using this approach more effectively. If they build one from the ground up they will see incrementally how to attack at each point. It's likely this is reactionary.

    C'mon people.