Hash Function Firewalls in Signature Schemes - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Hash Function Firewalls in Signature Schemes

Description:

3. Decode f = 6b bb ... bb ba || Mr || T || HashID || cc ... 4. Decode R = T || HashID. 5. If ... 5. Solve for M such that T = WeakHash(M) 6. Output M, s ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 35
Provided by: BurtKa6
Category:

less

Transcript and Presenter's Notes

Title: Hash Function Firewalls in Signature Schemes


1
Hash Function Firewalls in Signature Schemes
  • Burt Kaliski, RSA Laboratories
  • RSA Conference 2002
  • San Jose, California, February 2002

2
Outline
  • Hash function flexibility and firewalls
  • Breaking firewalls in signature schemes
  • Conclusions

3
Hash Function Flexibility
  • Many signature schemes allow multiple hash
    functions, to enable improvement over time
  • Signer typically selects from a small set
  • Verifier may accept a larger set, for
    interoperability with many signers

4
Weak Hash Function Risks
  • Signer accepts the risk that a hash function in
    its set may turn out to be weak
  • possibly enabling an attacker to forge signatures
  • However, signer may also be at risk if a hash
    function in the verifiers set is weak
  • Signer accepts the risk from its own choices, but
    needs some way to mitigate the risk due to the
    verifiers choices

5
Mitigating the Risk
  • One approach is to limit the verifiers set to
    trusted hash functions
  • only SHA-1 in FIPS 186
  • only ANSI-approved
  • Another approach is for the signer to indicate
    acceptable hash functions in its certificate
  • Alternatively, the signature scheme itself might
    somehow distinguish between different hash
    functions a firewall

6
Hash Function Firewalls
  • Apparently first suggested by J. Linn in
    development of Privacy-Enhanced Mail (1990)
  • also in IBM system of same period
  • RSA signature on message M
  • 1. Let f Pad HashID Hash(M)
  • 2. Apply RSA signature primitive to f
  • HashID is a firewall against weak hash
    functions
  • protected directly by signature primitive
  • existing signatures cannot be reused with a
    different, weak hash function

7
Does It Work?
  • Hash function firewalls have become a common
    practice in many signature schemes and standards
  • A firewall prevents an attacker from reusing an
    existing signature with a different hash function
  • But what about other kinds of signature forgery?

8
Summary of Results
  • Firewalls in several signature schemes do not
    protect against signature forgery with a weak
    hash function
  • If attacker can invert a hash function in these
    schemes, attacker can forge a signature
  • signer doesnt need to support the weak hash
    function, and doesnt even need to be involved!
  • New attack on PKCS 1 v1.5 signatures with strong
    hash function if attacker can publish new (very
    long) hash ID

9
Some Schemes with Firewalls
  • ISO/IEC 9796-2
  • GQ from ISO/IEC 14888-2
  • may extend to other schemes based on proofs of
    knowledge
  • DSA with hash ID
  • extends to ECDSA
  • Despite firewall, all three are subject to a weak
    hash function attack

10
General Approach
  • Attackers goal is twofold
  • 1. Develop a signature that identifies a weak
    hash function that the verifier accepts
  • 2. Find a message M with the correct hash under
    the weak hash function
  • similar to approach in Brown-Johnson security
    proof for PV signature scheme
  • Notation
  • WeakHash weak hash function
  • WeakHashID identifier for weak hash function
  • Mr recoverable message part
  • Mnr nonrecoverable message part
  • M message

11
ISO/IEC 9796-2 Scheme
  • Signature scheme with message recovery based on
    integer factorization problem
  • Recommendations for addressing weak hash function
    attacks
  • 1. Require a particular hash function
  • 2. Allow a set of hash functions and explicitly
    indicate in every signature the hash-function in
    use by an identifier included as part of the
    signature calculation
  • HashID is a one-byte ID from ISO/IEC 10118

12
ISO/IEC 9796-2 with a Hash ID
  • Public key modulus n, exponent e
  • Private key d e-1mod ?(n)
  • RSA version RW version is similar
  • Sign(Mr, Mnr) s
  • 1. Let T Hash(Mr Mnr)
  • 2. Let f 6b bb bb ba Mr T HashID
    cc
  • 3. Let s fd mod n
  • Recover(Mnr, s) Mr
  • 1. Let f se mod n
  • 2. Decode f 6b bb bb ba Mr T HashID
    cc
  • 3. Check T Hash(Mr Mnr)

13
Does the Firewall Work?
  • HashID prevents an attacker from reusing an
    existing signature with a different hash function
  • But it doesnt prevent an attacker from forging a
    new signature with a weak hash function

