jueves, 1 de octubre de 2015

Fase 5 - Análisis comparativo e identificación del área de oportunidad

Para esta fase se pidió elaborar una tabla comparativa con el trabajo relacionada para encontrar áreas de oportunidad para mi investigación.

Trabajos relacionados:
  • A More Secure and Image Adaptable Steganography Method  [1]
  • Steganography Algorithm to Hide Secret Message inside an Image (Rosziati Ibrahim and Teoh Suk Kuan) [2]
  • A SECURE BLOCK PERMUTATION IMAGE STEGANOGRAPHY ALGORITHM (Hussein Al - Bahadili) [3]
  • SmartSteg: A New Android Based Steganography Application [4]



Avances de código
  • Implementación de pequeñas funciones que auxiliarán a mi algoritmo de permutación

martes, 15 de septiembre de 2015

Fase 4 - Búsqueda y clasificación de trabajos relacionados

Uno de los aspectos más importantes en la investigación científica es conocer el estado del arte, es decir, identificar el [Estado_Arte] conocimiento acumulado de un área de estudio específico.

En esta fase no se pretende hacer un análisis extenso del estado del arte, sino sólo identificar los artículos y libros científicos que podría utilizar para realizar citas en mi tesis, así como para identificar mejoras y áreas de oportunidad que podría aprovechar para este proyecto.

Con el fin de realizar esta actividad, decidí enfocar mis esfuerzos y dividir esta búsqueda en tres categorías.
  • Publicaciones que hablen del uso de esteganografía en teléfonos inteligentes. 
  • Publicaciones que hablen de técnicas de esteganografía. 
  • Aplicaciones en la Google Play que realicen algo parecido a lo que quiero realizar
A continuación describiré lo que he encontrado.

Publicaciones acerca del uso de esteganografía en teléfonos inteligentes

ECG Steganography for Protecting Patients Confidential Information (Varade Priti Arun, B. G. Gawalwad).
  • Este artículo del 2013 discute la posibilidad de utilizar smartphones para notificar a pacientes de alguna institución médica información que le concierne, o para utilizarlos como dispositivos de paso entre máquinas. 
  • Con el fin de evitar que la información sea leída por personas no autorizadas, se menciona a la esteganografía como posible solución para este problema.

A More Secure and Image Adaptable Steganography Method (Yogesh Kumar Sharma, Aakash Dhadhich)

  • Este artículo del 2014 propone un método de esteganografía combinando técnicas de criptografía y visión computacional.

SmartSteg: A New Android Based Steganography Application (D. Bucerzan, C. Ratiu, M.J. Manolescu)

  • Este artículo del 2013 discute acerca del creciente interés en la esteganografía en imágenes y de sus posibilidades en un telefóno inteligente. Los autores del artículo desarrollaron una aplicación (SmartSteg) que, de acuerdo al artículo, es rápido y seguro.
  • No encuentro la aplicación en la Google Play, pero creo que por su fecha de publicación puedo considerarlo como un referente de publicaciones científicas que discuten esteganografía en estos dispositivos, así como para justificar por qué muchos aplicaciones que existen en la Google Play no cumplen con algunos puntos de seguridad.

Android-Stego: A Novel Service Provider Imperceptible MMS Steganography Technique Robust to Message Loss (Avinash Srinivasan, Jie Wu, and Justin Shi)
  • Este artículo discute sobre la esteganografía, los dispositivos móviles y otros temas. Se propone un framework de esteganografía para dispositivos Android, así que encuentro importante tomar en cuenta las características que buscan en dicho framework. 
  • Este artículo fue publicado en agosto 2015.
Publicaciones acerca de técnicas de esteganografía

MP3 Steganography: Review (Mohammed Salem Atoum, Subariah Ibrahim, Ghazali Sulong and Ali M-Ahmad)

  • Este artículo discute acerca de realizar esteganografía en archivos de audio MP3. Dado que los archivos MP3 son archivos comprimidos con pérdidas, esta publicación es muy importante para mi aplicación, pues se tiene pensado utilizar este tipo archivo para ocultar información.
  • Fue publicado en 2012.
