Re: [Standards] Proposed XMPP Extension: HTTP File Upload

2015-07-27 Thread Rick van Rein
Hello,

The HTTP upload mechanism hinges on the secrecy of the upload URL.  Any
client who receives it and accidentally publishes it can convey the
document.

I would like to point you to an alternative, namely MSRP.  It is a
straightforward protocol, similar in nature to HTTP but with a few
desirable facilities extra:
 - mention both source and destination address, which may be of
u...@domain.tld form
 - block-by-block uploads enable multiplexing streams
 - checksums on each block
 - the protocol is symmetric; either side can initiate a transfer
 - TLS may be used for encryption and server authentication and,
possibly, client authentication

Although I agree that HTTP is useful for resource sharing, it lacks the
security facilities to separate independent downloaders which weakens
the security model of this proposal in ways that MSRP does not.  MSRP,
as you may know, is the SIP answer to file sharing.

I am willing to look for the time to write this up in a new XEP- --
but only if this is considered sufficiently interesting as an
alternative to this list.

-Rick


Re: [Standards] Proposed XMPP Extension: HTTP File Upload

2015-07-27 Thread Rick van Rein
Hello,

 I would like to point you to an alternative, namely MSRP

 MSRP is scary as an atomic war :)

For my understanding, could you rephrase that in technical terms please?

-Rick


Re: [Standards] File Transfer Roadmap

2015-07-27 Thread Rick van Rein
Hi Sam / others,

I hope I'm not being ignorant by not having been in the MUC, but one
issue deserves attention I think:

When talking of file transfer, the issue of NAT traversal invariably
pops up, and becomes a strong selection criterium for the mechanism to
use.  Please don't forget that file transfer between pre-negotiated
endpoints is *much* easier in the case of transparant addressing, which
we may assume when IPv6 is being used.  A sound choice of mechanism
should take IPv6 into account, or a separate mechanism might be
preferred for IPv6, or perhaps a variation e.g. without NAT traversal
techniques.  To simplify the transition, ideally the same mechanism
would be used for IPv4 and IPv6 of course.

Cheers,
 -Rick


Re: [Standards] XEP-0322: EXI for constrained processing environments

2015-07-01 Thread Rick van Rein
Hi Dave,

 It's remarkable how small XML processors can be these days, but in any
 case, have you considered how encryption fits into this, or were you
 assuming a trusted network?

Have not (as is common with XMPP).  I can imagine that there would be
applications of constrained environments, possibly on trusted networks or
using ZigBee processors with hardware support for encryption.  In general,
I put up the desire of not wanting to get to EXI through fullblown XML to
at least not block such applications.

-Rick


Re: [Standards] XEP-0322: EXI for constrained processing environments

2015-07-01 Thread Rick van Rein
Hi Daniel,

Thanks for the references; I had indeed missed discussion.  I also noted that 
the Last Call seems to have been closed.

 I think you gave yourself the answer in the latter part of your mail 
 mentioning that with a dedicated port one can start using EXI right-away.
 Is this approach not working for you?

This means that the constrained elements could only communicate through their 
home server, for which a port was hard-configured, right?  They could not 
perform SRV lookups for another domain and communicate with that.  This might 
be a reasonable assumption, but it is good to be aware of such limitations.

 As for the EXI cookie, is it an idea to use a processing instruction
 and/or XML declaration that would be sent to the server?

 Please correct me if I am wrong but I think this has nothing to do with 
 processing instructions. The EXI Cookie is an optional part of the EXI 
 stream. In fact it is nothing more than a 4 byte magic cookie that serves 
 to identify whether a stream is XML or EXI.

Yes, you are right.  I was not aware that $EXI was part of the EXI 
specification, and assumed it was invented by the XEP.

Cheers,
 -Rick


[Standards] XEP-0322: EXI for constrained processing environments

2015-06-25 Thread Rick van Rein
Hello,

I was happy to run into XEP-0322, explaining a path of integration for
the compact XML representation of EXI.

The fully specified path assumes starting off with fullblown XML and
then switching to EXI; this is a scenario that would work when the
viewpoint is saving bandwidth.  Another usecase, where EXI serves the
relative simplicity of a client, is not really dealt with under the
usual clarity.

I am thinking of constrained processing environments, such as clients on
microcontrollers.  These may want to use EXI to avoid having to deal
with the full XML notation, and they would most certainly not be
serviced if they have to go through an initial handshake based on XML. 
Although 2.4 gives some ideas and possibilities, its style sounds
informative (ex. and e.g.) rather than normative, which means that
there is non real certainty to be drawn.  I am writing to emphasise that
this should IMHO be cleared up before finalising this XEP.

As for the EXI cookie, is it an idea to use a processing instruction
and/or XML declaration that would be sent to the server?  That would be
in line with common XML syntax without adding the burden of XML parsing
onto the (constrained) client.  A few forms could be used, and in all
honesty, may be better standardised as part of EXI than as part of
XEP-0322 because it would occur everywhere EXI is used:

?xml version=1.0 syntax=exi? (illegal 1.0 syntax)
?xml version=1.0-exi?   (illegal 1.0 syntax)
?xml version=1.0 exi=1.0?(illegal 1.0 syntax)
?xml version=1.1?(breaks with 1.0 requirements)
?exi version=1.0? (after ?xml...? -- upon recognition, respond
with the same string, would otherwise ignored?)

Ref: http://www.w3.org/TR/REC-xml/#sec-pi and
http://www.w3.org/TR/REC-xml/#sec-prolog-dtd

This approach would save from specifying another port, and it would be
easy to send/process in a constrained environment.  Adding NS
negotiation might be possible along the same lines, but would already be
more complex.  Still, not having to build an XML processor to be able to
switch to EXI seems like a really good usecase to me.

I hope this is useful!

Cheers,
 -Rick