Está en la página 1de 73

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
SECCION DE ESTUDIOS DE POSGRADO E INVESTIGACION

“INSERCIÓN DE INFORMACIÓN OCULTA EN ARCHIVOS PDF”

TESINA

QUE PARA OBTENER EL GRADO DE:
ESPECIALISTA EN SEGURIDAD INFORMATICA Y TECNOLOGIAS DE LA INFORMACION

PRESENTA:
Ing. RUBEN JONATHAN GARCIA VARGAS

ASESOR: Dr. MARIO GONZALEZ LEE

México D.F 2011

ii

iii

calcular la capacidad e inserción. Así mismo la aplicación puede introducir el texto de un archivo txt y recuperarlo posteriormente en otro. y se presenta un método de codificación de caracteres de texto en objetos PDF numéricos con un límite definido por el usuario de hasta 8 caracteres por diccionario. extraer una lista de posibles objetos insertables.Resumen En la actualidad las empresas e instituciones de gobierno usan los documentos digitales diariamente confiando en que su información no será modificada. iv . y realizar los procesos de inserción. En el presente trabajo se propone un mecanismo para insertar información de manera oculta en un archivo PDF utilizando la estructura interna del mismo por medio de una llave de inserción que se agrega a los diccionarios de los objetos PDF. Por último se presentan las pruebas del sistema y las limitaciones que presenta. codificación. verificación y decodificación usando las llaves y limites que indique el usuario. También se presenta una implementación del modelo de inserción propuesto por medio de un programa hecho C# capaz de abrir un archivo PDF. 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. Así mismo se presenta el método de verificación y decodificación correspondiente tomando una llave para hacer la revisión de diccionarios y un límite para el proceso de decodificación de números decimales a caracteres de texto.

mis amigos que incitan a buscar cosas mejores. García V. v . A todos gracias.Agradecimientos A mis padres que me apoyan y motivan a seguir adelante. profesores que con su enseñanza me han ayudaron a ser mejor persona y compañeros de trabajo que me apoyaron en la realización de este proyecto y de todos los que me propongo en la vida. Rubén J.

.7 No repudio.............................. 1 1...........1 Marcas de Agua ..................4........................................................................ 19 vi .............................................................. 17 Esteganografía y los Medios Digitales ....... 1 1..................................7 Servidores de certificación de archivos ..........................5 Aplicaciones de Esteganografía .............................................................................2.........1 Control de Documentos .....................5 Integridad ...................2............................................................... 16 2............................................4....................................................2 Justificación .....3 Rendición de cuentas ... 19 3...1 Autenticación Basada en el Contenido .6 Firma Digital ......................................................................................... 7 1......... 4 1...................................8 PDF ............................................... 9 Autenticación y Derechos de Autor en Archivos Digitales ........................................................... 17 2......3 Inserción de información de control en el documento ................4 Firmas digitales..........Índice 1 2 3 Introducción ................................5 Resumen electrónico del Documento .......... 3 1....... 12 2......2......................................................2 Permisos sobre el documento ..4 Codificación de Características ............................................1 Definición del problema .................................................................................................................................................4 Control de Documentos Digitales por medio de servicios compartidos ........................................................ 4 1....3 Codificación por Cambio de Palabras........ 16 2............ 5 1...........................................................................................4....4................................................................................................2............................ 8 1...................................... 18 3...............................................................................................................................................4 Antecedentes ......................... 2 1.....................................1 Contraseña ......................................... 19 3............................2.........................................4........................................................................................................................... 19 3........................................................8 Infraestructura de clave pública (PKI) ............................... 3 1........................................................ 10 2.....................................................4...2 Codificación por Cambio de Líneas ................................................................................ 15 2.............................. 10 2...4............................................ 6 1.......................... 14 2.......2..........6 Autenticidad ...........................................................................2..................4.................................................... 17 2........................................... 18 3...................................................................................................................... 13 2.............................................................................3 Objetivo .... 1 1......................................2 Seguridad persistente en los documentos ...................2........................................2 Control Dinámico de documentos ..........................

36 5............................................................2........................ 23 4.....4 Estructura de los archivos PDF ............1 Modelo del Sistema de Inserción .................. 27 4..................................................... 26 4...........................2......................................3 Conclusiones y Trabajo a Futuro .........................................................1 Características ........................................................................ 43 5.......................... 41 5....................................................................3..................................................................................8 Objetos Nulos ................................................................................................................................................................................... 31 4.............1 Función de Verificación ....2..2 Cuerpo ..................................................................................1 Método de Codificación .................................................................................................. 44 5.................................................. 43 5........................................................................................... 45 Prueba MOS................................................................. 25 4....................................................4 Objetos Nombre ... a Referencias ..............................................3.................3 Objetos de Cadena de Texto ........ 24 4.....................9 Objetos Indirectos .... 32 4.................................. 23 4.......................................... 22 4..2......... 31 4............ 32 4............................................................................................3 Tabla de referencias cruzadas .................4 5 Actualizaciones Incrementales ....................................................................2 Método de Inserción .......................................................... 46 6...........1........................4 Trailer .................................................. 47 6........................ 23 4..........................7 Objetos Cadenas.........................................................................................................................3.................................................1 Cabecera .................................. 31 Implementación ..................................... Conclusiones y Trabajo a Futuro ...........................5 Objetos Arreglo ....2................................................ 48 Bibliografía ..... 46 6...................................................................................................2 Objetos del Estándar PDF ISO 32000 ........................................................................................ 26 4...........................................3 6 Estructura ...........2.....................................................2 Pruebas de Implementación ............................................... 22 4......................1 Prueba MOS ........2.......... 40 5........................................................................................................................................ 41 5..2 Objetos Numéricos ...........2.................................................. b vii ...................................................................................................................................2 Modelo del Sistema de Verificación ................................. 29 4.............................. 29 4....................2...................... 34 Desarrollo del Sistema..........3....2.6 Objetos Diccionario ...............................2.................................................................................................................................................................................3 4.......... Análisis..........................................2 Función de Decodificación ............................................1 Objetos Lógicos ................1.........................................................................

.......................................... f Glosario ................................................................................................................................................................................ Parámetros de la Aplicación PDFAnalizer ...................................................................................................................................................................................................................................................................................................................................................... k B.................................................Índice de Imágenes ..................... g Anexos ....... f Índice de Tablas ... Nombres Recomendados para las Entradas en Diccionarios ................ j A..................................... Diagramas de Clases de Objetos PDF ........................................................ n C........... o viii ......

es posible modificar la información contenida sin tener que crear un archivo diferente. Los archivos PDF no son la excepción ya que su seguridad se agrega directamente en la estructura de documento y dependiendo de que se habrá con la aplicación que le dé cumplimiento al esquema de seguridad propuesto. Un método de este tipo podría ser utilizado para crear esquemas en los que se pueda controlar quien tiene acceso al documento. La veracidad de la información contenida en un documento de texto es de una importancia tal que puede hacer tomar las mejores o peores decisiones cuando la información es incorrecta o a sido falsificada. veraz. proceda de quien se diga ser su autor y se mantenga su integridad son problemas muy importantes para las empresas. 1. control de cambios e incluso validación en contra de modificaciones. por lo que es necesario desarrollar un algoritmo y encontrar un parámetro para insertar información oculta dentro la estructura de un archivo PDF de manera tal que no sea perceptible para un atacante que intente modificar la información y al mismo tiempo no haya modificaciones en el documento visibles para el ojo humano. métodos de distribución. Esto hace que si alguien modifica directamente la información de la estructura del archivo se corra el riesgo de que la información se pierda. dañe o se comprometa la veracidad de la información.1 Definición del problema Los archivos PDF son utilizados con frecuencia por las empresas y entidades de gobierno como una forma cotidiana de enviarse información. confiando que estos documentos son seguros y difíciles de modificar.2 Justificación En la actualidad la información de las empresas se considera como el bien más importante y valioso que se pueda poseer.Inserción de Información Oculta en Archivos PDF 2011 1 Introducción 1. 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. para aquellas personas que conocen la estructura interna de los archivos PDF. Para evitar que sea fácil la modificación de un archivo PDF se propone utilizar las características de la estructura de un archivo PDF y se oculte información dentro de sus características que definen contenido o apariencia. Esto provoca que garantizar que la información sea exacta. sin embargo. 1 .

Diseñar un método de verificación y decodificación. 2 . Seleccionar un método de codificación para la información.Inserción de Información Oculta en Archivos PDF 2011 1. Para esto se proponen los siguientes objetivos particulares:      Encontrar un parámetro de la estructura del archivo PDF para insertar información en él. Implementar los métodos en una aplicación de pruebas Medir los resultados de la implementación.3 Objetivo Diseñar e implementar un algoritmo para insertar información de manera oculta en un archivo PDF tal que esta sea imperceptible al sistema visual humano utilizando las características de la estructura del mismo archivo como portadora de la información.

3 . autenticación. se basa en la idea que solo las personas que conocen la contraseña pueden abrir el documento y hacer los cambios necesarios en él. Con este esquema no se corre el riesgo de que la información dentro de un documento sea modificada y nadie lo note después de que alguien consiga la contraseña.Inserción de Información Oculta en Archivos PDF 2011 1. la integridad. disponibilidad y el no repudio en los documentos electrónicos y en las personas que los utilizan. además esta opción no incluye control de los cambios ni quien tiene acceso a editar o ver el documento. Todas las funciones que se agregan en las aplicaciones para controlar cambios o validaciones tratan de garantizar la confidencialidad. A continuación se mencionan y describen algunos de los métodos más usados para proteger los documentos electrónicos. Los métodos que se utilizan son muy variados y van desde un nivel básico para 1 o dos usuarios hasta amplias soluciones que involucran la participación de varios dispositivos y personas para llevar un control de los documentos digitales. validación y firmado de los documentos. autenticidad.1 Contraseña Este es uno de los primeros métodos que se utilizó para dar seguridad en los documentos digitales. 1.4. Imagen 1-1 Uso de Contraseñas en Aplicaciones Esta opción no fue suficiente ya que la seguridad del documento depende de que tan bien se guarde la contraseña. Algunos proveedores incluyen en sus aplicaciones funciones de control de cambios.4 Antecedentes La necesidad de autenticar y tener información de control dentro documentos digitales ha crecido en diferentes formas en los últimos años. Usualmente esta opción 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.

Inserción de Información Oculta en Archivos PDF 2011 1.4. Los datos de control que se guardan corresponden a: La posición del cambio. la hora del cambio. y el estado anterior. tampoco permite tener un control de cambios en el documento ni un registro de quien accede y que se hace con el documento. el usuario que realizo el cambio. Esta opción permite que si un usuario quiere abrir o editar un documento primero se valida si puede verlo y después si puede modificarlo.2 Permisos sobre el documento Esta opción se agregó a las aplicaciones junto con el control de usuarios de la aplicación o del sistema operativo. 1.3 Inserción de información de control en el documento En esta opción las aplicaciones empezaron a introducir dentro de la estructura interna del documento (separado de la parte visible y editable del documento) información de control de los cambios realizados en documento. dependiendo de la herramienta con que se creen y editen los documentos. Esta opción permite que se asigne permisos de lectura y/o escritura a los diferentes usuarios de un equipo o aplicación. cambie los permisos sobre el documento o cambie al dueño del documento. como la anterior. ya sea del sistema operativo o de la aplicación. Imagen 1-2 Permisos en los Archivos Esta opción.4. También existe la posibilidad que un usuario con permisos de administrador. Imagen 1-3 Herramientas de Control de Cambios 4 .

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. También se corre el riesgo de no saber quien posee la información de un documento ya que se puede copiar el documento sin que la aplicación sepa cuantas copias hay en circulación. que otros usuarios puedan editar ciertas partes del documento. Este sistema también 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. Esto permite que algunos usuarios puedan ver el documento bloqueando la edición.4 Control de Documentos Digitales por medio de servicios compartidos Esta es la última opción que se ofrece en el mercado y permite explotar todas las opciones anteriores y pretende solucionar el problema de la distribución y acceso a los documentos. acceso y distribución del documento por medio de una o varias aplicaciones. 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. 1. y que existan usuarios que validen y aprueben los cambios en los documentos. sus roles y archivos que pueden ver o modificar. Incluso es posible llevar este esquema a los usuarios de diferentes maquinas que tengan la misma aplicación. es decir es posible que varias personas estén trabajando el mismo archivo al mismo tiempo y cada uno tenga versiones diferentes de él. También es posible crear roles dentro de un grupo de usuarios para controlar uno o más archivos. Es posible tener un control más estricto sobre los usuarios.4. 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. Este sistema tiene la limitante que no controla la distribución del documento. 5 . Aunque este esquema aumento las posibilidades de control y validación de un documento solo es posible utilizarlo cuando todas las partes que interactúan con el documento lo hagan a través de la misma herramienta y que exista una configuración común cuando se utilizan diferentes equipos para trabajar sobre los documentos. ni el flujo en su desarrollo distribuido.Inserción de Información Oculta en Archivos PDF 2011 Junto con este esquema se introdujo la posibilidad de tener control sobre los usuarios que acceden a un documento y se agregó la función de llevar registro por cuenta de usuario de la aplicación (rendición de cuentas). Además el servidor lleva el control de quien puede acceder al documento y el registro de quien y que hizo con el documento. Este tipo de sistemas empieza a tener auge ya que los servicios por internet lo están ofreciendo como parte de sus prestaciones permitiendo a los usuarios de sus productos compartir documentos y controlar la edición distribuida y versiones de un documento a través de servicios en internet. El sistema permite que los usuarios autorizados abran el documento en sus equipos.

No permite tener control sobre personas que adquieran el documento por fuera del sistema. ya sea en un correo electrónico. 1. Cuando el documento está terminado y es enviado a alguien fuera del sistema. Sin embargo estos sistemas tiene la limitante que solo funciona dentro del circulo de usuarios y equipos que conforman el sistema. fue diseñado para la distribución de los archivos electrónicos y es aplicable para los documentos digitales también. pueden ser los jefes que reciben los resultados del documento o clientes que reciben el documento entre varias posibilidades. En un escenario real los documentos finales se comparten con personas fuera del sistema de control de edición. descarga o una copia en caso de que alguien tuviera permisos de guardar una copia local. Imagen 1-5 Función de Resumen 6 .Inserción de Información Oculta en Archivos PDF 2011 Imagen 1-4 Uso de un Servidor de Documentos Compartidos Estos son los sistemas más robustos que existen para controlar el flujo de desarrollo de un documento. Se basa en funciones que crean resúmenes de los archivos a manera de firma.4. ya no es posible garantizar la integridad del documento ni verificar su autenticidad.5 Resumen electrónico del Documento Este es un esquema que es muy utilizado en la actualidad pero no es una parte integral en las aplicaciones.

