
AMD has no plans to release PSP code - rnhmjoj
https://www.reddit.com/r/Amd/comments/6o2e6t/amd_is_not_opensourcing_their_psp_code_anytime
======
sonium
For everybody wondering: PSP stands for Platform Security Processor, a secure
enclave in the processor and AMD's version of the Intel Management Engine.

Quoting from Libreboot:

 _As such, it has the ability to hide its own program code, scratch RAM, and
any data it may have taken and stored from the lesser-privileged x86 system
RAM (kernel encryption keys, login data, browsing history, keystrokes, who
knows!). To make matters worse, the PSP theoretically has access to the entire
system memory space (AMD either will not or cannot deny this, and it would
seem to be required to allow the DRM “features” to work as intended), which
means that it has at minimum MMIO-based access to the network controllers and
any other PCI /PCIe peripherals installed on the system._

~~~
leeoniya
basically same thing for any baseband processor - they have full DMA and
there's nothing you can do about it.

~~~
robin_reala
Well, that’s not true. Sure, connect it over PCIE and all bets are off, but
connect it over USB and you should be fine. If you’re being super careful buy
a Bluetooth 3G module.

~~~
lima
With PCIE you even have the IOMMU which can prevent DMA.

~~~
monocasa
Yeah, but apparently the PS4 was originally hacked through bugs in the IOMMU.
I basically don't trust an IOMMU that I don't have the source to and that
hasn't been formally verified (so all of them).

------
Unklejoe
One thing that kind of bothers me is that I keep seeing people justify this
decision by mentioning that AMD may be using third party source code which
they do not have the license to release.

My issue with that is that I don’t see how it prevents AMD from releasing a
super stripped down (essentially disabled), but still closed source version of
the firmware. There may very well be a valid justification for not doing so -
I just don’t know.

An even better approach would be to allow the system to run without the
firmware at all. If I remember correctly, some Intel machines will run for 30
minutes without the firmware, but will shut down after the time elapses. If
true, that at least proves that it’s not essential for system operation.

In the case of Intel, surely they could have disabled this 30 minute timer on
the consumer CPUs (just like how they disable ECC support).

~~~
cyphar
I think the justification is economic. They don't remove it because it's not
clear that there is a market for not having ME. The reason (I think) they
remove ECC support is that people are willing to pay extra for it, so they
remove it so you are forced to pay extra. If they removed ME in consumer CPUs,
they wouldn't sell any more consumer CPUs and their enterprise management
system wouldn't be any more popular.

