Técnicas de protección de software basadas en hardware
Enviado por Belkis Grissel González Rodríguez
- 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 |