JPEG Steganography and Steganalysis – A Review (Siddhartha Banerjee, Bibek Ranjan Ghosh, Pratik Roy)

  • Este artículo discute acerca de esteganografía en imágenes JPEG. 
  • Lo elijo por qué al ser publicado en 2015 puede ayudarme a comprender mejor como realizar la estenografía en este tipo de imágenes.

Steganography in Modern Smartphones and Mitigation Techniques (Wojciech Mazurczyk and Luca Caviglione)

  • Este artículo, cuya copia en arXiv fue publicado en 2014, discute acerca de la esteganografía en dispositivos inteligentes.
  • Menciona los distintos medios en donde se puede realizar esteganografía (como audio, imágenes, vídeos, etcétera).
  • También menciona aplicaciones, clasificado según su objeto donde se realiza la esteganografía y su sistema operativo.
Aplicaciones parecidas

  • Steganography Master (Dino Trnka). Permite ocultar un mensaje de texto dentro de una imagen. Se puede proveer una contraseña.
  • Steganography (Jan Meznik). Permite ocultar un mensaje de texto o una imagen dentro de otra imagen, se puede proveer una contraseña (máximo 8 caracteres)
  • Mensajes Secretos CryptApp (FlyJam). Permite ocultar archivos dentro de imágenes, vídeos o canciones. Puede utilizar algoritmos de cifrado para encriptar la información, aunque sólo menciona AES. Guarda los archivos generados dentro de una carpeta en la tarjeta SD. Permite enviar los archivos generados a otros servicios o aplicaciones.
  • Steganography Application (Preethi Natarajan). Permite ocultar un mensaje dentro de una imagen. Permite seleccionar el nombre del archivo generado.
  • Steganography Image (tal.pro213). Permite ocultar un mensaje de texto dentro de una imagen. Utiliza el algoritmo 'Pixel value differencing' para realizar la esteganografía.


Avances de código

Se desarrolló un prototipo funcional en un dispositivo Android con la siguiente funcionalidad: búsqueda de imágenes (png y bmp únicamente), ocultar y recuperar un mensaje de texto de un archivo seleccionado.









Propuesta de mejoras
  • Preguntar al usuario si está seguro de querer ocultar el mensaje en el archivo seleccionado.
  • Aunado a lo anterior, explicar por qué se hace la pregunta. Proporcionar un tutorial o un faq (frequently ask questions) al usuario acerca de la aplicación y de los procesos que ocurre, omitiendo algunos detalles.
  • Utilizar un número mágico para identificar si un archivo fue modificado por la aplicación.
  • Proveer una forma de contraseña, que podría utilizarse para llevar a cabo auxiliar al algoritmo de esteganografía y/o para utilizarlo como llave para encriptar la información.
  • Implementar mejores algoritmos de esteganografía.
  • Investigar como controlar la modificación de archivos JPG para evitar que ocurra pérdidas por compresión.
  • (Por discutir con la profesora) Implementar un método de compresión antes de realizar cualquier proceso de esteganografía o criptografía.


Referencias
  • [Estado_Arte] Nancy Piedad Molina Montoya "¿Qué es el estado del arte?"

martes, 4 de agosto de 2015

Fase 3 - Identificación y estructuración de antecedentes

En esta fase se hace un listado de la terminología que es necesaria para entender mi investigación, además de que se hace un avance del escrito de cómo quedaría en la tesis.

Dispositivos móviles

Un dispositivo móvil es un dispositivo electrónico [ChallengeMobile] que posee una interfaz más pequeña comparada a la de otros dispositivos. Ejemplos de dispositivos móviles son la computadora de a mano (pie de nota PDA - asistente digital personal) y los teléfonos móvil. Conforme los teléfonos móviles evolucionaron [MobileEducation], estos dispositivos comenzaron a ser más amigables para el usuario y se volvieron más "inteligentes" por sus nuevas funcionalidades, con lo que se les adjudicó el nombre de "smartphones" (pie de nota?).

