Email or username:

Password:

Forgot your password?
Top-level
Christine Lemmer-Webber

On that note, again, I am not reading the replies right now because I am (a) afraid to and (b) I'm never gonna finish this and we are a bit over HALFWAY THROUGH the analysis but I have this fear that EVERYONE is mad at me, Bluesky fans, fediverse fans

I am trying to be analytical. I am trying!!!

263 comments
Christine Lemmer-Webber replied to Christine

I said we are about halfway through and criminy we're halfway through the afternoon, I need a break to get some tea

We have a few big topics left:

- Decentralized identity, how does it work (magnets too, yes)
- The Org is a Future Adversary
- Christine critiques the fediverse
- Wrap up

Christine Lemmer-Webber replied to Christine

And so, it is TEA TIME

Go get yourself a hot beverage. Put honey or agave in it, if you like. Dairy, or perhaps, non-dairy, if you prefer.

=== BREAK TIME! Time for tea! ===

Dr. Morgan Lemmer-Webber replied to Christine

I can confirm, @cwebber is currently making us both tea :)

Josh Simmons replied to Dr. Morgan Lemmer-Webber

@mlemweb @cwebber Excuse me while I slide in to say you two are the best and I hope you are both having a fine Friday. Also, thank you Christine for this fantastic analysis – extremely helpful for people who care but Don't Quite Get It like me.

DamonHD replied to Christine
DamonHD replied to Dr. Morgan Lemmer-Webber

@mlemweb @cwebber As long as neither of you are spilling it, literally or otherwise, we're all good I think!

Christine Lemmer-Webber replied to Christine

Okay, I am back and I am back with tea! I made "black tea with ginger" and I put some whipped honey in it. I also made tea for my spouse

I am drinking out of an oversized mug from @baconandcoconut that says "I'm that person who likes to serve on open source program committees", which is not actually accurate but I do anyway

Christine Lemmer-Webber replied to Christine

I am also sad about the US House of Representatives being shitty to trans people who work there and are just trying to make it through the day

I used to do data modeling contracting for the US HoR on our legal system, true story, which sends me back to a time when I did a lot of data modeling

Kye Fox replied to Christine

@cwebber data modelling (vogueing in Data cosplay)

Diane πŸ•΅ replied to Christine

@cwebber

The house should ditch men's and women's restrooms and switch to republican & democrat restrooms.

Christine Lemmer-Webber replied to Christine

A lot of data modeling I did in that time was in the W3C Verifiable Credentials group that was working on Verifiable Credentials, zcap-ld (my spec), and, oh hey, Decentralized Identifiers (DIDs, the name is not my fault)

So actually I was pretty excited when I heard that Bluesky was gonna use DIDs!

Christine Lemmer-Webber replied to Christine

Back in 2017 I wrote a whitepaper: "ActivityPub: from decentralized to distributed social networks" and it also suggested using DIDs github.com/WebOfTrustInfo/rwot

I no longer think DIDs are necessary to solve this, but then and now I think *decentralized identity is important*

Christine Lemmer-Webber replied to Christine

In that sense, I am really glad Bluesky is taking on decentralized identity, as a concept! And DIDs, in a way, are a good signal.

But there are several problems, the first of which is: Bluesky supports two kinds of Decentralized Identifiers and they're both -- you guessed it -- centralized!

Christine Lemmer-Webber replied to Christine

Before we get there, let's talk about what the DID spec was and what DIDs are. The core DID spec is an *abstract interface* for key management which provides a way of representing keys (and some other metadata) which can be created, retrieved, and updated/rotated.

So far so good...

Christine Lemmer-Webber replied to Christine

The other requirement you would expect, based on the name, is that Decentralized Identifiers are *actually decentralized*.

When I got involved in DID work, that was actually the expectation of everyone. Then it was loosened. What? Why on earth?!

Christine Lemmer-Webber replied to Christine

The reason actually stems from the first centralized DID method that Bluesky supports: did:web.

did:web is centralized, and kinda useless. It just works by a regex rewrite of the DID's name to an https URI and then it's retrieved. Anywhere you use did:web, you could have just used an https: URI

Christine Lemmer-Webber replied to Christine

"Now wait Christine, didn't you say earlier that the web is decentralized and open? So therefore, did:web is decentralized and open"

Yeah but the naming system of the web is CENTRALIZED

We use DNS and ICANN (and then we add another centralization layer with TLS/SSL CAs)!

