jdev - 2020-05-05


  1. Yagizа

    larma, everything's working so far. But I have further questions.

  2. Yagizа

    larma, are there any suggestions about trust management? I don't really understand how to implement it within OMEMO, if Signal Protocol trust management mechanism is not recommended.

  3. Yagizа

    larma, what about "kex" atribute of "key" element? Now I just treat it as a replacement for "prekey" attribute in old versions of OMEMO. Is that correct?

  4. larma

    Yagizа: Yes kex is what prekey was before. For trust management, you should probably realize an implementation of BTBV https://gultsch.de/trust.html

  5. jonas’

    BTBV, the UX nightmare

  6. larma

    jonas’: why?

  7. jonas’

    larma, "hey scan my QR code, that’s going to be faster than typing a JID" -- and now you have to verify all future keys of that contact

  8. jonas’

    this is a hyperbolic example of the (for the user) non-obvious implications in BTBV

  9. larma

    Well... that's just an issue of Conversations

  10. larma

    It's not an inherent issue of BTBV

  11. larma

    The verification step should always be visible to the user and also users should be able to reenable blind trust if it wasn't their intent to disable it when verifying a device

  12. larma

    Just look at how Dino did it ;)

  13. flow

    isn't that just the good old question of where the sweet spot between security and UX is?

  14. jonas’

    yes

  15. jonas’

    it is

  16. jonas’

    though the BT in BTBV is also a security nightmare :)

  17. Yagizа

    larma, ok, thanx.

  18. flow

    and the answer is probably: it depends on what you want, there is not that one single sweet spot

  19. jonas’

    BTBV is IMO an attempt to have the cake and eat it, which doesn’t quite work

  20. larma

    UX secret: don't pop up with a new window to verify fingerprint when sending a message and then automatically close it when blind trust is enabled.

  21. jonas’

    UX secret: don’t pop up a window

  22. jonas’

    UX secret: don’t pop up a window (unless in response to an action of the user)

  23. larma

    jonas’: but the user pressed send :D

  24. Ge0rG

    Chromium always pops up the "do you want to sign in" popup when I open a random twitter link. I *HATE* it

  25. jonas’

    yeah, that was a stab at pidgin which’ll spam me with fun popup windows on some kind of spam

  26. Yagizа

    larma, BTW, what about fingerprints? Do I have to change something in fingerprint generation algorithm? Or should I use the same, used with old version?

  27. larma

    Yagizа: you just have to make sure you are generating the fingerprint from the curve25519 and not the ed25519 key

  28. Yagizа

    larma, and how can I get that curve25519 key?

  29. Yagizа

    larma, ratchet_identity_key_pair_get_public() will return ed25519 key when v4 is used, right?

  30. larma

    All `ec_public_key` are now both ed25519 and curve25519 public keys

  31. larma

    If you used `ec_public_key_serialize()` before to generate the fingerprint (by removing its first byte) it should still work

  32. larma

    You can also directly get it using `ec_public_key_get_mont()`

  33. larma

    Yagizа: Also note that in the bundle that is stored on pep, you should now use the ed25519 key (which you get by `ec_public_key_get_ed`)

  34. larma

    Yagizа: Also note that in the bundle that is stored on pep, you should now use the ed25519 key in <ik> (which you get by `ec_public_key_get_ed`)

  35. Yagizа

    larma, ok, thank you!

  36. Yagizа

    larma, so, I should use ec_public_key_serialize() for fingerprint generation and ec_public_key_get_ed for getting data to publish in bundles?

  37. larma

    You can also use `get_mont` for fingerprints, it's the same as `serialize` just without the leading byte

  38. larma

    But yes, `get_ed` for bundles

  39. Yagizа

    larma, IC. So, I don't need ec_public_key_serialize() at all?

  40. Yagizа

    larma, and... how can I use IdentityKey, which I extract from bundles information? Now I just store it in local variable, but I don't see any use for it.

  41. Yagizа

    larma, should I somehow process it?

  42. larma

    Yagizа: Well you probably want to give the user the option to trust a key even before opening a session with it.

  43. Yagizа

    larma, IC. So, how can I get fingerprint from the ed25519 key, extracted from bundle data, received over XMPP?

  44. larma

    Yagizа, you can use `curve_decode_point` on the key from the bundle to get an `ec_public_key`

  45. Yagizа

    larma, ok, thanx!