métodos de renovación de certificados. Consiste en un método criptográfico que asocia la identidad de una persona o de un equipo informático al mensaje o documento. algoritmos de criptografía y funciones de resumen. Imagen 1-6 Sistema de Firma Digital 7 . Estos métodos son ampliamente aceptados para verificar la autenticidad de un archivo. servicios de estampado de tiempo.Inserción de Información Oculta en Archivos PDF 2011 La función de resumen está planeada para que siempre que se tenga una entrada específica se logre el mismo resultado. pero con el más mínimo cambio en la entrada el resultado será totalmente diferente. 1. La Firma Digital utiliza un algoritmo de resumen electrónico y algoritmos de criptografía para cifrar el resultado del contenido de un documento y garantizar la autenticidad de un documento.6 Firma Digital Es un esquema matemático que sirve para demostrar la autenticidad de un mensaje digital o de un documento electrónico. sin embargo ya se ha demostrado que es posible generar el mismo resumen con entradas diferentes (Colisión de la función) por lo que estos métodos son susceptibles a ser vulnerados. El sistema de firma digital incluye el uso de certificados digitales.4.

pero si este estuviera fuera de servicio o no se tuviera acceso a él por errores en la red del cliente que desea verificar la autenticidad de un documento los usuarios quedan desamparados hasta que se cuente con el servicio. una marca temporal (estampa de tiempo) y una firma electrónica. Estos sistemas generalmente se basan en el apósito de una "constancia". Prácticas comerciales-Requisitos que deben observarse para la conservación de mensajes de datos" que se encarga de regular la certificación de documentos digitales para demostrar su autoría e integridad. La entidad certificadora se encarga de cumplir con todos los lineamientos de la norma y de dar el servicio de validación. Sin embargo algunas funciones de resumen ya han sido vulneradas por lo que es posible que se generen diferentes documentos con el mismo resumen y a este sistema solo le queda confiar en lo bien que se guarde la clave de cifrado. Además se tiene el mismo problema que con los algoritmos de resumen que ya han sido colisionados. El esquema es muy parecido al de la Firma Digital con la diferencia que se agrega un elemento llamado estampa de tiempo que indica la fecha de registro y que los datos de la firma digital y el certificado se guardan en un servidor de un tercero ajeno al que genera el documento y al que lo recibe. típicamente: los datos del prestador. En este método de autenticación la información de validación es visible lo que hace evidente que se utilizó este esquema de seguridad. Tiene el propósito de regular la práctica de tener documentos electrónicos y/o la digitalización de documentos originales en papel para demostrar su existencia y poder disponer de los documentos originales y mejorar su gestión en sistemas informáticos. Otra opción es que el destinatario pueda descargar un certificado con la llave pública para descifrar o cuente con él antes de recibir los datos. El tercero es una autoridad certificadora autorizada y es esta entidad la que realiza la validación de un documento a petición de él que recibió el documento. Si el resultado del resumen y de la firma digital descifrada es el mismo se puede comprobar que el documento es el mismo que fue enviado originalmente. La seguridad de este esquema se basa tanto en la seguridad del método de cifrado en no poder encontrarla llave que cifro los datos como en la función de resumen. De esta forma el destinatario puede validar la autenticidad del o los documentos enviados. 1.4. facilitada por un tercero de confianza legalmente autorizado. Este método depende de que el servicio de validación esté disponible o se tenga acceso a él para validar un documento. 8 .7 Servidores de certificación de archivos En México existe la "NORMA Oficial Mexicana NOM-151-SCFI-2002 [A][B][C].Inserción de Información Oculta en Archivos PDF 2011 Para comprobar la autenticidad de un documento por medio de su firma se necita realizar la extracción de los datos del documento y hacer la misma función de resumen para que el resultado sea comparado con el resultado de descifrar la firma digital con la llave publica del que firmo el documento. Usualmente la Firma Digital y el certificado son adjuntados a los datos para ser enviados al destinatario.

7 como el estándar ISO 32000-1[D][E][F][K]. Existen diferentes recomendaciones para utilizarlo dependiendo del ámbito en el que se utilice. Hasta ahora se han revisado los diferentes métodos que se han venido utilizando comercialmente para controlar y autenticar documentos electrónicos. autenticidad o autoría de los documentos electrónicos.4. En enero de 2008 el comité técnico de ISO aprobó una versión final de la documentación para PDF 1. Adobe® ofrece una solución muy robusta que contempla y propone un proceso de siclo de vida en la creación y distribución de un documento. utilizan un método de descripción de páginas basado en PostScript y existe toda una solución implementada a su alrededor utilizando la Suite de Adobe® para crear y controlar archivos PDF. El formato de archivos PDF es usado cotidianamente por muchas aplicaciones ya que la estructura es pública y varios proveedores de aplicaciones de creación de documentos digitales lo han agregado a sus funciones. Sin embargo en el día a día 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 número de empresas y soluciones que ofrecen la conversión o creación de estos Archivos.Inserción de Información Oculta en Archivos PDF 2011 1. En julio de 2008 puso el archivo a la venta en su página Web. 9 . En el siguiente capítulo se analizan las diferentes investigaciones y propuestas que se han diseñado para mantener la integridad. Además la seguridad y control que ofrece la suite de Acrobat están limitados a los usuarios que cuentan con el sistema en sus equipos. 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. en el presente trabajo se propone un método para incluir información oculta en la estructura de un documento PDF. Por si sola la estructura de un archivo PDF no tiene control de cambios o métodos de validación.8 PDF Los Archivos PDF fueron creados por Adobe®. Los archivos PDF son ampliamente aceptados por entidades de gobierno y privadas como una solución estándar para la representación de documentos digitales. En la sección “Estado del arte de Autenticación y Derechos de Autor” se describe con mayor detalle lo que se ofrece como sistema de seguridad y control para estos documentos.

1 Marcas de Agua Las marcas de agua se crearon con la intensión de poder identificar la originalidad de un objeto. Existen diferentes formas de medios digitales (audio. protección. imágenes y documentos) y en cada medio se tienen diferentes formas para realizar la autenticación y hacer valer los derechos de autor. La definición más acepta actualmente para el manejo de derechos de autor digitales fue introducida por Iannella de IPR Systems en el W3C (World Wide Web Consortium) Taller de Manejo de Derechos Digitales en 2001[H]: “El manejo de Derechos Digitales (DRM) involucra la descripción. 2. tangibles e intangibles . También existen métodos que utilizan la estenografía y estos serán abordados en el siguiente capítulo. Es por eso que las marcas de agua se pueden analizar como la inserción de una señal de información en un material digital. cualquiera que poseyera o fabricase un documento u obra de arte valiosos lo marcaba con un sello de identificación o marca de agua (visible o no). Ahora es posible crear copias exactas de materiales y distribuirlas por todo el mundo por lo que garantizar la identificación o control de copias y su distribución es de vital importancia para los dueños intelectuales de un material digital. físicas y digitales – incluyendo el manejo de las relaciones de los poseedores de los derechos. La importancia de lograr este mismo objetivo pasó a los medios digitales y aumento debido al gran auge que han tenido los medios de comunicación digital. sino para desalentar a aquellos que pudieran intentar robarlo.en ambas formas. no sólo para establecer su propiedad. son casi tan antiguas como la fabricación de papel.” Esta definición incluye muchas actividades y se requiere de diferentes tipos de procesos y herramientas para conseguir cada una de sus partes. también desea que su trabajo no sea mal utilizado. Los materiales digitales se pueden analizar como señales en varios aspectos y muchas de las teorías señales aplican en ellos. origen o autenticidad. monitoreo seguimiento de todas las formas de uso de derechos sobre ambos activos. 10 . La protección a los derechos de Autor y Autenticación son tan importantes y tan antiguos como el papel y a lo largo de la historia han existido diferentes métodos para garantizar que se puede demostrar la autenticidad y el origen de una obra. Durante cientos de años.Inserción de Información Oculta en Archivos PDF 2011 2 Autenticación y Derechos de Autor en Archivos Digitales El dueño de una obra o de los derechos de autor de un documento digital espera poder tener una retribución económica. video. identificación. Los métodos más estudios son las marcas de agua. rastreo. social o un reconocimiento a su trabajo. los métodos de firma y los métodos de control de archivos digitales. La importancia de la originalidad y veracidad de las cosas a pasado de los medios impresos y se ha convertido en parte vital de los medios digitales.

El dominio de una trasformación es el convertir la señal digital por medio de una función a otra señal con diferentes propiedades. El dominio espacial se refiere al espacio donde la señal digital existe. Las marcas de agua que se aplican a los diferentes medios son diferentes entre sí por lo que se separan según el medio. Imagen 2-1 Clasificacion de Marcas de Agua El dominio se refiere al lugar en donde se inserta la marca de agua. semi-frágil y robusta dependiendo de su función. También es posible agregar marcas de agua a otros medios digitales pero su desarrollo no es muy grande. En un audio es el valor del sonido que se reproduce. el tipo de material digital a proteger. la percepción humana y a su aplicación [G]. Es posible que para diferentes aplicaciones se tengan características completamente diferentes. en un video es parecido a la imagen más la localización de la imagen en el tiempo. Las marcas de agua sirven para identificar al origen. La percepción de refiere a si la marca de agua es visible para el ojo humano o no. destino o autenticidad de un material digital. 11 . sin embargo los medios digitales de audio y los de texto son diferentes. Las marcas de agua se utilizan para las siguientes funciones: Protección de derechos de autor: se incluye en los medios digitales una marca de agua que permita demostrar u obtener la información de la autoría u origen de un material digital. Cuando una marca de agua es invisible también se suele subdividir a las marcas de agua en frágil. en una imagen es el nada de bits de brillo de cada punto. Además de esta clasificación también se encuentran las clasificaciones por objetivo a proteger y por medio de detección. Las características de una marca de agua dependerán de su aplicación. Para detectar una marca de agua se tienen dos formas principales las marcas de agua ciegas y las no ciegas. Las marcas de agua se clasifican por el dominio de inserción. 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 ciegas son la que no necesitan de tener el medio digital original para corroborar si existe una marca de agua.Inserción de Información Oculta en Archivos PDF 2011 El objetivo de las marcas de agua es introducir una señal en el material digital de tal forma que esta señal sea un método confiable para la protección del material digital contra su uso ilegal. Las imágenes y los videos son muy parecidos.

Esto sirve para garantizar que un medio no ha sido alterado en su composición. 1. Esto nos ayuda a mantener los derechos de autor de un material.2 Seguridad persistente en los documentos Una solución mucho más eficaz para la protección de un documento electrónico es asignar los parámetros de seguridad como una parte integral del propio documento.¿Qué ha hecho con el destinatario del documento? Integridad . Las marcas de agua son frágiles cuando al más mínimo cambio en la señal portadora. Los criterios siguientes se definen la seguridad persistente de los documentos. sin embargo en el ámbito del texto o los documentos electrónicos no existen grandes avances al respecto. la marca de agua se destruye y ya no es detectable. 6. 2.¿Cómo sabes si el documento ha sido alterado? Autenticidad . Monitorio de la Difusión: se pueden diseñar métodos de supervisión automatizados que puedan revisar si un material está siendo distribuido de la manera en que se haya contratado el servicio de publicación. 3. Las marcas de agua son robustas cuando se diseñan para que soporten un gran número de cambios en la señal portadora haciendo que la marca de agua persista y sea detectable hasta que la señal deje de ser útil debido al número de modificaciones.¿Cómo sabes que el documento de vino? No repudio .¿Puede el firmante negar la firma del documento? 12 . 4. 2. Control de Copias: las marcas de agua pueden contener información que evite que los equipos o sistemas de reproducción puedan copiar el material protegido por la marca de agua.Inserción de Información Oculta en Archivos PDF 2011 Identificación: se utiliza para identificar a los usuarios o compradores de un medio y así saber si alguien hace mal uso de un material digital. Las marcas de agua son semi-frágiles cuando están planeadas para soportar las modificaciones más comunes sin desaparecer pero con cambios más notorios la marca se destruya. Confidencialidad . En la actualidad existen muchos usos para las marcas de agua en diferentes medios (imágenes. audio y video).¿Qué permisos tiene el usuario tiene para trabajar con el documento? Rendición de cuentas . 5. Autenticación: Se agrega la marca de agua frágil para poder garantizar que un medio no ha sido modificado son el consentimiento de su autor.¿Quién debe tener acceso al documento? Autorización .

Inserción de Información Oculta en Archivos PDF 2011 Imagen 2-2 Ciclo de vida de la seguridad persistente de un documento 2. los simétricos y los asimétricos 13 . Los Principios de Kerckhoff establecen que la clave es la única parte de un sistema criptográfico que debe permanecer en secreto para que todo el sistema sea seguro. los expertos en seguridad están de acuerdo con los principios de "Kerckhoff" como la base de un sistema de cifrado eficaz. La criptografía se refiere a los dos procesos de cifrado y descifrado y su aplicación se conoce como un sistema de cifrado. La encriptación es una técnica eficaz para la gestión de acceso a los documentos. Hoy en día.1 Control de Documentos Confidencialidad . Si la fuerza del sistema de cifrado se basa en el hecho de que un atacante no sabe cómo funciona el algoritmo.2. Existen dos tipos de métodos de cifrado. Los sistemas de cifrado más populares utilizan el concepto de llaves. Una clave de cifrado son datos que se combinan con un algoritmo de cifrado para. entonces es sólo cuestión de tiempo antes de que se pueda hacer la ingeniería inversa y romper el método de cifrado. y recuperar texto plano de un texto cifrado. crear un texto cifrado a partir de texto. El descifrado es el proceso inverso que transforma el texto cifrado de nuevo al texto original.Cifrado El cifrado es el proceso de transformación de la información (texto plano) en una forma incomprensible (texto cifrado).