There are also some additional problems. Intel ME is used by Linux quite
heavily (rather than talking directly to the embedded controller) which means
that certain things can become quite flaky. I have Coreboot on my X220 with
me_cleaner, and my machine seems to freeze randomly (it's definitely not the
30-minute timer, I just think it's IO being deadlocked for some reason). While
your machine may appear to work without ME, there are almost certainly
features that won't work.

~~~
pjc50
It's quite easy to build CPUs which have features disabled at manufacturing by
one-time fuses, or laser fuses. Also there is undoubtedly a (maybe small) bin
of CPUs which have failed QA only because of a fault in the management engine.

Back in the days of the 486SX/DX, it was far more normal to sell processors
with features _disabled_ for _less_ money. Why don't AMD and Intel want to
monetise their management features?

~~~
qb45
> Why don't AMD and Intel want to monetise their management features?

They do, most machines don't have remote management firmware and chipset
features installed.

As for why the ME is present on all hardware - it would be a shame if your
consumer CPU couldn't _securely_ decode super-4K-full-ultra-HD videos, right?

Besides DRM, I think the ME is also used for SGX.

 _Intel(R) Software Guard Extensions (Intel(R) SGX) is an Intel technology for
application developers seeking to protect select code and data from disclosure
or modification._

Maybe Intel wants to create some "ecosystem" of software utilizing SGX
(because vendor lock in) and for that they want as large hardware base as
possible. That's just a guess, I haven't read Intel docs and IDK if any off-
the-shelf SGX software exists yet, but I have seen similar ideas in some AMD
PSP PDFs.

edit:

FWIW, Intel Wikivertisement on SGX:

 _The introduction of SGX has a large impact on the security industry. It
shifts how security is being achieved and lowers the attack surface area of
projects. One example of SGX used in security was a demo application from
wolfSSL using it for cryptography algorithms. One example of a secure service
built using SGX is Fortanix 's key management service. This entire cloud based
service is built using SGX servers and designed to provide privacy from cloud
provider. An additional example is Numecent using SGX to protect the DRM that
is used to authorize application execution with their Cloudpaging application
delivery products._

The last one seems like something that could benefit from SGX on end-user
devices:
[https://www.numecent.com/cloudpaging/](https://www.numecent.com/cloudpaging/)

~~~
wahern
AFAIU SGX has nothing to do with the ME. It's entirely in the CPU and MMU. SGX
is more like ARM's TrustZone, except it can be utilized by multiple,
independent pieces of unprivileged code. SGX is pretty slick. The only real
problem is that 1) Intel has done a horrible job of educating developers, 2)
Intel's PKI scheme for remotely verifying authenticity of an enclave (e.g. for
DRM schemes) requires huge on-going license payments to Intel, and 3) they
don't seem keen on rolling it out across their entire processor line-up. All
three cases have been and will continue to be serious impediments to uptake
because of the confusion they create. Those impediments are likely to keep SGX
niche and underutilized.

~~~
qb45
Thanks, it seems you are right. I thought that the ME plays some role in SGX
setup but I can't find a single source for that now. Apparently it's all done
with special instructions implemented in microcode.

------
sspiff
I think this comment on the reddit thread is a pretty accurate take on the
whole thing:

"Not that anyone could have seriously expected that.

If AMD makes a business decision to possibly open source the PSP now or in the
near future, the first results will be visible 2-3 years later, at best.
However, it is VERY likely that there are legal barriers, such as 3rd party
code. Maybe they are using a 3rd party RTOS that they cannot publish the
sources of? Or maybe some DRM part of the PSP firmware can't be published?

What I'd personally like to see is a minimal PSP implementation (without any
noticeable features) that's Open Source, with reproducible build process and a
binary of that signed by AMD."