14
Breaking the Firewall
  • 1. Select s in 1,n-1
  • 2. Let f se mod n
  • 3. Decode f 6b bb bb ba Mr T HashID
    cc
  • 4. If decode error or HashID ? WeakHashID, goto 1
  • 5. Solve for Mnr such that T WeakHash(Mr
    Mnr)
  • 6. Output Mr, Mnr, s
  • Expect 224 tries to get desired hash ID, padding

15
GQ Scheme from ISO/IEC 14888-2
  • Signature scheme with appendix based on discrete
    logarithm problem
  • Recommendations for addressing weak hash function
    attacks
  • The hash-function identifier shall be included
    in the hash-token unless the hash-function is
    uniquely determined by the signature mechanism or
    by the domain parameters
  • HashID is a one-byte ID from ISO/IEC 10118

16
GQ Signatures with a Hash ID
  • Domain parameters modulus N, exponent V
  • Public key Y (identity-based)
  • Private key X Y-1/V mod N
  • Sign (M) (R,S)
  • 1. Let ? KV mod N, K random
  • 2. Let R Hash(? M) HashID
  • 3. Let S KXR mod N
  • Verify (M, (R,S))
  • 1. Let ? YRSV mod N
  • 2. Check R Hash(? M) HashID

17
Breaking the Firewall
  • 1. Select S in 1,n-1, hash target T
  • 2. Let R T WeakHashID
  • 3. Let ? YRSV mod N
  • 4. Solve for M such that T WeakHash(? M)
  • 5. Output M, (R,S)
  • Only one try
  • Target is prespecified, which may simplify
    inversion

18
DSA Scheme
  • Signature scheme with appendix based on discrete
    logarithm problem
  • In FIPS 186, a unique hash function SHA-1
  • However, IEEE 1363 allows hash function
    flexibility
  • Consider a variation of DSA with a firewall
  • suggested by this author to NIST in 1992!

19
DSA Signatures with a Hash ID
  • Domain parameters prime p, base g, order q
  • Public key y gx mod p
  • Private key x
  • Sign (M) (r,s)
  • 1. Let r (gk mod p) mod q, k random
  • 2. Let R Hash(M) HashID
  • 3. Let s k-1 (R xr) mod q
  • Verify (M, (r,s))
  • 1. Let R Hash(M) HashID
  • 2. Let a Rs-1 mod q, b rs-1 mod q
  • 3. Check r (ga yb mod p) mod q

20
Breaking the Firewall
  • 1. Select a,b in 1,q-1
  • 2. Let r (ga yb mod p) mod q
  • 3. Let s rb-1 mod q, R as mod q
  • 4. Decode R T HashID
  • 5. If HashID ? WeakHashID, goto 1
  • 6. Solve for M such that T WeakHash(M)
  • 7. Output M, (r,s)
  • Expect 256 tries for minimum q

21
Comparison of Attacks
  • Decreasing difficulty for attacker
  • ISO/IEC 9796-2 224 tries, Mr constrained
  • DSA 256 tries, none of message constrained
  • GQ one try, hash target specified by attacker
  • None of the attacks involves the actual signer
    all can be performed with access only to the
    signers public key

22
Other Schemes with Firewalls
  • ISO/IEC 9796-3 ( DL/ECSSR in IEEE P1363a)
  • optional firewall, can be broken
  • ANSI X9.31
  • firewall is protected if minimum amount of
    padding, met in typical use
  • PKCS 1 v1.5
  • firewall is protected by minimum amount of
    padding, unless hash ID can be selected by
    attacker and e small
  • PSS, PSS-R in IEEE P1363a
  • implicit firewall hash ID optional, yet
    protected if minimum amount of padding, except
    for pathological cases

23
PKCS 1 v1.5 Scheme
  • Signature scheme with appendix based on integer
    factorization problem
  • HashID is a multiple-byte ID using ASN.1
    DigestInfo
  • Important for attack Large fraction of random
    strings are valid hash IDs

24
PKCS 1 v1.5 Signatures
  • Public key modulus n, exponent e
  • Private key d e-1mod ?(n)
  • Sign(M) s
  • 1. Let T Hash(M)
  • 2. Let f 00 01 ff ff ff 00 HashID T
  • 3. Let s fd mod n
  • Verify(M, s)
  • 1. Let f se mod n
  • 2. Decode f 00 01 ff ff ff 00 HashID T
  • 3. Check T Hash(M)

25
Breaking the Firewall (1)
  • 1. Select s in 1,n-1
  • 2. Let f se mod n
  • 3. Decode f 00 01 ff ff ff 00 HashID T
  • 4. If decode error or HashID ? WeakHashID, goto 1
  • 5. Solve for M such that T WeakHash(M)
  • 6. Output M, s
  • Problem too much padding, including HashID

26
Breaking the Firewall (2)
  • 1. Select s near eth root over integers of00 01
    ff ff ff 00
  • 2. Let f se
  • 3. Decode f 00 01 ff ff ff 00 HashID T
  • 4. If decode error or HashID invalid, goto 1
  • 5. Solve for M such that T WeakHash(M)
  • 6. Output M, s, HashID
  • Fixed padding matched, HashID output but now
    must be registered for WeakHash
  • e must be small, e.g., e 3 depends only on
    length of n

27
Breaking the Firewall (3)
  • 1. Select message M, compute T Hash(M)
  • 2. Select s near eth root over integers of 00 01
    ff ff ff 00 such that se ? T mod 2hashLen
  • 3. Let f se
  • 4. Decode f 00 01 ff ff ff 00 HashID T
  • 5. If decode error or HashID invalid, goto 2
  • 6. Output M, s, HashID
  • Fixed padding and T matched, Hash can be a strong
    hash function HashID must be registered

28
Example
  • M abc, Hash SHA-256, modulus length 2048
    bits, e 3
  • f 00 01 ff ff ff ff ff ff ff ff 00 (fixed
    padding) 30 01 f2 30 01 cd 06 01 c8 (HashID
    header) 2a 86 48 86 f7 0d 02 (RSA Security
    prefix) (rest of HashID) 05 00 04 20
    (HashID trailer) Hash(M)
  • s 32 cb fd 4a b2 be d4 95 (85 bytes)
  • Trick match more of f when selecting s to
    increase probability of success

29
Registering the HashID
  • HashID header RSA Security prefix 00 00
    00 00 b5 16 8c 4f trailer (213 bytes)
  • Anyone can publish, but how to explain why so
    long and random?
  • Possible argument temporary before SHA-256
    identifier was published random and long to
    avoid collisions
  • If retained in applications for compatibility,
    signatures may be accepted in the future on
    selected message for any modulus of appropriate
    length

30
PSS / PSS-R from IEEE P1363a
  • Signature scheme with message recovery based on
    integer factorization problem
  • Optional hash ID based on ISO/IEC 10118
  • PSS also in PKCS 1 v2.1 draft, PSS-R in ISO/IEC
    9796-2 draft revision
  • Based on hash function, mask generation function
    G
  • recommended G built from same hash function

31
PSS / PSS-R without a Hash ID(PSS PSS-R with
Mr empty)
  • Public key modulus n, exponent e
  • Private key d e-1 mod ?(n)
  • Sign(Mr, Mnr) s
  • 1. Let T Hash(len(Mr) Mr Hash(Mnr)
    salt)
  • 2. Let U G(T) ? (00 01 Mr salt)
  • 3. Let f U T bc
  • 4. Let s fd mod n
  • Recover(Mnr, s) Mr
  • 1. Let f se mod n
  • 2. Decode f U T bc
  • 3. Decode U ? G(T) (00 01 Mr salt)
  • 4. Check T Hash(len(Mr) Mr Hash(Mnr)
    salt)

32
Firewall Without a Hash ID
  • With two requirements, the current PSS-R can
    heurisitically protect against weak hash function
    attacks
  • G must be based on the underlying hash function
  • (00 01 Mr salt) must have a minimum
    amount of padding
  • These requirements protect against weaknesses in
    conventional hash functions
  • only pathological hash functions are a risk,
    and these are unlikely to be accepted by a
    verifier
  • Padding requirement met by PSS with appendix
    (i.e., Mr empty) for typical hash function sizes

33
Firewall Protection
  • Attacker wants f se that can be decoded as
  • f U T bc
  • U ? G(T) (00 01 Mr salt)
  • Existing signatures cannot be reused with a weak
    hash function because G(T) will be different
  • New signatures cannot be forged because U ? G(T)
    will be unlikely to have the minimum padding, for
    random f
  • inverting the hash function doesnt help
  • only attack is to coerce verifier to use a
    pathological hash function constructed so that
    G output matches

34
Conclusions
  • Hash function firewalls dont necessarily prevent
    weak hash function attacks!
  • Formal definitions of security against weak hash
    function attacks would be helpful
  • In general, verifier should rely on
    infrastructure, not signature scheme, to protect
    against weak hash functions and other
    misapplications of a signature
Write a Comment
User Comments (0)
About PowerShow.com