Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rooted2015 - Ingenieria inversa de circuitos integrados

2,472 views

Published on

La ingeniería inversa de hardware y circuitos integrados es la última frontera de la seguridad, y también uno de los mundos más desconocidos para la mayoría de los profesionales del sector de la seguridad informática.Esta presentación nos ofrecerá un viaje a este mundo microscópico donde podremos ver sus particularidades, retos, y ejemplos de las técnicas necesarias para adentrase en el. Como parte de este viaje también veremos un caso practico de ataque a una CPU de seguridad utilizada en diversos sistemas del mundo del videojuego arcade.

Published in: Technology
  • Be the first to comment

Rooted2015 - Ingenieria inversa de circuitos integrados

  1. 1. Ingeniería  Inversa  de   Circuitos  Integrados   Eduardo  Cruz   @edcrossed   Arcadehacker.blogspot.com  
  2. 2. ¿Por  qué  analizar  chips?   •  ÚlCma  frontera  de  la  seguridad   •  Gran  reto,  diverCdo   •  Aprendizaje  de  múlCples  disciplinas  
  3. 3. Sobre  el  ponente   •  Aficionado  a  la  seguridad   •  Coleccionista  de  juegos  arcade   •  Si  yo  puedo,  TÚ  TAMBIÉN  
  4. 4. En  esta  presentación   1.  Fabricación  de  circuitos  CMOS   2.  Decapsulado,  Microscopía,  Deprocesado   3.  Ingeniería  inversa  y  simulación     4.  Caso  prácCco:  CPU  Capcom  Kabuki  
  5. 5. 1.  Fabricación  de  circuitos  CMOS    
  6. 6. 1947  
  7. 7. 1947  
  8. 8. 1947  1925:  Julius  Edgar  Lilienfeld’s  MESFET  patent   1935:  Oskar  Heil’s  MOSFET  patent   194?:  Unpublished  Bell  Labs  MESFET   1947:  Ge  BJT  (Bardeen,  Bradain,  Shockley,  Bell  Labs)   1954:  Si  BJT  (Teal,  Bell  Labs)   1960:  MOSFET  (Atalla&Khang,  Bell  Labs)   1961:  Integrated  circuit  (Kilby,  TI)   1963:  CMOS  (Sah&Wanlass,  Fairchild)   1964:  Commercial  CMOS  IC  (RCA)   1965:  DRAM  (Fairchild)   1968:  Poly-­‐Si  gate  (Faggin&Klein,  Fairchild)   1968:  1-­‐FET  DRAM  cell  (Dennard,  IBM)   1971:  UV  EPROM  (Frohman,  Intel)   1971:  Full  CPU  in  chip,  Intel  8008  (Faggin,  Intel)   1974:  Digital  watch   1974:  Scaling  theory  (Gänsslen&Dennard,  IBM)   1978:  Use  of  ion  implanter   1978:  Flotox  EEPROM  (Perlegos,  Intel)   1980:  Ion-­‐implanted  CMOS  IC   1980:  Plasma  etching   1984:  Scaling  theory  <0.25  μm  (Baccarani,  U.  Bologna)   1986:  0.1  µm  Si  MOSFET  (Sai-­‐Halasz,  IBM)   1991:  CMOS  replaces  BJT  also  at  high-­‐end   1993:  DGFET  scalable  to  30  nm  (theory,  Frank  et  al.)   2007:  Non-­‐SiO2  (HfO2–based)  MOSFET  (Intel)   A  (par3al,  biased?)  history  of  the  MOSFET    from  a  physicist’s  perspec3ve  -­‐  M.  Fisches  2009  
  9. 9. 1947  
  10. 10. 1947  
  11. 11. 1947  
  12. 12. 1947  
  13. 13. 1947   …400  to  500  chemical  processes…  
  14. 14. 1947  
  15. 15. 1947  
  16. 16. 1947  
  17. 17. 1947  
  18. 18. 1947  
  19. 19. 1947  
  20. 20. 1947  
  21. 21. 1947  
  22. 22. 1947   1.  Fabricación  de  circuitos  CMOS   2.  Decapsulado,  Microscopía,  Deprocesado    
  23. 23. 1947   Las  técnicas  descritas  a   conCnuación  son  peligrosas   para  u  y  los  que  te  rodean   ADVERTENCIA   Google  images:    Nitric  acid  burns                  Hydrofluoric  acid  burns  
  24. 24. 1947   Decapsulado  
  25. 25. 1947   Microscopía  
  26. 26. 1947   Deprocesado  
  27. 27. 1947  Tipos  de  decapsulado   •  DestrucCvo   – La  muestra  deja  de   ser  funcional       •  Vivo   – La  muestra  conCnua   siendo  operaCva     Bonding  wires   IC  die     solamente  
  28. 28. 1947  Equipo  básico   •  Equipo  laboratorio   –  Bata,  guantes,  pipetas,  gafas…   •  Herramientas   –  Dremel   –  Base  calentadora   –  Campana  extractora  (o  al  aire  libre)   •  Químicos   –  Ácido  nítrico  (H2NO3)  min.  70%   –  Acetona    
  29. 29. 1947  Decapsulado:  Preparación   •  Cavidad   – Amateur:  Dremel   – Pro:  Machining   – Lab:  Laser  
  30. 30. 1947  Decapsulado:  Ataque  amateur   destrucCvo   t4f.org  
  31. 31. 1947   Decapsulado:  Ataque  amateur  vivo  
  32. 32. 1947   Decapsulado:  Ataque  Pro  
  33. 33. 1947   Decapsulado:  Ataque  Lab  
  34. 34. 1947   Microscopía   •  Captura  de  imágenes   – Amateur:  Microscopio  básico   – Pro:  Microscopio  estéreo    +  Bandeja  XY   – Lab:  SEM/FIB  
  35. 35. 1947   Microscopía:  Potencia  +  Calidad   Mal  asunto   Algo  mejor   Perfecto  
  36. 36. Límite   luz   visible     Microscopio   Electrónico   Microscopio   Óp3co  
  37. 37. 1947   Microscopía   •  GesCón  de  imágenes   – Autopano-­‐si~-­‐C   – pr0nsCch  /  pr0ntools   – Gimp  /  Photoshop   +  
  38. 38. 1947   Deprocesado   •  Descubrimiento  de  capas  interiores  
  39. 39. 1947   Deprocesado:  Amateur-­‐>  Lapping  
  40. 40. 1947   Deprocesado:  Pro  -­‐>  HF  
  41. 41. 1947   Deprocesado:  Lab  -­‐>  FIB/RIE  
  42. 42. 1947   1.  Fabricación  de  circuitos  CMOS   2.  Decapsulado,  Microscopía,  Deprocesado   3.  Ingeniería  inversa  y  simulación      
  43. 43. 1947  So~ware  VSLI  CAD   Amateur   Pro  
  44. 44. 1947  Simulación  /  Validación   IRSIM  
  45. 45. 1947   ANÁLISIS                                                                                                                                                                      SIMULACIÓN/VERIFICACIÓN   XOR  Metal  completo   Metal  1  eliminado   Metal  1  &  2  eliminados   Ejemplo  de  Ingeniería  Inversa  
  46. 46. 1947  
  47. 47. 1947   1.  Fabricación  de  circuitos  CMOS   2.  Decapsulado,  Microscopía,  Deprocesado   3.  Ingeniería  inversa  y  simulación   4.  Caso  prácCco:  Capcom  Kabuki    
  48. 48. 1947   Z80  CRYPTO  CPU  
  49. 49. 1947  
  50. 50. 1947  
  51. 51. 1947   MEMORIA  (LLAVES  DESCIFRADO  EN  CPU)  ALIMENTADA  POR  BATERÍA  
  52. 52. 1947   ORIGNAL     COPIA  /  BOOTLEG   ¿Por  qué  seguridad  en  arcade?  
  53. 53. 1947  
  54. 54. 1947  
  55. 55. 1947  
  56. 56. 1947  
  57. 57. 1947  
  58. 58. 1947  
  59. 59. Programador  y   seguridad   Registros  de   memoria   Descifrado   Descifrado  y   rutado  de  bus   de  datos   Intercepción   del  bus  de   datos   Intercepción  del   bus  de   direccionamiento   y  control  
  60. 60. Programador   y  seguridad   Registros   memoria   108  bits  
  61. 61. Kabuki  Programador   •  Control  de  acceso   – Controla  la  escritura  a  los  registros  de  memoria   – Previene  que  extraños  escriban  en  la  memoria    
  62. 62. Kabuki  Simulación  
  63. 63. Memoria   •  Registros  108  x  1  bit   – Disposición:  Entrada  en  serie.  Salida  en  paralelo.   – 72  bits:  Llaves  de  descifrado   – 16  bits:  Rango  de  memoria  a  descifrar   – 20  bits:  Memoria  de  trabajo    
  64. 64. Trazado  
  65. 65. Kabuki  Programador   •  Implementación  de  seguridad   –  No  trivial:  múlCples  fases  y  ofuscación   –  Requiere  deprocesado  de  la  cpu   –  Fases  de  seguridad   •  #1  Configuración  de  señales   •  #2  Llamada  secreta     •  #3  Llave  secreta  #1  20  bit  –  Ofuscación  †sica   •  #4  Llave  secreta  #2  –  Ofuscación  †sica    
  66. 66. GND     +5  volts   +5  volts   Fase  1  –  Configuración  
  67. 67. Fase  1  –  Configuración   BAJO   ALTO   BAJO   ALTO   GND     +5  volCos   +5  volCos  
  68. 68. Fase  2  –  Llamada  secreta     3x   PULSOS  DE  RELOJ  
  69. 69. Fase  2  –  Llamada  secreta     Registros  de  memoria   1  bit  cada  uno  
  70. 70. Fase  3  –  Llave  secreta  #1  20bits   Registros  de  memoria  conectados  en  serie  
  71. 71. Fase  3  –  Llave  secreta  #1  20bits   Registros  de  memoria  conectados  en  serie   XNOR  
  72. 72. Fase  3  –  Llave  secreta  #1  20bits   Registro   memoria   XNOR  
  73. 73. Fase  3  –  Llave  secreta  #1  20bits   Output   Input  B  Input  A   XNOR    
  74. 74. Fase  3  –  Llave  secreta  #1  20bits   Conector  ofuscado  
  75. 75. Fase  3  –  Llave  secreta  #1  20bits   XNOR  conectado  a  VCC  (+5)  rail   XNOR  conectado  a  VDD  (ground)  rail  
  76. 76. Fase  3  –  Llave  secreta  #1  20bits   1  x  Pulso  de  reloj  con  cada  bit   Secuencia  llave  20  bits   1011  0111  1010  0100  0101  
  77. 77. Fase  4  –  Llave  secreta  #2   10  x  Pulsos  de  reloj  
  78. 78. Fase  4  –  Llave  secreta  #2   5  x  Registros  de  memoria   1  bit  cada  uno     5  x  XNOR  
  79. 79. Programación   1  x  Pulso  de  reloj  con  cada  bit   108  bits  
  80. 80. Programación  de  Capcom  Block  Block   Bits  de  trabajo  –  por  defecto  a  cero   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0       Address  Key                             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0                       Swap  Key  #2                                         1,  1,  0,  1,  0,  0,  0,  1,  0,  0,  0,  0,  1,  1,  1,  1,  0,  1,  0,  1,  1,  0,  0,  1               Swap  Key  #1   0,  0,  0,  0,  1,  0,  1,  0,  0,  1,  1,  0,  0,  0,  1,  0,  1,  1,  1,  0,  1,  1,  1,  1     XOR  Key           0,  0,  0,  0,  0,  0,  0,  1         Rango  de  memoria  a  descrifar   1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0    
  81. 81. Reprogramador  llaves  basado  en  arduino  
  82. 82. GRACIAS   @edcrossed   Arcadehacker.blogspot.com  

×