Cuando alguien desea enviar a la persona con la llave privada un mensaje confidencial.2 Control Dinámico de documentos El control dinámico documento mantiene los derechos de acceso y permisos asignados a un documento electrónico una vez que ha sido publicado y distribuido. Hoy en día los algoritmos simétricos comunes son AES. 3DES. Del mismo modo. a continuación.Inserción de Información Oculta en Archivos PDF 2011 Claves simétricas: la criptografía de llave simétrica utiliza la misma clave para cifrar y para descifrar y es muy rápido y difícil de romper cuando se usan llaves grandes. también llamada criptografía de llave pública. Las llaves asimétricas ayudan a resolver el problema de distribución de claves. Claves asimétricas: la criptografía de llave asimétrica. entonces la segunda llave de la pareja descifra el contenido. si la primera llave cifra el contenido. la primera llave se debe utilizar para descifrar el contenido. si la segunda llave se utiliza para cifrar la información. pero los algoritmos tienden a ser más lentos. DES. mientras que la llave pública se distribuye gratuitamente a otros que deseen comunicarse con la persona que tiene la privada. rellenar campos. Normalmente. la distribución de llaves se convierte en un problema. como ambas partes tienen la misma llave para una comunicación efectiva que se produzca. Un individuo mantiene en secreto la llave privada. Debido a que el individuo es el único que tiene la llave privada. él o ella pueden cifrar con la llave pública libremente disponible y enviar el texto cifrado al individuo. y así sucesivamente con cada acción posible en el documento. y RC4. añadir comentarios o anotaciones en el documento.2. las organizaciones obtienen protección adicional a través de la autorización. remitir el documento. Los permisos se pueden especificar si un destinatario que tiene acceso al documento está autorizado a imprimir o copiar el contenido. Sin embargo. insertar o eliminar páginas. El autor de un documento puede realizar cambios en un documento dado a conocer sin tener que redistribuirlo manualmente ya que los cambios se envían automáticamente a todas las versiones existentes del documento. Por ejemplo. utiliza un par de llaves para el cifrado y descifrado. Algunos algoritmos asimétricos comunes son RSA. sin importar su lugar de residencia. él o ella es el único que puede descifrar el contenido. DSA y El Gamal. Permisos Los permisos rigen la actuación de un usuario al trabajar con un documento protegido. Autorización Además de manejar quien puede abrir un documento. 2. La autorización específica lo que un usuario puede hacer con un documento y se logra a través de permisos y control dinámico de documentos. firmar digitalmente el documento. Usando el control de documentos dinámicos. una de las claves del par se etiqueta como la llave pública y la otra como la llave privada. las 14 .

Gestión de acceso fuera de línea Las organizaciones pueden administrar la duración que un destinatario autorizado puede tener un documento fuera de línea. el acceso a un documento puede ser revocado automáticamente si un destinatario autorizado abandona el proyecto o cambia de departamento. Cualquier cambio de acceso o permisos que el autor haya realizado en el documento distribuido se aplicará cuando el destinatario este de nuevo en línea. El control persistente de versiones funciona manteniendo el control de versiones fuera del sistema y fuera de línea. 2.3 Rendición de cuentas La auditoría de documentos permite a las organizaciones mantener la responsabilidad de los usuarios con respecto a la utilización de documentos protegidos. en línea o no. y en varios documentos. O bien. Por ejemplo. siempre y cuando un documento se Mantenga dentro de los límites del sistema. Control persistente de versiones Los sistemas de gestión de documentos y de contenido proporcionan un mecanismo eficaz de control de versiones. ya que se pueden conocer con precisión a los involucrados con un documento: ¿Cómo un destinatario ha utilizado un documento? ¿Con qué frecuencia se produjo cada tipo de uso? ¿Cuando ocurrió el uso del documento? La rendición de cuentas se logra cuando un autor puede rastrear el uso de cada destinatario de un documento para cada permiso asignado (por ejemplo. Una vez que la longitud de tiempo ha pasado. Caducidad de Documento y revocación El control posterior a la publicación del documento se puede mantener a través de la aplicación de fechas de vencimiento y la posibilidad de revocar el acceso a un documento. un autor puede enviar un documento que expirará dentro de dos semanas para que los destinatarios no puedan tener acceso a él una vez que la fecha de caducidad ha pasado. permitir que un usuario rellene los campos 15 .2.Inserción de Información Oculta en Archivos PDF 2011 organizaciones pueden gestionar y supervisar el uso de documentos electrónicos dentro y fuera del firewall. Permite a los autores del documento realizar cambios en las políticas de uso de un documento y evitar que la versión obsoleta se acceda por los usuarios finales mientras se actualiza la versión. 2. el destinatario ya no puede ver el documento y tiene que ir de nuevo al sistema en línea para obtener el acceso. 3. El control dinámico documento incluye las siguientes capacidades: 1.

los beneficiarios tienen más seguridad de que la información financiera no se ha modificado desde que fue enviado. Los algoritmos comunes de hash son MD5. SHA-1 y SHA-256. Los métodos para mantener la integridad son:    Bits de paridad o funciones de comprobación de redundancia cíclica (CRC) Funciones del CRC funcionan bien para las modificaciones no intencionales. Con un hash adjunto al mensaje original. 2. y adjuntar un nuevo hash. modificarlo. guardar una copia.Inserción de Información Oculta en Archivos PDF 2011 en un formulario.4 Firmas digitales Cuando las empresas distribuyen documentos electrónicamente. Un hash es como una huella digital única. la autenticidad y no repudio. Hash unidireccionales Un hash de un solo sentido crea un valor de longitud fija. etc. reenviar. un representante de servicio al cliente envía un cliente una declaración electrónica con tiempo crítico que requiere una acción por parte del cliente. se notifica automáticamente al representante cuando el cliente lo abre. como una respuesta o firma digital.2. Por ejemplo. Por ejemplo. debido a su amplia aceptación como un estándar de seguridad. Si el cliente no puede abrir el documento. una clave simétrica está contenida en el MAC y luego se realiza un hash 16 . cuando una firma digital se aplica a los estados financieros trimestrales. imprimir. un receptor puede determinar si el mensaje ha sido alterado al volver a calcular el hash y comparar su respuesta con el hash adjunto. llamada el valor hash o resumen del mensaje de un documento de cualquier longitud. Una vez que el cliente recibe el documento electrónico. 2. Adobe ha adoptado los algoritmos SHA-1 y SHA-256.) La auditoría debe incluir notificaciones automáticas sobre el uso de los documentos protegidos.5 Integridad Las firmas digitales permiten a los beneficiarios verificar la integridad de un documento electrónico que se utiliza en un solo sentido o flujos de trabajo de ida y vuelta. En este caso.  Códigos de autenticación de mensajes (MAC) Un MAC evita que un atacante pueda obtener el mensaje original. a menudo es importante que los destinatarios puedan verificar lo siguiente:    Que el contenido no ha sido alterado (integridad) Que el documento proviene de la persona real que lo envió (autenticidad) Que un individuo que ha firmado el documento no puede negar la firma (no repudio) Las firmas digitales son una buena solución frente a estos requisitos de seguridad al ofrecer mayores garantías para la integridad de los documentos.2. el se notifica al representante 24 horas después. pero pueden ser eludidas por un atacante inteligente de modificación.

509 es un estándar ampliamente aceptado y es el metido de certificado de Adobe utiliza. Adobe utiliza HMAC en su caso. El apoyo a este servicio es a menudo impulsado por la autentificación y las capacidades de marcado de tiempo. Como parte del proceso de autenticación de un certificado digital. la autoridad competente revocará el certificado y registra la revocación. La firma se incluye en el documento. 2. él o ella es el único que puede descifrar el mensaje. X. La autoridad certificadora (CA) expide los certificados y los receptores deben confiar en la CA que emitió el certificado. Para el cifrado de documentos. Si el certificado caduca o una clave privada se ve comprometida. Las firmas digitales se crean utilizando criptografía de clave asimétrica.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.2.8 Infraestructura de clave pública (PKI) La infraestructura de clave pública (PKI). Debido a que los destinatarios del documento tienen la clave pública del autor. Debido a que el receptor es la única persona con la clave privada. un atacante no puede crear un nuevo mensaje. Sólo la clave pública correctamente puede descifrar el hash y lo utilizan para ver si coincide con un nuevo hash del documento.Inserción de Información Oculta en Archivos PDF 2011 (HMAC). El autor cifra el hash del mensaje con una clave privada. principalmente ofrece un certificado digital que permite a los receptores de un documento saber si una clave pública específica pertenece realmente a un individuo específico. el autor de un documento cifra un documento usando una clave pública. El proceso que constituye una firma digital es el siguiente:    Un hash se crea son el documento original. Sin la llave. La firma digital es creada al cifrar el hash con una clave privada.6 Autenticidad Las firmas digitales proporcionan la autenticidad de un documento mediante la verificación de la identidad digital de un firmante. los receptores pueden verificar el estado del certificado. 2. Las firmas digitales permiten verificar la integridad de un documento electrónico. Los certificados digitales se unen a una persona (o entidad) y a una clave pública. una firma digital de los estados financieros trimestrales permite a los beneficiarios verificar la identidad del remitente y les asegura que la información financiera no se ha modificado desde que fue enviado. Por ejemplo.2.2. 2. Certificado de validez se puede comprobar mediante los métodos estándar siguientes:  Certificado de lista de revocación (CRL) Protocolo de estado de certificados en línea (OCSP) 17 . que obtienen una mayor seguridad de que la persona que firmó el documento era la persona que cifró el valor hash original.

Inserción de Información Oculta en Archivos PDF

2011

3 Esteganografía y los Medios Digitales
El manejo de los derechos de autor dentro de los documentos digitales es abordable por
diferentes métodos y técnicas para garantizar varias de las partes del manejo de derechos
digitales. La esteganografía es una herramienta que permite crear métodos de control para las
diferentes partes que se contemplan en un método persistente para la seguridad de los
documentos.
La esteganografía es el arte de ocultar información dentro de un medio de tal forma que esta sea
imperceptible dentro del medio oculto. La imperceptibilidad que conlleva la esteganografía es la
propiedad que permite crear sistemas con alto grado de seguridad para evitar que algún atacante
sea capaz de modificar los mecanismos internos que se establecen para proteger un documento.
La esteganografía se puede utilizar para autenticar un documento introduciendo información de
control en el mismo, incluso es posible introducir otros métodos de seguridad como marcas de
agua para autenticar un documento. También es posible utilizar la esteganografía para introducir
información sobre el origen del documento y sobre el método de distribución para validar
permisos o integridad.
Otro método posible es el de embeber el mismo documento en sí mismo para poder validar su
integridad e incluso indicar el lugar donde existan las modificaciones. También es posible crear un
método en el que se pueda rastrear los diferentes cambios que se le han hecho al documento por
los diferentes usuarios con acceso al documento.
Los posibles sistemas que permite crear la esteganografía son capases de cubrir todos los aspectos
del manejo de derechos digitales y crear sistemas de seguridad persistentes que no usen
estructuras especificas dentro del documento que puedan ser modificadas o burladas por los
atacantes.
Entre las diferentes opciones para poder insertar información oculta dentro de un documento
podemos encontrar el uso de códigos para representar datos, la modificación de parámetros del
formato del documento para indicar bits de datos, la modificación de imágenes o la inserción de
información oculta de dentro de los parámetros de creación del mismo documento. Además de las
investigaciones, también existen aplicaciones comerciales que utilizan medios digitales como
portadoras de mensajes ocultos. Primero analizaremos las diferentes investigaciones y
posteriormente enumeraremos algunas de las aplicaciones que existen actualmente.

3.1 Autenticación Basada en el Contenido
La autenticación basada en el contenido es el método de autenticar un documento utilizando la
misma información que describe al documento, en lugar de utilizar una cadena binaria que
represente al documento. Este método permite tener una robustez en el autenticador que
permanece valida a pesar de cualquier cambio en el formato o transformación que ocurra en el
documento.
18

Inserción de Información Oculta en Archivos PDF

2011

En el presente trabajo abordamos la opción de insertar información dentro de los parámetros que
describen y crean un documento PDF.

3.2 Codificación por Cambio de Líneas
En esta codificación se pretende modificar la distancia en la que pintan los renglones entre sí. Para
poder decodificar el mensaje contenido en un archivo es necesario digitalizarlo si se a impreso y
medir la distancia entre los renglones para determinar si se a insertado información. De esta
forma es posible insertar N bits de información dependiendo de N líneas que tenga una hoja. En
este proceso se tiene un número limitado de espacios para colocar información.

3.3 Codificación por Cambio de Palabras
En esta aproximación fue presentada junto a la codificación por cambio de líneas pero en esta se
necesita cambiar la posición de las palabras acercándolas o alejándolas entre sí. Este método
permite tener más espacio para introducir información, sin embargo como muchos programas
utilizan espacios dinámicos para mostrar las palabras se necesita tener el texto original para poder
comparar si ha habido cambios en el documento. Un atacante a este método necesita mas
esfuerzo para eliminar la seguridad.

3.4 Codificación de Características
En este método se aprovechan las características de las fuentes, letras, coles y tamaños que tiene
un documento. En este método se modifican las características de algunas de las letras para
codificar información. En el archivo se incluyen las fuentes modificadas y no es necesario modificar
todas las partes del documento. Para que un atacante pueda modificar la información en este
método es necesario que sepa cuales letras han sido modificadas y tener la fuente original para
comparar.
En esta codificación de características es posible explotar cualquier característica que describa el
texto a mostrarse. Un ejemplo es el manejo de las métricas de las palabras para insertar
información. Las métricas son los espacios que utilizan el programa o lenguaje descriptor para
indicar la distancia entre un carácter y otro.
Dentro de estas métricas es posible introducir más información que en cualquier otra
aproximación ya que es posible insertar la información de un carácter completo en lugar de un bit
por cada letra.
Además es posible indicar un desorden en el pintado de los caracteres del documento de tal forma
que al abrirlo directamente no se pueda entender el orden de pintado y sea solo visible el texto al
abrirlo a través de la aplicación intérprete común disuadiendo a los posibles atacantes a modificar
el archivo.

3.5 Aplicaciones de Esteganografía
En la actualidad existen varios programas que ofrecen servicios de esteganografía en diferentes
medios digitales como imágenes, archivos y videos. Algunos de ellos se muestran en la Tabla 3-1.
19

Inserción de Información Oculta en Archivos PDF
Programa
Steganoptic 0.1[1]
Cloack 7.0[2]

CryptoMX[3]

2011

Plataforma
Windows/Linux
Windows

Descripción
Permite agregar mensajes ocultos en imágenes GIF
Permite cifrar y ocultar archivos dentro de imágenes
BMP. Utiliza algoritmos de cifrado Cloak-128,
Blowfish y Mercury
Windows / Linux / Es una colección de herramientas de criptografía y
Mac
esteganografía 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 imágenes

Dound’s
Steganography[4]
Hide in Picture Windows
(HIP) 2.1[5]
UnderMP3Cover[6] Linux