Existen muchas definiciones para los smartphone, pero por lo general se acepta [MobileEducation] que son teléfonos móviles que cumplen con sus funciones básicas y que además poseen características propias de una computadora de escritorio, como un sistema operativo y la posibilidad de agregarle nuevo software.

Android/iOS

¿?

Desarrollo de software

¿? Ciclo de software...

Desarrollo de software en dispositivos móviles

¿?

Teoría de la comunicación

Un mensaje puede ser [Shannon] una secuencia de letras, una función en el tiempo, etcétera. Para que algo sea considerado mensaje, éste debe tener un significado y ser relevante para alguien o algo. Los mensajes poseen un papel importante en la comunicación.

Un sistema de comunicación consta [Shannon] de cinco elementos:

  • Una fuente de información. Es quién produce el mensaje o secuencia de mensajes que serán comunicados a su destinatario. También se le conoce como emisor.
  • Un transmisor. Es un componente que transforma el mensaje en una señal que sea apropiada para el canal de comunicación utilizado.
  • Un canal de comunicación. Es el medio por donde se transmite la señaldel emisor al destinatario.
  • Un receptor. Es un componente que realiza la operación inversa del transmisor, es decir, reconstruye el mensaje original de la señal.
  • Un destinatario. Es la persona (o cosa) quién recibe el mensaje.
Archivos de computadora

¿? Bytes, bits, conjunto de instrucciones, archivos binarios, archivos de texto, archivos multimedia,

The Essentials of Computer Organization and Architecture (Linda Null) Página 284, 285

Imágenes digitales

¿? Resolución, formato, pixeles.


Seguridad informática

La seguridad informática, también conocida como seguridad digital, hace referencia [Secrets_Schneier] a toda una serie de elementos que permite lograr "seguridad" en sistemas digitales, de acuerdo a ciertos contextos.

Para Bruce Schneier, [Secrets_Schneier], la seguridad es una cadena que involucra muchos componentes, es decir, la seguridad no es un producto que se pueda ofrecer, sino un proceso que cambia con el paso de tiempo y que sólo se puede garantizar con un correcto diseño de toda infraestructura tecnológica y humana.

Seguridad por obscuridad

La idea de "seguridad por obscuridad" significa que [Obscurity] la seguridad de un sistema se respalda en la creencia de qué el atacante ignora las cualidades del sistema. Por ejemplo, una compañía puede ocultar que existe un servidor y que sólo es conocido por pocas personas. No obstante, este enfoque, al menos en el caso descrito, no es muy confiable, pues con distintas herramientas es posible descubrir este servidor, rompiendo cualquier seguridad que tuviera.

La seguridad por obscuridad es desconsejado por muchos académicos [Obscurity], en especial en el campo de la criptografía, no obstante, su concepto es importante en otros campos, como por ejemplo, en la esteganografía [Obscurity_Stegano].

Criptografía