Christine Lemmer-Webber replied to Christine

Everyone in the DID standards space KNEW that did:web was centralized, so why on earth was a centralized identifier permitted for something named "Decentralized Identifiers"?

The answer is easy. did:web is easy to implement, many DID methods were not.

did:web existed for test suites.

Christine Lemmer-Webber replied to Christine

I was kind of exiting that particular area of standards when this happened but colleagues will tell you that I, and some others, were deeply upset and troubled by this

"Sure having a nearly no-op DID to pass the test suite is helpful but it shouldn't be labeled as a DID, people will get confused!"

Christine Lemmer-Webber replied to Christine

Confusion, on its own, is one thing. But the problem is when confusion turns into decentralization-washing.

"This is going to turn into decentralization-washing!"

"It's just to pass the test suite!"

[... time passes ...]

"Actually we like did:web now, it's a DID method everyone can implement!"

Christine Lemmer-Webber replied to Christine

And of course once the door was open to did:web, the door was open to everything! Decentralization is now no longer a requirement for DIDs. You can make a centralized DID method and call it a "Decentralized Identifier" and you're right because it implements a spec named "Decentralized identifiers"

Christine Lemmer-Webber replied to Christine

But it's ONLY EXPERTS IN DIDs WHO UNDERSTOOD THIS

Most users hear "Decentralized Identifiers" and they think they know what's being delivered, the distinction between the *spec* being called that and the *mechanism used* being centralized... you have to go digging to find that out

Christine Lemmer-Webber replied to Christine

So did:web is not only useless, it misleads people about the problem domain entirely, but hey it's now the most broadly deployed DID method in the world, congrats everyone!

Speaking of centralized Decentralized Identifiers, did I mention that did:plc is centralized?

Christine Lemmer-Webber replied to Christine

For that matter, where did the term did:plc come from? Early versions of "did:plc" documentation called it the "Placeholder" DID method, that's what it stands for, to motivate changing it later

Well the docs no longer say that, it now says "Public Ledger of Credentials"

Good backronymn, but...

Christine Lemmer-Webber replied to Christine

did:plc is centralized, and that bothers me because once again, users think something is more decentralized than it is, because they're being *told* it's decentralized

The particular way in which did:plc is centralized doesn't bug me too much but once again, few users have read into this

Christine Lemmer-Webber replied to Christine

If you read the documentation of did:plc, they're actually quite upfront about did:plc's centralization being non-ideal. That's good, I appreciate that. Again, you gotta dig though, and the name misleads (which is, to be fair, the original sin of the DID Working Group)

Christine Lemmer-Webber replied to Christine

(aside: wow my eyes are getting tired from staring at my monitor while I recap of what was a 24 page blogpost, why do I do this to myself)

Christine Lemmer-Webber replied to Christine

Aside from being irritated about the name misleading, I don't mind the centralization of did:plc too much (other things, I am more concerned about, we'll get there)

There's one organization that can be queried via their API that keeps a definitive list of certificate and their updates

Christine Lemmer-Webber replied to Christine

In theory, once a DID is registered with Bluesky, it cannot be altered by Bluesky, because a cryptographic update from the original key is necessary; it's a certificate chain, a good design

Bluesky can refuse to share did:plc documents or their updates, but it can't manufacture updates

Christine Lemmer-Webber replied to Christine

This is pretty good tbh, it lowers the stakes a lot to have certificate chains

I love certificate chains, certificate chains are great

Honestly, having a centralized registry for them, it's not the best but it's not the worst (aside from that damn naming thing)

However...

Christine Lemmer-Webber replied to Christine

There are some strange, strange things about did:plc that heightens the centralization concerns and, well

I'm not a cryptographer, but some of my good friends are cryptographers, etc etc. I got some... reactions to what is to follow

Christine Lemmer-Webber replied to Christine

The first strange thing to me is that did:plc uses sha256 and, AFAICT, not sha256d (which is really just running sha256 again over the hash). Unless I am missing something? Am I wrong?

Maybe it's not a concern because of doc parsing but it's best practice to protect against length extension attacks

Christine Lemmer-Webber replied to Christine

The next concerning thing is that did:plc truncates the hash to just *15 bytes* of entropy.

I'm... again I'm not a cryptographer, but why throw away all that delicious entropy? So the did fits in 32 characters? Weird choice, and it means collisions are cheaper

lizard appreciator replied to Christine

