fault enabled viruses against smart cards
play

Fault enabled viruses against smart cards 1 2 1 Samiya - PowerPoint PPT Presentation

Fault enabled viruses against smart cards 1 2 1 Samiya HAMADOUCHE , Jean-Louis LANET , Mohamed MEZGHICHE 1 LIMOSE Laboratory, University


  1. Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ 1 ¡ 2 ¡ 1 ¡ Samiya ¡HAMADOUCHE ¡ ¡ ¡, ¡ Jean-­‑Louis ¡LANET ¡ ¡ ¡ ¡, ¡Mohamed ¡MEZGHICHE ¡ 1 ¡ LIMOSE ¡Laboratory, ¡University ¡of ¡Boumerdès ¡(Algeria) ¡ 2 ¡ INRIA ¡LHS-­‑PEC, ¡Rennes ¡ SDTA ¡2014 ¡ Clermont ¡Ferrand, ¡France, ¡ 5th ¡of ¡December ¡ ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  2. Outline ¡ � ¡ ¡Context ¡ ¡ � ¡ ¡MoSvaSon ¡ � ¡ ¡Example ¡: ¡Get ¡the ¡secret ¡key ¡ � ¡ ¡The ¡proposed ¡approach ¡ � ¡ ¡Concepts ¡ � ¡ ¡Principal ¡ � ¡ ¡Conclusion ¡and ¡future ¡work ¡ ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  3. Context ¡ Smart ¡Card ¡ � ¡ ¡Computer ¡with ¡reduced ¡resources ¡ � ¡ ¡Secured ¡device ¡that ¡stores ¡and ¡processes ¡ ¡ ¡ ¡ ¡ ¡sensiSve ¡data ¡ � ¡ ¡Many ¡uses ¡ ¡ � ¡ ¡Telecom ¡ ¡ ¡ � ¡ ¡Banking ¡ ¡ � ¡ ¡IdenSty ¡(passport, ¡etc.) ¡ � ¡ ¡Transport ¡ � ¡ ¡Others ¡… ¡ � ¡ ¡Java ¡Card ¡Pla[orm ¡ ¡ 1 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  4. Context ¡ Java ¡Card ¡security ¡ � ¡ ¡Security ¡assured ¡by ¡: ¡ � ¡Java ¡language ¡ ¡ � ¡Embedded ¡security ¡mechanisms ¡ ¡ ¡ ¡ ¡ ¡(byte ¡code ¡verifier, ¡firewall ¡, ¡transacSon, ¡etc.) ¡ ¡ ¡ ¡ ¡ ¡ ¡ 2 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  5. Context ¡ Java ¡Card ¡security ¡ � ¡ ¡Security ¡assured ¡by ¡: ¡ � ¡Java ¡language ¡ ¡ � ¡Embedded ¡security ¡mechanisms ¡ ¡ ¡ ¡ ¡ ¡(byte ¡code ¡verifier, ¡firewall ¡, ¡transacSon, ¡etc.) ¡ ¡ � ¡ ¡SensiSve ¡data ¡to ¡protect ¡ ¡ ¡ Physical ¡ ¡ ¡ Logical Attacks Combined ¡ 2 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  6. Context ¡ Fault ¡A]acks ¡ � ¡ ¡Introduce ¡perturbaSons ¡in ¡the ¡execuSon ¡environment ¡of ¡the ¡chip ¡ � ¡ ¡Means ¡ � ¡ ¡Clock ¡glitches ¡ � ¡ ¡Power ¡spikes ¡ � ¡ ¡Temperature ¡modificaSon ¡ � ¡ ¡ElectromagneSc ¡disturbance ¡ ¡ � ¡ ¡IlluminaSon ¡(OpScal ¡a]ack ¡/ ¡Light ¡a]ack) ¡ � ¡ ¡… ¡ ¡ ¡ ¡ ¡ ¡ 3 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  7. Context ¡ Fault ¡A]acks ¡ � ¡ ¡Fault ¡models: ¡Fault ¡a]acks ¡classificaSon ¡ � ¡ ¡Is ¡only ¡available ¡at ¡the ¡binary ¡level, ¡ � ¡ ¡Depend ¡on ¡the ¡source ¡(laser ¡or ¡EM). ¡ ¡ ¡ Fault ¡model ¡ Precision ¡ Posi?on ¡ Timing ¡ Fault ¡type ¡ Precise ¡bit ¡error ¡ Bit ¡ full ¡control ¡ full ¡control ¡ BSR* ¡ Precise ¡byte ¡error ¡ Byte ¡ full ¡control ¡ full ¡control ¡ BSR*, ¡random ¡ Unknown ¡byte ¡error ¡ Byte ¡ lose ¡control ¡ full ¡control ¡ BSR*, ¡random ¡ Random ¡error ¡ Variable ¡ no ¡control ¡ parSal ¡control ¡ Random ¡ * ¡BSR ¡: ¡Bit ¡Set ¡(0x00) ¡or ¡Reset ¡(0xFF) ¡ ¡ 4 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  8. Outline ¡ � ¡ ¡Context ¡ ¡ � ¡ ¡MoSvaSon ¡ � ¡ ¡Example ¡: ¡Get ¡the ¡secret ¡key ¡ � ¡ ¡The ¡proposed ¡approach ¡ � ¡ ¡Concepts ¡ � ¡ ¡Principal ¡ � ¡ ¡Conclusion ¡and ¡future ¡work ¡ ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  9. MoSvaSon ¡ Fault ¡Enabled ¡Viruses ¡ � ¡ ¡A ¡malicious ¡code ¡that ¡can ¡be ¡loaded ¡into ¡the ¡card ¡without ¡being ¡detected ¡ ¡ ¡ ¡ ¡ ¡ ¡by ¡the ¡security ¡mechanisms ¡ ¡ � ¡ ¡AcSvated, ¡aaer ¡being ¡loaded ¡in ¡the ¡card, ¡using ¡a ¡fault ¡injecSon ¡ ¡ � ¡ ¡Consequence ¡: ¡modificaSon ¡of ¡the ¡loaded ¡code ¡behavior ¡to ¡a ¡hosSle ¡one ¡ ¡ 5 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  10. MoSvaSon ¡ Fault ¡Enabled ¡Viruses ¡ Ques?on ¡: ¡ ¡Is ¡it ¡possible ¡to ¡hide ¡a ¡hosSle ¡code ¡inside ¡a ¡well-­‑ typed ¡program ¡and ¡then ¡acSvate ¡it ¡using ¡a ¡fault ¡injecSon ¡ once ¡loaded ¡in ¡the ¡card? ¡ ¡ Fault ¡enabled ¡viruses ¡construc?on ¡methodology ¡ ¡ 6 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  11. MoSvaSon ¡ Basic ¡idea ¡ Hypothesis ¡ Ins Inoffensive Inoffensive Hostile Code ¡ Code Code ?? � ¡ ¡Byte ¡code ¡level ¡ � ¡ ¡Fault ¡model ¡ � ¡ ¡Precise ¡byte ¡error ¡ � ¡ ¡Single ¡fault ¡ ¡ Opcode op1 op2 � ¡ ¡BSR ¡(0x00) ¡ ¡ � ¡ ¡Non-­‑encrypted ¡memory ¡ ¡ 7 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  12. MoSvaSon ¡ Basic ¡idea ¡ Hypothesis ¡ Ins Inoffensive Inoffensive Hostile Code ¡ Code Code ?? � ¡ ¡Byte ¡code ¡level ¡ � ¡ ¡Fault ¡model ¡ � ¡ ¡Precise ¡byte ¡error ¡ Nop � ¡ ¡Single ¡fault ¡ ¡ Ins1 op2 (0x00) � ¡ ¡BSR ¡(0x00) ¡ ¡ � ¡ ¡Non-­‑encrypted ¡memory ¡ Potentially a valid instruction To find the instructions sequence to add, at the beginning of the hostile code, respecting a set of defined constraints ¡ 8 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  13. MoSvaSon ¡ Basic ¡idea ¡ Byte code Instructions Inoffensive Code Code to hide Ins … . Ins i ?? ?? Ins j … . Ins n ?? Path Start state Arrival state A Constraints Satisfaction Problem ¡ 9 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  14. Outline ¡ � ¡ ¡Context ¡ ¡ � ¡ ¡MoSvaSon ¡ � ¡ ¡Example ¡: ¡Get ¡the ¡secret ¡key ¡ � ¡ ¡The ¡proposed ¡approach ¡ � ¡ ¡Concepts ¡ � ¡ ¡Principal ¡ � ¡ ¡Conclusion ¡and ¡future ¡work ¡ ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  15. Example ¡: ¡Get ¡the ¡secret ¡key ¡ public void process (APDU apdu ) { short localS ; byte localB ; // get the APDU buffer byte [] apduBuffer = apdu.getBuffer (); B1 if (selectingApplet ()) { return ; } byte receivedByte=(byte)apdu.setIncomingAndReceive(); // any code can be placed here // ... B2 ¡ DES keys.getKey (apduBuffer , (short) 0) ; B3 ¡ apdu.setOutgoingAndSend ((short) 0 ,16) ; } ¡ 10 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  16. Example ¡: ¡Get ¡the ¡secret ¡key ¡ OFFSETS INSTRUCTIONS OPERANDS ... ... /*00d6*/ getfield_a_this 1 // DES keys /*00d8*/ aload 4 // L4=> apdubuffer /*00da*/ sconst_0 /*00db*/ invokeinterface nargs: 3, index: 0 , const: 3 , method :4 /*00e0*/ pop // returned byte ... ... ¡ 11 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  17. Example ¡: ¡Get ¡the ¡secret ¡key ¡ OFFSETS INSTRUCTIONS OPERANDS . . . /*00d6*/ getfield_a_this 1 // DES keys /*00d8*/ aload 4 // L4=> apdubuffer /*00da*/ sconst_0 /*00db*/ invokeinterface nargs: 3, index: 2 , const:60 , method :4 /*00e0*/ pop // returned byte ... ... ¡ 12 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  18. Example ¡: ¡Get ¡the ¡secret ¡key ¡ OFFSETS INSTRUCTIONS OPERANDS . . . /*00d6*/ getfield_a_this 1 // DES keys /*00d8*/ aload 4 // L4=> apdubuffer /*00da*/ sconst_0 /*00db*/ invokeinterface 03, 02, 3C, 04 /*00e0*/ pop // returned byte ... ... ¡ 12 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

  19. Example ¡: ¡Get ¡the ¡secret ¡key ¡ OFFSETS INSTRUCTIONS OPERANDS . . . /*00d6*/ getfield_a_this 1 // DES keys /*00d8*/ aload 4 // L4=> apdubuffer /*00da*/ sconst_0 /*00db*/ ifle ?? //no operand /*00dc*/ invokeinterface 03, 02, 3C, 04 /*00e1*/ pop // returned byte ... ... ¡ 13 ¡ Jean-­‑Louis ¡LANET ¡ Fault ¡enabled ¡viruses ¡against ¡smart ¡cards ¡ ¡

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