Documente Academic
Documente Profesional
Documente Cultură
TESINA
PRESENTA:
Ing. RUBEN JONATHAN GARCIA VARGAS
ii
iii
Resumen
En la actualidad las empresas e instituciones de gobierno usan los documentos digitales
diariamente confiando en que su informacin no ser modificada, sin embargo esto es un riesgo
ya que no se puede garantizar que alguien que tenga acceso a un documento digital no sea capaz
de modificarlo. En el presente trabajo se propone un mecanismo para insertar informacin de
manera oculta en un archivo PDF utilizando la estructura interna del mismo por medio de una
llave de insercin que se agrega a los diccionarios de los objetos PDF, y se presenta un mtodo de
codificacin de caracteres de texto en objetos PDF numricos con un lmite definido por el usuario
de hasta 8 caracteres por diccionario. As mismo se presenta el mtodo de verificacin y
decodificacin correspondiente tomando una llave para hacer la revisin de diccionarios y un
lmite para el proceso de decodificacin de nmeros decimales a caracteres de texto. Tambin se
presenta una implementacin del modelo de insercin propuesto por medio de un programa
hecho C# capaz de abrir un archivo PDF, calcular la capacidad e insercin, extraer una lista de
posibles objetos insertables, y realizar los procesos de insercin, codificacin, verificacin y
decodificacin usando las llaves y limites que indique el usuario. As mismo la aplicacin puede
introducir el texto de un archivo txt y recuperarlo posteriormente en otro. Por ltimo se presentan
las pruebas del sistema y las limitaciones que presenta.
iv
Agradecimientos
A mis padres que me apoyan y motivan a seguir adelante, mis amigos que incitan a buscar cosas
mejores, profesores que con su enseanza me han ayudaron a ser mejor persona y compaeros
de trabajo que me apoyaron en la realizacin de este proyecto y de todos los que me propongo en
la vida. A todos gracias.
Rubn J. Garca V.
ndice
1
Introduccin ................................................................................................................................ 1
1.1
1.2
Justificacin ......................................................................................................................... 1
1.3
Objetivo ............................................................................................................................... 2
1.4
Antecedentes ...................................................................................................................... 3
1.4.1
Contrasea .................................................................................................................. 3
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8
PDF .............................................................................................................................. 9
2.2
2.2.1
2.2.2
2.2.3
2.2.4
Firmas digitales.......................................................................................................... 16
2.2.5
Integridad .................................................................................................................. 16
2.2.6
Autenticidad .............................................................................................................. 17
2.2.7
No repudio................................................................................................................. 17
2.2.8
3.2
3.3
3.4
3.5
Caractersticas ................................................................................................................... 22
4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
4.2.7
Objetos Cadenas........................................................................................................ 27
4.2.8
4.2.9
4.3
4.3.1
Cabecera .................................................................................................................... 31
4.3.2
Cuerpo ....................................................................................................................... 31
4.3.3
4.3.4
Trailer ........................................................................................................................ 32
4.4
5
5.1.1
5.1.2
5.2
5.2.1
5.2.2
5.3
6
Estructura .......................................................................................................................... 31
Implementacin ................................................................................................................ 45
6.2
6.3
Bibliografa .......................................................................................................................................... a
Referencias .......................................................................................................................................... b
vii
B.
C.
viii
2011
1 Introduccin
1.1 Definicin del problema
Los archivos PDF son utilizados con frecuencia por las empresas y entidades de gobierno como una
forma cotidiana de enviarse informacin, confiando que estos documentos son seguros y difciles
de modificar; sin embargo, para aquellas personas que conocen la estructura interna de los
archivos PDF, es posible modificar la informacin contenida sin tener que crear un archivo
diferente; por lo que es necesario desarrollar un algoritmo y encontrar un parmetro para insertar
informacin oculta dentro la estructura de un archivo PDF de manera tal que no sea perceptible
para un atacante que intente modificar la informacin y al mismo tiempo no haya modificaciones
en el documento visibles para el ojo humano.
1.2 Justificacin
En la actualidad la informacin de las empresas se considera como el bien ms importante y
valioso que se pueda poseer. Esto provoca que garantizar que la informacin sea exacta, veraz,
proceda de quien se diga ser su autor y se mantenga su integridad son problemas muy
importantes para las empresas. La veracidad de la informacin contenida en un documento de
texto es de una importancia tal que puede hacer tomar las mejores o peores decisiones cuando la
informacin es incorrecta o a sido falsificada.
En la actualidad los documentos de texto son muy susceptibles a ser modificados por terceras
personas y esto puede provocar errores a las personas que reciben el documento modificado. Los
archivos PDF no son la excepcin ya que su seguridad se agrega directamente en la estructura de
documento y dependiendo de que se habr con la aplicacin que le d cumplimiento al esquema
de seguridad propuesto. Esto hace que si alguien modifica directamente la informacin de la
estructura del archivo se corra el riesgo de que la informacin se pierda, dae o se comprometa la
veracidad de la informacin.
Para evitar que sea fcil la modificacin de un archivo PDF se propone utilizar las caractersticas de
la estructura de un archivo PDF y se oculte informacin dentro de sus caractersticas que definen
contenido o apariencia. Un mtodo de este tipo podra ser utilizado para crear esquemas en los
que se pueda controlar quien tiene acceso al documento, mtodos de distribucin, control de
cambios e incluso validacin en contra de modificaciones.
2011
1.3 Objetivo
Disear e implementar un algoritmo para insertar informacin de manera oculta en un archivo
PDF tal que esta sea imperceptible al sistema visual humano utilizando las caractersticas de la
estructura del mismo archivo como portadora de la informacin.
Para esto se proponen los siguientes objetivos particulares:
2011
1.4 Antecedentes
La necesidad de autenticar y tener informacin de control dentro documentos digitales ha crecido
en diferentes formas en los ltimos aos. Algunos proveedores incluyen en sus aplicaciones
funciones de control de cambios, autenticacin, validacin y firmado de los documentos. Todas las
funciones que se agregan en las aplicaciones para controlar cambios o validaciones tratan de
garantizar la confidencialidad, autenticidad, la integridad, disponibilidad y el no repudio en los
documentos electrnicos y en las personas que los utilizan.
Los mtodos que se utilizan son muy variados y van desde un nivel bsico para 1 o dos usuarios
hasta amplias soluciones que involucran la participacin de varios dispositivos y personas para
llevar un control de los documentos digitales. A continuacin se mencionan y describen algunos de
los mtodos ms usados para proteger los documentos electrnicos.
1.4.1 Contrasea
Este es uno de los primeros mtodos que se utiliz para dar seguridad en los documentos
digitales, se basa en la idea que solo las personas que conocen la contrasea pueden abrir el
documento y hacer los cambios necesarios en l. Usualmente esta opcin incluye un mecanismo
de cifrado para evitar que se pueda abrir o modificar el documento con alguna otra herramienta
diferente a la que lo creo.
Esta opcin no fue suficiente ya que la seguridad del documento depende de que tan bien se
guarde la contrasea, adems esta opcin no incluye control de los cambios ni quien tiene acceso
a editar o ver el documento. Con este esquema no se corre el riesgo de que la informacin dentro
de un documento sea modificada y nadie lo note despus de que alguien consiga la contrasea.
2011
Esta opcin, como la anterior, tampoco permite tener un control de cambios en el documento ni
un registro de quien accede y que se hace con el documento. Tambin existe la posibilidad que un
usuario con permisos de administrador, ya sea del sistema operativo o de la aplicacin, cambie los
permisos sobre el documento o cambie al dueo del documento.
1.4.3 Insercin de informacin de control en el documento
En esta opcin las aplicaciones empezaron a introducir dentro de la estructura interna del
documento (separado de la parte visible y editable del documento) informacin de control de los
cambios realizados en documento. Los datos de control que se guardan corresponden a: La
posicin del cambio; el usuario que realizo el cambio; la hora del cambio; y el estado anterior.
2011
Junto con este esquema se introdujo la posibilidad de tener control sobre los usuarios que
acceden a un documento y se agreg la funcin de llevar registro por cuenta de usuario de la
aplicacin (rendicin de cuentas). Tambin es posible crear roles dentro de un grupo de usuarios
para controlar uno o ms archivos. Esto permite que algunos usuarios puedan ver el documento
bloqueando la edicin; que otros usuarios puedan editar ciertas partes del documento; y que
existan usuarios que validen y aprueben los cambios en los documentos. Incluso es posible llevar
este esquema a los usuarios de diferentes maquinas que tengan la misma aplicacin.
Aunque este esquema aumento las posibilidades de control y validacin de un documento solo es
posible utilizarlo cuando todas las partes que interactan con el documento lo hagan a travs de la
misma herramienta y que exista una configuracin comn cuando se utilizan diferentes equipos
para trabajar sobre los documentos. En la actualidad son pocos los proveedores que ofrecen en
sus aplicaciones un control como este en todas las partes de su sistema y no hay mucha
compatibilidad entre diferentes proveedores. Este sistema tiene la limitante que no controla la
distribucin del documento, ni el flujo en su desarrollo distribuido, es decir es posible que varias
personas estn trabajando el mismo archivo al mismo tiempo y cada uno tenga versiones
diferentes de l. Tambin se corre el riesgo de no saber quien posee la informacin de un
documento ya que se puede copiar el documento sin que la aplicacin sepa cuantas copias hay en
circulacin.
1.4.4 Control de Documentos Digitales por medio de servicios compartidos
Esta es la ltima opcin que se ofrece en el mercado y permite explotar todas las opciones
anteriores y pretende solucionar el problema de la distribucin y acceso a los documentos. El
sistema se basa en la idea de presentar los documentos como un recurso compartido para varios
usuarios dentro de un equipo servidor que se encarga de centralizar el almacenamiento, acceso y
distribucin del documento por medio de una o varias aplicaciones.
El sistema permite que los usuarios autorizados abran el documento en sus equipos, sin embargo
los cambios se guardan en el servidor y no en el equipo que lo edita para evitar que existan varias
versiones circulando de un solo documento. Adems el servidor lleva el control de quien puede
acceder al documento y el registro de quien y que hizo con el documento.
Este sistema tambin lleva un control de cambios y se pueden guardar las diferentes versiones que
se crean con los cambios para poder recuperar cualquier estado anterior del documento. Es
posible tener un control ms estricto sobre los usuarios, sus roles y archivos que pueden ver o
modificar.
Este tipo de sistemas empieza a tener auge ya que los servicios por internet lo estn ofreciendo
como parte de sus prestaciones permitiendo a los usuarios de sus productos compartir
documentos y controlar la edicin distribuida y versiones de un documento a travs de servicios
en internet.
2011
Estos son los sistemas ms robustos que existen para controlar el flujo de desarrollo de un
documento. Sin embargo estos sistemas tiene la limitante que solo funciona dentro del circulo de
usuarios y equipos que conforman el sistema. No permite tener control sobre personas que
adquieran el documento por fuera del sistema, ya sea en un correo electrnico, descarga o una
copia en caso de que alguien tuviera permisos de guardar una copia local. En un escenario real los
documentos finales se comparten con personas fuera del sistema de control de edicin, pueden
ser los jefes que reciben los resultados del documento o clientes que reciben el documento entre
varias posibilidades. Cuando el documento est terminado y es enviado a alguien fuera del
sistema, ya no es posible garantizar la integridad del documento ni verificar su autenticidad.
1.4.5 Resumen electrnico del Documento
Este es un esquema que es muy utilizado en la actualidad pero no es una parte integral en las
aplicaciones, fue diseado para la distribucin de los archivos electrnicos y es aplicable para los
documentos digitales tambin. Se basa en funciones que crean resmenes de los archivos a
manera de firma.
2011
La funcin de resumen est planeada para que siempre que se tenga una entrada especfica se
logre el mismo resultado, pero con el ms mnimo cambio en la entrada el resultado ser
totalmente diferente. Estos mtodos son ampliamente aceptados para verificar la autenticidad de
un archivo, sin embargo ya se ha demostrado que es posible generar el mismo resumen con
entradas diferentes (Colisin de la funcin) por lo que estos mtodos son susceptibles a ser
vulnerados.
1.4.6 Firma Digital
Es un esquema matemtico que sirve para demostrar la autenticidad de un mensaje digital o de un
documento electrnico. Consiste en un mtodo criptogrfico que asocia la identidad de una
persona o de un equipo informtico al mensaje o documento. La Firma Digital utiliza un algoritmo
de resumen electrnico y algoritmos de criptografa para cifrar el resultado del contenido de un
documento y garantizar la autenticidad de un documento.
El sistema de firma digital incluye el uso de certificados digitales, mtodos de renovacin de
certificados, servicios de estampado de tiempo, algoritmos de criptografa y funciones de
resumen.
2011
2011
1.4.8 PDF
Los Archivos PDF fueron creados por Adobe, utilizan un mtodo de descripcin de pginas
basado en PostScript y existe toda una solucin implementada a su alrededor utilizando la Suite de
Adobe para crear y controlar archivos PDF. Su finalidad es el poder intercambiar documentos sin
importar el entorno en el que hayan sido creados o en el que se visualicen manteniendo el mismo
aspecto bajo cualquier plataforma.
Adobe ofrece una solucin muy robusta que contempla y propone un proceso de siclo de vida en
la creacin y distribucin de un documento. Sin embargo en el da a da de las aplicaciones y de los
archivos PDF son pocas las empresas que utilizan la Suite de Acrobat para crear sus documentos
debido al amplio nmero de empresas y soluciones que ofrecen la conversin o creacin de estos
Archivos. Adems la seguridad y control que ofrece la suite de Acrobat estn limitados a los
usuarios que cuentan con el sistema en sus equipos. En la seccin Estado del arte de
Autenticacin y Derechos de Autor se describe con mayor detalle lo que se ofrece como sistema
de seguridad y control para estos documentos.
El formato de archivos PDF es usado cotidianamente por muchas aplicaciones ya que la estructura
es pblica y varios proveedores de aplicaciones de creacin de documentos digitales lo han
agregado a sus funciones. Por si sola la estructura de un archivo PDF no tiene control de cambios o
mtodos de validacin, en el presente trabajo se propone un mtodo para incluir informacin
oculta en la estructura de un documento PDF.
Los archivos PDF son ampliamente aceptados por entidades de gobierno y privadas como una
solucin estndar para la representacin de documentos digitales. Existen diferentes
recomendaciones para utilizarlo dependiendo del mbito en el que se utilice. En enero de 2008 el
comit tcnico de ISO aprob una versin final de la documentacin para PDF 1.7 como el
estndar ISO 32000-1[D][E][F][K]. En julio de 2008 puso el archivo a la venta en su pgina Web.
Hasta ahora se han revisado los diferentes mtodos que se han venido utilizando comercialmente
para controlar y autenticar documentos electrnicos. En el siguiente captulo se analizan las
diferentes investigaciones y propuestas que se han diseado para mantener la integridad,
autenticidad o autora de los documentos electrnicos.
2011
2011
El objetivo de las marcas de agua es introducir una seal en el material digital de tal forma que
esta seal sea un mtodo confiable para la proteccin del material digital contra su uso ilegal. Las
marcas de agua sirven para identificar al origen, destino o autenticidad de un material digital. Las
caractersticas de una marca de agua dependern de su aplicacin.
Es posible que para diferentes aplicaciones se tengan caractersticas completamente diferentes.
Las marcas de agua se clasifican por el dominio de insercin, el tipo de material digital a proteger,
la percepcin humana y a su aplicacin [G].
El dominio se refiere al lugar en donde se inserta la marca de agua. El dominio espacial se refiere
al espacio donde la seal digital existe, en una imagen es el nada de bits de brillo de cada punto,
en un video es parecido a la imagen ms la localizacin de la imagen en el tiempo. En un audio es
el valor del sonido que se reproduce. El dominio de una trasformacin es el convertir la seal
digital por medio de una funcin a otra seal con diferentes propiedades.
La percepcin de refiere a si la marca de agua es visible para el ojo humano o no. Cuando una
marca de agua es invisible tambin se suele subdividir a las marcas de agua en frgil, semi-frgil y
robusta dependiendo de su funcin.
Las marcas de agua que se aplican a los diferentes medios son diferentes entre s por lo que se
separan segn el medio. Las imgenes y los videos son muy parecidos, sin embargo los medios
digitales de audio y los de texto son diferentes. Tambin es posible agregar marcas de agua a otros
medios digitales pero su desarrollo no es muy grande.
Adems de esta clasificacin tambin se encuentran las clasificaciones por objetivo a proteger y
por medio de deteccin.
Para detectar una marca de agua se tienen dos formas principales las marcas de agua ciegas y las
no ciegas. Las ciegas son la que no necesitan de tener el medio digital original para corroborar si
existe una marca de agua. Las no ciegas son las que necesitan tener el medio digital original para
compararlo con el medio digital que contenga la marca de agua.
Las marcas de agua se utilizan para las siguientes funciones:
Proteccin de derechos de autor: se incluye en los medios digitales una marca de agua que
permita demostrar u obtener la informacin de la autora u origen de un material digital.
11
2011
12
2011
2011
Claves simtricas: la criptografa de llave simtrica utiliza la misma clave para cifrar y para
descifrar y es muy rpido y difcil de romper cuando se usan llaves grandes. Sin embargo, como
ambas partes tienen la misma llave para una comunicacin efectiva que se produzca, la
distribucin de llaves se convierte en un problema. Hoy en da los algoritmos simtricos comunes
son AES, DES, 3DES, y RC4.
Claves asimtricas: la criptografa de llave asimtrica, tambin llamada criptografa de llave
pblica, utiliza un par de llaves para el cifrado y descifrado. Por ejemplo, si la primera llave cifra el
contenido, entonces la segunda llave de la pareja descifra el contenido. Del mismo modo, si la
segunda llave se utiliza para cifrar la informacin, a continuacin, la primera llave se debe utilizar
para descifrar el contenido.
Normalmente, una de las claves del par se etiqueta como la llave pblica y la otra como la llave
privada. Un individuo mantiene en secreto la llave privada, mientras que la llave pblica se
distribuye gratuitamente a otros que deseen comunicarse con la persona que tiene la privada.
Cuando alguien desea enviar a la persona con la llave privada un mensaje confidencial, l o ella
pueden cifrar con la llave pblica libremente disponible y enviar el texto cifrado al individuo.
Debido a que el individuo es el nico que tiene la llave privada, l o ella es el nico que puede
descifrar el contenido.
Las llaves asimtricas ayudan a resolver el problema de distribucin de claves, pero los algoritmos
tienden a ser ms lentos. Algunos algoritmos asimtricos comunes son RSA, DSA y El Gamal.
Autorizacin
Adems de manejar quien puede abrir un documento, las organizaciones obtienen proteccin
adicional a travs de la autorizacin. La autorizacin especfica lo que un usuario puede hacer con
un documento y se logra a travs de permisos y control dinmico de documentos.
Permisos
Los permisos rigen la actuacin de un usuario al trabajar con un documento protegido. Los
permisos se pueden especificar si un destinatario que tiene acceso al documento est autorizado a
imprimir o copiar el contenido, rellenar campos, aadir comentarios o anotaciones en el
documento, insertar o eliminar pginas, remitir el documento, firmar digitalmente el documento,
y as sucesivamente con cada accin posible en el documento.
2.2.2 Control Dinmico de documentos
El control dinmico documento mantiene los derechos de acceso y permisos asignados a un
documento electrnico una vez que ha sido publicado y distribuido. El autor de un documento
puede realizar cambios en un documento dado a conocer sin tener que redistribuirlo
manualmente ya que los cambios se envan automticamente a todas las versiones existentes del
documento, sin importar su lugar de residencia. Usando el control de documentos dinmicos, las
14
2011
15
2011
en un formulario, imprimir, reenviar, guardar una copia, etc.) La auditora debe incluir
notificaciones automticas sobre el uso de los documentos protegidos.
Por ejemplo, un representante de servicio al cliente enva un cliente una declaracin electrnica
con tiempo crtico que requiere una accin por parte del cliente, como una respuesta o firma
digital. Una vez que el cliente recibe el documento electrnico, se notifica automticamente al
representante cuando el cliente lo abre. Si el cliente no puede abrir el documento, el se notifica al
representante 24 horas despus.
2.2.4 Firmas digitales
Cuando las empresas distribuyen documentos electrnicamente, a menudo es importante que los
destinatarios puedan verificar lo siguiente:
Las firmas digitales son una buena solucin frente a estos requisitos de seguridad al ofrecer
mayores garantas para la integridad de los documentos, la autenticidad y no repudio.
2.2.5 Integridad
Las firmas digitales permiten a los beneficiarios verificar la integridad de un documento
electrnico que se utiliza en un solo sentido o flujos de trabajo de ida y vuelta. Por ejemplo,
cuando una firma digital se aplica a los estados financieros trimestrales, los beneficiarios tienen
ms seguridad de que la informacin financiera no se ha modificado desde que fue enviado.
Los mtodos para mantener la integridad son:
Un hash de un solo sentido crea un valor de longitud fija, llamada el valor hash o resumen del
mensaje de un documento de cualquier longitud. Un hash es como una huella digital nica. Con un
hash adjunto al mensaje original, un receptor puede determinar si el mensaje ha sido alterado al
volver a calcular el hash y comparar su respuesta con el hash adjunto. Los algoritmos comunes de
hash son MD5, SHA-1 y SHA-256. Adobe ha adoptado los algoritmos SHA-1 y SHA-256, debido a su
amplia aceptacin como un estndar de seguridad.
Un MAC evita que un atacante pueda obtener el mensaje original, modificarlo, y adjuntar un
nuevo hash. En este caso, una clave simtrica est contenida en el MAC y luego se realiza un hash
16
2011
(HMAC). Sin la llave, un atacante no puede crear un nuevo mensaje. Adobe utiliza HMAC en su
caso. Las firmas digitales permiten verificar la integridad de un documento electrnico.
2.2.6 Autenticidad
Las firmas digitales proporcionan la autenticidad de un documento mediante la verificacin de la
identidad digital de un firmante. Por ejemplo, una firma digital de los estados financieros
trimestrales permite a los beneficiarios verificar la identidad del remitente y les asegura que la
informacin financiera no se ha modificado desde que fue enviado.
Las firmas digitales se crean utilizando criptografa de clave asimtrica. Para el cifrado de
documentos, el autor de un documento cifra un documento usando una clave pblica. Debido a
que el receptor es la nica persona con la clave privada, l o ella es el nico que puede descifrar el
mensaje. El autor cifra el hash del mensaje con una clave privada. Slo la clave pblica
correctamente puede descifrar el hash y lo utilizan para ver si coincide con un nuevo hash del
documento. Debido a que los destinatarios del documento tienen la clave pblica del autor, que
obtienen una mayor seguridad de que la persona que firm el documento era la persona que cifr
el valor hash original.
El proceso que constituye una firma digital es el siguiente:
2.2.7 No repudio
No repudio es un servicio de seguridad de los documentos que impide que el firmante del
documento pueda negar que firm el documento. El apoyo a este servicio es a menudo impulsado
por la autentificacin y las capacidades de marcado de tiempo.
2.2.8 Infraestructura de clave pblica (PKI)
La infraestructura de clave pblica (PKI), principalmente ofrece un certificado digital que permite a
los receptores de un documento saber si una clave pblica especfica pertenece realmente a un
individuo especfico. Los certificados digitales se unen a una persona (o entidad) y a una clave
pblica. La autoridad certificadora (CA) expide los certificados y los receptores deben confiar en la
CA que emiti el certificado. X.509 es un estndar ampliamente aceptado y es el metido de
certificado de Adobe utiliza.
Si el certificado caduca o una clave privada se ve comprometida, la autoridad competente
revocar el certificado y registra la revocacin. Como parte del proceso de autenticacin de un
certificado digital, los receptores pueden verificar el estado del certificado. Certificado de validez
se puede comprobar mediante los mtodos estndar siguientes:
Certificado de lista de revocacin (CRL)
Protocolo de estado de certificados en lnea (OCSP)
17
2011
2011
En el presente trabajo abordamos la opcin de insertar informacin dentro de los parmetros que
describen y crean un documento PDF.
CryptoMX[3]
2011
Plataforma
Windows/Linux
Windows
Descripcin
Permite agregar mensajes ocultos en imgenes GIF
Permite cifrar y ocultar archivos dentro de imgenes
BMP. Utiliza algoritmos de cifrado Cloak-128,
Blowfish y Mercury
Windows / Linux / Es una coleccin de herramientas de criptografa y
Mac
esteganografa que se utiliza en aplicaciones WEB
por medio de JavaScript en cualquier explorador de
internet. Genera una secuencia aleatoria de texto de
la cual extrae el texto original.
Windows
Permite guardar texto en imgenes
Dounds
Steganography[4]
Hide in Picture Windows
(HIP) 2.1[5]
UnderMP3Cover[6] Linux
PicCrypto[16]
Windows
Camouflage[17]
Windows
P2Stego[18]
Windows
Xiao
Steganography[19]
Windows
2011
En la tabla anterior se enumeraron varios programas que utilizan esteganografa, La mayora de los
programas son parecidos en los mtodos que utilizan y los archivos que puede utilizar; por lo
general se utilizan archivos de imgenes, audio y video [20]. Los programas que pueden insertar
informacin en documentos de texto son pocos y en el caso de Archivos PDF no hay una
implementacin especfica.
En el captulo siguiente se describen las caractersticas y partes de un archivo PDF.
21
2011
4.1 Caractersticas
Las caractersticas que los archivos PDF ofrecen son:
Estndar abierto: el formato PDF es ahora un estndar formal abierto conocido como ISO 32000.
Mantenida por la Organizacin Internacional de Estandarizacin (ISO), la norma ISO 32000 seguir
desarrollndose para cumplir los objetivos de proteger la integridad y longevidad del formato PDF,
lo que proporciona un estndar abierto para los ms de mil millones de archivos PDF que existen
hoy en da. se han generado herramientas de software libre que permiten crear, visualizar o
modificar documentos en formato PDF. Un ejemplo es la suite ofimtica OpenOffice.org y el
procesador de textos LaTeX.
Multiplataforma: los archivos PDF se pueden visualizar e imprimir desde prcticamente todas las
plataformas, incluidas Windows, Mac OS y plataformas mviles como Android.
Extensible: ms de 2.000 proveedores en todo el mundo ofrecen soluciones basadas en PDF, que
incluyen creacin, plug-ins, consultoras, formacin y herramientas de soporte tcnico.
Fiable: el hecho de que haya ms de 150 millones de documentos PDF para uso pblico circulando
en la red hoy en da, junto con los innumerables archivos PDF en administraciones pblicas y
negocios, es la prueba de la cantidad de organizaciones que confan en este formato para
transmitir informacin.
Sofisticado en cuanto a la integridad de la informacin: los archivos PDF tienen el mismo aspecto
y muestran la misma informacin que los archivos originales como, por ejemplo, texto, dibujos,
contenidos multimedia, vdeos, 3D, mapas, grficos en color, fotos e incluso lgica empresarial,
independientemente de la aplicacin utilizada para crearlos y de si se han compilado en una sola
cartera PDF a partir de mltiples formatos.
Capacidad de bsqueda: las funciones de bsqueda de texto en documentos y metadatos facilitan
las bsquedas en los documentos PDF.
Accesible: los documentos PDF utilizan tecnologas de asistencia para facilitar el acceso a la
informacin a personas con discapacidades.
Flexible: Puede ingerir cualquier combinacin de texto, elementos multimedia como vdeos o
sonido, elementos de hipertexto como vnculos y marcadores, enlaces y miniaturas de pginas.
Seguridad: Puede cifrarse para proteger su contenido e incluso firmarlo digitalmente.
22
2011
Portabilidad: Los ficheros PDF son independientes del dispositivo, el mismo archivo puede
imprimirse en una impresora de inyeccin de tinta o una filmadora. Para la optimizacin de la
impresin podremos configurar las opciones de creacin del fichero PDF.
Un archivo PDF est definido por el estndar ISO 32000 en el que se especifican las partes, formas
de creacin de un archivo PDF y de los objetos que lo componen.
43445 +17
-98 0
Un valor Real se escribe con uno o ms dgitos decimales con un signo opcional y un punto inicial,
final o incrustado. El valor debe ser tratado como un nmero real y debe ser convertido a un
objeto real.
Ejemplo 2 Objetos Reales
34.5
-3.62
+123.6 4
-.002 0.0
23
2011
Aunque Objeto Numrico es parte del estndar, este puede significar cualquiera de los dos
anteriores.
4.2.3 Objetos de Cadena de Texto
Un Objeto de Cadena de Texto consiste en una serie de cero o ms bytes. Los Objetos de Cadena
de Texto no son objetos de tipo entero pero son almacenados en un formato ms compacto. Este
tipo de objetos se puede escribir utilizando una de estas opciones.
Dentro de una cadena literal se utiliza la barra invertida como carcter de escape. El siguiente
carcter al smbolo de escape (\) determina la interpretacin que el lector le dar como se en la
tabla 4-1. Si el carcter subsecuente a la barra invertida no pertenece a ninguno de los mostrados
en la tabla se ignorara al smbolo de escaque (\).
Secuencia
Interpretacin
\n
\r
\t
\b
\f
\(
\)
\\
\ddd
24
2011
Un programa compatible que escriba archivos PDF debe de dividir las cadenas Literales en varias
lneas. La barra invertida al final de una lnea indica que la cadena literal contina en la siguiente
rengln. UN lector compatible ignora la barra invertida seguida del smbolo de fin de lnea para
crear una cadena de texto que no ha sido segmentada.
Ejemplo 2
These \
two strings \
are the same.)
(These two strings are the same.)
<4E6F762073686D6F7A206B6120706F702E>
Cada par de dgitos hexadecimales definen un byte de la cadena, los espacios, tabuladores vuelta
de carro, entrada de lnea y entrada de formulario son ignorados. En caso de la falta de un digito
para completar un par se sobre entiende que es 0.
4.2.4 Objetos Nombre
Comenzando en la versin 1.2 los objetos nombre son smbolos atmicos definidos nicamente
por una secuencia con cualquier carcter, excepto el carcter nulo (0h). nicamente definidos
significa que dos objetos nombres hechos con la misma secuencia de caracteres denotan al mismo
objeto. Atmico significa que no posee estructura interna.
Cuando se escribe un Objeto Nombre en un Archivo PDF se debe de comenzar con el smbolo de
barra (/). La barra no forma parte del nombre es un prefijo que indica que la siguiente secuencia
de caracteres representa un nombre en el archivo PDF y debe seguir las siguientes reglas:
Los espacios dentro de un objeto nombre se deben de indicar con la codificacin hexadecimal de
dos dgitos y no puede haber espacio en blanco entre el smbolo de barra y el comienzo del
nombre.
Los caracteres regulares fuera del rango del smbolo de admiracin (21h) () y la tilde (7h) (~)
deben ser escritos con su cdigo hexadecimal.
25
2011
El smbolo de barra (sin ningn carcter posterior) introduce un nombre nico vlido definido por
la secuencia vaca.
Los ejemplos de la tabla con el smbolo # no son vlidos en las versiones 1.0 y 1.1.
Sintaxis del nombre literal
Nombre resultante
/Name1
Name1
/ASomewhatLongerName
/A;Name_With-Various***Characters?
/1.2
/$$
/@pattern
ASomewhatLongerName
A;Name_With-Various***Characters?
1.2
$$
@pattern
/.notdef
.notdef
/lime#20Green
Lime Green
/paired#28#29parentheses
paired()parentheses
/The_Key_of_F#23_Minor
The_Key_of_F#_Minor
/A#42
AB
Tabla 4-2 Ejemplo de Objetos tipo Nombre
Los nombres en un archivo PDF son atmicos y nunca son tratados como texto que se mostrara al
usuario ni a alguna aplicacin externa.
4.2.5 Objetos Arreglo
Un objeto arreglo es una coleccin unidimensional de objetos arreglados secuencialmente. A
diferencia de los arreglos en otros lenguajes de computadora, los arreglos en PDF pueden ser
heterogneos; esto es que los elementos en el arreglo puede ser de cualquier tipo, incluso ms
arreglos.
Un arreglo debe escribirse como una secuencia de objetos encerrados en Parntesis Cuadrados ([
y ]) (5Bh y 5Dh).
Ejemplo 1
El formato PDF solo soporta arreglos unidimensionales. Para crear arreglos con ms niveles se
necesita introducir arreglos como elementos anidados a cualquier nivel.
4.2.6 Objetos Diccionario
Un objeto diccionario es una tabla asociativa que contiene pares de objetos, conocidas como
entradas del diccionario. El primer elemento del de cada entrada es la llave y el segundo elemento
es el valor. La llave debe ser un objeto nombre mientras que el valor puede ser cualquier tipo de
objeto PDF. Una entrada de diccionario con valor nulo es tratada como si la entrada no existiera.
Las entradas de in diccionario representan una tabla asociativa y como tal se encuentra
desordenada, aunque al momento de ser escrito el archivo se tenga un orden este ser ignorado.
Mltiples entradas en el mismo diccionario no deben tener el mismo nombre.
26
2011
Un diccionario debe de ser escrito como una secuencia de pares Llave-Valor encerradas en
parntesis angulares dobles (<<>>).
Ejemplo
Los objetos diccionario son los bloques de construccin principales de un documento PDF. Son
usados comnmente para reunir y atar juntos los atributos de objetos complejos en cada entrada
del diccionario, especificando el nombre y valor de un atributo. Por convencin la entrada Type
en un diccionario, si existe, especifica el tipo de objeto que el diccionario describe. En algunos
casos la entrada Subtype o S se utilizan para identificar una subcategora especializada del
objeto general. El valor de la entra Type y Subtype debe de ser un objeto de tipo nombre.
El valor de la entrada Type puede ser inferido casi siempre por el contexto y su utiliza ms para
documentacin y correccin de errores. La entrada Type no es requerida a menos que la
descripcin de un objeto indique sea as. Tampoco existen valores correctos o no para esta
entrada, por lo que cualquier valor es vlido.
4.2.7 Objetos Cadenas
Un Objeto Cadena, al igual que una cadena de texto, es una secuencia de bytes. Sin embargo un
objeto cadena no tiene limitaciones de longitud a diferencia de la cadena de texto que tiene
limitaciones segn la implementacin. Por esta razn, los objetos potencialmente grandes, como
imgenes o descripciones de pgina, deben ser representados como cadenas. El contexto en el
que se agrega una cadena determina que es lo que representa la secuencia de bytes.
Una cadena consiste de un diccionario seguido de cero o ms bytes encerrados entres las palabras
clave stream (seguida de una nueva lnea) y endstream.
Ejemplo
dictionary
Stream
Zero or more bytes
endstream
Todas las cadenas deben ser objetos indirectos mientras que el diccionario debe ser un objeto
directo. La palabra clave stream, despus del diccionario, debe estar seguida de un marcador de
fin de lnea consistiendo de un smbolo de vuelta de carro y salto de lnea, o de un salto de lnea
solo; y no solo por una vuelta de carro. La secuencia de bytes que dan forma a la cadena residen
entre un marcador de lnea despus de stream y la palabra clave endstream; el diccionario de
27
2011
la cadena especifica el largo de la cadena. Debe existir un marcador de fin de lnea entre la cadena
y la palabra endstream; este marcador no se contempla en el tamao de la cadena. Por ultimo
no debe haber ningn byte adicional diferente del espacio blanco entre endstream y endobj.
Cada diccionario de cadena debe contener una entrada Length que indica cuantos bytes del
archivo PDF se usan para la informacin de la cadena. En la tabla 4-3 se muestra la lista de
entradas comunes del diccionario de cadena junto con su tipo correspondiente.
Llave
Tipo
Valor
Length
Entero
Filter
Nombre o Arreglo
DecodeParms
Diccionario
Arreglo
Especificacin
Archivo
FFilter
Nombre o Arreglo
FDecodeParm
s
Diccionario
Arreglo
DL
Entero
de
28
2011
Un entero Positivo llamado Numero de Objeto. Los objetos indirectos pueden estar
numerados secuencialmente dentro del archivo PDF. Pero esto es un requisito, los
nmeros de objeto pueden ser asignados en cualquier orden arbitrario.
Un entero no negativo llamado Numero de Generacin. En un archivo PDF nuevo, todos
los objetos indirectos poseen un nmero de generacin igual a cero. Nmeros de
generacin diferentes de cero pueden ser introducidos cuando el archivo es actualizado
posteriormente.
A partir de PDF 1.5 pueden residir objetos indirecto dentro de cadenas. Se referencian igual, sin
embargo su definicin no debe incluir las palabras clave obj y endobj, y su nmero de
generacin debe de ser cero.
29
2011
Una referencia indirecta a un objeto indefinido no debe de ser tratada como un error por un lector
compatible, debe de ser tratada como una referencia al objeto nulo.
Ejemplo 3
diccionario.
7 0 obj
<< /Length 8 0 R >>
stream
BT/
F1 12 Tf
72 712 Td
(A stream with an indirect length) Tj
ET
Endstream
Endobj
8 0 obj
77
endobj
En el ejemplo 3 se muestra el uso de una referencia indirecta en la segunda lnea para indicar la
longitud de un objeto cadena. El valor de la entrada del diccionario de cadena es el valor entero
que se encuentra despus de la cadena. Esto permite a la aplicaciones que generan PDF en un solo
paso dejar la especificacin de la longitud de las cadenas despus de haberlas terminado de
escribir.
30
2011
4.3 Estructura
Todos los archivos PDF comparten la misma estructura interna independientemente de con que
aplicacin se haya creado. EL estndar ISO 32000 define a los Archivos PDF en cuatro partes
principales que se muestran en la figura 4-1.
4.3.1 Cabecera
Es la primera lnea de un archivo PDF y consiste de 5 caracteres (%PDF -) seguidos del nmero de
versin de PDF utilizada para crear el archivo.
Si el archivo PDF contiene informacin binaria, la cabecera debe estar seguida de una lnea
comentada con, por lo menos, cuatro caracteres binarios cuyo valor se igual o mayor a 128. Esto
garantiza un comportamiento correcto para las aplicaciones de transmisin de archivos que
analizan el principio de los archivos para determinar si manejarlos como texto o como datos
binarios
4.3.2 Cuerpo
El cuerpo de un archivo PDF consiste de una secuencia de objetos indirectos que representan el
contenido de un archivo. Los objetos, que describiremos en la siguiente seccin, representas
componentes de un documento como fuentes, pginas e imgenes. Desde la versin 1.5 se cuenta
con cadenas de objetos que se vern ms adelante.
31
2011
Cada parte de la tabla de referencias debe de comenzar indicada por el texto xref. Despus de
esta indicacin puede haber una o ms subsecciones conteniendo las entradas de la tabla. Para los
archivos que nunca han sido actualizados de manera incremental, en la seccin de la tabla, solo
debe existir una sola subseccin en la que los objetos comiencen con el nmero cero.
Cuando se indica una subseccin de la tabla se debe indicar el nmero del primer objeto y el
nmero de objetos que contiene la seccin. Los numero de Objeto son consecutivos dentro de
cada subseccin, por eso solo se indica el nmero de objeto del primero de la subseccin.
La tabla de referencias cruzadas indica el estado del objeto en el ltimo carcter de la entrada. Si
es n el objeto esta en uso, si est en f el objeto a sido eliminado y es posible usar su nmero
de objeto.
Hay que notar que cuando un archivo PDF es modificado y se aade nuevo contenido, ste tendr
nuevas secciones de cuerpo, tabla de referencias cruzadas y coda pero al guardar este documento
podemos optimizarlo para que las secciones duplicadas se fusionen en una sola y se reorganice el
fichero.
4.3.4 Trailer
El Trailer permite a un lector de PDF encontrar rpidamente la tabla de referencias cruzadas y
ciertos objetos especiales Los lectores de PDF que cumplan con el estndar deben de comenzar a
leer el archivo desde el final. El final del Archivo contiene la indicacin de fin del archivo (%%EOF) y
dos lneas; la primera indica que se definir la ubicacin de la tabla de referencias cruzadas
(starxref) y la segunda indica donde empieza la tabla de referencias cruzadas con respecto al
comienzo del archivo.
32
2011
keyn valuen>>
startxref
Byte_offset_of_last_cross-reference_section
%%EOF
Tipo
Valor
Size
Entero
Prev
Entero
Root
Diccionario
Encrypt
Diccionario
Info
Diccionario
ID
Arreglo
33
2011
34
2011
Con todas las partes de un archivo PDF presentadas hasta el momento es posible comprender y
manipular la informacin de contenida en estos archivos de manera bsica. Para mayores detalles
en la creacin de archivos PDF se puede revisar el estndar ISO-32000. En el siguiente captulo se
presenta la propuesta de insercin de informacin en archivos PDF basada en el anlisis de la
estructura interna de estos archivos.
35
2011
36
2011
El utilizar valores numricos en los archivos como medio de codificacin del texto presenta
algunas limitaciones. Los valores numricos que el estndar PDF permite usar nmeros de hasta
64 bits, sin embargo los valores se manejan de manera indistinta entre nmeros con punto
flotante y nmeros enteros.
En el mtodo de codificacin propuesto se obtienen nmeros enteros como salida, pero la
caracterstica de poder contener objetos de diferentes tipos como entrada de valor hace que los
equipos que lo lean sean susceptibles de cometer errores de conversin.
Varias implementaciones utilizan valores flotantes largos para englobar y obtener valores
numricos de los archivos PDF. Por lo tanto, al leer un nmero entero que utiliza la capacidad
mxima de 64 bits en los valores numricos, se corre el riesgo de perder los bits menos
significativos al tratar de ingresar el valor a un nmero flotante.
Este riesgo depende de la implementacin del lector y es necesario contemplar la posibilidad de
usar un lmite en los bits que se usaran en el archivo para insertar. Para evitar posibles prdidas de
informacin se propone utilizar seis caracteres en lugar de ocho, que es el mximo nmero de
caracteres posibles en un nmero de 64 bits, para realizar la codificacin. Esta limitacin se debe
considerar segn las caractersticas del lector que se use.
Adems de la limitacin que se tiene por la codificacin e implementacin del lector, se debe
considerar que como se usan los objetos de tipo diccionario para contener la informacin oculta,
el nmero de objetos aprovechable es limitado. Por lo que la capacidad de insercin de
informacin se limita al nmero de objetos diccionario por el nmero de caracteres a insertar en
cada objeto numrico. Esto da por resultado la funcin siguiente
N = Dn * L
Dnde:
N = Nmero de caracteres posibles de insercin.
Dn = Nmero de diccionarios en el archivo
L = Lmite de caracteres a insertar por objeto numrico.
El lmite de caracteres a insertar por objeto nmero es una variable que depende del usuario y de
la implementacin del lector de archivos PDF. Sin embargo, dado que el tipo de nmero a utilizar
es de 64 bits (8 caracteres de 8 bits), se puede decir que con este mtodo de codificacin la
capacidad mxima de insercin en un archivo est dada por la frmula:
N(max) = Dn * 8
Dnde:
N(max) = Nmero mximo de caracteres posibles de insercin
Dn = Nmero de diccionarios en el archivo
37
2011
La insercin de la informacin en los diccionarios del archivo PDF se ordenaran los objetos de
menor a mayor segn su nmero de objeto. Esto permite tener un orden en el proceso de
insercin y de extraccin.
En un proceso de insercin no siempre es necesario ocupar todo el espacio de insercin
disponible, por lo que habr diccionarios en los que no es necesario insertar informacin. Esto
depende de la longitud del mensaje a ocultar, ya que el mensaje se divide en n partes.
Para determinar el nmero de diccionarios necesarios para insertar se divide el mensaje entre el
lmite de caracteres para codificar. Si el resultado de la operacin no es entero se redondea al
entero positivo siguiente. La operacin se define as:
n = Ceil(M/ L)
Dnde:
n = nmero de diccionarios necesarios para insertar el mensaje.
Ceil = funcin de redondeo hacia arriba.
M = Longitud del mensaje.
L = Lmite de caracteres a insertar por objeto numrico.
El nmero de renglones siempre es igual o menor que el nmero de diccionarios disponibles para
insertar.
Cuando se codifica un mensaje se obtienen n nmeros decimales que sern insertados en n
diccionarios del archivo PDF. Este conjunto de nmeros decimales recibe el nombre de C y los
datos que contiene son tomados por el proceso de insercin en el mismo orden que fueron
generados.
Despus de agregar las nuevas entradas al diccionario se guarda en un nuevo archivo PDF los
cambios realizados. Sin embargo, en un proceso normal de modificacin, los cambios del archivo
PDF se guardan de forma incremental. Esto significa que los cambios se guardan al final del archivo
y los objetos originales se conservan intactos. Para el propsito de la esteganografa este mtodo
de guardado facilitara la deteccin de la informacin agregada al abrir el archivo directamente.
Para evitar este comportamiento se crear un nuevo archivo copiando la informacin del original
ms las modificaciones. Otra cosa que se debe considerar es que al guardar el nuevo archivo es
necesario recalcular la tabla de referencias cruzadas ya que la ubicacin de los objetos cambia al
agregar los elementos en los diccionarios.
Para la deteccin de la informacin oculta se necesita conocer el nombre del parmetro que se
insert y el lmite de caracteres usado. Posteriormente se busca en los diccionarios del archivo PDF
la llave que el usuario indique; los diccionarios se ordenan por nmero de objeto y se decodifica el
texto convirtiendo el numero decimal en binario y despus en caracteres los bits del nmero
decimal de ocho en ocho bits.
38
2011
Para el proceso de verificacin se propone tomar la lista de objetos diccionario del archivo PDF a
revisar y leer todos los diccionarios ordenados de menor a mayor por su nmero de objeto y
comparar sus entradas con una llave indicada por el usuario, en caso de coincidir se decodificara el
numero decimal en texto y se ira concatenando hasta terminar con todos los diccionarios.
Cuando se verifica si hay un texto oculto dentro de un archivo PDF se toman los valores de las
entradas que coinciden y si se encuentra un diccionario sin el valor indicado por el usuario como
llave este diccionario se ignora del proceso. Como la insercin se hace en orden el proceso de
extraccin deja de encontrar entradas coincidentes al terminar de decodificar todo el mensaje.
Para decodificar el texto de los nmeros decimales se propone tomar el valor numrico decimal de
la entrada del diccionario y convertirlo en su representacin binaria, posteriormente sepralo en
grupos de ocho y convertir en caracteres cada grupo. La conversin de caracteres e concatena y se
obtiene el texto original.
Teniendo este anlisis de las caractersticas de los archivos PDF y de lo necesario para el mtodo
de insercin y codificacin se propone un sistema para insertar informacin oculta en archivos
PDF. A continuacin se describen los modelos de Insercin codificacin y de verificacin
decodificacin. Y por ltimo la forma de implementarlos.
39
2011
El sistema de insercin se compone de la funcin de codificacin que convierte los caracteres del
mensaje en nmeros decimales utilizando un lmite para el nmero de caracteres codificados, y de
la funcin que agrega una entrada a los diccionarios necesarios usando la llave dada por el usuario
para obtener como salida un nuevo documento PDF que contiene las nuevas entradas en los
diccionarios.
40
2011
41
2011
42
2011
2011
44
2011
5.3 Implementacin
Para implementar este sistema y poder realizar pruebas se program una aplicacin de lnea de
comandos que realiza las funciones de los mdulos del sistema descritas en las secciones
anteriores. La aplicacin fue basada en el comportamiento observado de software gratuito para
analizar o abrir archivos PDF [21][22][23][24][25]. La aplicacin resultante se llama PDFAnalizer y
funciona como una instruccin de lnea de comandos de MS-DOS o Linux y es capaz de recibir
argumentos que modifican su comportamiento.
La aplicacin est hecha en C# utilizando Microsoft Visual Studio 2010. El programa abre archivos
PDF, recorre sus elementos y obtiene una representacin lgica del archivo en forma de rbol.
Para interpretar correctamente un archivo se deben definir, por medio de expresiones regulares,
los posibles objetos que se pueden encontrar en el archivo y como tratarlos. Los objetos lgicos
definidos corresponden a los ocho tipos bsicos de objeto del estndar PDF y los objetos
descriptores que conforman los nodos del rbol que se crea con la estructura del archivo. En el
Anexo A se encuentran los diagramas de clase de los objetos lgicos definidos en la aplicacin.
La aplicacin recupera del rbol de estructura interna una lista de los objeto diccionario junto con
su nmero de objeto y de generacin. Posteriormente se ordenan de menor a mayor segn su
nmero de objeto. El usuario tiene diferentes opciones (Parmetros) para controlar el
comportamiento del programa. La explicacin de todos los parmetros posibles y su
funcionamiento se muestran en el anexo C. El usuario debe introducir, por lo menos, el nombre de
un archivo PDF y alguna opcin para trabajar con l.
La aplicacin creada contiene en si misma tanto al sistema de verificacin, como al sistema de
verificacin. Con el programa es posible obtener una lista de objetos diccionario; el clculo de la
capacidad de insercin del archivo en trmino de caracteres; el lmite de caracteres a insertar por
entrada del diccionario; el mensaje a introducir o la ruta de un archivo txt con la informacin en
texto plano; el nombre del archivo PDF nuevo resultante de la insercin; el nombre del parmetro
de insercin o verificacin a utilizar; la ruta y nombre de un archivo para verificar la existencia de
informacin oculta; el nombre de un archivo txt para guardar la salida de la verificacin.
La aplicacin est diseada para ejecutarse de manera nativa en equipos con sistemas operativos
Microsoft que cuenten con Net Framework 2.0 o superior. Tambin es posible ejecutar la
aplicacin en sistemas Linux utilizando el compilador de C# para diferentes sistemas operativos
proporcionado por el proyecto Mono [26].
Esta implementacin de los mtodos propuesto de insercin y verificacin se probaron
ampliamente para analizar su comportamiento en diferentes archivos PDF y tambin se evalu si
la insercin de informacin es perceptible para los usuarios de los archivos al visualizar el archivo
original contra el archivo modificado. El proceso de revisin de resultados se muestra en el
siguiente captulo.
45
2011
Este formato se repite para los tres pares de archivos y se entreg a 100 participantes; de los
cuales, en el primer par el 97 por ciento de los participantes los encontr idnticos; en el segundo
par el 98 por ciento de los participantes sealo que eran iguales; y en el tercer par el 98 por ciento
sealo que no existe ninguna diferencia entre los archivos.
El porcentaje de participantes que encontr diferencias en los archivos PDF se puede explicar a
que el sistema visual del ojo humano no es perfecto y existen diferencias de percepcin entre cada
persona. Mientras ms grande es una muestra, es ms difcil conseguir una evaluacin donde
resultado sea perfecto e indique no hay diferencia alguna entre todos los archivos.
El resultado que se obtuvo indica que no es perceptible ninguna diferencia entre el archivo original
y el modificado. Este resultado era esperado ya que no se inserta informacin en los elementos
que interpretan la vista. En las imgenes 6-2 y 6-3 se muestran ejemplos del archivo original contra
el archivo modificado respectivamente.
46
2011
2011
Tambin se observ que en archivos con varios formatos de texto e imgenes diferentes, se
cuenta con un mayor nmero de objetos tiles para insertar informacin, comparados con
archivos que solo tiene texto. Mientras ms complejo sea un documento en el formato que utiliza
ms objetos requiere para describir el contenido. As mismo mientras ms pginas se agregan,
crece la capacidad de insercin.
Tambin se observ que los archivos PDF crecen en un porcentaje de 4 veces la entrada de texto a
ocultar. Esto significa que si se insertan 14 kb de texto en un archivo, el archivo crece en 60 KB
aproximadamente. Esta relacin se mantiene mientras ms grande sea el mensaje a insertar.
Comparado con otros mtodos, el sistema propuesto inserta ms informacin en los archivos. Este
sistema tiene un payload de 4 veces el peso del texto ingresado.
48
2011
49
2011
Bibliografa
A. NORMA Oficial Mexicana NOM-151-SCFI-2002, Prcticas comerciales-Requisitos que deben
observarse para la conservacin de mensajes de datos
Secretaria de Gobernacin, Diario Oficial de la Federacin: 04/06/2002
http://dof.gob.mx/nota_detalle.php?codigo=727725&fecha=04/06/2002
http://dof.gob.mx/nota_detalle.php?codigo=2102579&fecha=19/12/2005
http://dof.gob.mx/nota_detalle.php?codigo=4937232&fecha=10/11/2006
Deepak Sharma, Dr. Chee-Hung Henry Chu, Center for Advanced Computer Studies, University of
Louisiana at Lafayette
http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBoQFjAA&url=http%3A%2F%2Fdee
paksharma.net%2FDocuments%2FWatermarks%2520Classification.doc&rct=j&q=watermarking%2
0classification&ei=YHzBTZSNCaTiiALh3syJAw&usg=AFQjCNFc8QAfWoOHEnau6yAnGUCU4iYTw&cad=rja
2011
Renato Iannella. Open digital rights management. Position paper for the W3C DRM Workshop,
2001.
http://www.w3.org/2000/12/drm-ws/pp/Overview.html
I.
Referencias
[1]Steganoptic
Douglas Ryan Richardson, Windows/Linux, 2003-08-04
http://steganopic.sourceforge.net/
[2]Cloak 7.0
insight-concepts, Windows 95/98/Me/NT/2000/XP,2004-02-23
http://www.baxware.com/cloak.htm
[3]CryptoMX
[4]Dounds Steganography
Brinkster, Windows Me, Windows 98, Windows 95, Windows 2000, Windows XP,2002-02-24
http://download.cnet.com/Dound-s-Steganography/3000-2092_4-10072532.html
2011
[5]Hide in Picture
Davi Figueiredo, 2011-02-12
http://sourceforge.net/projects/hide-in-picture/
[6]UnderMP3Cover
Christian Platt, 2009-07-17
http://sourceforge.net/projects/ump3c/
[7]S-Tools
Peter Gutmann,200-11-18
http://www.spychecker.com/program/stools.html
[8]Wodax
Joan Puigcerver Prez, 2009-01-03
http://www.kriptopolis.org/wodax-esteganografia
[9]MP3Stego
Fabien Petitcolas, 2006-06-13
http://www.petitcolas.net/fabien/steganography/mp3stego/
[10]Invisible Secret
NeoByte Solutions, Copyright 1999-2010
http://www.invisiblesecrets.com/
[11]InvisibleInk
Kathryn H, 2010-11-05
http://sourceforge.net/projects/diit/
[12]Hermetic Stego
Hermetic systems, Copyright 2003-2008
http://www.hermetic.ch/hst/hst.htm
[13]BitCrypt
moshe-szweizer, Win98,WinME,Windows2000,WinXP,Windows2003, Windows Vista
http://bitcrypt.moshe-szweizer.com/
2011
[15]SteganoG
Gaijin, 2007-02-22
http://www.gaijin.at/en/dlsteg.php
[16]PicCrypt
2009-08-07
http://www.neoteo.com/piccrypt-archivos-hechos-imagenes
[17]Camouflage
Unfiction
http://camouflage.unfiction.com/
[18]P2Stego
P2Labs, Copyright 2001 - 2011
http://cloud.p2labs.com/products/p2stego/index.html
[19]Xiao Steganography
naka soft, 2010-06-28
http://www.softpedia.com/get/Security/Encrypting/Xiao-Steganography.shtml
[22]PDFXplorer
O2Solutions, 2003 - 2010 O2 Solutions
http://www.o2sol.com/pdfxplorer/overview.htm
2011
[23]PDF Surgeon
Nix solutions, NIX Solutions Ltd 2011
http://nixsolutions.com/products/pdf-surgeon/
[25]PDF2HTML 2.02
GetPDF Inc., (C) 2000-2011
http://www.getpdf.com/pdf2htm.html
[26]Proyecto Mono
Novell, Junio 2010.
http://www.mono-project.com/Main_Page
2011
ndice de Imgenes
Imagen 1-1 Uso de Contraseas en Aplicaciones ............................................................................... 3
Imagen 1-2 Permisos en los Archivos.................................................................................................. 4
Imagen 1-3 Herramientas de Control de Cambios .............................................................................. 4
Imagen 1-4 Uso de un Servidor de Documentos Compartidos ........................................................... 6
Imagen 1-5 Funcin de Resumen ........................................................................................................ 6
Imagen 1-6 Sistema de Firma Digital................................................................................................... 7
Imagen 2-1 Clasificacion de Marcas de Agua .................................................................................... 11
Imagen 2-2 Ciclo de vida de la seguridad persistente de un documento ......................................... 13
Imagen 4-1 Partes de un Archivo PDF ............................................................................................... 31
Imagen 4-2 Ejemplo de la Estructura Actualizada Incrementalmente de un Archivo PDF ............... 35
Imagen 5-1 Modelo de Insercin ...................................................................................................... 40
Imagen 5-2 Modelo de Codificacin ................................................................................................. 41
Imagen 5-3 Modelo del Proceso de Insercin................................................................................... 42
Imagen 5-4 Resultado de la insercin de una entrada en un diccionario ......................................... 42
Imagen 5-5 Modelo del Sistema de Verificacin............................................................................... 43
Imagen 5-6 Modelo de Verificacin .................................................................................................. 44
Imagen 5-7 Modelo de la Funcin de Decodificacin ....................................................................... 44
Imagen 6-1 Formato de Preguntas para Archivos PDF ..................................................................... 46
Imagen 6-2 Archivo PDF Original....................................................................................................... 47
Imagen 6-3 Archivo PDF Modificado ................................................................................................. 47
Imagen A-0-1 Clases Base de Objetos PDF ......................................................................................... k
Imagen A-0-2 Tipos de Objeto PDF ..................................................................................................... k
Imagen A-0-3 Clases de los Objetos PDF .............................................................................................. l
Imagen A-0-4 Objeto Descriptor ........................................................................................................ m
Imagen A-0-5 Objeto Lector de Archivos PDF .................................................................................... m
ndice de Tablas
Tabla 3-1Programas de Esteganografa ............................................................................................ 21
Tabla 4-1 Secuencia de escape en cadenas literales......................................................................... 24
Tabla 4-2 Ejemplo de Objetos tipo Nombre...................................................................................... 26
Tabla 4-3 Entradas Comunes al Diccionario de Cadena .................................................................... 28
Tabla 4-4 Tabla de Llaves de la Coda................................................................................................. 34
Tabla B-1 Nombres recomendados para Insercin ............................................................................. n
Tabla C-1 Tabla de Parmetros del Programa PDFAnalizer ................................................................ p
2011
Glosario
Objeto Arreglo
Una coleccin unidimensional de objetos arreglados secuencialmente y numerados implcitamente
comenzando en cero.
ASCII
El cdigo estndar americano para intercambio de informacin, una convencin ampliamente
usada para codificar un grupo especfico de 128 caracteres como nmeros binarios definidos en
ANSI X3.4-1986.
Informacin Binaria
Una secuencia ordenada de bytes.
Objetos Lgicos
Cualquiera, la palabra clave true o la palabra clave false.
Byte
Un grupo de 8 dgitos binarios que colectivamente pueden ser configurados para representar uno
de 256 valores diferentes y varias realizaciones de 8 dgitos binarios son utilizados ampliamente en
equipo electrnico actualmente.
Catalogo
El objeto diccionario principal que contiene las referencias directas o indirectas a todos los objetos
en el documento con la excepcin que tal ves haya objetos en el trailer que no son referenciado
por el catalogo.
Carcter
Cdigos numricos representando un smbolo abstracto de acuerdo con reglas de codificacin
Conjunto de Caracteres
Un conjunto de smbolos definidos asignados a un carcter nico.
Lector Compatible
Implementacin de software que es capaz de leer y procesar archivos PDF que han sido hechos
conforme las especificaciones del estndar ISO32000.
Cadena de Contenido
Cadenas de objetos cuya informacin consiste de una secuencia de instrucciones describiendo los
elementos grficos a ser pintados en una pgina.
Tabla de Referencias Cruzadas
Estructura de datos que contiene el desfase en bytes para cada objeto indirecto dentro del archivo.
Objeto Diccionario
Una tabla asociativa conteniendo pares de objeto, el primer objeto es el nombre del objeto
sirviendo como una llave t el segundo objeto trabajando como el valor puede ser cualquier objeto.
Objeto Directo
Cualquier objeto que no ha sido convertido en un objeto indirecto.
2011
Documento electrnico
Representacin electrnica de un grupo de texto orientado a pgina, imgenes y grficas, y
metadatos tiles para identificar entender y renderear informacin. Puede ser reproducido en paple
o desplegado sin prdidas significativas del contenido de su informacin.
Marcador de Fin de Lnea (Marcador EOL)
Uno o dos caracteres indicando el fin de una lnea de texto, consistiendo de una vuelta de carro y
de una entrada de lnea.
Fuente
Coleccin identificada de graficas que pueden ser lneas u otros elementos grficos.
Funcin
Un tipo especial de objeto que representa clases parametrizadas, incluyendo frmulas
matemticas y representaciones con resolucin arbitraria.
Objeto indirecto
Un objeto que est marcado con un numero entero positivo seguido por un numero de generacin
entero no negativo seguido de obj y teniendo endobj despus de el.
Objeto Entero
Enteros matemticos con una implementacin especificada en un intervalo con centro cero y
escrita como uno o ms dgitos decimales opcionalmente precedidos de un smbolo.
Objeto Nombre
Un smbolo atomico identificado nicamente por una secuencia de caracteres precedidos por el
smbolo de barra, sin que este primer smbolo sea parte del nombre.
Objeto Nulo
Un objeto solo del tipo nulo, denotado por la palabra clave null, y teniendo un tipo y valor que son
diferentes a otros objetos.
Objetos Numricos
Cualquiera, un objeto entero o un objeto real.
Objeto
Una estructura bsica de la cual los archivos PDF son contruidos e incluidos en los objetos bsicos
de PDF.
Referencia de Objeto
El valor de un objeto usado para que un objeta pueda referirse a otro.
Objeto Cadena
Una cadena que contiene una secuencia de objetos PDF.
PDF
Archivo de Portable Document Format (PDF) en el estndar.
Objeto Real
Nmero real de aproximacin matemtica. Pero con un rango limite y precisin y escrito como uno
en los digitos decimales
Diccionario de Recursos
Asocia nombres de recursos, usado en cadenas de contenidos, con los mismos objetos de
recursos y los organiza en varias categoras.
2011
Carcter de Espacio
Carcter de cadena de texto usado para representar el espacion en blanco ortogrfico en cadenas
de texto.
Cadena de Objeto
Consiste de un diccionario seguido de cero o ms bytes encerrados entre las palabras clave
Stream y endstream.
Objeto Cadena
Consiste en una serie de bytes (valores enteros sin signo en el rango del 0 al 255) y los bytes no
son objetos enteros, pero estn almacenados en una forma ms compacta.
Carcter de Espacio Blanco
Carcter que separa constructores sintcticos PDF tales como nombres y nmeros unos de otros;
caracteres de espacio son tabulador horizontal, entrada de lnea, entrada de formulario, vuelta de
carro, espacio.
Archvio XPDF
Archivo apegado al formato de informacin XML 2.0, el cual es una transliteracin del Formato de
Formularios de Informacin (FDF).
2011
Anexos
A.
2011
2011
2011
B.
2011
Como nombre para los parmetros a insertar se propone utilizar alguno de los siguientes:
Nombre
StyleT
StyleC
StyleF
TextC
TextM
TextP
FontM
FontN
FontL
FontC
ColoRef
ColorHex
ColorN
FormatP
FormatT
FormatAl
AnchorT
AnchorFor
ArrayS
StringT
StringF
StringMsk
WidthT
LengthT
ObjectN
ObjectCol
ObjectFmt
ObjectStl
Tabla B-1 Nombres recomendados para Insercin
Tambin es vlida cualquier variacin de nombres de entradas comunes en los archivos PDF.
C.
2011
El programa PDFAnalizer puede recibir varios parmetro que le indican que tarea realizar sobre un
archivo PDF. Su sintaxis es la siguiente
PDFAnalizer <Nombre y ruta de archivo PDF> |-Parmetro 1 <argumento>||-Parmetro n <argumento>|
El primer parmetro indica el nombre del archivo PDF a utilizar como principal de trabajo, es el
nico parmetro obligatorio. En caso de no introducir ningn parmetro el programa solo muestra
la lista de objetos del archivo PDF.
En la Tabla siguiente se muestran los parmetros de entrada posibles para el programa
PDFAnalizer y sus efectos en el comportamiento del mismo. Todos los parmetros se introducen
anteponiendo el smbolo - y, en su caso, seguidos del valor de la entrada.
Parmetro
p
Descripcin
En un proceso de insercin, este parmetro indica
que el texto siguiente a l corresponde al nombre
se utilizara como llave de las entradas insertadas a
los diccionarios del archivo. En un proceso de
verificacin, indica que el texto siguiente a l
corresponde a la llave que se buscara en los
diccionarios del archivo para encontrar texto
oculto. Este parmetro no tiene ningn efecto si
no se utiliza el parmetro a m en la lista de
argumentos. Si no se indica este parmetro se
utiliza /StyleT como el nombre de la llave para las
entradas a insertar en los diccionarios del archivo
PDF
Este parmetro indica que el nmero decimal
entero inmediatamente
posterior a l
corresponde al lmite de lneas para mostrar de la
lista de objetos antes de solicitar al usuario
presionar una tecla antes de continuar.
Con este parmetro se indica que el texto
subsecuente ser insertado en los diccionarios del
archivo PDF utilizando la llave indicada por p y el
lmite indicado por L. Si en la lista de argumentos
se encuentra el argumento a, se ignorara este
parmetro y se usara el parmetro a.
En un proceso de verificacin indica que el texto
encontrado ser guardado en el archivo que se
indica despus de este parmetro. En caso de no
indicar el nombre de un archivo txt de salida para
el mensaje recuperado se utilizara el nombre del
archivo verificado ms el sufijo mensaje.txt. Este
parmetro no tiene ningn efecto cuando no se
incluye el parmetro v en la lista de argumentos.
o
2011