Вы находитесь на странице: 1из 6

Implementación de SSH sobre un Sistema Auto-Reconfigurable

Implementación de SSH sobre un Sistema Auto-Reconfigurable

Iván González, Francisco J. Gómez-Arribas y Sergio López-Buedo


Escuela Politécnica Superior
Universidad Autónoma de Madrid
28049 Madrid
{Ivan.Gonzalez, Francisco.Gomez, Sergio.Lopez-Buedo}@uam.es

Resumen. El rendimiento de las aplicaciones de parámetros empleados en el transcurso de la


seguridad puede ser mejorado acelerando los comunicación (como la clave de cifrado) es
algoritmos de cifrado en hardware. En este también importante.
trabajo, se muestra una implementación de la Los protocolos de seguridad actuales separan
aplicación Secure Shell (SSH) sobre un sistema la elección del algoritmo de cifrado del diseño del
embebido auto-reconfigurable basado en un protocolo, por lo que los modernos sistemas de
dispositivo Xilinx Spartan-3, el procesador cifrado deben ser capaces de soportar varios
MicroBlaze y el sistema operativo uCLinux. La algoritmos. Por ejemplo, IPSec (el estándar de
reconfiguración parcial en tiempo de ejecución se seguridad en Internet) permite emplear diferentes
emplea para cambiar el coprocesador de cifrado algoritmos de cifrado. Los dispositivos CSoC
utilizado durante el intercambio de datos. El (Configurable System-on-a-Chip) son candidatos
rendimiento de SSH se ha mejorado, y comparado adecuados para la implementación de sistemas de
con otras implementaciones que no emplean cifrado [2], porque combinan la velocidad del
reconfiguración, se obtiene una interesante hardware con la flexibilidad del software
reducción de área. ejecutado en procesadores de propósito general.
Además, proveen mejor seguridad que las
soluciones software. Por otro lado, la
1. Introducción reconfiguración parcial puede ser muy útil para
estas aplicaciones. Por ejemplo, si un sistema
La aceleración hardware de aplicaciones software tiene que soportar varios estándares de cifrado, y
es una metodología comúnmente empleada en se emplea reconfiguración parcial en tiempo de
computación de alto rendimiento, y permite que el ejecución, solo el coprocesador para el algoritmo
rendimiento del sistema pueda ser mejorado seleccionado tendría que ser cargado en la FPGA.
considerablemente. La implementación de esta Posteriormente, si ya no es necesario, podría ser
aceleración en hardware reconfigurable permite eliminado del dispositivo y dejar espacio para el
mejorar la flexibilidad del sistema: del mismo siguiente algoritmo.
modo que un procesador puede cambiar entre En este trabajo se evalúan las posibilidades de
diferentes tareas, varios bitstream pueden ser los CSoCs para mejorar las aplicaciones de
cargados en la FPGA. Además, desde la llegada seguridad. El protocolo SSH se ha empleado
de la familia Virtex, todas las FPGAs de Xilinx como caso de estudio y ha sido acelerado
son parcialmente reconfigurables en tiempo de empleando coprocesadores de cifrado específicos:
ejecución, lo que permite que el sistema pueda posteriormente a la fase de negociación, el
adaptarse completa y rápidamente a las coprocesador seleccionado es cargado empleando
necesidades del usuario. reconfiguración. El uso de reconfiguración parcial
Los dispositivos FPGA se han usado permite que no sea necesario implementar todos
ampliamente para la aceleración de algoritmos de los algoritmos de cifrado en el dispositivo.
cifrado en diferentes aplicaciones de seguridad. Este paper se encuentra organizado de la
Sin embargo, los beneficios de emplear FPGAs no siguiente manera: la sección 2 describe los
están únicamente limitados a la mejora del conocimientos sobre criptografía necesarios para
rendimiento [1], ya que la posibilidad de cambiar entender este trabajo. La sección 3 presenta el
rápidamente los algoritmos de cifrado o los

FPGAs: Metodologías, herramientas y aplicaciones


Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura
ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 158
Implementación de SSH sobre un Sistema Auto-Reconfigurable

