XSF Discussion - 2018-02-26


  1. Yagiza

    Hello!

  2. Yagiza

    Is there author of XEP-0363 around?

  3. Guus

    it'd be helpful if you tell us who that is :)

  4. Guus

    oh, HTTP File Upload

  5. Guus

    that's Daniel Gultsch

  6. Guus

    (His JID is in the XEP, in case you're having trouble reaching him)

  7. Guus

    he's usually very responsive.

  8. daniel

    Yes

  9. Yagiza

    daniel, I'd like to discuss it

  10. Yagiza

    Guus, I guess, discussing XEPs in the MUC is better than privately

  11. Yagiza

    daniel, I don't know if this was already discussed, but I believe the XEP is missing file hash support.

  12. Yagiza

    daniel, how do you feel about adding it?

  13. daniel

    Yagiza: who should add and who should check the hash?

  14. Yagiza

    daniel, client should add and server should check

  15. Yagiza

    The idea is providing file hash in <request/> element instead of or along with file name.

  16. Yagiza

    A server must check the hash. If it already has file with provided hash, it must reply with <slot/> without <put/> element. Instead, it must contain <exist/> element.

  17. Yagiza

    Once client received such reply it must consider that file was already uploaded to the server before and should use URL provided in <get/> element to access the file.

  18. daniel

    So this is about dedup and not integrity?

  19. Yagiza

    daniel, we may neglect this possibility, like we do it with Avatars, Entity Caps and so on.

  20. Yagiza

    daniel, even bitcoin neglects possibility of duplicated wallet address. It just generates random hash. Probability of uploading two different files with the same SHA-1 (or SHA-256) on the server is about zero. So, I don't see any problem here.

  21. Yagiza

    daniel, but we get rid of unnecessary uploads, which is very useful.

  22. daniel

    Yagiza: I'm gonna keep this in mind in case I'm going to work on the XEP again

  23. Yagiza

    daniel, ok

  24. Yagiza

    daniel, if you have no time for that, I can try to make a PR or some other way send updates for the XEP if you like.

  25. marc

    Keep in mind that this extension may leak "sensitve" information

  26. SaltyBones

    Yagiza, if you dedup across users make sure to consider the privacy implications.

  27. marc

    SaltyBones: what I said :)

  28. Holger

    Ah I thought this was only about your own uploads. And didn't get the point.

  29. Holger

    Yes you don't want to dedup across users.

  30. SaltyBones

    marc, I know, just wanted to be explicit. ;)

  31. Kev

    It looks like a nice way to check if a service has certain files uploaded, yes.

  32. Yagiza

    SaltyBones, marc, what do you mean? Someone knowing file hash may and knowing a server where it is may get access to the file?

  33. marc

    Yagiza: One would be able to automatically check if a file was shared on the server

  34. Holger

    Yagiza: What's your use case in practice? You and me uploading the same cat pic?

  35. Yagiza

    Holger, not only.

  36. daniel

    Also dog pics

  37. Holger

    Ah.

  38. Yagiza

    Holger, 1st use case: I've uploaded a pic, to embed it into my message with HXTML-IM.

  39. Yagiza

    Holger, then I try o send a message with the same pic to another contact.

  40. Kev

    In that case you already know the URI and can re-use it?

  41. Yagiza

    Kev, I must cache those URLs somewhere.

  42. goffi

    Kev: only if you are on the same device.

  43. Yagiza

    Kev, but why client must do such stupid things, if a server can?

  44. goffi

    (and client)

  45. Yagiza

    goffi, yes

  46. Yagiza

    Holger, another use case:

  47. marc

    Yagiza: you could restric it for own file uploads but it would not work with OMEMO without leaking information I think

  48. Holger

    So the first use case doesn't cross user boundaries. Sounds like a corner case to me though. Not sure you want a protocol extension for optimizing a corner case.

  49. Yagiza

    marc, which leaks are you talking about?

  50. daniel

    marc: well the hash would be on the encrypted file

  51. daniel

    Which breaks the dedup of course

  52. Yagiza

    Holger, why not?

  53. marc

    daniel: indeed

  54. goffi

    do we have a XEP for storing encrypted files?

  55. Holger

    Yagiza: Because keep it simple. If you start optimizing corner cases you end up with an unnecessarily bloated extension nobody wants to implement. 0363 is widely adopted because of its simplicity.

  56. marc

    daniel: you could use the plain file hash but then you have to store the correspondig key on the device which leaks info and has the same issue as without this extension

  57. flow

    What Holger said

  58. Yagiza

    Holger, what do you mean by "corner cases" now? What are use cases for this XEP, if not uploading files for sharing (and) reusing links to them?

  59. Holger

    Yagiza: By my definition, a corner case is one that applies to no more than 7.846 percent of the uploads in practice. According to my crystal ball, your case is way below that threshold.

  60. Yagiza

    Holger, so, please tell me your vision of use cases of XEP-0363

  61. SaltyBones

    This is not super interesting in practice because http upload is restricted to small files anyway so reuploading is and storing copies is cheap.

  62. marc

    Yagiza: sharing files is the main goal

  63. marc

    Asynchronous and across multiple devices

  64. marc

    And in group chats of course

  65. Holger

    Yagiza: Sharing cat pics.

  66. Holger

    Or maybe even dog pics. Daniel seems to support those as well.

  67. Holger

    So don't tell me I have no great visions!

  68. Yagiza

    Holger, ok. And when you share cat pics, it's not supposed to share the same pic with different contacts?

  69. Holger

    Yagiza: 0363 supports that. You just re-upload.

  70. SaltyBones

    Yagiza, with small files adding dedup is just not worth the effort...

  71. jonasw

    Yagiza, either re-upload, or keep a cache of the last N links shared in your client

  72. jonasw

    you can even do that across devices, because you’[l download them for display anyways

  73. SaltyBones

    Yagiza, if you want to share larger files maybe http_upload is not the right tool for the job?

  74. goffi

    Yagiza: Jingle-FT is more adapted for bigger file, and it already support hashes

  75. jonasw

    if Http upload implementations were using SIMS, you’d even get the hash carbon-copied for free

  76. jonasw

    so you can easily dedup locally without privacy implications :)

  77. Yagiza

    Holger, well. The idea is avoiding unnecessary reuploading. And now you telling that you have to reupload the file. So, why do you call that a coner case, if you admit that the problem is common?

  78. Holger

    Yagiza: I admitted that? Didn't I already quote my crystal ball?

  79. SaltyBones

    Yagiza, he is not saying that at all. He said it is uncommon and if it happens you should reupload.

  80. Yagiza

    SaltyBones, I just want to add optimization where it may be easily implemented. Why do we have such optimizations for avatars, entity caps, BOB and other cases where amounts data we share is also small?

  81. SaltyBones

    Yagiza, why do you want to add that optimization?

  82. Holger

    Yagiza: Your optimization is simple, and so are the next 10 enhancements people might suggest for special use cases. The end result is no longer simple.

  83. jonasw

    Yagiza, those are vastly different use-cases

  84. Yagiza

    Holger, so, you don't agree with your crystal ball ;-)

  85. jonasw

    Yagiza, avatars optimize having to re-download the same avatar of the same entity on each presence update. This is a way more massive optimization than optimizing the upload of a link shared twice which can easily be done by the client itself.

  86. Kev

    I don't buy that the optimisation is simple, FWIW.

  87. Yagiza

    SaltyBones, 'cause I like optimizations of course! Optimizations (if they are easy to implement) are always good.

  88. Holger

    Yagiza: You lost me. Whatever. You didn't convince me it's worth it, and I'd only repeat myself at this point.

  89. SaltyBones

    Yagiza, that reason is not good enough to justify the work and complexity that it generates.

  90. Kev

    Clients remembering URIs is a pretty simple optimisation. Server doing hash checking changes the model for how it needs to be implemented on the server.

  91. Yagiza

    jonasw, IIRC making clients as simple as it possible, leaving all the job to server always was a good idea, wasn't it?

  92. Holger

    Right, it's not simple on the server side.

  93. jonasw

    Yagiza, true, but I don’t think that the use-case is even worth the trouble on either

  94. Yagiza

    SaltyBones, which complexity are you talking about?

  95. Holger

    Yagiza: The idea wasn't making servers unnecessary complex though.

  96. Yagiza

    jonasw, which troubles?

  97. jonasw

    Holger, actually, a very trivial implementation could be: (a) use hash as file name, (b) handle uploads atomically (like rsync does, it’s not too bad), (c) hash check is trivial now

  98. jonasw

    Yagiza, having to think the privacy implications especially for single-user servers through

  99. Holger

    jonasw: Sure it could be done.

  100. jonasw

    that’s not much more complex than what implementations are doing already tbh.

  101. jonasw

    but I’d be worried about the privacy implications. ideally, the URLs would still be unique and ranodm per user, and that’s where things get complicated

  102. Holger

    jonasw: But changing an existing model is not trivial no matter how simple the new solution is.

  103. jonasw

    that can probably not be done without a database anymore (for the reverse lookup (hash, user) -> user_file_url)

  104. Yagiza

    Holger, server's job become much more complex, if it will check hashes of files it store? Seriously?

  105. jonasw

    Yagiza, at leaast it will require a namespace bump

  106. jonasw

    we don’t want those

  107. Holger

    jonasw: There's existing code to handle quotas and whatnot.

  108. Holger

    Yagiza: Yes.

  109. jonasw

    Holger, on *some* implementation s:>

  110. Holger

    jonasw: So?

  111. Yagiza

    jonasw, namespace bump? Why?

  112. jonasw

    Yagiza, you’re going to require the client to send a hash, IIUC

  113. Yagiza

    jonasw, yes. But all modern clients already have code to calculate SHA-1, 'cause most of XEPs implemented nowadays require it.

  114. jonasw

    Yagiza, but you still need to change the protocol

  115. jonasw

    -> namespace bump

  116. Kev

    jonasw: I don't think that's true.

  117. Yagiza

    jonasw, but the protocol is still EXPERIMENTAL, so what's the problem?

  118. Holger

    It *should* be true. 🙂

  119. jonasw

    Yagiza, it has massive deployment, that’s the problem

  120. Holger

    (We keep having that discussion.)

  121. jonasw

    the last namespace bump caused quite a bit of disruption already

  122. Kev

    Holger: Why should it be true?

  123. Kev

    You're adding an attribute that it's easy to have backwards compat for being missing.

  124. jonasw

    Holger, Kev, yeah okay, a namespace bump *or* a discoverable feature; but then the servers are going to complain that they can’t rely on the hash and so on.

  125. Kev

    No attribute, no de-dup.

  126. Kev

    I don't see why that should need a bump.

  127. SaltyBones

    jonasw, isn't the point of the namespaces that bumps shouldn't cause disruption? :)

  128. jonasw

    SaltyBones, they cause disruption if part of the network stops supporting one specific version

  129. jonasw

    they don’t cause *erratic* disruption, just well-defined disruption, kinda

  130. Kev

    SaltyBones: No, the opposite. The point of a bump is to cause disruption.

  131. SaltyBones

    :)

  132. Yagiza

    jonasw, anyone, who implement and deploy EXPERIMENTAL XEP's do know that everything may change dramatically from version to version. SO, once again: what's the problem?

  133. SaltyBones

    In that case I agree.

  134. Holger

    Kev: I know the idea is ignoring unknown attributes, I just don't like it.

  135. SaltyBones

    Yagiza, the problem is that you are trying very hard to ignore what people here are saying..

  136. jonasw

    Yagiza, that users don’t care about EXPERIMENTAL vs. DRAFT. they care that they can’t share their catpics anymore.

  137. Yagiza

    jonasw, so, why do we need to develop XEP's? Let's just make every XEP FINAL from the beginning to avoid such problems for users.

  138. jonasw

    Yagiza, I see your point, and I often concur. I’m just not sure your use-case is impactful enough to warrant a breakage. and also the feature creep mentioned by Holger.

  139. SaltyBones

    Indeed, maybe this XEP shouldn't be experimental anymore if it is practically not experimental anymore.

  140. jonasw

    if we could batch this up with another breaking change (should another one happen with 0363 before it goes to draft), I think that’d be okay.

  141. Yagiza

    SaltyBones, I didn't ignore anything, replying to almost every statement. I just want to understand your point of view.

  142. jonasw

    or making it entirely optional, as Kev suggested.

  143. jonasw

    might be the case that nobody implements it. which will lead to clients not supporting it and when a server does eventually implement it, they’ll notice that no client can do it and *bam* they drop support of it

  144. SaltyBones

    jonasw, that's a lot of wasted effort ;)

  145. jonasw

    yeah

  146. jonasw

    I try to recall where that kind of thing happened to me… I think with vcard-avatar vs. pep-avatar. or pep-bookmarks vs. private-xml-bookmarks.

  147. Yagiza

    jonasw, yes. Making it optional is a good idea. But this solution will work even with a DRAFT XEP.

  148. jonasw

    lots of effort only to realize that nobody supports it.

  149. jonasw

    anyways, lunch

  150. SaltyBones

    Yagiza, the problem is that it will always be too much work to do anything if people don't believe that it is necessary. And at least the people in here apparently don't.

  151. Yagiza

    SaltyBones, I'm not sure. You and Holger. Who else?

  152. SaltyBones

    You don't have to be sure you can keep discussing but I'm out. ;)

  153. Yagiza

    Yes. I guess, discussion is over. Everyone, who was interested shared their opinion, Now it's up to daniel, what to do next.

  154. SaltyBones

    Maybe this is a silly question but what is "Jingle"?

  155. goffi

    SaltyBones: XEP-0166, or in short a way to establish P2P session

  156. Tobias

    It's an abstract peer-to-peer signaling protocol based on XMPP

  157. Zash

    If you are familiar with SIP, it's like that

  158. Tobias

    just not encoding things in HTTP like headers but in XML

  159. SaltyBones

    thanks

  160. SaltyBones

    goffi, and you want to use that to build file sharing?

  161. goffi

    SaltyBones: yes, it's already working actually

  162. SaltyBones

    but you have some sort of dedicated, always-on end-point so it's not really p2p, right?

  163. goffi

    SaltyBones: it can work between 2 devices

  164. moparisthebest

    if they are on the same LAN and, in practice, in virtually no other case

  165. goffi

    (but I have also a component to store files, in this case it's not P2P)

  166. moparisthebest

    otherwise you have to go through a TURN server which seems far worse than http upload

  167. moparisthebest

    especially if you need such a component to store files, why re-invent http ?

  168. Kev

    Jingle isn't P2P.

  169. Kev

    It's a signalling protocol, nothing about it implies it must be P2P (indeed, it's how you negotiate IBB)

  170. SaltyBones

    goffi, what is this for?

  171. moparisthebest

    goffi, why is a custom component to store files in any way preferred over an http server?

  172. goffi

    in my experience the connection is direct most of time. jingle try to establish P2P, but if it can't it will fall back to other mechanisms (proxy, IBB, ...)

  173. goffi

    SaltyBones: many things. Keeping file for yourself, sharing with other, transmitting files between devices, etc.

  174. SaltyBones

    goffi, just install nextcloud?

  175. goffi

    moparisthebest: I don't want/need the HTTP overhead, jingle FT is good, and there are already XEPs for file sharing

  176. goffi

    SaltyBones: why installing and maintaining an other software?

  177. moparisthebest

    what http overhead ?

  178. moparisthebest

    surely it's far less than anything you'll come up with in jingle/xmpp ?

  179. moparisthebest

    just the negotiation probably takes far more time than an entire http download

  180. Tobias

    moparisthebest, additional code to maintain, all the HTTP corner cases. If you don't have HTTP in your project yet it's a reasonable questions to ask whether you really need to add the full HTTP support.

  181. moparisthebest

    in my opinion you should use the right tool for the job without reinventing the wheel if possible, if that job is putting files on a server for multiple clients to download, that tool is http

  182. moparisthebest

    chances are you already have http in your project, but if not, adding it is surely less code to maintain than a custom xmpp component to store files?

  183. goffi

    there is already a right tool for that with XMPP, and I'm building a XMPP client

  184. SaltyBones

    I didn't mean to criticize just curious.

  185. goffi

    it's OK to criticize, as long as it's not aggressive :)

  186. moparisthebest

    there is the saying that if all you have is a hammer everything looks like a nail, it's still not always the right tool for the job

  187. SaltyBones

    So you are building synchronizing on top of jingle ft?

  188. Kev

    moparisthebest: And that's a significant problem with people thinking everything needs to happen over HTTP, right? :)

  189. goffi

    SaltyBones: no synchronizing (at least not for now), just sharing files.

  190. goffi

    and also everything is linked to my XMPP account, so permission is trivial to handle.

  191. SaltyBones

    goffi, how is file sharing different from file transfer then?

  192. Tobias

    goffi, +1...getting permissions right with different user groups that fetch stuff via HTTP server gets tricky

  193. Holger

    The right tool for the job is FTP.

  194. moparisthebest

    Kev, the reverse is true also, matrix was the opposite mistake :P

  195. Kev

    Holger: SFTP, I think.

  196. Tobias

    Holger, right...which is for files, not just for Hypertext

  197. goffi

    SaltyBones: you can have a list of files, hierarchy, check XEP-0329 it's the one I'm using

  198. moparisthebest

    FTP is the right tool for no job :P

  199. Zash

    Nothing wrong with FTP

  200. moparisthebest

    nothing wrong with SFTP, loads wrong with FTP

  201. Tobias

    Zash, as long as you tunnel it over HTTPS, right? :)

  202. Zash

    Hrr

  203. SamWhited

    Which one is SFTP? Is that file transfer over SSH or FTP over TLS?

  204. moparisthebest

    over ssh, the other is ftps

  205. SamWhited

    One day I will remember which one is SFTP and which one is FTPS

  206. goffi

    (jingle can use HTTP by the way)

  207. Zash

    sftp isn't related to ftp afaik, other than in purpose

  208. moparisthebest

    yep completely different

  209. moparisthebest

    there was a really good rundown of all the reasons FTP is terrible written by the author of a really popular FTP server, but I can't seem to find it now...

  210. Zash

    Everything is terrible

  211. Zash

    If you think something isn't terrible, you aren't looking close enough

  212. SamWhited

    Not everything is equally terrible though. Some things are less terrible than others.

  213. moparisthebest

    https://mywiki.wooledge.org/FtpMustDie ah there it is

  214. SaltyBones

    magic wormhole is kind of cute

  215. Zash

    "It's old, therefore obsolete"

  216. Holger

    Bashing FTP is so boring.

  217. Holger

    Yeah.

  218. daniel

    Complains about FTP being obsolete. Does so on a website that is impossible to read on a mobile phone...

  219. moparisthebest

    not being usable behind NAT or knowing whether uploads/downloads completed etc is also a thing not great for a file transfer mechanism

  220. moparisthebest

    it's not just the 'old' part

  221. Zash

    NAT is the evil here, not FTP

  222. Holger

    moparisthebest: It's usable behind NAT if your firewall admin isn't stupid, or if you use passive FTP.

  223. moparisthebest

    not disagreeing with you, but can't change the world

  224. SamWhited

    It doesn't matter which thing is broken and wrong if the thing I want to use doesn't work. I don't really care whos fault it is or who did or did not work around NATs.

  225. Holger

    moparisthebest: It's unencrypted if you don't use TLS, just like HTTP.

  226. moparisthebest

    it also allows data to be unencrypted even if you do use TLS, unless you do special things

  227. SamWhited

    I am tempted to say that there is no situation in which FTP is the correct tool for the job when rsync exists, except that as far as I can tell the rsync protocol is completely undocumented.

  228. SaltyBones

    The universal law of users: Whatever changed last is responsible for all problems. :)

  229. Holger

    moparisthebest: What? I don't know of an FTPS client that requests unencrypted transfer by default.

  230. Holger

    SamWhited: rsync is *very* expensive.

  231. moparisthebest

    hopefully not

  232. SamWhited

    Holger: that's fair

  233. SaltyBones

    goffi, does the jingle ft understand when your devices are both on lan and then send the file locally?

  234. SamWhited

    although it's not a problem I run into most of the time, I can see that being an issue if you have older or very limited hardware

  235. jjrh

    Zash, amen.

  236. moparisthebest

    anyway this is what I have against jingle for file transfer for, you end up doing complicated negotiation, and then 99.9% of the time uploading to a TURN server anyway

  237. moparisthebest

    except unlike HTTP, you have to do it multiple times for each resource that wants the file

  238. Maranda

    FTP? Who uses FTP nowadays anyways...

  239. moparisthebest

    and if you don't have access to a TURN server it just fails, most xmpp servers support http upload nowadays, many more than have turn servers...

  240. jjrh

    Maranda, a surprisingly large amount of people.

  241. SamWhited

    Unencrypted anonymous FTP is still the only decent way I've found of transfering files between my phone and my computer, although I desperately wish there were another way

  242. moparisthebest

    that's my 2 cents anyway goffi , you are going to put all this work into this amazing software that just won't work on the majority of servers for the majority of users...

  243. jjrh

    adb push / pull?

  244. daniel

    SamWhited: locally or over the network?

  245. moparisthebest

    SamWhited, android phone?

  246. Maranda thinks he presses that SCP button in SSH clients from quite a while.

  247. SamWhited

    moparisthebest: yes

  248. SamWhited

    daniel: either, I normally do it over lan

  249. daniel

    mtp works fine for me

  250. jjrh

    mtp is kinda slow

  251. SamWhited

    yah, mtp always takes forever for me; not sure why.

  252. Zash

    I use scp/rsync on my phone.

  253. daniel

    Probably depends on the implementation?

  254. daniel

    I don't transfer large files though

  255. jonasw

    mtp doesn’t work for me :(

  256. moparisthebest

    nextcloud/syncthing or also I had an sftp server on my phone looking now...

  257. SamWhited

    I tend to be backing up lots of little-to-medium sized files. Pictures and music mostly.

  258. jjrh

    just do it with ADB

  259. moparisthebest

    SamWhited, https://arachnoid.com/android/SSHelper/

  260. SamWhited

    I really should figure out how to do ssh/rsync, that would be nicer.

  261. SamWhited

    oh hey, that looks promising, thanks.

  262. jonasw

    jjrh, so the only way to sensibly transfer files from a commodity device to another one is with a CLI command? seriously? :D

  263. moparisthebest

    that supports ssh/rsync, I recall having permissions issues though...

  264. Zash

    tarpipes!

  265. jonasw

    SamWhited, I use KDE Connect and MTP, and if neither works (which happens, annoyingly) I eject the SD card.

  266. moparisthebest

    haha Zash yes that's actually how I ended up transfering a whole internal sdcard once

  267. jjrh

    jonasw, of course not. But adb is pretty easy to script, plug in your phone and have a udev rule pull everything.

  268. moparisthebest

    something like tar [stuff] | adb shell su tar [stuff]

  269. moparisthebest

    adb over wifi

  270. Maranda

    and usb file transfers on my phone aren't that slow anyways.

  271. Maranda

    brb

  272. SaltyBones

    I have nextcloud. Works fine for small files or if you have time. :)

  273. daniel

    > SamWhited, https://arachnoid.com/android/SSHelper/ Oh that looks cool. Thx

  274. Holger

    You guys are all too bored (like me). A useless comment mentioning FTP is enough to spawn a 30 minute discussion on random file transfer issues.

  275. Yagiza

    Well... is there any XEP, which describes using TURN servers for Jingle FT?

  276. SamWhited

    This is great, I've already got it working better than the last SSH thing I tried…

  277. SamWhited

    thanks for the recommendation.

  278. moparisthebest

    Holger, clearly file transfer is one of the great unsolved problems of computing

  279. daniel

    Yagiza: the jingle ft xep is agnostic of transport. So it should just work(tm)

  280. daniel

    I don't know if many people do implement it though

  281. Holger

    moparisthebest: True. But I think this works with more or less arbitray IT questions.

  282. daniel

    Most people use socks

  283. moparisthebest

    this morning a co-worker was trying to send me a 3kb PDF over skype for business and it wouldn't work, ended up emailing it :'(

  284. moparisthebest

    also companies pay a lot for that software

  285. MattJ

    I tried emailing a tarball of .lua files to someone this morning, Gmail rejected it for security reasons and I ended up scp'ing to my server and sending them a URL

  286. Yagiza

    daniel, I thought Jingle FT uses the same transport types, which SI FT uses: IBB, SOCKS5 and OOB.

  287. moparisthebest

    so, http upload is the only thing that worked? :P

  288. Zash

    Yay only the popular thing works because it's popular.

  289. Zash

    Ya'll know how much I hate things that are popular because of their popularity?

  290. moparisthebest

    I still agree that sucks, but your choice is just never transfer the file on principle, or, use the way that works

  291. SamWhited

    It's not popular because of it's popularity, it's popular because it's simple and HTTP is a better tool for the job. It was literally made for downloading small files. Sucks for larger files, but most users want to send cat gifs so I don't really care.

  292. moparisthebest

    you could also use sneakernet with a flash drive, but http is easier

  293. goffi

    SaltyBones: yes, that's one of the interest of the thing

  294. Zash

    But it's suffocating everything else :(

  295. Zash

    We can't have innovation at the lower layers anymore, and that makes me sad

  296. moparisthebest

    that's true, udp/tcp is all we can ever have

  297. moparisthebest

    and even then tcp is just getting re-invented over udp with things like QUIC

  298. Zash

    And soon only TCP/TLS/HTTP

  299. goffi

    moparisthebest: it's not only with the server, it's also between users (ex. tranfering files from your phone to your desktop machine)

  300. Maranda

    cat gifs 😻 💙

  301. Maranda

    But didn't someone just want to use BoB for those things :P?

  302. Zash

    goffi?

  303. goffi

    Zash: yes?

  304. Zash

    Wait, wanted to not use bob because of size restrictions

  305. goffi

    no

  306. Yagiza

    Maranda, I'm using BOB for small pics. For large pics I need to implement using something like HTTP File Upload.

  307. goffi

    it's not because of one thumbnail, it's if I want to transfer large amount of pictures/vidéos

  308. goffi

    and also to avoid sending them to the server

  309. Yagiza

    BTW, I don't see a way to use HTTP File Upload for file transfer without using Jingle FT or SI FT as session negotiation protocol.

  310. SaltyBones

    goffi, I wonder how the fuck that works... :D

  311. Maranda

    You do..?

  312. SamWhited

    I don't understand what innovating at the lower layers has to do with this; if you want to innovate and make something better than HTTP, do that. Using a bad thing that's complicated and not the right tool for the job isn't going to make it more likely that you displace HTTP.

  313. goffi

    SaltyBones: many candidate are tested, with priorities. The direct connection on local network is tried first.

  314. Maranda

    To me it looked like XEP 363 used PUTs... But maybe I'm just having allucinations as usual.

  315. Maranda

    I'm not sure where the Jingleing is required in there 🤔🤔

  316. moparisthebest

    goffi, it's just highly unlikely p2p will work ever except in the case of LANs, seems odd to optimize for that, but even if you do go that way for p2p transfers, an http server would still be a better place to put uploads than a custom jingle component

  317. goffi

    the LAN case in one major use case for me.

  318. goffi

    and in my experience P2P is working quite often

  319. goffi

    and I have already all jingle implemented, so why should I implement something else ? Specially when there are already XEPs doing what I need

  320. goffi

    I really don't see the point of the whole discussion, I've implemented something which is working, based on current XEPs and I'm happy with it (except the point I'm trying to solve on standard@).

  321. jonasw

    goffi, how do you solve broadcast/multicast (MUCs) and retrievability while the user is offline?

  322. jonasw

    is that the Jingle Component you’re talking about? if so, that’s amazing

  323. goffi

    MUC is no my use can for now, but anyway I have a component so offline retrieving is not a problem at all.

  324. jonasw

    I can’t parse that sentence, sorry.

  325. goffi

    my use case*. Sorry to disturb your parser.

  326. moparisthebest

    goffi, what transfer method is used if both clients are on different LANs behind NAT ?

  327. goffi

    moparisthebest: check XEP-0234. Socks5 direct, w/ proxy, IBB in that order.

  328. moparisthebest

    goffi, and how does this work with multiple clients?

  329. moparisthebest

    same account logged in on different resources that is

  330. goffi

    I don't get your question, this always work with different clients.

  331. moparisthebest

    just super wasteful bandwidth-wise?

  332. moparisthebest

    you end up uploading it once for each client?

  333. goffi

    what are you talking about?

  334. jonasw

    moparisthebest, IIUC, the jingle transfer is handled by a component. the sender uploads once, everyone downloads from componet.

  335. jonasw

    it’s kinda like HTTP Upload, but with Jingle instead of HTTP.

  336. moparisthebest

    if I want to share a picture from my mobile phone to a contact connected from 5 clients, my phone ends up uploading that once for each client no?

  337. Yagiza

    moparisthebest, FT XEPs usually used to transfer file from one client to another. Not to share a file.

  338. Yagiza

    moparisthebest, for file sharing something like HTTP Upload is better.

  339. moparisthebest

    but this is about file sharing no?

  340. Yagiza

    moparisthebest, Jingle FT? No.

  341. Yagiza

    moparisthebest, it's just a modern way to do the same as SI FT does.

  342. goffi

    I think I'll publish a blog post with schematics to make things clear.

  343. jonasw

    goffi, sounds like a good plan

  344. moparisthebest

    Yagiza, I meant goffi's thing, but yea that'd be nice goffi

  345. Yagiza

    moparisthebest, ah, ok

  346. jonasw

    what do you folks think about Trust-On-First-Use pinning for certificate public keys for XMPP servers?

  347. Zash

    It's fine until you change the key for whatever reason.

  348. Maranda

    Uhhh that annoying iChat disco# bug.

  349. Maranda pfts.

  350. moparisthebest

    jonasw, hpkp-type system would be better, there is even a not-yet-submitted xep

  351. moparisthebest

    I would love that

  352. moparisthebest

    jonasw, xnyhps is the one who wrote it but I cannot seem to find a copy...

  353. jonasw

    moparisthebest, NOOOO

  354. jonasw

    we have TLSA for a reason!

  355. moparisthebest

    well obviously that's best I agree, but when entire domains never implement DNSSEC...

  356. moparisthebest

    sorry entire TLDs is what I meant to say

  357. Ge0rG

    jonasw: I've written a TOFU kind of library for Android back then for yaxim...

  358. moparisthebest

    TOFU is better than nothing but not as good as HPKP

  359. moparisthebest

    because you end up asking the user 'SHOULD THEY KEY HAVE CHANGED TO THIS CHUNK OF HEX/BASE64: XXXXX'

  360. moparisthebest

    and they have absolutely no way to tell

  361. moparisthebest

    as an admin *I* know, and can just set my pins correctly

  362. Ge0rG

    moparisthebest: yes, server admins are the ones to know that best.

  363. Ge0rG

    moparisthebest: except for the ones who don't give a yota and have self signed certificates in the first place.

  364. Zash

    Isn't that being deprecated because people shoot themselves in their foots too often?

  365. moparisthebest

    they don't go the extra mile and set up pinned keys either, generally

  366. moparisthebest

    well iirc chrome is dropping support sometime, I still think that's dumb though

  367. moparisthebest

    you can bet they'll leave it enabled for google owned domains

  368. Zash

    Isn't that hardcoded in the binary?

  369. Zash

    As in, not protocol

  370. moparisthebest

    google ones are iirc

  371. Ge0rG

    You can get your domain onto the preload list with Google and Mozilla. No idea how that scales.

  372. moparisthebest

    Ge0rG, only for HSTS, not for HPKP

  373. Ge0rG

    moparisthebest: oh, I thought you can get both.

  374. moparisthebest

    HSTS == only ever visit this site via HTTPS and enforce valid CA-issued certs, do not allow click-through bypass

  375. moparisthebest

    not unless they changed it

  376. Ge0rG

    You still can bypass HSTS with the hot key formerly known as "badidea"

  377. Ge0rG

    HSTS is probably easier to scale with a bloom filter, as opposed to having a gazillion of server fingerprints shipped in your binary

  378. moparisthebest

    mere mortals can't bypass it though, my mom couldn't

  379. Ge0rG

    Before I learned that trick I couldn't either, and it was bothering me much.

  380. moparisthebest

    very rarely do you want to bypass it

  381. moparisthebest

    the whole point is because given the choice, people always click through, and if the site says not to, you shouldn't give people the choice

  382. Ge0rG

    But *I* do know what I'm doing, sometimes even better than the admin of the site I want to visit.

  383. Kev

    Actually, it's something I'd like to do quite often.

  384. Kev

    Because hotels and capture portals.

  385. moparisthebest

    yea but you nor I are what anyone would consider average computer users

  386. moparisthebest

    Kev, so you allow the MITM to proceed? or you just mean to get to their terrible agreement page?

  387. Kev

    I mean to get to the agreement page.

  388. Kev

    I typically browse to 8.8.8.8 these days.

  389. moparisthebest

    I usually type in like bob.com for that

  390. moparisthebest

    but yea bad systems

  391. Zash

    example.com!

  392. daniel

    neverssl.com

  393. moparisthebest

    daniel, nice!

  394. Ge0rG used to use a large German news portal, but then they switched to https... 😒

  395. Guus

    someone, invite me to a muc please?

  396. daniel

    Ge0rG: me too 😁

  397. daniel

    Would probably be a good business model not to offer ssl on your news site. Then people would use it to get around captive portals and spend time on your website while there at it

  398. jonasw

    Ge0rG, heise has SSL by now? :-O

  399. moparisthebest

    out of curiousity, how many captive portals do you deal with on a weekly basis?

  400. moparisthebest

    I see 1 or 2 a year :P

  401. daniel

    moparisthebest: our high speed trains have them

  402. moparisthebest

    ah, makes sense

  403. SamWhited

    Lucky you; I see a captive portal basically every time I'm on the bus, train, or in most coffee shops.

  404. SamWhited

    Not that I take the train much (there is a small one, but it doesn't realy go anywhere here) and only some of the busses have wifi, so mostly just coffee shops.

  405. moparisthebest

    I see them at hotels, but then there are no trains or buses around here and I don't go to coffee shops so...

  406. daniel

    And yes what Sam says. A lot of coffee shops have them

  407. SamWhited

    Oh yah, and hotels. Every time I travel.

  408. daniel

    There is probably a Firefox plugin that can auto accept the standard ones

  409. daniel

    Or if there isn't there should be

  410. daniel

    Or just put it in Systemd 😆

  411. SamWhited

    I have strict revocation checking on in Firefox, which is unfortunate since they all block their own OCSP servers and CRLs.

  412. SamWhited

    So I generally have to curl to login

  413. moparisthebest

    the first thing I do on strange networks is connect to my VPN though, not open up firefox

  414. Kev

    I'm not sure how that would help. You won't be able to VPN until you've clicked through the page.

  415. moparisthebest

    openconnect/ocserv is great for speed and firewalls

  416. moparisthebest

    yea it doesn't work, then I know I need firefox...

  417. SamWhited

    At least one place I go sometimes works by stealing DNS, so if you use a VPN and know your IP (or hardcode 8.8.8.8 or something) then you don't need to sign in…

  418. SamWhited

    That same place also has "admin:password" for the credentials on the router though, so now I don't have a portal at all and if anyone is eating the coffee shop bandwidth with Bittorrent they get mysteriously QoSed.

  419. jonasw

    :D

  420. moparisthebest

    sounds like a case of nephew bob the IT guy setting it up for them

  421. Ge0rG

    When I'm desperate enough I fire up iodine and tunnel through the captive portal dns

  422. moparisthebest

    Been meaning to set that up

  423. moparisthebest

    Sounds awful but as a last resort...