sar ssi 2012
play

SAR-SSI 2012 1 Introduction Java Card security model Off-card - PowerPoint PPT Presentation

Samiya Hamadouche, Guillaume Bouffard , Jean-Louis Lanet, Bruno Dorsemaine , Bastien Nouhant, Alexandre Magloire, Arnaud Reygnaud guillaume.bouffard@xlim.fr bruno.dorsemaine@etu.unilim.fr SAR-SSI 2012 1 Introduction Java Card security model


  1. Samiya Hamadouche, Guillaume Bouffard , Jean-Louis Lanet, Bruno Dorsemaine , Bastien Nouhant, Alexandre Magloire, Arnaud Reygnaud guillaume.bouffard@xlim.fr bruno.dorsemaine@etu.unilim.fr SAR-SSI 2012 1

  2. Introduction Java Card security model Off-card security model Java class Byte code Byte code Byte code Java Card files verifier (BCV) converter signer file On-card security model Java Card Installed Firewall BCV Linker file applet 2

  3. Introduction Our objectives  Understand the security of Java Card better  Improve it Process  Create ill typed files  Load files on the card 3

  4. Summary Introduction Overview Dr4ccarD & the results Counter measures Conclusion 4

  5. Overview Goals  Execute arbitrary & rich shell-codes Problem  The addresses of the methods are not access free 5

  6. Process How ?  Modifying the CAP file What ?  Method Component  Constant Pool Component  Reference Location Component When ?  Linking step 6

  7. Normal linking step : before [ … ] .ConstantPoolComponent { [ … ] 0006 - ConstantStaticMethodRef : ExternalStaticMethoddRef : packageToken 80 classToken 10 token 6 } Method referenced by [ … ] the token 0006 .MethodComponent { [ … ] Constant Pool reference @008a invokestatic 0006 [ … ] (token) } [ … ] .ReferenceLocationComponent { [ … ] offsets_to_byte2_indices = { [ … ] @008b Offset of a token [ … ] } [ … ] } [ … ] 7

  8. Normal linking step : after [ … ] .ConstantPoolComponent { [ … ] 0006 - ConstantStaticMethodRef : ExternalStaticMethoddRef : packageToken 80 classToken 10 token 6 } [ … ] .MethodComponent { [ … ] Real address to call the method #8553 invokestatic 0539 [ … ] } [ … ] .ReferenceLocationComponent { [ … ] offsets_to_byte2_indices = { [ … ] @008b [ … ] } [ … ] } [ … ] 8

  9. The attack Original code Call to the referenced method [ … ] @008a invokestatic 0006 Token @008d bspush 2a @008f sreturn Push the byte 0x2a as a [ … ] signed short on the stack Return the top of the stack Output 0x002a reference 0x002a @0089 @008a @008f after 9

  10. The attack Modified code [ … ] @008a sspush 0006 Push the token on the stack @008d nop @008e nop @008f sreturn [ … ] Output 0x0539 0x0539 @0089 @008a @008f after 10

  11. Summary Introduction Overview Dr4ccarD & the results Counter measures Conclusion 11

  12. Dr4ccarD Cap Map CAP files Ill typed files Dr4ccarD OPAL Analysis  Generic  Platform independent Final report  API version (in)dependent 12

  13. The results Reference Java Card GP Characteristics Address of getKey a-21a 2.1.1. 2.0.1. 0x8C08 a-22a 2.2. 2.1. 64k EEPROM 0x080A a-22c 2.1.1. 2.1.1. 36k EEPROM, RSA 0x020F b-21a 2.1.1. 2.1.2. 16k EEPROM, RSA 0x3267 c-22a 2.1.1. 2.0.1. RSA 0x810B 2.1.1. 72k EEPROM, dual c-22c 2.2. 0x810B interface, RSA d-21a 2.1. 2.0.1. 32K EEPROM, RSA 0x0003 d-22b 2.1.1. 2.1.1. 16k EEPROM 0x80BA e-21a 2.2. 2.1. 72k EEPROM 0x142F 13

  14. Summary Introduction Overview Dr4ccarD & the results Counter measures Conclusion 14

  15. Counter measures Use an embedded BCV  O(n * 43 + p)  n : number of instructions  p : number of tokens 15

  16. Counter measures Only link real tokens  O(p * log(log(43)))  p : number of tokens .ReferenceLocationComponent { [ … ] @008b [ … ] Belong to {new, invokestatic, } invokevirtual , …} ? @008a invokestatic 0006 16

  17. Summary Introduction Overview Dr4ccarD & the results Counter measures Conclusion 17

  18. Conclusion  Map of the Java Card API  Reverse engineering is easier  Affordable counter measure  Ongoing work : Use a laser beam to bypass an embedded BCV 18

  19. Thank you for your attention Do you have any question ? guillaume.bouffard@xlim.fr bruno.dorsemaine@etu.unilim.fr http://secinfo.msi.unilim.fr/ 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