Técnicas de protección de software basadas en hardware
- Resumen
- Técnicas
de protección basadas en hardware - Principales
vulnerabilidades - Conclusiones
- Trabajo
futuro - Referencias
Resumen
En los últimos tiempos el auge que ha alcanzado
Internet ha
propiciado el aumento de las publicaciones y del intercambio de
información digital entre personas o
entidades. Evidentemente estos elementos constituyen ventajas
irrefutables, pero junto con toda esa información,
también existe información publicada que posibilita
a ciertas personas llevar a cabo acciones que
no son del todo bien vistas. Por ejemplo, en Internet, existen
los sitios dedicados a publicar la forma de explotar las
vulnerabilidades y fallas de las aplicaciones; así como
información acerca de cómo llevar a cabo procesos de
ingeniería inversa a componentes
ejecutables. A partir de toda esa información cualquier
persona con
malas intenciones puede llevar a cabo ataques con el fin de
violar la integridad de las aplicaciones y obtener
información sensible de las mismas.
El presente trabajo tiene
como intención dar a conocer algunos de los métodos y
soluciones
existentes para proteger las aflicciones contra este tipo de
personas y así evitar que sean conocidos elementos
confidenciales propios de la aplicación. Decir que las
soluciones vistas en el trabajo son
aquellas que utilizan algún tipo de dispositivo de
hardware externo
a la
computadora, con el propósito de elevar la seguridad de las
aplicaciones.
1
Introducción
El creciente auge que ha alcanzado Internet, junto con
el desarrollo de
múltiples herramientas
informáticas, ha posibilitado un aumento en el intercambio
digital de información entre las personas. Además
de la posibilidad de disponer de un gran cúmulo de
información de variados temas en cualquier momento. Lo
anteriormente expuesto indudablemente implica numerosas ventajas,
aunque desafortunadamente existe información que
posibilita a ciertas personas llevar a cabo acciones que no son
del todo bien vistas. Esto se ve favorecido por el hecho de que
en Internet es posible publicar información con relativa
facilidad y con controles de seguridad prácticamente
nulos; haciendo de Internet un lugar rico en información
poco confiable u ofensiva.
La idea anterior se fundamenta en el hecho de que, en
Internet cada vez son más los sitios, pertenecientes a
personas o grupo de
ellas, dedicados a publicar la forma de explotar las
vulnerabilidades y fallas de las aplicaciones [2, 3]. Por otra
parte, se publica también información de
cómo llevar a cabo procesos de ingeniería inversa a
componentes ejecutables; proceso este
que facilita la comprensión del funcionamiento de las
aplicaciones, permitiendo violar su integridad y obtener
información confidencial acerca de algoritmos
empleados. Toda esta cantidad de información es utilizada,
actualmente, por muchas personas para obtener beneficios propios
por procedimientos
ilícitos1.
Es válido decir que para tratar de contrarrestar
los efectos de estas violaciones, en los últimos tiempos
han aumentado las investigaciones y
desarrollos de métodos más sistemáticos,
relacionados con las protecciones basadas en software y
hardware.
Innumerables han sido las propuestas desarrolladas que
utilizan alguna técnica de software, con el objetivo de
hacer menos comprensible el código
de la aplicación o simplemente lograr que no sea visible
mediante un proceso de ingeniería inversa. Para esto
utilizan técnicas
de ofuscación de código, criptográficas,
marcas de
agua, entre
otras [4-9]. En teoría
estas técnicas parecen ser efectivas, pero cuando son
llevadas a la práctica chocan con que las computadoras
actuales no son lo suficientemente confiables como para almacenar
algún tipo de clave criptográfica, o ejecutar un
código sin que este sea observado por un atacante. Por lo
que, en la actualidad, existe una tendencia a utilizar un
hardware externo a la computadora y
así garantizar un medio no inseguro donde se puedan
proteger los secretos de la aplicación[10-14]. Esto no
quiere decir que las soluciones de software queden en el olvido,
simplemente estas comienzan a complementarse con las de
hardware.
Luego de haber enunciado las situaciones anteriores se
puede decir que el desarrollo seguro de
aplicaciones se enfrenta a los siguientes problemas:
1. Aumento de las herramientas capaces de violentar la
integridad de las aplicaciones y decodificar sus componentes de
seguridad.
2. Los métodos actuales de protección
basados en software no son lo suficientemente seguros como
para proteger totalmente una aplicación.
3. Las arquitecturas convencionales de hardware son
medios
inseguros para aplicaciones que requieran cierto grado de
confidencialidad.
El objetivo de este trabajo está orientado a dar
a conocer algunos de los métodos y soluciones existentes,
ya sean comerciales o en proceso de investigación, que utilizan algún
tipo de dispositivo de hardware para elevar su seguridad. En este
punto vale aclarar que no pretende decir que solución es
mejor o peor, sino identificar las características
más importantes de cada una de ellas, así como sus
principales deficiencias. De forma tal que los desarrolladores de
aplicaciones cuenten con una modesta aproximación de las
tendencias actuales en este tema.
1 Sin embargo muchas de estas acciones no están
debidamente tipificadas como delitos en los
códigos legales correspondientes.
2 De inglés
Advanced Encryption Standard (Estándar de Cifrado
Avanzado)
3 Del inglés Chip Operating System
(COS)
El resto del trabajo está estructurado de la
siguiente forma. En la siguiente sección se
describirán algunas de las técnicas que existen en
la actualidad y las soluciones basadas en ellas, destacando sus
principales fortalezas y debilidades; además de resaltar
los componentes de hardware utilizados. En la sección 3 se
exponen las principales vulnerabilidades a las que se enfrentan
estas soluciones. En la sección 4 se dan las conclusiones
del trabajo, para cerrar con la propuesta del trabajo
futuro.
Página siguiente |