[Cryptech Tech] arm
Leif Johansson
leifj at sunet.se
Tue Jan 13 07:50:16 UTC 2015
> 13 jan 2015 kl. 03:30 skrev Bernd Paysan <bernd at net2o.de>:
>
> Am Montag, 12. Januar 2015, 17:54:41 schrieb Rob Austein:
>> At Mon, 12 Jan 2015 23:33:28 +0100, Bernd Paysan wrote:
>>> For me, it's still not clear what's the attack vector is here that
>>> is prevented. Let's say I do the hash outside, transfer the hash to
>>> the HSM, and get a signature, what can I do by manipulating the
>>> hash? I can get an invalid signature. That's all.
>>>
>>> If I, on the other hand, manipulate the hashed plaintext, I get a
>>> correct signature of something that has been manipulated. That's
>>> bad. However, even when I do the hashing on the HSM, I still can
>>> manipulate the plaintext outside the HSM boundary.
>>
>> Canonical example, courtesy of Jakob: how would one build an HSM which
>> enforces a .SE policy of refusing to sign anything but DNSSEC RRsets
>> with a signature lifetime of less than one year?
>>
>> AFAIK, there are only two answers:
>>
>> 1) Don't try, or
>>
>> 2) The HSM has to understand DNSSEC RRSIGs well enough to check or
>> generate the timestamps.
>
> I see. It fits with the "HSM controlled time" example I gave. You probaly
> don't want to limit your check to the delta-t, because an attacker could just
> pre-sign certificates for the next 30 years, when you don't use an RTC to
> check against plausible range.
>
> I'm quite likely thinking too muh in net2o terms: in net2o, the signature
> algorithm takes a hash of whatever you want to be signed, then feeds a block
> with signature and expiration time into that hash, and signs that; so a
> signature always consists of the interval plus the actual signature; and you
> can't separate that by signing something where the signature time and
> expiration date is already embedded.
>
> This makes sure the signature part doesn't have to know how the rest of the
> message is structured.
>
>> The check-or-generate decision is a bit of a coin toss, main argument
>> in favor of only checking in the HSM is that the policy may allow a
>> range, in which case the HSM's job is just to enforce the range
>> restriction, not to pick a specific allowed value within the range.
>>
>> One can phrase equivalent constraints for other protocols (eg, RPKI),
>> and such constraints are not necessarily limited just to timestamps
>> (eg, .SE might also want to enforce a restriction that they will only
>> sign RRsets in the .SE zone, which translates to a restriction on what
>> value is allowed to appear in the "Signer's Name" field of the RRSIG).
>
> I would advocate against parsing more complex data types (think of ASN1)
> inside the ultra-secure boundary, because with bugs in the parser, you can 0wn
> the HSM.
I'm wondering how much security-fu you get by just having a library for doing simple offset byte-range checks wo actually parsing stuff inside the boundary. Extra checks w parsing done outside the boundary...
>
> --
> Bernd Paysan
> "If you want it done right, you have to do it yourself"
> http://bernd-paysan.de/
> net2o ID: kQusJzA;7*?t=uy at X}1GWr!+0qqp_Cn176t4(dQ*
>
> _______________________________________________
> Tech mailing list
> Tech at cryptech.is
> https://lists.cryptech.is/listinfo/tech
More information about the Tech
mailing list