Top
Best
New

Posted by kevinak 4 hours ago

Who owns your ATProto identity?(kevinak.se)
120 points | 110 comments
skybrian 3 hours ago|
Most people don’t worry about it for the same reason they don’t worry about GitHub abusing their GitHub account and are even willing to use “login with GitHub” to access their other accounts. Account takeover by a third party is a bigger risk. If you’re concerned about supply chain risks, there are more important concerns than “what if GitHub itself is a bad actor.”

It’s solvable if you’re willing to self-host your PDS.

But I’m skeptical of the attempts to make a PDS an “everything account.” Why should you use the same PDS for your social media posts and your git repos and your blog posts? Seems like we need to get better at locking things down in practice before that kind of centralization?

Aurornis 2 hours ago||
> Most people don’t worry about it for the same reason they don’t worry about GitHub abusing their GitHub account

Even with GitHub we don’t hand over our private keys to the GitHub server, though.

When I commit to my repos the commits are still signed by the private key that lives on my computer. Someone could take over my GitHub account and they wouldn’t be able to sign commits with the private key on my PC.

They could technically add a new public key and sign new commits with that key, but I could cryptographically point to the change and show that the key changed at time of takeover and disavow it.

throawayonthe 2 hours ago|||
right but that's possible with tangled too, that's a git specific thing
skybrian 1 hour ago|||
Good point, but how many projects require people to sign their git commits? it's not something I've had to do at all.

If you're not signing them then hosting on GitHub gives GitHub the ability to do arbitrary commits in your name. The repo's HEAD is whatever GitHub says it is.

pocksuppet 2 hours ago|||
The whole claimed point of ATProto is to avoid stuff like this. If centralization isn't a problem, just use GitHub, or X, because platforms that don't try to decentralize work better.
quasigod 1 hour ago|||
Atproto gives users choice for where their data is hosted as well as the ability to migrate their data to a new host. Users who dont want to put trust in a provider can host it themselves. How is that not an improvement over being locked in to a single centralized provider?
skybrian 1 hour ago|||
If you assume that Bluesky won't suddenly turn hostile (we'll get some warning) then being able to migrate your PDS is better than what X gives you and about the same as being able to move your git repo off of GitHub.
NetOpWibby 3 hours ago|||
This "social coding" thing Tangled has going on is cool but I don't want it. I hear they're figuring out private repos but for me, I don't want the same account I use for social for my code.

I'm probably in the minority though.

OneDeuxTriSeiGo 1 hour ago|||
Note that you don't have to have a social account. And there's work on the semi-distant horizon for creating sub-accounts which are independent but all under a common top level account kinda like how GPG conceptualizes subkeys or cryptocurrencies handle derivation keys.

For the current moment though you can just create an atproto account without creating a bluesky account. Tangled for example supports this on their site by creating one for their PDS and you can always move to another PDS in the future.

The over-arching idea isn't that your code is tied to your socials but rather that you can have a bunch of disparate services that you can interlink over a common identity layer and that those services are only loosely tied to the people/orgs hosting them but could be trivially hosted by anyone else.

rafterydj 2 hours ago||||
Personally I think it should be optional, but meaningfully optional in a way that's technically sound and easier than it is now. I kind of feel like long term I'd want "professional/public" code I'd put my name on, and separate code I'd work on under a pseudonym/handle.
packetlost 2 hours ago||||
> I don't want the same account I use for social for my code

Then create separate accounts?

satvikpendem 2 hours ago|||
Check out https://radicle.dev then.
speedwoof 3 hours ago||
[dead]
rbren 3 hours ago||
Who owns your domain name? Hint: it’s probably not you. Your hosting provider could take down your domain, or even steal traffic and direct it to their own IPs
drdexebtjl 59 seconds ago||
I do. I registered it directly with my ccTLD’s registry, which is a government agency. It’s tied to my national ID number, or to my company’s tax ID.

If my DNS provider messes up, I revoke their DNSSEC keys and point my domain to a different provider.

Domain registration should be national public infrastructure.

Aurornis 2 hours ago|||
This cheap criticism of the headline doesn’t actually apply to the problems brought up in the article:

> Your PDS operator can post as you, like things as you, follow people as you, and it would be cryptographically indistinguishable from your real activity. The signatures are valid.

Your domain name owner or DNS provider cannot redirect your domain name to a different server and cryptographically impersonate you.

jacobgold 2 hours ago|||
Your DNS provider can obtain a TLS certificate for your domain and cryptographically impersonate https://yourdomain.tld

It's not exactly the same thing but it's close.

Aurornis 2 hours ago||
Still not the same thing as in the article. Server side TLS certificates are widely understood to be tied to the current owner of the domain.

In a social protocol or context, I would expect a private key to be in the private control of the individual, such as when someone uses their private key to sign an email or git commit.

The purpose of signing your emails or commits is to provide a good indicator that it actually came from you, not someone who managed to get access to your email account at the time.

OneDeuxTriSeiGo 1 hour ago|||
> The purpose of signing your emails or commits is to provide a good indicator that it actually came from you, not someone who managed to get access to your email account at the time.

This is true and it's still true in the ATProto ecosystem but in a different context.

It asserts that events and records are authored by your PDS, not by you specifically. Which is certainly closer to the intent of TLS certs.

And technically you can maintain a PDS proxy that can only host, broadcast events, and receive content but that doesn't have any keys or signing capabilities.

Then you can have a local PDS that does your signing and sends signed events and records (basically signed state updates) to the PDS proxy to actually emit to the network. This then allows you to lock your keys behind a hardware key to better lock everything down. Of course there are trade offs to this. If it requires physical auth then it can only work on one device at a time or you have to self host it homelab style at which point it might just make more sense to host the PDS yourself anyways.

There's a project thats working on this very thing but I've not kept up with it and I can't remember what the name of it is. If any ATproto people in the comments knows the name/link feel free to reply under this to enlighten me + everyone else.

arjie 1 hour ago||||
If you use your private key to sign your commit, I don’t see how your PDS can impersonate it. There are different layers here. Your commit is still signed by you and non-impersonatable by the PDS operator. But the ATProto layer signing is under control of the PDS. So in that case you’d see either unsigned or differently signed git commits being reported at the ATProto layer as by you.

That seems entirely normal. The PDS handles ATProto actions but it cannot modify the git signature (obviously!). It’s no different than the fact that GitHub can post that you’ve committed a “verified” badge commit by adding a new signing key to your account and signing new commits with it.

The storage entity can always claim power over this by reporting a new key and signatures with that key. Seems entirely normal.

jacobgold 2 hours ago|||
This is why your DNS hosting provider, despite not being the "current owner of the domain", being able to impersonate your site (terminate a cryptographically secure TLS session) with your customers is a similar problem.

I do agree they're not the same but the trust and risk are very similar.

edoceo 1 hour ago||
DNS providers and registrars seem to have a longer trust established, that reduces the risk.

They are similar in that: jerks can be jerks. But one of the jerks I've trusted for 30 years and I hardly know the the other jerk.

OneDeuxTriSeiGo 1 hour ago|||
Kind of. Your PDS can impersonate you but you can have higher ranked "recovery keys" that can undo/recover all the damage.

Socially whether you can explain off that your PDS acted maliciously or that it was hacked or whatever is a different story but if you keep recovery keys for your DID you can take back control and undo everything your PDS did that you didn't authorise pretty trivially. The UX for it needs to be improved but technically the process is super simple/straight forward.

And those recovery keys provide a mechanism for declaring "hey i didn't do this I was hacked" on top of specific events but nothing for taking advantage of that cryptographic opportunity has been built out yet.

handoflixue 3 hours ago|||
Can you move a DNS record AND make it look like I signed off on it?

The author's concern seems to be more focused on impersonation

Zambyte 1 hour ago||
Do you use your own CA? Would you expect users to even notice if the certs were suddenly issued by LetsEncrypt? Or are you signing traffic using something other than TLS, where the domain name doesn't really matter anyway?
PunchyHamster 3 hours ago|||
But without private keys they can't pretend to be the same you. There is a very big difference here.
chuckadams 3 hours ago||
Right, if Bluesky ever does do something hinky with your PDS, the operation will be signed with their key and persisted in the operation log which they're unable to touch. You can outright remove Bluesky's key if you want, though I think that only works within some number of days of creating it.
nekusar 2 hours ago|||
If its an Onion (Tor) hostname, you absolutely do own it. Sure, its not memorable being a 128 bit hash. And nobody else can impersonate nor take.

And for lower bandwidth tasks, Tor Onions can't be beat. Just make sure to use 2fa on services you offer to keep the trash out. Things like fail2ban don't work the way you intend.

opem 3 hours ago|||
that is why you have did:plc in ATProto but that doesn't resolve the concerns raised in this article.
EGreg 2 hours ago||
Yes you do own your domain, as much as you can own your house. Your hosting provider can only take down your hosting, not your domain. Seizing domain names isn't very common. And by the way, with Web3 domains, you have full ownership via your own private key, with no need to pay rent. Is it possible to lose your house that you own? Yes. It's far more rare to lose a domain you own, by it being seized.

DNSSec is used to prevent unauthorized stealing of domains. Furthermore, if someone does steal one domain you own, they don't steal all your accounts across all domains. If they take over your hosting, that's a fixable problem -- you just repoint the domain.

Now, having said that, I designed the Safebox exactly to prevent these scenarios from happening, and create an actually solid foundation for decentralized social networking, AI workloads, etc. If anyone is interested, probably the best link to begin reading about it is: https://safebots.ai/about (If you do, I'd love to hear your thoughts)

tptacek 2 hours ago|||
In addition to the fact that almost nobody uses DNSSEC, it solves none of the problems indicated by this article.
EGreg 1 hour ago||
Right, but neither do these problems apply to domains, as much as they apply to ATProto accounts.

You don't even have the frameworks that are available to protect domains. (Domain lock, transfer, etc.) And registrars are regulated by laws and frameworks in ways ATProto hosts aren't. Don't get me wrong, if a registrar transfers your domain due to a social engineering attack on the registrar, then you might lose it (an attacker almost did this to me once via a SIM swap, and I had to call GoDaddy to prevent the transfers). But that's not the same as, say, hacking the web hosting server.

In any case, tptacek, Safebox is supposed to solve these actual problems, by making sure no one can actually get into the box (no ssh, etc) so it's a "neutral ground" that no one can really "own", "redirect", steal keys or impersonate you. If you read https://safebots.ai/about you'll see what I'm talking about. If you do, I'd love to read any feedback you might have, given your background in security!

ranger_danger 2 hours ago||||
Seizing domains is a lot more common than it used to be though, enough that it's a real concern for me personally, and I'm not sure there is a viable solution at the moment. There is also the concern of countries/governments or specific ISPs simply blocking access to one's domain in various ways... and the number of authoritarian regimes that have been blocking large portions of the Internet has only grown with time.

And regarding DNSSEC... if your domain is taken by the registrar (court order, ToS violation, etc.) or a government that can command the parent TLD to act, they can just revoke your old key and transfer the domain to someone else (or setup a placeholder under their own DNS) and now your protection and all concept of ownership is completely gone without your consent. This happened a few years ago with Epik seizing the soyjakparty and kiwifarms domains, including their hosting from a subsidiary company Terrahost... and KF has never even lost a lawsuit, but there are some specific people that really don't like them, and have gotten adept at claiming ToS violations via every possible company that touches them in order to try to make them go away.

nekusar 2 hours ago|||
> Yes you do own your domain, as much as you can own your house

Uh, no.

I can legally shoot and kill intruders due to castle doctrine and stand your ground laws in my physical home. And legal invasions require being in front of a judge and a search warrant.

A domain can be seized for 'terms of service' (aka kangaroo court) reasons. Stand your ground nor castle doctrine doesn't apply to your digital house.

iamnothere 2 hours ago|||
Domains typically can’t be seized for arbitrary ToS violations, as registrars who do this can lose their accreditation with ICANN (and thus their ability to host domains at all). If the registrar could “frame” you for something like DNS abuse then maybe they could justify a suspension, and if they don’t unsuspend it after you correct the issue, you’d have to file a complaint with ICANN to (hopefully) get it back. If something like this happened and became public, though, the registrar would lose tons of business, as people would develop doubts about the registrar’s reputation.
EGreg 2 hours ago|||
Let's compare apples to apples, shall we.

