DARPA's “Unhackable” Computer
eetimes.com
eetimes.com
The original proposal says nothing about "unhackable", and in fact, specifically quotes someone as saying that eliminating these hardware vulnerabilities would, "…effectively close down more than 40% of the software doors intruders now have available to them"—a far cry from unhackability! It's pretty typical of both science reporting and marketing bluster to go from "addressing certain vulnerabilities to reduce intrusion by less than half" and end up at "unhackable".
The quotes here come from this announcement, from before the proposals were selected: https://www.darpa.mil/news-events/2017-04-10
As far as I recall, $50m was allocated to the project over a 3 year period. Unlike NSF, DARPA grants typically require a working prototype by the end of the funding period. In this case, DARPA needs a fully functional implementation of the security scheme on a RISC-V processor as well as a development toolchain that can be used to "secure" generic software and/or hardware applications.
At a first glance, it sounds like this team is applying instruction set randomization at the micro-architecture level: as far as I know, this has been done before at a smaller scale. Our approach was to address each of the CWEs (vulnerability classes) with a different technique, which I think contributed to the rejection of our proposal.
Edit: Ignore the title. The goal of SSITH is lofty and likely impossible to achieve for all cases in practice. But this is how DARPA operates: they come up with (currently) far-fetched goals with the hope that one of the funded approaches strikes gold.
Sorry your team didnt get picked. I wonder if any submissions came in from Draper or someone on SAFE architecture. CHERI as well. They're already proven in other designs. Chopping down the bitsize for CHERI while replacing BERI MIPS with Rocket RISC-V would seem straightforward. Throw in some optional enhancements.
Ill have to dig into this program after work to see more about requirements and submissions.
> Morpheus works its magic by constantly changing the location of the protective firmware with hardware that also constantly scrambles the location of stored passwords.
Constantly changing the location sounds like dynamic ASLR.
I looked at umich to see if there was anything more detailed but all I found was this press release which is pretty much the same article:
http://www.eecs.umich.edu/eecs/about/articles/2017/morpheus....
Sure it's a cool idea, but lets not call it unhackable.
The Titanic wasn't called unsinkable by people who knew what they were talking about. Same thing for that exploit mitigation hardware.
Frankly, if it were about memory safety, though, I think we could count C out. A microarchitecture with inherent protection against memory bugs would likely not be able to provide it's advantages to vanilla C or existing C software.
The consistently-low adoption of clean-slate tech along with lock-in effecta means the opposite is true: massive investment should go into making most common tech more correct, secure, and recoverable as simple as possible for users. If clean-slate, it should stay close as possible to what people already know with clean integrations. We can also continue to invest in ground-breaking stuff for niches that use them (eg SPARK Ada for aerospace) and/or new bandwagons that might build on them (eg Rust ecosystem).
Unless you have a very trivial program I think its hard to make anything "unhackable."
this doesn't matter to its following theses:
> Its not like there aren't bugs in other software.
Well, here's a Java Virtual Machine written in Java: https://github.com/beehive-lab/Maxine-VM
Not to counter your point, but to keep the discussion going :)_
So the bottom line is that such hardware architectures necessitate using more high-level languages than C.
> DARPA’s stated goal of “hack resistance” appears to hedge a bit on whether truly unhackable hardware is achievable.
Also no mention of TrustZone or similar existing techs for ensuring application integrity.
Perhaps doing such penetration testing is actually what they (secretly) want people to do?
> Austin likens Morpheus’ defenses to requiring a would-be attacker to solve a new Rubik’s Cube every second to crack the chip’s security.
Hopefully that is a gross simplfication for the bendfit of less tech savvy folks. A physical rubiks cube can be solved nowadays in 600ms.
Maybe it would be a fun idea to have sensitive data encrypted in such a way that a part of the hashing algorithm involves solving a physical Rubik's cube.
[0]: https://media.ccc.de/v/32c3-7352-towards_reasonably_trustwor...
Besides, if you wanted to hack some sort of computer system: Wouldn't you just take someone's children and do unspeakable things to them until someone cracks, that seems less more straightforward - certainly more reliable than depending on the intellect of an engineer ("hacker").
Eek. No need to get ghoulishly creative! We just call that https://en.wikipedia.org/wiki/Rubber-hose_cryptanalysis :-)