Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Henrik Ahlgren
On Sun, Sep 08, 2013 at 08:00:12AM +0900, Joel Rees wrote:
 (1) This requires enabling two repositories that I have been avoiding
 enabling, contrib and non-free. That means I have to watch the
 repository more carefully when using
 
 apt-cache search
 
 or synaptic to look for new tools, right? Or can we just enable those
 two repositories long enough to load Henrique's tool and the microcode
 updates, then disable them again?

Why do you feel that you even need to ask? You are free to handle the
situation with your machines in any way you wish. Perhaps just
download and install the .deb packages directly without even using
apt, or simply ignore the microcode update as shipped by Debian or as
BIOS upgrades by your computer manufacturer.

 (2) Are there any CPU manufacturers who are not plagued by this
 ultimate refusal to let computer owners actually own their computers?

At least Intel openly admits that their modern CPUs have the ability
to change the microcode by uploading an encrypted binary blob. This
universal backdoor is publicly documented[1]. Other manufacturers may
claim otherwise, but what else can we do except trust them? It is a
very fundamental problem.

Also, it is hard to argue that it is useful to have the ability to fix
bugs in the CPU without replacing the chip. After all, you will face
the same dilemma of trusting the CPU manufacturer when offered a new
revision of the physical CPU with bugfixes. It simply is not feasible
for the majority of people to reverse engineer the silicon for any
evil features like NSA backdoors in any hardware crypto features.

Does anyone know if the microcode shipped by Intel is always
encrypted? Their nasty licence prohibits everse engineering,
decompilation, or disassembly of the blob, but even if you ignored
that, or even if you had the source code (whatever that means in the
context of microcode, it is not normal X86 code after all), could you
make any sense of it without having the whole silicon design
available?

[1] 
http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3a-part-1-manual.html


-- 
To UNSUBSCRIBE, email to debian-security-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130908083400.ga30...@seestieto.com



Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Henrique de Moraes Holschuh
On Sun, 08 Sep 2013, Henrik Ahlgren wrote:
  or synaptic to look for new tools, right? Or can we just enable those
  two repositories long enough to load Henrique's tool and the microcode
  updates, then disable them again?
 
 Why do you feel that you even need to ask? You are free to handle the
 situation with your machines in any way you wish. Perhaps just

Indeed.  And if you're not going to use the repositories to get automated
updates, you should at least use the Debian PTS (packages.qa.debian.org) to
track package upload-source events so that you will get an email when the
package is updated.

 Also, it is hard to argue that it is useful to have the ability to fix
 bugs in the CPU without replacing the chip. After all, you will face

Indeed.  Look at the errata lists for the x86 processors of any vendor...

 Does anyone know if the microcode shipped by Intel is always
 encrypted? Their nasty licence prohibits everse engineering,

Yes, it is.  And it is not a half-baked job either.
http://inertiawar.com/microcode/

 decompilation, or disassembly of the blob, but even if you ignored
 that, or even if you had the source code (whatever that means in the
 context of microcode, it is not normal X86 code after all), could you
 make any sense of it without having the whole silicon design
 available?

See here:
http://en.wikipedia.org/wiki/Microcode

You really need a lot of low-level information about the core (and maybe
even the uncore) to do anything useful with the full microcode.

And there is no reason why a microcode update would have the full microcode
inside, either.  It could well be just a patch that only describes changed
sections of the microcode, or even a runtime behaviour change table
(something like a hardware breakpoint + microcode that should run when the
breakpoint is activated, or even a table of internal processor state change
that should be applied when the breakpoint is activated, to fix issues that
are not implemented in microcode).

-- 
  One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie. -- The Silicon Valley Tarot
  Henrique Holschuh


-- 
To UNSUBSCRIBE, email to debian-security-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130908154200.ga5...@khazad-dum.debian.net



Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Henrique de Moraes Holschuh
On Sun, 08 Sep 2013, Joel Rees wrote:
 I was hoping that AMD was not going to have the license and
 non-visibility issue that plagues the Intel processor microcode
 updates. But I find this original announcement from when Henrique made
 the updater tool available:
 
 http://lists.debian.org/debian-devel/2012/11/msg00109.html

AMD is better than Intel at telling the general public what a microcode
update fixes.  AMD does publish to the general public the errata each
microcode update fixes.  What each erratum means is also published in the
AMD processor Revision Guides, which are also public.

