Intel Software Guard Extensions (SGX)
might very well be The Next Big Thing coming to our industry, since
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 introduction of Intel VT-d, VT-x, and TXT technologies in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
previous decade. It apparently seem to promise what so far has never
been possible – an ability to create a secure enclave
within a potentially compromised OS. It sounds just too great, so I
decided to take a closer look and share some early thoughts on this
technology.
Intel
SGX – secure enclaves
within untrusted
world!
Intel SGX is an upcoming technology,
and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is very little public documents about it at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 moment. In
fact cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only public papers and presentations about SGX can be found
in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 agenda of one security workshop that took place some two
months ago.
The three papers from Intel engineers presented cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re provide a reasonably good
technical introduction to those new processor extensions.
You might think about SGX as of a next
generation of Intel TXT – a technology that has never really took
off, and which has had a long history of security problems disclosed
by certain team of researchers ;) Intel TXT has also been perhaps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
most misunderstood technology from Intel – in fact many people
thought about TXT as if it already could provide security enclaves
within untrusted OS – this however was not really true (even
ignoring for our multiple attacks) and I have spoke and wrote many
times about that in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past years.
It's not clear to me when SGX will make
it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPUs that we could buy in local shops around cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corner. I
would be assuming we're talking about 3-5 years from now, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
SGX is not even described in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel SDM at this moment.
Intel SGX is essentially a new mode of
execution on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU, a new memory protection semantic, plus a couple
of new instructions to manage this all. So, you create an enclave by
filling its protected pages with desired code, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you lock it down,
measure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, and if everything's fine, you ask cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
processor to start executing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code inside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enclave. Since now
on, no entity, including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 kernel (ring 0) or hypervisor (ring
“-1”), or SMM (ring “-2”) or AMT (ring “-3”), has no
right to read nor write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory pages belonging to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enclave.
Simple as that!
Why have we had to wait so long for
such technology? Ok, it's not really that simple, because we need
some form of attestation or sealing to make sure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enclave was
really loaded with good code.
The cool thing about an SGX enclave is
that it can coexist (and so, co-execute) togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r code,
such all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 untrusted OS code. There is no need to stop or pause cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
main OS, and boot into a new stub mini-OS, like it was with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TXT
(this is what e.g. Flicker tried to do, and
which was very clumsy). Additionally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re can be multiple enclaves,
mutually untrusted, all executing at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time.
No more stinkin' TPMs nor BIOSes to
trust!
A nice surprise is that SGX
infrastructure no longer depends on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM to do measurements,
sealing and attestation. Instead Intel has a special enclave that
essentially emulates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM. This is a smart move, and doesn't
decrease security in my opinion. It surely makes us now trust only
Intel vs. trusting Intel plus some-asian-TPM-vendor. While it might
sound like a good idea to spread cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trust between two or more
vendors, this only really makes sense if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 relation between
trusting those vendors is expressed as “AND”, while in this case
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 relation is, unfortunately of “OR” type – if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 private EK
key gets leaked from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM manufacture, we can bypass any remote
attestation, and no longer we need any failure on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel's side.
Similarly, if Intel was to have a backdoor in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir processors, this
would be just enough to sabotage all our security, even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM
manufacture was decent and played fair.
Because of this, it's generally good
that SGX allows us to shrink cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of entities we need to trust
down to just one: Intel processor (which, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se days include cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPUs
as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory controller, and, often, also a GPU). Just to
remind – today, even with a sophisticated operating system
architecture like those we use in Qubes OS, which is designed with
decomposition and minimizing trust in mind, we still need to trust
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM, in addition to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor.
And, of course, because SGX enclaves
memories are protected against any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r processor mode's access, so
SMM backdoor no longer can compromise our protected code (in contrast
to TXT, where SMM can subvert
a TXT-loaded hypervisor), nor any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r entity, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
infamous AMT, or malicious GPU, should be able to do that.
So, this is all very good. However...
Secure Input and Output (for Humans)
For any piece of code to be somehow
useful, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re must be a secure way to interact with it. In case of
servers, this could be implemented by e.g. including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SSL endpoint
inside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protected enclave. However for most applications that run
on a client system, ability to interact with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user via screen and
keyboard is a must. So, one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most important questions is how
does Intel SGX secures output to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen from an SGX enclave, as
well as how does it ensure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 input cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enclave gets is indeed
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 input cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user intended?
Interestingly, this subject is not very
thoroughly discussed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel papers mentioned above. In fact
only one paper briefly mentions Intel Protected Audio Video Path
(PVAP) technology that apparently could be used to provide secured
output to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen. The paper cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n references... a consumer FAQ onBlueRay Disc Playback using Intel HD graphics. There is no furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r
technical details and I was also unable to find any technical
document from Intel about this technology. Additionally this same
paper admits that, as of now, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no protected input
technology available, even on prototype level, although cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y promise
to work on that in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future.
This might not sound very surprising –
after all one doesn't need to be a genius to figure out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main
driving force behind this whole SGX thing is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DRM, and
specifically protecting Holywwod media against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pirate industry.
This would be nothing wrong in itself, assuming, however, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
technology could also have some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r usages, that could really
improve security of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user (in contrast to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
media companies).
We shall remember that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 secrets,
keys, tokens, and smart-cards, are ultimately to allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user to
access some information. And how does people access information? By
viewing in on a computer screen. I know, I know, this so retro, but
until we have direct PC-brain interfaces, I'm afraid that's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only
way. Without properly securing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 graphics output, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 secrets
can be ultimately leaked out.
Also, how people command cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir
computers and applications? Well, again using this retro thing called
keyboard and mouse (touchpad). However secure our enclave might be,
without secured input, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app would not be able to distinguish
intended user input from simulated input crafted by malware. Not to
mention about such obvious attacks as sniffing of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user input.
Without protected
input and output, SGX might be able to stop cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware from stealing
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's private keys for email encryption or issuing bank
transactions, yet cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware will still be able to command this
super-secured software to e.g. decrypt all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user emails and later
steal cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screenshots of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plaintext messages (with a bit of
simple programming, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screenshot's could be turned back into nice
ASCII text for saving on bandwidth when leaking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m out to a server
in Hong Kong), or better yet, perhaps just forward cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to an email
address that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker controls (perhaps still encrypted, but
using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attackers key).
But, let's ignore
for a moment this “little issue” of lack of protected input, and
lack of technical documentation on how secure graphics output is
really implemented. Surely it is thinkable that protected input and
output could be implemented in a number of ways, and so let's hope
Intel will do it, and will do right. We should remember here, that
whatever mechanism Intel is going to use to secure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 graphics and
audio output, it surely will be an attractive target of attacks, as
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is probably a huge money incentive for such attacks in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 film
illegal copying business.
Securing mainstream client
OSes and why this is not so simple?
As mentioned
above, for SGX enclaves to be truly meaningful on client systems we
need protected input and output, to and from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 secured enclaves.
Anyway, lets assume for now that Intel has come up with robust
mechanisms to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se. Let's now consider furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, how SGX
could be used to turn our current mainstream desktop systems into
reasonably secure bastions.
We start with a
simple scenario – a dedicated application for viewing of incoming
encrypted files, say PDFs, performing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir decryption and signature
verification., and displaying of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final outcome to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user (via
protected graphics path). The application takes care about all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
key management too. All this happens, of coruse, inside an SGX
enclave(s).
Now, this sounds
all attractive and surely could be implemented using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SGX. But
what about if we wanted our secure document viewer to become a bit
more than just a viewer? What if we wanted a secure version of MS
Word or Excel, with its full ability to open complex documents and
edit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m?
Well
it's obviously not enough to just put cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proverbial
msword.exe into a SGX
enclave. It is not, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 msword.exe makes use
of million of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things
that are provided by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS and
3rd
libraries, in order to perform all sorts of tasks it is supposed to
do. It is not a straightforward decision to draw a line between
those parts that are security sensitive and those that are not. Is
font parsing security critical? Is drawing proper labels on GUI
buttons and menu lists security critical? Is rendering of various
objects that are part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 (decrypted) document, such as pictures,
security critical? Is spellchecking security critical? Even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
function of some of a subsystem seem not security critical (i.e. not
allows to easily leak
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plaintext document out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enclave), let's not forget that all
this 3rd
party code would be interacting very closely with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
enclave-contained code. This means cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack surface exposed to all
those untrusted 3rd
party modules will be racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r huge. And we already know it is racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r
not possible to write a renderer
for such complex documents as PDFs, DOCs, XLS, etc, without
introducing tons of exploitable bugs.
And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se attack are not
coming now from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potentially malicious documents (against those
we protect, somehow, by parsing only signed document from trusted
peers), but are coming from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compromised OS.
Perhaps
it would be possible to take Adobe Reader, MS Word, Powerpoint, Excel
etc, and just rewrite every of those apps from scratch in a way that
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were
properly decomposed into sensitive parts that execute within SGC
enclave(s), and those that are not-sensitive and make use of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
OS-provided
functionality, and furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r define clean and simple interfaces between
those parts, ensuring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “dirty” code cannot exploit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
sensitive code. Somehow
attractive, but somehow I don't see this happening anytime soon.
But, perhaps, it
would be easier to do something different – just take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole
msword.exe, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DLLs it depends on, as well as all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS
subsystems it depends on, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GUI subsystem, and put all of
this into an enclave. This sounds like a more rational approach, and
also more secure.
Only
notice one thing – we just created... a Virtual Machine with
Windows OS inside and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 msword.exe that uses this Windows OS..
Sure, it is not a VT-x-based VM, it is an SGX-based VM now, but it is
largely cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same animal!
Again,
we came to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conclusion why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 use of VMs is suddenly perceived as
such an increase in security (which some people cannot get, claiming
that introducing VM-layer only increases complexity) – cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 use of
VMs is profitable because of
one of thing: it suddenly
packs all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fat libraries- and OS-exposed APIs and subsystems into
one security domain, reducing all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interfaces between this code in
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 outside world. Reducing of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interfaces between two
security domains is ALWAYS desirable.
But our
SGX-isolated VMs have one significant advantage over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r VM
technologies we got used to in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last decade or so – namely those
VMs can now be impenetrable to any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r entity outside of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM. No
kernel or hypervisor can peek into its memory. Neicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r can cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM,
AMT, or even a determined physical attacker with DRAM emulator,
because SGX automatically encrypts any data that leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor,
so everything that is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DRAM is encrypted and useless to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
physical attacker.
This
is a significant achievement.
Of course SGX, strictly
speaking, is not a (full)
virtualization technology, it's
not going to replace VT-x..
But remember we don't always need full virtualization, like VT-x,
often we can use paravirtualization and all we need in that case is a
good isolation technology. For
examaple, Xen uses
paravirtualization
for Linux-based PV VMs,
and uses
good-old ring3/ring0 separation mechanism to
implement this, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
level of isolation
of such PV
domains on Xen is comparable to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 isolation of HVMs, which are
virtualized using VT-x.
To Be Continued
In
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next part of this article, we will look into some interesting
unconventional uses of SGX, such as creating malware that cannot be
reversed engineered, or TOR nodes or Bitcoin mixers that should be
reasonably trusted, even if we don't trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir
operators.
Then we will discuss how SGX might profoundly change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 architecture
of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future operating systems, and virtualization systems, in a way
that we will no longer need to trust (large portions of) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir
kernels or hypervisors, or system admins (Anti Snowden Protection?)
And, of course, how our Qubes OS might embrace this technology in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365
future.
Finally, we should
discuss cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 important issue of whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r this whole SGX, while
providing many great benefits for system architects, should really be
blindly trusted? What are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chances of Intel building in backdoors
cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re and exposing those to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NSA? Is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re any difference in
trusting Intel processors today vs. trusting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SGX as a basis of
security model of all software in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future?
26 comments:
"Secure Input and Output (for Humans)" << do you know this paper? http://users.ece.cmu.edu/~jmmccune/papers/ZhGlNeMc2012.pdf
"It surely makes us now trust only Intel vs. trusting Intel plus some-asian-TPM-vendor. "
I'm assuming cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 writer is bright enough to understand that a) NSA will know every so called secret key Intel will have and b) Intel has to put a backdoor into every chip because NSA says so?
And Intel must deny everything when asked, that's part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 order.
Same procedure as is in use with Microsoft and "trusted platform". Only it means that hardware trusts MS/NSA, _against me_. For me it's worse than useless: An remote controlled spying device.
Trusting any US company alone on any security issue means directly trusting that NSA is not going harass _you_.
That's a reality US is living in, now.
@anon-who-distrusts-intel:
Bright might I be, or not, but at least I try ;)
http://cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365invisiblethings.blogspot.com/2009/06/more-thoughts-on-cpu-backdoors.html
The problem is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no escape from trusting Intel or AMD today.
However, an important question is: does SGX offer Intel an easier/more deniable way to backdoor cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processors? As mentioned in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post, I will discuss this topic in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 part 2 of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 article.
Hi
This might answer your thouhts
"Upon delivery of an SMI to a processor supporting Intel MPX, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 content of IA32_BNDCFGS is saved to SMM state
save map and cleared when entering into SMM [..] Thus, Intel MPX is disabled inside an SMM
handler until SMM code enables it explicitly"
"The problem is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no escape from trusting Intel or AMD today."
Yes, this is exactly right. So, what is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best option?
1) Trust Intel.
2) Trust AMD.
3) Don't use a computer for sensitive things. (Go back to using paper, like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Russian government recently announced.)
4) Open-source hardware (CPUs)?
This is a serious question I pose to you, Joanna! Which do you choose (and why)? Can 4 ever become a reality?
Oh, I almost forgot to say: This is a great post! Very informative, and your insight is always appreciated!
@anon-talking-about-mpx-and-smm:
Hmm, but what does MPX extensions have to do with SGX? Apparently I'm not bright enough to understand your comment. Please explain.
@anon-who-advertises-cmu-paper:
A quote from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper:
"[T]he HV also downgrades cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 graphics controller to basic VGA text mode".
No more comments... The academia always amuses me with how much people could do to get a paper published ;)
I honestly DO believe intel has included a backdoor in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir processors because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NSA spent billions to break encryption. Joanna is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re no way to test if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are backdoors in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir cpus?
http://www.nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html
In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 light of those latest revelations, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Intel/NSA Backdoor" scenario is, unfortunately, increasingly likely. Very disheartening.
We need people like you, Joanna! Keep up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 good work.
nah don't call it advertise.. I was just interested in your thoughts on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 concept in general. That cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 implementation is nothing but a PoC should be clear.
>"just take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole msword.exe, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DLLs it depends on, as well as all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS subsystems it depends on, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 GUI subsystem, and put all of this into an enclave"
Look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Microsoft's Drawbridge research OS http://research.microsoft.com/en-us/projects/drawbridge/
@Ark-kun:
So, what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y describe is essentially a one-vm-per-app approach. Whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "VM" is an actual fully virtualized VT-x VM, some form of a paravirtualized VM, or just a process in an OS with limited API surface, this all falls under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "use VMs for better isolation" paradigm. And, again, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole point about using "VMs for better isolation" is to reduce interfaces between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're doing just that.
Regarding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specifics of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir approach -- let me quote cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Limitations" section from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper:
"Solving cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem of multiprocess applications is much harder particularly for applications that communicate through shared state in
win32k as is done in many OLE scenarios. We have considered, but not implemented, two possible designs. One is to load multiple applications into a single address space. Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r is to run win32k in a separate user-mode server process that can be shared by multiple applications in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same isolation container."
Their first solution would be essentially "one-vm-for-multiple-app", so a traditional one (like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one we use in Qubes). The latter approach (wine32k in a separate server process) would be reintroduction of fat interfaces between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 isolated apps and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 *trusted* part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system, which win32k surely is!
In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r workds, back to what we use in Qubes OS, or back to what is currently in Windows :)
Also of note: "At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time of writing, Microsoft has no plans to productize
any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 concepts prototyped in Drawbridge"... and without MS producing it, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no way we could have Windows Library OS ready to run real-world apps, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y also admit in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper. Remember WINE on Linux? Same story. But this, of course, is more of a political problem, than a technical one. Albait an important stopper.
joanna: curious about your thoughts on isolating user input into a dedicated hardware device w/ 2 modes similar to KVM as proposed in this paper:
http://www.mitre.org/work/tech_papers/2012/12_0024/12_0024.pdf
Intel assumes that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS is untrusted and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365refore SGX may live. This assumption isn’t very accurate. I’m well aware of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current security issues, but let’s keep in mind that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were built on a long chain of legacy support and bad design foundations which is long backed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel architecture.
Maintaining support in legacy architecture while adding proprietary patch (SGX) isn’t cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way to go.
for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of time, money and effort that Intel has spent in redesigning it’s conception (and this has not yet started with software enabling) – I think we could have a much simpler chip design with a much better OS architecture on top of it.
Academic research has obsoleted current OS design a decade ago and we keep trying to hold cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same crappy assumptions because we are used to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m (only re programmed by big corporations to think cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same).
Could you clarify how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trusted code is bootstrapped, in terms of keys?
That is, does each CPU have a public/private key pair, and if so, how does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 software vendor know that it's a CPU and not software, pretending to be a CPU and providing public keys?
Will only vendors who have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir code signed by Intel be allowed to create enclaves?
In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, how does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vendor<->CPU "handshake" work?
@anon-who-asks-about-key-mgmt:
Remote Attention used by SGX has been described in this paper in more detail:
https://docs.google.com/file/d/0B_wHUJwViKDaSUV6aUcxR0dPejg/edit?pli=1
To answer your question let me quote cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper:
"Quoting Enclave verifies REPORTs from ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r enclaves on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 platform using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intra-platform enclave attestation method described above, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n replaces cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MAC over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se REPORTs with a signature created with a device specific (private) asymmetric key. The output of this process is called a QUOTE."
How are 3rd parties supposed to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 matching public key for verification is not discussed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper (or I'm missing it). I could imagine Intel will just publish cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 certificate(s) for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 each processor series somewhere. (Just like TPM manufactures are supposed to publish certs for TPM's EK keys, which play a similar role in aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticating a real TPM).
They also state that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual device-specific key is not used directly for Quote signing in order to prevent de-anonymization of user's machines, and instead cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y use something cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y call EPID which is a scheme based on DAA, used previously in TPM for Remote Attestation. I haven't studied neicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r DAA nor EPID in detail, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper provides a link to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r paper about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 EPID.
There's some recent work on formally correct software that's heading towards real world usability by only verifying a shim. There's obvious links to having a secure part of a chip.
See "Establishing Browser Security Guarantees
through Formal Shim Verification" http://goto.ucsd.edu/quark/usenix12.pdf
Intel just published 156 pages of material on SGX.
http://software.intel.com/en-us/intel-isa-extensions#pid-19539-1495
Sorry to be a bit late posting here - while i followed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TXT/TPM technologies closely (to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point of implementing my own dynamically loaded MLE from Windows!) I must have fallen behind because I had not heard about SGE until now.
I haven't read much about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technology yet apart from some blog posts at Intel's web site and I'm not sure what is public.
However, reading your post I'm wondering about what you write:
>>>
Intel TXT has also been perhaps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most misunderstood technology from Intel – in fact many people thought about TXT as if it already could provide security enclaves within untrusted OS – this however was not really true (even ignoring for our multiple attacks) and I have spoke and wrote many times about that in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past years.
<<<
I don't understand what is meant here because as far as I know, TXT can indeedn be used to create trusted enclaves within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU, namely in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way Flickr or ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r custom-written MLE's does which you also mention later in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 article. While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are many practical problems with such an approach and it also requires trust in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CPU, TPM and SINIT modules (which you have shown is not infallible - but such errors are still correctable and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correction can be 'measured') it does in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ory provide an enclave.
(by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way I don't think Flickr came up with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea to load from within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS which seems to be suggested by this blog post - I think that was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole point of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dynamic root of trust additions to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TPM 1.2 standard which are employed by TXT. If one simply seeks to secure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first program loaded, standard TPM mechanisms, which don't require a TPM, are sufficient).
@Morty29: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 requirement cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 freeze cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole OS for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time when you want to run your trusted App (in TXT "enclave") is just ridiculous. Today's OSes are not MS-DOS anymore, you cannot just freeze it.
Also, regarding things that one needs to trust when using TXT -- don't forget about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM. The problem of TXT dependency on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BIOS/SMM has never been solved in a good way AFAIK. Even with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 over-complex and somehow pacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365tic notion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 STM.
Looking back at TXT now, seeing where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 STM "solution" went, I consider it a big failure. Even though in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous years I was somehow excited about it. God we will have SGX instead.
Great thanks for your reply. Yes I agree TXT is very impractical, my point was just that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same things could be achieved so I think TXT and SGX are just two ways of achieving exactly cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same end-result. SGX seems more promising and since it's new presumably Intel believes in it, whereas it seemed TXT didn't get that much attention in recent years. What I especially like about SGX is that enclave entries/exits can now happen from user mode, and that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enclave code itself (upon entry) executes in user mode. Hopefully this would enable cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 technology
@Morty29: as I explained above, TXT does *not* allow to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same things as SGX. SGX is stronger architecturally.
"because SGX automatically encrypts any data that leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 processor, so everything that is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DRAM is encrypted and useless to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 physical attacker." does not seem right to me.
I suppose content in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 EPC is protected by memory access control while content swapped out is protected by encryption. Did I miss anything?
Hi Joanna,
Very good post as alway.
One precision I believe... SGX main goal is Intel to stay relevant in a cloud environment (not DRM). Next year almost 50% of hardware will be ordered by cloud providers. They need capabilities to allow organizations to externalize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir computation, securely.
@Morty29 Intel TXT is not SMM proof (as far as public knowledge goes) and also you can't have concurrent execution of trusted and untrusted environments. These two are solved in SGX.
Post a Comment