HN user

costan

216 karma

Victor Costan got infected with a passion for coding at the age of 10, and proceeded to earn a M.Eng in Computer science from MIT. Victor also holds a B.S. in Management that he pursued as he fell prey to the belief that great software requires legions of developers manipulating bloated code bases in repetitive ways.

Thanks to Paul Graham's essays, Ruby, and Rails, he re-discovered the joy of coding, and came back from the dark ways of management. Nowadays, Victor is still crazy about building software that he can impress his friends with, but he also dreams of contributing to making coding even more enjoyable. Victor likes developing mobile and Web 2.0 applications, and occasionally enjoys building some distributed systems behind the apps.

When he is not coding, you will most likely find him reading up on some new programming language or software development technique. At times, Victor likes to pretend he's mentally sane, and can be seen catching up with friends, watching a movie, or exploring Boston.

[ my public key: https://keybase.io/pwnall; my proof: https://keybase.io/pwnall/sigs/I1Vine_PdNepU6Sn-s9TOSooWaVBmAzUVlm_OVuOM0A ]

Posts7
Comments68
View on HN
Intel SGX Explained 10 years ago

Thank you very much for this feedback!

Re: 1 - I re-read the relevant SDM sections, and saw that there is no requirement that the new upgrade version exceeds the current microcode version. Thank you very much for pointing that out! The next published revision will have the fix.

Do you have any public references for 3 and 4? That looks like it'd help make the case that SGX rests on very complex and unstable foundations.

Intel SGX Explained 10 years ago

SGX serves a good purpose, at least in theory. Many people, myself included, wanted it to turn out to be good. So, I don't think many Intel folks objected to it.

Instead, I think that a bunch of MBAs showed up and decided SGX is security, security is an enterprise thing, so SGX must be pay-to-play. For whatever it's worth, I think the SGX designers did a pretty good job of separating the objectionable parts from the rest of the design.

For example, the EPID homebrew crypto is all in software, so Intel can change the algorithm without hardware mods or microcode updates.

Also, the way they set up the Launch Enclave gives Intel time until the very last minute to not be a douche. They still have the option to release a permissive Launch Enclave that only includes the checks needed to keep attestation secure.

The SGX design that doesn't come from MBAs is quite clean, given that it addresses the multi-layered crap pile that is X86. There are some cool tricks in there.

Intel SGX Explained 10 years ago

But enclaves are worthless without attestation.

If the OS is evil and you don't do attestation, it can emulate SGX and run your code in a simulated enclave environment where EGETKEY returns keys that the OS knows about.

If the OS is not evil, you can use process isolation to generate and protect the keys.

Intel SGX Explained 10 years ago

Do you happen to know if the Launch Enclave has the debug flag set? If so, you can't use it to launch production enclaves.

Intel SGX Explained 10 years ago

There's some support in Intel's Management Engine for DRM, called Intel Insider (the successor of PAVP). One of the SGX papers mentions plans for hooking up SGX enclaves with PAVP.

Based on public docs, you can't do DRM decoding in an enclave. But you can execute some complex logic to validate a user's license and decide whether you want to release the encryption key to the ME or GPU.

Intel SGX Explained 10 years ago

It gives Intel control over developers. In general, a computer will execute what you ask it to. SGX will not let you run production enclaves without Intel's permission. This is like Verified Boot, except there's no credible security benefit to be gained from it.

Intel SGX Explained 10 years ago

Sadly, leaking the key is not the answer. You'd give independent developers the freedom to use SGX, but at the same you'd make SGX worthless.

Details: if the key used to sign architectural enclaves (like the Launch Enclave) would leak, this would completely break SGX. Anyone with the key could create their own Quoting Enclave and the guarantees behind software attestation would go down the drain.

Intel SGX Explained 10 years ago

I expect this to play out like the W3C EME standard. Software attestation separates debug from non-debug enclaves, so your kernel will need to load production enclaves for you to watch Netflix. If Mozilla/Firefox caved, so will Linux.

Intel SGX Explained 10 years ago

Perhaps it means they're trying to be thorough?

A Xeon implementation would have to secure the QPI links between the CPU chips. These run at significantly higher speeds than DRAM, so the current MEE design would likely not be able to keep up. Also, a Xeon implementation would have to somehow have the chips mutually authenticate each other.

That being said, I wouldn't be surprised if Intel was trying to see if they can get away with the licensing bs in desktops before committing resources to tackling the challenges that I mentioned above.

Intel SGX Explained 10 years ago

I'm terrible at writing. I am trying to say that SGX cannot restore things from the SSA, and it has to use some protected area. To the best of my knowledge, they're using the non-architectural area of the TCS, which is protected from any sort of write.

Intel SGX Explained 10 years ago

If SGX becomes successful, Intel becomes the Verizon+ATT+Tmobile+Sprint of hardware security. No signed enclave, no security.

Flashed the Insyde BIOS using http://hexxeh.net/?p=328117655 and got Ubuntu 11.04 at it, when it was just an alpha. Filing bugs since. Will switch to the 11.10 dev version when the first alpha is out.

I always liked to test the development version of Ubuntu and file bugs. I used to do it on my main machine, but the probability of failed boots increased sharply after 9.10, so I stopped.

I consider that I did pay my due to Google: I filed ~40 ChromeOS bugs, 5 Chrome bugs, and developed a Chrome extension. The extension mitigates against a ChromeOS issue and is available in the store https://chrome.google.com/webstore/detail/fopmmgbckkdhedhndl...

I wouldn't expect performance to be a problem. For computational tasks, Ruby works just as fine on Windows as on a UNIX platform.

Windows perf suffers because (1) in some rare cases, the needed primitives aren't provided by the kernel, and (2) Windows does some things differently, and Ruby library authors don't have the incentives to design and maintain a separate codepath for Windows.

The issues above don't usually arise in desktop applications. They're seen most often in server code -- fork is missing and that sucks, asynchronous I/O works differently, file monitoring and pipes also work differently, etc.

Thank you for the recommendations! I didn't know about the Cputech product.

Your intuition was right, they are too expensive for me. So, I should clarify: I am happy with using current-generation smart-card chips, but I would like to use them directly. The folks who wrote the JavaCard VM must have used some SDK... I want that SDK, so I can write my own OS.

Thanks!

Hm, I just saw this question, sorry. I should definitely clarify. I witnessed NO racism or xenophobia at Apple. I was treated very well throughout my internship.

To the best of my knowledge (2006), Apple does H1 visas, but they don't sponsor green card applications. When your H1-B expires, they'll have you work elsewhere until you're eligible for an H1-B again. This is based on a small sample (rumors).

Oops, got below 0 for the first time. Sorry, I was joking a bit, didn't mean to be offensive.

I didn't mean to offend python (this time). I think learning different languages helps the mind, and I try to experiment with at least 1 new language every year. So I was thinking if more people have time to learn new languages, everyone will be better off. I hope this makes more sense.

I think the point was that laws that are meant to protect some categories of people can end up hurting them more.

Most people's instinctive reaction would be "let's add another anti-discrimination law". The post gives an example of how that approach can fail.

Haha, I was just thinking this rocks for Ruby and other upcoming languages. If people don't have new Python features to play with, they can spend the time learning new languages.

I hope the proposal gets accepted, because I don't like python (personal taste, not trying to start a flame war) and I hope it stops showing up in all the systems I work with.

That's because Ruby folks don't work on that as a community. We're all working on our pet projects, instead of helping get ruby1.9 into the popular OSes -- there's no one-click installer for Windows or OSX, and packages for various linux distros are lagging.

(Yes, I'm pointing the finger at myself too... if only I could stop wasting my time on random stuff, I could spend a bit of time each week helping out.)