Not that it will help you much.  Really.  Most of the errata worth fixing
through a microcode update causes either unpredictable system behaviour,
data corruption, or system hangs/reboots.  Only a few fixes are for minor
issues such as power management, performance, or optional features.  And
most of the time, it is very very difficult to access how difficult it is to
hit a given erratum.  So it is a update or else deal, because it always
fixes something horrible (even when the chances of you hitting the issue are
very remote -- but you won't be able to know that, you'll have to update
just in case anyway)

AFAIK, Intel does publish the same kind of information but it is not
available to the general public.  Intel does publish to the general public
the list of errata in their processor specification updates documentation,
it just almost never writes down in public documentation what errata a
microcode update fixes.

And you could also have internal/non-public errata and fixes, nothing forces
Intel, AMD, or any other vendor to disclose (even to their hardware
partners) the full list of errata and behaviour changes (fixes, etc).

Note that even the internal errata/fix information is bound to be really
uninteresting anyway.  Backdoors would not be documented anywhere, heck, it
is very likely that only the one or two engineers that had to implement them
even know about it.

-- 
  One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie. -- The Silicon Valley Tarot
  Henrique Holschuh


-- 
To UNSUBSCRIBE, email to debian-security-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130908155505.gb5...@khazad-dum.debian.net



Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Volker Birk
On Sun, Sep 08, 2013 at 12:55:05PM -0300, Henrique de Moraes Holschuh wrote:
 Note that even the internal errata/fix information is bound to be really
 uninteresting anyway.  Backdoors would not be documented anywhere, heck, it
 is very likely that only the one or two engineers that had to implement them
 even know about it.

Next problem: security is about trusting other people. If you don't
trust Intel or AMD, better don't use their products.

I see a lot of things which are destroyed now – it is not only the
“cloud”. This game is over anyways. It's about the base we're all
standing on. The US government and the NSA are eliminating that, and
nothing less.

If we cannot trust in the manufacturers of the CPUs, we don't have
computers any more we can use.

Yours,
VB.
-- 
pibit AG, Oberer Graben 4, 8400 Winterthur
mailto:v...@pibit.ch  Mobile +41 (79) 292 88 87


pgp9T7vDblP0i.pgp
Description: PGP signature


Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Andrew McGlashan
On 9/09/2013 2:18 AM, Volker Birk wrote:
 On Sun, Sep 08, 2013 at 12:55:05PM -0300, Henrique de Moraes Holschuh wrote:
 Note that even the internal errata/fix information is bound to be really
 uninteresting anyway.  Backdoors would not be documented anywhere, heck, it
 is very likely that only the one or two engineers that had to implement them
 even know about it.
 
 Next problem: security is about trusting other people. If you don't
 trust Intel or AMD, better don't use their products.
 
 I see a lot of things which are destroyed now – it is not only the
 “cloud”. This game is over anyways. It's about the base we're all
 standing on. The US government and the NSA are eliminating that, and
 nothing less.
 
 If we cannot trust in the manufacturers of the CPUs, we don't have
 computers any more we can use.

This is absolutely a problem, I have no doubt that the NSA has hooks in
as well as requirements to hinder user security.


This article [2], points to the Intel Secure Key technology
[3] (in newer Intel CPUs).

The first intro line of the Intel link says:
 Intel Secure Key, was previously code-named Bull Mountain Technology.


The NYT article [0] mentions Bullrun as a program , that neatly
fits with Bull Mountain Technology 

So, if we have a new enough [later I7?, 3rd gen or later] Intel CPU,
then chances are that the random number generator will bring in issues
that will interfere with the security of GPG when generating keys, due
to NSA requirements.


And here is a quote about /dev/random . (from another mailing list
that I participate on):

I'm glad Ted Ts'o also understands the need to avoid opaque
instruction sets that can't be independently audited, and has resisted
pressure from Intel engineers to allow /dev/random to rely solely on
the RDRAND instruction.

You can't trust the random number generator in Intel CPUs, the special
function.  If crypto key generation relies on proper random number
generation, then crypto is busted ... just ask CryptoCat what happens
when there is a flaw in random number generation [4], since fixed by the
way.


So, all in all, I can see how /any/ microcode update could be the result
of NSA requirements and it throws a whole can of worms on trust,
particularly with ANY business that is US based or has links to US based
companies which may exert pressure to force issues.

Furthermore, do we update microcode for older CPUs and potentially allow
them to /own/ us too?  Do we only use CPUs that pre-date this issue?
There are loads of questions, what hope do we have?


And this [5] is something that I'll probably end up using to harden my
GPG keys.


[0]
http://www.nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?_r=1;

[1]
http://www.theguardian.com/world/interactive/2013/sep/05/nsa-project-bullrun-classification-guide

[2] http://blog.cryptographyengineering.com/2013/09/on-nsa.html

[3]
http://software.intel.com/en-us/blogs/2012/05/14/what-is-intelr-secure-key-technology

[4] http://tobtu.com/decryptocat.php
  https://duckduckgo.com/?q=cryptocat%20random%20number%20issue
   (for more links)

[5] http://gagravarr.livejournal.com/137173.html?nojs=1
  (Creating a 8192 bit GPG key to replace my 1024 bit one)



Cheers
AndrewM




signature.asc
Description: OpenPGP digital signature


Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Joel Rees
(Thanks for obliging, Henrik. ;-)

On Sun, Sep 8, 2013 at 5:34 PM, Henrik Ahlgren pa...@seestieto.com wrote:
 On Sun, Sep 08, 2013 at 08:00:12AM +0900, Joel Rees wrote:
 (1) This requires enabling two repositories that I have been avoiding
 enabling, contrib and non-free. That means I have to watch the
 repository more carefully when using

 apt-cache search

 or synaptic to look for new tools, right? Or can we just enable those
 two repositories long enough to load Henrique's tool and the microcode
 updates, then disable them again?

 Why do you feel that you even need to ask? You are free to handle the
 situation with your machines in any way you wish. Perhaps just
 download and install the .deb packages directly without even using
 apt, or simply ignore the microcode update as shipped by Debian or as
 BIOS upgrades by your computer manufacturer.

I'm thinking like a newbie. (Relative to debian, I am. :-/)

I know there is a tendency to send newbs to Ubuntu. I don't think
that's a good idea any more, for reasons you may not agree with, but I
am sure you are aware of. I am subconsciously thinking about starting
a new re-mix of debian that will focus on people who just want to
replace MSWindows and MacOSX.whatever with something that doesn't try
to own them, but don't have them time/confidence to learn how to do a
manual install of a .deb package.

And as long as Intel is so not-forthcoming, there is no point in doing
so for x86/amd64 CPUs.

 (2) Are there any CPU manufacturers who are not plagued by this
 ultimate refusal to let computer owners actually own their computers?

 At least Intel openly admits that their modern CPUs have the ability
 to change the microcode by uploading an encrypted binary blob. This
 universal backdoor is publicly documented[1].

You mean, the existence and location are publicly documented, but nothing else.

 Other manufacturers may
 claim otherwise, but what else can we do except trust them? It is a
 very fundamental problem.

And at least the mob admits they want to influence you.

Ken Thompson pointed out the problems inherent in trusting machines as
complex as computers. He also made some mis-targeted assertions about
culpability that are very relevant. He did not provide a solution.

We know the solution, but we don't want to admit that Stallman was
right. We don't think we know where to go from where he takes us.

(Why is decentralization so hard to understand?)

 Also, it is hard to argue that it is useful to have the ability to fix
 bugs in the CPU without replacing the chip.

I think you mean, hard to argue with the usefulness?

But, you see, I'm arguing that complex CPUs are evil. Somewhere in my
arguments is the idea that you could produce a CPU simple enough that
field upgrades would be unnecessary.

 After all, you will face
 the same dilemma of trusting the CPU manufacturer when offered a new
 revision of the physical CPU with bugfixes.

Actually, the dilemma goes back farther than that. How can you trust
the CPU manufacturer when

