-
sunglocto
are there any notable clients that use XEP-0080: User Location ? testing both cheogram and monocles they both seem to just send a raw geotag in the message body and don't seem to use the XEP at all
-
MattJ
I think part of the reason is that XEP-0080 in PEP would not be encrypted, but a geo: link can be protected by OMEMO
-
MattJ
It's not an unsolvable problem, but that's probably a factor (also geo: links are trivial to implement)
-
Cynthia
MattJ: maybe we should make encrypted PEP
-
Cynthia
or at least, an encapsulation of PEP data inside of OMEMO
-
lovetox
For me the encryption should not be omemo, rather you encrypt with some symmetric key the pep node and share the secret with omemo
-
lovetox
Also there should be a start message to the contact and a end message to indicate that location sharing started and ended
-
lovetox
The question is also if pep really is useful here
-
lovetox
Pep is useful if you broadcast to many contacts, which will be a rare case with location sharing
-
lovetox
So why not simply send encrypted messages in time intervals, and skip all the pep encryption problems
-
cal0pteryx
> Pep is useful if you broadcast to many contacts, which will be a rare case with location sharing Not sure if that's a rare case ↺
-
lovetox
Sharing location to multiple contacts not in a group?
-
Cynthia
lovetox: sending encrypted messages in time intervals would be garbage UX tbh
-
Cynthia
it'll clog the PM chat
-
Cynthia
unless the client can filter out the unnecessary messages in the frontend
-
Cynthia
also encrypting with some symmetric key and then sharing it wouldn't be forward-secret
-
Cynthia
which is why i recommended encapsulating data within OMEMO, it rotates keys per message in a forward-secret manner✎ -
Cynthia
which is why i recommended encapsulating data within OMEMO, it rotates keys per message, ensuring forward secrecy ✏
-
cal0pteryx
> Sharing location to multiple contacts not in a group? No, right, the case I have in mind has all people in a group ↺
-
lovetox
Cynthia: what's the difference receiving a message from pubsub or in the chat ?
-
lovetox
It's exactly the same amount of messages
-
Évelyne
Hello, I have a question as someone starting to read about the details of XMPP. Are identifiers the only way stanzas get related? Or is the total ordrering brought by TCP necessary for the operations of the protocol?✎ -
Évelyne
Hello, I have a question as someone starting to read about the details of XMPP. Are identifiers the only way stanzas get related? Or is the total ordering brought by TCP necessary for the operations of the protocol? ✏
-
lovetox
What's a identifier?
-
Cynthia
lovetox: the difference is that a legacy client will not be able to tell if it's a regular message or just an automated GPS location sending emssage
-
Cynthia
and will not be able to filter it out from regular messages
-
Cynthia
causing the PM conversation to be cluttered
-
Évelyne
> What's a identifier? hm from what i remember (i didn't save the file while i was prettifying and looking at stanzas), i saw something like `<message … id="68886607-a0ff-4be9-a6f8-9301f238c73d>…</message>` and then for replies something like `<message …><reply id="d67452b5-32f0-43fe-92b3-9208ee5c9613" …/></message>`✎ ↺ -
lovetox
Cynthia: of course it will that's what namespaces are for. Everyday clients receive a lot of messages with content they don't support, that's the nature of xmpp
-
Évelyne
> What's a identifier? hm from what i remember (i didn't save the file while i was prettifying and looking at stanzas), i saw something like `<message … id="68886607-a0ff-4be9-a6f8-9301f238c73d">…</message>` and then for replies something like `<message …><reply id="68886607-a0ff-4be9-a6f8-9301f238c73d" …/></message>` ✏ ↺
-
lovetox
A client displays only what it understands and the rest gets dropped
-
Cynthia
okay well if the message is namespaced, that's a different thing
-
lovetox
Évelyne: yes some message reference other messages via id
-
lovetox
That's how we setup a relation between two messages
-
lovetox
That's the only way to my knowledge
-
Évelyne
lovetox: yes i know and it's a classical technique for XML (i wrote some XSLT 1.0 for my own thesaurus, LIS style), but i was wondering if that was the only way xmpp established relations between messages, or if the order of arrival in the stream mattered, or some other technique was used too.
-
Évelyne
i mean between any stanza
-
Évelyne
> That's the only way to my knowledge ah didn't notice your last message before sending, thanks ↺
-
lovetox
Order is important of course in a lot of cases
-
lovetox
But if one message references another it will be explicit with an id
-
Évelyne
ah so the ordering brought by TCP matterst too, there's an implicit logical relation between stanzas based on that (ie after/before)✎ -
Évelyne
ah so the ordering brought by TCP matters too, there's an implicit logical relation between stanzas based on that (ie after/before) ✏
-
Cynthia
i think location sharing should be forward-secret
-
Évelyne
Because if order wasn't guaranteed i could have imagined that this could have been dealt with with pending operations, like "this message refers to an id i do not know, i'll keep it around until i get what it refers to, or drop it after X seconds". Which of course makes things more complicated.
-
lovetox
For example if you send multiple corrections, all reference the original message but you must know which is the last
-
lovetox
And this comes through the order of the stream
-
lovetox
So many things depend on order
-
lovetox
Évelyne: but what you say can still happen, because once you get into requesting messages from an archive you may reverse the order you want to receive messages from the archive, and then you hit this situation
👍 1 -
dwd
lovetox, You can of course set the PEP node to be only available to a specific roster group, and then put (say) family and close firiends into that roster group.
-
lovetox
dwd: of course, I can also whitelist single jids and make the node open
-
dwd
lovetox, That too, indeed.
-
jjj333_p (any pronouns)
> Sharing location to multiple contacts not in a group? yes, this is a use case that i currently use with friends on snapchat / apple find my ↺
-
lovetox
But via pep nothing is speced and it's complex. Sending location messages to my contact I can do immeadiatly
-
sunglocto
> Sharing location to multiple contacts not in a group? You could make a MUC and send your location in it ↺
-
sunglocto
whatsapp has that flow
-
jjj333_p (any pronouns)
It'd probably not be something you want stored in mam or so except for the last element, and the recieving client would want to subscribe to real time updates if the user is looking at that and only in that case probably
-
jjj333_p (any pronouns)
though for my use case it probably makes more sense to use something presence based
-
jjj333_p (any pronouns)
encryption over presence when 🧌
-
dwd
sunglocto, You're then just replicating PEP but in a different mechanism, surely?
-
lovetox
jjj333_p (any pronouns): there are 2 different use case for me. One is sharing a location for x hours. The other is sharing without timelimit
-
lovetox
For no timelimit I would use Google find device or apple find phone
-
jjj333_p (any pronouns)
> jjj333_p (any pronouns): there are 2 different use case for me. One is sharing a location for x hours. The other is sharing without timelimit i agree theres 2 use cases, thats not the line i would split it on though ↺
-
Cynthia
why not just have the users query you for location
-
jjj333_p (any pronouns)
> For no timelimit I would use Google find device or apple find phone that doesnt work so well without a) sharing your phone number b) if you dont all have the same kind of phone ↺
-
jjj333_p (any pronouns)
for me and my friends i usually end up location sharing on snapchat as i said
-
jjj333_p (any pronouns)
> why not just have the users query you for location less realtime, hence why you might want it to be something subscribable ↺
-
Cynthia
sure
-
lovetox
But yeah for sharing without timelimit I would not use direct messages
-
Cynthia
subscription makes sense
-
jjj333_p (any pronouns)
IMO presence with some kind of last state serverside storage would probably be the best solution for what im wanting
-
lovetox
And filling up mam is a good argument against it
-
jjj333_p (any pronouns)
like even if you go online, for the other user to be able to come online and get the data that came with last online
-
jjj333_p (any pronouns)
maybe that is pep, im not super solid on the details of pep
-
Cynthia
or how about presence with forward-secrecy encrypted location
-
Cynthia
like MLS
-
lovetox
Ah mom we can send messages with a hint that it's not stored in mam
-
Cynthia
or OMEMO
-
sunglocto
> or how about presence with forward-secrecy encrypted location Nobody is going to implement that ↺
-
jjj333_p (any pronouns)
> Ah mom we can send messages with a hint that it's not stored in mam still a mess for clients that dont support probably ↺
-
Cynthia
sunglocto: people said that about OMEMO
-
jjj333_p (any pronouns)
> or how about presence with forward-secrecy encrypted location that doesnt help the offline issue, nor is forward-secrecy a good option for where you might have a lot of dropped data ↺
-
jjj333_p (any pronouns)
tbh pep or some kinda pubsub makes the most sense if you can set it to only store the last event or something
-
Cynthia
you're trusting the servers don't log your locations
-
Cynthia
anyway
-
jjj333_p (any pronouns)
> you're trusting the servers don't log your locations thats what the encryption is for ↺
-
Cynthia
or completely disregard your hint
-
jjj333_p (any pronouns)
> MattJ: maybe we should make encrypted PEP we've come full circle ↺
-
sunglocto
is that ever comes to be then God has left us and we are all living in hell✎ -
Cynthia
jjj333_p (any pronouns): but if someone manages to get the symmetric key (from a user you trust), they can decrypt all of your location notifications
-
jjj333_p (any pronouns)
> jjj333_p (any pronouns): but if someone manages to get the symmetric key (from a user you trust), they can decrypt all of your location notifications im not arguing against pfs. im saying pfs doesnt make sense in presence ↺
-
sunglocto
if that ever comes to be then God has left us and we are all living in hell ✏
-
Cynthia
i see
-
dwd
jjj333_p, Is that because there's no MAM etc to avoid lost crypto-state updates?
-
jjj333_p (any pronouns)
yes
-
jjj333_p (any pronouns)
though actually now that i think about it, it could just rebuild the session
-
Cynthia
honestly you should store a bit of your previous events
-
dwd
Right, thanks. So we could still ratchet, but the ratcheting needs to occur only over messages?
-
jjj333_p (any pronouns)
> honestly you should store a bit of your previous events this unfortunately doesnt happen in presence ↺
-
Cynthia
tbh presence is not meant for transmission of sensitive data
-
Cynthia
wthout compromising a bit of security
-
jjj333_p (any pronouns)
> Right, thanks. So we could still ratchet, but the ratcheting needs to occur only over messages? no, its that with presence you would need to re-ratchet every time both of you were online at the same time and otherwise it wouldnt be fetchable or decryptable ↺
-
Cynthia
maybe PEP or pubsub?
-
Cynthia
re-ratchet all the time would make the double ratchet systemm useless
-
jjj333_p (any pronouns)
> we've come full circle yes, back full circle to encrypted pep ↺
-
Cynthia
you might aswell go with a symmetric shared key
-
dwd
I know OMEMO explicitly ratchets on every message (or at least, I think I know!), but MLS for example doesn't, it's a distinct action. So we might be able to ratchet only over messages, where it's stable, but send presence without hanging epoch or whatever the terminology is.
-
sunglocto
>> we've come full circle > yes, back full circle to encrypted pep once again ↺
-
sunglocto
> if that ever comes to be then God has left us and we are all living in hell
-
jjj333_p (any pronouns)
> I know OMEMO explicitly ratchets on every message (or at least, I think I know!), but MLS for example doesn't, it's a distinct action. So we might be able to ratchet only over messages, where it's stable, but send presence without hanging epoch or whatever the terminology is. theres 0 utility in it being over messages ↺
-
dwd
Cynthia, It's all symmetric key, of course, at the bottom.
-
jjj333_p (any pronouns)
that is at no point what i was saying, that the negotiation needs to happen over messages
-
Cynthia
yes true
-
Cynthia
but i'm talking about using one key long-term
-
jjj333_p (any pronouns)
im saying that you loose state if you dont store the things you miss while offline
-
Cynthia
instead of a rotating key short-term
-
dwd
jjj333_p, I'm saying ratchet (so key negotiation) over only message, but send encrypted data within that state over presence/PEP.
-
jjj333_p (any pronouns)
> jjj333_p, I'm saying ratchet (so key negotiation) over only message, but send encrypted data within that state over presence/PEP. that just makes no sense to do ↺
-
dwd
jjj333_p, You'll have to explain why, I don't follow.
-
sunglocto
aside from being a gross overcomplication it serves no security benefit
-
jjj333_p (any pronouns)
i mean ig MLS would cut down on it, but theres little reason to include enough traffic in storage for the crypto data and not just also include the event
-
jjj333_p (any pronouns)
> aside from being a gross overcomplication it serves no security benefit also this ↺
-
jjj333_p (any pronouns)
either store the whole hog or dont store anything and just rebuild the session
-
Cynthia
so it's either store the whole log or don't use ratchet at all :P
-
dwd
Cynthia, Apparently so. I'm not sure if I'm just too stupid to understand this, or if this has fallen foul of von Clausevitz's perfect dream vs good plan.
❓ 1 -
jjj333_p (any pronouns)
tbh an omemo transmitted symetric key such as aes is probably fine for presence data, just rotate it every so often, via an asymetric means
-
Cynthia
that's what i was about to type
-
dwd
jjj333_p, How does that differ from what i suggested?
-
dwd
sunglocto, "The enemy of the good plan is the dream of the perfect"
-
jjj333_p (any pronouns)
> jjj333_p, How does that differ from what i suggested? the best i understood your proposal was to split omemo or mls so that the key negotiation happened via messages ↺
-
jjj333_p (any pronouns)
my proposal is use the omemo you use for dms to renegotiate a static aes key which you use to transmit the data
-
dwd
jjj333_p, Key negotiation does happen by messages in OMEMO, aside from the prekey/initket - that's identical in MLS and OMEMO.
-
jjj333_p (any pronouns)
i think you and me are talking past eachother in a major way, and its 3am i cba to figure it out
-
dwd
jjj333_p, The "ratchet" that changes the underlying symmetric key happens in messages, and in OMEMO that's every message, whereas in MLS it's only mandatory when the group changes.
-
jjj333_p (any pronouns)
I suppose in that sense MLS would work perhaps, but from what ive heard MLS in XMPP isnt happening very soon
-
jjj333_p (any pronouns)
and it still doesnt make presence right for location, since theres no storage of last state
-
dwd
jjj333_p, I am suggesting - very loosely - that we could export a symmetric key from MLS and use this for presence/PEP. I assume something similar would be possible in OMEMO, though it'd be very much bolted on.
-
Cynthia
how do you know there's no storage of last state
-
dwd
Why do you need to store last presence state to handle this though?
-
Cynthia
lol
-
jjj333_p (any pronouns)
> how do you know there's no storage of last state offline presecne can have a reason/message ↺
-
jjj333_p (any pronouns)
but you dont see it because you only get it if your client was online
-
jjj333_p (any pronouns)
from my understanding, the client generally doesnt keep track of offline presences, and thats the only presence that is persisting
-
dwd
Sure... But that's the current state anyway. We don't need this for cryptography, is what I mean.
-
Cynthia
why does this have to be over presence or PEP if you're just gonna share a key over a MUC or even PMs
-
Cynthia
to everyone
-
Cynthia
you're going to be sending a message to everyone regardless, why not stuff the location in directly while you're at it?
-
singpolyma
we're talking about https://xmpp.org/extensions/xep-0080.html ? or something like that?
-
sunglocto
> from my understanding, the client generally doesnt keep track of offline presences, and thats the only presence that is persisting Don't clients randomise the resource on every connect ↺
-
singpolyma
>> from my understanding, the client generally doesnt keep track of offline presences, and thats the only presence that is persisting > > Don't clients randomise the resource on every connect no. quite the opposite ↺
-
sunglocto
Or do they use the same one every time
-
jjj333_p (any pronouns)
> we're talking about https://xmpp.org/extensions/xep-0080.html ? or something like that? > yeh ↺
-
singpolyma
this is part of why resource is private protected data
-
Cynthia
sending something that is useless to everyone else over PEP/presence sounds like an overcomplication
-
jjj333_p (any pronouns)
> you're going to be sending a message to everyone regardless, why not stuff the location in directly while you're at it? because you dont want to clutter up storage or chat with the entire history ↺
-
jjj333_p (any pronouns)
only the last state
-
singpolyma
> sending something that is useless to everyone else over PEP/presence sounds like an overcomplication PEP has access controls. so you can make sure it only sends to the people it's useful to :) ↺
-
Cynthia
jjj333_p (any pronouns): youre going to be cluttering up the storage or chat with keys to decrypt th locations
-
jjj333_p (any pronouns)
> jjj333_p (any pronouns): youre going to be cluttering up the storage or chat with keys to decrypt th locations which is why omemo doesnt make sense ↺
-
jjj333_p (any pronouns)
perhaps something like MLS might make more sence since theres less key renegotiations
-
Cynthia
okay but you're still cluttering up the chat with keys
-
jjj333_p (any pronouns)
according to dwd it would only be on key changes
-
jjj333_p (any pronouns)
like adding/removing a device
-
Cynthia
that's internally, we're talking about sharing a key with everyone over MLS/OMEMO
-
Cynthia
and tbh, reusing keys directly from MLS/OMEMO would be a security nightmare on its own
-
jjj333_p (any pronouns)
what i think i figured out is dwd was saying that you could literally just use mls for that, like just another session
-
jjj333_p (any pronouns)
like i think we were just badly describing how mls works
-
Cynthia
also no server really stores the entire history
-
Cynthia
i'm assuming the location messages will be namespaced (so that client that can't handle it, ignore it)
-
Cynthia
so the server will prune out old messages
-
jjj333_p (any pronouns)
generally at least in the case of prosody i only see storage pruned in a time based mannor
-
Cynthia
yes
-
Cynthia
that's better, isn't it?
-
jjj333_p (any pronouns)
also in the case of realtime thats near constant events, you dont want to store that much
-
jjj333_p (any pronouns)
> that's better, isn't it? not at all ↺
-
jjj333_p (any pronouns)
worse both for ux and the work of both the server and client
-
Cynthia
you still need a way to tell everyone to advance their ratchets
-
singpolyma
PEP will only store one event (the most recent) if that's how you set it. Which I assume you would in this case
-
Cynthia
so you really can't avoid it
-
jjj333_p (any pronouns)
> PEP will only store one event (the most recent) if that's how you set it. Which I assume you would in this case yeah okay so just need to make mls or omemo work over that ↺
-
Cynthia
you can't
-
jjj333_p (any pronouns)
i feel like im discussing with a wall
-
Cynthia
you need a way to tell everyone to advance their ratchet, or a way to tell them which changes have occurred
-
Cynthia
otherwise the double ratchet system will break
-
jjj333_p (any pronouns)
> you need a way to tell everyone to advance their ratchet, or a way to tell them which changes have occurred do the rachet over messages, which in the case of mls would be way way way less frequent ↺
-
jjj333_p (any pronouns)
like if you have a lot of friends with a lot of clients that will only happen like a couple times a day at worst really, rather than literally anythhing approximating realtime being stored
-
Cynthia
sooo.. why not do the whole thing over messages then
-
jjj333_p (any pronouns)
unless your retention is like 1 hour that would quickly baloon insanely
-
jjj333_p (any pronouns)
> sooo.. why not do the whole thing over messages then mf i just explained that ↺
-
jjj333_p (any pronouns)
are you not reading my messages
-
Cynthia
i am
-
Cynthia
just confused
-
jjj333_p (any pronouns)
key negotiation happen once when client list changes
-
singpolyma
I guess the prior art is https://xmpp.org/extensions/xep-0477.html and https://xmpp.org/extensions/xep-0473.html maybe others. goffi is the one to talk to
-
jjj333_p (any pronouns)
location update happen potentially tens of times a minute
-
jjj333_p (any pronouns)
way way way different
-
Cynthia
ooh, so you're just talking about MLS exclusively
-
jjj333_p (any pronouns)
> perhaps something like MLS might make more sence since theres less key renegotiations literally said that ↺
-
singpolyma
> sooo.. why not do the whole thing over messages then sure you could easily. but PEP is also "over messages" and handles some stuff for you *shrug* ↺
-
jjj333_p (any pronouns)
i feel like im going cray
-
Cynthia
you said MLS/OMEMO
-
Cynthia
about a fw mssages back
-
Cynthia
sorry
-
jjj333_p (any pronouns)
not since i said the emssage i referenced
-
Cynthia
singpolyma: i'd like to see XEP-0477 be a thing
-
Cynthia
then we wouldn't need to argue over encryption for locations :P
-
jjj333_p (any pronouns)
> then we wouldn't need to argue over encryption for locations :P i mean that would just be solving the issue that we're debating ↺
-
Cynthia
... exactly?
-
jjj333_p (any pronouns)
i think i need to lie down, it feels like im speaking a different language than everyone else, and if its everyone than its probablyh me
-
jjj333_p (any pronouns)
it is 3am and im not sober
-
jjj333_p (any pronouns)
sorry
-
sunglocto
>> >> Don't clients randomise the resource on every connect > > no. quite the opposite So if i see `gajim.3728292rhde` it will stay like that on reconnect? ↺
-
singpolyma
yes
-
sunglocto
noted. in my client i've been randomising it on every reconnect...
-
singpolyma
once you use sasl2 you lose control of the resource string anyway. I'd suggest doing it that way for any new work
-
Martin
For some reason I don't remember I have a random part in go-sendxmpp… I think it was related to FAST or SASL2.
-
dwd
Bind2 rather than SASL2, but yes - you only control the first part.
-
Martin
I think it was because a stable ressource per installation would break parallel use of go-sendxmpp which can easily happen if you use it in several scripts for notifications.
-
moparisthebest
you don't need to bind a resource at all to just send messages
-
lovetox
Really? TIL
-
theTedd
> After a client authenticates with a server, it MUST bind a specific resource to the stream so that the server can properly address the client —RFC 6120, §7.1
-
moparisthebest
I guess "properly address the client" is needed to just send messages then?✎ -
moparisthebest
I guess "properly address the client isn't needed to just send messages then? ✏
-
theTedd
> If, before completing the resource binding step, the client attempts to send an XML stanza to an entity other than the server itself or the client's account, the server MUST NOT process the stanza and MUST close the stream with a <not-authorized/> stream error
-
theTedd
So, sure, it's not needed unless you want to send a message to anyone other than yourself
-
moparisthebest
oops I think I confused sending presence with binding lol
-
lovetox
I wanted to say that, but didn't.