(Source:
[https://www.reddit.com/r/Amd/comments/6o2e6t/amd_is_not_open...](https://www.reddit.com/r/Amd/comments/6o2e6t/amd_is_not_opensourcing_their_psp_code_anytime/dke3tja/))

~~~
qb45
> What I'd personally like to see is a minimal PSP implementation (without any
> noticeable features) that's Open Source, with reproducible build process and
> a binary of that signed by AMD.

There are 3rd party efforts to produce something similar on Intel platforms:

[https://github.com/corna/me_cleaner/wiki/How-does-it-
work%3F](https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F)

[https://puri.sm/posts/reverse-engineering-the-intel-
manageme...](https://puri.sm/posts/reverse-engineering-the-intel-management-
engine-romp-module/)

------
JepZ
The sad thing is, we can be sure, that AMD is aware of the topic at the
C-level and doesn't seem to act in the interest of the customer anyway. Just
remember the Reddit AMA earlier this year:
[https://www.reddit.com/r/Amd/comments/5x4hxu/we_are_amd_crea...](https://www.reddit.com/r/Amd/comments/5x4hxu/we_are_amd_creators_of_athlon_radeon_and_other/)

------
simias
I'm always mildly surprised to find people posturing that having closed source
modules in the CPU is completely intolerable while basically all modern
hardware is closed source. Even if they release the source code for the PSP
they won't release the verilog of the underlying IP to see how it's
implemented. And you'd still run a closed source CPU, with a closed source GPU
and a closed source USB controller and a closed source PCI controller etc
etc...

How many of the people complaining about the lack of PSP source code are
willingly running a closed source GPU driver? How many of them are running
Windows, Mac OS or some other closed source operating system?

It reminds me of when people were blowing a fuse over the linux kernel's use
of Intel's built-in PRNG.

I'm all for open hardware design but focusing on these particular modules is a
bit counterproductive I think, if tomorrow AMD or Intel were to release CPUs
without this particular "feature" the surface of attack would not shrink
massively.

Hardware is open or it's not. Nowadays it's overwhelmingly _not_ open, so you
have to blindly trust AMD, Intel and the variour ARM SoC vendors not to fuck
you over[1] and having the PSP source code wouldn't change much about that.

[1] They probably do.

~~~
Tharkun
The scope matters.

You can get a machine to run reasonably well without relying on closed source
graphics drivers. If your GPU firmware is evil in some way, it's on your GPU
and you can be pretty confident it won't compromise the rest of your machine
or your network. If a driver is compromised, there will be signs of abnormal
behaviour (you can inspect what software on your machine is doing at runtime).

With AMD's PSP or Intel's ME, there are no such limitations in how bad things
can get. These things could take all the data you have in memory, connect to
some shady network location and dump all the data. All the while there is _no_
trace of that activity in your OS, because of none of this nonsense lives in
your OS.

~~~
simias
I guess my point is that as long as the hardware itself is closed source you
have to trust the vendor anyway. Suppose the PSP source code was open sourced,
how can you be sure it's actually what's being run by the CPU? How can you
know certain instructions aren't backdoored somehow?

It makes it a bit more difficult to implement such backdoors of course, but
it's still perfectly doable.

Again, I'm happy that people value their privacy and campaign for more open
source but it seems a bit myopic to put all our attention on this tiny part of
the problem. The risk is that if tomorrow AMD decides to actually open source
the PSP many people will think that we won and the battle is over when we've
just removed one of thousands of possible attack vectors.

~~~
zanny
Analysts working on the Intel ME can test if its active by testing line
voltages around he mainboard. Someone did manage to hard disable it, and it
could be proven in how voltages dropped at various points on the motherboard.
If all else fails it is still a physical piece of hardware.

~~~
simias
That's good, but then shouldn't we petition to have a way to physically
disable these modules instead of begging for a source code that won't get us
anywhere closer to a trusted computing environment? It's a lot easier to
validate that something is not running than it is to validate that it's
running correctly.

~~~
zanny
Disabling the ME / PSP usually breaks booting. It would require stripped down
open source PSP / ME firmware anyway to bypass it during boot.

------
wolfgke
Just for your information to help you do further research: AMD seems not to
use the brand name "AMD PSP" anymore. Instead some years ago they began to use
the name "AMD Secure Processor". Nevertheless it is just the same: Read the
small footnore at [http://www.amd.com/en-gb/innovations/software-
technologies/s...](http://www.amd.com/en-gb/innovations/software-
technologies/security) which begins with 'AMD Secure Processor (formerly
“Platform Security Processor” or “PSP”)'.

------
executesorder66
Guess I'll stick with Intel then.

It seems like many in this thread get stuck on the idea that Intel "already
has the ME, so what's the point?"

The point is, I prefer Intel due to performance reasons. But I would have
changed over to AMD permanently if they open sourced the PSP code, or if they
removed the PSP entirely. That would have been their one competitive
advantage, and now they've shat all over it, and lost many potential
customers.

~~~
kbhn
> and now they've shat all over it, and lost many potential customers.

Yes, I'm sure people are turning away in droves from the most competitive AMD
processor in a decade because they won't open source their version of ME.

/s

~~~
ebcode
Not in "droves", you're right. BUT, there is a very small, privacy-conscious,
vocal minority that does not want an obvious backdoor hiding in their CPU. I
am one member of that minority, and I won't be purchasing from AMD again until
they right this situation.

It's similar to the gaming enthusiast market, though a lot smaller. You can
market to that small segment for a big win, because gamers will shell out for
the newest GPUs, talk up the hardware online, which leads to increased sales.
If AMD would see the benefit of working with this privacy-conscious segment of
the market, I believe they would also see, not a major, but also not an
insignificant uptick in sales.

------
GuiA
Previous discussion here that gives more background about the topic:

[https://news.ycombinator.com/item?id=13781408](https://news.ycombinator.com/item?id=13781408)

tl;dr: the PSP is a full computer that lives between the instructions that get
sent to your CPU and what your CPU actually executes. It's obviously a huge
security problem, because if a backdoor in the PSP gets exploited, you cannot
trust your computer in any way, and there is no way for you to verify whether
it is being exploited or not. AMD said they might open source it, but even
that wouldn't do much to establish trust.

~~~
calafrax
right, and releasing the source code is giving a map to criminals to allow
them to hack it.

The "no security through obscurity" theory is not entirely true in the real
world.

When you push up the cost (money and skill) of a hack then hackers will attack
weaker components and so the likelihood of a hack is smaller.

This code is highly secure and would require an enormous amount of specialist
knowledge, equipment, and time to extract, analyze and exploit.

The effort involved rules out rational profit motivated individuals because
the costs are too high and there are plentiful opportunities for lower cost
exploits.

No company releases the source for their DRM code except to legitimately
interested parties in controlled circumstances and that is the correct policy
from a security perspective.

------
floatboth
We don't need the fucking code, we need it to just be OPTIONAL. Just an option
to FULLY DISABLE IT. Screw everyone who said "open source it" instead of
"disable it" >_<

------
bo1024
Very disappointed to hear this. A different decision would have definitely
swayed me to buy AMD for my next processor.

~~~
zdkl
You do know intel is doing the exact same thing? This isn't a differentiating
attribute.

~~~
samtoday
Well, you can get a POWER{8,9} workstation [1]; which has a big selling point
of having no ME/PSP processor. But it looks a bit expensive.

[1]
[http://raptorcs.com/TALOSII/prerelease.php](http://raptorcs.com/TALOSII/prerelease.php)

~~~
wolfgke
I don't know the plans with TALOS II, but those who are interested in what
happened to the original Talos Secure Workstation crowdfunding might be
interested in the following article, which I think anybody, who is interested
in how an alternative could look like, should read:

> [https://www.crowdsupply.com/raptor-computing-
> systems/talos-s...](https://www.crowdsupply.com/raptor-computing-
> systems/talos-secure-workstation/updates/the-state-of-owner-controlled-
> computing-as-talos-winds-down)

------
jancsika
Curious what giants like Google do in these cases. I assume in their vast
farms of servers there are post-2006 intel and/or post-2013 amd chips.

Do they simply use the features these processors and their OSes provide? Do
they get a special deal to look under the hood? Something else entirely?

~~~
wolfgke
> Curious what giants like Google do in these cases. I assume in their vast
> farms of servers there are post-2006 intel and/or post-2013 amd chips.

As far as I know Google mostly uses Xeons in their server farms, but also some
POWER9 servers (for example cf.
[https://cloudplatform.googleblog.com/2016/10/introducing-
Zai...](https://cloudplatform.googleblog.com/2016/10/introducing-Zaius-Google-
and-Rackspaces-open-server-running-IBM-POWER9.html)) - many people say this is
"some kind of Google's insurance against Intel/x86":

> Do they get a special deal to look under the hood?

It is well-known that the largest buyers of Xeons (plausible names are Google,
Microsoft, Amazon, Facebook, Alibaba and some others) have access to special
versions of Xeons that have special features enabled that are disabled in the
versions sold to the general public. One article giving hints into this
direction is

> [http://semiaccurate.com/2016/11/17/intel-preferentially-
> offe...](http://semiaccurate.com/2016/11/17/intel-preferentially-offers-two-
> customers-skylake-xeon-cpus/)

One such feature that is talked about is having access to an FPGA (why did
Intel buy Altera again) and it is well-known that Microsoft uses FPGAs for
Bing:

>
> [https://blogs.microsoft.com/next/2016/10/17/the_moonshot_tha...](https://blogs.microsoft.com/next/2016/10/17/the_moonshot_that_succeeded/)

> [https://www.golem.de/news/microsoft-weil-cpus-zu-langsam-
> sin...](https://www.golem.de/news/microsoft-weil-cpus-zu-langsam-sind-
> muessen-fpgas-her-1705-127784.html) [German article]

With this information I would bet that they have a special deal to look under
the hood.

------
kronos29296
Never heard about PSP before. Looks like another corner of the computer world
in total lockdown and relies on security through obscurity. Not gonna work
forever but keeps all but the talented people out. Problem is there are many
talented people out there.

~~~
sangnoir
> Not gonna work forever but keeps all but the talented people out. Problem is
> there are many talented people out there.

I really wish it could be disabled because once these talented people are in;
you, your antivirus or operating system would never know.

------
throw2016
It's safe to assume hardware and software is completely and totally
backdoored. It's done with NSLs and co-operation of companies or compromising
employees, projects, standards and other tricks which are child's play for
most government agencies.

That makes the idea of using technology to gain some sort of privacy from
state level actors with infinite resources and man power to thwart you a total
nonstarter that can at best deliver a false sense of security and at worst
more serious consequences for those who may need it.

The bottom line is established power is paranoid and wants to monitor all
communication whatever they may proclaim publicly and it appears from hind
sight and what we now know they have always done it.

------
pcunite
What can we do about this? This is completely unacceptable! Note, I'm not
referring to the source code, I could care less, I'm referring to removing
this obvious breach of privacy that _will be_ used by governments.

~~~
zanny
Don't support companies that use backdoor bullshit like this. That, however,
limits you to POWER9 and Risc-V computers.

~~~
wolfgke
> That, however, limits you to POWER9 and Risc-V computers.

Where can I buy a RISC-V computer?

I.e. not only some microcontroller board "which is just a much faster
Arduino", but a board that has the usual capabilities that one expects from a
computer such as GPU, ethernet, USB jacks, audio in/out (either audio jack or
via HDMI), possibility to connect a SSD, and perhaps an SD card slot and RAM
slots to increase the RAM if one desires.

------
Entalpi
For the uninitiated; what good does this PSP to the system?

~~~
wyldfire
It allows for a richer bootstrap than the x86 BIOS/UEFI, including checking
signatures for the boot device.

This helps mitigate attacks like persistent rootkits that alter the OS to mask
the presence of malware.

However, as a supervisor processor, the PSP is also a risk itself. If a well
funded state setup a shipping interdiction on import or export, they could
alter the PSP to insert their malware and we wouldn't be able to audit it.

This is a gift from all of those mobile SoCs that might've gotten signed
bootloaders initially just to protect the subsidy. Part of the overall "death
of the general purpose computer" (see Doctorow for more).

~~~
albertgoeswoof
How can you protect against this attack vector? Could you dump & hash the PSP
firmware, then compare with other non-imported hashes to check for tampering?

~~~
wyldfire
I doubt it -- if it was designed well, the PSP won't reveal anything about
itself to the x86 processor and won't have any off-chip memory. I think the
state-of-the-art is the Apple Secure Enclave Processor, which is probably old
enough to have inspired some of the PSP design.

Maybe a side-channel attack could help reveal the PSP firmware or other
vulnerable design elements. But I'm pretty pessimistic -- the number of
organizations/people capable of investing in the time and equipment necessary
to do this is low.

------
askz
Is there any good alternative to AMD or Intel processors?

EDIT: Is there any good alternative to AMD or Intel processors? Like more open
ones?

~~~
_e
Depends on what you use a computer for. Atmel (Raspberry Pi) and Snapdragon
(cell phone) chips come to mind.

~~~
wolfgke
> Atmel (Raspberry Pi)

The BCM2835/BCM2836/BCM2837 that is used in the RPi is made by Broadcom, not
Atmel.

~~~
_e
Thank you for the correction.

------
pksadiq
Open sourcing the PSP code (or probably any other firmware) may not help
protect you (or anyone) in terms of security or privacy.

Here is where open source is different from free software, and this is why
free software is better than open source.

Say for example, ddwrt, a very popular firmware used in several routers. Or
simply saying, Linux (kernel) + busybox, a very popular combination of some
open source codes used in several embedded systems: They are simply open
source when they run on those systems, not free software. You can't replace
their code with some (custom) versions most of the time.

All you get is the source code, you may not be allowed to run custom version.
You may not even be able to confirm if the code they gave is the code that is
actually being run on those devices.

As always said, that is enough to fit to the terms of "open source". And yes,
just another reason why free software is (almost always) better than open
source.

~~~
em3rgent0rdr
Agreed, but open-source is a necessary precondition for free software.

------
westmeal
Looks like high performance comes at a security cost. It's a good thing
projects like RISC V and certain boards like the TALOS exist or else it'd be a
hell of a time. Has anyone here tried some tech from SiFive? They appear to
have RISC V boards for sale.

~~~
Narishma
RISC-V is only available in microcontroller form for now.

------
vesak
Excuse my French but what a fucking surprise. Who ever thought they would?
That's right, I did.

Hence I'm a bit pissed off right now. But even though I was dumb enough to
believe, at least I was smart enough to wait for it, and did not waste my
money.

------
api
I'd settle for the ability to verifiably disable the PSP.

------
logicchains
I wonder, is there some way mathematically that software could be written
that's still secure (or unfeasibly difficult to crack) when running on a
system with AMD's PSP or Intel's IME?

~~~
aeorgnoieang
There isn't. PSP/IME can modify any software's code or data at any time.

------
kennydude
Side tracking, but ARM really is everywhere now. Even inside x86 chips!

------
sliken
Isn't this exactly what encrypted ram is for? Insecure DMA access to all of
memory isn't such a big deal if the contents are encrypted.

------
faragon
Are Ryzen and Threadripper affected? If so, I would change my opinion on AMD,
and chose Intel instead for my next home computer.

~~~
rnhmjoj
Every Intel CPU since 2006 and every AMD CPU since 2013 has this stuff. If you
care about this possible solutions are: buy pre-2006/pre-2013 hardware; go
through some procedure to remove the ME[1]; forget x86 entirely (ARM?)

[1]: [http://hackaday.com/2016/11/28/neutralizing-intels-
managemen...](http://hackaday.com/2016/11/28/neutralizing-intels-management-
engine/)

------
snakeanus
If only there was a foss cpu that you could easily install on a fpga - that
would be really great.

------
mtgx
Backdoor confirmed.

------
lost_name
Is there any reason why people were (seemingly) expecting this, or was it just
an idea that gained momentum that AMD never actually suggested or considered?

~~~
digitalzombie
It was brought up in a subreddit thread and an AMD PR replied to it saying
they'll look into it or something a long the line.

The thread was basically everybody saying they would buy AMD if they release
the code because they'll be the only friend CPU towards the open source
community.

This was actually awhile ago, I was the reading the thread too.

------
jincheker
F __*k noobs manipulated by these nonsense. Intel does the same thing, if you
want freedom, build your own

~~~
AdmiralAsshat
The number of people on this planet with the singular knowledge to build a
modern processor, from scratch, I would estimate is well under 1,000. The
number with the knowledge and the resources to do so is even lower.

Telling someone if they don't like their processor choices to "build their
own" is like telling someone to build their own ISP/Telco service if they're
not happy with the sole Comcast offering in their area.

~~~
snakeanus
> The number of people on this planet with the singular knowledge to build a
> modern processor, from scratch, I would estimate is well under 1,000

I am pretty sure that most EE/CE students at some point or another implement a
basic processor on a fpga. That being said, I am not sure how many of them
would be able to build a "modern" one.