sistema MicroBlaze-uCLinux auto-reconfigurable. RSA, mientras que SSH2 lo ha cambiado por


La sección 4 discute la implementación de SSH y DSA. Estos cambios fueron realizados para
muestra los resultados obtenidos. Finalmente, las eliminar los problemas de patentes, IDEA y RSA,
conclusiones se muestran en la sección 5. e incrementar el nivel de seguridad en SSH2
empleando algoritmos más fuertes. Además, los
2. Secure Shell (SSH) algoritmos de hash MD5 y SHA se emplean para
asegurar la integridad de los datos, en vez del
SSH [3] permite conectarse a otras máquinas o tradicional CRC empleado por SSH1.
trasmitir ficheros de forma segura a través de
Internet u otros medios no seguros. Los 2.2. OpenSSH y OpenSSL
algoritmos de cifrado se emplean para autentificar
ambos lados de la conexión, cifrar todos los datos SSH1 está disponible de forma gratuita para los
y proteger la integridad de los mismos. usuarios a pesar de contener tecnologías
Existen actualmente dos protocolos SSH: patentadas. Con la llegada de SSH2, la licencia
SSH1 y SSH2. El protocolo SSH2 es una fue restringida y ya no se distribuye de forma
completa re-implementación del protocolo SSH1, gratuita. La comunidad open source no contenta
cifrando diferentes partes del paquete, empleando con este cambio de licencia, desarrolló su propia
diferentes algoritmos de intercambio de claves, alternativa, OpenSSH [6].
etc., de modo que es considerado más seguro, y OpenSSH es una versión gratuita del
evita algunas conocidas vulnerabilidades de las protocolo SSH que ofrece la misma funcionalidad
implementaciones de SSH1. que SSH2 pero sin restricciones derivadas de
El protocolo SSH se divide en tres partes patentes. OpenSSH versión 2 y superiores
principales: la negociación del algoritmo, la soportan los dos protocolos de SSH, lo que
autentificación y el cifrado de los datos. La permite a OpenSSH crear conexiones desde y
negociación del algoritmo es la responsable hacia clientes que soporten uno o ambos
principal de determinar los algoritmos de cifrado, protocolos.
los algoritmos de compresión y los métodos de OpenSSH hace uso de OpenSSL [7], que es
autentificación soportados y empleados entre el un conjunto de herramientas para implementar los
cliente y el servidor. La autentificación además, se protocolos de red Secure Sockets Layer (SSL
encuentra dividida en dos partes: el intercambio v2/v3), Transport Layer Security (TLS v1) [5] y
de claves y la autentificación del usuario. El otros estándares de criptografía requeridos por
propósito del intercambio de claves es doble. ambos.
Primero, permite la autentificación del servidor
por el cliente. Segundo, establece una clave 3. Sistema Auto-Reconfigurable basado
compartida que es empleada como clave de sesión en MicroBlaze
para el cifrado de todos los datos a transmitir entre
las dos máquinas, empleando algoritmos de clave MicroBlaze [8] es un procesador soft-core
simétrica. Además, se genera un hash para la especialmente desarrollado para los dispositivos
comprobación de la integridad de los datos. FPGA de Xilinx. Presenta un clásico diseño RISC
(32 GPRs, Harvard, arquitectura LOAD/STORE,
2.1. Métodos de cifrado en SSH etc) y opera a una velocidad moderada (~100
Dhrystone MIPS). Se trata de un core
SSH intenta proveer una fuerte seguridad, parametrizable: la unidad barrel shifter, la unidad
empleando métodos de criptografía, de forma de división y las caches de datos e instrucciones
transparente al usuario. son opcionales.
SSH1 ofrece cuatro algoritmos de cifrado [4,
5]: DES, 3DES, IDEA y Blowfish. SSH2 elimina
el soporte para DES (algoritmo roto) e IDEA
(problemas de patentes), y añade tres nuevos 3.1. Coprocesadores en MicroBlaze
algoritmos: AES (Rinjdael), Twofish y CAST.
SSH1 emplea el algoritmo de autentificación

