¿Qué riesgos de seguridad presenta el Puerto de acceso de prueba (TAP)?

3

Intentando que mi cabeza esté en el mundo JTAG . Observé cómo el El puerto de acceso a la prueba (TAP) funciona y, aunque entiendo por qué lo necesitamos, el diagrama me pareció (como desarrollador de software) presentando algunos tipo de puerta trasera a la arquitectura.

En el mundo del software, dichos mecanismos pueden usarse para probar algunas partes del software, sin embargo, se eliminan (con suerte) antes de que el software esté listo para su lanzamiento.

Entonces las preguntas son:

  • ¿TAP no introduce riesgos de seguridad para el hardware?
  • ¿Existen alternativas para mitigar dichos riesgos, si existen?
pregunta M. A. Kishawy

3 respuestas

4

Sí, TAP introduce riesgos de seguridad de hardware. Si tiene acceso al puerto JTAG, es posible que pueda introducir una entrada / salida falsa. Sin embargo, muchos chips proporcionan una configuración de desactivación de JTAG que desactiva la JTAG después de la programación.

En cuanto a la mitigación de riesgos, si necesita una seguridad física de tan bajo nivel, podría considerar elegir un IC que no tenga esta función o que le permita desactivarlo. Algunas señales de desactivación son solo un bit de flash, y un borrado completo del chip puede restaurar el acceso a JTAG, otras alteran permanentemente el IC, por lo que JTAG no estará disponible después de desactivarlo.

También hay implementaciones de JTAG encriptado, donde no puedes usar JTAG sin el cifrado y las claves adecuados.

El documento de 2009, "Ataques y defensas para JTAG" proporciona un detalle significativamente mayor en los diversos medios y formas en que se puede atacar a JTAG y defensas disponibles.

    
respondido por el Adam Davis
4

Primero, tiene la falsa impresión de que los mecanismos de depuración de SW se eliminan de los productos finales. Por ejemplo, compruebe API de depuración de Windows : tiene un amplio potencial de abuso (leyendo la memoria de otros procesos y demás) y los usuarios finales no necesitan nada.

Segundo, para explotar una interfaz de hardware como JTAG, el atacante debe tener acceso físico al sistema, que generalmente significa "juego terminado" en términos de seguridad. Incluso si la versión para el cliente del producto no tuviera JTAG, nada detendría al atacante de intercambiar la PCB con una personalizada, que tiene las interfaces que necesita el atacante.

El único problema real de seguridad surge cuando los desarrolladores quieren protegerse de usuarios malintencionados que podrían abusar de JTAG (para romper la cárcel, clonar firmware, etc.). Los mecanismos relevantes para dicha protección ya se mencionan en otras respuestas: bits de fusibles, claves de cifrado, etc. Por supuesto, eliminar completamente las interfaces de programación / depuración sería más seguro, pero también sería más costoso (por ejemplo, sin programación dentro del sistema) y reducir la posibilidad de control de calidad.

JTAG, en particular, se utiliza en las pruebas de fin de línea de PCB, lo que garantiza que los dispositivos defectuosos no se envíen a los clientes. Esa es la gran diferencia en comparación con el mundo del software: si ha lanzado un software, no tiene que probar cada copia antes de descargarlo. Si libera hardware, debe probar cada copia o asumir el riesgo de fallas de producción.

    
respondido por el Dmitry Grigoryev
2

Esta es una de las formas en que los usuarios hacen jailbreak a los teléfonos: a través del puerto JTAG. De hecho, le permite acceder a todo el estado y la memoria del procesador y, en algunos casos, al contenido de cualquier ROM interna. Esto lo hace muy útil durante la producción como una función de depuración.

Muchos sistemas proporcionarán un "fusible" en el chip, que es un dispositivo programable por única vez, para desactivar el acceso JTAG de tal manera que no se pueda volver a encender.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas