#dev 2025-08-28

2025-08-28 UTC
grufwub, gregsarjeant, sarna, [tw2113], eb, gRegor, okCiel, Saige_Leah, Saige_Leah_, barnaby, oodani, barnabywalters, just_jimmy, [Trevor_Morris], kushal, bterry1, revi, ttybitnik, axxuy, rozodru, marc_in_space, CRISPR, [artlung], pfych, alephalpha0 and DJ_[dj_je][d] joined the channel
#
capjamesg
aaronpk I am thinking about how to store capability URLs for my web reader. I was thinking of encrypting them and storing the keys in a secrets management tool. The upside is that the URLs would be unreadable without the key; the downside is that if someone got access to the server they could technically request the key from the secrets management service.
#
capjamesg
I was wondering if there were any best practices I should keep in mind.
#
capjamesg
I am new to this so any recommended readings would be sincerely appreciated!
barnaby joined the channel
#
.pi.r2.
sorry I know little about the context capjamesg[d] but do they need to be used asynchronously, or do you have a browser around when you need them?
#
capjamesg
The only time the URLs need to be read are when users are managing their feeds (i.e. editing a feed) or in the back-end when the feed polling script runs.
#
.pi.r2.
ah the latter is async. too bad
CrimeWave joined the channel
#
capjamesg
What was your suggestion going to be?
#
.pi.r2.
otherwise the browser could decipher them on the fly, then you could keep them ciphered on the sever. the key could be derived from a passphrase and potentially held in local storage
#
capjamesg
I am curious about that. What if the key in local storage is lost?
#
.pi.r2.
you type the passphrase again
#
.pi.r2.
well, use a password manager 🙂
#
.pi.r2.
it's derived deterministically right
#
.pi.r2.
then tweetnacl crypto works well, as per the rest of this file
#
.pi.r2.
sorry could have split logic apart from view, I was lazy
#
.pi.r2.
anyway, not viable here
#
capjamesg
Oh interesting.
#
capjamesg
So the user could set a private key in the browser, the public key is sent to the service, then the service encrypts data that is only readable when the user opens the page in their browser?
#
.pi.r2.
yup
#
.pi.r2.
websocket so the server can ask to decrypt whenever, or a single decrypt-everything exchange when opening a session
#
[snarfed]
E2EE fead reader! that is...aggressive 😁
#
[snarfed]
(sorry, I guess E2EE web server ACLs, not feed reader)
#
capjamesg
I think that could work for post titles and contents.
#
capjamesg
The problem I'm trying to solve right now is I wanted all the private URLs on the back end to be encrypted.
gRegorLove_ joined the channel
#
aaronpk
Wait why are there private URLs? Why not use a proper authorization model?
#
aaronpk
Capability URLs should be a last resort only when you absolutely need the features they provide
#
capjamesg
aaronpk Some podcasts (i.e. 404 Media, NPR) give you a private feed if you are a subscriber that gets you something (i.e. episodes a day early, no ads).
#
aaronpk
Oh I see, you're not creating the URLs, they are from external feeds?
#
capjamesg
It feels prudent to build the service in such a way that the URLs are stored as securely as possible given they may contain private info.
#
capjamesg
Post content too, but that is going to be trickier because I want to offer full-text search over that data.
#
.pi.r2.
well if your backend needs to be able to retrieve them on demand, it's game over
#
.pi.r2.
encrypt all you want, backend compromised → keys extracted
#
capjamesg
Yeah. I guess I was wondering if that was actually the scenario or if there was anything I could do.
#
gRegor
It does seem like it would be a complicated process to poll that way, have to decrypt to poll
#
gRegor
Is Artemis using WebSub?
#
gRegor
Oh I see it polls once a day. Maybe not a problem
#
capjamesg
It's not using WebSub.
#
capjamesg
I mean it could but it would add more complexity.
#
capjamesg
Is WebSub widely adopted?
barnabywalters joined the channel
#
[tantek]
Quite a few indieweb blogs support publishing via WebSub
#
[tantek]
What is WebSub
#
Loqi
WebSub is an open standard (W3C Recommendation) notification-based protocol for web publishing and subscribing to streams and legacy feed files in real time, previously known as PubSubHubbub or PuSH, and briefly PubSub https://indieweb.org/WebSub
#
[tantek]
I'd check the indieweb examples there
#
[tantek]
What is WebSub.rocks
#
Loqi
websub.rocks is a test suite for the WebSub protocol https://indieweb.org/websub.rocks
#
gRegor
WebSub may not be needed if you're intentionally polling only once a day. It would add complexity for sure.
lurkie_ joined the channel