jonaswFlow, there was the argument that identities may be localized.
Dave Cridlandhas left
Dave Cridlandhas left
SaltyBoneshas left
Tobiashas joined
andyhas left
SaltyBoneshas joined
Dave Cridlandhas left
Dave Cridlandhas left
suzyohas left
suzyohas joined
moparisthebesthas left
SeveI changed my email address. Does anyone know who should I get in touch with to subscribe myself with my new email address, please?
moparisthebesthas joined
danielhas left
jonaswSeve, to all lists but members@, you can manage that yourself
danielhas joined
jonaswI’m not sure if you can change your email address for members@ yourself
jonaswyou could try checking the options at https://mail.jabber.org/mailman/options/members/your.old@email.address
SeveOhh
jonasw(note the email address in the URL)
SeveSorry!
SeveI forgot to mention that I want to subscribe to members@, yes.
jonaswha ok
jonaswI don’t know who’s responsible for this, but somebody from iteam will do
andyhas joined
jonaswthe two I have in mind aren’t here right now though
danielhas left
danielhas joined
andyhas left
andyhas joined
ralphmhas joined
andyhas left
Guushas left
andyhas joined
Guushas left
remkohas joined
andyhas left
rionhas left
danielhas left
rionhas left
Dave Cridlandhas left
jubalhhas joined
tim@boese-ban.dehas joined
Tobiashas joined
Dave Cridlandhas left
SaltyBoneshas left
Dave Cridlandhas left
Dave Cridlandhas left
moparisthebesthas left
andyhas joined
Ge0rGI'd like to propose a new marketing slogan: *XMPP - as popular as the Metric system in the USA*
jonasw:<
Ge0rGjonasw: it could be worse, e.g. "XMPP - as popular as the Measles"
andyhas left
jonasw:<
Fabianhas joined
Fabianhas left
moparisthebesthas joined
Alexhas joined
Dave Cridlandhas left
hanneshas left
Guushas left
andyhas joined
Dave Cridlandhas left
Fabianhas joined
Guushas left
rionhas joined
tuxhas left
tuxhas joined
andyhas left
Steve Killehas left
mimi89999has joined
Alexhas left
Alexhas joined
Steve Killehas joined
Fabianhas left
jubalhhas joined
blablahas joined
andyhas joined
andyhas left
Dave Cridlandhas left
tim@boese-ban.dehas left
tim@boese-ban.dehas joined
Dave Cridlandhas left
Dave Cridlandhas left
jubalhhas joined
marchas joined
Dave Cridlandhas left
blablahas joined
Martinhas joined
rionhas left
rionhas joined
rionhas left
rionhas joined
intosihas joined
rionhas left
Kevhas joined
Fabianhas joined
Dave Cridlandhas left
Alexhas left
mimi89999has joined
Alexhas joined
Fabianhas left
jonaswoh my god
jonaswI’m just reading XEP-0013
jonaswwhy did it seem like a good idea to use disco#info for the number of messages?
Kev-13 is pretty old, we've got a lot of best-practice knowledge that's built up since then.
BunnehKev: I'll remember that.
jonasw-13
Bunnehjonasw: pretty old, we've got a lot of best-practice knowledge that's built up since then.
KevWhat the smeg?
jonaswhah!
ralphmhas joined
Tobias:D
jubalhhas left
Fabianhas joined
marchas left
Fabianhas left
Fabianhas joined
jubalhhas joined
jubalhhas left
jubalhhas joined
jubalhhas left
Flowjonasw, ok, so why an extra hash for localized identities?
Fabianhas left
jonaswFlow, separating them so that entities can profit from their cache for features and forms
jonasw(also, there are precedents for quickly-changing forms)
Neustradamushas left
jonasw(e.g. the number of users in a MUC in its disco#info)
Syndacehas joined
SaltyBonesWhat does "localized" in this context mean? "translated"?
jonaswin such a quickly-changing-form-case it would be profitable if entities could opt-out of the forms hash to indicate that it is quickly changing and must always be considered stale.
Flowthat sounds like an argument for an extra hash for forms
jonaswyes
jubalhhas joined
jonaswquestion is if separation of identities makes sense, too.
Flowbut I still don't see the advantage of an extra hash for localized identities
Flowgiven that the identities will not frequently change
jonaswI don’t see it either, necessarily
FlowSaltyBones, yep, usually it's about the xml:lang attribute
Floware there many other popular precedents for quickly changing forms?
jonaswFlow, I don’t know, honestly
jonaswthat’s why I *wish* there was more feedback on this on-list
FlowI was going to write yesterday, but then figured that I possibly don't know what it is really about
jonaswso I need to make it clearer?
Flowjonasw, dunno, it appears you also don't know an example where extra hashes for identities, feature and/or forms are beneficial
lumihas joined
jonaswfor forms, the MUC case is rather beneficial; the current workaround which is used is that the form wtih the numebr of users is not included when answering disco#info for a caps node
Flowbesides when protocols come into play that put dynamic information into e.g. features
jonaswwhich is bad
jonaswand in many cases, entities might not be interested in the form data, which is almost alwyas supplementary
jonaswthus making them miss the cache because of uninteresting form data is not totally great
jonasw(for example, entities which put OS version into the disco#info data; you’d then build a cache where each release of every operating system on which the client runs is held, which is kind of not very useful to have in the first place)
jonaswI’m not sure there’s a strong argument for separating identities, but separating forms seems appealing to me
jonaswI hoped that zinid would comment on this since he told me about the MUC forms use case.
Flowhmm I see/saw caps mostly as an instrument to discover the caps of a remote "client". I can't even tell from the top of my head if caps works with xep45: Do you get a presence from the MUCs bare JID?
FlowIf ecaps2 is missing something, then it is possibly a mechanism for clients to annouce their features even if they are offline (e.g. via PEP)
SaltyBonesXEPs should mandate a list of intended use-cases.
FlowSaltyBones, don't they?
jonaswFlow, recent developments make you get a presence from the bare MUC jid on join, yes
jonaswthat’s a result of summit
Flowjonasw, is that xep45 change live already?
jonaswit is being developed and evaluated against client implementations
Flowjonasw, ok, i guess it's part of the multi nick sharing initiative
danielhas left
jonaswFlow, no, it’s part of the avatars for MUCs initiative :)
jonaswand knowing the disco#info of a MUC is probably useful
Flowfrom what I know till now, I don't feel that it is worth separating the hashes. Instead we should consider adding a best practice to xep30 that disco#info results are supposed to be not short-living
jonaswFlow, how are you suggesting to fix the xep45 use-case then?
jonaswalso, short-living isn’t the same as high-cardinality, whihc is also an issue
jonasw(as in the OS Version case)
Flowjonasw, the os version case is not xep92?
Flowbut yes, you are right, it's not the same, i'm not sure if high-cardinality is an issue and if it needs fixing
marchas joined
moparisthebesthas joined
jonaswsoftwareinfo
Flowsame is true for xep45, I possibly could live with an cold caps cache every time an occupant leaves or joins
jonaswhm, we could test that, we have a huge repository of caps data
jonaswI think I’ll do that :)
Flowjonasw, sorry, softwareinfo?
jonaswhttps://xmpp.org/extensions/xep-0232.html
jonaswthat one
jonaswI had to google the namespace myself
pep.has joined
Flowuh, i forgot that we have an update to xep92, would be great if there where a pointer from xep92 to it's possible successor
jonaswFlow, the issue is that caps cache should be persistable; defeating that because we’re spamming the databases with pointless updates/minor differences is kinda sad.
jonaswbut sure, I’ll run a test on the capsdb
Flowjonasw, but is it an issue?
jonaswit’s a bit dated, but probably a good source of a first estimate
jonaswFlow, that’s what I’m going to find out
andyhas joined
ralphmhas joined
Flowhmm not sure if xep232 is really an improvement over xep92
andyhas left
marcGe0rG: how do you implement "pending XMPP URIs"? E.g. you add a contact but don't have an account set up yet and show the corresponding dialog after account setup. IIRC you do this in yaxim
rionhas joined
stefandxmhas left
Ge0rGmarc: I'm keeping the Intent and re-firing its handler after account creation
SaltyBoneswhat does that mean? you can add people who don't have an account??
marcGe0rG: what if multiple activities are involved before you can re-fire it? Do you pass it to all the activities?
jonaswSaltyBones, XEP-0401
SaltyBones-xep-0401
daniel> Ge0rG: how do you implement "pending XMPP URIs"? E.g. you add a contact but don't have an account set up yet and show the corresponding dialog after account setup. IIRC you do this in yaxim
Conversations does that as well
SaltyBoneskicks Bunneh.
Ge0rGmarc: the only flow allowed is "main activity [optional: prefs activity ->] main activity"
jonaswSaltyBones, -xep 0401
jonaswSaltyBones, {xep 0401}
BunnehSaltyBones: Easy User Onboarding (Standards Track, Experimental, 2018-01-25)
See: https://xmpp.org/extensions/xep-0401.html
SaltyBonespours a bucket of water on Bunneh.
jonaswthere we go
marcdaniel: really? What version?
danielNot with the entire uri though. Just the jid. But that could be changed
danielmarc: dunno. Maybe 1.23.0
Ge0rGBunneh is b0rked
marcAh okay, because I need the full URI
danielyeah changing that is probably fairly easy
marcOkay, I'll take a look
SaltyBonesmarc, did you write this XEP?
SaltyBonesAnyway, good stuff.
nycohas left
SaltyBonesAnd of course as always thanks to Ge0rG for all his efforts in this direction!
marcSaltyBones, Ge0rG also did lots of stuff
marcSaltyBones: yes
Ge0rGSaltyBones: 🙇
rionhas left
danielhas left
Dave Cridlandhas left
ralphmhas joined
Steve Killehas left
lumihas left
Ge0rGSo I've installed kaidan, and it is _very_ basic
Seveit is
blablahas left
marchas left
jubalhhas left
danielseems to be a pattern
Ge0rGThe CADT pattern.
Ge0rGOh, I've installed 0.2.3 from their repo, github has 0.3.2
Ge0rGalso half a year of development between the releases.
jjrhhas left
Ge0rGSo Kaidan reflects the general status of XMPP very well.
jjrhhas left
MattJ6 months between releases is not long, or what are you saying? :)
nycohas left
Ge0rGMattJ: I'm saying that having 6 months old DEBs on their own repo is really bad.
Ge0rGhas joined
Ge0rGhas joined
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
jubalhhas joined
jubalhhas left
jubalhhas joined
jubalhhas left
jubalhhas joined
marchas joined
Guushas left
Steve Killehas joined
SaltyBonesYou can deploy QT to iOS?
Dave Cridlandhas left
TobiasSome Qt pars, yes
TobiasQt Quick GUIs you can
danielhas left
SaltyBonesDoes GTK have something similar?
Tobiasno clue
stefandxmhas joined
suzyohas joined
danielhas left
SaltyBonesTobias, this https://doc.qt.io/qt-5/qtquick-index.html ?
matlaghas joined
Tobiasyes...that stuff works across desktop and ios/android platforms
SaltyBoneshuh...nice
jonasw"works"
SaltyBonesoh...
jonaswit lacks quite a few things/controls, it is a pain to use with C++ and I think you’ve got to do accessibility quite all by yourself
jonaswbut I haven’t looked deeply into the last part
jjrhhas left
jjrhhas left
Dave Cridlandhas left
Dave Cridlandhas left
ralphmhas joined
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
moparisthebesthas joined
Dave Cridlandhas left
stefandxmhas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
dwdGosh, Gloox. There's a blast from the past.
Dave Cridlandhas left
Dave Cridlandhas left
MattJIndeed
jubalhhas left
Dave Cridlandhas left
jubalhhas joined
Dave Cridlandhas left
Dave Cridlandhas left
nycohas left
Dave Cridlandhas left
la|r|mahas joined
Dave Cridlandhas left
lskdjfhas joined
Dave Cridlandhas left
vanitasvitaehas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
jubalhhas left
jubalhhas joined
jubalhhas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
vanitasvitaehas left
Dave Cridlandhas left
Dave Cridlandhas left
suzyohas joined
marchas left
Alexhas joined
marchas joined
vanitasvitaehas left
Dave Cridlandhas left
Dave Cridlandhas left
jerehas joined
jubalhhas joined
jubalhhas left
marchas left
Ge0rGjonasw: I think the impact from http upload might be comparable to dns rebinding attacks
Dave Cridlandhas left
jonaswGe0rG, the local servers thing is a point
jonaswso I’d suggest to add a reference to CWE-918 in the security considerations and write that clients need to treat themselves as HTTP Proxies w.r.t. security considerations
jonaswmaybe we can find HTTP documents which elaborate on those
Ge0rGjonasw: with newlines, the attacker can forge any payload to the http post
lskdjfhas joined
jonaswdaniel, ^
jonaswGe0rG, but we agreed to reject newlines.
Ge0rGjonasw: I'm not saying it's impossible without newlines
danielYes the newline thing doesn't need debating anymore
Dave Cridlandhas left
Ge0rGdaniel: good luck finding out what is "on the LAN"
danielGe0rG: any of the reserved IP ranges I mean
Ge0rGGets you into trouble in enterprise deployments
jonaswGe0rG, "unless the server is in a LAN"
jonaswthat’s by the way similar to the application boundary enforcement NoScript does by default…
jonaswnightmare
Ge0rGjonasw: yay for complex filtering rules!
Dave Cridlandhas left
jonaswGe0rG, that wasn’t my idea
jonaswGe0rG, do you have a better solution, considering that some services will need headers for authn?
jonasw(and authz)
jonaswand we can’t predict the header names reasonably?
danielBy the way the exploiting your plastic router scenario is kinda independent of the header discussion
danielThose are usually exploited by get parameters anyway
Alexhas joined
Ge0rGdaniel: indeed. Having PUT instead of POST does us a favor here.
Ge0rGdaniel: besides, it's easier to exploit things via POST than via GET, but most browsers block cross-origin-POST
Ge0rGAnd then, the HTTPS certificate requirement should effectively protect typical LAN routers.
FlowGe0rG, why is PUT different from POST in this case?
danielGe0rG, assuming your $10 router distinguishes between the different methods :-)
Ge0rGbut those are all mitigations
Ge0rGdaniel: touché
Dave Cridlandhas left
MattJ"Let's use HTTP because it's simple"
MattJducks
Ge0rGFlow: most HTTP appliances use POST for form submission, not PUT
Flowyeah, XMPP is way simpler
jonaswGe0rG, browsers don’t block cross-origin post unconditionally; I know that you can cross-origin POST with a <form/> for example
Flowducks
Ge0rGstop it now! I'm just reading Jingle-FT and it's gruesome.
Ge0rGjonasw: good point. Does that make all HTTP POST endpoints exploitable?
jonaswGe0rG, that’s why we have CSRF tokens
Ge0rGI love those.
Ge0rGLet's add an CSRF token to HTTP-Upload.
Alexhas left
Fabianhas joined
FlowI whish we had a magic marker which tells us when ge0rg is serious nor not
Ge0rGFlow: I wish I had such a marker myself.
SaltyBoneswhat is the original document you guys are discussing?
Ge0rGSaltyBones: XEP-0363
SaltyBones-{XEP 0363}
Flow-xep363
Ge0rGSaltyBones: also https://mail.jabber.org/pipermail/standards/2017-November/033936.html
Ge0rGTobias: I can only hope that all of the complexity comes from the domain and not from Jingle-FT itself.
TobiasGe0rG, in what way? what bit is in there that's not needed to get peer-to-peer file transfer working in all cases
Tobiasthe complexity likely comes from the problem domain
TobiasWebRTC is similarly complex
Ge0rGTobias: except WebRTC also has proper NAT traversal and e2ee ;)
FlowI think both Jingle and WebRTC have room for improvement when it comes to reducing the complexity. But I doubt that it's going to happen, because their deployment reached the critical mass
FlowGe0rG, Jingle has E2EE too (not sure what the current state of the xep is)
jonasw"Experimental"
Ge0rGFlow: "horrrible"
TobiasWebRTC has decent e2ee? I thought it's e2ee was MITM-able
Ge0rGor maybe "abandoned"
stefandxmhas joined
la|r|mahas joined
marchas joined
andyhas joined
marcIt has E2EE if the signaling channel is protected
Ge0rGmarc: ITYM if the server is trusted.
SaltyBonesMaybe this is controversial but I think 0363 should NOT allow "unlimited other headers" at most it should allow one or two specific ones but imho none would be more appropriate.
jonaswSaltyBones, but there are services which require headers
jonaswintegration with those services was the goal of the update which introduced headers
Dave Cridlandhas left
SaltyBonesWhy doesn't the server just take the data and the put it wherever it belongs?
Ge0rGHTTP-Upload headers are the XHTML-IM of this year's compliance suite.
Ge0rGSaltyBones: because traffic and scalability
jonaswGe0rG, you’re exaggerating
TobiasGe0rG, what's your opinion on XEP-0385?
rionhas left
SamWhitedFor once I disagree about the complexity. The trade off seems justified here, without the headers you can't have auth or signed URLs
marcGe0rG: not exactly, you could use OMEMO to protect the credentials
rionhas joined
jubalhhas joined
SaltyBonesSo, why doesn't the server simply communicate the URL it passed to the client to whoever actually gets the data?
SaltyBonesshould really stop talking.
Ge0rGSamWhited: I'm only slightly serious, but I'd like to hear your input on how a malicious server could abuse http-upload to wreak havoc
Ge0rGa malicious xmpp server
jubalhhas left
Dave Cridlandhas left
SamWhitedI want to make sure that a client can't upload unlimited stuff, but the http server is on another host and knows nothing about the xmpp server. How can I do that without some way for the client to also communicate with the http server? I could maybe shove one or two things in the path, but that's going to get ugly quick
SamWhitedmostly I just want to use s3 directly though, which requires auth headers.
Ge0rGSamWhited: so instead you opt for making the client a generic protocol proxy?
stefandxmhas left
jonasw(a generic XMPP->HTTP proxy)
SamWhitedIt's nothing close to that, it has to support http to do a post anyways, so you're just telling it how to structure its request
jonaswSamWhited, this is exactly what proxying is
Dave Cridlandhas left
jonaswI was flabbergasted when Ge0rG said that first, but I think he’s right.
Martinhas left
jonaswin the end what the client is here is a proxy supporting PUT with arbitrary headers to an arbitrary HTTP(S) host with an arbitrary URL
jonaswthe only thing the server can’t control is Content-* and the body
SamWhitedthis sounds dangerously close to a semantic argument, so sure, it's a simple proxy without the complex body bits. that seems fine.
Ge0rGSamWhited: I'd argue that we have a whitelist of HTTP headers that the module is allowed to override/set.
SaltyBonesSamWhited, isn't that impossible? The client has to request a slot from the XMPP server and must include the filesize and the receiving host must validate that filesize. They have to communicate, right?
Ge0rGSaltyBones: they don't *have to*, the HTTP server can be independent
jonaswSamWhited, SaltyBones, mod_http_upload_external for prosody essentially includes an HMAC of the content size and file name into the PUT URL query which is verified by the peer.
jonaswbut other, already existing things require HTTP headers to dot hat✎
jonaswbut other, already existing things require HTTP headers to do that ✏
SamWhitedGe0rG: what benefit would a white list provide?
Ge0rGSamWhited: we would severely limit what a malicious server can do via the client-proxy.
SamWhitedSaltyBones: upload servers often need things at point of upload, eg a bearer token.
SamWhitedGe0rG: I see, that seems fair.
Ge0rGSamWhited: have a look at http://blog.portswigger.net/2017/07/cracking-lens-targeting-https-hidden.html#host for how to abuse an HTTP proxy to access non-HTTP protocols
Ge0rGSeems like nobody is reading my emails :>
SamWhitedI'm reasonably sure this isn't actually a problem here, but I'd be interested in trying to come up with a POC. Will read that when I get to my desk
Dave Cridlandhas left
Ge0rGSamWhited: tl;dr: if you can inject raw multi-line text into requests to custom ports, you can own many text-based protocols.
SamWhitedoh, well yah, headers have to be sanitized
Ge0rGI'm pretty sure that SMTP looks sufficiently close to HTTP to be able to send an email just by passing a long list of custom headers ;)
jonaswI’m not so sure
jonaswor does SMTP use colons everywhere?
Ge0rGjonasw:
MAIL FROM: foo
RCPT TO: bar
jonaswew
jonaswbut can you add spaces to HTTP header names?
Ge0rGjonasw: it depends™
danielGe0rG: but you can't pass a data and a dot
danielAs mentioned earlier
SamWhitedit also uses mime like headers, yah. But that's an easy fix.
SamWhitedThat being said, I agree it's going to be a problem.
SamWhitedActually, no I don't. I need to be at my desk to test this, but I'd be suprised if most http libraries allowed invalid requests that way.
jubalhhas joined
jerehas left
jerehas joined
SamWhitedThe attack vector here relies on the users server or a component being malicios too, but part of xmpps security model is that you have to trust your server, so it botheers me less, though if we can mitigate it without too much trouble that seems fine.
SamWhited/thinking-out-loud
SamWhitedspling is herd
Ge0rGSamWhited: I tend to agree with what you say, but having such a reverse proxy in a corporate network will surely ring some compliance bells.
SamWhitedI doubt it, but I'lk ask our compliance person when I get to the office
andyhas left
SaltyBonesWho are these people who want to put their http upload data on a different machine but cannot be bothered to give it an interface which can check urls with HMACs and why should we care about them? :p
Ge0rGSamWhited: I'm also not sure that all http libraries properly sanitize headers.
Ge0rGSaltyBones: amazon cloud was called out
SamWhitedWe didn't use it at HipChat for this reason if you need a real world example.
SamWhitedAlso S3 gives you 5 gigs of free storage or something, but the bandwidth to proxy it is not free.
Dave Cridlandhas left
SamWhitedWell, in all fairness I'm not sure that it would fit HipChats use case anyways, but it was immediately discounted because there was no control over requests
SaltyBonesand they wanted total control or would some kind of "provide this token" have been sufficient?
jonaswSaltyBones, headers, obviously, because the server had full control over the URL all the time
SamWhitedWe needed the ability to set auth headers, I think. Can't remember if we needed other stuff for signing or not, seems like that didn't end up making it to the final thing.
Ge0rGSamWhited: so can we agree on a whitelist of "Authorization" and "Cookie"?
Ge0rGand _maybe_ "X-*"
jonaswGe0rG, also, what is the issue we’re seeing here by the way?
jonaswthe only real issue is with network boundaries, isn’t it?
Dave Cridlandhas left
jonaswand the possibility for the malicious XMPP server to disguise itself behind the HTTP upload-ing clients
jonaswotherwise the XMPP server could carry out the attacks themselves
jonaswand with much more precision
Ge0rGjonasw: yes.
jubalhhas joined
SamWhitedmaybe… if it's not actually a problem a white list seems like it will just be ignored by half of clients and end up causing interoperability problems. We should try to prove that it is, or is not, a problem first in my mind.
jonaswso if there is stuff which breaks from unauthenticated plaintext being sent, I’d be inclined to argue that the stuff which breaks is at fault
jubalhhas left
jonasw+1 SamWhited
SamWhitedI still think trusting the server is okay too.
jonaswthat too
jonasw(even though the server might be in an entirely different trust domain than the network the client is on)
Ge0rGSamWhited: if we make it a closed whitelist, we can just provide according xmpp elements for each header name
Ge0rGSamWhited: so that clients can't make dumb errors.
jonaswGe0rG, for all X-* headers? ;-)
jonasw(blanket-allowing X-* is a bad idea though, IMO)
Ge0rGjonasw: this is why I wrote "closed" :P
Guushas left
Ge0rGjonasw: yes, blanket-allowing X-* is bad. But less bad than blanket-allowing *.
MattJA whitelist makes the feature next to pointless, if the point was to allow arbitrary 3rd-party upload protocols
jonaswthat
SamWhitedAgreed.
jonaswGe0rG, I’d argue that an overly-open whitelist is worse than "*"
Ge0rGA blacklist is worthless as well, due to the complexities and lack of standardization of HTTP.
SamWhitedAlso agree.
MattJIf we're really worried, we can solve it by just ("just") having the client enforce the same same-origin policies a browser would
jonaswMattJ, you mean "none"?
Ge0rGMattJ: awesome idea. because same-origin works so well on HTTP already?
jonaswPOST/PUT can be sent cross-domain
MattJGe0rG, imagine a world without it
MattJjonasw, since when?
jonaswMattJ, at least with <form/>
Dave Cridlandhas left
Ge0rGMattJ: a world without cross-origin scripting? It would be great!
MattJjonasw, ah, but you can't send custom headers that way, at least
Ge0rGso we need to disable custom headers in 0363. QED.
jonaswMattJ, true
MattJfor not-same-origin?
jonaswnot-same-origin will ~always be the case with s3, won’t it?
MattJCNAME
jonaswdoes that work?
jonaswwith Host header etc.?
Fabianhas left
jonasw.oO(CNAME and set Host header. bazinga)
MattJYes, you can serve any domain from S3 with the right configuration and DNS records
Ge0rGthe problem with CNAME will be one of HTTPS certificate validation
MattJAmazon handles this for you, not an issue
jonaswMattJ, amazon maybe, but $non-amazon-cloud-provider object storage?
jonaswdo we want to pin people to amazon with that rule?
SaltyBonesI'm in no way an expert on the matter but https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy clearly says "Cross-origin writes are typically allowed" and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest has a function "XMLHttpRequest.setRequestHeader()"
MattJYou're not pinning them to Amazon - any provider can use Let's Encrypt for example, if you point a CNAME at them
la|r|mahas joined
jonaswMattJ, yes, but I bet not many do
MattJjonasw, this is not a protocol problem
jonaswMattJ, yes, but .....
MattJDelegating to a third-party is something people (rightly) want to do. It can be done.
jonaswdo we need to make it harder for people?
SaltyBonesSo it seems to me, like what we are trying to prevent, can be accomplished with JS in a w ebsite...
MattJThey don't have to do this, it's optional
SamWhitedhmm, this seems sensible at first glance. It does limit what you can do with the upload, but it does seem desirable from a security standpoint and the drawbacks aren't that severe. It moves the place you define trust to DNS, which is how xmpp does things anyways.
Dave Cridlandhas left
danielbut same origin doesn't protect you if your own server is bad
jonaswhmm
danielthey could just point a cname to 192.168. something
SamWhitedyou have to trust your own server anyways
jonaswSamWhited, in that case the whole discussion is moot and we can just allow arbitrary headers!
jonaswdaniel, +1
danielSamWhited, the entire debate is about not trusting your server
Guushas left
SaltyBonesCan somebody tell me why what we are trying to prevent is NOT something that JS on websites can do?
SaltyBonesIn other words, something that is "somebody elses problem".
Ge0rGdaniel: pointing a cname to 192.168.x.x won't give you a valid certificate.
Ge0rGSaltyBones: modern browsers will use CORS to prevent cross-origin POST/PUT
Ge0rGSaltyBones: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
> Additionally, for HTTP request methods that can cause side-effects on server's data (in particular, for HTTP methods other than GET, or for POST usage with certain MIME types), the specification mandates that browsers "preflight" the request, soliciting supported methods from the server with an HTTP OPTIONS request method
Dave Cridlandhas left
Dave Cridlandhas left
SaltyBonesGe0rG, CORS is a way so circumvent the SOP and the SOP is what I quoted above as not protecting you against cross origin writes...where is the error?
jonaswSaltyBones, because you read "typically" as "always"?
SaltyBonesjonasw, but this is enforced in the browser not per site, right?
jonaswSaltyBones, https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Preflighted_requests
> In particular, a request is preflighted if any of the following conditions is true:
> * If the request uses any of the following methods:
> * PUT
MattJIt's enforced in the browser. In our discussion, the XMPP client is in the place of the browser
jonaswI think that is pretty clear
jonaswso SaltyBones, if e.g. your plastic router instructs the browser to reject cross-origin POST requests, it would be safe with modern browsers.
jonaswbut it would not be safe against HTTP-Upload
Ge0rGMattJ: so we need to mandate the XMPP client do an HTTP OPTIONS call to the server and to check CORS
uchas joined
jonaswGe0rG, noooooooooooooooooo
MattJ> 13:19:49 MattJ> "Let's use HTTP because it's simple"
Ge0rGI'll -1 the XEP until this is mandated, or until I'm kicked out of Council.
MattJ-1's Ge0rG
jonasw-1's HTTP
jonaswI think that’s the right course of action anyways.
MattJfirst performs an OPTIONS request to verify he's allowed to -1 Ge0rG
Ge0rGMattJ: you are not.
Guushas left
intosi303 Pull the other one
Dave Cridlandhas left
jonaswGe0rG, what about my "if a thing breaks by unauthenticated plaintext, it is that things fault"?
Dave Cridlandhas left
Alexhas joined
Ge0rGjonasw: talk to a BigCorp CSO and explain that to them, and how their "trusted core network consisting of the datacenter and the office network" must be fixed yesterday.
Alexhas left
jonaswSamWhited, my feeling is that "trust your serevr" is not applicable here, because this is a different level of privilegue. I trust my XMPP server to handle my IM, but I wouldn’t trust it with remote code execution on my client. Likewise, I’m not sure I’d trust it with "arbitrary" network access.
Dave Cridlandhas left
jonaswGe0rG, why the hell would you allow people to run XMPP clients in your trusted core network?
valohas joined
jonaswor any not thoroughly audited software for that matter
jonaswif it’s so crucial to your operations and there’s no additional layer of authentication except being in that network.
Ge0rGjonasw: because Gajim portable and Direct-TLS on :443
jonaswdon’t allow removable drives?
Ge0rGdon't allow The Internet?
jonaswon the same note, why would you allow people to accsss the intenet at all from that network. you’re doing it very wrong in that case.
jonaswyeah
SamWhitedYou're alreadytrusting that by virtue of connecting to a thing in an srv record.
jonaswSamWhited, but it can’t control what contents I send there, except for its domain name
jonaswand even that it can’t really controll
jonaswwhile HTTP Upload does let it control a substantial part of the content I send
SamWhitedfair
jonaswso, strawman proposal: what about we make a disco#info form or something which tells the client which headers will be used by a given upload service. They can then decide whether to use that service at all (before showing in the UI that an upload would be possible, thus improving UX in the "no, that’s not okay" use case). And then clients can keep their own whitelist, while we recommend a whitelist in the XEP which contains Authentication, Cookie, Cookie2 (maybe?), and whatever S3 needs
Dave Cridlandhas left
Ge0rGjonasw: please don't.
jonaswmention the trade-offs clearly in the security considerations, too
jonaswGe0rG, why not?
Ge0rGjonasw: the client can't decide that, and the user even less so.
jonaswhow can we decide what the client can’t decide?
Ge0rGjonasw: the client can't decide anything.
danielhas left
Guushas left
FlowGe0rG, it's hard to follow your arguments when you don't provide an explaination
Dave Cridlandhas left
jonaswI’m fine with allowing any header then, I think. Most havoc can be wreaked (on the web side, which is why we have CORS etc.) due to cookies
jonaswand existing sessions
jonaswwhich isn’t applicable here
Ge0rGFlow: which argument do you want explained?
FlowGe0rG, why can't the client decide which headers to use or not?
Ge0rGFlow: because client developers are already incapable to securely implement IQs, Carbons and XHTML-IM. I'm a full-time IT security consultant and I have a hard time figuring out which HTTP headers might have malicious side-effects.
andyhas joined
Dave Cridlandhas left
Ge0rGFlow: a client doesn't know if it runs in a "secure network" of some sort
Flowgot it, thanks
Ge0rGhas left
Ge0rGhas left
danielGe0rG, could you name one header that can cause bad side effects? (something that couldn't be done with the URL)
daniel(assuming the headers are stripped of \n which I already agreed to)
Ge0rGdaniel: sending a mismatching `Host` header will confuse middleboxes.
jubalhhas joined
Dave Cridlandhas left
Guushas left
Ge0rGa `Connection` header might at least confuse the server, causing a small DoS
daniela middle box that mitm https?
Seve/SouLhas joined
Ge0rGdaniel: yes, that's a common setup at BigCorps
danielhas left
Ge0rGWe could also require an Origin header to be set to the HTTP-Upload component name, cf. https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Origin
Ge0rGBut this is less strong than any enforced filtering
Dave Cridlandhas left
jonaswGe0rG, that concurs with my argument "do not let the server override any header you’re setting yourself"
pep.Let me jump in an propose a jingle-ft component on the server to counter http-upload :-°
jonaswboth Connection and Host would typically be set by the client (one due to how the lib works, one from the URL)
pep.is waiting for the stick
jonaswpep., do it
Ge0rGjonasw: "typically"
daniel> Ge0rG, that concurs with my argument "do not let the server override any header you’re setting yourself"
that by the way i'm fine with and i'm actually implemting this in Conversations right now
Ge0rGjonasw: do you know from memory which HTTP headers are set by your favorite http client library? And which of those can't be overridden?
pep.jonasw, I wish I had the knowledge and time for it, but yeah I've heard ideas here and there about this already
Dave Cridlandhas left
Ge0rGjonasw, daniel: so what you are doing is the blacklist approach.
danielin that case yes
danielalthough it is not a fixed blacklist
Ge0rGhas left
Ge0rGhas left
SaltyBonesProposal: We ditch alls this in favor of something that ONLY supports what amazon s3 does
SaltyBonesWhich hopefully should be easy to tighten...
SaltyBonesThis gives people the option to 1. Use S3 2. Use their XMPP server 3. Emulate one of two API
intosihas left
intosihas joined
Dave Cridlandhas left
MattJExcept that I wanted to experiment with using Dropbox/NextCloud/etc. as upload services
MattJand neither mimic S3
andyhas left
stefandxmhas joined
danielMattJ, maybe do your expirments and see what headers they require? probably most of them will just use authorize anyway?
danielin which case instead of allowing header we could just allow authorize or something
SamWhitedI really want to try Joyents blob file storage with the Content-MD5 header.
SamWhitedAlso allowing the server to set the durability-level header which indicates the number of backups in different regions that are required.
moparisthebesthas joined
Ge0rGSamWhited: that sounds like a _very special_ special case.
danielSamWhited, that sounds a bit dangerous to give the client control over that?
MattJdaniel, I don't know about Dropbox, but NextCloud is either basic auth (if you don't mind sharing credentials with your server) or cookies
SamWhitedNot especially; they could cost me a tiny bit more money by having the max replication factor all the time, or not have backups of their own files
SamWhitedBut yah, fair enough, that's a special case.
danielMattJ, then maybe authorize and cookie
HolgerFWIW, being able to set an X-ejabberd-something header would be very useful for me.
Ge0rGhas joined
Ge0rGdaniel: I could live with `Authorization` and `Cookie` being the only whitelisted headers.
Holger(Or without the "X-", IIRC today's youth dislikes that?)
Ge0rGHolger: what for?
HolgerGe0rG: Mapping the HTTP request to a virtual host (configuration).
MattJDropbox is also Authorization it seems
danielthe thing is that i wasn't the one who wanted headers in there in the first place
Ge0rGHolger: you are doing it wrong.
Dave Cridlandhas left
danielso it's hard for me to argue for either one side
HolgerGe0rG: How to do it right?
Ge0rGHolger: use the Host header to route to virtual hosts? :P
HolgerNo.
HolgerOr well.
Dave Cridlandhas left
Ge0rGhas joined
Dave Cridlandis just thinking this is definitely more complex than the Security Considerations of the XEP makes out.
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
danielI mean if we white list only cookie and auth you could set a cookie Holger
Ge0rGHolger: on your own infrastructure you could also `PUT https://yourserver.com/yourxmppdomain/random/random.jpg`
jubalhhas left
danielIf you don't want to use the vhost
HolgerGe0rG: That works if you have an 1:1 mapping between HTTP 'Host' and virtual hosts of course, but admins will spam your tracker if you impose such restrictions.
danielOr what Ge0rG said
HolgerYes I suggest such things in the docs.
Guushas left
HolgerStill tracker spam :-)
SamWhitedI'm not sure the whitelist really works; as soon as we do that most signing schemes break. Eg. Joyents requires Host, Amazon's requires that you specify headers to sign up front, I think and has a handful that it always requires.
Holgerdaniel: Yes I could probably abuse Auth/Cookie headers.
Dave Cridlandhas left
SamWhitedAnd if we're really worried about invalid headers from a malicious server, having any headers at all is a problem (though as I said, I'm not convinced we should be worried about that)
HolgerI'm just saying that I doubt we'll come up with all possible use cases in here.
daniel> I'm not sure the whitelist really works; as soon as we do that most signing schemes break. Eg. Joyents requires Host, Amazon's requires that you specify headers to sign up front, I think and has a handful that it always requires.
Can you find out what exactly it requires?
SamWhitedYah, just a moment, I hate looking at the S3 docs (which are terrible) so I was being lazy and looked up Joyents instead.
HolgerSo the idea now is to cope with a few services that are popular today and just hope for the best that the next one will use the same headers?
Alexhas joined
SamWhiteda bunch of x-amz- headers, otherwise I'm having trouble finding info.
SamWhitedBut what Holger said.
suzyohas joined
Ge0rGSo it's ["Cookie", "Authorization", "X-*"]
Holger...
Dave Cridlandhas left
SamWhitedI'm still not sure what problem we think we're solving with this.
SamWhitedAmazon also does Host and User-Agent at least, I think
SamWhitedAlthough User-Agent makes no sense to me, so maybe this is wrong
danielSamWhited, the user agent has to be set to something specific?
SamWhitedI'm reading this page, and being confused: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
SaltyBonesSamWhited, the problem we are trying to solve is that we are currently giving the server the possibility to trigger arbitrary HTTP requests from the client.
danieloh signed
danieli get it
SamWhitedSaltyBones: that is not a problem description. Why is that bad?
SamWhitedI know we've been through this, but I'm just not sure that it's actually a problem and am trying to figure out if it would really cause any security issue.
SaltyBonesSamWhited, I'm not convinced that it is but Ge0rG's link does suggest otherwise.
Ge0rGSamWhited: that signature needs to contain the content md5. I can't see how you can make a client generate that header.
Dave Cridland[[ 20 minutes until Council, BTW ]]
SamWhitedDoes it? I know I've made amazon work before, but yah that doesn't seem like it can be supported easily without additional modifications
SamWhitedSaltyBones: his link was about malicious invalid headers, right? (I lost it, sorry, no search in any of my clients) This doesn't solve that (again, if it's actually a problem in our case)
stefandxmhas left
Ge0rGSamWhited: the signature also depends on YourSecretAccessKeyID, which I'm sure you don't want to leak to the client.
Ge0rGSamWhited: so either the xmpp server needs to have the MD5 in advance or you are doomed.
SamWhitedGe0rG: that's fine, you can generate one per request
intosihas left
SamWhitedBut yah, MD5 is a problem. It might not always be required though, because I know I've made this work before
intosihas joined
Dave Cridlandhas left
Guushas left
suzyohas joined
Dave Cridlandhas left
lskdjfhas joined
waqashas joined
pep.has left
tuxhas left
MattJSamWhited, I think it's optional, in that I think if you don't provide the header you just put an empty string in the string-to-sign
Dave CridlandBy the way, if anyone wants to take some minutes for the Council meeting (in a few minutes from now), that'd be tremendously useful.
Dave Cridlandhas left
Ge0rGhas left
blablahas left
andyhas left
vanitasvitaehas left
MattJSamWhited, and at this point... it looks like S3 allows putting everything into the query string? :)
vanitasvitaehas joined
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
Ge0rGhas left
SamWhitedThat's useful, I didn't realize that. I would prefer not to put auth in the query string either way though.
Ge0rGhas left
Ge0rGhas joined
Ge0rGhas left
SaltyBonesWhy?
Ge0rGhas left
jubalhhas joined
Ge0rGhas left
SamWhitedBecause it's generally accepted best practice that you don't. Things log URLs and it's acceptable to do so, they don't generally log headers (because that's generally where you put things you don't want logged like this)
tuxhas joined
Dave Cridlandhas left
Dave Cridland[[ Council time over in council@muc.xmpp.org ]]
goffipep.: I have a server side jingle-ft component
pep.goffi, !
pep.Is it in a working state
goffiI'm currently working on it, but it's already working yes
pep.Also, there's no XEP for that right? Or how much is it covered by the current XEP?
goffithe XEP is jingle FT
goffiinstead of sending to an other client, I send to the component
goffinothing else to do
tuxhas joined
Dave Cridlandhas left
SaltyBonesand then the server offers it via httpupload or again jingle?
pep.Sure but then you can do things with your component you can't do with clients
pep.You can use your component to proxy the transfer, to retry when the other contact is back online etc.
pep.Or just serve the file
SaltyBonesI'm not complaining just trying to figure out what's happening. :)
goffiSaltyBones: I'm on this part currently, implementing XEP-0329, but I'm not happy with it, I plan to write a feedback on standard@ about that
pep.SaltyBones, jingle
pep.I hope
pep.I don't see the point of http-upload here
pep.It's not unfeasible though, the component could serve via http as well
goffiI'm saying that since HTTP upload is on the table. The only interest is has, is that it's easy to implement when jingle is not yet implemented in a library
goffibut once you have jingle, it's more easy to do this way.
Dave Cridlandhas left
andyhas joined
goffiand with namespace delegation, you can even send fileto your bare jid, you don't even need to find the component. I've not done it yet, but it's in my TODO
jjrhhas left
Dave Cridlandhas left
blablahas left
blablahas left
blablahas joined
jubalhhas left
Ge0rGhas left
Dave Cridlandhas left
jubalhhas joined
jubalhhas left
Dave Cridlandhas left
Guushas left
Guushas left
Dave Cridlandhas left
efrithas joined
jjrhhas left
jjrhhas left
jubalhhas joined
Dave Cridlandhas left
Dave Cridlandhas left
lumihas joined
la|r|mahas joined
Kevhas left
Dave Cridlandhas left
jubalhhas left
blablahas left
SaltyBoneshas left
rionhas left
Dave Cridlandhas left
jjrhhas left
blablahas left
Dave Cridlandhas left
tim@boese-ban.dehas left
Dave Cridlandhas left
andyhas left
Dave Cridlandhas left
Ge0rGhas left
Dave Cridlandhas left
tuxhas joined
blablahas left
Guushas left
efrithas left
efrithas joined
Guushas left
Guushas left
stefandxmhas joined
lskdjfhas joined
Dave Cridlandhas left
lovetoxhas joined
Guushas left
pep.has left
Dave Cridlandhas left
Kevhas joined
jubalhhas joined
Dave Cridlandhas left
stefandxmhas left
Dave Cridlandhas left
andyhas joined
Dave Cridlandhas left
SaltyBonesmessage-id question: why can't we use a counter
SaltyBonesI have heard: 1. State keeping is impossible, 2. Attacks based on guessing the id but I'm not convinced that either is a real thing.
la|r|mahas left
Dave Cridlandhas left
SamWhitedState keeping is very difficult if you have a cluster. Your counter has to be centralized and atomic, which rather defeats the purpose of having a cluster.
SaltyBonescan I PM you for discussion? I don't want to spam this channel all the time :)
SamWhitedMessage me directly please (sam@samwhited.com); none of my clients handle PMs well.
SamWhitedThough this is probably good discussion and I don't think you'd be spamming this channel :)
Dave Cridlandhas left
jerehas left
jerehas joined
Dave Cridlandhas left
andyhas left
Dave Cridlandhas left
pep.has left
@Alacerhas left
waqashas left
@Alacerhas joined
@Alacerhas left
@Alacerhas joined
Dave Cridlandhas left
Kevhas left
jerehas joined
jerehas joined
Steve Killehas left
Dave Cridlandhas left
Dave Cridlandhas left
jjrhhas left
blablahas joined
Dave Cridlandhas left
Steve Killehas joined
Tobiashas joined
andyhas joined
Dave Cridlandhas left
jonaswyeah
jonaswI’d prefer such discussions here too
jonaswmost of the time they’re insightful
Dave Cridlandhas left
waqashas joined
intosihas left
andyhas left
Dave Cridlandhas left
jubalhhas joined
moparisthebestSaltyBones, state keeping client side is impossible too
andyhas joined
moparisthebestsee: vm snapshots
moparisthebest(server side also)
Dave Cridlandhas left
Dave Cridlandhas left
andyhas left
Dave Cridlandhas left
jjrhhas left
andyhas joined
Guushas left
jjrhhas left
Dave Cridlandhas left
lskdjfhas left
andyhas left
la|r|mahas left
andyhas joined
Dave Cridlandhas left
rionhas joined
Guushas left
Dave Cridlandhas left
jjrhhas left
jjrhhas left
Seve/SouLhas left
Seve/SouLhas joined
Seve/SouLhas left
Seve/SouLhas joined
ralphmhas joined
Dave Cridlandhas left
jjrhhas left
stefandxmhas joined
Dave Cridlandhas left
Syndacehas left
Syndacehas joined
rionhas left
rionhas joined
Dave Cridlandhas left
efrithas left
jerehas joined
Dave Cridlandhas left
Guushas left
Dave Cridlandhas left
lskdjfhas joined
Dave Cridlandhas left
efrithas joined
lumihas joined
lskdjfhas joined
rionhas left
Dave Cridlandhas left
Dave Cridlandhas left
stefandxmhas left
Dave Cridlandhas left
Dave Cridlandhas left
Guushas left
Dave Cridlandhas left
Guushas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
Guushas left
Dave Cridlandhas left
Ge0rGWe could also discuss why MUC-PMs are still broken in some clients :>
SamWhitedThey're just broken in general whichever model you take for them. There are tradeoffs both ways.
Dave Cridlandhas left
Ge0rGThey are broken in poezio, but it seems that once you explain to a reasonable developer how to implement them, they magically start working.
Ge0rGAt least it's a problem that's easier to solve than MUC reflection matching
efrithas left
efrithas joined
GuusGe0rG: are they more broken than UI's not being aware to check if PMs are permitted in the room?
nycohas left
Dave Cridlandhas left
SamWhitedGuus: you either have what Conversations / Mcabber do where they're mixed in with room traffic and you constantly accidentally send things you meant to be a PM to the room, or they're separate conversations in which case they look like 1:1's except a lot of stuff you'd expect to work just doesn't because they're actually MUCs.
SamWhitedAlso if they're mixed in with the room it's just hard to follow a conversation by PMs if there's also room chatter going on.
Dave Cridlandhas left
Dave Cridlandhas left
Ge0rGGuus: that should be solved by properly augmenting outgoing messages with their error bounces
Ge0rGSamWhited: I think that daniel's take at integrating PMs into the MUC is a conscious effort to make them unusable ;)
Ge0rGBesides of not working when you are not in the room, and most clients getting MUC-PM Carbons wrong, my experience is that they work just like normal messages, except you don't know the actual JID of the receiver.
SamWhitedGe0rG: as opposed to having them being separate conversations? That's almost as unusable, just for different reasons. Especially since if the person changes their nickname it immediately breaks everything and makes the world a confusing place.
daniel> Besides of not working when you are not in the room,
or the recipient.
but yes not working messages. pretty minor
Ge0rGSamWhited: a smart client would probably implement nick change tracking, but that doesn't work well for history.
Holgerhas left
Ge0rGSamWhited: but as opposed to nickname wars from the IRC days, people have pretty constant nicknames today.
danielit's almost perfect. expect. you know. messages don't work if the recipient drives through a tunnel
SamWhitedRight; MUC PMs in general are just a bad experience, no matter how you slice it.
Dave Cridlandhas left
Ge0rGI don't know. My experience with them has been better than with some MUCs, and even better than with direct messages in some corner cases
danieland yes. making the UX bad in Conversations and 'hiding' it behind a long press is an attempt to guide people to send regular messages
Ge0rGdaniel: except people botch it all the time and send private things in public by accident
blablahas left
Ge0rGdaniel: it's okay to hide them, but please don't make them easy to mis-use
andyhas left
Dave Cridlandhas left
Dave Cridlandhas left
Holgerhas left
Holgerhas left
Neustradamushas left
Neustradamushas joined
marchas left
marchas joined
Ge0rGI think that with always on clients and some self-presence checking code they can be made to work pretty well. Bonus points if you keep outgoing PMs stored until the nickname comes back online
danielLol sure. But why?
Dave Cridlandhas left
jonaswGe0rG, so I can steal that nicknames PMs?
jonaswsweet
danielThe serve no purpose besides annoying me when people think that I help them faster if they pm me
Ge0rGjonasw: how do you know that I'm me?
jonaswGe0rG, I could’ve established that during the conversation.
blablahas joined
Ge0rG(besides of the obvious one, me being the only person who cares about PMs)
daniel> Bonus points if you keep outgoing PMs stored until the nickname comes back online
Until you are both online at the same time
Ge0rGjonasw: I could have left the conversation and been replaced by Mallory at any moment in time during our dialog
Dave Cridlandhas left
Ge0rGdaniel: you can't see their presence if you are offline 😛
danielPretty cool feature these PMs
jonaswGe0rG, not with a client which reasonably checks identity
jonaswi.e. either uses the real JID if available or assumes the worst :>
Ge0rGdaniel: so you are annoyed because your client is popular? Note taken.
danielAnd I could even have four conversations with four different Ge0rGs in four different mucs
danielAnd I wouldn't even know if it's the same Ge0rG
danielPretty fucking awesome
danielPlus the regular conversation with the real Ge0rG if have
jonaswI like what pidgin does (yes, really)
Ge0rGjonasw: daniel: now you are arguing against anonymous MUCs
jonaswif it knows the real JID, it’ll just make a conversation with that
danieljonasw: execute code remotely?
jonaswcompletely circumventing the MUC. and your privacy if real JIDs are only visible to mods, I guess.
jonaswdaniel, hah.
Ge0rGjonasw [21:11]:
> I like what pidgin does (yes, really)
Who are you and what have you done to jonasw?
Dave Cridlandhas left
Holger> now you are arguing against anonymous MUCs
Go go go!
HolgerOnce we ditched anon MUCs, there's clearly no point anymore in keeping MUC PMs, is there?
jonaswwe might need to solve the SPIM issue first.
jonaswor also ditch public MUCs in general. and even then I’m not convinced that this is a good idea.
ZashSolve you say?
danielmaybe we need a small protocol where you can ask someone for their real jid . or give them your real jid. sort of like an invite to chat 1:1. and the other person can accept or decline
jonaswZash, yes.
Ge0rGHolger: tell that to the people who created MIX proxy JIDs.
Holgerjonasw: Yes my suggestion is ditching public MUCs.
jonaswHolger, hm.
danielso clients could render that as Ge0rG (georg@domain.tld) wants to talk to. is that cool?
jonaswHolger, what IM system would you propose as support channel for, say, prosody, then?
Dave Cridlandhas left
Holgerjonasw: Or keep them the half-broken way we have them now. That's good enough for the few of us who use them.
Holgerjonasw: IRC.
jonaswugh
HolgerOk, Matrix :-)
jonaswHolger, okay, if we agree on that, we could "just" solve that with UX
SamWhitedMaybe we ditch anonymous mucs, and then if you need to be anonymous your server could issue you with some sort of temporary JID that you could use. Some sort of "burner" jid, maybe. (actually, there were reasons this wasn't ideal, but I forget what they were every time this conversation happens)
Ge0rGSamWhited: didn't you even write a strawman xep for that?
Ge0rGBTW, was MIX even mentioned at the summit?
SeveHeh..
HolgerOr just register an anon JID manually if you need that.
Holgerjonasw: Rather than investing time in fixing PMs we should fix that multi-account story!
Ge0rGSamWhited: the only problem with burner JIDs is that they are free and nobody can block them
andyhas joined
jonaswHolger, I tend to agree
Ge0rGSo all we need to do is a PoW attached to creating them!
jonaswI’ll... just ... stop following that discussion at this point.
SamWhitedGe0rG: yah, there needs to be some better policy or access control around them, but there didn't seem to be enough interest for that to be developed.
Ge0rGDo I hear blockchain m
Guushas left
SamWhitedBut it's no different than people running their own server that they could add tons of JIDs on really, and public servers can certainly rate limit since it requires authentication to get a burner JID
SamWhitedServers could even say that burner JIDs aren't allowed to federate, so they could only be used for MUCs on that server (in which case you could also allow them with SASL-ANONYMOUS)
Dave Cridlandhas left
Ge0rGSamWhited: now this is a really useful idea. I'm running a non federated anonymous server for support MUC purposes on my domain.
SamWhitedGe0rG: yah, I do the same, that could be a burner JID service as well and just don't allow burner JIDs to send to stuff on other domains to prevent spam.
jonaswdaniel, IIRC, when zinid announced that he was working on the MUC bare-presence thing, you asked whether it’d include disco#info caps. Why did you ask for that? Which part of a MUCs disco#info do you need?
Ge0rGSamWhited: I'd say your last proposal is sufficient to kick all that proxy JID stuff from MIX.
Dave Cridlandhas left
SamWhitedGe0rG: there was some reason that it wasn't that I think I ended up being convinced by, but I can't remember what it was.
efrithas left
SamWhitedBut I would love it if we just ignored anonymous MUC and that was handled out of band, by my proposal or something else.
SamWhitedAnonymous identities are useful for more than just chat rooms, so it doesn't make much sense to me that it should be part of the groupchat spec and only useable there.
danieljonasw: mhhh I guess I don't really *need* it. I think I always query the muc anyway to get a response and avoid server not found et al. But I do work with the non anonymous, members only feature
efrithas joined
danielAnd the form field that tells me if users are allowed to write pms and set the subject
jonaswdaniel, okay, so you essentially need the Form :/
danielWhich currently doesn't provide the information I need anyway on ejabberd...
Ge0rGdaniel: you should write an xep (or a new section for 45) on how to properly create a private MUC
goffihas left
danieljonasw: yes. I'm aware of ejabberd putting in the member count though... Which makes that difficult...
Dave Cridlandhas left
Dave Cridlandhas left
jonaswdaniel, so that use-case wouldn’t profit from splitting the caps hash into identities+features and forms
jonaswpity
danielOther than that a lot of my conferences are configured the same. And having a caps hash would actually minimize the traffic a bit
jonaswdaniel, but only if the occupant count isn’t in there
danielYes
jonaswand if it isn’t, it probably doesn’t matter a lot if we split the hashes because MUCs generally don’t have a very diverse feature set I assume
Ge0rGI'm displaying the occupant count in MUC invitations... 🤔
andyhas left
jjrhIs there not a way to set a MUC to show everyones full JID?
jjrhBecause this issue is more of a annoyance in 'trusted' places - aka internal chat where there is no reason I shouldn't know you're JID and when I click your name in group chat (as a lazy way to send a PM vs going to my roster) it should do the right thing.
danieljonasw: fwiw the split of what muc puts into features and the form is pretty weird and confusing anyway
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
danielAnd the naming of the features as well
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
moparisthebestI quite like that burner jid thing
moparisthebestwhat were the downsides again SamWhited ? (or whoever)
Dave Cridlandhas left
SamWhitedI wish someone would remind me, but I do remember being convinced that it wouldn't work for MIX ¯\_(ツ)_/¯
Alexhas left
jjrhbeh i'm dumb, I didn't know showing jids was a option in room configuration that probably solves /my/ issue at least.
Dave Cridlandhas left
Dave Cridlandhas left
stefandxmhas joined
jjrhhas left
Dave Cridlandhas left
Dave Cridlandhas left
moparisthebestSamWhited, oh, because burner JIDs aren't shared across devices?
moparisthebestwhich basically means multi-device can't work
moparisthebestso what if you essentially just solved the alias problem while you are at it?
Dave Cridlandhas left
moparisthebesta XEP that gives 'burner JIDs', except rather than being extra logins, the server just delivers all messages to that JID to your account, and you can also send things as that JID, same connection
moparisthebestit would be a bit complicated, but would solve the alias problem *and* the anonymous muc/mix/future mux/whatever problem
Dave Cridlandhas left
jonaswif multi-device doesn’t work, I’d be pretty unhappy wtih that
Syndacehas left
Syndacehas joined
Dave Cridlandhas left
stefandxmhas left
efrithas left
Dave Cridlandhas left
Dave Cridlandhas left
Dave Cridlandhas left
danielhas left
danielhas left
danielhas left
Dave Cridlandhas left
danielhas joined
Dave Cridlandhas left
brahas left
Dave Cridlandhas left
Syndacehas left
Syndacehas joined
andyhas joined
Dave Cridlandhas left
intosihas joined
Dave Cridlandhas left
jubalhhas joined
danielhas left
Dave Cridlandhas left
SamWhitedyah, that's probably it; multidevice seems like a must. I actually had it that way originally before someone reminded me that SASL provides an authorization identity; mixing the two streams felt *really* dangerous to me though.
andyhas left
SamWhitedThe server could always issue the same burner JID to all of your devices though.
Dave Cridlandhas left
danielhas joined
Alexhas left
Alexhas joined
Dave Cridlandhas left
valohas left
valohas joined
Dave Cridlandhas left
danielhas left
danielhas joined
Dave Cridlandhas left
Tobiashas left
moparisthebesthas joined
SamWhitedhas left
jubalhhas left
Dave Cridlandhas left
Dave Cridlandhas left
Ge0rGBurner could work as a jabber transport as well.
SamWhitedGe0rG: I didn't understand that?
suzyohas joined
Dave Cridlandhas left
Tobiashas joined
stefandxmhas joined
andyhas joined
Dave Cridlandhas left
Ge0rGSamWhited: implement it as an xmpp 2 xmpp transport...
Ge0rGWould give us roster control and the ability to unsubscribe and obtain a new identity
SamWhitedI don't think a second JID would help you with that, you still need the client and server to speak the protocol. I suspect I'm missing something though
SamWhitedoh, not 'xmpp2 to xmpp transport'
SamWhitedI am still not sure how it helps or what use an xmpp to xmpp transport is though
lskdjfhas joined
SamWhitedDifferent identities in your roster I'll grant, although merging rosters is weird UI wise
andyhas left
Dave Cridlandhas left
SaltyBonesI postulate that all of this is caused by people wanting to use the same software for private chats and anonymous public chats. There is surprisingly little overlap in terms of both functionality and UI.
SamWhitedI tend to agree
SaltyBonesAlso, people don't understand how any of this works anyway. If we completey drop anonymous JIDs it will be strictly better because nobody even understand what the benefits are or when they apply so they cannot make use of them. :p
blablahas joined
ZashMore or less public chats are what we use XMPP for ourselves. Don't underestimate that use case.
SaltyBonesZash, what do you mean by more or less public chats?
ZashSaltyBones: This very room for example.
SaltyBonesThis room could have JIDs of everybody and nobody would care...
ZashI would, I'm not entirely comfortable with random people being able to contact me out of band just becasue I join a room.
ZashNot that my JID is secret
SaltyBonesThat's imho a matter of spam handling
blablahas left
Dave Cridlandhas left
ZashI don't mean because of spam
SaltyBoneshas left
Dave Cridlandhas left
SamWhitedI can see anonymity being useful, I just don't think it makes sense to lump it in with grouochat.
SamWhitedgroupchat, even.
ZashIn the prosody support room, the intention is for people to ask the room, so that someone who has time and will can reply and help. Sometimes they instead go directly to PM someone, which can create some amount of stress over not being able to shift the work to others.
jjrhWhile I set everyone to who may discover JID's, clicking someones name still creates a message in the context of the MUC instead of a direct message. This is with Gajim but i'm guessing this is a issue with other clients.
Tobiashas joined
SaltyBonesZash: so you re saying it is already as bad as if there were no anonymous IDs? ;)
Dave Cridlandhas left
Dave Cridlandhas left
jjrhZash, it's not just stress - chances are the answer is probably useful to others. :)
ZashThat too
jjrhMUC message threads in a smart UI would be really cool on high volume channels where multiple questions/discussions are going on at the same time.
ZashThere was a client that did that, IIRC. Vacuum-IM perhaps?
ZashThere was one (mabye the same) that did #hashtags that let you filter on that as well.