A Generic Interface for Securing Data in USB Memories



A Generic Interface for Securing Data in USB Memories

Marco Antonio Soto Hernández
 

Texto completo de la Tesis     

 



Resumen

 

Los dispositivos de cómputo pórtatil se han incrementado mucho en cuanto a número y variedad desde hace algunos años. Estos dispositivos nos ofrecen una forma conveniente de realizar varias tareas incluso cuando el usuario va "sobre la marcha". Esta movilidad tambien ha generado un incremento las cuestiones referentes a la seguridad de datos. En esta tesis nos enfocamos en la seguridad de los dispositivos de memoria portátiles, los cuales son ubicuos. Debido a su pequeño tamaño y portabilidad, existe un alto riesgo de que se extravíen, lo que significa que los datos almacenados son comprometidos. Existen dispositivos de memoria con capacidades de cifrado, los cuales se encuentran disponibles en el mercado. En estos dispositivos, el cifrado se encuentra adentro del dispositivo, lo cual incrementa su costo. Aquí hemos planeado una solución por medio de un enfoque diferente: nosotros nos concentramos en el diseño de un dispositivo genérico, el cual pueda ser capaz de cifrar cualquier memoria USB. Nosotros hemos llamado a este dispositivo MiddleMan, además presentamos su completo diseño e implementación. MiddleMan actúa como una interface entre una memoria USB y una computadora huésped. Posee dos puertos externos; una computadora huésped y una memoria USB pueden ser conectados a cualquiera de estos dos puertos. Existe un algoritmo de cifrado implementado dentro de MiddleMan. Todas las transferencias en masa desde el huésped hasta la memoria son cifradas a travez de MiddleMan. Transferencias de la memoria al huésped son descifradas. Esto nos asegura que los datos almacenados en la memoria siempre permanezcan cifrados.Internamente, MiddleMan funciona como un dispositivo USB y también como un huésped. Ante el dispositivo de memoria, este se presenta como un host, mientras que para el huésped, se presenta como un dispositivo, esto logra comunicaciones transparentes para el usuario de la memoria USB. MiddleMan utiliza un esquema de cifrado ajustable como su algoritmo de cifrado y por lo tanto, garantiza una seguridad más fuerte que las soluciones comerciales. Este trabajo también incluye una implementación prototipo de MiddleMan. Como prueba de concepto, hemos implementado todas las funcionalidades de MiddleMan en una tarjeta FPGA Spartan 3E. Para propósitos de esta implementación, también requerimos de una mejora en el soporte USB de la Spartan 3E. Para esto diseñamos una extensión especial para dicha tarjeta y la llamamos S3USB. Esta extensión incrementa la funcionalidad de la tarjeta FPGA en varios aspectos y este diseño es de interés por si solo. Hemos probado el prototipo en varias plataformas de cómputo y encontramos que funciona satisfactoriamente. También hemos hecho algunas pruebas de rendimiento controladas y encontramos que es efficiente. El alentamiento que toma lugar dentro de MiddleMan, se encuentra dentro de los límites aceptables para un escenario de uso típico.

 

Abstract

Portable computing devices have increased a lot both in numbers and varieties in the past few years. These devices provides the convenience of performing several tasks even when the user in “on the go”. This mobility has also given rise to new issues in data security. In this thesis we focus on the security of portable memory devices, which are ubiquitous. Because of their small size and portability, there is a high risk of them getting lost, which means the stored data gets compromised. There are encryption enabled memory devices, which are already available in the market. In these devices, the encryption facility comes along with the specific memory, and thus, such memories are more expensive. Here we plan the solution through a different approach: we aim to design a generic device, which would be capable of enabling encryption in any USB memory device. This means, the encryption device can be attached to any ordinary USB memory. We call our device as the Middleman, and present its complete design and implementation. MiddleMan acts as an interface between a USB memory and a host computer. Externally, it has two USB ports; a host computer and an USB memory can be attached to any of these two ports. There is an encryption algorithm built in within MiddleMan. All bulk data transfers from the host to the memory gets encrypted when it goes through the MiddleMan. Transfers from the memory to the host gets decrypted. This ensures that the data stored in the memory is always encrypted. Internally, the MiddleMan has a functionality of both as an USB device and also as a host. To the memory device, it poses itself as a host, and in turn to the host, it poses like a device, this enables transparent communication to the user of the USB memory. MiddleMan uses a low cost tweakable enciphering scheme as the encryption algorithm, thus it guarantees stronger security than most commercially available encryption enabled USB memories. This work also includes a prototype implementation of the MiddleMan. As a proof of concept, we implement the full functionality of the MiddleMan in a Spartan 3E FPGA board. For the purpose of this implementation, we also required to enhance the USB support provided by the board. To do this we designed a special extension for the Spartan 3E board, which we call S3USB. This device extends the functionality of the bare board in several respects and can be of independent interest. We tested the prototype in various computing platforms and found it to work satisfactorily. We also did some controlled performance tests and found it to be efficient. The slowdown that take place in the MiddleMan is within acceptable limits in a typical usage scenario.