(¿Es necesario hablar de criptografía? ¿Mejor un pie de nota?

Esteganografía

La esteganografía es un término que hace referencia a la actividad de ocultar mensajes secretos dentro de otros mensajes [AC_Schneier] , de tal manera que el primer mensaje sea oculto. Para lograr esto, el emisor manipula un mensaje inofensivo, ya sea creado por él o que ya existe, y lo manipula de tal manera que logra su objetivo de ocultar el mensaje deseado sin que el otro mensaje posea cambios notorios .

El uso de la esteganografía se remota a tiempos remotos [AC_Schneier], en la que algunas de las técnicas con la que se realizaba incluía el uso de tinta invisible o remarcar letras en un texto escrito.

Hoy en día, la esteganografía es más comúnmente asociada con gráficos por computadora [AC_Schneier], aunque también es posible utilizar cualquier tipo de archivo digital [MP3_Stegano_Review], como audio, video, etcétera.

Esteganografía en imágenes digitales

Hola

Anécdota de Los Simpson

¿Poner la anécdota antes de la definición? ¿En cursiva? ¿Tiene cabida en antecedentes o en otro lugar?

En una de las escenas del episodio "My mother the Carjacker" [?Simpson ]de la famosa serie Los Simpson [¿OtraReferencia?], Homero leía con cierto interés un artículo de comida, a lo que posteriormente descubre que la primera letra de las primeras líneas de dicho artículo formaba su nombre (en su idioma original) y que las consiguientes líneas formaban una sentencia específica, en específico una dirección de la ciudad de Springfield Confundido, Homero piensa que alguien trata de comunicarse con él y decide investigar el asunto.

A pesar de que el tema principal de este episodio de Los Simpson no se enfocaba en esta peculiar forma de comunicarse, que de hecho nuca lo llegan a describir, inadvertidamente hizo conocida al gran público una de las actividades más antiguas que se ha ligado a la historia de la humanidad: la esteganografía, el arte de ocultar mensajes.

Avance de código

Se ha trabajado con Kivy, probando algunas cosas básicas. He logrado configurar Kivy para trabajar desde Linux y Windows, para evitar tener que cambiar de sistema operativo muy frecuentemente. No obstante, para exportar esta aplicación a Android es necesario utilizar Linux.

Lo que desarrollé fue basado en una plantilla que se encuentra en la página de Kivy, probar como poner botones y guardar lo que escribe el usuario, mostrándolo en otro botón. También, gracias a esa plantilla, probé con utilizar el buscador de archivos que tiene Kivy y ya me es posible acceder tanto a la dirección como el contenido del archivo.

La próxima actualización buscaré exportar esto a Android y tener un prototipo de esteganografía básica.

El código de esta aplicación se encuentra en Github (archivo python, archivo kv)






Referencias

  • [AC_Schneier] Bruce Schneier, "Applied Cryptography"
  • [MP3_Stegano_Review] Mohammed Salem Atoum, et al., "MP3 Steganography: Review"
  • [Psycho_Schneier] Bruce Schneier, "The Psychology of Security"
  • [Obscurity] Jay Beale, "Security Through Obscurity" Ain't What They Think It Is"
  • [Obscurity_Stegano] Jayaram P, et. al."Information hiding using audio steganography - a survey"
  • [Secrets_Schneier] Bruce Schneier, "Secrets and Lies: Digital Security in a Networked World" (https://books.google.com.mx/books?id=z_7CAjmql6kC&source=gbs_navlinks_s)
  • [ChallengeMobile] Mark Dunlop, Stephen Brewster, "The Challenge of Mobile Devices for Human Computer Interaction"
    [MobileEducation] Yu Fuxin, "MOBILE/SMART PHONE USE IN HIGHER EDUCATION "
  • [Shannon] C. E. Shannon, "A Mathematical Theory of Communication"

lunes, 20 de julio de 2015

Fase 2 - Hipótesis y objetivos

Aunque la idea de crear una aplicación móvil para guardar información importante fue proporcionada por la doctora Elisa, estas últimas semanas me han pasado varias cosas relacionadas a este problema, además de que he pensado mucho en ciertas cuestiones en trono al problema.

Algo que debo tener bastante claro es que las aplicaciones deben ser sencillas de utilizar, y me parece que cuando se decide utilizar una aplicación móvil se busca que sea muy fácil de usar y que haga su trabajo de manera eficiente. Por tanto, mi aplicación móvil debe ser fácil de usar e intuitivo.

Luego, se me ocurrió que debería ser buena idea simplificar la aplicación móvil en ciertas situaciones, pues creo que para un usuario de un dispositivo móvil no le interesa si una aplicación realice esteganografía o no, sino que sepa que puede ocultar información en archivos multimedia que siempre lleva en su dispositivo.

Por eso, creo que me parece importante definir qué puede ser información pero desde el punto de vista de un usuario, y se me ocurre dos definiciones:

  • Una secuencia de caracteres y/o números que representan algo importante para el usuario
  • Un archivo informático
La segunda definición es más acorde a lo que yo pensaba acerca de información, pues al final de cuentas es lo más típico con lo que se trabaja la esteganografía. No obstante, un usuario quizás no quiera guardar una clave en un archivo de texto, Luego, suponiendo que dicho archivo fue creado en una computadora, entonces el archivo debería ser pasado a la memoria del dispositivo móvil.

Sinceramente, ni yo mismo quisiera tener una aplicación como esa, pues, ¿por qué el usuario debería preocuparse de toda  esa problemática  para ocultar algo como una clave bancaria, de 16 dígitos?

Entonces, aunque tengo mucho interés en explorar los límites que puede suponer hacer esteganografía en un dispositivo móvil, creo que es mucho más importante investigar los intereses del usuario y conocer si está dispuesto a confiar en una aplicación móvil, con ciertas cualidades tanto técnicas como "de respuesta" (no se me ocurre otra palabra por el momento) a ocultar información privada en un archivo.

Creo que con todo lo que llegué a pensar, puedo formular la hipótesis para mi tesis:
Dado que los usuarios de un dispositivo móvil buscan comodidad y eficiencia cuando utilizan una aplicación, si por alguna razón tienen dificultades para recordar algunas cosas como contraseñas, cuentas bancarias, etcétera, aceptarán a utilizar una aplicación móvil que permita ocultar dicha información en un archivo de su mismo dispositivo siempre y cuando se garantice la completa seguridad en que no existirá forma alguna de que se pueda recuperar dicha información, con la excepción de que el mismo usuario reconozca el archivo utilizado y que él mismo proporcione dicho archivo a la aplicación.
El objetivo general de esta tesis es desarrollar la aplicación móvil que permita realizar esteganografía para ocultar secuencias relativamente pequeñas en archivos multimedia y que sea fácil de utilizar.

Los objetivos específicos de la tesis son:
  • Proporcionar una interfaz intuitiva para introducir la información a ocultar. Lo más lógico es hacerlo desde el teclado cada vez que se elija el archivo donde se ocultará la información.
  • Proporcionar una interfaz para mostrar la información recuperada. Creo que, dado a que lo que se oculta son secuencias cortas, no es mala idea que se muestre en pantalla dicha secuencia pero por sólo algunos segundos.
  • Realizar una correcta y eficiente implementación de esteganografía de imágenes (alta prioridad en el desarrollo) y audio (baja prioridad en el desarrollo).
  • Realizar experimentos analíticos con la implementación de esteganografía en diferentes plataformas.

lunes, 22 de junio de 2015

Fase 1 - Planteamiento del tema

Introducción

Dada mi situación como estudiante de licenciatura en su último año de estudios, me encuentro con la encrucijada sobre cómo es qué debo abordar mi último semestre de clases, en la cuál el estudiante debe elegir uno o varios módulos [1] para acreditar este último semestre.

Tomando en cuenta mis intereses personales y mis expectativas académicas, decidí elegir el módulo de "estancia de investigación semestral", que consiste en realizar un proyecto de investigación científico y realizar el reporte de dicho proyecto, como por ejemplo, en una tesis.

El trabajo de investigación será supervisado por la doctora Elisa Schaeffer.

Tema de tesis

Decidí escoger como tema de tesis la esteganografía, que es un tema relacionado a la seguridad informática y que, a pesar de es relativamente desconocido, me ha llamado muchísimo la atención desde que me enteré de este tema.

La esteganografía es [2] el arte de ocultar mensajes ocultos sin qué se sepa la existencia de dicho mensaje. Es decir, su propósito es que se pueda ocultar mensajes en un medio (por ejemplo, archivos digitales) y qué dicho medio no sufra suficientes cambios como para qué pueda ser detectado por un  humano.

Evidentemente, la tesis es el principal entregable de este proyecto, no obstante, para su desarrollo también será necesario contar con (al menos) una aplicación que permita realizar estenografía.

La doctora Elisa sugirió una aplicación en un dispositivo móvil, lo cual encuentro muy conveniente porque la estenografía es un proceso que puede tener mayor reconocimiento si se realiza en un medio popular y de uso inmediato, y no como una aplicación de escritorio.

No obstante, dada las cualidades que requiere la estenografía, creo que será conveniente escribir una aplicación en algún lenguaje de alto nivel para utilizarlo como "juguete de pruebas", pues la estenografía cambia mucho de acuerdo al tipo de medio utilizado  y también de su formato, lo que implica investigar sobre estos formatos y experimentar con ellos.

Por ejemplo, si comparamos archivos de audio [3], un archivo de audio en formato MP3 es muy distinto a un archivo WAV, pues el primero es comprimido, mientras que el segundo no, así que es más "fácil" acceder a los datos de audio en un archivo WAV dada esta cualidad

Aun así, como se planea realizar una aplicación móvil, esta aplicación deberá tener soporte para los tipos de archivo más populares que utiliza un usuario típico, lo cual dada a mi experiencia son archivos de audio MP3 y archivos de imágenes JPEG y PNG.

No es una prioridad tener en cuenta más tipos de archivo , pero si el tiempo lo permite se podría agregar más archivos.

Trabajo a realizar

En resumen, los principales entregables de este proyecto son:
  • Una aplicación móvil (Android) que realice esteganografía, es decir, que pueda ocultar y recuperar mensajes.
  • Escribir una tesis con los resultados de este proyecto
Ya que la esteganografía es una actividad que consume recursos computacionales, como memoria o procesamiento, y dichos recursos influyen en su tiempo de ejecución [4], se planea escribir dos aplicaciones de escritorio para comparar su rendimiento con la aplicación móvil:
  • Una aplicación en Python.
  • Una aplicación en C++.
Dado a que C++ se ha vuelto muy parecido a Python (off-topic: da mucho que hablar sobre la influencia de C++ en Python... y cómo es qué Python ha influido en el C++ "moderno"), el desarrollo de ambas aplicaciones no debe ser un problema, en especial si se diseña correctamente el flujo del control de las funciones.

Personalmente, pronostico qué la aplicación en Python se escribirá más rápido y qué a partir de dicho código se implemente la aplicación en  C++.

Otras consideraciones

Por un momento había olvidado algo muy importante en la definición de una tesis: su título.

El título tentativo de la tesis es:

"Una aplicación móvil para resguardar información sensible"

Como requisitos para trabajar con la doctora Elisa, se pidió tener en cuenta tres aspectos:

  • Tener un blog donde se documente el desarrollo del proyecto. 
  • Tener un repositorio (como Github) para llevar un control de los avances del proyecto, ya sea código o de la tesis:
  • Tener una carpeta compartida en Dropbox para subir todo aquello que pueda ser relevante para la tesis. Se hace especial énfasis en subir a esta carpeta los artículos o páginas web (convertidas en PDF) qué se piensa tomar como referencias para la tesis.

Referencias

[1]  "Libre Elección". Retrieved June 19, 2015, from http://www.fime.uanl.mx/libre_eleccion.html

[2] S.S. Dyvya, M. Ram Mohan Reddy (2012), "Hiding text in audio using multiple lsb steganography and provide security using cryptography"

[3] "Audio file format", Retrieved June 22, 2015 from https://en.wikipedia.org/wiki/Audio_file_format

[4] "El arte de la esteganografía".  Retrieved June 22, 2015 from http://kevinmichellegonzalez.blogspot.mx/2014/11/el-arte-de-la-esteganografia.html

[5] "C++ Has Become More Pythonic". Retrieved June 22, 2015 from http://preshing.com/20141202/cpp-has-become-more-pythonic/

jueves, 13 de noviembre de 2014

El arte de la esteganografía

Muchos autores han definido a la esteganografía como el arte de ocultar información [1], con el cual se tiene como propósito intercambiar información por un medio sin que se revele la existencia de dicha información. Es diferente de la criptografía, ya que en dicha área lo que se busca es hacer ilegible un mensaje, aunque no le es posible ocultar información.

La esteganografía moderna se inspira en archivos binarios [2], cada archivo de una computadora es una secuencia de bytes que a su vez es una secuencia de bits. Pero antes de empezar a hablar de la esteganografía, me gustaría explicar que són los bytes y los bits.