jdev - 2023-08-25


  1. MSavoritias (fae,ve)

    Could SOAP be used instead of dbus for message passing?

  2. MSavoritias (fae,ve)

    or is it also xmpp directly?

  3. MSavoritias (fae,ve)

    i have heard that you can use also xmpp as dbus

  4. MSavoritias (fae,ve)

    also there is something called JOAP apparently

  5. moparisthebest

    Oh no I had nearly forgotten about SOAP, I only have a vague memory of pain

  6. singpolyma

    MSavoritias (fae,ve): there are several ways to do RPC with XMPP. XML-RPC, ad hoc commands, or custom iqs. Of course soap is also possible but that's never been specced I think?

  7. MSavoritias (fae,ve)

    there is soap over xmpp

  8. MSavoritias (fae,ve)

    but yeah was just curious. I have heard horrible stories about SOAP

  9. MSavoritias (fae,ve)

    :P

  10. singpolyma

    Properly deployed soap is honestly fine. It's just that like all enterprise tech, most of the stuff in the wild was poorly deployed

  11. singpolyma

    (fine if what you want/need is RPC of course)

  12. singpolyma

    These days they've renamed it graphql which is the same thing again with all new tech

  13. MSavoritias (fae,ve)

    ah classic

  14. MSavoritias (fae,ve)

    so reading through XEP-0402, if i want to make a p2p client with that i basically have to "fake" a server in my library don't I?

  15. moparisthebest

    For a P2P client you should just be running a whole server imho

  16. moparisthebest

    Details are up to you

  17. MSavoritias (fae,ve)

    well i dont want to write a server and strap it to my library though :P

  18. Zash

    embedded prosody?

  19. moparisthebest

    ^

  20. MSavoritias (fae,ve)

    that still straps a server next to the client. which also has a library. seems like duplication of resources

  21. MSavoritias (fae,ve)

    instead i could have a library

  22. MSavoritias (fae,ve)

    just the library

  23. moparisthebest

    XMPP s2s is p2p, so you want a server, you can write all this logic or use an existing server

  24. MSavoritias (fae,ve)

    s2s is server to server its in the name

  25. MSavoritias (fae,ve)

    but anyway. i will see for another xep i guess.

  26. Link Mauve

    You could write a mod_client in Prosody, which would make it into a client on its own. :D

  27. moparisthebest

    A client doesn't *have* to talk to a server over c2s it can do it's own thing there

  28. moparisthebest

    But for P2P XMPP you definitely want something that talks s2s externally

  29. singpolyma

    > You could write a mod_client in Prosody, which would make it into a client on its own. :D I think this exists, sort of

  30. moparisthebest

    A few probably, at least mod_rest or whatever

  31. singpolyma

    I think the LAN p2p xep is basically this, but relaxes s2s security stuff quite a bit due to trusting the local network

  32. singpolyma

    But yeah, I think depending on need "a whole server" makes it sound more complex than it is. It's just an authenticated XML stream, same as c2s

  33. singpolyma

    The real question is what happens when you're offline

  34. MSavoritias (fae,ve)

    for offline messages? gnunet supports offline messages at the transport layer between 1:1 on a DHT like i2pbote to my undrestanding

  35. MSavoritias (fae,ve)

    in group chats its an issue yeah

  36. moparisthebest

    I think the existing lan P2P xep was an interesting historical thing from the distant past where you didn't need encryption and could use local network discovery etc etc, but is pretty obsolete today

  37. MSavoritias (fae,ve)

    which needs to be solved anyway imo

  38. moparisthebest

    Today you just run a server and keep all the good stuff

  39. MSavoritias (fae,ve)

    fair but thats not what i asked :)

  40. MSavoritias (fae,ve)

    but point taken i cant use 0402 it seems

  41. moparisthebest

    > so reading through XEP-0402, if i want to make a p2p client with that i basically have to "fake" a server in my library don't I? I think it is :) whether you call it "fake" or not you need a "server"

  42. singpolyma

    I think the LAN p2p is still useful, but only on a lan of course. It's fun at conferences for example

  43. MSavoritias (fae,ve)

    moparisthebest, nope i dont :)

  44. pep.

    I'm not sure stuff like 402 is interesting though. As you'd have multiple servers (one per client) now, not one per account

  45. moparisthebest

    > I think the LAN p2p is still useful, but only on a lan of course. It's fun at conferences for example But why bother when it's even easier to just run a server

  46. Link Mauve

    singpolyma, not any more, because no one else is using it any more, because clients dropped support.

  47. singpolyma

    moparisthebest: I don't understand the difference

  48. Link Mauve

    moparisthebest, and ask everyone at the conference to configure their credentials for your server?

  49. moparisthebest

    To scan a qr code? Sure

  50. singpolyma

    > singpolyma, not any more, because no one else is using it any more, because clients dropped support. Clients drop support for lots of things, can always add it back

  51. moparisthebest

    Or pass it around via avahi or whatever, still way way easier than implementing that

  52. singpolyma

    So you're saying advertise real jid via avahi? IIRC the xep does have a provision for that. That requires internet and exposes your JID but you're correct neither of those is an obstacle for me generally

  53. moparisthebest

    No I mean like, Snikket invite over avahi

  54. singpolyma

    In case they don't have a jid?

  55. pep.

    Or MUC-token-invite :-°

  56. singpolyma

    pep.: Yes

  57. singpolyma

    Definitely a needed thing

  58. pep.

    Maybe an invite token can also be stuffed in there somehow for an account to be created

  59. pep.

    (If needed)

  60. moparisthebest

    That's kinda what Snikket already does, but yes

  61. pep.

    No, Snikket invites get you an account, period

  62. moparisthebest

    I mean it puts new accounts into the same muc no?

  63. pep.

    If you have one already you can't use it

  64. pep.

    Yeah it does, the new account

  65. singpolyma

    Snikket invites get you a new account optionally + add a contact

  66. singpolyma

    If you use the xmpp URI version

  67. moparisthebest

    Yes I agree though, it'd be nice to "here use this to join from your existing account or create a new one and join"

  68. MSavoritias (fae,ve)

    is https://xmpp.org/extensions/xep-0246.html advisable for implementation?

  69. MSavoritias (fae,ve)

    > XEP-0246: End-to-End XML Streams

  70. MSavoritias (fae,ve)

    i am asking because the serverless messaging is historical obviously

  71. techmetx11

    MSavoritias (fae,ve): what is serverless

  72. MSavoritias (fae,ve)

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

  73. MSavoritias (fae,ve)

    this ^

  74. moparisthebest

    > is https://xmpp.org/extensions/xep-0246.html advisable for implementation? Hmm well you need to come up with a good way to authenticate the connections, if you are talking client-to-client they don't have ways to generate certs each other can trust yet

  75. moparisthebest

    Sharing public key hashes over OMEMO or similar would work

  76. opal

    > well i dont want to write a server and strap it to my library though :P you could masquerade as a server and just not send client stanzas ever lol

  77. MSavoritias (fae,ve)

    > Sharing public key hashes over OMEMO or similar would work got it. thank you

  78. opal

    >XMPP s2s is p2p thanks for the laugh

  79. opal

    (genuinely laughed at that, its true but warping what p2p is supposed to entail)

  80. moparisthebest

    >>XMPP s2s is p2p > thanks for the laugh It's not a joke, it's literally p2p

  81. opal

    its s2s, we're peers, they're servers

  82. Zash

    servers are peers

  83. opal

    >Somebody who is, or something that is, at a level or of a value equal (to that of something else). ok strictly speaking, sure

  84. singpolyma

    And if the "server" protocol is spoken by a client it's literally p2p

  85. moparisthebest

    Each server creates and maintains a connection to each and every other servers, the exact definition of peer to peer

  86. moparisthebest

    Each server creates and maintains a connection to each and every other server, the exact definition of peer to peer

  87. Zash

    moparisthebest, pretty sure jingle has ways to share TLS pubkey/cert fingerprints for stuff like this

  88. opal

    well theres partial-mesh p2p as well thats mediated by something typically dht

  89. moparisthebest

    Hmm server discovery via dht you say? Intriguing...

  90. MSavoritias (fae,ve)

    there is https://xmpp.org/extensions/xep-0247.html

  91. MSavoritias (fae,ve)

    for jingle p2p ^

  92. opal

    > i am asking because the serverless messaging is historical obviously 0174 is finalised so i wouldnt say historical, just lack of support now because who the hell messes with mdns for messaging

  93. MSavoritias (fae,ve)

    agreed

  94. Zash

    anyone remember jingle nodes?

  95. opal

    i could see it useful in an organisational setting but typically corporations will be hosting a server anyway, so most use cases even for that are kinda meh

  96. moparisthebest

    > there is https://xmpp.org/extensions/xep-0247.html Rekt: > Note: It is STRONGLY RECOMMENDED to encrypt all end-to-end XML streams as described in Jingle-XTLS (currently located at <http://xmpp.org/extensions/inbox/jingle-xtls.html>). Those security flows are NOT described here.

  97. opal

    maybe when i go to my first DEF CON i'll advertise an xmpp ptr to their public wifi :>

  98. moparisthebest

    > i could see it useful in an organisational setting but typically corporations will be hosting a server anyway, so most use cases even for that are kinda meh And few organizations have everyone in the same building on the same network

  99. opal

    yeah thats true subnetting is a hurdle; so there you go, many things that break the illusion of serverless in the context of that xep

  100. Zash

    Meanwhile, using Slack to talk to the person sitting at the desk next to you

  101. MSavoritias (fae,ve)

    moparisthebest, gnunet is already encrypted on the transport level ;)

  102. MSavoritias (fae,ve)

    plus i can probably use https://xmpp.org/extensions/xep-0396.html

  103. MSavoritias (fae,ve)

    for jingle omemo

  104. opal

    zash: sorry to inform you but your browser is unsupported next month, we need to change random UI elements to confuse the hell out of you when you come back into the office

  105. Zash

    XTLS is one of those legendary things that were supposed to solve all problems, but somehow never got accepted?'

  106. MSavoritias (fae,ve)

    it seems interesting but tls is tied to DNS isnt it?

  107. MSavoritias (fae,ve)

    so useless to me

  108. opal

    wait like, tls over xmpp? what the fuck

  109. Zash

    MSavoritias (fae,ve), incorrect

  110. singpolyma

    No, TLS is unrelated to DNS mostly

  111. MSavoritias (fae,ve)

    ah

  112. MSavoritias (fae,ve)

    will take a look then :)

  113. opal

    man i still wish s/mime didnt fall on its face outside of business settings

  114. opal

    i still want an s/mime certificate

  115. MSavoritias (fae,ve)

    so that means i can also use RFC 7590 potentially. nice :D

  116. Zash

    Is that raw public keys?

  117. opal

    rfc 8823 already exists to issue s/mime over acme :<

  118. moparisthebest

    > Hmm server discovery via dht you say? Intriguing... Now I can't stop thinking about this

  119. opal

    moparisthebest, lol i missed that message sorry

  120. Trung

    >> Hmm server discovery via dht you say? Intriguing... > Now I can't stop thinking about this +1

  121. opal

    yeah lets just put dns inside the other protocol and call it something else and use kademlia thatll fix things :^)

  122. Zash

    > There is nothing in any of these standards that would > prevent me from including a 1 gigabit MPEG movie of me > playing with my cat as one of the RDN components of the DN > in my certificate. -- Bob Jueneman on IETF-PKIX

  123. Zash

    Not even X.509 is tied to DNS

  124. opal

    oh man i could pipe this over irc

  125. moparisthebest

    opal: https://www.bitlbee.org ?

  126. opal

    nah the cat mpeg

  127. Zash

    Web PKI is why everything is tied to DNS, and why we can't have nice things like XMPP-only certificates

  128. opal

    moparisthebest, i piped towel.blinkenlights.nl to irc before

  129. singpolyma

    >> Hmm server discovery via dht you say? Intriguing... > Now I can't stop thinking about this What's the advantage over DNS?

  130. MSavoritias (fae,ve)

    > Sharing public key hashes over OMEMO or similar would work specifically this https://xmpp.org/extensions/xep-0250.html

  131. MSavoritias (fae,ve)

    but with omemo

  132. moparisthebest

    >> Now I can't stop thinking about this > What's the advantage over DNS? Having thought about it for 2 minutes, it could be a solution for hosting XMPP servers securely without domain names or DNS without resorting to Tor

  133. singpolyma

    Isn't it the same as using Tor?

  134. moparisthebest

    tl;dr Tor .onion domains but over clearnet, pinned TLS without needing CAs or DNSSEC or DANE

  135. Trung

    >> What's the advantage over DNS? > Having thought about it for 2 minutes, it could be a solution for hosting XMPP servers securely without domain names or DNS without resorting to Tor Yes. Records will have similar advantage as a .torrent. It would be pretty cool

  136. singpolyma

    I would built atop an existing DHT or similar. Which in practise for this means ipfs or Tor probably

  137. singpolyma

    I would built atop an existing DHT or similar. Which in practise for this means ipfs or Tor probably

  138. opal

    ik tor is the first example to come to everyones head when thinking of "not dns" but it doesnt even use dht

  139. MSavoritias (fae,ve)

    ^

  140. Trung

    >> Sharing public key hashes over OMEMO or similar would work > specifically this https://xmpp.org/extensions/xep-0250.html > > but with omemo i'm experiencing some terrible omemo bug with Profanity atm... to the point i'm for now only using Conversation so not too sure on this one.

  141. moparisthebest

    Tor is great but the downside is it's a bit too slow for calls etc, doing something like this could give us the security of onion domains but over clearnet (and obviously lose the Privacy of Tor too)

  142. opal

    lets take a step back, we're talking about dht to essentially share ip addresses, right? why not just compare it to bittorrent at this rate

  143. MSavoritias (fae,ve)

    profanity doesnt care about omemo afaik. they push fox OX more

  144. opal

    profanity implements omemo and its one of the tui clients that does it reasonably well

  145. singpolyma

    moparisthebest: you don't need to send calls etc Traffic over Tor to use onion names

  146. opal

    pray tell how "onion names" are useful in any way here

  147. moparisthebest

    > lets take a step back, we're talking about dht to essentially share ip addresses, right? why not just compare it to bittorrent at this rate Basically yes, but they'd need signed etc

  148. singpolyma

    opal: p2p server naming if you don't want to use dns

  149. moparisthebest

    > pray tell how "onion names" are useful in any way here You want to set up a server but don't own a domain name

  150. singpolyma

    opal: p2p server naming if you don't want to use dns

  151. MSavoritias (fae,ve)

    but then why not use GNS which is also backwards compatible with DNS

  152. opal

    ok i dont think public-key hashes will help with supplanting dns

  153. opal

    you have my pubkey, how are you gonna connect to me, lol

  154. singpolyma

    That's what onion names are good at :)

  155. singpolyma

    Getting a connection out of the key hash

  156. singpolyma

    There are other equivalent solutions of course

  157. moparisthebest

    > you have my pubkey, how are you gonna connect to me, lol Getting your signed connection details from a dht

  158. opal

    i think you misunderstand that "onion names" are useless on their own, they leverage tor dirauths to actually look up the hidden service location within the tor network (well, its tunnels)

  159. singpolyma

    opal: that... Doesn't sound useless?

  160. opal

    moparisthebest, i can sign an ip address without even mentioning any aspect of tor

  161. opal

    singpolyma, tor's more centralised than you think, that's my point

  162. singpolyma

    Sure. I'm not sure if that matters or not

  163. opal

    well we can add a dirauth bootstrap to xmpp and start a committee to ban bad nodes off the network if thats what youre after

  164. singpolyma

    DNS is also less centralized that some people think. It all depends on goals

  165. opal

    i just think the tor metaphor is verrrrrrry naïve to use here

  166. singpolyma

    What metaphor?

  167. opal

    comparing dht to tor in the first place

  168. singpolyma

    They're both semi centralized lookup services for keys to metadata that can allow a connection

  169. opal

    look at its cousin, i2p, if you want something slightly closer to the goal here

  170. singpolyma

    I don't think we decided what the goal is

  171. opal

    but then the i2p thing breaks when you start thinking about its use of pet names and hosts files :)

  172. opal

    (i suppose you could call a JID a "pet name" and your roster your "hosts file" lol)

  173. singpolyma

    Anyway, my point was just that DNS can probably be made to work in most cases and when not there are a bunch of existing solutions depending on goals. I don't think we need to invent or spec anything

  174. opal

    i mean, all this discussion is useful especially if we start talking about encrypted layer-3 transits such as cjdns, yggdrasil, even some vpn like dn42 or anonet

  175. opal

    well the latter still require tls for transit encryption nvm

  176. opal

    former two are perfect examples though, everyone can "directly" (i.e. no nat bullshit) connect to everyone else in the network, encrypted and verified by the ip address (pubkey) alone

  177. moparisthebest

    If you have public-key-is-your-IP like cjdns you don't need DNS or TLS or discovery at all

  178. opal

    yeah

  179. opal

    well, discovery?

  180. opal

    how do you know 202:8478:47ac:3fff:177c:a994:51e4:9c55 has any xmpp resources attached without either asking me or scanning the whole network

  181. singpolyma

    Because it's in the domainpart of a jid

  182. opal

    oh youre saying i could just give you opal@[202:8478:47ac:3fff:177c:a994:51e4:9c55] and it'll suffice

  183. singpolyma

    Yes

  184. opal

    gotcha

  185. singpolyma

    I assume cjdns sucks on mobile like most such things. Does anyone know?

  186. opal

    i assume cjdns sucks but cjd is a cool guy :D

  187. Zash

    all p2p sucks on mobile

  188. opal

    (i looked at the codebase back when node was still a requirement)

  189. opal

    yggdrasil on mobile is usable

  190. moparisthebest

    It's been like a decade since I touched that

  191. Zash

    at best, it sucks massive amounts of power

  192. Zash

    and this is why I'm firmly behind the federated client-server model :)

  193. opal

    ygg is dormant unless you route, and typically youre chosen for routing if you have good access to two peers

  194. moparisthebest

    That's another bonus point for DHT XMPP server discovery, it only eats battery during the discovery phase :)

  195. opal

    yeah c2s is a good stopgap for the current internet

  196. Zash

    p2p things tend to be chatty, as does chat things

  197. singpolyma

    Well, all p2p is fake and semi centralized. If mobile leeches it can maybe work. I don't know how much that's been tried

  198. opal

    lets just communicate telepathically, problems solved

  199. singpolyma

    moparisthebest: if leeching, yes

  200. Zash

    singpolyma, no no, these are not servers, they're "supernodes" and that's not centralization, they're called "bootstrap nodes" :)

  201. singpolyma

    The reason DHT burns power is if you make every mobile client a member of the DHT

  202. singpolyma

    Zash: ah, yes. The good old "bootstrap node" at irc.libera.chat ;)

  203. opal

    lesson learned: turtles all the way

  204. moparisthebest

    Speaking of Tor, interesting https://blog.torproject.org/introducing-proof-of-work-defense-for-onion-services/

  205. Zash

    Did they just introduce TorCoin??

  206. opal

    lol @ hidservs still suffering from DoS

  207. opal

    also lol @ the DNMs and the reddit clone being "protected" by some stupid captcha and a script to drop circuits on failure

  208. opal

    i'd say half of it is because they all run bloated dynamically-generated php websites, and the other half is tor's slow circuit-building process

  209. opal

    oh man that was recent moparisthebest

  210. opal

    yeah ive been hearing talk about PoW on the MLs on and off over the years

  211. opal

    > Did they just introduce TorCoin?? looks like a one-time challenge which is honestly reasonable, just offloads cpu requirement to the client