IETF-SSH archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Problems with draft
On Sat, Nov 29, 2003 at 05:40:25AM -0500, der Mouse wrote:
> In transport-17, section 6.2 writes of a "shared secret K", treating it
> as an opaque blob which is passed as part of a HASH argument. But
> section 7 writes of K as a large integer. It's not entirely clear how
> the one is converted into the other; looking at existing code, I find
> that the kex code treates it as a large integer (which will need fixing
from the draft (section 6.2)
...
o Initial IV client to server: HASH(K || H || "A" || session_id)
(Here K is encoded as mpint and "A" as byte and session_id as raw
data."A" means the single character A, ASCII 65).
...
So I don't think the core drafts need to changed at this point.
> if-and-when key exchange methods that produce a K that's not
> conceptually a large integer, though that's an implementation matter
> rather than a spec matter), but when serializing it for hashing it uses
> the same code it uses for "mpint" serialization. I would like to see
> the draft clearly state exactly how the large integer K of section 7 is
> converted into the opaque blob K of section 6.2. The description of
> H's computation seems to imply that this should be done as the code
> does it, but it's not clearly stated.
>
> Also, section 7 writes
>
> The hash H is computed as the HASH hash of the concatenation of the
> following:
> [...]
> string I_C, the payload of the client's SSH_MSG_KEXINIT
> string I_S, the payload of the server's SSH_MSG_KEXINIT
> [...]
>
> It is not clear whether these are compressed or uncompressed; while
> this doesn't matter for the first key exchange, it matters for
> re-exchange, and I'd like to see the draft state it clearly.
It refers to the payload after the transport layer transformations,
i.e. after decryption and decompression, with padding removed.
Again, I don't think a change in the core drafts is necessary.
> transport-17 section 5.6 says
>
> The "ssh-rsa" key format has the following specific encoding:
> [...]
> Signing and verifying using this key format is done according to
> [SCHNEIER] and [PKCS1] using the SHA-1 hash.
>
> I have been unable to find any description of a signature algorithm for
> RSA in Schneier, and I have found no reference anywhere to explain what
> [PKCS1] is supposed to refer to - I assume this is as described in
> RFC2437?
Yes, it seems the reference is missing. AFAIK it refers to
section 8.2 from RFC 3447.
-m
Home |
Main Index |
Thread Index |
Old Index