How many houses were actually seized, repossessed, commandeered with "eminent domain", slowly taken over via "adverse possession", encroached on with easements and air rights, and whatever else? Versus how many domains?

There is no violence on the internet. You can't shoot intruders. And that's a great thing.

Put in legal terms, you do NOT have this level of ownership to your house... and you certainly do not have sovereign immunity on your land: https://en.wikipedia.org/wiki/Allodial_title

Usually the best you can get is this: https://en.wikipedia.org/wiki/Fee_simple

You probably have something more like this: https://en.wikipedia.org/wiki/Freehold_(law)

What you are describing is more like the king of England being able to shoot people on his own property, and have full sovereign immunity (in theory, I mean recently a British prince was arrested on allegations of far less).

nekusar 28 minutes ago||
I'm not sure where you're from, but in my state, we have "Castle Doctrine" and "Stand your Ground" laws.

That means if you are a home invader, I can legally shoot and kill you. There'll be an investigation, but both statutes are affirmative defenses to killing.

Its not that I want to, or look forward to it. I don't, and I hope I never have to. But I will, if I'm forced.

jacobgold 3 hours ago||
One of the core features of AT is the ability to move your repo hosting provider (PDS) at any time. This is the "data portability" problem that ActivityPub never solved.

Bluesky Social, PBC runs a PDS service (bsky.social) for free, there are a number of free public alternatives, and thousands of users self-host.

Self-hosting your own PDS can be done with Raspberry Pi or $5/mo VM and requires very little work. It runs in a Docker container with SQLite.

https://github.com/bluesky-social/pds

ascorbic 1 hour ago||
You can host it for free on Cloudflare using my Cirrus PDS: https://cirrus.earth/
mdasen 3 hours ago|||
You have the ability to move, as long as Bluesky Social PBC allows it.

They hold the keys for your DID. If they don't allow you to move to another PDS, you can't move. The original theory was that you'd hold the private keys, but that's something that would hugely limit adoption so they decided to hold the keys themselves.

In terms of moving your backlog of posts to a new server, part of the issue is liability (not merely legal liability, but reputational as well). When you have a user on your platform and they're posting stuff, you're moderating them in real time. If they turn out to be a horrible troll, you've get the reports. Let's say a horrible troll has been on EvilServer and EvilServer has been ignoring the reports against them. They now want to move to your GoodServer and bring all their post history with them. As an admin of GoodServer, you can't see that everyone has been reporting this troll for years. They're now moving over lots of horrible, inflammatory, potentially illegal posts to your server.

quasigod 1 hour ago|||
You can register a recovery key which allows overriding the signing key. This allows users to move from an adversarial PDS. I do think Bluesky should push for more users to add a recovery key, but I also understand why they haven't.

Moderation tools arent limited to specific PDS's, labels are public. If an account has received many reports it will have been labelled by Bluesky's moderation account and other independent labellers. A PDS can check against these before allowing an account to migrate if they choose to. I'm not sure any are currently doing this, but this is something that can absolutely be improved in current implementations, not an inherent limitation of the architecture.

verdverm 21 minutes ago||
How to adversarial migrate: https://www.da.vidbuchanan.co.uk/blog/adversarial-pds-migrat...

*requires your own PLC key, which the vast majority of users do not have, protonmail has good prior art here (imo)

chuckadams 3 hours ago||||
You can add your own keys to your DID, and IIRC you can even remove bsky's keys within a given timeframe (days).
jacobgold 3 hours ago||
You can also opt for a did:web identity using your own domain in which case did:plc is irrelevant to you.

https://atproto.com/specs/did

opem 3 hours ago||
Except it isn't as straightforward as most people would think. The last time I checked this, I think there were some issues with Bluesky app view and it didn't show accounts from a self hosted PDS
jacobgold 3 hours ago|||
You may have seen a temporary bug.

It's completely straightforward and it works. Tens of thousands of users are doing it successfully.

https://blue.mackuba.eu/stats/