FPGAs: Metodologías, herramientas y aplicaciones


Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura
ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 159
Implementación de SSH sobre un Sistema Auto-Reconfigurable

Existen dos alternativa para integrar cores IP a Xilinx. Como solución a este inconveniente, se ha
medida en un sistema MicroBlaze. El primero de desarrollado un script en Perl que trabaja sobre los
ellos es el On-Chip Peripheral Bus (OPB), que ficheros XDL de los diferentes módulos
forma parte del estándar de bus IBM Core implementados [12]. Finalmente, para disponer de
Connect. La otra posibilidad es el Fast Simplex un sistema auto-reconfigurable fue necesario
Link (FSL), usado para el envío y recepción de emplear un circuito externo, que conecta un GPIO
datos desde/hacia los registros a altas velocidades del procesador MicroBlaze al puerto de
[9]. configuración. Un diagrama simplificado de este
circuito se muestra en la figura 1.
3.2. Auto-Reconfiguración en Spartan-3
3.3. uCLinux en MicroBlaze
Tradicionalmente, las herramientas de diseño
automático carecen de soporte para uCLinux [13] es una adaptación de Linux para
reconfiguración en los flujos de diseño estándar. procesadores que carecen de unidad de manejo de
Sin embargo, Xilinx ofrece una alternativa para memoria (MMU - Memory Management Unit). La
soportar reconfiguración parcial: Modular Design principal implicación de la ausencia de MMU es
junto con el modo RECONFIG de la restricción que no existe protección de memoria (los procesos
AREA_GROUP [10]. Además, se dispone de un pueden escribir en cualquier posición de memoria)
componente llamado bus macro [10] para la y que no existe memoria virtual (swapping, etc).
interconexión entre los diferentes módulos del Sin embargo, para la mayoría de aplicaciones de
diseño. Desafortunadamente, este componente usuario la única limitación es que la llamada del
necesita de los buffers tri-estado, y no puede ser sistema fork() no se encuentra disponible, y es
empleado en diseños sobre Spartan-3. Sin necesario emplear vfork().
embargo, el concepto de bus macro puede ser Existen varias adaptaciones de uCLinux para
extendido a otros componentes de la FPGA, como procesadores sin MMU, incluidos los
se indica en [11], siendo posible desarrollar bus procesadores ColdFire, NEC v850, y el
macros usando LUTs [12]. procesador MicroBlaze empleado en este trabajo.
La versión actual se basa en el kernel de Linux
2.4.20, pero ya existen trabajos activos para
CE_B SELECTMAP SPARTAN-3 FPGA adaptar los kernels 2.5/2.6.
CONFIG. CLK
FLASH
DATA
GPIO
RECONFIG.
4. Implementación de SSH
COPROCESSOR
BUS MACROS

MODULO

MODULO La implementación open source de SSH


MICROBLAZE disponible en la distribución uCLinux, OpenSSH,
ha sido empleada como base para este trabajo.
Sobre ella, se han realizado modificaciones para
permitir que los diferentes algoritmos de cifrado
puedan hacer uso de los coprocesadores hardware
Figura 1. Plataforma auto-reconfigurable basada en a través de la interfaz FSL. Inicialmente, se han
Spartan-3
seleccionado dos algoritmos simétricos para ser
El sistema desarrollado incluye dos módulos ejecutados en hardware: el algoritmo por defecto
(figura 1): el primero está compuesto por AES128-CBC y el algoritmo alternativo 3DES-
MicroBlaze y sus periféricos, y se encuentra CBC. En cualquier caso, los mismos cambios se
localizado en la parte izquierda de la FPGA. El pueden realizar para el resto de los algoritmos,
segundo modulo es el coprocesador, colocado en incluidos los algoritmos de hash usados para la
la parte derecha del dispositivo. integridad de datos y los algoritmos asimétricos
Modular Design se ha empleado para todos para el intercambio de claves.
los pasos, pero la última fase, Final Assembly, no Para finalizar, una última modificación en
ha podido ser completada debido a diferentes OpenSSH permite a la aplicación reconfigurar la
problemas encontrados en las herramientas de

FPGAs: Metodologías, herramientas y aplicaciones


Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura
ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 160
Implementación de SSH sobre un Sistema Auto-Reconfigurable

FPGA con el coprocesador del algoritmo presentan 32 bits de ancho y una FIFO de 16
seleccionado durante la etapa de negociación. palabras.

4.1. Plataforma de referencia

El sistema MicroBlaze ha sido implementado


sobre la plataforma Spartan-3 Development Board
de Avnet. La única modificación realizada sobre
esta plataforma ha sido añadir la conexión externa
para auto-reconfiguración. El sistema MicroBlaze
incluye una caché de datos y otra de instrucciones
de 8 KB, un controlador SDRAM, una MAC
Ethernet, un timer, un controlador de
interrupciones, una UART como consola de E/S y
tres GPIOs: uno para el manejo de los leds y
switches disponibles en la placa, otro para la auto-
reconfiguración, y un tercero para resetear el
coprocesador. El último GPIO es necesario para
resetear la nueva lógica insertada, ya que la señal
global de set/reset (GSR) no puede ser empleada
porque se inicializaría el procesador MicroBlaze
que está ejecutando la aplicación. Esta señal se
activa cuando comienza el proceso de
reconfiguración, y se mantiene hasta que el
proceso termina, asegurando que la lógica se
inicia en un estado conocido.
El sistema final fue implementado en un
dispositivo XC3S2000FG676-4C operando a 65
MHz. La tabla 1 muestra los recursos lógicos
empleados por los diferentes diseños: el sistema Figura 2. Sistemas MicroBlaze con diferente
coprocesador.
MicroBlaze y los diferentes coprocesadores de
cifrado (figura 2). Los diferentes algoritmos implementados en
hardware usan la configuración bloque/clave
FPGA
LUTs
FF / 18x18
BRAM
definida por el estándar. En particular, AES fue
Slices Latches Mult implementado como AES128, emplea una clave
Sistema de 128 bits para el cifrado de un bloque de datos
4198 4809 3618 3 20
MicroBlaze de 128 bits, y 3DES cifra un bloque de 64 bits con
Coproc.
4326 4632 1802 0 0 una clave de 192 bits.
AES
Coproc.
5424 4493 5825 0 0 4.2. Librería OpenSSL en hardware
3DES

Tabla 1. Uso de recursos lógicos por los diferentes


Para adaptar OpenSSH para el uso de los
módulos.
coprocesadores de cifrado fue necesario modificar
Cada coprocesador ha sido implementado con la librería OpenSSL, de modo que las nuevas
la misma interfaz: un link FSL maestro para funciones de cifrado operasen sobre el hardware.
recibir las claves (SSH2 emplea diferentes claves Los cambios sobre la librería OpenSSL se
para cada operación), y dos pares de links FSL encuentran relacionados con las diferentes
maestro/esclavo para el envío y recepción de los implementaciones de los algoritmos, de modo que
datos. Para seleccionar el modo de operación los algoritmos AES y 3DES incluyen ahora
(cifrado o descifrado) se ha empleado el bit de funciones hardware para el cifrado, descifrado y
control del link FSL. Todos los links FSL manejo de las claves empleando la interfaz FSL.

FPGAs: Metodologías, herramientas y aplicaciones


Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura
ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 161
Implementación de SSH sobre un Sistema Auto-Reconfigurable

Este manejo ha sido añadido en las funciones MicroBlaze a una red LAN interna de 10 Mbps
adecuadas de la librería, reemplazando de forma con un número reducido de maquinas, incluido el
transparente al cifrado y descifrado software. servidor SSH, con el objetivo de minimizar el
impacto del tráfico en la red.
4.3. Reconfiguración en OpenSSH La tabla 2 muestra los resultados obtenidos
para las diferentes implementaciones de SSH (SW
Después de los cambios sobre las funciones de los y HW) y los algoritmos empleados. Estos
diferentes algoritmos, es necesario añadir las resultados prueban que el algoritmo AES es más
modificaciones que permitan la reconfiguración eficiente que el algoritmo 3DES cuando ambos se
del coprocesador en función del algoritmo ejecutan en software. En cambio, si se emplean
seleccionado. los coprocesadores hardware, se obtiene un
OpenSSH incluye una interfaz con la librería rendimiento similar para ambos algoritmos.
OpenSSL donde se inicializan los algoritmos Además, la mejora es dos veces superior en el
negociados previamente, y que serán empleados mejor de los casos (3DES). Sin embargo, el
durante la comunicación segura. Esta interfaz ha rendimiento obtenido en la transferencia de
sido modificada para realizar una llamada a la ficheros mediante SSH es peor que el protocolo de
función que realiza la reconfiguración parcial del transferencia de ficheros tradicional (FTP). Esto
coprocesador. En particular, esta función lee el se debe principalmente a la sobrecarga que supone
bitstream parcial del sistema de ficheros y lo envía el algoritmo de hash, en este caso el algoritmo
a través del GPIO conectado a la interfaz de MD5, que se ejecuta en software. Es importante
configuración. tener en cuenta que en este trabajo únicamente se
El código añadido chequea si el algoritmo han acelerado los algoritmos de cifrado, lo que
seleccionado se encuentra disponible como supone una pequeña parte de la complejidad del
coprocesador hardware, y posteriormente, protocolo SSH.
reconfigura la FPGA con el coprocesador
adecuado. Es importante comprobar que se Cripto. Fich. 1 Fich. 2 Fich. 3
Protocolo
emplea el mismo algoritmo para cifrado y Alg. 0,3 KB 2,4 KB 8,2 KB
descifrado, ya que SSH2 podría emplear un SSH AES 27,8 48,1 52,7
algoritmo diferente para cada operación. Software 3DES 16,7 26,6 30,3
SSH AES 33,2 60,4 66,4
4.4. Transferencia de ficheros Hardware 3DES 32,0 60,3 67,7
FTP None 877,3 696,1 683,2
Posteriormente a las modificaciones presentadas
con anterioridad, fue posible conectar con el Tabla 2. Velocidad de transferencia en Kbytes/seg.
servidor SSH e iniciar una sesión remota. Este
primer paso permite comprobar que la 4.5. Ventajas de la reconfiguración parcial en
funcionalidad de la aplicación no ha sido SSH
modificada tras los cambios.
Para evaluar la mejora debido al uso de La reconfiguración parcial de coprocesadores
coprocesadores hardware, se propone medir la hardware permite reducir el área necesaria, ya que
velocidad de transferencia al copiar un conjunto no es necesario disponer de todos los algoritmos
de ficheros a través de un canal seguro. La de cifrado, y contribuye con otras interesantes
aplicación scp (Secure Copy) se ha seleccionado ventajas [14] como el cambio en tiempo de
para este experimento. Secure Copy permite la ejecución del algoritmo, la posibilidad de
copia de ficheros entre sistemas mediante la actualizar el hardware y la capacidad de modificar
transferencia segura de los datos, usando el el algoritmo sin re-implementar el diseño.
protocolo SSH. Esta aplicación es adecuada para En nuestro sistema auto-reconfigurable, los
estos experimentos porque durante el proceso de diferentes bitstream parciales se encuentran
copia se muestra el tiempo empleado y el almacenados en un directorio de una
rendimiento final para cada fichero. El computadora, que los comporte a través del
experimento se llevó a cabo conectando el sistema protocolo de red NFS. El sistema MicroBlaze

FPGAs: Metodologías, herramientas y aplicaciones


Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura
ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 162
Implementación de SSH sobre un Sistema Auto-Reconfigurable

monta ese directorio como parte de su sistema de Architectures”, Proc. IEEE Symposium on
ficheros, y obtiene los diferentes coprocesadores FCCM, April 2000, pp. 132-141.
de él, usando una idea similar a [13]. Si se [2] Ray C.C. Cheung, Wayne Luk and Peter
desarrolla una nueva versión de los Y.K. Cheung, “Reconfigurable Elliptic Curve
coprocesadores, el sistema puede hacer uso de Cryptosystems on a Chip”, Proc. of
ellos sin necesidad de parar la ejecución, ya que el DATE’05, 2005, pp. 24-29.
nuevo bitstream con las nuevas mejoras se [3] T. Ylonen, "SSH -- Secure Login
encuentra disponible de forma transparente. Connections over the Internet", Proc. 6th
USENIX Security Symposium, 1996, pp. 37-
5. Conclusiones y trabajo futuro 42.
[4] B. Schneier, Applied Cryptography, John
Las plataformas CSoC que incluyen procesadores Wiley & Sons, 1996, 2nd edition.
y lógica reconfigurable son buenas soluciones [5] William Stallings, Cryptography and
para acelerar la ejecución de aplicaciones, ya que Network Security: Principles and Practice,
permiten implementar las partes del código Prentice Hall, August 2002, 3rd edition.
críticas como coprocesadores específicos. Un [6] OpenSSH Project. Home page:
ejemplo de ello son las aplicaciones de http://www.openssh.com/
criptografía. Estas aplicaciones se benefician del [7] OpenSSL Project. Home page:
uso de aceleradores hardware, pero presentan un http://www.openssl.org/
serio problema cuando se emplean varios [8] Xilinx Inc., “MicroBlaze Processor
algoritmos: la cantidad de recursos lógicos Reference Guide”, 2004.
necesarios para disponer de todos los algoritmos. [9] Xilinx Inc., "Connecting Customized IP to
En este trabajo se muestra que la auto- the MicroBlaze Soft Processor Using the Fast
reconfiguración puede ser muy útil para cambiar Simplex Link (FSL)", Application Note 529,
el coprocesador que emplean las aplicaciones 2004.
reales de seguridad, como SSH. Mientras que la [10] Xilinx Inc., “Two Flows for Partial
aceleración hardware proporciona la mejora en el Reconfiguration: Module Based or
rendimiento, la capacidad de reconfiguración Difference Based”, Application Note 290,
permite un ahorro de área y la posibilidad de 2004.
actualización en tiempo de ejecución del [11] M. Dyer, C. Plessl, and M. Platzner,
coprocesador. Los resultados muestran que las "Partially Reconfigurable Cores for Xilinx
plataformas auto-reconfigurables son muy Virtex", LNCS 2438, pp. 292-301.
apropiadas para la implementación de las actuales [12] I. Gonzalez, E. Aguayo y S. Lopez-Buedo,
aplicaciones que emplean los modernos “Sistemas Embebidos Auto-Reconfigurables
protocolos de seguridad con selección dinámica sobre Spartan-3”, JCRA 2005, Granada,
de algoritmos. España, pp. 79-84.
Como trabajo futuro se continuará con la [13] J. A. Williams and N. W. Bergmann,
aceleración de todos los algoritmos que “Embedded Linux as a platform for
intervienen en el protocolo SSH. Esto supondrá dynamically self-reconfiguring systems-on-
disponer de más coprocesadores reconfigurables chip”, in Proc. ERSA’04, Las Vegas, Nevada,
para acelerar los algoritmos de integridad de datos 2004.
y los algoritmos de clave pública. El objetivo es [14] T. Wollinger, J. Guajardo and C. Paar:
obtener un rendimiento similar al protocolo FTP. “Security on FPGAs: state of the art
Finalmente, la reconfiguración parcial será llevada implementations and attacks”, ACM Trans.
a nivel de sistema operativo para dar soporte a Embedded Comput. Syst., 2004, 3, (3), pp.
múltiples tareas reconfigurables. 3045–3048.

Referencias

[1] A. Dandalis and V. K. Prassana, “An


adaptative Cryptographic Engine for IPSec

FPGAs: Metodologías, herramientas y aplicaciones


Editores: Juan A. Gómez Pulido, Juan M. Sánchez Pérez, Miguel A. Vega Rodríguez - Universidad de Extremadura
ISBN-10: 84-611-1314-4 ISBN-13: 978-84-611-1314-9 Pág. 163

Вам также может понравиться