Secure upgrade of hardware security modules in bank networks ∗ Riccardo Focardi 1 Flaminia Luccio 1 1 Universit` a Ca’ Foscari di Venezia, Italy { focardi,luccio } @dsi.unive.it ARSPA-WITS’10 Paphos, Cyprus March 27-28, 2010 ∗ Work partially supported by: Miur’07 Project SOFT: “ Security Oriented Formal Techniques ” ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 1 / 17
PIN processing APIs Overview PIN processing infrastructure ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 2 / 17
PIN processing APIs Overview PIN processing infrastructure PIN ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 2 / 17
PIN processing APIs Overview PIN processing infrastructure Accept Refuse PIN PIN PIN PIN PIN ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 2 / 17
PIN processing APIs Overview PIN processing infrastructure Accept Refuse { PIN } k 2 { PIN } k 4 PIN PIN { PIN } k 1 PIN PIN { PIN } k 3 PIN ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 2 / 17
PIN processing APIs Overview PIN processing infrastructure Accept Refuse { PIN } k 2 { PIN } k 4 { PIN } k 1 PIN { PIN } k 3 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 2 / 17
PIN processing APIs Overview Hardware Security Module (HSM) Tamper resistant Security API for Managing cryptographic keys Decrypting/re-encrypting the PIN Checking the validity of the PIN ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 3 / 17
PIN processing APIs Overview Hardware Security Module (HSM) Tamper resistant Security API for Managing cryptographic keys Decrypting/re-encrypting the PIN Checking the validity of the PIN ... but still, attacks are possible ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 3 / 17
PIN processing APIs Overview Hardware Security Module (HSM) Tamper resistant Security API for Managing cryptographic keys Decrypting/re-encrypting the PIN Checking the validity of the PIN ... but still, attacks are possible Our goal: propose ‘cheap’ HSM upgrading strategies 1 securing subnetworks while keeping service up 2 trade-off between hardware and manpower cost ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 3 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ⊕ 4732 mod 10 = 4104 ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The PIN verification API Encrypted PIN Block : contains the PIN at the ATM PIN V( EPB , vdata,len,dectab,offset ) Data for computing the user PIN Returns the equality of the two PINs Example: PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ⊕ 4732 mod 10 = 4104 3 The two values coincide: PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 4 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ⊕ 4732 mod 10 = 4104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,0123456789012345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ⊕ 4732 mod 10 = 4104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,1123456789112345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ⊕ 4732 mod 10 = 4104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,1123456789112345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 0472 ⊕ 4732 mod 10 = 4104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,1123456789112345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 1472 ⊕ 4732 mod 10 = 4104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,1123456789112345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 1472 ⊕ 4732 mod 10 = 4104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,1123456789112345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 1472 ⊕ 4732 mod 10 = 5104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
PIN processing APIs An attack on PIN verification The ‘decimalization’ attack on PIN V [Bond, Zielinski ’03] PIN V( { 4104 , r } k ,vdata,4,1123456789112345,4732) dec k ( { 4104 , r } k ) = 4104 , r 1 4104 enc pdk (vdata) = A 47295 FDE 32 A 48 B 1 2 1472 ⊕ 4732 mod 10 = 5104 3 PIN V returns ‘true’ ARSPA-WITS’10 ()Secure upgrade of HSMs in bank networks 5 / 17
Recommend
More recommend