IETF-SSH archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: future SFTP version question
denis bider wrote:
but I seriously doubt it's worth the
effort; it seems too obscure and specialized.
Non-repudiation is a growing demand in the corporate world.
It is inextricably tied into secure file transfers. In a
system which requires non-repudiation, sftp fulfills all the
necessary requirements ( key handling, secure transmission,
validation ) everything, except for the digitally signed
receipt/manifest.
I agree with Jason's assessment and disagree about this extension being "too
obscure and specialized". It is so simply because there is no simple way of
doing it. If we come up with an extension that provides a simple way of
doing it, I believe there will be plenty demand. I would implement it in our
server.
Someone needs to draft an extension though. That ought to be Jason because
he has background knowledge about the problem and can likely come up with
something that will be simple enough yet will work.
I propose this be done here because we've had at least 2 positive responses
(I don't recall if there were more) and just one negative. If this is an
optional extension, people who don't want to implement will not be impacted
by it, whether it's part of SFTP or a separate draft.
What does Joseph as the SFTP draft editor think about making this an
extension in the SFTP draft, one like MD5 hashes for instance? (which I
think were an excellent idea btw)
If this is too complex to be an extension in the same draft, I think Jason
can just go get xml2rfc or a similar utility and write up an Internet-Draft
for this - am I right? How would he submit it when he writes one?
Well, below is a _very_ rough version of an extension. I'd be
more than happy to have Jason's expertise to help get this
fleshed out where it will work for him (and us.)
And since non-repudiation has recently whacked me over the head,
I'd agree that I suspect for most of us implementing sftp, it
will probably become non-obscure and not-so-specialized soon, if
it hasn't already.
(One alternate proposal I had was to put together a AS profile for
running of sftp, AS4... but I think that might be _really_
heavy weight, and what Jason seems to be saying is we already
have most of what we need anyway.)
- Joseph
---
9.2 File Signing
This extension allows a client to request that the server provide a
signature proving that it has recieve a correct copy of the data.
byte SSH_FXP_EXTENDED
uint32 request-id
string "sign-filename" / "sign-handle"
string filename [UTF-8] / file-handle
string pubkey-algorithm-list [from transport draft]
byte SSH_FXP_EXTENDED_REPLY
uint32 request-id
string filename-used-in-signature [UTF8]
int64 time-of-request
attrib file-attrib
string public-key [from transport draft]
string signature [from transport draft]
filename
Used if 'sign-filename' is specified; indicates the name of the
file to use. The hash will be of the file contents as it would
appear on the wire if the file were opened with no special flags.
file-handle
Used if 'sign-handle' is specified; specifies a file handle to
read the data from. The handle MUST be a file handle, and
ACE4_READ_DATA MUST have been included in the desired-access when
Galbraith Expires April 29, 2005 [Page 46]
Internet-Draft SSH File Transfer Protocol October 2004
the file was opened.
If this file handle was opened in TEXT mode, the signature must be
made of the data as it would be sent on the wire.
pubkey-algorithm-list
The algorithm list of publickeys the client is capable of
supporting. If the server cannot provide a signature using any of
the algorithm requested, it should respond with a STATUS
response, with UNSUPPORTED error code.
In the case of x509v3 (see below), no attempt is made to negotiate
which algorithms are supported within the certificate chain.
filename-used-in-signature
time-of-request
file-attrib
The filename actually used, time-of-request, and file attribute
structure which were used to make the signature. The filename, in
particular, may be difference from that specified if the server
applied some sort of canonicalization, or may be empty if the
request was a sign-handle and the server couldn't map from a
handle to a filename.
public-key
The public-key the server used to sign the filename. This is a
data structure as specified in the secsh transport specification
[2].
This draft specifies an additional public format,
x509v3%filexfer.secsh.ietf.org@localhost. The key data in this case is the
x509v3 certificate DER encoded. The signature algorithm used for
this key type is one of three types:
ssh-dss
Encoded as per the secsh transport specification [2].
ssh-rsa
Encoded as per the secsh transport specification [2].
pkcs7%filexfer.secsh.ietf.org@localhost
A DER encoded pkcs #7 signature with detached data, as
specified by .
The prefered signature algorithm is pkcs7.
Galbraith Expires April 29, 2005 [Page 47]
Internet-Draft SSH File Transfer Protocol October 2004
signature
The signature over the following data, formatted as specified in
the secsh transport specification [2] or as above.
string filename [UTF-8]
string username-of-signature-requestor [UTF-8]
int64 time-of-request
attrib file-attrib
string file-data
filename
The filename of the file being signed. If this is a
'sign-filename' request, the filename MUST be included,
although it MAY be canonicalized. If this is a sign-handle,
the filename SHOULD be included; however, if the server can not
map backwards from a handle to a filename, the filename may be
zero length.
username-of-signature-requestor
This is the username by which the client authenticated to the
system.
time-of-request
This is the time that the signature request was made, format as
described by file attributes. (Section 6.7)
file-attrib
File attribute structure describing the attributes of the file.
The server SHOULD include any fields that it can, even if it
would not normally retrieve the data. In particular, the
server SHOULD include owner, group, acl, permissions, and
mime-type data if it can support these field. The size and
attrib-bits fields SHOULD also be included.
file-data
The file data as an SSH string.
Home |
Main Index |
Thread Index |
Old Index