HNHacker News
TopNewBestAskShowJobs

pilif

15,048 karma · joined February 9, 2009

https://mastodon.social/@pilif - http://pilif.me

[ my public key: https://keybase.io/pilif; my proof: https://keybase.io/pilif/sigs/yHf-RJm7d2dmr7kcjUe4g3m9d2dB0u2Nsu8kpLFFBtQ ]

submissionscomments
pilif··on First automatic JPEG-XL cloud service
I guess adoption of browsers capable of displaying JPEG-XL as part of the overall browser landscape
pilif··on Total Commander
To be fair: that’s an old version (v6 vs v11).

Given that win 3.11 doesn’t change, you can expect the old version to keep running too

pilif··on A list of recent hostile moves by Google's Chrome team
> That's also a good reason for others to drop support until licensing of these patents is clarified.

If that were true, then browsers should drop support for VP8, VP9 and indeed AV1 because the MPEG-LA is claiming ownership of patents covering those codecs.

pilif··on VanMoof encryption key exporter
I assume that's the key used by the app. So if they kill that key, they also kill all existing applications.

That's the thing with this kind of "protection". If your proprietary app needs to access the server, anybody who can either extract the key from the app with reverse engineering or who can listen in on the communication between app and server will be able to use that API.

It's the same issue as with DVD encryption: If you need to show the movie to people, people need to be able to decrypt it. If this needs to happen offline, then the material needed for decryption must be static and either be on the disk on in the player - where it can be extracted and used by third parties.

pilif··on Windows 9x and Word 9x at 800x600 resolution. Spacious. Comfy
maybe for you, but not for me. 800x600 was still very cramped and the first time I felt I could comfortably do development was on a 21" Sony CRT at 1600x1200, though that was pushing the monitor resolution-wise and it lost a bit of sharpness compared to lower resolutions.

Also, I'm unsure as to how the monitor type would have any impact on the screen real-estate available to the OS. If the OS is rendering an 800x600 screen, then there are 800 pixels of room available horizontally and 600 vertically, no matter the screen technology.

Given a 32 pixel size of an icon for example, there's would be room for 25 icons horizontally with a 800x600 resolution but 50 icons on a 1600 resolution. The screen technology does not factor into this at all.

What I do give you that it's probably possible to drive a CRT monitor of a relatively small size with larger resolutions because pixels can be infinitely small, though, as I said in the beginning of the comment, at some point you will get issues with sharpness and things become blurry.

pilif··on Apple is rewriting Foundation in Swift
The package manager has been open source, cross platform and available since pretty much from the start.

The standard library is becoming cross-platform as we discuss it here.

pilif··on Debian pauses /usr merge file moves
Because that potentially allows all distro-supplied files to live under one (eventually read-only) directory.
pilif··on Driver adventures for a 1999 webcam
you're supposed to use the control endpoint to negotiate which data endpoints to set up in what way for communication and then communicate over those.

In the case of this barcode scanner all communication was done over the control endpoint though.

pilif··on Driver adventures for a 1999 webcam
Reminds me when I had to read barcodes from a USB-connected barcode scanner on a Mac. The manufacturer supplied a closed-source library which only supported PPC code and they told me that they lost the source code, so I couldn't easily add intel support.

In the end I sniffed the USB protocol of the windows driver and was delighted to see how they abused the control endpoint rather than setting up proper data endpoints.

I was so happy when my Mac application was able to talk to the scanner and, compared to windows, completely without any driver installation thanks to user-space IOKit on macOS.

Writing software to make hardware beep is even more fun than writing software that doesn't involve hardware making noise.

pilif··on Tailwind CSS v3.3
or to the point, how is this different from just using `style=` attributes?

One of the big reason to not do that in the past was in order to disconnect the presentation from the page structure, but if you have individual classes for each individual css property, you're back at tying the two together.

What am I misunderstanding here?

pilif··on WebKit Features in Safari 16.4
Drag to your rightmost home screen and then drag one more time
pilif··on Parsing the .DS_Store File Format (2018)
Oh. TIL. Thank you
pilif··on Parsing the .DS_Store File Format (2018)
Some of the repos we work on date back to 2004 (going from CSV to Subversion, to git. Developers moving from mostly Windows to mostly Linux, to mostly macOS). If everybody was free to check in debris of whatever IDE and/or OS they were working at any given time, the codebase would be a terrible mess, especially as such debris tends to go unnoticed for ages until it's not.

Just like we have CI checks to make sure nobody accidentally commits a secret (like the GitHub host key thing last week) we have checks that prevent debris to be committed and code to be formatted according to agreed-upon coding standards.

All of this might seem superfluous when the live expectancy of a repo is measured in months or single digit years, but then, no solution or repo is more permanent than a quick throw-away one.

Which is why this isn't even a discussion but just a reality. Been there, done that, learned my learnings.

pilif··on Parsing the .DS_Store File Format (2018)
yes. it's in-fact there. But that's one more level of indirection from the "problem" at hand (because the global excludes file needs a config setting for it to even be considered, whereas .git/info/exclude is present in every repo)
pilif··on Parsing the .DS_Store File Format (2018)
> what prevents a intern to not have a correct exclusion there, and happily push a .ds file ?

Our CI.

And code review is what prevents .DS_Store to be added to .gitignore.

And, again, I'm saying this as a purist with a developer team of 99% Mac users.

pilif··on Parsing the .DS_Store File Format (2018)
nitpick: As it’s a platform and machine specific thing, technically it shouldn’t be in .gitignore but in .git/info/exclude

People working on Linux or Windows do not need to know about garbage your dev env leaves on your machine.

I’m saying this half-seriously as I fully understand that these are so common, it’s more convenient to have the exclusion synced between clones.

That said, as a purist, none of the repos I’m watching over have .DS_Store in their gitignore

pilif··on Docker is deleting Open Source organisations - what you need to know
Traffic is probably the higher cost
pilif··on Qualcomm wants to replace eSIMs with iSIMs, has the first certified SoC
you scan the QR code with your android phone. That will cause your existing phone to be unregistered.

What eSIM does is turn the physical smart card into a QR code which can be shown on a screen in addition to being printed on a piece of physical paper.

pilif··on Qualcomm wants to replace eSIMs with iSIMs, has the first certified SoC
> it is more cumbersome to replace phones, as you have to move identities from phone to phone and get approvals by carriers and device makers instead of just replacing the physical SIM

That really depends on the carrier. In my case, setting up a new iPhone to replace an old one means saying yes in the prompt displayed by the phone. Nothing else. This is more convenient than having to search for the SIM removal tool.

> -you can't just hand over your phone to someone else, you have to unroll yourself and enroll the other person

For me this is a big feature because I would never hand my phone to somebody else, but an attacker is very likely to remove the SIM card and put it into their phone. Now suddenly many 2FA accounts are protected by a 4 digit PIN rather than my 20 digit phone passphrase.

> -you don't have anonymity and privacy since is no longer possible to use a prepaid physical SIM

It works exactly the same way as it did with physical SIM cards only the physical card is replaced by a QR code displayed on a screen or a printed paper. If the carrier sells anonymous prepaid SIM cards, nothing prevents them from selling anonymous prepaid QR codes.

pilif··on The end of Type 1 fonts
> It does not burden a system to have it.

any file format you support poses a significant attack surface, especially an old and creaky one whose parser you've written in the 90ies and ever touched.

pilif··on Making macOS Apps Uninstallable
The user-specific parts of the registry are powered by files in the user‘s profile and ACLs do not normally allow other users to have access, so the same issue applies there too
pilif··on Making macOS Apps Uninstallable
Especially ~/AppData (and ~/Library) is problematic because the person uninstalling the app might not be the person who was previously using the app.

Reaching into another account‘s home directory to remove stuff feels very intrusive.

Which would mean that any uninstall trying to also clean out library data is going to be incomplete.

I think the consistent behavior of always keeping it is a win

pilif··on Tell HN: GitHub now blocks aliased email addresses
I use a catch all alias that maps all local parts to one account (unless a specific account or alias already exists)

Requires zero user action to make up an address

pilif··on Neuropsychiatric researchers rethink what depression might be
Let me add a counter anecdote: from kindergarten through primary school and high school my life was hell thanks to bullying (being slightly neurodivergent in the 80ies and 90ies is a recipe for disaster) to the point of me nearly killing myself.

Once I left school behind me and met people who respected me, I managed to let all of that past behind me and become a very happy person with (so far) zero depressive tendencies. There is still some trauma left when I see my kid being teased or teasing somebody (to a much smaller scale than what I went through), but aside of that I'm very glad my brain managed to escape hell unscathed.

pilif··on Bitwarden design flaw: Server side iterations
and even then there should be no way to offer a completely insecure iteration count to a user because one of their devices is slow because the attacker's devices won't be.

Even on slow devices, password managers can employ techniques to help like only using the full count of rounds for a cold start but then re-encrypting the key for the vault key with fewer rounds but only keep that copy locally.

That way a user of a very slow device only needs to wait for, say, 10s once on first unlock.

While this is a downgrade in security, it's still better because now the key with the small amount of iterations is confined to the one device, not available on the server where an attacker can get bulk access.

Of course, devices where 1M PBKDF2 iterations take so long that it's noticeable are probably also old enough to be full of unpatched (due to EOL) security holes which makes such devices the weakest link anyways, but this would still be a better situation because this way not all users are punished because of one user's slow device.

pilif··on Bitwarden design flaw: Server side iterations
so it would log other devices out, but not the device you're currently looking at. I think that's still an acceptable behavior compared to have people stuck with iterations counts of 500 or even 1 as we had seen in LastPass
pilif··on Bitwarden design flaw: Server side iterations
I have 524 passwords in my vault. That's a list large enough to require a big sheet of paper that's very inconvenient to carry around. I'm also changing passwords often enough such that keeping track of which password I changed on what machine in order to just carry deltas with me and updating my hand-written lists manually is way too inconvenient.

Syncing password managers solve all these issues and, if they do encryption right, there is nothing that could possibly happen even if they are hacked and an attacker gains access to my encrypted data.

The doing it right part is why I was asking my questions with regards to PBKDF2.

pilif··on Bitwarden design flaw: Server side iterations
> One issue I could see with that is that because it’s the encryption key it’s going to lock out all your “live” devices, so an explicit step is an easy opportunity to warn them.

how so? The iteration count must be part of the non-encrypted parts of the vault data. If a client is offline, it will use its locally stored vault with the old (lower) iteration count. If it's online, it will have the updated vault with the higher iteration count.

> The second issue is that the transcryption would have to be done on login, which is a pretty shit UX as the user logs in then immediately gets locked out for however long it takes to convert the store (then again for most people I’d assume the payload is not enormous).

You could do this asynchronously in the background: Decrypt the vault, store it in memory (which all password managers do for some amount of time in order to provide any UI), re-encrypt, store to disk, send blob (which will continue an unencrypted iteration count) to server.

But this is the complicated case where the vault is re-keyed. What would totally be sufficient is to re-encrypt the same value key using a new hash derived from the same password, only with more rounds which means that the bulk of the vault blob won't change - only the password-derived key and the iteration count.

If any of this happens simultaneously on multiple machines, treat it the same way as you already treat editing conflicts (I'm not offering guidance there - this is a hard problem that each cloud provider is already solving one way or another).

> They are but needing to update the work factor as hardware progresses remains. In fact scrypt and argon have more work factor knobs than pbkdf2, which only has the iterations count.

Given the current state of the art and given these two algorithms, I think it would need to happen significantly less often than with PBKDF2, so if there's something that would need to cause the UI to re-lock immediately after unlock as you think (and I'm not sure about) then having argon or scrypt in the loop means you have more time between causes of shitty UX.

pilif··on Bitwarden design flaw: Server side iterations
Tangentially related: why would a password manager provide a configurable iteration count? This is a number whose purpose is fairly hard to understand for many people and yet it’s an important corner stone for password security, especially for those who do not grasp the concept of an iteration count.

This should absolutely be application managed and gradually increased over time.

Also: while I understand that FIPS is the reason why we are stuck with PBKDF2 in the case of the more enterprisy password managers, wouldn’t it still be FIPS compliant to do some scrypt or argon rounds on top as a means of not constantly having to update the PBKDF2 iteration count (assuming that scrypt and argon are more resilient to hardware brute-forcing)?

pilif··on What's the right UX for an expired certificate?
DNS can be MitMd. crt.sh would be in a position to get all your browsing history.

The local thing would work, but of course only for local hosts.

It would not be worse than using plain http and my personal opinion is that visiting a plain http site should have the same UX as visiting a self-signed one.

← PreviousPage 4 of 34Next →