attacking globalplatform scp02 compliant smart cards
play

Attacking GlobalPlatform SCP02-compliant Smart Cards Using a Padding - PowerPoint PPT Presentation

Attacking GlobalPlatform SCP02-compliant Smart Cards Using a Padding Oracle Attack Gildas Avoine 1 , 2 Loc Ferreira 3 , 1 Univ Rennes, INSA Rennes, CNRS, IRISA, France Institut Universitaire de France Orange Labs, Applied Cryptography Group,


  1. Attacking GlobalPlatform SCP02-compliant Smart Cards Using a Padding Oracle Attack Gildas Avoine 1 , 2 Loïc Ferreira 3 , 1 Univ Rennes, INSA Rennes, CNRS, IRISA, France Institut Universitaire de France Orange Labs, Applied Cryptography Group, Caen, France September 12, 2018 CHES 2018 SCP02 September 12, 2018 1 / 19

  2. Outline 1. Description of SCP02 2. Padding oracle attack 3. Experimental results 4. Conclusion CHES 2018 SCP02 September 12, 2018 2 / 19

  3. SCP02 Introduction Context Security protocol promoted by GlobalPlatform (association that aims at promoting standard, interoperable mechanisms related to the chip technology) Element of a set of security protocols: SCP03, SCP80, SCP81, etc. Likely the most widely used SCP protocol Cryptographic functions Based on DES/3DES (encryption and MAC; cf. [ISO9797-1] and [ISO10116]) Purpose Secure channel between an “ off card entity ” and a card Different security levels: integrity, confidentiality, both Remote card management (e.g., applet upload into an UICC/SIM card) CHES 2018 SCP02 September 12, 2018 3 / 19

  4. SCP02 Command encryption � �� � HDR PLAINTEXT PAD MAC PLAINTEXT PAD ENC � �� � Kenc Kcmac ENC MAC IV ENC = 00 8 IV MAC HDR’ CIPHERTEXT TAG CHES 2018 SCP02 September 12, 2018 4 / 19

  5. SCP02 Command decryption Kcmac 3 MAC IV MAC TAG’ � �� � HDR PLAINTEXT PAD MAC 80 00 ··· 00 2 PLAINTEXT PAD ENC � �� � Kenc 1 DEC IV ENC = 00 8 HDR’ CIPHERTEXT TAG CHES 2018 SCP02 September 12, 2018 5 / 19

  6. CBC mode Encryption B 1 ⊕ ··· ( c 6 ⊕ b 6 ) ··· ENC C 0 C 1 ··· b 7 ⊕ ··· ( c 7 ⊕ b 7 ) ENC ··· c 7 C 1 CHES 2018 SCP02 September 12, 2018 6 / 19

  7. CBC mode Decryption C 0 C 1 DEC ··· ( c 6 ⊕ b 6 ) ··· ⊕ B 1 ··· c 7 C 1 DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· c 7 ⊕ ( c 7 ⊕ b 7 ) CHES 2018 SCP02 September 12, 2018 7 / 19

  8. CBC mode Malleability c 7 ⊕ g ··· c 7 C 1 DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· b 7 CHES 2018 SCP02 September 12, 2018 8 / 19

  9. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) CHES 2018 SCP02 September 12, 2018 8 / 19

  10. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] CHES 2018 SCP02 September 12, 2018 8 / 19

  11. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ ⇒ invalid padding CHES 2018 SCP02 September 12, 2018 8 / 19

  12. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ ⇒ invalid padding g = 14 ⇒ ⇒ invalid padding CHES 2018 SCP02 September 12, 2018 8 / 19

  13. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ ⇒ invalid padding g = 14 ⇒ ⇒ invalid padding g = 15 ⇒ ⇒ invalid padding CHES 2018 SCP02 September 12, 2018 8 / 19

  14. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ ⇒ invalid padding g = 14 ⇒ ⇒ invalid padding g = 15 ⇒ ⇒ invalid padding g = 16 ⇒ ⇒ invalid padding CHES 2018 SCP02 September 12, 2018 8 / 19

  15. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ ⇒ invalid padding g = 14 ⇒ ⇒ invalid padding g = 15 ⇒ ⇒ invalid padding g = 16 ⇒ ⇒ invalid padding g = 17 ⇒ ⇒ valid padding CHES 2018 SCP02 September 12, 2018 8 / 19

  16. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ b 7 ⊕ g = 76 ⇒ invalid padding g = 14 ⇒ b 7 ⊕ g = 77 ⇒ invalid padding g = 15 ⇒ b 7 ⊕ g = 78 ⇒ invalid padding g = 16 ⇒ b 7 ⊕ g = 79 ⇒ invalid padding g = 17 ⇒ b 7 ⊕ g = 80 ⇒ valid padding ⇒ b 7 = g ⊕ 80 = 97 CHES 2018 SCP02 September 12, 2018 8 / 19

  17. CBC mode Malleability c 7 ⊕ g ··· ✚ c 7 C 1 ❩ ✚ ❩ DEC ··· ( c 7 ⊕ b 7 ) ⊕ ··· ( b 7 ⊕ g ) [ ··· plaintext ··· ∥ 80 ] g = 13 ⇒ b 7 ⊕ g = 76 ⇒ invalid padding g = 14 ⇒ b 7 ⊕ g = 77 ⇒ invalid padding g = 15 ⇒ b 7 ⊕ g = 78 ⇒ invalid padding g = 16 ⇒ b 7 ⊕ g = 79 ⇒ invalid padding g = 17 ⇒ b 7 ⊕ g = 80 ⇒ valid padding ⇒ b 7 = g ⊕ 80 = 97 The validity of padding data indicates whether b 7 can be found or not. Technique called “padding oracle attack” due to Vaudenay in 2002 [V02]. CHES 2018 SCP02 September 12, 2018 8 / 19

  18. Building the padding oracle How to know if the padding data is valid or invalid (after decryption)? 1. decryption 1. decryption 2. padding data: invalid 2. padding data: valid ❍ ✟ 3. ✟ ❍ MAC 3. MAC CHES 2018 SCP02 September 12, 2018 9 / 19

  19. Building the padding oracle How to know if the padding data is valid or invalid (after decryption)? 1. decryption 1. decryption 2. padding data: invalid 2. padding data: valid ❍ ✟ 3. ✟ ❍ MAC 3. MAC Error message ERR_DEC ERR_MAC (e.g., WTLS [V02]) CHES 2018 SCP02 September 12, 2018 9 / 19

  20. Building the padding oracle How to know if the padding data is valid or invalid (after decryption)? 1. decryption 1. decryption 2. padding data: invalid 2. padding data: valid ❍ ✟ 3. ✟ ❍ MAC 3. MAC Error message ERR_DEC ERR_MAC (e.g., WTLS [V02]) Computation time time ↘ time ↗ (e.g., TLS 1.0 [CHVV03]) CHES 2018 SCP02 September 12, 2018 9 / 19

  21. Practical experiments The smart card sends always a response (status word). Invalid padding data or invalid MAC ⇒ same error code CHES 2018 SCP02 September 12, 2018 10 / 19

  22. Practical experiments The smart card sends always a response (status word). Invalid padding data or invalid MAC ⇒ same error code valid padding 200 invalid padding 150 Number of samples 100 50 0 32 33 34 35 36 Time (ms) The card response time reflects the card computation time ⇒ suitable padding oracle CHES 2018 SCP02 September 12, 2018 10 / 19

  23. Practical experiments 80 valid padding invalid padding 300 60 Number of samples Number of samples 200 40 100 20 0 0 31 32 33 34 35 20 40 60 80 100 Time (ms) Time (ms) 150 120 100 100 80 Number of samples Number of samples 60 50 40 20 0 0 14 16 18 20 22 24 26 28 45 50 55 60 65 Time (ms) Time (ms) CHES 2018 SCP02 September 12, 2018 11 / 19

  24. Practical experiments Experimental setting: card connected to a card reader (4 card readers, wired and wireless) 10 smart cards from 6 card manufacturers SIM cards, generic Java cards Experiment: find a 16-byte secret key sent to the smart card in an encrypted SCP02 command 300 experiments/card ⇒ 100 % success Practical complexity ∈ [ 127 . 75 , 133 . 38 ] close to best average case (128) Time to find 16 bytes: 2.7 mn to 11.4 mn (variable response time from the smart card) CHES 2018 SCP02 September 12, 2018 12 / 19

  25. Practical experiments Experimental setting: card connected to a card reader (4 card readers, wired and wireless) 10 smart cards from 6 card manufacturers SIM cards, generic Java cards Experiment: find a 16-byte secret key sent to the smart card in an encrypted SCP02 command 300 experiments/card ⇒ 100 % success Practical complexity ∈ [ 127 . 75 , 133 . 38 ] close to best average case (128) Time to find 16 bytes: 2.7 mn to 11.4 mn (variable response time from the smart card) ⇒ Padding oracle attack is applicable against SCP02. CHES 2018 SCP02 September 12, 2018 12 / 19

  26. Practical experiments Experimental setting: card connected to a card reader (4 card readers, wired and wireless) 10 smart cards from 6 card manufacturers SIM cards, generic Java cards Experiment: find a 16-byte secret key sent to the smart card in an encrypted SCP02 command 300 experiments/card ⇒ 100 % success Practical complexity ∈ [ 127 . 75 , 133 . 38 ] close to best average case (128) Time to find 16 bytes: 2.7 mn to 11.4 mn (variable response time from the smart card) ⇒ Padding oracle attack is applicable against SCP02. ⇒ Among all the deployed smart cards (including 6 billion SIM cards), how many may be impacted? CHES 2018 SCP02 September 12, 2018 12 / 19

  27. Attack scenario Possible real-life scenario: upload of an applet embedding a secret key (e.g., transportation, banking) into the UICC/SIM card. 1. The victim downloads from a popular store an infected application into his smartphone. The application embeds a Trojan (e.g., Tordow [K16], Dvmap [U17]). 2. The Trojan gets access to the memory space of the legitimate application (through privileges escalation). 3. The Trojan can apply the attack: it reads, and modifies the encrypted SCP02 commands received by the legitimate application. 4. The Trojan repeatedly triggers the installation/deinstallation of the applet ⇒ the secret key is repeatedly sent through (new) SCP02 channels. CHES 2018 SCP02 September 12, 2018 13 / 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend