El Motor de Seguridad VIA PadLock comprende un conjunto de prestaciones rompedoras integradas en todos los procesadores x86 recientes de VIA. Como parte de la Iniciativa de Seguridad VIA Padlock, el Motor de Seguridad VIA PadLock proporciona una aproximación basada en plataforma a la seguridad informática, que garantiza un rendimiento de seguridad sin compromiso que trabaja conjuntamente con software puntero de seguridad.
Estas prestaciones incluyen la implementación del VIA PadLock RNG (Generador de Números Aleatorios) basado en cuántica, así como del VIA PadLock ACE (Motor Criptográfico Avanzado), que soporta el estándar de encriptación AES del Gobierno de Estados Unidos, encriptación Secure hash SHA-1/SHA-256 y computación acelerada de algoritmos RSA (mediante la inclusión de un Multiplicador Montgomery). Los elementos del Motor de Seguridad VIA PadLock han sido integrados en los procesadores VIA C7, VIA C7-M, VIA Eden™ ESP, Eden™-N, VIA C3™-M, y VIA C3™ (consulte aquí para una comparativa de procesadores recientes).
Por favor, pulse en las siguientes prestaciones para saber más sobre los requisitos de seguridad y el enfoque de VIA para dar respuesta a estos desafíos:
Para descargar una guía detallada del Motor de Seguridad VIA C5J PadLock, por favor pulse aquí.
Generación de números aleatorios
La necesidad de los números aleatorios
A medida que los algoritmos de seguridad se hacen más complejos en un esfuerzo por frustar a los hackers, los números aleatorios que les sirven como base se han convertido en una cuestión fundamental para proporcionar plataformas seguras. Esta preocupación ha sido aumentada por la proliferación del uso de dispositivos móviles, que a menudo implica la transmisión y almacenamiento local de información importante.
Las principales preocupaciones a las que se debe hacer frente para ofrecer una plataforma informática segura son:
Confidencialidad
La encriptación de datos es una preocupación de primer orden para ofrecer información de forma segura a través de plataformas móviles e integradas.
Aunque existen múltiples maneras de proporcionar esta seguridad, la mayoría de las aplicaciones seguras implementa un sistema de encriptación asimétrico (clave pública) o simétrico (con niveles variables de complejidad).
La solidez criptográfica de estos sistemas de encriptación depende de la fortaleza de la clave, o sea, la dificultad para predecir, adivinar o calcular la clave. Para garantizar que estas claves no pueden ser fácilmente adivinadas, se utilizan generadores de números aleatorios para producir claves criptográficas y otros parámetros secretos en prácticamente todas las aplicaciones de seguridad.
Autenticación
Los protocolos de autenticación pregunta/respuesta requieren que los valores de la pregunta sean tan impredecibles como sea posible, para asegurar que los atacantes no podrán reutilizar datos de anteriores transacciones de autenticación. La solidez de las contraseñas utilizadas para proteger el acceso y la información también depende de la dificultad para predecir o adivinar la palabra clave. Por lo tanto, son necesarios sólidos generadores de números aleatorios para crear contraseñas fuertes de forma automática.
Integridad
Las firmas digitales y los resúmenes de mensajes se utilizan para garantizar la integridad de las comunicaciones a través de una red. Los números aleatorios se utilizan a menudo en algoritmos de firma digital para hacer más difícil que alguien malicioso pueda falsificar la firma. Muchos algoritmos de firma, incluido el Estándar de Firma Digital del Gobierno de Estados Unidos, también necesitan fuentes aleatorias para garantizar la seguridad de las claves de firma.
En resumen, una buena seguridad requiere buenos números aleatorios.
Cómo generar números aleatorios
En general, existen tres métodos para generar números aleatorios: software, fuentes físicas e incertidumbre cuántica.
Software
La manera más común de generar números aleatorios es utilizar un algoritmo determinista implementado por un programa de ordenador. Estos algoritmos deterministas no pueden generar números verdaderamente aleatorios (en el mejor de los casos, son predecibles y reproducibles, en el peor, tienen malas características estadísticas). Por ello, los generadores de software son generalmente denominados generadores seudo-aleatorios o casi-aleatorios.
Fuentes físicas
Un segundo sistema para generar números aleatorios es utilizar fenómenos físicos que se sitúan entre los generadores de software y los generadores cuánticos basados en hardware. Por ejemplo, el sistema operativo Linux dispone de generadores de números aleatorios que utilizan como fuente la entropía generada por el comportamiento del teclado, el ratón, los interruptores y el disco duro. La función CryptGenRandom de Microsoft® (parte del Microsoft CryptoAPI) es similar al utilizar, por ejemplo, entradas de datos basadas en tiempo del ratón o el teclado, que son añadidas a datos fuente almacenados y varios datos del sistema y del usuario.
Aunque estas actividades físicas puedan parecer aleatorias, su aleatoriedad no puede ser probada y tienen el riesgo de generar una entropía pobre (o inexistente) si la actividad física que se utiliza como muestra es poco activa o repetitiva. Existen diversas vulnerabilidades de seguridad potenciales si se usa este tipo de actividades físicas. Por ejemplo, en aplicaciones de red como los navegadores, el tráfico de la aplicación entre un cliente y un servidor publica la ubicación y la secuencia de los eventos de ratón del cliente. De manera parecida, puede que los usuarios habiliten opciones "snap-to" que centran el puntero del ratón en el punto medio del botón que se debe pulsar, por lo que convierten en predecibles las ubicaciones en las que se pulsa. Como resultado, en este tipo de entornos la entropía basada en los movimientos del ratón podría ser bastante inferior a la prevista por un diseñador de RNG.
Mecánica cuántica
El único generador verdaderamente aleatorio es un mecanismo que detecta el comportamiento cuántico a nivel sub-atómico. El motivo es que la aleatoriedad es inherente al comportamiento de las partículas sub-atómicas. Un generador cuántico basado en hardware es posible, usando por ejemplo:
1) El intervalo entre la emisión de partículas en una descomposición radioactiva. Esta fuente sólo genera 30 bytes por segundo y requiere un voluminoso (¿y peligroso?) conjunto de hardware.
2) El ruido térmico a través de un diodo semiconductor o una resistencia.
Éste es el enfoque más habitualmente utilizado en hardware adicional de PC.
3) La carga acumulada por un condensador a lo largo de un periodo de tiempo concreto.
4) Las inestabilidades en la frecuencia de múltiples osciladores que funcionan por libre.
Este enfoque es la base del VIA PadLock RNG. Aunque se implementa de manera diferente al enfoque basado en resistencias, al final la fuente de aleatoriedad es la misma.
Estas fuentes han sido utilizadas en varios dispositivos externos de generación de números aleatorios que están comercialmente disponibles, ninguno de los cuales ha conseguido mucha visibilidad o uso. Dado que son dispositivos periféricos, como tarjetas PCI y dispositivos de puerto serial, estos generadores comerciales basados en hardware son caros y aparatosos.
VIA Padlock RNG: aleatoriedad cuántica integrada
Para dar respuesta a la necesidad de buenos números aleatorios en aplicaciones de seguridad, VIA presentó el núcleo de procesador Nehemiah en enero de 2003, que incluye el VIA Padlock RNG, para integrar un generador de números aleatorios de alto rendimiento y basado en hardware dentro del procesador. El VIA PadLock RNG utiliza ruido eléctrico aleatorio del chip del procesador para generar valores altamente aleatorios a velocidades extremadamente rápidas. Proporciona estos números directamente a las aplicaciones de seguridad mediante una única instrucción x86 que ha sido integrada con soporte multitarea.
Capaz de crear números aleatorios a tasas de entre 800K y 1600K bits por segundo, el VIA PadLock RNG da respuesta a las necesidades de las aplicaciones de seguridad, que requieren altas tasas de bits que incrementan algorítmicamente la calidad (aleatoriedad) de la entropía generada, por ejemplo al aplicar algoritmos de hashing en los resultados.
El VIA PadLock RNG utiliza un sistema de Generación Multi-byte Asíncrona en el que el hardware genera bits aleatorios a su propio ritmo. Éstos se acumulan en búfers de hardware sin afectar a la ejecución de los programas. Entonces, el software puede leer estos bits acumulados en cualquier momento. Este enfoque asíncrono permite que el hardware genere grandes cantidades de números aleatorios completamente solapados con la ejecución del programa. Es todo lo contrario de los buenos generadores de software, que pueden ser rápidos pero consumen un significativo número de ciclos de CPU y afectan negativamente el rendimiento general del sistema.
El VIA PadLock RNG ha superado completas pruebas realizadas por la firma líder de seguridad de datos Cryptography Research, Inc.; los resultados muestran un alto rendimiento, entropía de alta calidad y facilidad de uso. Consulte el informe completo de Cryptography Research "Evaluación del Generador de Números Aleatorios VIA C3," con fecha de 27 de febrero de 2003.
Siglas de Estándar de Encriptación Avanzada, AES es una técnica de encriptación de datos altamente avanzada desarrollado por los criptógrafos belgas Joan Daemen y Vincent Rijmen. Después de un riguroso proceso de evaluación a lo largo de varios años, en 2001 el Gobierno de Estados Unidos eligió AES como el nuevo estándar gubernamental (FIPS-197), para reemplazar el antiguo estándar DES. AES ofrece una seguridad mucho mayor, mediante tamaños de clave mucho más largos y un algoritmo mejorado de encriptación.
AES encripta y desencripta bloques de datos de 128 bits con 3 tamaños de clave estándar:
1) Claves de 128 bits de largo, que corresponden a aproximadamente 3,4 x 1038 claves.
2) Claves de 192 bits de largo, que corresponden a aproximadamente 6,2 x 1057 claves.
3) Claves de 256 bits de largo, que corresponden a aproximadamente 1,1 x 1077 claves.
En comparación, DES tiene aproximadamente 7,2 x 1016 claves. Para hacerse una idea, si asumimos que un súper-ordenador podría romper el código DES en un segundo, el mismo súper-ordenador tardaría 149 mil miles de millones de años en descodificar una clave AES de 128 bits de largo.
La encriptación AES es también particularmente adecuada para dispositivos electrónicos como PCs, teléfonos IP y móviles, PDAs, firewalls, y estándares inalámbricos como el estándar de alta velocidad 802.11g.
El Motor Criptográfico Avanzado VIA PadLock (ACE)
Los procesadores de VIA que incorporan núcleos desde C5P Nehemiah en adelante integran un potente Motor Criptográfico Avanzado capaz de encriptar o desencriptar datos a una tasa sostenida de 12,8 gigabits por segundo (Gb/s). Para una sola encriptación o desencriptación, la tasa efectiva puede ser incluso más rápida, hasta 21Gb/s. Es mucho más rápido que cualquier implementación AES comercial mediante hardware y varias veces más rápido que las implementaciones de software realizadas con los procesadores de alto rendimiento más recientes.
Al utilizar el VIA PadLock ACE basado en hardware, la encriptación puede realizarse en segundo plano sin prácticamente afectar a la ejecución de los programas. El resultado es una encriptación/desencriptación prácticamente transparente, ya que el VIA PadLock ACE reduce el número de ciclos de CPU requeridos para la encriptación, liberando más recursos del sistema para otras tareas como entretenimiento digital.
En cambio, la encriptación basada en software sin el VIA PadLock ACE utiliza un montón de ciclos de la CPU, lo que a menudo provoca que se pierdan frames durante la reproducción de vídeo y un descenso notable en el rendimiento general del sistema.
El VIA PadLock ACE soporta de forma directa los tres tamaños de clave AES (128 bits, 196 bits, y 256 bits) en hardware, y con el mismo rendimiento. Además, mientras una aplicación utiliza el VIA PadLock ACE, otras pueden usarlo de forma simultánea sin necesidad de gestión de tareas adicional por parte de la aplicación o del sistema operativo. Aunque la implementación del VIA PadLock ACE contiene estados x86 adicionales, las tareas que lo utilizan no necesitan salvar y restaurar estos estados, el hardware gestiona los estados adicionales de manera transparente.
La tabla que se muestra a continuación indica cómo el VIA PadLock ACE proporciona encriptación/desencriptación a velocidades superiores a un procesador Intel® Pentium® 4 de alta velocidad, con aproximadamente la mitad de uso de la CPU.
Comparativa de rendimiento de encriptación con el VIA PadLock ACE
Algoritmos RSA y Multiplicador Montgomery VIA Padlock
Los procesadores de VIA que incorporan el núcleo ‘Esther' incluyen un potente Multiplicador Montgomery, que soporta tamaños de clave de hasta 32K de longitud, que se utilizan para acelerar el rendimiento computacional en la criptografía de claves públicas, como los algoritmos RSA.
Utilizados por el Gobierno de Estados Unidos, los algoritmos RSA son un mecanismo de encriptación basado en el método de encriptación asimétrico, o de generación de claves públicas. La encriptación de claves públicas permite la transmisión de información segura a través de medios no seguros.
La encriptación mediante este sistema requiere que tanto el emisor como el receptor dispongan de dos claves: una clave publica y una privada. Iniciar la comunicación segura mediante un sistema RSA requiere que el emisor pregunte la clave pública del receptor. Lo puede hacer mediante una petición directa al receptor o consultando una base de datos central de claves. Utilizando la clave pública del receptor, el emisor encripta la información que va a enviar a través del medio no seguro.
Cuando el receptor recibe el comunicado, usa su clave pública para desencriptar la información protegida.
Al enviar información de vuelta al emisor original, el receptor utiliza la clave pública del emisor para encriptar la respuesta.
Este proceso de clave privada proporciona una comunicación punto a punto extremadamente segura a través de medios no seguros.
El Multiplicador Montgomery de VIA PadLock acelera este proceso, a la vez que reduce significativamente la carga del procesador durante la creación de la clave y la encriptación de los datos, al eliminar la necesidad de que el procesador realice las divisiones de grandes números requeridas para llevar a cabo este tipo de encriptación.
Los algoritmos Secure Hash son un tipo de encriptación asimétrica que también está incluido en los procesadores de VIA basados en el núcleo ‘Esther'.
Al implementar las variantes SHA-1 y SHA-256 de hash seguro, el motor VIA Padlock SHA puede ofrecer encriptación de datos en tiempo real a picos de 5 gigabits por segundo.
Este algoritmo también está avalado y es utilizado en todos los niveles por el Gobierno de Estados Unidos y funciona comprimiendo los datos requeridos y encriptándolos dentro de resúmenes del mensaje. Cada resumen del mensaje se crea de manera que la información que contiene sea computacionalmente imposible de leer por parte de un agente externo.
Tabla: un ejemplo de resúmenes de mensajes producidos por SHA-1:
Cadena original
Resumen hash SHA-1
Hello World
z7R8yBtZz0+eqead7UEYzPvVFjw=
VB
L1SHP0uzGbMUpT4z0zlAdEzfPE=
Vb
e0cnhoZRmuoC/Ed51RrW71x1CDw=
Vb
e3Pa1F6tMmhPGUfGg1nrfdV31+1=
VB
gzt6my3YlrzJiTiucvqBTgM6LtM=
Al estudiar los contenidos de cada resumen de hash seguro SHA-1, se hace inmediatamente evidente que cualquier cambio en un simple carácter de la misma palabra produce un mensaje encriptado completamente diferente.
De hecho, alterar un solo bit dentro de un mensaje produce un resumen de hash seguro totalmente diferente. Esto permite una fácil detección de los mensajes manipulados, dado que el mensaje no puede ser desencriptado, alterado ni que sea levemente y vuelto a encriptar sin que se produzca un resumen del mensaje totalmente diferente. Por este motivo la mayoría de los gobiernos y organizaciones del mundo utiliza ahora implementaciones del algoritmo de hash seguro.
SHA-256 es una versión más segura de SHA-1, ya que utiliza un algoritmo hash de 256 bits (SHA-1 usa un algoritmo de 160 bits) y actualmente se considera completamente inviolable.
A pesar de esta ventaja, los algoritmos de hash seguro SHA-1 y SHA-256 tienen un inconveniente: todos requieren un enorme consumo de ciclos de procesador para la computación de los resúmenes, especialmente cuando se requiere un alto flujo de salida de datos.
Sin embargo, VIA ha resuelto este problema al integrar el cálculo de algoritmos de hash seguro SHA-1 y SHA-256 directamente dentro del procesador.
Al incorporar hash seguro en el Motor de Seguridad VIA PadLock, VIA ha derivado definitivamente el proceso computacional de calcular números a gran escala del procesador principal al motor PadLock.
De esta forma, un desarrollador puede incluir encriptación mediante hash seguro en tiempo real en sus aplicaciones, sin preocuparse de que el proceso afecte de manera significativa a las otras aplicaciones y procesos que se ejecutan al mismo tiempo.
Los maliciosos ataques de desbordamiento de búfer y los gusanos suponen una amenaza notable para la informática comercial y personal.
Estos gusanos funcionan provocando un desbordamiento del búfer para dañar el sistema en el que se ejecutan o propagarse a sí mismos a través de las redes.
NX Execute Protection es un mecanismo basado en hardware que previene la proliferación de estos gusanos y de algunos tipos de virus.
El VIA Padlock NX incorporado a los procesadores VIA C7 y C7-M implementa NX Execute Protection, que determina qué áreas de la memoria pueden ejecutar código y cuáles no.
Cuando un gusano intenta "desbordar" el búfer o insertar código ejecutable en el búfer, el Motor de Seguridad VIA PadLock, junto a Microsoft® Windows® XP Service Pack 2 (y algunas distribuciones de Linux ) evita este acceso. De esta forma, el motor VIA Padlock detiene la proliferación de gusanos y evita el daño local que provocan al ejecutarse.
VIA Padlock NX Execute Protection funciona de forma conjunta con:
Microsoft® Server 2003 con Service Pack 1
Microsoft® Windows® XP con Service Pack 2
SUSE Linux 9.2
Red Hat Enterprise Linux 3 Update 3
VIA PadLock: seguridad integrada en el procesador
El diagrama del más reciente procesador VIA C7 que figura a continuación muestra cómo el Motor de Seguridad VIA PadLock está integrado en el hardware. El moderado espacio real que ocupa el procesador demuestra la eficiencia que tiene el diseño para permitir niveles considerables de funcionalidades de seguridad de nivel mundial en una área relativamente pequeña.