Cifrado de datos por hardware vs por software, ¿qué es mejor?

Cifrado de datos por hardware vs por software, ¿qué es mejor?

Rodrigo Alonso

Hoy en día el cifrado de datos está en boca de todos, especialmente dadas las frecuentes brechas de seguridad que ponen en estado de vulnerabilidad los datos de los usuarios. Por este motivo, muchos fabricantes de dispositivos de almacenamiento presumen de que sus dispositivos son compatibles con cifrado por hardware, pero como bien sabéis desde hace tiempo existen también métodos de cifrado por software. Si tenemos que escoger entre uno y otro, ¿es mejor cifrado por hardware o por software? Vamos a verlo.

Antes de comenzar a hablar de cuál de los dos tipos de cifrado es el mejor (y lo haremos tanto a nivel de seguridad como a nivel del impacto de rendimiento que tiene uno y otro en un PC) es de rigor definir primero en qué consisten las dos técnicas, así que vamos a comenzar por lo básico.

¿Qué es el cifrado por hardware?

Las unidades de almacenamiento que soportan cifrado por hardware vienen con un pequeño chip en su PCB, un procesador encargado de manejar el cifrado de datos con clave privada o pública (dependiendo del sistema de cifrado utilizado). Este procesador dedicado aloja las funciones matemáticas necesarias para ejecutar el algoritmo de cifrado y descifrado de datos.

Cifrado por hardware

Este procesador exclusivo va acompañado de una pequeña memoria dedicada para almacenar la clave segura, y está aislada del resto de las funciones del dispositivo para garantizar la mejor seguridad y el menor impacto de rendimiento en el dispositivo (esto significa que única y exclusivamente puede acceder a ella el procesador dedicado).

Por diseño, tanto el procesador como la memoria dedicados están completamente aislados del resto del sistema con el objetivo de reducir las posibilidades de un potencial ataque de fuerza bruta, mejorando a la vez la velocidad general en las funciones de cifrado y descifrado.

¿Qué es el cifrado por software?

El cifrado por software es un enfoque para asegurar datos confidenciales mediante el uso de herramientas de software para codificar los datos. La única manera de cifrar o descifrar estos datos es con una contraseña, así que depende exclusivamente de que el usuario la recuerde o que la apunte en alguna parte, por lo que la vulnerabilidad es mucho mayor.

Cifrado por software

En relación al cifrado por hardware, el cifrado por software no tiene un procesador dedicado para ejecutar los algoritmos necesarios, ni tampoco memoria dedicada para alojar la clave segura; igualmente, no tiene un sistema aislado de todo lo demás, así que es mucho más vulnerable a ataques externos, y consume recursos generales del sistema para poder realizar las operaciones de cifrado y descifrado.

¿Qué método es el más seguro? ¿Y el más rápido?

Si habéis leído las dos secciones anteriores ya tendréis bastante clara la respuesta a ambas preguntas: es mejor el cifrado por hardware, y por mucho. No solo es mucho más rápido, sino que al contar con un procesador y una memoria dedicados para ello no afecta al rendimiento global del sistema y, de hecho, es muchísimo más seguro porque esto se ejecuta en un circuito aislado del resto de componentes, por lo que es mucho menos vulnerable a ataques.

A moto comparativo, la velocidad a la que un motor de cifrado por hardware es capaz de realizar sus operaciones es entre 10 y 100 veces más rápido que un motor por software. Esto significa que lo que un motor por software tarda 100 ms en completar, a un motor por hardware podría llevarle tan solo 4 ms.

cifrado de disco completo

Los métodos de cifrado por software comparten el procesador y la memoria con el resto del sistema, compartiendo recursos con operaciones no seguras y que abren vulnerabilidades que pueden ser explotadas. Este modelo de recursos compartidos aumenta la superficie de ataque y permite que un atacante malintencionado pueda aprovechar errores en el software para acceder a ese cifrado de datos. Esto, como hemos explicado ya, no sucede con el cifrado por hardware al ejecutarse en un circuito aislado de lo demás.