jdev - 2025-06-10


  1. Schimon

    Good day. Would it be worth to revamp "rtv" to support XMPP? https://github.com/michael-lazar/rtv

  2. doge

    > 🦔 ejabberd The author must be slav

  3. bodqhrohro

    > 2025-06-10T04:59:49Z - doge: > > 🦔 ejabberd > The author must be slav > 📱 PDA And that too. Who else boycotts the merger of notions of "smartphone" and "PDA phone", and argues that modern "smartphones" are rather descendants of PDAs, while smartphones are dead? I'm still not sure where did the word «коммуникатор» come from. Possibly somehow related to French «PDA Communicant».

  4. bodqhrohro

    (and the word itself is also a result of a merge of notions, because it also means UMPCs akin to Nokia 9000 Communicator, which pioneered the class, along with the clamshell Star Trek Communicator. PDA phones somehow got merged into this class)

  5. doge

    > I'm still not sure where did the word «коммуникатор» come from. https://en.m.wikipedia.org/wiki/Communicator_(Star_Trek)

  6. bodqhrohro

    > 2025-06-10T07:53:11Z - doge: > > I'm still not sure where did the word «коммуникатор» come from. > https://en.m.wikipedia.org/wiki/Communicator_(Star_Trek) You missed the point, I wonder how did it start to denote PDA phones, even though this didn't happen beyond Slavic languages.

  7. badrihippo

    Is there a way to remotely invalidate an existing XMPP session?

  8. badrihippo

    Like I have client A logged in. Can I, through client B or some admin page, tell the server to close the existing connection with client A?

  9. raucao

    depends on the server. ejabberd has this: https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#kick_session

  10. badrihippo

    I see. That looks like an admin feature though. So there's no XEP that standardises a way for users themselves to do it?

  11. Goot the ticklegoblin!

    The server could implement it via XEP-0050

  12. singpolyma

    yup

  13. moparisthebest

    > Like I have client A logged in. Can I, through client B or some admin page, tell the server to close the existing connection with client A? Even if you had this client A will just automatically log back in no?

  14. wgreenhouse

    logging in to client b with the same account with the same resource kicks client a off, as well

  15. moparisthebest

    FAST has per client credentials so that could be a way to actually permanently log out another client

  16. singpolyma

    >> Like I have client A logged in. Can I, through client B or some admin page, tell the server to close the existing connection with client A? > Even if you had this client A will just automatically log back in no? usually. it depends what the reason you wanted this is

  17. badrihippo

    > FAST has per client credentials so that could be a way to actually permanently log out another client Yeah I was thinking FAST + "kick out the current session" to de-authorise a client

  18. badrihippo

    so "kick out the current session" is what I'm looking for

  19. badrihippo

    so that missing "kick out the current session" is what I'm looking for

  20. badrihippo

    > logging in to client b with the same account with the same resource kicks client a off, as well Oh lol I'd forgotten about that 😅️

  21. badrihippo

    There would be a fight though when A tried to log back right?

  22. singpolyma

    may or may not need to change password too even with fast, they may have password stored or just have it somehow

  23. badrihippo

    > usually. it depends what the reason you wanted this is Right now we were discussing what happens if a device is lost/compromised

  24. moparisthebest

    Then I'd definitely change pass and *then* kick them all

  25. badrihippo

    ("we" = some of us in Prav, not this room)

  26. moparisthebest

    Wondering if current FAST impls invalidate and/or kick existing sessions when pass is changed 🤔

  27. singpolyma

    hopefully changing pass kicks all sessions anyway

  28. badrihippo

    Ah, I should test that

  29. badrihippo

    > Wondering if current FAST impls invalidate and/or kick existing sessions when pass is changed 🤔 And tat

  30. badrihippo

    > Wondering if current FAST impls invalidate and/or kick existing sessions when pass is changed 🤔 And that

  31. badrihippo

    I wonder if it's worth mandating this in FAST (if it isn't already). I'd assume that if I'm invalidating a token, I'd implicitly want to invalidate existing sessions using that token as well (especially since this token is targeted to a specific device)

  32. moparisthebest

    sounds right for a token for sure is it right for the password though?

  33. singpolyma

    I don't think it's a spec issue since we're talking about out-of-band invalidation methods for after a device is lost

  34. moparisthebest

    Seems like a spec hole to have a way to issue but not revoke per-device tokens, does it not already support that?

  35. singpolyma

    it supports revoking your own token taht you auth'd with

  36. singpolyma

    but anything else is an account management issue so out of scope for an auth spec

  37. singpolyma

    and easily implemented with no spec at all

  38. moparisthebest

    isn't the only point of per-device tokens that you can revoke them when you no longer own/trust that device?

  39. moparisthebest

    100% of applications I've seen with per-device tokens support this

  40. singpolyma

    it's not the only point, but it's a useful part of the point yes. and there are implementations around this and even some xeps (or protoxeps?) around account management that also mention such things of course

  41. singpolyma

    other parts of the point include making 2fa possible and not storing passwords on device

  42. moparisthebest

    Now I'm curious if a compromised device can change the account password, kill other sessions, and fully take over the account 🙃

  43. singpolyma

    usually yes. that's always been the case

  44. singpolyma

    there are some efforts to make that less possible as well

  45. moparisthebest

    No way around it before FAST, but FAST should probably make it impossible

  46. badrihippo

    IIRC FAST doesn't define what the cliens logged in through that mechanism are allowed or not allowed to do?

  47. singpolyma

    well that's more of a session acl issue, but I agree it's something sasl2 makes easier at least since we can identify session now

    👍🏽️ 1
  48. badrihippo

    So it's as good as having a regular, fully-authenticated session

  49. badrihippo

    Unless we change other things as well

  50. badrihippo

    > A client can choose to invalidate a token before its expiry. > > For example, a client might implement a "log out" mechanism for people sharing a web browser or system. Explicitly invalidating the token with the server ensures that even if an unauthorized user managed to recover the token from the system, it would be useless. From the FAST XEP

  51. badrihippo

    But it seems to be only by the client itself, not remotely via other clients: > To invalidate the token, the client MUST successfully authenticate using the token as normal, but include an 'invalidate' attribute on the <fast/> element with a value of '1' or 'true'. > > Upon successful authentication with the 'invalidate' attribute set, the server MUST immediately invalidate the token and prevent its use for future authentication attempts. The server MUST NOT include a new token in the response (even if the token was due for rotation), unless the client also included a FAST <request-token/> element in its authentication request.

  52. badrihippo

    Also, > The client MAY close the stream after the server acknowledges successful authentication, or it MAY proceed with the session as normal. so there's no automatic logging out (which makes sense because so far the "logging out" action is being initiated from the client that's holding the token, not some other client, so it presumably knows what it wants to do

  53. singpolyma

    right. that's a different case than we're talking about here

  54. badrihippo

    Yeah

  55. singpolyma

    https://xmpp.org/extensions/xep-0494.html

  56. singpolyma

    or just ad hoc commands would be better, but this exists too

  57. badrihippo

    ~Would it make sense to have an XEP for logging someone out (maybe "FAST Token Management" which lets you see what other devices are logged in and also invalidate the ones you don't want)?~ I was just going to ask pose the above question but you might have answered it

  58. badrihippo

    > https://xmpp.org/extensions/xep-0494.html > If the identified client has previously authenticated with a password, there is no way to revoke access except by changing the user’s password. If you request revocation of such a client, the server will respond with a 'service-unavailable' error, with the 'password-reset-required' application error: That XEP has thought of everything!

  59. badrihippo

    Well not everything: I see it doesn't mandate the server close the existing stream as part of the revocation process. Or is that supposed to be implied? I'd be happier if it were made explicit

  60. badrihippo

    > or just ad hoc commands would be better, but this exists too But then each server could end up returning things differently right? Or are you saying that's fine

  61. badrihippo

    I suppose it's a way for the server to expose all that functionality without the client having to make changes

  62. singpolyma

    yeah. ad hoc means when the server implementation changes we're good. like a web app, etc. there's a reason so many people implement account management stuff in web app instead of in app but ad hoc fixes that

  63. badrihippo

    I wish there was some kind of augmented ad-hoc, i.e. it's standardised in a way that clients can use in specialised ways but also works as a regular ad-hoc commands as a fallback

  64. badrihippo

    The idea we were discussing for Prav is to log out the user as part of a trust revocation process (distrusting OMEMO keys through ATM, etc.) so it'd be better to have something more standard than ad-hoc for that

  65. badrihippo

    I think the pieces are there? For example Data Forms are already standardised to some degree in the sense you can assign semantic meaning to the different fields

  66. singpolyma

    > I wish there was some kind of augmented ad-hoc, i.e. it's standardised in a way that clients can use in specialised ways but also works as a regular ad-hoc commands as a fallback yes, this is done all the time

  67. singpolyma

    > The idea we were discussing for Prav is to log out the user as part of a trust revocation process (distrusting OMEMO keys through ATM, etc.) so it'd be better to have something more standard than ad-hoc for that why? why is ad hoc not enough for that?

  68. badrihippo

    How would we detect where to find the "log out other devices" ad-hoc command for whatever server we happen to be running on?

  69. wgreenhouse

    the node could still be in a standard place specified by a XEP

  70. wgreenhouse

    (which would also allow clients to implement only that, even if they don't have full ad hoc command support)

  71. badrihippo

    Is that what singpolyma meant by "this is done all the time"?

  72. badrihippo

    Can you give me an example of an XEP that does this?

  73. singpolyma

    https://xmpp.org/extensions/xep-0401.html

  74. singpolyma

    > How would we detect where to find the "log out other devices" ad-hoc command for whatever server we happen to be running on? Why do you need to detect that? You can't just show the list and the user can see it?

  75. badrihippo

    > https://xmpp.org/extensions/xep-0401.html Ohh nice

  76. badrihippo

    This changes things

  77. badrihippo

    > Why do you need to detect that? You can't just show the list and the user can see it? It was because the plan was to have a combined button saying "I don't trust this device" that triggers distrusting (through ATM) as well as logging out the user. So it's multiple things happening at once

  78. badrihippo

    But if it can be defined using ad-hoc commands like XEP-0401 does that'd be one way to solve it

  79. singpolyma

    why not have a command that does both those things?

  80. badrihippo

    Because ATM revocation happens client-side?

  81. singpolyma

    yeah

  82. singpolyma

    has to happen client side because you need to sign it or whatever right?

  83. badrihippo

    Yeah and then it's basically just a "X device doesn't trust Y key any more" that gets relayed to everyone else

  84. badrihippo

    As far as the server's concerned it's just another series of messages

  85. alexkurisu

    > > 📱 PDA > And that too. > Who else boycotts the merger of notions of "smartphone" and "PDA phone", and argues that modern "smartphones" are rather descendants of PDAs, while smartphones are dead? > I'm still not sure where did the word «коммуникатор» come from. Possibly somehow related to French «PDA Communicant». [Slight necroposting, yep] Modern smartphones are not, in fact, descendants of PDAs, as PDAs don't have cellular modem

  86. doge

    My laptop has a cellular modem as do many laptops today. Does that make my laptop not a descendant of laptops