>> By generic ECDSA methods, I did not mean hash-independent but only
>> curve-independent.
>>
>> At least for SHA-1/SHA-2, the mapping between size of the curve and hash
>> function could be fixed in an RFC. The hash
>> length shall not be smaller than the bit length of curve parameters
>> (FIPS-186-3), and there is no need to choose an
>> SHA-2 function longer than the minimum one meeting this requirement.
> 
>   If the mapping between curve and hash function is fixed then I don't
> see what you mean by "not hash-independent but only curve-independent".
> Seems that there is nothing independent, it's all fixed.

I have the impression that we misunderstand each other. The solution that I 
propose is to define one new auth method
ECDSA_generic which indicates that
- the curve shall be taken from the certificate
- the hash function shall be the minimum SHA-1/2 function matching or exceeding 
the security level of the curve.

This method is flexible w.r.t the curve but not w.r.t the hash function, and 
that is what I called "not hash-independent
but only curve-independent". Maybe the term "curve-flexible but not 
hash-flexible" is better.

This approach is exactly the one followed for DSA (DSS Digital Signature), 
except that the latter one was limited to
SHA-1. Thus, a curve-independent ECDSA method would be more consistent with the 
existing DSA method. This is the reason
why I objected to your assertion of our approach being a "hack". But maybe you 
didn't refer to this approach at all?

> 
>>>   So to actually address this in the hash-specific canonical way
>>> requires new auth methods for different permutations of DSS with
>>> SHA-224, SHA-256, SHA-384, and SHA-512 as well as different
>>> permutations of ECDSA with brainpool curves using the 5 different
>>> SHA varients. But this is getting, as you say, "cumbersome".
>>>
>> As said above, I don't see the need to allow, for instance, the Brainpool
>> p256 curve to be used with any hash function
>> other than SHA-256.
> 
>   And there are 7 new brainpool curves so that's 7 new auth methods
> plus 4 new ones to deal with the non-EC version of DSA for a total
> of 11 new auth methods to go along with the existing 4. 15 different
> auth methods just for the digital signature standard!
> 
Not with the approach I proposed: there is only one method ECDSA_generic.

Note, that for DSA (on EC), it would also be sufficient to specify a new auth 
method DSS_key_length_defined_hash
accompanied with the requirement to choose the hash function as the smallest 
SHA-2 function meeting the minimum
requirements of FIPS-186-3.


>>>   Of course one can decide not to use the hash-specific canonical
>>> technique and come up with "generic DSA" and "generic ECDSA" to
>>> address this but then we have the unfortunate state of hash-specific
>>> (EC)DSA methods and "generic" methods and now it's getting ugly
>>> (and hack-ish).
>>>
>> Such a co-existence of different approaches would also be the case if a
>> curve-independent (but hash-specific) ECDSA
>> method was specified, and I agreee that this is a bit unfortunate. But
>> this is not a major issue compared to alternative
>> of specifying separate methods for each curve in an 8 bit registry.
> 
>   Yes, it is unfortunate. What's also unfortunate is that the 11 auth
> methods mentioned above (plus the 3 existing ECDSA auth methods)
> will probably have to be duplicated for SHA-3 thereby eating into this
> "scarce resource" of an 8-bit registry even further.

We have the choice: Either spending many assignments out of the 256 available, 
or to specify a generic auth method
deviating from the approach previously tken for ECDSA (but being in accordance 
with the approach taken for DSA).


> 
>>>   Instead of either negotiating a complete ciphersuite (the way TLS
>>> does) or individual components (the way IKEv1 did), IKEv2 does both
>>> and gets the worst of both worlds.
>>>
>>
>> Means to negotiate the hash function could be specified as discussed
>> earlier in this thread, but of course this is a
>> more significant change. And I am not sure if this is necessary, given the
>> clear recommendations of FIPS 186-3.
> 
>   I am not advocating the mixing-and-matching of curves and hash
> functions of different security levels (and therefore one could argue
> to fix them) but it should be noted that IKEv2 allows all sorts of mixing
> and matching of ciphers, hash algorithms, and D-H groups of different
> security levels to be negotiated-- AES-256 with the 768-bit DH group
> authenticated with ECDSA using NISTP384 with SHA-384 and key
> derivation using SHA-1. Why would someone do this? I have no idea.
> Can someone? Yes. Is there a reason to enforce a "no mix-and-match"
> policy on some primitives and a "laissez faire negotiation" policy on
> others? No, at least not a good one.
> 
I assume, the reason why the hash function is not negotiated is that at the 
time IKEv2 was specified there was mainly
one hash function giving adequate security in practical use.

>   The point is, that the IKEv2 design was quite myopic-- if there are
> to be different permutations of curve-hash as separate auth methods
> then it shouldn't have been made a "scarce resource" of an 8-bit
> registry. You're right that fixing all this stuff that you describe as
> "cumbersome" and "unfortunate" would be "a more significant
> change". I think it might be worth trying and given the poor adoption
> of IKEv2 now's the time to fix it with IKEv3 before it's too late.
> 

I doubt that you can get a WG consensus on doing this.

I am more interested in a short term solution, and for this I am prepared to do 
without hash-flexibility.

Johannes
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to