Permite guardar archivos en mapas de bits utilizando
una contraseña.
Permite ocultar archivos o texto en archivos MP3
dependiendo de su tamaño
S-Tools[7]
Windows
Es una herramienta que permite ocultar archivos
dentro de imágenes, videos o archivos de audio. Se
pueden ocultar varios archivos e incluso ocultarlos al
mismo tiempo.
Wodax[8]
Linux
Es una aplicación que permite guardar un archivo de
texto plano en una imagen PNG. Está escrito en C++
y ha sido probado en Gentoo, Debian y Ubuntu.
MP3Stego[9]
Windows
Es un Programa que permite ocultar información
dentro de un archivo MP3. La información es
comprimida y cifrada antes de introducirla en el
archivo.
Invisible Secret[10] Windows
Es un programa que permite esconder información
dentro de archivos de imágenes, de audio y HTML.
La información se cifra antes de guardarla en el
archivo.
InvisibleInk[11]
Windows/Linux/MAC Es un Programa hecho en Java que permite
introducir información dentro de archivos BMP y
cifrarlos con una contraseña.
Hermetic Stego[12] Windows
Es un programa que permite introducir un archivo de
cualquier tipo dentro de una o varias imágenes BMP
utilizando un método aleatorio por medio de una
clave. El método aleatorio permite evitar la
detección de la información por aplicaciones de
análisis estadístico.
BitCrypt[13]
Windows
Es u programa que cifra texto plano y lo introduce
dentro de imágenes de mapa de bits.
Bon Kyu Bon[14]
Windows
Es un programa que permite introducir texto dentro
de archivos de diferentes tipos; BMP, GIF, TIF, PNG,
WAV, MID and .NET Assemblies.
SteganoG[15]
Windows
Es un programa que guarda información en mapas
de bit y permite utilizar algoritmos de cifrado; RC4,
20

es posible utilizar una clave para ocultar y recuperar el archivo. 21 . La mayoría de los programas son parecidos en los métodos que utilizan y los archivos que puede utilizar. La imagen se puede convertir de nuevo en archivo indicando la llave del cifrado. Los programas que pueden insertar información en documentos de texto son pocos y en el caso de Archivos PDF no hay una implementación específica.Inserción de Información Oculta en Archivos PDF PicCrypto[16] Windows Camouflage[17] Windows P2Stego[18] Windows Xiao Steganography[19] Windows 2011 Blowfish. En el capítulo siguiente se describen las características y partes de un archivo PDF. Es un programa que cifra y convierte cualquier archivo en una Imagen BMP utilizando una llave. Es un programa que permite guardar información en archivos BMP o de Audio. por lo general se utilizan archivos de imágenes. Tabla 3-1Programas de Esteganografía En la tabla anterior se enumeraron varios programas que utilizan esteganografía. Es un programa que Permite Guardar texto en un Archivo cualquiera. audio y video [20]. Twofish y Skipjack. Es una aplicación que permite ocultar cualquier archivo en cualquier otro archivo. Se puede indicar una contraseña para recuperar el mensaje. TEA.

dibujos. formación y herramientas de soporte técnico. Accesible: los documentos PDF utilizan tecnologías de asistencia para facilitar el acceso a la información a personas con discapacidades. vídeos. visualizar o modificar documentos en formato PDF. gráficos en color. que incluyen creación.000 proveedores en todo el mundo ofrecen soluciones basadas en PDF. independientemente de la aplicación utilizada para crearlos y de si se han compilado en una sola cartera PDF a partir de múltiples formatos. mapas. así como compartirla con prácticamente cualquier persona en cualquier sitio. enlaces y miniaturas de páginas. Mac OS y plataformas móviles como Android™. incluidas Windows®. elementos multimedia como vídeos o sonido. se han generado herramientas de software libre que permiten crear. Mantenida por la Organización Internacional de Estandarización (ISO). contenidos multimedia. 4. junto con los innumerables archivos PDF en administraciones públicas y negocios. Seguridad: Puede cifrarse para proteger su contenido e incluso firmarlo digitalmente.org y el procesador de textos LaTeX. Un ejemplo es la suite ofimática OpenOffice. fotos e incluso lógica empresarial. 3D. la norma ISO 32000 seguirá desarrollándose para cumplir los objetivos de proteger la integridad y longevidad del formato PDF. Extensible: más de 2. consultorías. Fiable: el hecho de que haya más de 150 millones de documentos PDF para uso público circulando en la red hoy en día. es la prueba de la cantidad de organizaciones que confían en este formato para transmitir información. Capacidad de búsqueda: las funciones de búsqueda de texto en documentos y metadatos facilitan las búsquedas en los documentos PDF. elementos de hipertexto como vínculos y marcadores. es el estándar mundial que permite capturar y revisar información sofisticada desde cualquier aplicación y en cualquier sistema informático. 22 . plug-ins. texto.Inserción de Información Oculta en Archivos PDF 2011 4 Estructura de los archivos PDF El formato de documento portátil (PDF) fue inventado por Adobe Systems y ha sido perfeccionado durante 17 años. Sofisticado en cuanto a la integridad de la información: los archivos PDF tienen el mismo aspecto y muestran la misma información que los archivos originales como. Flexible: Puede ingerir cualquier combinación de texto.1 Características Las características que los archivos PDF ofrecen son: Estándar abierto: el formato PDF es ahora un estándar formal abierto conocido como ISO 32000. lo que proporciona un estándar abierto para los más de mil millones de archivos PDF que existen hoy en día. por ejemplo. Multiplataforma: los archivos PDF se pueden visualizar e imprimir desde prácticamente todas las plataformas.

5 -3. Todo el texto contenido en un Archivo PDF se analiza para determinar si es un objeto y que tipo de objeto es. cadenas de texto. números enteros y reales. El rango y la precisión pueden ser limitados por la representación interna usada por la computadora en la que se ejecuta el lector compatible.0 23 . final o incrustado. cadenas y objetos nulos. 4. 4. En un archivo PDF aparecen indicados por las palabras claves de “true” y “false”.2. nombres. Cuando se desea agregar un comentario se utiliza el símbolo de porcentaje al principio de la línea. El valor será tratado como un entero decimal con signo y debe ser convertido a un objeto entero. Los objetos deben de ser marcados para poder ser referenciados por otros objetos. Un Entero se escribe como uno o más dígitos decimales opcionalmente precedidos por signo.002 0. formas de creación de un archivo PDF y de los objetos que lo componen.Inserción de Información Oculta en Archivos PDF 2011 Portabilidad: Los ficheros PDF son independientes del dispositivo. Un archivo PDF está definido por el estándar ISO 32000 en el que se especifican las partes. Los objetos en un archivo PDF se escriben con ciertas reglas que aplican para cualquier tipo de objeto.62 +123.6 4 -.2 Objetos Numéricos PDF provee de dos tipos de objetos numéricos. todo el texto que siga después de este símbolo y hasta el fin de la línea se descarta del proceso de análisis. Para la optimización de la impresión podremos configurar las opciones de creación del fichero PDF.2 Objetos del Estándar PDF ISO 32000 Los archivos PDF incluyen ocho tipos básicos de objetos. 4. siempre y cuando el símbolo de porcentaje no se encuentre dentro de un objeto de cadena de texto ni de cadena. valores lógicos. el mismo archivo puede imprimirse en una impresora de inyección de tinta o una filmadora. Un objeto marcado es llamado un objeto indirecto.2. Ejemplo 2 Objetos Reales 34. El valor debe ser tratado como un número real y debe ser convertido a un objeto real. enteros y reales. arreglos. diccionarios. Cada objeto tiene una sintaxis que lo identifica y ayuda al lector a decodificar el archivo correctamente. Ejemplo 1 Objetos Enteros 123 43445 +17 -98 0 Un valor Real se escribe con uno o más dígitos decimales con un signo opcional y un punto inicial.1 Objetos Lógicos Los Objetos Lógicos se representan por los valores de verdadero y falso.

  Como una secuencia de caracteres literales encerrados por paréntesis. Ejemplo 1 Los siguientes son valores de literales validos (This is a string) (Strings may contain newlines and such. Este tipo de objetos se puede escribir utilizando una de estas opciones. Como una información hexadecimal encerrada en llaves de Angulo <> 4. El siguiente carácter al símbolo de escape (\) determina la interpretación que el lector le dará como se en la tabla 4-1.1 Cadenas Literales Una cadena literal debe de ser escrita como un número arbitrario de caracteres encerrados entre paréntesis.3 Objetos de Cadena de Texto Un Objeto de Cadena de Texto consiste en una serie de cero o más bytes.) (Strings may contain balanced parentheses ( ) and special characters (*!&}^% and so on).) (The following is an empty string. Cualquier carácter puede aparecer en una cadena. ni el símbolo de barra invertida “\” (5Ch).3.Inserción de Información Oculta en Archivos PDF 2011 Aunque Objeto Numérico es parte del estándar. Secuencia Interpretación \n Salto de línea (0Ah) (LF) \r Vuelta de Carro (0Dh) (CR) \t Tabulador Horizontal (09h) (HT) \b Retroceso (08h) (BS) \f Entrada de Formulario (FF) \( Paréntesis Izquierdo (28h) \) Paréntesis derecho (29h) \\ Barra Inversa (5Ch) (Backslash) \ddd Código de caracter ddd (octal) Tabla 4-1 Secuencia de escape en cadenas literales 24 . Los Objetos de Cadena de Texto no son objetos de tipo entero pero son almacenados en un formato más compacto. este puede significar cualquiera de los dos anteriores.2.) () (It has zero (0) length. 4.2.) Dentro de una cadena literal se utiliza la barra invertida como carácter de escape. Si el carácter subsecuente a la barra invertida no pertenece a ninguno de los mostrados en la tabla se ignorara al símbolo de escaque (\). excepto paréntesis no balanceados.

