[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AD review of draft-ietf-shim6-hba
Marcelo,
>> Alternatively, do you want to recommend value 0x12 for the IANA,
>> *if* implementations have already started to use it?
>
> Agree.
Lets do that, then.
> The bottom line is that we are including a random number that is not a
> public key in a field originally reserved for a public key, so at some
> point we will have a semantic problem.
>
> I have checked RFC3280 and RFC3279 and i haven't found values reserved
> for experiments or other usages that could be useful for this (but i
> am not familiar with these specs, so i may be wrong)
>
> At this point, i think it makes little sense to encode the random
> number as SubjectPublicKeyInfo, since as you mention, we will need to
> include an invalid AlgorithmIdentifier. I guess, it is better to
> simply put the 384 random bits of the Extended Identifier directly in
> the Public Key Field in the CGA PDS, than encoding them as public key
> info, since it is less effort for the generation procedure and the
> result is likely to b the same.
>
> So, my suggestion is simply to remove the request to encode the random
> nonce as a SubjectPublicKeyInfo, with a phrasing as follows:
>
> Second, in the
> case that the address being generated is an HBA-only address, a
> random nonce will have to be used as input instead of a
> valid public key.
>
>
> Also in the HBA genration procedure, the following change is needed
>
> 2. Modifier generation. Generate a Modifier as a random or
> pseudorandom 128-bit value. If a public key has not been provided
> as an input, generate the Extended Modifier as a 384-bit random or
> pseudorandom value. Encode the Extended Modifier value as a RSA
> key in a DER-encoded ASN.1 structure of the type
> SubjectPublicKeyInfo defined in the Internet X.509 certificate
> profile [4].
>
> The last sentence needs to be removed
>
> makes sense?
Hm. I would rather use the same syntax to avoid breakage, but
the random bits inside. I would suggest finding a suitable
algorithm ID. It really does not matter what the values are,
but you need to describe what the encoding is.
>>
>>> 3. Concatenate from left to right the Modifier, 9 zero octets, the
>>> encoded public key or the encoded Extended Modifier (if no public
>>> key was provided) and the Multi-Prefix Extension. Execute the
>>> SHA-1 algorithm on the concatenation. Take the 112 leftmost bits
>>> of the SHA-1 hash value. The result is Hash2.
>>>
>>> 4. Compare the 16*Sec leftmost bits of Hash2 with zero. If they are
>>> all zero (or if Sec=0), continue with step (5). Otherwise,
>>> increment the modifier by one and go back to step (3).
>>
>> RFC 4982 should be referenced here, as it updates the above procedure,
>> and the words about SHA-1 should be changed accordingly. I.e., SHA-1
>> is used only for some small Sec values, and other algorithms, to be
>> defined in the future, could be used for others.
>
> Good point, but i think that the implication of RFC4982 is broader
> than just hash2 generation, since it implies the usage of a different
> hash function for the whole CGA/HBA generation process and also the
> Sec protection mechanism.
Yes.
> I would suggest including a reference to RFC4982 in the beginning of
> the HBA generation and verification procedure. Something like the
> following
>
> 6. HBA-Set Generation
>
> The HBA generation process is based on the CGA generation process
> defined in section 4 of [2]. The goal is to require the minimum
> amount of changes to the CGA generation process. It should be noted
> that the following procedure is only valid for Sec values of 0, 1
> and 2.
> For other Sec values, RFC4982 has defined a CGA SEC registry which
> will
> contain the specifications used to generate CGAs. The generation
> procedures defined in such specifications must be used for Sec values
> other than 0,1 or 2.
Ok.
>
> Similarly for the HBA verification procedure
>
> 7. HBA verification
>
> The following procedure is only valid for Sec values of 0, 1 and 2.
> For other Sec values, RFC4982 has defined a CGA SEC registry which
> will
> contain the specifications used to verify CGAs. The verification
> procedures defined in such specifications must be used for Sec values
> other than 0,1 or 2.
Ok.
>
> In addition, as you mention below, the attack analysis applies only to
> those sec values, so the following rephrassing is proposed (adding
> last couple of sentences)
>
> The protection against brute force attacks can be improved increasing
> the Sec parameter. A non zero Sec parameter implies that steps 3-4
> of the generation process will be repeated O(2^(16*Sec)) times
> (expected number of times). If we assimilate the cost of repeating
> the steps 3-4 to the cost of generating the HBA address, we can
> estimate the number of times that the generation is to be repeated in
> O(2^(59+16*Sec)) in the case of Sec values of 1 and 2. For other
> values,
> Sec protection mechanisms will be defined by the specifications
> pointed
> by the CGA SEC registry defined in RFC 4982.
Ok.
>
> Finally, i guess that the 11.4. SHA-1 Dependency Considerations. need
> also to be updated.
>
> In particular, i would suggest the folllowing rephrasing:
>
> 11.4. SHA-1 Dependency Considerations.
>
> Recent attacks to currently used hash functions have motivated a
> considerable amount of concern in the Internet community. The
> recommended approach [13] [14] to deal with this issue is first to
> analyze the impact of these attacks on the different Internet
> protocols that use hash functions and second to make sure that the
> different Internet protocols that use hash functions are capable of
> migrating to an alternative (more secure) hash function without a
> major disruption in the Internet operation.
>
> The aforementioned analysis for CGAs and its extensions (including
> HBAs) is performed in RFC4982. The conclusion of the analysis is that
> the security of the protocols using CGAs and its extensions is not
> affected by the recently available attacks against hash functions.
> In spite of that, the CGA specification [2] was updated by RFC4982
> to enable the support of alternative hash functions.
Ok.
>>
>>> HBA sets can be generated using any prefix set. Actually, the only
>>> particularity of the HBA is that they contain information about the
>>> prefix set in the interface identifier part of the address in the
>>> form of a hash, but no assumption about the properties of prefixes
>>> used for the HBA generation is made. This basically means that
>>> depending on the prefixes used for the HBA set generation, it may or
>>> may not be recommended to publish the resulting (HBA) addresses in
>>> the DNS.
>>
>> I am not sure how the third sentence follows from the second.
>
>> But more importantly, this seems to simplify the issues
>> related to DNS implications. Basically, you must be able
>> to tell the DNS network manager what your IP addresses
>> are; its not possible for the manager to configure your
>> DNS entries and addresses.
>>
>
> i see your point.
> actually, this paragraph was aimed for the case where ULAs prefixes or
> other form of prefixes that is not clear thy should be published in
> the DNS are included in the HBA set... makes sense? do you think we
> need to reword the paragraph to make it more explicit?
Ok, but perhaps you should reword it because I did not
get your initial meaning when I did my review. Others may
have the same problem.
>
> In addition, we can add a paragraph with you point:
>
> something like:
>
> In addition, it should be noted that the actual HBA values are
> a result of the HBA generation procedure meaning that they cannot
> be arbitrarily chosen. This has an implication with respect to DNS
> management,
> because the party that generates the HBA address set needs to
> convey the
> address information to the DNS manager, so that the addresses are
> published
> and not the other way round. The situation is similar to regular
> CGA addresses and
> even to the case where stateless address autoconfiguration is used.
>
> makes sense?
Ok.
>>> In the case that both IPSec and CGA/HBA address are used
>>> simultaneously, it is possible that two public keys are available in
>>> a node, one for IPSec and another one for the CGA/HBA operation. In
>>> this case, an improved security can be achieved by verifying that
>>> the
>>> keys are related somehow, (in particular if the same key is used for
>>> both purposes).
>>
>> Yes, but please state that such verification is outside the
>> scope of this spec.
>>
>
> ok, will include the additional sentence:
>
> The actual verification procedure is outside the scope of this
> specification.
Ok.
>
>
>> Editorial:
>>
>
> will correct.
>
> thanks, marcelo
>
>
>
Thanks for your quick response.
Jari