Just wondering just how expensive it really is to rip the key out (or to have access to the tools to do it)
666 karma · joined April 30, 2022
Just wondering just how expensive it really is to rip the key out (or to have access to the tools to do it)
Yes, but your emulated TPM is not on the approved list. To impersonate an approved TPM you would need to pull the keys from a real TPM which requires (probably very expensive) semiconductor lab tools and trashing the chip.
You can only do that because Windows lets you do that. That's something that can change.
> It seems to me like you can only guarantee no tampering in an actually locked down system, like modern mobile devices.
Yes, the whole point of remote attestation is to be able to prove to the other party that your device is running an approved and fully locked down OS+browser combo before it sends you any content.
It does this by putting the code that creates this guarantee in the only place that you can't (easily) change: in the silicon of your CPU.
With enough websites using this API to block "untrusted" devices, since Google is the one that decides who is "trusted" that gives them an iron grip on what you can use to browse the web.
If they decide to not grant your competing project "trusted" status, you now cannot build a competing device, OS, or browser. And since Google owns the most popular browser and one of the most popular OS that gives them little incentive to allow competition.
Without a "trusted" browser that can scrape the web you are also effectively blocked from building a competing search engine.
Basically this API serves to cement Google into a position of power.
Unlike captchas with this you can remove adblockers, greasemonkey/stylus edits, extensions adding download links to your youtube videos, etc, from the picture.
That's true, I was talking about desktop, I probably should have not mentioned the phone extension thing.
In Android I use Bromite (a Chromium fork) which I should probably replace since it's fairly outdated at this point.
But you're wrong about me not using Firefox out of spite, the real reason I don't use it is because it is (or apparently was according to the other replies) slower to the point it is noticeable, at least on my desktop (and even more so on my old phone). The rest is just why I don't support them despite being worse.
I don't use Firefox because it's slower than Chrome and because their behavior regarding limiting which extensions are available in phones, requiring signed extensions, Firefox Pocket, ads in new tab page, etc, does not exactly give me confidence that Mozilla truly has my interests in mind. In fact I bet they'll implement the nightmare DRM API once it's done swiftly and without complaint lest their money flow suffer.
If Mozilla ever decides to stop screwing around, clearly position themselves as an ally of the consumer, clearly express support for adblockers and put resources into making the browser faster and better and more customizable instead of whatever makes their CEO richer then I'll switch to Firefox even if it is a bit slower or has some flaws.
In the meantime uBlock works right now in Chrome which makes it usable, so since Chrome is the fastest right now, Chrome it is.
ICE cars also need gas stations, also need to pay for their fuel and also get cold when it's cold yet we've managed to do just fine for a long time without screens or even smartphones.
Replaceable batteries just means they will make something else weaker instead, preferably something that fries the device once it fails (see https://youtu.be/7cNg_ifibCQ?t=238).
It's too dangerous not to, as nowadays phones (or computers in general) don't really need to be upgraded that often to remain useful. No manufacturer wants a repeat of the 1080Ti.
Hopefully it gets replaced soon...
Once you have it call free() for you, your piece of code is now a compacting GC, like Java's for example.
Here's a 2003 forum post from someone else having the same problem: http://www.delphigroups.info/2/1/749064.html
We just had it restart itself and try again whenever it got one of those errors when printing but eventually we wanted to add a feature that required the process to not die, and by that time I was already 99% sure that it wasn't something in our code and I had already ruled out threading issues.
I ended up putting it in a VM with a kernel debugger attached and having a script make a snapshot and make it print over and over until it errored, then following along in IDA until I saw what was going on.
Having a way to trigger it (by restoring the snapshot) on demand helped a lot, otherwise it would have taken forever to make sense of it as it could sit without crashing for nearly an hour.
A little offtopic but the default Delphi 7 memory allocator did this, except that it also merged blocks that it obtained from different OS allocation calls.
This worked fine for regular usage, but if that memory was ever used for Bitmaps for UI stuff, it wouldn't work: Since Windows does some of its UI stuff in kernel mode, before doing anything Windows would attempt to lock the entire allocation's VAD entry to prevent you from messing with it in another thread while it was using it. If the Bitmap you were working on happened to belong to two different OS-level allocations, this lock function would fail since it wasn't meant to handle that case.
This would lead to random, extremely cryptic errors such as ERROR_NO_SCROLLBARS "The window does not have scroll bars." since the lock call was deep in the stack and the callers replaced the error with another one as it bubbled up.
In the end we had to replace the allocator to avoid that issue. That was a fun day I spent debugging that.
Your printer may work but now it's almost cheaper to throw it away and buy another one than refilling it. The only way it could be worse would be if HP decided to triple their ink price the same day.
If BMW updated and locked your car unless you used BMW branded wiper fluid (i.e. water) they'd be sued and scorned all the way to outer space, but somehow when a printer company does it it's okay.
My guess is that the big groups will lobby for this to be turned into a checkbox in some "best practices" list that auditors will enforce into the usual suspects in the name of "safety and security": banks, shopping sites, government sites, etc.
Is it terrible that the app takes minutes to add a few thousand numbers? Of course it is. But it does not matter, the customer is used to software being terrible so he won't waste the time and money to switch to another software that is probably also terrible.
IMHO Git is fine, and forcing the complexity on the user is not a big deal as Git is simple enough... as long as you forget that submodules ever existed. Git's approach really shows it's problems when you use submodules:
- Want to clone a repo with submodules? Gotta know beforehand to use git clone --recursive, or remember to use git submodule update --init --recursive after cloning.
- Want to pull? Now you have to use git pull --recurse-submodules instead of git pull.
- Want to checkout a branch? Now you have to remember to do git submodule update --recursive after checking it out.
Etcetera. Instead of being handled transparently by Git like they should be now every time you do something in Git you have to remember to do something else to babysit the submodules.
It's complicated to the point that a lot of people come up with their own alternative instead of using submodules (git subtree, git subrepo, etc)
The question is, was this done on purpose?