Live data from Hacker News

Ask HN: How do you trust that your personal machine is not compromised?

news.ycombinator.com

391–400 of 469 posts

Re: Ask HN: How do you trust that your personal machine is not compromised?

#391
post #230

Earlier quoted context omitted.

Linux is a security shit show but it is at least publicly auditable, which is a prerequisite to form reasonably confidence in the security of software, or to rapidly correct mistakes found. OpenBSD by contrast has dual auditing and a stellar security reputation, but development is much slower and compatibility is very low. seL4 as an extreme is a micro-kernel with mathematically provable security by design, but no wo…

I find it hard to believe that the Linux codebase being auditable makes Linux more secure by default than MacOS, iOS, and Windows. I doubt it is humanly feasible to fully read and grok the several million LOC running within Linux. I would, however, trust a default MacOS/iOS/Windows system over a default Linux system. The Linux community has a track record of being hostile to the security community - for their own goo…

seL4 actually makes proofs for some core isolation promises, like realtime-ness and data flow adhering to capabilities (though with neglect of side channels for that aspect, which can be corrected for by also verifying the code that runs on top to not do shady stuff to probe side channels).

Re: Ask HN: How do you trust that your personal machine is not compromised?

#392

Earlier quoted context omitted.

> The other major issue is as you alluded to: the need to trust vendors and hardware. Without protection and monitoring at the physical level, the user has no way to verify the operation of the giant stack of technology designed to “protect them”. Without the ability to verify operations, how is the user to trust anything? Why do companies tell users to “trust them” without any proof they are trustworthy? At the end…

AFAIK there are no phones on the market with open-source baseband firmware, so you have to trust one of Qualcomm, Broadcom et al with access to all cellular communication. Do you have a best of breed supplier you’ve vetted?

There are open source LTE stacks, they just suffer from lack of power efficiency. Not too bad in a gaming laptop form factor, but quite bad in a smartphone.

Re: Ask HN: How do you trust that your personal machine is not compromised?

#393

ex-AOSP dev here Android and ChromiumOS are likely the most trustable computing platforms out there; doubly so for Android running on Pixels. If you don't prefer the ROM Google ships with, you can flash GrapheneOS or CalyxOS and relock the bootloader. Pixels have several protections in place: - Hardware root of trust: This is the anchor on which the entire TCB (trusted computing base) is built. - Cryptographic verifi…

Considering the security UI layers control device access, I don't think AOSP or Android in general (with its many vendor customisations) is the most trustable.

Knowing a PUK-code for a SIM card you own (and you can insert/hotswap) is all you need(ed) to unlock practically any Android phone until recently. Granted, this got reported and then fixed, it doesn't matter how good the TCB is if the front door is wide open.

I'd say that actual trust is hard to come by because you cannot trust what you see, since what you see is merely what is 'presented'. If a device says something like "the only Root CA I trust to sign my stage 1 boot loader is X", I still don't know if it is lying or not. I also can't do something like replace a SoC BROM since it's fused RO or simply a ROM (and not EPROM or Flash), or because the sources for that are owned by the SoC manufacturer, which isn't AOSP or Google, and I cannot inspect, build and run them. Hell, we can make this worse: even if I could flash it, who's to say that the memory I flashed is also the memory that is read when the SoC comes out of reset? What if there is a separate area on the die that has a different ROM that nobody told us about.

So trust isn't going to be purely based on "because this is the design we present you", but has to be based on non-technical factors and independent research. The former is mainly based on soft factors, and the latter is hard to come by and often just based on individual devices, not even an entire SKU release.

Architecturally, it seems to me that Apple with their own SoCs, bootrom, RTKit, iBoot etc. has a stronger platform trust case because they actually own the stack all the way with nobody else having a say about it. Especially with the spreading around of individually signed and verified hardware ROMs that don't even run on the same chips in the same device, a compromise would be very limited in scope. The only other hardware/software combination that would come close is the aforementioned Pixel devices since Google has almost all of the stack there as well.

On the x86 side it's a mess that will never be resolved, nearly every technology that was supposed to make it more trustworthy has been used to reduce trust and install persistent access outside the view of the OS. AGESA, IME, TXT, SGX, even the SMM implementations before any of those came along had problems that essentially circumvent any trust that was built up by other means. Even the hardcoded certificate signature hashes in the CPUs are coming in range if easy brute forcing (SHA1 mostly) which means that entire decades of systems can now think they are running trusted software from the reset vector all the way to the OS, just because a signature hash was using a crappy algo that was never intended to be used that way.

Windows is probably only ever going to be boot-trustable (but not OS-trustable) on ARM, just like macOS root-of-trust is pointless on anything before the T2 chip (and M1 later on). For Linux, it's about as trustworthy as you want to make it, but putting in the work is a PITA, so unless a distro or derivative (Qubes, ChromeOS etc.) does it for you, most users leave it as-is (untrusted).

Re: Ask HN: How do you trust that your personal machine is not compromised?

#394
post #121

Earlier quoted context omitted.

> it seems it is most further ahead of the mainstream OSes Noob here, I recall often hearing that iOS has superior security to Android. Has this situation reversed in the last few years, or was it never true?

> Running blobs traditionally run in higher exception levels (like ARM EL2) in a restricted, mutually untrusted VM The pKVM hypervisor is new to Android 13 and requires Pixel 7 hardware, both of which are a few months old.

pKVM (theoretically) works on Pixel 6, 6 Pro, and 6a as well.

