Muchos de los sistemas electrónicos actuales incorporan conectividad USB. Aunque esta conexión es altamente utilizada en todo el planeta, no tiene incorporado un mecanismo de seguridad para proteger los datos que se transmiten. Para algunas aplicaciones esto puede ser una preocupación.
La especificación USB define varias clases de dispositivos que especifican como éstos operan. Muchos tienen un formato de datos predeterminado para comunicarse que debe respetarse para un funcionamiento correcto. A su vez esto permite a dispositivos como ratones y teclados operar en varias plataformas sin requerir controladores especiales cuando se conectan por primera vez. Cabe destacar que estos dispositivos realmente no necesitan ningún tipo de seguridad ya que sus datos son bien conocidos.
El problema emerge cuando se utiliza otra clase de dispositivo donde los datos a transmitir son personalizados. Como USB está diseñado preferentemente para ser utilizado en datos predeterminados, no existe un mecanismo incorporado de seguridad para datos personalizados.
El componente que hace posible un sistema USB con seguridad de datos es un algoritmo de encriptación. Existen varios algoritmos a elegir, los cuales varían en la seguridad que proporcionan: el tamaño, el tiempo que toman en encriptar o desencriptar un bloque de datos, y la compatibilidad con compiladores.
Uno de los mejores algoritmos es Advanced Encryption Standard (AES). Es bastante seguro y con un tamaño de código considerable (aproximadamente 8 KBytes). Otra característica interesante de este algoritmo es que posee soporte por default con la plataforma .NET de Microsoft.
Existen otras alternativas, como por ejemplo The Data Encryption Standard (DES) y The Triple Data Encryption Standard (TDES), los cuales también tienen soporte con .NET, sin embargo son más lentos, menos seguros y ocupan más espacio que AES.
Los desarrolladores deben de tener en cuenta varios puntos antes de elegir el algoritmo correcto, uno de los más importantes es el impacto que tendrá en la aplicación, hablando en términos de espacio de memoria que utilizará y tiempo que tomará en ejecutarse.
Sin duda, los sistemas electrónicos seguros con USB son una realidad que lleva años llevándose a cabo, sobre todo en aplicaciones secretas gubernamentales donde la seguridad de los datos es altamente importante. Sin embargo, la integridad de los datos nunca será 100% segura, siempre habrá un espacio de vulnerabilidad donde un atacante preparado puede aprovecharse.