jdev - 2025-05-14


  1. Cynthia

    i can do one better

  2. Cynthia

    setting your password as the email

    😂 1
  3. moparisthebest

    >> some are moving to passkeys which only work on proprietary OS's which is obviously worse > passkeys work just fine for me on linux so that's moot iOS and Windows and only Android with Google play services, not Android without Google play services, support the "secure" identifier proof thing some websites require

  4. moparisthebest

    > State of the art is to set your password to 12345 but then forget you added the 5 so do email password reset every time Exactly, xmpp works really hard to hide this from the server for no reason

  5. moparisthebest

    Also you sent it in plaintext to the server upon registration lol, literally security theater

  6. Cynthia

    absolutely good thing for us to replace a good thing with a proprietary solution

  7. Cynthia

    what if i cut off my fingers one day

  8. Cynthia

    do i just lose access to the stuff i have online?

  9. Goot the ticklegoblin!

    > Also you sent it in plaintext to the server upon registration lol, literally security theater unless of course.............. the server doesn't store it after that

  10. Cynthia

    moparisthebest: it's only between you and the server

  11. Trung

    > what if i cut off my fingers one day try superglue

  12. Trung

    my government scan eyeballs now so loosing fingers are fine

  13. Cynthia

    why didn't i see this before

  14. Cynthia

    quite literally

  15. Cynthia

    i wanna scan my eyes to use XMPP

  16. moparisthebest

    >> Also you sent it in plaintext to the server upon registration lol, literally security theater > unless of course.............. the server doesn't store it after that are you trusting the server or not? If you trust it then why hide your password at all? If you don't why are you using it

  17. Goot the ticklegoblin!

    trusting it once (upon registering) is different from trusting it always (upon every single time you log in)

  18. Goot the ticklegoblin!

    trusting it once (upon registering) is different from trusting it always (upon every single time you log in, and even when you're not online)

  19. Trung

    jokes aside, i think trust is a slide scale, not a boolean. I trust it to exchange encrypted messages and do authentication for convinenency but beyond that which is data is not to be trusted and password is data.

  20. Trung

    biometric are also data which i think my government store it in the ID card that can do NFC =]]]]

  21. Cynthia

    therefore it shouldn't be used as a form of locking things?

  22. Trung

    i think both has advatange and disadvantage

  23. Cynthia

    true

  24. Cynthia

    it so happens that my threat model includes the gov, so maybe it wouldn't apply to everyone else

  25. singpolyma

    >>> Also you sent it in plaintext to the server upon registration lol, literally security theater >> unless of course.............. the server doesn't store it after that > are you trusting the server or not? If you trust it then why hide your password at all? If you don't why are you using it I don't trust my connection to my server

  26. moparisthebest

    > trusting it once (upon registering) is different from trusting it always (upon every single time you log in, and even when you're not online) Goot the ticklegoblin!: How

  27. Cynthia

    if you don't trust the server with a copy of your password

  28. Goot the ticklegoblin!

    what do you mean how

  29. Cynthia

    you could hash the password before you send or register it

  30. moparisthebest

    >> are you trusting the server or not? If you trust it then why hide your password at all? If you don't why are you using it > I don't trust my connection to my server Then how can you use XMPP? TLS is what enables this trust

  31. singpolyma

    TLS is insufficient, as has been shown multiple times by various MITM attacks

  32. moparisthebest

    >> trusting it once (upon registering) is different from trusting it always (upon every single time you log in, and even when you're not online) > Goot the ticklegoblin!: How Goot the ticklegoblin!: You said it's different, how is it different, what is your threat model ?

  33. moparisthebest

    > TLS is insufficient, as has been shown multiple times by various MITM attacks Then you probably can't use anything on the internet

  34. Cynthia

    singpolyma: you could go through an anonymizer layer like tor

  35. Cynthia

    and have the XMPP service hosted over tor

  36. moparisthebest

    SASL and scram certainly don't help with the "I don't trust TLS" threat model

  37. Cynthia

    that way, the public key is literally stored within the domain, and no MITM attack to fear of because no CA or whatever

  38. singpolyma

    > SASL and scram certainly don't help with the "I don't trust TLS" threat model ... that's what they were designed for

  39. singpolyma

    scram specifically. nothing to do with sasl

  40. singpolyma

    sasl is just detection

  41. singpolyma

    you can have scram without sasl and vice versa

  42. Goot the ticklegoblin!

    > Goot the ticklegoblin!: You said it's different, how is it different, what is your threat model ? out of every time the server receives the password, it only has to be untrustworthy once

  43. Goot the ticklegoblin!

    if it only receives the password once (upon registering) then that is only 1 chance to store it, steal it, etc

  44. Cynthia

    y'know if the server is compromised

  45. Cynthia

    it literally doesn't need to steal your password

  46. Cynthia

    just change the user's password

  47. Goot the ticklegoblin!

    that assumes that the attacker has write access

  48. Cynthia

    even if the attacker has read access only, it's still a long way to go

  49. Cynthia

    (also the attacker needs write access to even affect the server's configuration)

  50. Cynthia

    if the attacker has the ability to affect the XMPP server and its behavior, they can already do what they need to do

  51. Goot the ticklegoblin!

    not necessarily

  52. Cynthia

    in what case?

  53. Trung

    xmpp do omemo and pgp so that's not the whole picture i think

  54. Cynthia

    if you have the ability to affect the code of the XMPP service or even the network

  55. Cynthia

    then do you really need to steal people's passwords at login?

  56. Goot the ticklegoblin!

    probably not

  57. Cynthia

    anyway i'd think SASL pubkey would be good for this

  58. Goot the ticklegoblin!

    it does depend upon what "affect the XMPP server and its behavior" means; technically, every interaction with a server affects it in some way (even in the trivial sense of "spends a few CPU cycles and bandwidth to route a message somewhere")

  59. Trung

    i think passwords or biometric should be hidden from service operator tho.

  60. Goot the ticklegoblin!

    that would be ideal

  61. Cynthia

    how would you hide them?

  62. Trung

    > anyway i'd think SASL pubkey would be good for this yes. agree very much to have a ssh log-in mechanism

  63. Trung

    don't get a shell obviously but for xmpp access

  64. moparisthebest

    >> SASL and scram certainly don't help with the "I don't trust TLS" threat model > ... that's what they were designed for With what threat model? "Sure the attacker can read all my messages, filter out the ones they don't want me to see, and inject any fake ones they like, but maybe they won't see my password !!!!!" Frankly that's the dumbest threat model I've ever heard

  65. Cynthia

    i doubt biometrics is as private as a password tbh

  66. Cynthia

    moparisthebest: at that point, go use tor or some network layer that has verifiable keys

  67. moparisthebest

    TLS is fine

  68. Cynthia

    then you wouldn't have to worry about malicious CAs or whatever

  69. moparisthebest

    Don't have to worry about malicious CAs with Dane and/or public key pinning

  70. Cynthia

    no browser will ever implement DANE (try to imagine who's been trying to "convince" browser makers)

  71. Cynthia

    therefore won't be widely implemented

  72. moparisthebest

    There are plugins (:

  73. moparisthebest

    Browsers used to implement public key pinning but removed it 😭

  74. Cynthia

    i think tor's strategy is much feasible because the public key IS the identity of the website

  75. Cynthia

    although this leads to a very long domain

  76. alexkurisu

    The concept of CA is the worst idea imaginable tbh

  77. alexkurisu

    The need to trust some random company to act fairly and not issue fake certs for my domains is laughable

  78. singpolyma

    Luckily dane lets us move past that as well. We have a lot of the tools we need to improve things a lot, it's just the slog of getting everything done takes time, but progress is happening

  79. moparisthebest

    > The need to trust some random company to act fairly and not issue fake certs for my domains is laughable Not some random company, thousands of them equally

  80. doge

    >> ... that's what they were designed for > With what threat model? "Sure the attacker can read all my messages, filter out the ones they don't want me to see, and inject any fake ones they like, but maybe they won't see my password !!!!!" Is this really the point of sasl? I always wondered what the point was.

  81. singpolyma

    No, that's unrelated to sasl

  82. singpolyma

    It's one sarcastic way to describe scram perhaps

  83. moparisthebest

    they really go together but sure

  84. singpolyma

    The point of sasl is to find out what kind of credentials he server accepts (password, token, certificate, oauth, etc)

  85. singpolyma

    > they really go together but sure I don't see how? You can use scram without sasl and sasl without scram. They only go together if you want them to

  86. moparisthebest

    both go into the "no reason to exist in 2025" bucket together 🙃

  87. singpolyma

    D Dhat

  88. singpolyma

    Lol

  89. singpolyma

    I think you just don't know what sasl is or something?

  90. singpolyma

    More reason to exist than ever since we keep adding new ways to authenticate

  91. doge

    ok, what's the point of scram then?

  92. singpolyma

    SCRAM is for if you use a password, it means if you get a MITM they still don't know your password and can't authenticate as you for a second connection (or on another service if you reuse passwords like most do). If you use scram-plus (with TLS 1.3) then it also means authentication will completely fail if there is an MITM so the MITM will fail and no session will be established and they get nothing.

  93. singpolyma

    Eventually this will be replaced with OPAQUE which has those same properties but also prevents the server from ever knowing your password to begin with

  94. hello!

    So if XMPP uses XML, and Matrix uses JSON... but JSON is more compact & simple.. then why is XMPP faster or performs better than Matrix?

  95. edhelas

    Because it's not linked to that

  96. hello!

    what is the performance reason?

  97. theTedd

    The big difference isn't the way the protocol is transferred, but in that Matrix requires everyone to copy everything-everywhere-all-the-time

  98. hello!

    ohh, so like in this group chat, it would have to go to all of your home servers

  99. wgreenhouse

    also a markup being "simple" as in lacking of syntax doesn't relate to implementing a library being "simple"

  100. edhelas

    French is a simple language, it only uses the latin alphabet and a few other punctuation points :p

  101. Cynthia

    XMPP in general is designed better than Matrix

  102. Cynthia

    everytime i use Matrix, it feels like it's held together with duct tape

  103. Cynthia

    even Discord (the platform i hate the most) is designed better than Matrix

  104. bodqhrohro

    Which clients support x-roomuser-item so I can test it?

  105. theTedd

    (Reserved nicknames) I'd assume you just need a server with support, not another client?

  106. bodqhrohro

    > 2025-05-14T15:45:49Z - theTedd: > The big difference isn't the way the protocol is transferred, but in that Matrix requires everyone to copy everything-everywhere-all-the-time And it's worth it, HSs might eventually die, the history remains. This is merely a concern for XMPP only because: 1) the dominating E2EE is OMEMO with PFS, which makes MAM useless for long-term storage; 2) most servers have quite limited MAM storage time anyway. While that, Matrix rooms live quite well for years and remain preserved.

  107. bodqhrohro

    > 2025-05-14T16:00:45Z - theTedd: > (Reserved nicknames) I'd assume you just need a server with support, not another client? I'm looking for implementing it in my component, and thus I need a client to test it (if it's worth to be implemented at all).

  108. bodqhrohro

    > 2025-05-14T16:00:45Z - theTedd: > (Reserved nicknames) I'd assume you just need a server with support, not another client? > merely * barely

  109. bodqhrohro

    Okay, Exodus seems to, why didn't I ever see it, huh.

  110. bodqhrohro

    And Converse.JS, and Tigase, and Vacuum which installation is broken now because I removed Qt4 from my system. Meh.

  111. wgreenhouse

    jabber.el does it but not with a UI such that you'd notice unless you knew to look ("Register with service" directed at whatever conference component's jid)

  112. wgreenhouse

    which pops up a dataform to register a nick

  113. hello!

    I appreciate everyone giving me solid insight into Matrix's failure. I try to convince people to use XMPP, but they keep talking about SimpleX. Do you guys have an opinion on SimpleX?

  114. Cynthia

    SimpleX is pretty nice

  115. Cynthia

    it's like Signal but fully open-source, no telephone number, etc.

  116. wgreenhouse

    it seems overall positive, only negative thing I've seen documented is that it defaults you onto a public server with content filtering

  117. wgreenhouse

    there are many independent servers operated by others, though

  118. Cynthia

    content filtering?

  119. wgreenhouse

    Cynthia: yes, they supposedly have some kind of irreversible hash to take down forwarded copies of content that's been reported to them as illegal

  120. wgreenhouse

    and apply this across the servers run by the dev team

  121. Cynthia

    how is that even possible

  122. theTedd

    `if (content_reported_as_illegal) { take_it_down(); }`

  123. Cynthia

    i mean like, i assume by forwarding, the client will reencrypt the content with its own key

  124. Cynthia

    causing a different hash

  125. hello!

    Is this true only for public group chats, or if someone is reporting a given URL user

  126. Cynthia

    it doesn't make sense

  127. Cynthia

    unless it's a client-side thing

  128. theTedd

    They provide the client, so it's enforceable as long as everyone is using that

  129. hello!

    But this is only for public groups?

  130. Cynthia

    https://simplex.chat/blog/20250114-simplex-network-large-groups-privacy-preserving-content-moderation.html

  131. Cynthia

    apparently if someone reports illegal (encrypted) shit stored on their file servers, they look into it and then wipe out the files from their servers if it's valid

  132. Menel

    But how do they validate it the report is not a fake?

  133. Cynthia

    the user gives them a group link

  134. halscode

    > The big difference isn't the way the protocol is transferred, but in that Matrix requires everyone to copy everything-everywhere-all-the-time it's the federation & storage models, rather than the data model

  135. hello!

    > `if (content_reported_as_illegal) { take_it_down(); }` but this code is in the client? Why can't they just kill it on the dev's server? who cares if you downloaded it locally

  136. hello!

    > it's the federation & storage models, rather than the data model ok thank you!

  137. hello!

    What advantage does XML give XMPP? radically different clients can communicate?

  138. Menel

    It is just what was around the time it got invented and works for the goal

  139. Menel

    Easy to make the eXtention in xmpp with it

  140. doge

    > What advantage does XML give XMPP? radically different clients can communicate? none

  141. bodqhrohro

    How do I avoid repeating the last message history when rejoining a MUC? The have the same IDs, I also added XEP-0359 tags, and nevertheless it doesn't help, they're repeated in clients on every reconnect.

  142. hello!

    Would XMPP ever switch to JSON?

  143. singpolyma

    Would need to be not just JSON. But also no

  144. bodqhrohro

    > 2025-05-14T20:18:11Z - hello!: > Would XMPP ever switch to JSON? BOSH exists, why also not. (doesn't such a mapping even exist already?)

  145. Menel

    It's kind of possible. There is a fun xep and a real xep

  146. Menel

    It's only not actually beeing better at anything as far as I heard.

  147. Menel

    So no reason to bother

  148. theTedd

    > How do I avoid repeating the last message history when rejoining a MUC? The have the same IDs, I also added XEP-0359 tags, and nevertheless it doesn't help, they're repeated in clients on every reconnect. https://xmpp.org/extensions/xep-0045.html#enter-managehistory You can indicate how much history you'd like to receive

  149. bodqhrohro

    > 2025-05-14T21:10:56Z - theTedd: > https://xmpp.org/extensions/xep-0045.html#enter-managehistory > You can indicate how much history you'd like to receive History-sender wise, I mean. The client cannot even know if new messages appeared or not.

  150. bodqhrohro

    > 2025-05-14T21:10:56Z - theTedd: > https://xmpp.org/extensions/xep-0045.html#enter-managehistory > You can indicate how much history you'd like to receive History sender-wise, I mean. The client cannot even know if new messages appeared or not.

  151. theTedd

    The client can know how long they were disconnected and request "the last 385 seconds"; arguably the server also knows that if they track members; but generally the server shouldn't care - the client asks for what they need, which is often 0 is they use MAM instead

  152. theTedd

    The client can know how long they were disconnected and request "the last 385 seconds"; arguably the server also knows that if they track members; but generally the server shouldn't care - the client asks for what they need, which is often 0 if they use MAM instead

  153. bodqhrohro

    > 2025-05-14T21:20:57Z - theTedd: > The client can know how long they were disconnected and request "the last 385 seconds"; arguably the server also knows that if they track members; but generally the server shouldn't care - the client asks for what they need, which is often 0 if they use MAM instead MAM is not supported there, and clients might know about that if they query features.

  154. theTedd

    So then they should request what they need, and yes that may mean some overlap with what the already have

  155. theTedd

    So then they should request what they need, and yes that may mean some overlap with what they already have

  156. bodqhrohro

    > 2025-05-14T21:22:46Z - theTedd: > So then they should request what they need, and yes that may mean some overlap with what they already have The problem is that they dealt with such overlaps somehow. I used Jabber MUCs actively on a poor connectivity with frequent reconnects in early 10s, before MAM was introduced, and good clients avoided the history reduplication, even though they were getting the same number of messages every time. Did it get worse since that and they rely on MAM more now?

  157. theTedd

    Either they receive the duplicate messages and filter them out (so they're not displayed to the user), or they request "messages since time I disconnected"

  158. theTedd

    (better: "messages after last message I received")

  159. bodqhrohro

    Pff, indeed https://dev.gajim.org/gajim/gajim/-/commit/d7c0852f9498bab03230af4c0b9e1905920bf1f6

  160. bodqhrohro

    O\

  161. theTedd

    That's unfortunate

  162. bodqhrohro

    There's a fallback at least, just need to support timestamps too then https://dev.narayana.im/narayana/anotherim/blame/branch/master/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java#L3346

  163. bodqhrohro

    But what to do with Gajim then, meh. Some server-side database only then.

  164. bodqhrohro

    I'm afraid to implement a complete MAM support yet, as some clients might trigger a full history retrieval and thus induce rate limits or even bans.

  165. bodqhrohro

    (some old versions of Dino behaved this way, possibly even still relevant)

  166. theTedd

    Just because they request it, doesn't they have to receive it (or that it's even available)

  167. bodqhrohro

    Actually, yay, a limit might work there.

  168. theTedd

    Just because they request it, doesn't mean they have to receive it (or that it's even available)

  169. bodqhrohro

    There's a limit for the !history command anyway too already, no more than 1000 last messages.

  170. bodqhrohro

    It still might have unwanted side effects though, for example, ruining the edit history preservation (as old messages might get overwritten with their newest versions when MAM is fetched).

  171. theTedd

    If there is limited history then there will be holes and missing messages - there's no way around that. Arguably, if a message edits a missing message, you can just throw it away

  172. bodqhrohro

    Eh, but if so, why would Gajim show duplicates of the messages with the same id and even the same stanza-id in the first place though.

  173. theTedd

    🐞

  174. bodqhrohro

    > 2025-05-14T21:44:03Z - theTedd: > If there is limited history then there will be holes and missing messages - there's no way around that. Arguably, if a message edits a missing message, you can just throw it away I mean that editing existing messages might actually be unwanted.

  175. theTedd

    If messages can be edited then existing messages are already edited?

  176. bodqhrohro

    > 2025-05-14T21:46:49Z - theTedd: > If messages can be edited then existing messages are already edited? See, historically, edits on Telegram side were reflected as separate messages. Which might be useful for "preserving important conversations"™. I still keep an option for that, and also I still use this approach for editing non-last messages all the time (as XEP-wise it would be an UB, even though some clients already support this). When ids were introduced, I just set the Telegram ID for usual messages (even though it violates the unpredictability), and an e-prefixed ID for edits. With mapping IDs this way via MAM, there appears a chance than messages already recorded by a client might get overwritten even with this option.

  177. theTedd

    Is a double-edited message ee-prefixed?

  178. theTedd

    Is there a reason not to use random IDs?

  179. bodqhrohro

    > 2025-05-14T21:57:11Z - theTedd: > Is a double-edited message ee-prefixed? Nope, and that's a downside actually. It would ruin stanza-ids, need to think about it now.

  180. bodqhrohro

    > 2025-05-14T21:57:27Z - theTedd: > Is there a reason not to use random IDs? Ease of message mapping merely. There's a database for origin IDs anyway already, but it's not something to be relied upon really.

  181. bodqhrohro

    Earlier there was no id at all, I introduced it specifically for the reason of parsing. Might introduce some random attachment indeed though which can be predictably cut off.

  182. theTedd

    Message stanzas don't mandate IDs, but obviously modern features rely on them now

  183. bodqhrohro

    BTW, how does MAM deal with replaced messages currently? Different versions of a message might come on different fetches? AFAIR, I specifically commented out the code for preserving an id of the message replacement, as it turned out that it's not needed and further replaces still use the original ID.

  184. bodqhrohro

    > 2025-05-14T22:05:09Z - theTedd: > Message stanzas don't mandate IDs, but obviously modern features rely on them now I wonder if it's an acceptable idea to leave some messages without stanza-id if the chat announces them.

  185. lovetox

    you need to store all message ids, original and corrections, we discussed this on the list lately

  186. theTedd

    MAM just replays all of the messages in order (without replacing) - 'replacement' is done by the receiving client (keeping edit history is a desirable feature)

  187. lovetox

    for example reactions, retractions, moderations etc can reference message ids, and they are not necessarily reference always the original message id

  188. Dollabilliondadon

    I am having trouble loading btc it keeps canceling on the site.