Los peligros del diseño hardware
Tabla de contenidos
En este artículo se presenta un problema actual que pasa muy desapercibido hoy en día, el diseño hardware haciendo uso de componentes obsoletos o a punto de terminar su ciclo de vida.
Diseño Hardware, claves y fases
El diseño hardware de un dispositivo es un proceso largo y muy complejo a través del cual se realiza el diseño físico del dispositivo. Para que este sea funcional es necesario complementar el diseño hardware con un software que gobierne y regule dicho hardware.
Los diseños hardware se realizan sobre lo que en electrónica se denominan PCB (placas de circuito impreso). Estas placas están constituidas de un material no conductor y sobre ellas se definen caminos (pistas) de material conductor (generalmente cobre) que permiten interconectar los distintos componentes del diseño. Por regla general, las PCBs se dividen en capas para facilitar la interconexión entre los componentes y evitar que las pistas se crucen. Las capas exteriores suelen estar conectadas a masa para aislar el sistema de interferencias externas.
El proceso de diseño de PCBs se puede separar en tres fases fundamentales: definición o alcance del dispositivo; factor de forma y diseño industrial; y selección de componentes y diseño de la placa de circuito impreso.
1. Funcionalidad del dispositivo
Durante la primera fase del proceso de elaboración del dispositivo se debe definir la funcionalidad esperada del mismo y el entorno de trabajo sobre el que se va a realizar. A partir de estos conceptos se determinan las condiciones (normativas y requerimientos) a las que debe someterse el dispositivo que se desea fabricar.
Existen un conjunto de normativas que son comunes a todos los dispositivos y que están relacionadas con la seguridad de los mismos. Entre estas normativas destacan los diseños seguros para prevenir interferencias con el resto de los dispositivos (EMI / EMC) o el aislamiento eléctrico para evitar posibles sobretensiones. Dependiendo de la aplicación del dispositivo pueden aplicarse restricciones más fuertes.
Se proponen a continuación dos ejemplos prácticos que ayudan a visualizar este tipo de restricciones: una tostadora y un sensor industrial.
La tostadora se clasificaría como un dispositivo genérico y doméstico que debe acogerse a las restricciones más estándar como no interferir con el resto de los dispositivos (por ejemplo, una cafetera, la nevera…) y ser eléctricamente segura. Por su parte, el sensor industrial estará sujeto a restricciones más fuertes. Supongamos por ejemplo que se quiere diseñar un altímetro de un avión o un sensor para una central nuclear.
Estos dispositivos, además de los requerimientos básicos de seguridad, tendrán que cumplir normativas específicas de su marco de operación o trabajo (altas vibraciones, niveles de radiación…).
2. La estética del dispositivo
La segunda fase de diseño hardware se focaliza en el factor de forma del dispositivo. En esta etapa de diseño hay que tener en cuenta la estética final del dispositivo, así como el uso que se le desea dar.
Si se toma como referencia el diseño de un smartphone se tendrá que considerar el tamaño, peso, color … así como otro conjunto de medidas y parámetros como el tipo de pantalla, el tamaño de la batería, el sensor de la cámara. Todos estos factores influyen en la percepción de consumidor final e impactan severamente en la imagen de marca de la empresa (tanto positiva como negativamente).
El tamaño del dispositivo es un criterio determinante ya que condiciona tanto el tamaño de los componentes como el número de los mismos que se pueden incluir en el diseño.
Hace unos años, Samsung tuvo una importante depreciación de su marca a causa de un fallo de diseño en uno de sus productos estrella: el Galaxy Note. Fruto de un fallo de diseño, la batería del dispositivo no podía expandirse y contraerse libremente lo que provocaba que llegado un punto explotase. Si bien es cierto que este ejemplo no se corresponde con un fallo de diseño a nivel electrónico, ejemplifica muy bien la importancia de esta fase durante el desarrollo del producto.
3. Selección de componentes
En la tercera fase se seleccionan los componentes que satisfagan tanto los requerimientos de funcionamiento como los requisitos del diseño industrial del dispositivo.
Dependiendo de los volúmenes de producción, se pueden adquirir componentes de forma exclusiva para un dispositivo o bien comprar productos genéricos e incluirlos en nuestro diseño. Actualmente, la mayoría de las empresas hacen uso de componentes de terceros para la fabricación de sus propios productos.
Una vez seleccionados los componentes, se procede al diseño de la PCB propiamente dicho. Para realizar este proceso de diseño de la PCB existen programas especializados de diseño hardware como Altium o KiCad. Estos programas específicos constituyen una ayuda indispensable para el ingeniero electrónico ya que permiten diseñar los esquemáticos, la distribución en la placa de los componentes (layout) y las conexiones entre los mismos (traces/pistas).
Otra funcionalidad interesante de este tipo de herramientas es que nos permiten trabajar con librerías de componentes. A cada componente se le asocia una huella o footprint que no es más que una representación virtual del empaquetado del componente.
Durante el diseño de la PCB se disponen estas huellas a lo largo de la placa de forma que durante el montaje de esta se suelden los componentes encima de sus respectivas huellas. Gracias a herramientas como Altium o KiCad podemos disponer de numerosas librerías de componentes o crear nuestras propias huellas en caso de que no existan unas por defecto para un tipo de componente específico.
El proceso de selección de componentes es bastante laborioso y requiere de una profunda investigación por parte del ingeniero electrónico.
Debido a la gran cantidad de componentes en el mercado, es necesario identificar el tipo de componentes que requiere la PCB que se desea diseñar y, para cada uno de ellos, hay que consultar la hoja de características o datasheet de los mismos.
Criterios para la elección correcta
Durante el estudio del datasheet se comprueba el factor de forma del componente (tamaño, tipo de huella…), así como otras propiedades propias del mismo (tensión de funcionamiento, condensadores de desacoplo, impedancias de carga…). En caso de disponer de distintas alternativas, es decir, de distintos componentes que realicen la misma funcionalidad, se deben aplicar los siguientes criterios para discriminar la elección correcta: precio, disponibilidad y ciclo de vida del componente.
Actualmente, debido a la crisis de existencias de los dispositivos (comúnmente denominada crisis del silicio) la disponibilidad y el precio se han posicionado como dos factores determinantes en la elección de los componentes.
Por otro lado, el ciclo de vida de un componente se define como la estimación de tiempo que realiza un fabricante a través de la cual se define el tiempo que considera necesario para amortiguar los gastos de fabricación y sacar beneficio con la venta del componente. Una vez superado este tiempo de vida, el fabricante retira el componente y saca una versión nueva.
En componentes simples como las resistencias o los condensadores, el ciclo de vida tiene un impacto relativamente bajo en el diseño del dispositivo ya que reemplazar estos componentes es muy sencillo al estar tan estandarizados. Sin embargo, sustituir integrados más específicos y complejos es algo más complicado porque puede precisar de un rediseño total del hardware en el caso en el que la huella (forma) o alguna de las propiedades del componente varíe.
Es importante tener presente que los ciclos de vida no solo están relacionados con la mejora de los componentes en el tiempo sino con la oferta y la demanda entre los fabricantes. Si un fabricante detecta que uno de sus productos se vende menos que el de la competencia, intentará parecerse al producto de la competencia modificando las propiedades del componente y acortando su tiempo de vida. Estas modificaciones pueden ser transparentes para nuestro diseño o impactar muy negativamente en el mismo.
Para facilitar la selección de los componentes se puede hacer uso de las páginas de los principales distribuidores o utilizar herramientas específicas como Octopart para realizar las búsquedas de los mismos.
Riesgos del diseño hardware con componentes obsoletos
La principal ventaja de diseñar hardware con componentes antiguos es que se conoce perfectamente el comportamiento físico de los componentes reduciendo los riesgos de posibles errores de hardware. Por el contrario, en lo referente al software es bastante más probable que aparezcan nuevas vulnerabilidades en componentes con un tiempo de vida más largo ya que es más probable que existan más investigadores focalizándose en ellos a lo largo del tiempo.
Por su parte, los principales problemas del diseño con componentes antiguos son el desabastecimiento y las vulnerabilidades no parcheadas. En lo referente al desabastecimiento, no disponer de un componente crítico puede suponer tener que rediseñar el producto completo. Esto último es especialmente importante en las labores de reparación y mantenimiento, en las cuales si no se dispone del componente específico poco más se puede hacer
En lo relativo a las vulnerabilidades, estas suelen estar más relacionadas con el software que con el hardware, por lo que sí se puede actualizar el dispositivo de alguna forma no tendríamos estos problemas. La dificultad en este sentido radica en que muchos sistemas (por ejemplo, nodos de IoT) no tienen mecanismos de actualización disponibles. Por último, en el caso de vulnerabilidades hardware, el tiempo es un mal aliado y la única solución posible es reemplazar el componente con otro no afectado (en este caso, rediseñado el sistema).
Riesgos del diseño hardware con componentes nuevos
Diseñar hardware con componentes nuevos tiene la ventaja de que el abastecimiento de dichos componentes se encuentra muy alineado con el tiempo de vida que esperamos que tenga el dispositivo que estamos desarrollando. El problema de estos componentes es que al ser tan nuevos se desconoce cómo se van a comportar a largo plazo y si tienen algún tipo de vulnerabilidad asociada.
Las posibles vulnerabilidades asociadas a los componentes nuevos se pueden clasificar en fallos de hardware o de firmware.
Las erratas hardware tienen un impacto muy alto y requieren lanzar una nueva versión de hardware para su subsanación. Normalmente se encuentran relacionadas con fallos de diseño relacionados con el funcionamiento de un componente individual o de la placa en general (errores con el cálculo de impedancias, olvidarse de colocar condensadores de desacoplo…).
Las erratas de firmware normalmente las soluciona el fabricante del integrado, actualizando el software interno del mismo. Es común que las pilas de algún protocolo de comunicación tengan fallo y no permitan ciertos modos de conexión o fluctuaciones en la velocidad de transmisión.
Un ejemplo común de este tipo de fallos que estuvo vigente durante mucho tiempo lo tenemos en los expansores de buses I2C.
Alertas de diseño con la obsolescencia del hardware
Todos los componentes tienen obsolescencia programa y tarde o temprano desaparecen del mercado. Como ya se ha expuesto a lo largo del artículo, el impacto de que desaparezca un componente determinado puede ser trivial o crítico.
Si el remplazado del componente por la nueva versión se puede incluir en el diseño hardware el impacto es mínimo y la solución es trivial. Sin embargo, si se modifican los componentes (factor de forma, propiedades…) o si desaparecen, el impacto es crítico y hay que rediseñar el dispositivo.
Desde el equipo de Innovación de Tarlogic Security se recomienda intentar trabajar siempre con componentes actualizados o con ciclos de vida largos para evitar problemas de seguridad o desabastecimiento en el futuro.
En lo relativo a los problemas de seguridad, se ha detectado que numerosos fabricantes sacan al mercado productos con componentes hardware antiguos que incorporan, por ejemplo, Bluetooth 5.0. Actualmente, existen un gran número de vulnerabilidades Bluetooth que afectan a esta versión. Por ello, desde el equipo de Innovación de Tarlogic se recomienda usar componentes más actualizados que incorporen versiones de Bluetooth más actualizadas (5.2) para mitigar este tipo de riesgos.
En lo referente a los riesgos devenidos del desabastecimiento, fruto de la crisis del silicio hay muchos fabricantes que no pueden producir nuevos dispositivos al no disponer de todos los componentes necesarios para su fabricación. Un ejemplo de ello lo tenemos en las videoconsolas donde empresas tan grandes como Sony o Microsoft no son capaces de fabricar la PS5 o la Xbox.
En el caso de empresas más modestas, un problema de abastecimiento puede suponer que la principal vía de ingresos de las mismas desaparezca pudiendo llegar a quebrar por ello.
Riesgos a futuro / presente del diseño hardware
El diseño con un hardware obsoleto no significa necesariamente un impedimento para el cliente siempre y cuando este sea consciente de ello y esté dispuesto a asumir los riesgos devenidos de esta circunstancia.
Desde el departamento de Innovación de Tarlogic Security, se han clasificado los riesgos potenciales en tres familias:
- 1. Riesgo de seguridad para las personas.
- 2. Riesgo de seguridad para los equipos
- 3. Riesgo de seguridad para la información
Los riesgos de seguridad para las personas se definen como todos aquellos riesgos que pueden desencadenar algún tipo de daño para las personas.
Un ejemplo de este tipo de riesgos podría ser lanzar un ataque para subir el volumen a un altavoz Bluetooth 4.1 vulnerable de forma violenta, causando una perforación de tímpano a los oyentes.
Los riesgos de seguridad para los equipos son los que pueden desencadenar un defecto en el funcionamiento del dispositivo que hagan que ese dispositivo (u otros que dependen de él) sufra algún tipo de daño que genere un perjuicio.
El principal problema de este tipo de riesgos es identificar la fuente o vector de entrada, y el impacto de los mismos. Desde el equipo de Innovación de Tarlogic estamos continuamente estudiando nuevas tecnologías, las comunicaciones y los casos de uso de dispositivos implantados en el mercado para identificar de forma preventiva este tipo de riesgos.
Finalmente, los riesgos de seguridad para la información son los que pueden desencadenar una vulneración de la seguridad y/o robo de información. En numerosas ocasiones, el vector de ataque de este tipo de riesgos está asociado a componentes hardware antiguos. Por ello, desde Tarlogic se advierte de que utilizar hardware antiguo y vulnerable en dispositivos nuevos es una mala práctica de diseño.
Conclusiones del diseño hardware
A modo de conclusión, desde el equipo de Innovación de Tarlogic se recomienda que todas las decisiones adoptadas durante el proceso de diseño hardware se realicen con conocimiento de causa.
Tal y como se ha expuesto en el artículo, existen riesgos tanto al utilizar componentes obsoletos (desabastecimiento, vulnerabilidades conocidas, ciclo de vida en fase terminal…) como nuevos (posibles vulnerabilidades nuevas, zero – day).
Lo ideal es trabajar con componentes que, por un lado, sean relativamente nuevos y con un ciclo de vida análogo al que queremos ofertar con el dispositivo. Y, por otro lado, que se hayan auditado adecuadamente y no tengan vulnerabilidades asociadas a los mismos. Por desgracia, casar ambos criterios no es una tarea sencilla y en la mayoría de las ocasiones hay que realizar un compromiso entre beneficio y riesgo.
Se espera que, en el futuro cercano con la proliferación de los dispositivos IoT, el diseño hardware seguro se posicione como un elemento crítico y muy demandado en el paradigma de la ciberseguridad. Conectar un dispositivo vulnerable a una red (doméstica o de trabajo) supone un riesgo muy elevado ya que este actúa como puerta de entrada para la realización de ataques más complejos.
Descubre nuestro trabajo y nuestros servicios de ciberseguridad en www.tarlogic.com/es/