jdev - 2023-08-02


  1. lovetox

    about occupant-id calculation

  2. lovetox

    real jid + room jid + secret, should work?

  3. lovetox

    and the secret does not need to be per room, it could be one secret for the whole server

  4. pep.

    lovetox, it could be, but then IDs would be the same if a room is destroyed and then recreated and occupied by different users

  5. pep.

    (or the same users, it doesn't actually matter)

  6. lovetox

    hm not sure this is a problem?

  7. lovetox

    you are still not able to find out from the hash the real jid, it does not matter how often you recreate the room

  8. Zash

    room destroyed, recreated by new owner, who could then verify a occupant-id→jid relation

  9. pep.

    lovetox, how do you find the jid from the hash?

  10. pep.

    I mean technically a server could do occupant-id == jid, but I doubt anyone is going to do this

  11. lovetox

    pep., that would be very bad and a violation of the xep

  12. lovetox

    > Additionally, a MUC service SHOULD generate the identifier such that the occupant identifier of a user in one room of the service does not match the occupant identifier of the same user in another room of the same service.

  13. pep.

    Ok but that wasn't my question

  14. pep.

    I was trying to understand your message

  15. lovetox

    the goal of the xep is to have a anonym identifier, recreating the room, makes the identifier not less anonym

  16. lovetox

    so why would it need to change?

  17. lovetox

    Zash, your argument i would counter with, a new owner sees the real jid anyway, he does not need to unmask occupant-id

  18. pep.

    Yet another thing that should be removed :(

  19. pep.

    I don't understand why room owners/moderators need to see real jids

  20. moparisthebest

    > real jid + room jid + secret, should work? Why not just generate it randomly though

  21. lovetox

    per room?

  22. moparisthebest

    > I don't understand why room owners/moderators need to see real jids To ban them across other rooms right? :)

  23. moparisthebest

    > per room? Yes

  24. lovetox

    yes of course this would be even better, my question was about the minimal necessary impl

  25. pep.

    moparisthebest, I only need the nick for this, and it's easy enough to see it's the same person

  26. moparisthebest

    Not necessarily, and especially not enough to add to rtbl

  27. pep.

    I guess I'd be ok for something like a rtbl to require operator intervention

  28. singpolyma

    You can't prevent muc service from seeing jid unless you use anonymous JIDs of some kind

  29. pep.

    singpolyma, yeah, occupant-ids :)

  30. Zash

    > yes of course this would be even better, my question was about the minimal necessary impl 1. Generate a random secret per room 2. HMAC(occupant real JID, room secret) 3. ??? 4. PROFIT!

  31. pep.

    (Even though I agree that's not perfect, it's not addressable etc.)

  32. singpolyma

    pep.: No, occupant id is just a new privacy leak for non moderators in semi-anon rooms. Does nothing for what the service itself sees

  33. Zash

    pep., imagine a flag you set when you join that swaps the occupant id and the nickname

  34. lovetox

    good news, ejabberd implemented a first draft of occupant-id

  35. pep.

    Zash, not sure I understand. Actually same for singpolyma

  36. singpolyma

    pep.: occupant id provides more info about room participants to all other participants. It is a privacy leak vs not having it

  37. Zash

    pep., in the future, we could use do an opt-in thing that makes occupant JIDs be room@muc.host/occupant-id, via a flag you set in your join presence

  38. singpolyma

    The room service still must see the jid with or without occupant id

  39. Zash

    then we can slowly move to that being the default

  40. pep.

    Zash, ok yeah. That's a discussion I'd be happy to have. (I don't want these defaults but the direction is somewhere around there)

  41. pep.

    singpolyma, yes the room service still sees it, but that's server operator level, not any moderator

  42. singpolyma

    Zash: yes, that's a very interesting direction for sure. I'm already sending user nickname in muc presence along similar thoughts

  43. lovetox

    and how is the nickname communicated ?

  44. Zash

    XEP-0172 probably

  45. pep.

    <nick/>

  46. lovetox

    how does a nickname change work then?

  47. singpolyma

    New presence with new <nick>

  48. lovetox

    you can write a new muc xep :)

  49. Zash

    you probably send a new stanza with a new nick

  50. Zash

    and then ever so slowly we turn MUC into MIX without anyone noticing!

  51. pep.

    lovetox, it doesn't really deviate from MUC fwiw, that's just an improvement on it

  52. pep.

    Like the many other MUC extensions

  53. pep.

    That every one rediscovers every so often after having praised MIX because it did it and not MUC

  54. pep.

    singpolyma, I'm not dead set on occupant-id fwiw, an id that contains less info is also good to me :)

  55. lovetox

    there aremany flows in muc that depend on the nickname

  56. moparisthebest

    Isn't random per room much easier than anything with hmac or anything else at all?

  57. lovetox

    it would be a pretty huge extension, that you even need to make backwards compatible

  58. Zash

    eventually we'll have a pile of MUC extensions that effectively turn it into MIX, and then moving to MIX might be easier.

  59. lovetox

    no then it becomes even less likely

  60. lovetox

    the problem with nobody moving to mix, is cost/benefit

  61. pep.

    I agree with lovetox :P

  62. lovetox

    make MUC more like MIX and this ratio gets worse

  63. lovetox

    > I agree with lovetox :P i screenshot that

  64. moparisthebest

    > I guess I'd be ok for something like a rtbl to require operator intervention pep.: The main contributor to rtbl is a muc hosted on a server without the server operator being involved at all :P

  65. pep.

    Maybe that's an issue? Dunno

  66. badlop

    Generate a random secret per room <-- why per room and not simply for the whole server deployment?

  67. moparisthebest

    badlop: because then a user can identify the same user across rooms

  68. moparisthebest

    This isn't IRC where 1 user is the same across all rooms on a server

  69. Zash

    > room destroyed, recreated by new owner, who could then verify a occupant-id→jid relation ↑

  70. pep.

    moparisthebest, the MUC jid is generally included in there too, so it's not the same id across all the service

  71. badlop

    aha! ok

  72. pep.

    moparisthebest, the MUC jid is generally included in there too, so it's not the same id across the service

  73. Zash

    where "new owner" would be someone who was previously not allowed to see the real jid

  74. moparisthebest

    How does a client detect it's a "new room" with a new owner?

  75. Zash

    they're suddenly the owner of it

  76. pep.

    They don't have the same occupant-id? :x

  77. pep.

    They've received a <destroy/> payload before for this room

  78. moparisthebest

    Clients could also just regenerate occupant-id every so often, and on every nick change at least

  79. Zash

    On the other hand, one could just prevent rooms from ever being recreated, solves a bunch of problems.

  80. moparisthebest

    > They've received a <destroy/> payload before for this room And on that

  81. Zash

    Clients don't generate occupant-id?

  82. Zash

    MUC does

  83. pep.

    And their client hasn't registered it and is still rejoining the room

  84. moparisthebest

    What's lovetox talking about generating then

  85. Zash

    Didn't someone wonder just the other day why a room they destroyed was suddenly populated by new users and new owner?

  86. lovetox

    moparisthebest, i was interested for the server impl

  87. moparisthebest

    Aaahhhh

  88. lovetox

    because i wanted to support badlop in implementing this for ejabberd

  89. Zash

    MUC rooms has configuration options, which would presumably be as persistent as the room. Easy enough to stick a hidden config option with the per-room secret there.

  90. lovetox

    yes Holger had the same idea, and i proposed it

  91. lovetox

    this would make it very stable, and survives, restore procedures, and moving to other machines etc, as long as you backup your database