Re: Ask HN: How do you trust that your personal machine is not compromised?

#395

I assume it is, per Intel ME / AMD PSP's ability to read everything - memory, CPU registers, disk, inspect all network traffic, directly utilize onboard GbE for bidirectional communication. For adversaries below the level of the US intelligence agencies, I run everything virtualized and compartmentalized with Qubes, the installation image for which I verified the dev-provided cryptographic signature matches. I try to…

Isn't a (non-Android) Linux phone a security downgrade unless you get Qubes running on it or something? (And secure boot, and an HSM of some sort, and...)

Re: Ask HN: How do you trust that your personal machine is not compromised?

#396
post #313

Earlier quoted context omitted.

I can’t discuss my former role in too much detail, but it has convinced me that all the above is insufficient in a number of very realistic threat models. One issue is that software has vulnerabilities and bugs. I’m not talking about the software that users run in sandboxes environments. I’m talking about the sandboxes environments. I’m talking about cryptography implementations. I’m talking about the firmware runnin…

While respecting your “I can go into details” comment, I’m curious to hear whatever you _can_ comment on about what sort of adversary has the capabilities you describe and do you have an opinion on whether they use those in tightly targeted attacks only, or do they compromise the entire hardware/software supply chain in a way that they can do “full take surveillance” using it? If I’m not a terrorist/sex-trafficker/in…

All of this is public knowledge and has nothing to do with my role:

Nation states, especially the US, should be suspected of having compromised everything. Look at all the things Edward Snowden released. Look at the way the NSA has corrupted cryptographic standards in the past (e.g. Dual EC DRBG). There are countless instances of similar situations.

Re: Ask HN: How do you trust that your personal machine is not compromised?

#397

Earlier quoted context omitted.

> The other major issue is as you alluded to: the need to trust vendors and hardware. Without protection and monitoring at the physical level, the user has no way to verify the operation of the giant stack of technology designed to “protect them”. Without the ability to verify operations, how is the user to trust anything? Why do companies tell users to “trust them” without any proof they are trustworthy? At the end…

AFAIK there are no phones on the market with open-source baseband firmware, so you have to trust one of Qualcomm, Broadcom et al with access to all cellular communication. Do you have a best of breed supplier you’ve vetted?

I don't think you can trust any commercial baseband, period. They all have to adhere to complex radio standards, nobody wants to implement them because their design-by-committee stuff is boring/lame/hard/painful, so what you get is a few stacks that pass the tests and everyone builds on top of that. Same goes for any other RTOS-style firmware, it's really hard to get right, and because most of them are built by/for the 'device' world, they often have very long release cycles, slow development etc. just like say, head units in cars or painfully slow touch screens on devices that should just have buttons (like office style coffee machines, ATMs etc).

WiFi is in a similar position, but at least the diversity is a bit better causing integration tests to fail better when too many bad implementations try to talk to each other.

That leaves all the other chips, which I think are best trusted in a divide and conquer setup where they all have to independently verify their blobs, and not be allowed to mess with each others memory/internal state. It can make them more expensive, but it also compartmentalises them in a way that side-channel attacks within CPU cores are completely mitigated.

Only a very very very small amount of companies in the world will have the capital, expertise and manpower to make devices where enough of the stack can be trusted, and out of all of those, only some actually seem to try:

  - Google (mostly for UX, but also to make fat stacks of cash via ads) 
  - Apple (mostly for UX, but also to make fat stacks of cash via ecosystem)
  - Microsoft (console, ARM windows, mostly for DRM, but also UX)
  - Sony (console, mostly for DRM, but also UX)
  - Nintendo (console, mostly for DRM)
Besides the vertical integration they could make, there is the problem of their 'personalities' usually not being a good fit for people that want to go off the deep end in terms of security, privacy, control, feelings etc. But anyone and everyone else simply cannot do to silicon what needs to be done, even if just because of the lack of IP.

The more a company does _not_ want to get burned on their security/privacy positions and keeps iterating making better designs, the more you _could_ trust them. The only realistic alternative is going back to 80's computing, and nobody has time for that.

Re: Ask HN: How do you trust that your personal machine is not compromised?

#398

Earlier quoted context omitted.

> Everything else would seem to be a reimplementation of common best practices... True, but those protections are enabled by default (on Pixels at least). Users don't have to do anything here. > And from what I remember, a plain AOSP install seemed to still phone home to Google to check for Internet connectivity and whatnot. You're not wrong, but GrapheneOS and CalyxOS are valid options, if you don't trust the ROM Pi…

Sure, but full disk encryption was also enabled on my Mom's Ubuntu laptop 15 years ago, because I chose the correct options when I set it up. What commercial vendors offer out of the box has never been a good yardstick for talking about security features, and it's only gotten worse with the rise of the surveillance economy. My fundamental problem with Graphene/Calyx is that I don't trust the devs have enough bandwidt…

> What commercial vendors offer out of the box has never been a good yardstick for talking about security features

It absolutely is. Default setting matter a lot!

It's great to have extra security features too. But even experienced users won't change defaults if they have too much cost. If things are turned on by default then those costs diminish because other software has to work within them.

Re: Ask HN: How do you trust that your personal machine is not compromised?

#400
Keep a modest Bitcoin wallet canary on the computer and run an activity alert from elsewhere. If I'm compromised one of the first things they'll do is steal that money. It's not perfect but it's a data point that gives me some confidence I haven't been compromised by a petty thief.
Post reply on HN