Modern XMPP project discussion - 2022-01-20


  1. Azeez

    Hi, how can I implement view once functionality with XMPP?

  2. MattJ

    Azeez: this is not really a protocol thing

  3. MattJ

    To be honest it's not really a computing thing, there is no 100% secure/correct way to implement "view once"

  4. MattJ

    Snapchat for example has many ways to bypass their functionality

  5. MattJ

    And all the attempted restrictions are implemented in the app. For example, display the message, then delete it... simple. Android had an API for apps to disable screenshots, I assume iOS has similar. On desktop... good luck.

  6. jonas’

    no, not good luck

  7. jonas’

    the worst of luck, actually

  8. jonas’

    we don't need no more DRM

  9. pep.

    ^ this

  10. MattJ

    But all these are app things, not protocol things. The most you'll potentially want from the protocol is a way to indicate that this "view once" functionality should be enabled for a given message, there's no standard for that (nor much interest in one AFAIK) but it's trivial to add it yourself

  11. jonas’

    (regarding the screenshot or screencast stuff… if both parties consent to the removal of a message from the client after reading, that's ok; but don't introduce APIs to prohibit desktop-wide things, that's just dangerous)

  12. pep.

    There's probably interest in it, given how many proprietary apps use XMPP, just that they probably don't care submitting it

  13. jonas’

    I seem to recall it was even rejected once

  14. pep.

    heh

  15. jonas’

    message expiry or so?

  16. pep.

    I don't know about this one. I know about ephemeral messages but I guess (hope?) that's not what you're talking about

  17. MattJ

    That's the one I think of

  18. pep.

    It's not the same goals to me :x

  19. pep.

    It's about the same signaling for sure

  20. MattJ

    What's the difference?

  21. pep.

    The goal is to "prevent" cops to access the message in the device, not the user. (Note the quotes)

  22. Zash

    FDE?

  23. pep.

    That's one more thing sure

  24. pep.

    (FDE is close to FDO in French, which means Force De l'Ordre, i.e., cops :p)

  25. jonas’

    pep., but that's still a product, not a protocol, thing

  26. pep.

    Anyway it's definitely not bulletproof, but it didn't really hurt I think. It's not the same as DRM to me in goals. In the end surely the user also didn't have access to the message anymore, but that's a strong they can change themselves (before the expiry of the given message of course), which a view once app probably wouldn't allow?

  27. pep.

    jonas’: agreed. Wiring is about the same

  28. pep.

    Well both parties need to agree on something so yes there is protocol

  29. pep.

    Typically Signal allows changing the delay by all parties in the chat.

  30. pep.

    That's a thing* they can change themselves

  31. pep.

    Completion.

  32. pep.

    fwiw you have me doubt now about the thing being DRM. I still think I want to disagree

  33. MattJ

    Of course, DRM is bad

  34. MattJ

    But Signal is based on SGX 😄

  35. jonas’

    pep., as soon as it starts preventing screenshots or so, it is exactly what DRM software (think netflix) wants.

  36. pep.

    MattJ, :(

  37. pep.

    Yeah that's definitely not what I have in mind for the ephemeral thing

  38. pep.

    Just messaging getting out of logs at some agreed delay

  39. pep.

    Just messages getting out of logs at some agreed delay

  40. MattJ

    C now has local options for preventing screenshots and deleting messages after a certain amount of time

  41. MattJ

    Seems you just want signaling for this

  42. pep.

    I don't want to prevent screenshots :x

  43. MattJ

    Do you want to prevent someone permanently storing history?

  44. pep.

    I want to change defaults really

  45. jonas’

    defaults for what?

  46. pep.

    I don't want defaults to be "store everything forever"

  47. jonas’

    I want them to be exactly that

  48. jonas’

    I'd be furious if I found out after a year that poezio rotated logs away

  49. pep.

    You'll be able to set that if you want

  50. jonas’

    but store everything forever has been the default forever, changing it will break expectations badly.

  51. pep.

    If it's provided with a UI..

  52. jonas’

    "first start" UI type of thing would work

  53. Zash

    fork, call it privacyezio, store logs on encrypted tmpfs

  54. pep.

    "hey you can set messages to disappear in xxx" "your contact has set messages to disappear in xxx" "no way, I don't want that" "your contact has set messages not to disappear"

  55. MattJ

    pep.: so product not protocol then. Slight tweak to C is all that's needed.

  56. pep.

    MattJ: there is protocol in what I just sent

  57. jonas’

    is modernxmpp about protocol or product? :)

  58. pep.

    Both clients need to be aware of the value set by one user

  59. Zash

    `<{please-delete-my-messages}after t=xs:integer/>` 🤷️

  60. pep.

    That

  61. jonas’

    put it into presence?

  62. Zash

    But as we all know, you can't truly know that it will be enforced

  63. pep.

    Zash: sure sure

  64. pep.

    I think it doesn't matter

  65. Zash

    jonas’, itym `<{disco#info}feature var='I promise I will respect your retention policy'/>`

  66. pep.

    Most people won't edit their client and that's fine by me

  67. Zash

    s/edit/install something other than your Conversations fork/

  68. pep.

    Whatever

  69. Zash

    Tho with mutual feature advertising, you could in theory at least say "this contact might keep your messages longer than expected, don't tell them your secrets"

  70. Zash

    EXCEPT that's dead, thanks to MAM and carbons and offline messages 🙁

  71. Zash

    Can't have nice things

  72. pep.

    The point is not to have messages on disk anymore

  73. pep.

    I'm not personally set on dis/allowing mam if that's set, but that's a question to be asked for sure

  74. jonas’

    do we need activistxmpp@?

  75. pep.

    Don't we have it already :)

  76. jonas’

    many things you describe sound terrible for the average user I know.

  77. jonas’

    do we?

  78. pep.

    It doesn't for me

  79. jonas’

    you're an outlier in my sample set.

  80. jonas’

    hence, the word average :)

  81. Zash

    or did you mean mean user?

  82. pep.

    I also have "average" users around me

  83. jonas’

    Zash, I even mean median user

  84. Zash

    don't be mean

  85. Zash

    😛

  86. jonas’

    :P

  87. pep.

    Who apart from nerds go check their 6-months old logs anyway.. most users don't even know they still have them

  88. jonas’

    not 6 months, but a few years I have seen to happen

  89. jonas’

    my wife is still very sad about the loss of her ICQ logs from a decade ago on a broken disk drive

  90. pep.

    Well if she has expectations then she could just not opt-in (or opt-out depending on the client)

  91. jonas’

    are we back to: 09:27:17 jonas’> "first start" UI type of thing would work

  92. pep.

    It could be added to a wizard but that's not how I'm seeing it

  93. pep.

    Also presence, I'm not sure. Values can be different per cha

  94. pep.

    Also presence, I'm not sure. Values can be different per chat

  95. jonas’

    pep., how else?

  96. jonas’

    there's expectations [where you know that they might not be fulfilled] and expectations [where they seem so normal to you that you don't even consider them to not be fulfilled]

  97. pep.

    Not sure I understand

  98. Zash

    Schrödingers logs. People want them available everywhere but stored nowhere.

  99. jonas’

    pep., I expect poezio to store logs forever, but the thought that it might not do that by default would not have crossed my mind when I set it up.

  100. jonas’

    so I would never have searched for an "archive everything forever" switch

  101. jonas’

    and I would be very angry when I needed to look at something weeks/months/years later

  102. Zash

    poezio logs?

  103. jonas’

    (using poezio as a random exampe here; same holds for any other client)

  104. Zash

    As someone who rotates between clients, those logs, if they exist, are going to be useless and full of holes

  105. pep.

    jonas’: I wouldn't start with a value set fwiw. You'd be free to set it, or to unset it if a contact sets it in a chat

  106. pep.

    And you'd be advertised that it is being set of course

  107. pep.

    The feature would be there and available

  108. pep.

    I always think the biggest hurdle when trying to add a feature is nerds, really :x

  109. pep.

    (me included for sure)

  110. jonas’

    pep., you talked about changing defaults eariler

  111. jonas’

    pep., you talked about changing defaults earlier

  112. jonas’

    that's what I was referring to

  113. jonas’

    I don't care about additional non-default features, go ahead

  114. pep.

    That would come in its time, in some circles

  115. pep.

    If enough people use that

  116. pep.

    Still I would like conversations to not default to "never" delete logs, even setting it to 6 months would be nice..