Recent submissions

Comment · 3 months ago
They don't stop you from seeing the stars, but I find them very distracting. Makes the experience of looking up at the stars on a quiet night less peaceful, I find.
Comment · 3 months ago
How many applications actually do, though? At most places I've worked it's common to integrate a schema migration tool (flyway, liquibase) that requires DDL, and I've never seen anyone go to the effort of splitting out an ephemeral instance to run the migration with a separate database connection configuration.
Comment · 3 months ago
Building an application that is immune to attack defeats all possible attack scenarios, yes. But no application is perfect or immune to all possible attacks, the concept of defense-in-depth is an acknowledgement of this.
Comment · 3 months ago
As explained in the article this wouldn't work, because changing your org means your stored hash is no longer valid (as the org is incorporated in the hmac), and you can't generated your own hashes because you're missing the pepper. So after changing your org all subsequent requests would fail.
Comment · 3 months ago
A pepper is just a salt that is "secret", i.e. not stored next to the hashes being salted. It indeed provides the desired defense-in-depth, in that a breach of the database does not allow spoofing requests to the application; a successful attack would require both an exploit giving database access as well as an exploit exposing the secret pepper. But this is just a result of splitting state across multiple data stores---you could theoretically split data across n databases which would require an attacker to find n exploits. As such I don't fully agree with their conclusion that "database state alone should not be able to grant authentication": just because you store application-wide secrets elsewhere doesn't mean it's not part of the application state, and isn't stored in a database.

For most monolithic applications I think the whole issue is be a bit moot; if the rest of the application state is in the primary database, then an attacker with database access could presumably accomplish anything without the need to spoof another user at the authentication layer.

Lastly, this scheme doesn't provide any mechanism for rotating the pepper.

Comment · 8 months ago
It sounds like there is a story here, have you written about this somewhere?
Comment · 9 months ago
How does this compare to FOKS (https://foks.pub)? Do both projects accomplish similar goals?

Edit: I see that this is primarily intended for federated social networks, but should be reusable for other uses. However for other e2ee systems (e.g. messaging, filesystems) where hiding your social graph is important, wouldn't a key directory be able to infer (part of) your social graph by recording which lookups you make? What's the best way to mitigate that?

Comment · 2 years ago
Comment · 2 years ago
Comment · 2 years ago
NPM and other Node.js package managers happily deduplicate dependencies are compatible within the specified version constraints. So if 3 different modules in your build specifies `foo^2` and two other modules specify `foo^3`, in general you will have two copies of `foo` loaded.
Comment · 2 years ago
Quick note: your website front page currently says

> Our open source code has been audited by reputed cryptographers.

I think you probably mean "reputable", as "reputed" inspires a lot less confidence.

Comment · 2 years ago
From the article linked above:

> To that, I can only respond that, in a properly configured shell like the one that comes by default with GoboLinux, typing /Programs takes the exact same number of keystrokes as typing /usr: slash, lowercase p, Tab.

Comment · 2 years ago
> I don't think Go or Java do.

Go's module system was specifically designed with this problem in mind: https://go.dev/blog/versioning-proposal

I think Java projects get around this when they have to with shading, but that's a bit clunky.

Comment · 3 years ago
> Hours worked is the #1 driver of any worker’s output: use your right to monitor.

I don't think hours behind a screen have ever had much of a correlation with productivity for me. Autonomy, stress, being tasked with solutions that actually make long-term sense, etc. must have a much stronger correlation. The enormous erosion of trust that having my hours monitored would have would certainly impact my output.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton