RE: rsa-sha2-256/512: handling of incorrect signature encoding
Peter Gutmann <[email protected]>
| Newsgroups | gmane.ietf.secsh |
|---|---|
| Message-ID | <9A043F3CF02CD34C8E74AC1594475C73F4CDD31B@uxcn10-5.UoA.auckland.ac.nz> |
denis bider (Bitvise) <[email protected]> writes: >The invariants our implementation currently expects are: >- name 1, in the USERAUTH request, can be any of the RSA signature algorithm names >- name 2, in the public key blob, must be "ssh-rsa" >- name 3, in the signature blob, must match name 1 My code writes "ssh-rsa" for all three, and accepts whatever it finds (along with a sarcastic comment about why you need to specify the same thing three times in a row in case the server has gone deaf or something :-). For the first one: /* Skip the first of the three copies of the algorithm name (see the comment in ssh2_cli.c for more on this). We don't do anything with it because we're about to get two more copies of the same thing, and the key and signature information take precedence over anything that we find here */ Then for the second one it looks for ssh-rsa (or ssh-dss, or whatever, since it's needed to decode the key), and finally it again ignores the last one because it already knows what it should be. Why is there a need for "rsa-sha2-256" and other complications when "ssh-rsa" is perfectly OK for everything else? >My questions are: >[...] I would use (C) ignore everything except the key blob name. This situation is confusing enough that you're going to get implementations screwing things up in all sorts of ways, meaning you'll find who knows what in those ID strings. Apart from having to know what format the key is in the rest is irrelevant, you know the key is RSA, you've been hashing with SHA-1 or SHA-256 or whatever, it doesn't matter what the ID strings say. >Regardless of what we think is best - should we put a paragraph about this in >the rsa-sha2 draft? I would change the rsa-sha2 draft to say that the same ID string should be used throughout, i.e. "ssh-rsa" for RSA sigs and keys. Peter.