#social 2019-01-10

2019-01-10 UTC
#
hellekin
cwebber2: natacha and zeyev are going to present something about organization prior to the AP panel. As I wanted you on the panel rather than as a moderator, I asked them to take that role. As we still did not decide on the speakers they don't appear. Although Pentabarf makes a difference between various roles (moderator, speaker...), the Web interface of the schedule does not.
#
hellekin
the preparatory discussion is meant to gather as many people from the AP community to discuss topics and speakers.
#
cwebber2
hellekin: aha :)
#
cwebber2
ty for the clarification
#
hellekin
:)
#
hellekin
is reading http://waterken.sourceforge.net/web-key/ (I guess you have as well, given your goblins)
eprodrom, ajordan_, ajordan, timbl, xmpp-social, Guest84, hellekin, jdormit, hankgrabowski and HankG joined the channel; eprodrom left the channel
#
HankG
Hello just joined and setup IRC for this channel. Just saying hello :)
#
rialtate[m]
Hello
jdormit joined the channel
#
jdormit
So I'm thinking about how to handle authentication for my AP library
#
jdormit
figuring out if a request is authorized to act on behalf of one of my servers users is the same as authentication for any other local service
#
jdormit
e.g. make them log in then store a cookie or whatever, lots of ways to skin that cat
#
jdormit
but what about requests for objects that my server owns that are private but addressed to actors on other servers?
#
jdormit
e.g. let's say my user Bob sends a private message to Alice, who has an account on another server
#
jdormit
Alice should be able to GET the id of that message and retrieve it from my server
#
jdormit
But how do I make sure the request actually comes from Alice?
#
jdormit
I can try to validate the HTTP signature with the public keys of every actor that the object was addressed to, but that could potentially be a lot of work if it was addressed to a lot of actors
#
jdormit
but the spec doesn't have a way of saying "this GET request is associated with the actor with this id", so I don't see another option
jdormit[m] joined the channel
#
jdormit
the other answer is that Alice just retrieves the version of the message that her server stored when I delivered it to her
jdormit[m] joined the channel
#
jdormit
which works, but it's a little weird that her server wouldn't be able to dereference the message from my server
#
rialtate[m]
> I can try to validate the HTTP signature with the public keys of every actor that the object was addressed to, but that could potentially be a lot of work if it was addressed to a lot of actors
#
rialtate[m]
Matching keyId does not seem like a lot of work. It's only a problem if you use one key for multiple actors (some do) Ha!
#
jdormit
well, let's say my message is addressed to Alice and Joe, neither of which are actors that I control
#
jdormit
and I receive a GET for that message
#
jdormit
how do I know if it is Alice or Bob or someone else who signed that request?
#
jdormit
s/Bob/Joe
#
jdormit
I'd have to try them both
#
jdormit
and if it was a message that was addressed to hundreds of actors, validating the signature against all of them would be prohibitively expensive
#
jdormit
am I missing something?
#
rialtate[m]
The http signature header has a keyId field. If the get is signed with https://alice.example/keys/1, which you know to be `owner` https://alice.example/actor, then you know it is Alice making the request. Simple SQL query if you do it right.
#
jdormit
OH
#
jdormit
that makes perfect sense
#
jdormit
thanks!
#
rialtate[m]
😂 sure