quasigod 1 hour ago|||
When was the last time you checked that? That is definitely not currently true and hasnt been for as long as I've used Bluesky.
varun_ch 2 hours ago||
I think most people don’t need to worry about their host abusing its power to impersonate them, but the cool thing is, the people who do need to/want to worry (journalists, politicians, celebrities, activists, open source maintainers, etc etc etc) can self host a PDS and be a lot safer, and still interact with everyone else.
ascorbic 1 hour ago||
Sure, somebody else holds your identity, but it's pretty easy to control it yourself. By its nature if you're using somebody to host your stuff, you're trusting them with it. I made Cirrus so you can self-host your PDS for free, but you still need to trust Cloudflare to run it.
theamk 3 hours ago||
Is author new at the whole web thing? Yes, people trust remote web servers. Yes, if you link multiple apps to an identity server (be it atproto, google, or self-hosted OpenID server), and your identity server is compromised, attacker will be able to impersonate you or lock you out.

This is just how the web works, and there is no easy around it without losing features people care about. Sure, you can do client-side encryption and pretend serve can't see the plaintext, but it's just a theatre, see Hushmail incident for example.

And having people export uber-key by default is pretty terrible idea. Sure, allow advanced users (like post author) to do it. But for the common person, the exported key is just another way to get account compromised, via malware or backup provider hacking. Or if they are not backing up stuff, then the key will get lost next time they upgrade.

tarpitt 2 hours ago||
Are you new to the whole p2p thing? This is a terrible standard to hold new technology to. The web is broken.

https://secushare.org/broken-internet

Aurornis 2 hours ago|||
> Sure, you can do client-side encryption and pretend serve can't see the plaintext, but it's just a theatre,

Keeping a private keep on the client to sign your activity is a fundamental cryptography practice.

If you use a private key to sign your emails or git commits, it’s not security theater.

If you were to have to upload your private key to GitHub or your email provider, that would be severity theater.

> Is author new at the whole web thing?

Unnecessarily mean comment.

logifail 2 hours ago||
> This is just how the web works, and there is no easy around it without losing features people care about [...]

Well, apart from using a separate email address for every single "provider"?

(Spoiler: there's no way I'm going to sign into your service with a shared email ... you get <youservice>@<me>.com)

ranger_danger 2 hours ago||
Some services only allow signups from the big free providers like gmail/outlook/etc. because those providers are doing more consistent KYC and anti-spam measures than anyone else by far, and unfortunately it does cut down on the amount of spam by a lot. For most people nowadays you cannot even create a new gmail account without directly linking it to a mobile phone.
Muromec 3 hours ago||
So does a CA issuing my certificate, but there is some oversight in what they do.
jeroenhd 1 hour ago|
That's different. While your CA can hand out new certificates, it doesn't know your keys (unless you messed up when uploading your CSRs).

CAs have to prove they're not faking certs through the certificate transparency logs, there's no such limitation on Bluesky.

A more apt comparison is a shared host that does certificate management for you. Those are also often considered less secure, of course.

noname120 3 hours ago||
AI fluff
Zopieux 3 hours ago||
So annoying to read. Meanwhile, the key information ("backup key with higher priority") is mentioned in a sentence without any kind of elaboration or link to some follow-up/how-to.
opem 3 hours ago||
and what makes you say that?
drdexebtjl 1 hour ago|||
> It's not the data, it's the keys

is a heading

edit:

>On ATProto, your PDS doesn't just store your Bluesky posts. It stores everything.

>Not just your Bluesky account. Your ability to post, commit, publish, or interact across every ATProto app.

>The repo data itself isn't the issue. It's all public anyway,

>An attacker, a state actor with a warrant, or a rogue employee doesn't just get read access. They get the signing keys

Zopieux 3 hours ago|||
It has all the tells. There are websites which list them, please search "LLM tropes".
bluebarbet 2 hours ago||
"This was AI" itself has all the tells of an irrational panic which typically accompanies new technology, like UFO sightings in the 1950s. If ever it is still possible to "tell" AI writing, it soon will not be. So best (IMO) just to respond to the substance of the writing and move on.
refulgentis 2 hours ago||
> "This was AI" itself has all the tells of an irrational panic which typically accompanies new technology,

Being able to tell who wrote something doesn't imply irrationality, panicking, or a reaction to new technology.

> like UFO sightings in the 1950s.

UFO sightings stayed confined to the 1950s and were a reaction to new technology?

Or were the UFO sightings in the 1950s the only UFO sightings that were a reaction to new technology?

I'm not sure how this being clarified will be able to explain how identifying the writer of text is the same as a UFO sighting in 1950, but I'm open to it, I try to stay rigorously rational (c.f. X does not imply Y in first pull quote)

> If ever it is still possible to "tell" AI writing, it soon will not be.

Why not?

n.b. I quit my job at Google to build an AI client and have been working on it full time for 3 years. I love AI. I don't think there's a rational argument that justifies the idea it's better to never opine the author of some writing was AI, and the arguments offered here are particularly weak, at their face. As an opinion, solely? Fair enough.

bluebarbet 2 hours ago|||
So I just read the article a bit more closely, and personally I see no reason to panic like you (and others here) are doing. The AI suspicion was presumably triggered by one of the subheadings, which follows the "It's not X, it's Y" schema. At this point it's almost a meme that this betrays AI.

But I say: who cares? The substance and the authenticity are what count. This article made some interesting points, and it was signed off on by a human author. Personally, I'm no more interested in whether the author used AI to produce the text than in whether they used a dictionary or thesaurus, as long as they stand by the words.

This whole "debate" has the feel of religion to it. I'm consistently surprised that there's so much woolly, unfalsifiable thinking on this subject. And here, of all places.

refulgentis 2 hours ago||
[dead]
ranger_danger 2 hours ago|||
I think the main problem is you can't really ever tell with a high degree of certainty, people are just guessing based on what they see in an unscientific way. And the fact that AI is trained on human data, meaning what we see is in fact things humans have already done themselves, makes it even harder to "know" for certain IMO.
refulgentis 2 hours ago||
> the main problem is you can't really ever tell with a high degree of certainty

This is false, it is trivial to find humans with 99%+ accuracy[1] and there is a well-known service with 99%+ accuracy when analyzed by 3rd parties with no affiliation.[2]

> people are just guessing based on what they see in an unscientific way

As we see above, this is just guessing in an unscientific way. :) It's important to be rational! We all agree on that. :)

FWIW it did used to be true that the 3rd party services were junk. And I don't support the idea of humans just winging it when there's consequences. The case we're in is about the most mundane and consequence-free, the vast majority of us use AI daily and we're commenting on an internet aggregator that is aggregating a blog article.

[1] People who frequently use ChatGPT for writing tasks are accurate and robust detectors of AI-generated text - https://aclanthology.org/2025.acl-long.267/

[2] Artificial Writing and Automated Detection” - https://bfi.uchicago.edu/insights/artificial-writing-and-aut...

tengada1 1 hour ago||
Wait what?! For a protocol that incorporates the DID spec this is disappointing to discover. Unless I'm mistaken the DID spec allows provable hierarchical relationships between DID identities – why can't a child DID be created from our master signing identity that has the authority to CRUD on our behalf but still be provably distinct from our root identity?

Not even sure why the PDS would require our signing key that just seems very sloppy to me. As you can tell I know very little about atProto, and I did participate in the development of the DID standard and I am dismayed to see such an inelegant solution in such a promising protocol.

tengada1 1 hour ago|
Oops upon closer reading of the article and the comments here i see that the atproto standard does apparently allow for the above, at least to some degree. If there is indeed hierarchical support for the DIDs then you should be able to disavow any child identity from a master identity and leave no public uncertainty (ie the true owner of the key hereby disavows the following sub keys)

So if the worst case scenario presented in this article took place where a PDS was falsifying information and pretending to be you, you could presumably somehow revoke the child key that you provided to the PDS. I'll have to look more closely at this

You could even publish a signed selective retraction (delete the fake posts or mark them as fake) with proof that you control the key 1 level above the key that posted them

opem 3 hours ago|
Both nostr and atp sucks at key management imo. The Farcaster network does a good job here with their chain of trust model and a smart contract on etherium blockchain to recover identities in case of losing access to a private key. Ironically its also the blockchain aspect of Farcaster for which I never tried it.
More comments...