Atómico significa que no posee estructura interna. Los espacios dentro de un objeto nombre se deben de indicar con la codificación hexadecimal de dos dígitos y no puede haber espacio en blanco entre el símbolo de barra y el comienzo del nombre. Cualquier carácter regular en un nombre (excepto el símbolo de números) deber ser escrito como es o utilizando su código hexadecimal de dos dígitos precedidos por el símbolo de números (#). Cualquier carácter que no sea regular debe de ser escrito usando su código hexadecimal de dos dígitos precedido por el símbolo de números (#). 4. En caso de la falta de un digito para completar un par se sobre entiende que es 0. Ejemplo 2 These \ two strings \ are the same.2 los objetos nombre son símbolos atómicos definidos únicamente por una secuencia con cualquier carácter.2. 25 . 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:    Un símbolo numérico en un nombre debe de ser escrito usando su código hexadecimal de 2 caracteres (23h).2 Cadenas Hexadecimales Las cadenas también pueden ser escritas de forma hexadecimal que es útil para guardar información binaria arbitraria en un archivo PDF. La barra invertida al final de una línea indica que la cadena literal continúa en la siguiente renglón. Los caracteres regulares fuera del rango del símbolo de admiración (21h) (¡) y la tilde (7h) (~) deben ser escritos con su código hexadecimal. entrada de línea y entrada de formulario son ignorados. Una cadena hexadecimal debe escribirse como una secuencia de dígitos hexadecimales codificados como caracteres ASCII y encerrado entre símbolos <>. UN lector compatible ignora la barra invertida seguida del símbolo de fin de línea para crear una cadena de texto que no ha sido segmentada.4 Objetos Nombre Comenzando en la versión 1. los espacios.2. Ejemplo 1 <4E6F762073686D6F7A206B6120706F702E> Cada par de dígitos hexadecimales definen un byte de la cadena. precedido por el signo de números (#).3.) 4. Únicamente definidos significa que dos objetos nombres hechos con la misma secuencia de caracteres denotan al mismo objeto. tabuladores vuelta de carro.Inserción de Información Oculta en Archivos PDF 2011 Un programa compatible que escriba archivos PDF debe de dividir las cadenas Literales en varias líneas. Cuando se escribe un Objeto Nombre en un Archivo PDF se debe de comenzar con el símbolo de barra (/). excepto el carácter nulo (0h).) (These two strings are the same.

4. aunque al momento de ser escrito el archivo se tenga un orden este será ignorado. los arreglos en PDF pueden ser heterogéneos. 26 . esto es que los elementos en el arreglo puede ser de cualquier tipo. Múltiples entradas en el mismo diccionario no deben tener el mismo nombre.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 atómicos y nunca son tratados como texto que se mostrara al usuario ni a alguna aplicación externa.Name_With-Various***Characters? 1.0 y 1. La llave debe ser un objeto nombre mientras que el valor puede ser cualquier tipo de objeto PDF.14 false (Ralph) /SomeName] El formato PDF solo soporta arreglos unidimensionales. Ejemplo 1 [549 3.Name_With-Various***Characters? /1.6 Objetos Diccionario Un objeto diccionario es una tabla asociativa que contiene pares de objetos.Inserción de Información Oculta en Archivos PDF 2011 El símbolo de barra (sin ningún carácter posterior) introduce un nombre único válido definido por la secuencia vacía. Las entradas de in diccionario representan una tabla asociativa y como tal se encuentra desordenada. Los ejemplos de la tabla con el símbolo # no son válidos en las versiones 1.2.2. Para crear arreglos con más niveles se necesita introducir arreglos como elementos anidados a cualquier nivel.2 /$$ /@pattern ASomewhatLongerName A. incluso más arreglos. Sintaxis del nombre literal Nombre resultante /Name1 Name1 /ASomewhatLongerName /A. A diferencia de los arreglos en otros lenguajes de computadora. Un arreglo debe escribirse como una secuencia de objetos encerrados en Paréntesis Cuadrados ([ y ]) (5Bh y 5Dh).2 $$ @pattern /. Una entrada de diccionario con valor nulo es tratada como si la entrada no existiera.notdef .5 Objetos Arreglo Un objeto arreglo es una colección unidimensional de objetos arreglados secuencialmente.1. 4. El primer elemento del de cada entrada es la llave y el segundo elemento es el valor. conocidas como entradas del diccionario.

Ejemplo << /Type /Example /Subtype /DictionaryExample /Version 0. Sin embargo un objeto cadena no tiene limitaciones de longitud a diferencia de la cadena de texto que tiene limitaciones según la implementación. es una secuencia de bytes.01 /IntegerItem 12 /StringItem (a string) /Subdictionary << /Item1 0. 4. La entrada “Type” no es requerida a menos que la descripción de un objeto indique sea así. La secuencia de bytes que dan forma a la cadena residen entre un marcador de línea después de “stream” y la palabra clave “endstream”. por lo que cualquier valor es válido. o de un salto de línea solo. Ejemplo dictionary Stream …Zero or more bytes …endstream Todas las cadenas deben ser objetos indirectos mientras que el diccionario debe ser un objeto directo.4 /Item2 true /LastItem (not!) /VeryLastItem (OK) >> >> Los objetos diccionario son los bloques de construcción principales de un documento PDF. y no solo por una vuelta de carro. debe estar seguida de un marcador de fin de línea consistiendo de un símbolo de vuelta de carro y salto de línea. especifica el tipo de objeto que el diccionario describe. En algunos casos la entrada “Subtype” o “S” se utilizan para identificar una subcategoría especializada del objeto general. El contexto en el que se agrega una cadena determina que es lo que representa la secuencia de bytes. El valor de la entrada “Type” puede ser inferido casi siempre por el contexto y su utiliza más para documentación y corrección de errores.2.Inserción de Información Oculta en Archivos PDF 2011 Un diccionario debe de ser escrito como una secuencia de pares Llave-Valor encerradas en paréntesis angulares dobles (<<…>>). Por convención la entrada “Type” en un diccionario. El valor de la entra “Type” y ”Subtype” debe de ser un objeto de tipo nombre. Son usados comúnmente para reunir y atar juntos los atributos de objetos complejos en cada entrada del diccionario. Una cadena consiste de un diccionario seguido de cero o más bytes encerrados entres las palabras clave “stream” (seguida de una nueva línea) y “endstream”. el diccionario de 27 . si existe. los objetos potencialmente grandes. especificando el nombre y valor de un atributo.7 Objetos Cadenas Un Objeto Cadena. como imágenes o descripciones de página. Por esta razón. Tampoco existen valores correctos o no para esta entrada. al igual que una cadena de texto. deben ser representados como cadenas. después del diccionario. La palabra clave “stream”.

Por ultimo no debe haber ningún byte adicional diferente del espacio blanco entre “endstream” y “endobj”. Si existe esta entrada. Si hay varios filtros y cualquiera de ellos tiene valores diferentes a los predeterminados. Puede ser usada para determinar. Si ninguno de los filtros tiene parámetros. o un arreglo de nombres de filtros. por ejemplo. Tabla 4-3 Entradas Comunes al Diccionario de Cadena 28 . en cuyo caso puede ser omitida la entrada DecodeParms. Si sólo hay un filtro y ese filtro tiene parámetros.2) Un diccionario de parámetros o un arreglo de diccionarios de parámetros usados por los filtros especificados en “FFilter”. utilizados por los filtros especificados por “Filter”. DecodeParms debe estar establecido por el diccionario de los parámetros del filtro a menos que todos los parámetros del filtro tengan sus valores por defecto.Inserción de Información Oculta en Archivos PDF 2011 la cadena especifica el largo de la cadena. Cada diccionario de cadena debe contener una entrada “Length” que indica cuantos bytes del archivo PDF se usan para la información de la cadena. DecodeParms Diccionario Arreglo o (Opcional) Un parámetro diccionario o un arreglo de diccionarios. (Opcional. Llave Tipo Valor Length Entero (Requerido) El número de bytes desde el principio de la linea posterior a la palabra clave “stream” hasta el último byte antes de la palabra clave “endstream. PDF 1. PDF 1. Aplica las mismas reglas que “Filter”. (Debe existir un marcador de fin de línea adicional precediendo a “endstream”. DecodeParms será una matriz con una entrada para cada filtro: también un diccionario de parámetros para el filtro o el objeto nulo si el filtro no tiene parámetros (o si todos sus parámetros tienen valores por defecto). PDF 1.) Filter Nombre o Arreglo (Opcional) El nombre de un filtro que debe ser aplicado al procesar la información de la Cadena. o si todos los parámetros tienen valores por defecto. Tal vez no sea posible determinar este valor con precisión. o un arreglo de nombres de diferentes filtros ordenados en la secuencia en que serán usados. Debe existir un marcador de fin de línea entre la cadena y la palabra “endstream”. o (Opcional. si hay suficiente espacio en disco duro para escribir una cadena en un archivo. los bytes entre “stream” y “endstream” deben ser ignorados. Se aplican las mismas reglas que usa “DecodeParms”.5) Un entero no negativo representando el número de bytes en la cadena decodificada o filtrada. Este valor debe ser considerado como una pista para ciertos filtros de cadena. Los filtros que son aplicados a la información del archivo deben ser especificados por “FFilter” y los parámetros del filtro se especifican en “FDecodeParms.2) El nombre de un filtro que debe ser aplicado al procesar la información encontrada en el archivo externo de la cadena.2) El archivo que contiene la cadena de información.. la entrada DecodeParms puede ser omitida F Especificación Archivo FFilter Nombre o Arreglo FDecodeParm s Diccionario Arreglo DL Entero de (Opcional. (Opcional. PDF 1. este marcador no se contempla en el tamaño de la cadena. Sin embargo la entrada de Length debe seguir especificando el número de esos bytes. que no es considerado en la cuenta y no es parte de la información de la cadena. En la tabla 4-3 se muestra la lista de entradas comunes del diccionario de cadena junto con su tipo correspondiente.

todos los objetos indirectos poseen un número de generación igual a cero.2.5 pueden residir objetos indirecto dentro de cadenas. Pero esto es un requisito. los números de objeto pueden ser asignados en cualquier orden arbitrario. seguidos del valor del objeto encerrado entre las palabras clave “obj” y “endobj”. Una referencia indirecta debe de consistir de número de objeto. 29 .2. Un entero no negativo llamado “Numero de Generación”. Números de generación diferentes de cero pueden ser introducidos cuando el archivo es actualizado posteriormente. En un archivo PDF nuevo.Inserción de Información Oculta en Archivos PDF 2011 4. Una referencia a un objeto indirecto que no exista se tratara igual que un objeto nulo. El valor de este objeto es la cadena de texto Brillig Un objeto puede ser referenciado desde cualquier parte del archivo con una referencia indirecta. 4. la combinación de un numero de objeto y un numero de generación debe identificar únicamente a un objeto indirecto. numero de generación y de la palabra clave “R” (con espacios blancos separando cada parte). Ejemplo 2 Definición de referencia Indirecta 12 0 R A partir de PDF 1. Ejemplo 1 Definición de objeto indirecto 12 0 obj (Brillig) Endob El ejemplo se define un objeto con número de objeto 12 y numero de generación 0.8 Objetos Nulos El objeto nulo tiene un tipo y valor que son diferentes a aquellos de cualquier otro objeto Solo debe de haber un objeto de tipo nulo y se denota por la palabra clave “null”. Se referencian igual. Esto da al objeto un identificador único de objeto al cual otros objetos pueden referirse. La definición de un objeto indirecto debe consistir en su número de objeto y su número de generación separados por un espacio en blanco. Los objetos indirectos pueden estar numerados secuencialmente dentro del archivo PDF. Juntos. El identificador de objeto consta de dos partes:   Un entero Positivo llamado “Numero de Objeto”. Especificar al valor nulo como el valor de una entrada de diccionario es equivalente a omitir la entrada. y su número de generación debe de ser cero.9 Objetos Indirectos Cualquier objeto en un archivo PDF puede ser rotulado como un objeto indirecto. sin embargo su definición no debe incluir las palabras clave “obj” y “endobj”.

En el ejemplo 3 se muestra el uso de una referencia indirecta en la segunda línea para indicar la longitud de un objeto cadena. Ejemplo 3 diccionario. Esto permite a la aplicaciones que generan PDF en un solo paso dejar la especificación de la longitud de las cadenas después de haberlas terminado de escribir.Inserción de Información Oculta en Archivos PDF 2011 Una referencia indirecta a un objeto indefinido no debe de ser tratada como un error por un lector compatible. Uso de objetos indirectos para indicar la longitud de una cadena en un 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 % Una referencia Indirecta al objeto 8 %La longitud de la cadena precedente. debe de ser tratada como una referencia al objeto nulo. El valor de la entrada del diccionario de cadena es el valor entero que se encuentra después de la cadena. 30 .

páginas e imágenes. EL estándar ISO 32000 define a los Archivos PDF en cuatro partes principales que se muestran en la figura 4-1.1 Cabecera Es la primera línea de un archivo PDF y consiste de 5 caracteres (%PDF -) seguidos del número de versión de PDF utilizada para crear el archivo. representas componentes de un documento como fuentes.3 Estructura Todos los archivos PDF comparten la misma estructura interna independientemente de con que aplicación se haya creado. Imagen 4-1 Partes de un Archivo PDF 4. Esto garantiza un comportamiento correcto para las aplicaciones de transmisión de archivos que analizan el principio de los archivos para determinar si manejarlos como texto o como datos binarios 4. por lo menos. cuatro caracteres binarios cuyo valor se igual o mayor a 128. 31 . Los objetos.5 se cuenta con cadenas de objetos que se verán más adelante.3.Inserción de Información Oculta en Archivos PDF 2011 4.3.2 Cuerpo El cuerpo de un archivo PDF consiste de una secuencia de objetos indirectos que representan el contenido de un archivo. que describiremos en la siguiente sección. Si el archivo PDF contiene información binaria. la cabecera debe estar seguida de una línea comentada con. Desde la versión 1.

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. Un archivo puede contener varias secciones conteniendo la tabla de referencias cruzadas. lo que permite el acceso aleatorio a las entradas de la tabla. Ejemplo 1 Tabla de referencias cruzadas xref0 60000000003 65535 f 0000000017 00000 n 0000000081 00000 n 0000000000 00007 f 0000000331 00000 n 0000000409 00000 n Cada parte de la tabla de referencias debe de comenzar indicada por el texto xref. Para los archivos que nunca han sido actualizados de manera incremental. Después de esta indicación puede haber una o más subsecciones conteniendo las entradas de la tabla. por eso solo se indica el número de objeto del primero de la subsección. La tabla se compone de entradas de una sola línea para cada objeto indirecto. la primera indica que se definirá la ubicación de la tabla de referencias cruzadas (starxref) y la segunda indica donde empieza la tabla de referencias cruzadas con respecto al comienzo del archivo.3. solo debe existir una sola subsección en la que los objetos comiencen con el número cero.4 Trailer El Trailer permite a un lector de PDF encontrar rápidamente la tabla de referencias cruzadas y ciertos objetos especiales Los lectores de PDF que cumplan con el estándar deben de comenzar a leer el archivo desde el final. 32 .Inserción de Información Oculta en Archivos PDF 2011 4. en la sección de la tabla.3. Cuando se indica una subsección de la tabla se debe indicar el número del primer objeto y el número de objetos que contiene la sección. Si es “n” el objeto esta en uso. 4. indicando el desfase en Bytes dentro del cuerpo del archivo. Hay que notar que cuando un archivo PDF es modificado y se añade nuevo contenido. si está en “f” el objeto a sido eliminado y es posible usar su número de objeto. El final del Archivo contiene la indicación de fin del archivo (%%EOF) y dos líneas.3 Tabla de referencias cruzadas La tabla de referencias cruzadas contiene la información que permite el acceso aleatorio a los objetos indirectos en el archivo y así no tener que leer el archivo completo para encontrar un objeto en particular. Esta parte del archivo es la única con un formato explicito. Los numero de Objeto son consecutivos dentro de cada subsección. esto se debe a que los archivos PDF pueden ser actualizados. éste tendrá nuevas secciones de cuerpo. La tabla de referencias cruzadas indica el estado del objeto en el último carácter de la entrada.

33 . Las restricciones de que la cadena sea un objeto directo y no estar cifrado asegura que esto es posible. Info Diccionario (Optinal. Dentro de los símbolos separadores se encuentran entradas de pares de valores llamados llaves (Keys) en las que se indican valores específicos del archivo. debe ser una referencia indirecta) El diccionario de la información del documento. Prev Entero (Se presenta solo si el archivo tiene más de una sección en la tabla de referencias cruzadas. Nota 1: Ya que las entradas de ID no están cifradas es posible revisar la llave ID para asegurar que el archivo correcto está siendo accedido sin descifrar el archivo. debe ser una referencia indirecta) El catalogo del diccionario para el documento PDF contenido en el archivo. Encrypt Diccionario (Requerido si el archivo está cifrado) Diccionario del cifrado del documento. este diccionario se delimita por los dobles símbolos de menor qué y mayor qué (<< y >>). ID Arreglo (Requerido si se presenta una entrada cifrada) Un arreglo cadenas de uno o dos bytes. debe de ser una referencia indirecta) El desplazamiento en byte en el texto decodificado desde el principio del archivo hasta el comienzo de la sección anterior de la tabla de referencias cruzadas.Inserción de Información Oculta en Archivos PDF 2011 Ejemplo 1 Ejemplo de trailer Trailer << key1 value1 key2 value2 … keyn valuen>> startxref Byte_offset_of_last_cross-reference_section %%EOF Encima de la indicación “startxref” se encuentra el diccionario del Trailer. no debe ser una referencia indirecta) Es el número total de las entradas en en la tabla de referencias cruzadas del archivo. constituyendo un identificador de archivo. 3Ch y 3Eh respectivamente. Equivalente mente este número debe de ser 1 mayor que el número de objeto más alto definido en el archivo. Los posibles valores de llaves se indican en la Tabla Llave Tipo Valor Size Entero (Requerido. Nota 2: Aunque esta entrada es opcional. este arreglo y la cadena de dos bytes deben ser objetos directos sin cifrar. Root Diccionario (Requerido. Cualquier objeto en la tabla de referencias cruzadas cuyo número de objeto sea mayor a este valor será ignorado y definido como faltante por un lector PDF. cada una. cmo se hayan definido en la combinación de la sección original y de todas las secciones actualizadas. su ausencia puede evitar que el archivo funcione en algunos flujos que dependen de archivos con identificación única. Si hay una entrada cifrad.

los cambios se deben agregar al final del archivo. debe de construir su tabla de referencias cruzadas de tal forma que la copia más reciente del objeto sea la que se acceda en el archivo. sobre escribiendo el viejo desfase de bytes de la sección original. Ejemplo Trailer sin actualizaciones trailer << /Size 22 /Root 2 0 R /Info 1 0 R /ID [ <81b14aafa313db63dbd6f981e49f94f4> <81b14aafa313db63dbd6f981e49f94f4>] >> startxref 18799 %%EOF 4. La sección de referencias cruzadas actualizada debe de incluir un desfase de bytes a la nueva copia del objeto. 34 . eliminados o remplazados. haya sido modificada o no. Una sección en tabla de referencias cruzadas para una actualización incremental debe contener únicamente entradas de objetos que hayan sido cambiados. dejando los contenidos originales intactos.Inserción de Información Oculta en Archivos PDF 2011 Nota 3: Los valores las cadenas de ID son usadas como entrada al algoritmo de cifrado. Cuando se actualiza un archivo PDF de manera incremental. Si estas cadenas fueran indirectas o si el arreglo de ID fuera indirecto provocaría que las cadenas fueran cifradas al momento de escribirlas. Los objetos eliminados deben de permanecer intactos en el archivo. Además. Las restricciones anteriores previenen la condición circular. Esto daría como resultado una condición circular en un lector: Las cadenas de ID deben de ser descifradas en orden para usarlas al descifrar cadenas. incluyendo las mismas cadenas de ID. Tabla 4-4 Tabla de Llaves de la Coda Existen más cadenas insertables en el diccionario del Trailer y se utilizan para opciones de compatibilidad y no son necesarias para definir un archivo PDF estándar. El trailer agregado debe contener todas las entradas anteriores con excepción de la coda anterior. en el diccionario de coda añadido debe de contener la entrada de previo (Prev) dando la ubicación de la sección de referencias cruzadas anterior. pero deben ser marcados como borrados en la tabla de referencias cruzadas. Cuando un lector compatible lea el archivo.4 Actualizaciones Incrementales El contenido de un archivo PDF puede ser actualizado incrementalmente sin tener que reescribir el archivo original. Cada sección de coda debe de terminar con su propio marcador de fin de archivo (%%EOF).

En el siguiente capítulo se presenta la propuesta de inserción de información en archivos PDF basada en el análisis de la estructura interna de estos archivos.Inserción de Información Oculta en Archivos PDF 2011 Imagen 4-2 Ejemplo de la Estructura Actualizada Incrementalmente de un Archivo PDF Con todas las partes de un archivo PDF presentadas hasta el momento es posible comprender y manipular la información de contenida en estos archivos de manera básica. 35 . Para mayores detalles en la creación de archivos PDF se puede revisar el estándar ISO-32000.

Los diccionarios pueden contener cualquier tipo de valor PDF con un nombre que lo identifica. Cada carácter de texto utiliza 8 bits. y su longitud se llama d. concatenar varias representaciones binarias de varios caracteres y transformar la cadena binaria en un numero decimal para ser insertado en el archivo. En el anexo B se encuentra una tabla con los valores recomendados como nombres para las entradas de diccionario. 36 . Cuando se encuentra un objeto que no es necesario el elemento es ignorado por el lector sin mandar un error. Cuando el lector compatible de archivos PDF revisa el diccionario. sus objetos y funciones. se aprovecha esta característica y así agregar una nueva entrada en los diccionarios del archivo PDF que contendrá la información oculta que se desea insertar. Posteriormente se presenta la propuesta de verificación y de decodificación. Primero se presenta el parámetro seleccionado para la inserción seguido del método de codificación propuesto y sus límites. sin embargo. y utilizar un método de codificación para no introducir texto plano como valor de la entrada del diccionario. sea capaz de ver el elemento agregado en los diccionarios.Inserción de Información Oculta en Archivos PDF 2011 5 Desarrollo del Sistema En este capítulo se presenta la propuesta de parámetro para insertar. Para el propósito de este trabajo. Esto es una posible vulnerabilidad en el sistema. es posible que alguien al abrir el archivo PDF directamente. este es nuestro conjunto de inserción D en el que se agrega la información. Primero se obtiene la lista de todos los diccionarios disponibles. Es recomendable utilizar variaciones de elementos comunes en los archivos PDF para mimetizar el elemento agregado con el contenido del archivo y dificultar su detección. Después de haber realizado un análisis de las partes de un archivo PDF. Esta característica permite a los desarrolladores agregar comportamiento especializado al lector de archivos PDF para realizar acciones específicas en el contenido. y mire la estructura del archivo. La nueva entrada en el diccionario será invisible para los usuarios al momento de abrir el documento en un lector de PDF compatible. se propone utilizar los objetos de tipo diccionario como el medio para introducir información a un archivo PDF realizando la inserción según el orden del número de objeto de menor a mayor. por lo que se proponen dos cosas para minimizar el riesgo de detectar fácilmente la entrada agregada al diccionario: usar como llave (key) de la entrada un nombre que sea lo más compatible con los elementos usualmente encontrados en los diccionarios del archivo. También se presenta el programa que implementa los métodos propuestos por el análisis. Para codificar la información a insertar se propone dividir el texto en pequeñas partes. el mecanismo de codificación y sus respectivos procesos de verificación y decodificación. toma los valores necesarios para construir el elemento que se describe en él. convertir los carácter en su representación binaria.

el número de objetos aprovechable es limitado. Varias implementaciones utilizan valores flotantes largos para englobar y obtener valores numéricos de los archivos PDF. Esta limitación se debe considerar según las características del lector que se use. al leer un número entero que utiliza la capacidad máxima de 64 bits en los valores numéricos. El límite de caracteres a insertar por objeto número es una variable que depende del usuario y de la implementación del lector de archivos PDF. Por lo que la capacidad de inserción de información se limita al número de objetos diccionario por el número de caracteres a insertar en cada objeto numérico. Dn = Número de diccionarios en el archivo L = Límite de caracteres a insertar por objeto numérico. se debe considerar que como se usan los objetos de tipo diccionario para contener la información oculta. Para evitar posibles pérdidas de información se propone utilizar seis caracteres en lugar de ocho. Además de la limitación que se tiene por la codificación e implementación del lector. para realizar la codificación. Sin embargo. Por lo tanto. pero la característica de poder contener objetos de diferentes tipos como entrada de valor hace que los equipos que lo lean sean susceptibles de cometer errores de conversión. se corre el riesgo de perder los bits menos significativos al tratar de ingresar el valor a un número flotante. dado que el tipo de número a utilizar es de 64 bits (8 caracteres de 8 bits). Los valores numéricos que el estándar PDF permite usar números de hasta 64 bits. que es el máximo número de caracteres posibles en un número de 64 bits. Este riesgo depende de la implementación del lector y es necesario contemplar la posibilidad de usar un límite en los bits que se usaran en el archivo para insertar. se puede decir que con este método de codificación la capacidad máxima de inserción en un archivo está dada por la fórmula: N(max) = Dn * 8 Dónde: N(max) = Número máximo de caracteres posibles de inserción Dn = Número de diccionarios en el archivo 37 . Esto da por resultado la función siguiente N = Dn * L Dónde: N = Número de caracteres posibles de inserción.Inserción de Información Oculta en Archivos PDF 2011 El utilizar valores numéricos en los archivos como medio de codificación del texto presenta algunas limitaciones. sin embargo los valores se manejan de manera indistinta entre números con punto flotante y números enteros. En el método de codificación propuesto se obtienen números enteros como salida.

Después de agregar las nuevas entradas al diccionario se guarda en un nuevo archivo PDF los cambios realizados. ya que el mensaje se divide en n partes. por lo que habrá diccionarios en los que no es necesario insertar información. Para la detección de la información oculta se necesita conocer el nombre del parámetro que se insertó y el límite de caracteres usado. Esto significa que los cambios se guardan al final del archivo y los objetos originales se conservan intactos. Sin embargo. Ceil = función de redondeo hacia arriba. 38 . L = Límite de caracteres a insertar por objeto numérico. Esto depende de la longitud del mensaje a ocultar.Inserción de Información Oculta en Archivos PDF 2011 La inserción de la información en los diccionarios del archivo PDF se ordenaran los objetos de menor a mayor según su número de objeto. Cuando se codifica un mensaje se obtienen n números decimales que serán insertados en n diccionarios del archivo PDF. los diccionarios se ordenan por número de objeto y se decodifica el texto convirtiendo el numero decimal en binario y después en caracteres los bits del número decimal de ocho en ocho bits. Para determinar el número de diccionarios necesarios para insertar se divide el mensaje entre el límite de caracteres para codificar. La operación se define así: n = Ceil(M/ L) Dónde: n = número de diccionarios necesarios para insertar el mensaje. Otra cosa que se debe considerar es que al guardar el nuevo archivo es necesario recalcular la tabla de referencias cruzadas ya que la ubicación de los objetos cambia al agregar los elementos en los diccionarios. Para el propósito de la esteganografía este método de guardado facilitaría la detección de la información agregada al abrir el archivo directamente. Para evitar este comportamiento se crear un nuevo archivo copiando la información del original más las modificaciones. M = Longitud del mensaje. Este conjunto de números decimales recibe el nombre de C y los datos que contiene son tomados por el proceso de inserción en el mismo orden que fueron generados. Posteriormente se busca en los diccionarios del archivo PDF la llave que el usuario indique. Si el resultado de la operación no es entero se redondea al entero positivo siguiente. en un proceso normal de modificación. los cambios del archivo PDF se guardan de forma incremental. En un proceso de inserción no siempre es necesario ocupar todo el espacio de inserción disponible. El número de renglones siempre es igual o menor que el número de diccionarios disponibles para insertar. Esto permite tener un orden en el proceso de inserción y de extracción.

A continuación se describen los modelos de Inserción – codificación y de verificación – decodificación. 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. Teniendo este análisis de las características de los archivos PDF y de lo necesario para el método de inserción y codificación se propone un sistema para insertar información oculta en archivos PDF. La conversión de caracteres e concatena y se obtiene el texto original. 39 . posteriormente sepáralo en grupos de ocho y convertir en caracteres cada grupo. Para decodificar el texto de los números decimales se propone tomar el valor numérico decimal de la entrada del diccionario y convertirlo en su representación binaria.Inserción de Información Oculta en Archivos PDF 2011 Para el proceso de verificación 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 número de objeto y comparar sus entradas con una llave indicada por el usuario. Y por último la forma de implementarlos. Como la inserción se hace en orden el proceso de extracción deja de encontrar entradas coincidentes al terminar de decodificar todo el mensaje. en caso de coincidir se decodificara el numero decimal en texto y se ira concatenando hasta terminar con todos los diccionarios.

Imagen 5-1 Modelo de Inserción El sistema de inserción se compone de la función de codificación que convierte los caracteres del mensaje en números decimales utilizando un límite para el número de caracteres codificados. solo se necesitan los algoritmos de codificación-inserción y los algoritmos de detección-decodificación que poden residir en aplicaciones independientes y locales en los equipos de los usuarios que lo deseen. El modelo del sistema de inserción se muestra en la imagen 5-1. 40 . insertar. y de la función 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.Inserción de Información Oculta en Archivos PDF 2011 5. Con estos mecanismos es posible crear sistemas para insertar información de control. autenticación o validación para los archivos PDF que viaje junto con el archivo y que no dependa de una infraestructura muy compleja.1 Modelo del Sistema de Inserción Para el sistema de inserción de información oculta en archivos PDF se proponen diferentes módulos y métodos que se encarguen de codificar. detectar y decodificar la información.

Al llegar al final del mensaje es posible que no alcancen los caracteres para completar un segmento con la longitud del límite.Inserción de Información Oculta en Archivos PDF 2011 5. Cuando se inserta un número decimal en un diccionario se utiliza la llave indicada por el usuario para nombrar la entrada.1. también se toma el conjunto de decimales C que se obtuvo del proceso de codificación y se agrega un elemento del conjunto C en cada diccionario hasta que se termina con los números decimales a insertar. El mensaje se divide en cadenas de longitud igual al límite. estos se convierten a números binarios y posteriormente se convierten en números decimales. Al terminar de agregar las entradas al diccionario se procede a guardar en un nuevo archivo PDF los cambios. en caso contrario no se puede insertar el mensaje completo en el archivo PDF. por lo que el bloque se completa con ceros. 41 .1 Método de Codificación Para la codificación se necesita el mensaje y el límite de caracteres a usar en cada número decimal. Imagen 5-2 Modelo de Codificación 5.2 Método de Inserción Para el método de inserción se toma el archivo PDF original y se extrae la lista de diccionarios ordenados por número de objeto. El modelo de la función de codificación se presenta en la imagen 5-2. Después de crear los segmentos necesarios. Hay que considerar que el número de segmentos generados debe ser menor o igual al número de diccionarios disponibles para insertar.1.

Imagen 5-3 Modelo del Proceso de Inserción El resultado de la operación de inserción de una nueva entrada en un diccionario se muestra en la imagen 5-4.Inserción de Información Oculta en Archivos PDF 2011 La imagen 5-3 muestra el proceso de inserción de información de un archivo PDF. Imagen 5-4 Resultado de la inserción de una entrada en un diccionario 42 .

El proceso de decodificación del mensaje se encuentra dentro de la función de verificación.2. Imagen 5-5 Modelo del Sistema de Verificación 5. Si se encuentra una entrada coincidente con la llave se toma el valor decimal contenido en la entrada y se decodifican los carácter que se indican en el límite L.Inserción de Información Oculta en Archivos PDF 2011 5. Es muy importante conocer el límite de caracteres usado en la codificación para evitar que se pierdan caracteres o se agreguen valores innecesarios en el mensaje de salida. El modelo del proceso de verificación se muestra en la imagen 5-5. conocer la llave con la que se insertó el mensaje y el límite de caracteres usado en la codificación. Como la inserción y la detección se hacen en el orden ascendente de los números de objeto de los diccionarios no es necesario realizar un ordenamiento al concatenar. Para verificar la existencia de un mensaje oculto se toma la llave indicada por el usuario y analiza todos los diccionarios entrada por entrada. En la imagen 5-4 se muestra el modelo del sistema de verificación.1 Función de Verificación En el proceso de verificación se tómala lista de diccionarios del archivo PDF (D) de longitud d y se ordena de menor a mayor por su número de objeto. Cada diccionario tiene una cantidad de entradas llamada L.2 Modelo del Sistema de Verificación Para la verificación de la existencia de un mensaje oculto dentro de un archivo PDF se requiere tener el archivo PDF que se desea analizar. Los valores decodificados se concatenan en un mensaje de salida. 43 . Si no se encuentra ninguna entrada de diccionario coincidente con la llave significa que el archivo no tiene datos ocultos con la llave indicada.

Finalmente se concatenan todos los caracteres resultantes. Este proceso se realiza en todas las entradas de diccionario que sean coincidentes con el valor de llave indicado por el usuario.2. Se separa la cadena de bits en grupos de ocho y se convierte uno por uno en carácter.Inserción de Información Oculta en Archivos PDF 2011 Imagen 5-6 Modelo de Verificación 5. Posteriormente se utiliza el límite introducido por el usuario para tomar el número necesario de bits que represente a los caracteres codificados. El modelo de la función de decodificación se muestra en la imagen 5-7. Imagen 5-7 Modelo de la Función de Decodificación 44 .2 Función de Decodificación La función de decodificación toma el número decimal de la entrada del diccionario y lo convierte a su representación binaria.

También es posible ejecutar la aplicación en sistemas Linux utilizando el compilador de C# para diferentes sistemas operativos proporcionado por el proyecto Mono [26]. La aplicación recupera del árbol de estructura interna una lista de los objeto diccionario junto con su número de objeto y de generación. los posibles objetos que se pueden encontrar en el archivo y como tratarlos. Posteriormente se ordenan de menor a mayor según su número de objeto. El proceso de revisión de resultados se muestra en el siguiente capítulo. por lo menos. como al sistema de verificación. La aplicación creada contiene en si misma tanto al sistema de verificación. el límite de caracteres a insertar por entrada del diccionario. El programa abre archivos PDF. La aplicación resultante se llama PDFAnalizer y funciona como una instrucción de línea de comandos de MS-DOS o Linux y es capaz de recibir argumentos que modifican su comportamiento. Los objetos lógicos definidos corresponden a los ocho tipos básicos de objeto del estándar PDF y los objetos descriptores que conforman los nodos del árbol que se crea con la estructura del archivo. La explicación de todos los parámetros posibles y su funcionamiento se muestran en el anexo C.Inserción de Información Oculta en Archivos PDF 2011 5. el cálculo de la capacidad de inserción del archivo en término de caracteres.0 o superior. el nombre de un archivo PDF y alguna opción para trabajar con él. La aplicación fue basada en el comportamiento observado de software gratuito para analizar o abrir archivos PDF [21][22][23][24][25]. La aplicación está hecha en C# utilizando Microsoft Visual Studio 2010. Para interpretar correctamente un archivo se deben definir. El usuario tiene diferentes opciones (Parámetros) para controlar el comportamiento del programa. El usuario debe introducir. el nombre del archivo PDF nuevo resultante de la inserción. el nombre del parámetro de inserción o verificación a utilizar. el nombre de un archivo txt para guardar la salida de la verificación. Esta implementación de los métodos propuesto de inserción y verificación se probaron ampliamente para analizar su comportamiento en diferentes archivos PDF y también se evaluó si la inserción de información es perceptible para los usuarios de los archivos al visualizar el archivo original contra el archivo modificado. Con el programa es posible obtener una lista de objetos diccionario. el mensaje a introducir o la ruta de un archivo txt con la información en texto plano. la ruta y nombre de un archivo para verificar la existencia de información oculta. por medio de expresiones regulares. 45 . recorre sus elementos y obtiene una representación lógica del archivo en forma de árbol.3 Implementación Para implementar este sistema y poder realizar pruebas se programó una aplicación de línea de comandos que realiza las funciones de los módulos del sistema descritas en las secciones anteriores. La aplicación está diseñada para ejecutarse de manera nativa en equipos con sistemas operativos Microsoft® que cuenten con Net Framework 2. En el Anexo A se encuentran los diagramas de clase de los objetos lógicos definidos en la aplicación.

El resultado que se obtuvo indica que no es perceptible ninguna diferencia entre el archivo original y el modificado. uno era el original y el segundo el modificado. 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 percepción entre cada persona. En las imágenes 6-2 y 6-3 se muestran ejemplos del archivo original contra el archivo modificado respectivamente. la taza de errores al verificar y recuperar información. 46 . A los participantes de la prueba se les mostro 3 pares archivos PDF. en el primer par el 97 por ciento de los participantes los encontró idénticos. es más difícil conseguir una evaluación donde resultado sea perfecto e indique no hay diferencia alguna entre todos los archivos. la imperceptibilidad del cambio realizado para los usuarios de los archivos PDF. Conclusiones y Trabajo a Futuro Con una aplicación como la que se ha propuesto e implementado es necesario analizar y evaluar varios aspectos alrededor de su funcionamiento. en el segundo par el 98 por ciento de los participantes señalo que eran iguales. Este resultado era esperado ya que no se inserta información en los elementos que interpretan la vista. en que cantidad crece el archivo con la información insertada. Imagen 6-1 Formato de Preguntas para Archivos PDF Este formato se repite para los tres pares de archivos y se entregó a 100 participantes. 6. A los participantes se les pregunto si notaban alguna diferencia entre los archivo en el formato siguiente.1 Prueba MOS Para medir si es perceptible algún cambio visual en el archivo PDF para los usuarios se realizó una prueba MOS en la que se mostraron 3 archivos con información insertada y se comparan visualmente con el archivo original.Inserción de Información Oculta en Archivos PDF 2011 6 Prueba MOS. y en el tercer par el 98 por ciento señalo que no existe ninguna diferencia entre los archivos. Mientras más grande es una muestra. cuanta información se puede insertar con este método. Todos los documentos de esta prueba eran de una hoja y contenían por lo menos 4 párrafos de 4 renglones de texto con dos imágenes como mínimo. Análisis. de los cuales.

Por ultimo al probar una codificación con 6 caracteres se logró recuperar el 100 por ciento del texto insertado. Se probó el método de inserción con diferentes limiten en el proceso de codificación y de decodificación.5 del estándar PDF y es necesario realizar una actualización al método de apertura. En las aproximaciones de esteganografía en documentos de texto. Otros símbolos se sustituyen por “?”. Como la información en el sistema propuesto se inserta en la estructura de objetos y no en los parámetros de recreación. Este comportamiento se debe a que la implementación de lectura de archivos PDF está basada en la versión 1. Se tomaron 50 archivos PDF con diferentes características en número de páginas.Inserción de Información Oculta en Archivos PDF 2011 Imagen 6-2 Archivo PDF Original Imagen 6-3 Archivo PDF Modificado Utilizando la implantación desarrollada se observa no hay modificación visual en el archivo después de insertar la información. cantidad de texto y cantidad de imágenes en cada uno de ellos. el sistema es imperceptible para el sistema visual humano cuando se abre el archivo por un usuario normal. Otra limitación en la codificación es que solo se pueden usar símbolos de la codificación ASCII. El detalle de la codificación es debido a la implementación del programa lector de archivos PDF por lo que este proceso puede ser mejorado. Cuando se utilizó un límite de 7 caracteres se obtuvo una pérdida del 10 por ciento del texto insertado. En las aproximaciones que utilizan parte del lenguaje de descripción del texto como la métrica[J] es más difícil percibir los cambios por el número tan pequeño que representan. la implementación comienza a tener problemas en interpretar objetos y se pueden perder objetos al recuperar la lista de objetos útiles para insertar.2 Pruebas de Implementación Se analizó el comportamiento de la implementación para conocer su comportamiento en diferentes situaciones. El comportamiento observado índico que. 6. 47 . pero aún son visibles ya que modifican parte de la vista. palabras o letras[I] es más fácil detectar cambios en la vista del archivo. A diferencia de otros métodos que utilizan las características visuales del texto para insertar información. Cuando se utilizaron los 8 caracteres que se pueden insertar en números de 64 bits se ocurrió una pérdida del 20 por ciento del texto al momento de decodificarlo. párrafos.5. como las que aprovechan el espacio entre las líneas. cuando se manejan archivos de versiones superiores a PDF 1.

También se observó que los archivos PDF crecen en un porcentaje de 4 veces la entrada de texto a ocultar. La codificación se aplica sobre caracteres con formato ASCII.3 Conclusiones y Trabajo a Futuro Con el modelo propuesto y la implementación en software se logró introducir información oculta dentro de un archivo PDF que es imperceptible por los usuarios de los archivos PDF. crece la capacidad de inserción. Así mismo mientras más páginas se agregan. Se implementó un método de decodificación de texto en objetos decimales de archivos PDF recorriendo el árbol de objetos del archivo PDF y recuperando la información en orden ascendente al número de objeto. 48 . Esto significa que si se insertan 14 kb de texto en un archivo. Se desarrolló un proceso para verificar la existencia de información oculta en un archivo PDF por medio de llaves y límites de decodificación ajustables según las necesidades del usuario. capaz de abrir la mayoría de los archivos sin problemas.5 por lo que archivos de versiones más actuales pueden representar problemas al momento de apertura. Esto es que en un diccionario que describe una fuente es más compatible con entradas que hablen de estilo. el sistema propuesto inserta más información en los archivos. el archivo crece en 60 KB aproximadamente. Este sistema tiene un payload de 4 veces el peso del texto ingresado. Para cada diccionario se puede seleccionar el mejor nombre para el parámetro que se introduce y mimetiza la información sin hacer fácil de detectar las entradas nuevas en los diccionarios ya que no sería la misma para todos. Esta relación se mantiene mientras más grande sea el mensaje a insertar. Así mismo es necesario mejorar la implementación para hacer diferencia entre los objetos numéricos de tipo entero y los de punto flotante en los procesos lógicos. nombres. Este proceso se basó en herramientas de exploración PDF para la versión 1. con la posibilidad de migrar el sistema a diferentes plataformas que soportan C#. comparados con archivos que solo tiene texto. Comparado con otros métodos. Se diseñó implementó y probó una forma para codificar texto dentro de los objetos decimales de un PDF que permite seleccionar la cantidad de caracteres a codificar y decodificar por numero decimal teniendo como máximo 8 caracteres. se cuenta con un mayor número de objetos útiles para insertar información.Inserción de Información Oculta en Archivos PDF 2011 También se observó que en archivos con varios formatos de texto e imágenes diferentes. 6. basado en el estándar. También se concluye que es posible mejorar el proceso de inserción de información en los objetos diccionarios utilizando nombres de entradas que sean más compatibles con su entorno dependiendo del objeto que describe al diccionario. tamaño o color que con entradas que asemejen codificación. formato o filtro por ejemplo. Por este motivo es necesario actualizar el método a las nuevas versiones de PDF. Mientras más complejo sea un documento en el formato que utiliza más objetos requiere para describir el contenido. Se implementó un proceso de lectura de archivos PDF.

Con el sistema que se ha presentado es posible crear un sistema de validación de cambios y de integridad de la información de un archivo PDF.Inserción de Información Oculta en Archivos PDF 2011 Se logró probar el funcionamiento de un mecanismo para insertar información oculta en archivos PDF y presentar un esquema de codificación básico para no usar entradas de diccionario de tipo texto. Hacer un esquema que permita aumentar la capacidad de inserción utilizando una o más llaves por cada diccionario. Agregar métodos de cifrado al sistema de inserción y verificación en las secciones de codificación y decodificación. 49 . Integrar a los objetos de la implementación la diferencia entre números enteros y números de punto flotante para aprovechar al máximo la codificación. Agregar un esquema para poder insertar entradas a los diccionarios de manera aleatoria y no depender del orden de los números de objeto y que las entradas se puedan auto ordenar. Mejorar el método de inserción para que los parámetros que se utilicen sean compatibles con el objeto que describen y así poder mimetizar la información insertada. Después de realizar un análisis de los resultados obtenido y del funcionamiento del sistema se propone lo siguiente como trabajo a Futuro: Mejorar la implementación de lectura de archivos PDF para ser compatible con los nuevos elementos y versiones. Como se están utilizando funciones con partes en bits es posible agregar algún meto de criptografía al sistema.

Classification of Image Watermarking Schemes Deepak Sharma.adobe. Entrada en vigor de la Norma Oficial Mexicana NOM-151-SCFI-2002 Secretaria de Gobernación.html E.com/es/products/acrobat/adobepdf. Diario Oficial de la Federación: 04/06/2002 http://dof. Chee-Hung Henry Chu. Diario Oficial de la Federación: 19/12/2005 http://dof.gob.adobe. Dr.adobe. ACUERDO por el que se delegan facultades a la Dirección General de Normatividad Mercantil en Materia de Evaluación de la conformidad de la Norma Oficial Mexicana NOM-151-SCFI2002.pdf G.gob.com/content/dam/Adobe/en/devnet/pdf/pdfs/adobe_supplement_iso32000_ 1.net%2FDocuments%2FWatermarks%2520Classification. http://www. Copyright © 2011 Adobe Systems Incorporated.php?codigo=2102579&fecha=19/12/2005 C.com/content/dam/Adobe/en/devnet/pdf/pdfs/adobe_supplement_iso32000.gob. Diario Oficial de la Federación: 10/11/2006 http://dof. Center for Advanced Computer Studies. NORMA Oficial Mexicana NOM-151-SCFI-2002.php?codigo=4937232&fecha=10/11/2006 D.mx/nota_detalle.php?codigo=727725&fecha=04/06/2002 B.doc&rct=j&q=watermarking%2 0classification&ei=YHzBTZSNCaTiiALh3syJAw&usg=AFQjCNFc8QAfWoOHEnau6yAnGUCU4iYTw&cad=rja a . Historia del PDF de Adobe Adobe®.com/url?sa=t&source=web&cd=1&ved=0CBoQFjAA&url=http%3A%2F%2Fdee paksharma.mx/nota_detalle. Secretaria de Gobernación.mx/nota_detalle. Supplement to the ISO 32000 Adobe® Junio 2009 http://www. Supplement to the ISO 32000 Adobe® Junio 2008 http://www.google. Prácticas comerciales-Requisitos que deben observarse para la conservación de mensajes de datos Secretaria de Gobernación. University of Louisiana at Lafayette http://www.Inserción de Información Oculta en Archivos PDF 2011 Bibliografía A. pdf F.

Linux2 : posix : unix : windows 2000 : windows 2003 : windows 95 : windows 98 : windows nt : windows xp : os independent : beos : embedded os : Handheld OS .com/Dound-s-Steganography/3000-2092_4-10072532.Inserción de Información Oculta en Archivos PDF 2011 H.htm?csnumber=51502 Referencias [1]Steganoptic Douglas Ryan Richardson. Position paper for the W3C DRM Workshop. Windows Me. Windows XP.freshmeat. Brassil. Definición de Manejo de derechos de autor Digitales Renato Iannella. Windows 95/98/Me/NT/2000/XP. Proceedings of the IEEE (USA).net/ [2]Cloak 7. 87(7):1181–1196. Windows 95. bsd.psu.ist. 1999.iso. Copyright Protection for electronic distribution of text documents.0 insight-concepts.2002-02-24 http://download. 2010 K. 2006-02-12.org/2000/12/drm-ws/pp/Overview.8396 J.1. 2003-08-04 http://steganopic. http://www.46. Windows 2000.net/projects/cryptomx [4]Dound’s Steganography Brinkster.com/cloak. Low. 2008 http://www. Uso de codificación de linea Jack T. Abel.sourceforge. IPN – SEPI-ESIME –UC. Steven H. Open digital rights management. Ocultamiento de Información en Documentos Electrónicos de Tipo PostScript Cano Jiménez. ISO 32000 © Adobe Systems Incorporated.html b .cnet. and Nicholas F. Windows/Linux.1.html I. 2001.baxware. Maxemchuk.htm [3]CryptoMX daemon404. http://citeseerx.w3.2004-02-23 http://www.edu/viewdoc/summary?doi=10.org/iso/catalogue_detail. http://unix. Windows 98.

ch/hst/hst.Windows2003.com/program/stools.htm [13]BitCrypt moshe-szweizer.com/ c .net/projects/ump3c/ [7]S-Tools Peter Gutmann.html [8]Wodax Joan Puigcerver Pérez. Copyright © 2003-2008 http://www. Copyright © 1999-2010 http://www.moshe-szweizer. 2009-01-03 http://www. 2006-06-13 http://www.org/wodax-esteganografia [9]MP3Stego Fabien Petitcolas. Win98. 2009-07-17 http://sourceforge.petitcolas.Inserción de Información Oculta en Archivos PDF 2011 [5]Hide in Picture Davi Figueiredo.hermetic.kriptopolis. 2010-11-05 http://sourceforge.net/projects/diit/ [12]Hermetic Stego Hermetic systems.net/projects/hide-in-picture/ [6]UnderMP3Cover Christian Platt.WinXP.200-11-18 http://www.invisiblesecrets. Windows Vista http://bitcrypt.net/fabien/steganography/mp3stego/ [10]Invisible Secret NeoByte Solutions. 2011-02-12 http://sourceforge.spychecker.WinME.com/ [11]InvisibleInk Kathryn H.Windows2000.

© 2003 .com/ [18]P2Stego P2Labs.2011 http://cloud.html [15]SteganoG Gaijin. 2010-06-28 http://www.com/piccrypt-archivos-hechos-imagenes [17]Camouflage Unfiction http://camouflage.gaijin.jjtc.p2labs.com/products/p2stego/index. 2010-10-16 http://acrobatusers.shtml [20]Lista de Programas de Esteganografía Neil F.unfiction. Johnson.o2sol.html [19]Xiao Steganography naka soft.D.htm d . 2007-02-22 http://www.html [21]Editando un archivo PDF Jon Bessan.php [16]PicCrypt 2009-08-07 http://www.com/Steganography/tools.2010 O2 Solutions http://www. JJTC.Inserción de Información Oculta en Archivos PDF 2011 [14]Bon Kyu Bon Pmcchp.at/en/dlsteg. ©1995-2011 http://www.com/tutorials/getting-started-basics-editing-pdf-document [22]PDFXplorer O2Solutions. Copyright. Ph. 2011 http://pmcchp. © Copyright 2001 .com/get/Security/Encrypting/Xiao-Steganography.Com.com/pdfxplorer/overview.softpedia.neoteo.com/bonkyubon/index.

Ltd.com/pdf-repair-tool.Inserción de Información Oculta en Archivos PDF 2011 [23]PDF Surgeon Nix solutions.com/pdf2htm.nucleustechnologies.getpdf. Junio 2010..html [26]Proyecto Mono Novell. (C) 2000-2011 http://www.02 GetPDF Inc.mono-project. http://www.com/products/pdf-surgeon/ [24]Kernel for PDF file Repair Tool Kernel.com/Main_Page e . © NIX Solutions Ltd 2011 http://nixsolutions. http://www. Copyright © 2011 Lepide Software Pvt.html [25]PDF2HTML 2.

................................................................. m Índice de Tablas Tabla 3-1Programas de Esteganografía ........... 28 Tabla 4-4 Tabla de Llaves de la Coda.. 40 Imagen 5-2 Modelo de Codificación ......................................................... 21 Tabla 4-1 Secuencia de escape en cadenas literales................................................................................................................................. 47 Imagen A-0-1 Clases Base de Objetos PDF ...................................................... 43 Imagen 5-6 Modelo de Verificación .................................................................................................................... k Imagen A-0-3 Clases de los Objetos PDF ................................................................................................................. 44 Imagen 6-1 Formato de Preguntas para Archivos PDF ................................................................................................................................... 41 Imagen 5-3 Modelo del Proceso de Inserción.......................................................... n Tabla C-1 Tabla de Parámetros del Programa PDFAnalizer ........................................... 24 Tabla 4-2 Ejemplo de Objetos tipo Nombre.. m Imagen A-0-5 Objeto Lector de Archivos PDF ................................. 26 Tabla 4-3 Entradas Comunes al Diccionario de Cadena ............................ 31 Imagen 4-2 Ejemplo de la Estructura Actualizada Incrementalmente de un Archivo PDF .................................. 4 Imagen 1-4 Uso de un Servidor de Documentos Compartidos ................... 13 Imagen 4-1 Partes de un Archivo PDF .............Inserción de Información Oculta en Archivos PDF 2011 Índice de Imágenes Imagen 1-1 Uso de Contraseñas en Aplicaciones .............................................. 11 Imagen 2-2 Ciclo de vida de la seguridad persistente de un documento ................................. 44 Imagen 5-7 Modelo de la Función de Decodificación ................................................................... 4 Imagen 1-3 Herramientas de Control de Cambios ............................................................................................................................................................................................................................................... l Imagen A-0-4 Objeto Descriptor ................................................................................................................................ 7 Imagen 2-1 Clasificacion de Marcas de Agua ........................................................................................................................................................................................................................................................................................................................................................................................................................ 46 Imagen 6-2 Archivo PDF Original........................................................................................................................................ 3 Imagen 1-2 Permisos en los Archivos....... k Imagen A-0-2 Tipos de Objeto PDF ........................................ 47 Imagen 6-3 Archivo PDF Modificado .............. 42 Imagen 5-4 Resultado de la inserción de una entrada en un diccionario ........................ 34 Tabla B-1 Nombres recomendados para Inserción ...................... 6 Imagen 1-6 Sistema de Firma Digital....................................................................................................................................................................... 35 Imagen 5-1 Modelo de Inserción ................................................................................................................................................ p f ..................................... 42 Imagen 5-5 Modelo del Sistema de Verificación........................................................... 6 Imagen 1-5 Función de Resumen ...............................................................................................................................................

Catalogo El objeto diccionario principal que contiene las referencias directas o indirectas a todos los objetos en el documento con la excepción que tal ves haya objetos en el trailer que no son referenciado por el catalogo.4-1986. una convención ampliamente usada para codificar un grupo específico de 128 caracteres como números binarios definidos en ANSI X3. ASCII El código estándar americano para intercambio de información. Objeto Directo Cualquier objeto que no ha sido convertido en un objeto indirecto. Lector Compatible Implementación de software que es capaz de leer y procesar archivos PDF que han sido hechos conforme las especificaciones del estándar ISO32000. Objeto Diccionario Una tabla asociativa conteniendo pares de objeto. Información Binaria Una secuencia ordenada de bytes. el primer objeto es el nombre del objeto sirviendo como una llave t el segundo objeto trabajando como el valor puede ser cualquier objeto. Objetos Lógicos Cualquiera. Carácter Códigos numéricos representando un símbolo abstracto de acuerdo con reglas de codificación Conjunto de Caracteres Un conjunto de símbolos definidos asignados a un carácter único. Cadena de Contenido Cadenas de objetos cuya información consiste de una secuencia de instrucciones describiendo los elementos gráficos a ser pintados en una página. Byte Un grupo de 8 dígitos binarios que colectivamente pueden ser configurados para representar uno de 256 valores diferentes y varias realizaciones de 8 dígitos binarios son utilizados ampliamente en equipo electrónico actualmente. Tabla de Referencias Cruzadas Estructura de datos que contiene el desfase en bytes para cada objeto indirecto dentro del archivo. la palabra clave true o la palabra clave false. g .Inserción de Información Oculta en Archivos PDF 2011 Glosario Objeto Arreglo Una colección unidimensional de objetos arreglados secuencialmente y numerados implícitamente comenzando en cero.

Objeto indirecto Un objeto que está marcado con un numero entero positivo seguido por un numero de generación entero no negativo seguido de obj y teniendo endobj después de el. un objeto entero o un objeto real. y teniendo un tipo y valor que son diferentes a otros objetos. sin que este primer símbolo sea parte del nombre. denotado por la palabra clave null. Objeto Cadena Una cadena que contiene una secuencia de objetos PDF. Fuente Colección identificada de graficas que pueden ser líneas u otros elementos gráficos. Pero con un rango limite y precisión y escrito como uno en los digitos decimales Diccionario de Recursos Asocia nombres de recursos. imágenes y gráficas. Objeto Una estructura básica de la cual los archivos PDF son contruidos e incluidos en los objetos básicos de PDF.Inserción de Información Oculta en Archivos PDF 2011 Documento electrónico Representación electrónica de un grupo de texto orientado a página. h . Marcador de Fin de Línea (Marcador EOL) Uno o dos caracteres indicando el fin de una línea de texto. Objeto Nombre Un símbolo atomico identificado únicamente por una secuencia de caracteres precedidos por el símbolo de barra. Referencia de Objeto El valor de un objeto usado para que un objeta pueda referirse a otro. Objetos Numéricos Cualquiera. Puede ser reproducido en paple o desplegado sin pérdidas significativas del contenido de su información. con los mismos objetos de recursos y los organiza en varias categorías. Objeto Real Número real de aproximación matemática. usado en cadenas de contenidos. incluyendo fórmulas matemáticas y representaciones con resolución arbitraria. Objeto Nulo Un objeto solo del tipo nulo. Objeto Entero Enteros matemáticos con una implementación especificada en un intervalo con centro cero y escrita como uno o más dígitos decimales opcionalmente precedidos de un símbolo. y metadatos útiles para identificar entender y renderear información. PDF Archivo de Portable Document Format (PDF) en el estándar. consistiendo de una vuelta de carro y de una entrada de línea. Función Un tipo especial de objeto que representa clases parametrizadas.

entrada de línea. espacio. Archvio XPDF Archivo apegado al formato de información XML 2. vuelta de carro. 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.0. caracteres de espacio son tabulador horizontal. i . Cadena de Objeto Consiste de un diccionario seguido de cero o más bytes encerrados entre las palabras clave Stream y endstream. entrada de formulario. Carácter de Espacio Blanco Carácter que separa constructores sintácticos PDF tales como nombres y números unos de otros. pero están almacenados en una forma más compacta. el cual es una transliteración del Formato de Formularios de Información (FDF).Inserción de Información Oculta en Archivos PDF 2011 Carácter de Espacio Carácter de cadena de texto usado para representar el espacion en blanco ortográfico en cadenas de texto.

Inserción de Información Oculta en Archivos PDF 2011 Anexos j .

2011 Diagramas de Clases de Objetos PDF Clases base para la representación de los objetos de manera lógica Imagen A-0-1 Clases Base de Objetos PDF Lista de tipos de objetos dependientes de las clases base. Imagen A-0-2 Tipos de Objeto PDF k .Inserción de Información Oculta en Archivos PDF A.

Inserción de Información Oculta en Archivos PDF 2011 Clases de los objetos del estándar ISO32000 Imagen A-0-3 Clases de los Objetos PDF l .

Objeto Descriptor de los nodos de la lista de objetos insertables Imagen A-0-4 Objeto Descriptor Imagen A-0-5 Objeto Lector de Archivos PDF m .Inserción de Información Oculta en Archivos PDF 2011 Objeto lector de archivos PDF Este objeto es el que abre el archivo PDF y lo convierte en una estructura lógica en forma de árbol. De esta forma el árbol se puede recorrer y obtener los objetos en una lista.

2011 Nombres Recomendados para las Entradas en Diccionarios Como nombre para los parámetros 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 Inserción También es válida cualquier variación de nombres de entradas comunes en los archivos PDF.Inserción de Información Oculta en Archivos PDF B. n .

Parámetro p P m g Descripción En un proceso de inserción. seguidos del valor de la entrada. se ignorara este parámetro y se usara el parámetro –a. En un proceso de verificación. este parámetro indica que el texto siguiente a él corresponde al nombre se utilizara como llave de las entradas insertadas a los diccionarios del archivo. indica que el texto siguiente a él corresponde a la llave que se buscara en los diccionarios del archivo para encontrar texto oculto. En caso de no indicar el nombre de un archivo txt de salida para el mensaje recuperado se utilizara el nombre del archivo verificado más el sufijo “mensaje. 2011 Parámetros de la Aplicación PDFAnalizer El programa PDFAnalizer puede recibir varios parámetro que le indican que tarea realizar sobre un archivo PDF. En caso de no introducir ningún parámetro el programa solo muestra la lista de objetos del archivo PDF. En un proceso de verificación indica que el texto encontrado será guardado en el archivo que se indica después de este parámetro. es el único parámetro obligatorio. Todos los parámetros se introducen anteponiendo el símbolo “-“ y. Con este parámetro se indica que el texto subsecuente será insertado en los diccionarios del archivo PDF utilizando la llave indicada por –p y el límite indicado por –L. Este parámetro no tiene ningún efecto cuando no se incluye el parámetro –v en la lista de argumentos. o . Su sintaxis es la siguiente PDFAnalizer <Nombre y ruta de archivo PDF> |-Parámetro 1 <argumento>|…|-Parámetro n <argumento>| El primer parámetro indica el nombre del archivo PDF a utilizar como principal de trabajo. Este parámetro no tiene ningún efecto si no se utiliza el parámetro –a ó –m en la lista de argumentos. En la Tabla siguiente se muestran los parámetros de entrada posibles para el programa PDFAnalizer y sus efectos en el comportamiento del mismo.txt”.Inserción de Información Oculta en Archivos PDF C. en su caso. Si en la lista de argumentos se encuentra el argumento –a. Si no se indica este parámetro se utiliza /StyleT como el nombre de la llave para las entradas a insertar en los diccionarios del archivo PDF Este parámetro indica que el número decimal entero inmediatamente posterior a él corresponde al límite de líneas para mostrar de la lista de objetos antes de solicitar al usuario presionar una tecla antes de continuar.

En un proceso de inserción indica el número de caracteres a introducir por cada número decimal en los diccionarios del archivo. Este parámetro indica que se mostrara la lista de objetos del archivo PDF en orden de número de objeto al usuario. El valor máximo para este parámetro es de 8 caracteres por diccionario. Este parámetro no hace nada si no se indica el parámetro –m ó –a en la lista de argumentos. Si no se indica este valor se utilizara el valor 6 como límite de inserción. En caso de existir un parámetro –m en la lista de argumentos se utilizara este parámetro en lugar de –m.Inserción de Información Oculta en Archivos PDF a l L c s v 2011 En un proceso de inserción indica el nombre de un archivo txt con el texto a ocultar utilizando el parámetro indicado por –p y el límite indicado por –L. Este parámetro indica que se desea mostrar la capacidad de inserción en caracteres del archivo PDF indicado como archivo de trabajo principal. Este parámetro indica que el texto posterior a él corresponde al nombre del archivo donde se guardara el resultado de la inserción. se utilizara el nombre de archivo de salida del proceso de inserción indicado en –s. Tabla C-1 Tabla de Parámetros del Programa PDFAnalizer p .pdf”. Si no se indica este parámetro en la lista de argumentos se utilizara el nombre del archivo principal de trabajo más el sufijo “changed. Con este parámetro se indica que se realizara un proceso de verificación al archivo principal de trabajo utilizando el límite indicado por –L y el valor de la llave indicado por –p. En caso que se indique el parámetro –a ó –m en la lista de argumentos.