(1) you can't see the masks and you couldn't read them if you could,
(2) you can't see the manufacturing processes and you wouldn't know
where to look if you could,
(3) no single engineer can understand a modern CPU (and you probably
aren't one of the group that could get close),
(4) etc.

That's more than two lemmas. Darn.

 It simply is not feasible
 for the majority of people to reverse engineer the silicon for any
 evil features like NSA backdoors in any hardware crypto features.

And that's another set of problems.

 Does anyone know if the microcode shipped by Intel is always
 encrypted?

Jack provided a link. (And Henrique brought it into this thread.)

 Their nasty licence prohibits everse engineering,
 decompilation, or disassembly of the blob, but even if you ignored
 that,

(See said link, and kudos to someone for going that far down the road.)

 or even if you had the source code (whatever that means in the
 context of microcode, it is not normal X86 code after all), could you
 make any sense of it without having the whole silicon design
 available?

Microcode source code is only a little harder to read than ordinary
machine code. Sometimes it's easier. It's machine code, after all,
even if it isn't the machine code the user usually works with. The
problem is access to the machine that executes the microcode.

Gate arrays and such are not programmed with a machine language, per
se, and are significantly harder to reverse engineer.

But if Intel publicly documented the gate arrays and microcoded
machines used in their CPUs, the updates would not be beyond the reach
of some engineers not employed by Intel. Provision of the gate array
definitions and the microprogramming would add eyeballs to the job of
finding bugs, as well. That leaves the manufacturing processes opaque,
but even those would be more subject to probing if Intel were more
forthcoming.

 [1] 
 

Re: Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-08 Thread Joel Rees
On Mon, Sep 9, 2013 at 12:55 AM, Henrique de Moraes Holschuh
h...@debian.org wrote:
 On Sun, 08 Sep 2013, Joel Rees wrote:
 I was hoping that AMD was not going to have the license and
 non-visibility issue that plagues the Intel processor microcode
 updates. But I find this original announcement from when Henrique made
 the updater tool available:

 http://lists.debian.org/debian-devel/2012/11/msg00109.html

 AMD is better than Intel at telling the general public what a microcode
 update fixes.  AMD does publish to the general public the errata each
 microcode update fixes.  What each erratum means is also published in the
 AMD processor Revision Guides, which are also public.

 Not that it will help you much.  Really.  Most of the errata worth fixing
 through a microcode update causes either unpredictable system behaviour,
 data corruption, or system hangs/reboots.  Only a few fixes are for minor
 issues such as power management, performance, or optional features.  And
 most of the time, it is very very difficult to access how difficult it is to
 hit a given erratum.  So it is a update or else deal, because it always
 fixes something horrible (even when the chances of you hitting the issue are
 very remote -- but you won't be able to know that, you'll have to update
 just in case anyway)

X/ or else ..., when there are secrets being kept always bugs me.

 AFAIK, Intel does publish the same kind of information but it is not
 available to the general public.

I don't really call that publishing. Publishing privately is one of
the conceits introduced at Berne that undermine the principle of
copyrights in free countries.

 Intel does publish to the general public
 the list of errata in their processor specification updates documentation,
 it just almost never writes down in public documentation what errata a
 microcode update fixes.

 And you could also have internal/non-public errata and fixes, nothing forces
 Intel, AMD, or any other vendor to disclose (even to their hardware
 partners) the full list of errata and behaviour changes (fixes, etc).

 Note that even the internal errata/fix information is bound to be really
 uninteresting anyway.  Backdoors would not be documented anywhere, heck, it
 is very likely that only the one or two engineers that had to implement them
 even know about it.

Still, secrecy about the microcode and about the updating machinery
makes it that much harder to probe for back doors.

Ken Thompson didn't mention it in his essay, but it is possible to
probe library code for stuff that isn't in the source code. And it is
possible to probe a CPU for backdoors, if you have enough
documentation about their correct behavior.

Modern CPUs (particularly x86 and AMD64) are like MSWindows -- too
complex, not accessible to review, no guard rails.

 --
   One disk to rule them all, One disk to find them. One disk to bring
   them all and in the darkness grind them. In the Land of Redmond
   where the shadows lie. -- The Silicon Valley Tarot
   Henrique Holschuh

--
Joel Rees


-- 
To UNSUBSCRIBE, email to debian-security-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/caar43ipy2opcbg-8ntnvwu5zeyyam4zonya+pkbxdwt514k...@mail.gmail.com



Microcode update conundrum (was Re: ANNOUNCEMENT: Intel processor microcode security update)

2013-09-07 Thread Joel Rees
(I kind of hope this starts a flame war large enough to embarrass the
corporate culprits into behaving themselves about this. Apologies in
advance when I step on toes.)

I was hoping that AMD was not going to have the license and
non-visibility issue that plagues the Intel processor microcode
updates. But I find this original announcement from when Henrique made
the updater tool available:

http://lists.debian.org/debian-devel/2012/11/msg00109.html

And that shoots that dream. So,

(1) This requires enabling two repositories that I have been avoiding
enabling, contrib and non-free. That means I have to watch the
repository more carefully when using

apt-cache search

or synaptic to look for new tools, right? Or can we just enable those
two repositories long enough to load Henrique's tool and the microcode
updates, then disable them again?

(2) Are there any CPU manufacturers who are not plagued by this
ultimate refusal to let computer owners actually own their computers?
How do the ARM manufacturers do?

(2a) Is debian running on any of the open core CPUs? (I don't remember
any evidence of such, but maybe I just missed it?)


-- 
To UNSUBSCRIBE, email to debian-security-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/caar43in8fkrxshhzjdehgfkep2htycwjoxexewrfayrrvzm...@mail.gmail.com