@cwebber is trashing some entropy useful to provide some of the properties @soatok mentions in his post from yesterday? soatok.blog/2024/11/21/key-tra

Kye Fox replied to lizard appreciator

@bonzoesc @cwebber @soatok I was just thinking this might be relevant

Christine Lemmer-Webber replied to Christine

This is public information, I don't need to file a CVE to tell you about the truncation of entropy. I am, again, not a cryptographer. Maybe it's fine?

I do remember the Debian short IDs fiasco tho gwolf.org/2016/06/stop-it-with

Why not hold onto all the entropy you can get?

Christine Lemmer-Webber replied to Christine

DIDs weren't meant to be seen by the user; cryptographic identifiers in general *shouldn't be*, they should be encapsulated in the UI.

We'll get to UI stuff in a bit.

I just don't understand this decision though, it just seems weird to me but maybe a cryptographer will tell me it's fine, actually

Christine Lemmer-Webber replied to Christine

At any rate, I continue to not understand it, maybe it's fine, but it did play a part in that "Hijacking Bluesky Identities with a Malleable Deputy" blogpost, which is fascinating and, unlike me, is written by a Real Cryptographer (TM) da.vidbuchanan.co.uk/blog/hack

Good post btw

fontenot replied to Christine

@cwebber

Shouldn't this be 20 bytes? There are 32 characters, and each character is base32, or 5 bits. So 160 bits? Edit: nope, wrong.

I don't *think* there's a huge concern over this, because while maybe you could do a birthday collision attack in 80 bits, this wouldn't really get you much and wouldn't let you take over someone else's account. For that you'd need a pre-image attack on the whole 160 bits.

Edit: 120 bits pre-image, but I think the point stands?

*Also not a cryptographer!!*

Christine Lemmer-Webber replied to fontenot

@fontenot no because the 32 characters includes the "did:plc:"

Kye Fox replied to Christine

@cwebber @soatok thread entering your realm of expertise and interest

Btrinen replied to Christine

@cwebber I read that whole blog post this morning and am now re-reading via your handy thread in the hopes that the repetition helps me understand more. I think I’m starting to catch on a little.

abby "AbFCβ‚‚Hβ‚„" fluoroethane πŸ³οΈβ€πŸŒˆπŸ³οΈβ€βš§οΈ replied to Christine

@cwebber Hey Christine, big fan of your work, but holy yapfest. World record for longest fedi thread??

Amici Is Me πŸ‡΅πŸ‡Έ πŸ‡ΊπŸ‡¦ πŸ‡³πŸ‡΄ replied to Christine

@cwebber I remember reading about DIDs a few years ago, even did a Norwegian language podcast episode talking about it

baconandcoconut replied to Christine

@cwebber I'm so glad that you continue to enjoy that mug. And I'm also grateful that you do serve on open source program committees.

Damien replied to Christine

@cwebber I thought you meant tea (hot take) as like, informal tea and not literal tea hahaha

Amici Is Me πŸ‡΅πŸ‡Έ πŸ‡ΊπŸ‡¦ πŸ‡³πŸ‡΄ replied to Christine

@cwebber break time? :shibalaugh: I think you invented a new thing there, but understandable

Jonathan replied to Christine

@cwebber hopefully credible exit too? I guess I should just go google it.

πŒ€πŒŒπŒ™ :emacs: replied to Jonathan

@jonbro@friend.camp @cwebber@social.coop Bluesky's credible exit refers to the ability of another organization to host the network, including user data and posts, without needing any special access or OK from the Bluesky foundation (I think). This should be a laudable goal, but its feasibility remains to be seen.

Les Orchard replied to Christine

@cwebber i, for one, am nodding along and occasionally clapping

Sheddi replied to Christine

@cwebber we're not mad at you πŸ™‚

Jan Lehnardt :couchdb: replied to Christine

@cwebber you’re doing great, kid 😘

Eniko | Kitsune Tails out now! replied to Christine

@cwebber i'm just very glad that you're dispelling the myth that bluesky is federated. i'm so tired of being told on bluesky that fedi isn't safer than bluesky because bluesky is federated so if they fuck it up people can take their stuff and go elsewhere, when it's like "how? go where?"

Jon replied to Christine

@cwebber@social.coop for the record I’m not mad at you!!!!!!

Stefan replied to Christine

@cwebber I think this is the best thread in the history of mastodon.

Go Up