Compartir a través de


Este artículo proviene de un motor de traducción automática.

Firmas digitales

Directrices de aplicaciones sobre las prácticas de firmas digitales para Seguridad de criterios comunes

Jack Davis

La transición de documentos en papel con firmas escritas a mano a archivos electrónicos con firmas digitales que se mueve a un ritmo rápido. Para satisfacer las necesidades de los usuarios y requisitos de certificación, deben proporcionar la misma funcionalidad y seguridad que firmado manualmente la oferta de documentos de papel documentos electrónicos con firmas digitales. En este artículo se describe cómo se, como desarrollador de software, puede hacer justamente eso: diseñar aplicaciones que tienen funcionalidad integrada de firma digital que cumpla los requisitos de seguridad ISO/IEC 15408 Common Criteria.

En el territorio de documentos y archivos de datos, las firmas digitales ofrecen dos características clave:

  • Identificar el originador (el firmante) del contenido del documento o archivo
  • Compruebe que la información firmada no ha sido modificada después de que se aplicó la firma

Más allá del principio básico de “ What You Véase Is What You Sign ” (WYSIWYS), usted y sus diseñadores de interfaz de usuario deben tener en cuenta varias consideraciones de usuario y de seguridad adicionales al generar aplicaciones que admiten firmas digitales. También deberá comprender los problemas de seguridad que pueden afectar a sus productos en los requisitos de certificación de reunión. Certificaciones, tales como los de seguridad ISO/IEC 15408 Common Criteria, proporcionan a los usuarios y organizaciones un modo confiable forma de identificar los productos que han sido probados para cumplir los estándares de seguridad y facilidad de uso. Cada vez más, certificación de seguridad independientes se está convirtiendo en un requisito previo en decisiones de compra.

Al final de este artículo, entenderá mejor el intervalo de problemas asociadas con firmas digitales y la necesidad de inherente clara, precisa y abierto de su revelación a usuarios.

ISO/IEC 15408 Common Criteria Security Certification

Compatible con la Organización internacional de normalización (ISO) y la comisión de Electrotechnical internacional (IEC), Common Criteria es un conjunto de metodologías diseñada para evaluar y certificar las capacidades de seguridad de productos de tecnología de información. Técnicas de seguridad de criterios comunes se publican en los estándares ISO/IEC 15408 y 18045.

La fecha de publicación de este artículo, el estándar de seguridad de Common Criteria ha sido aprobado y adoptado por 26 países. Puede encontrar una lista de miembros de criterios comunes en commoncriteriaportal.org/members.html.

XML abierto de Office y convenciones de empaquetado abierto

En 2008, ISO/IEC había aprobado y había adoptado Office Open XML (OOXML) como un estándar internacional abierto. El componente de convenciones de empaquetado abierto (OPC) de OOXML ofrece una tecnología de archivo de contenedor estándar del sector. OPC combina el uso de ZIP y XML para habilitar aplicaciones definir los formatos de archivo que están abiertos y fácilmente accesible. OPC también define la funcionalidad para admitir firmas digitales, las propiedades de metadatos y relaciones de contenido. Se proporciona acceso a datos de aplicación y OPC elementos a través de un conjunto de API comunes.

Microsoft Word (.docx), (.xlsx) de Excel y PowerPoint (.pptx) y la especificación de papel XML (.xps) son ejemplos de formatos de archivo basado en OPC y cada una emplea su propia organización contenido único (esquema) que está asociado con una aplicación específica. Cada formato de archivo OPC también puede definir su propia directiva de firma para firmas digitales. Un formato de archivo de directiva de firmas especifica qué contenido elementos deben estar firmados, ¿qué elementos opcionalmente se pueden firmar y no deberían firmarse ¿qué elementos como parte del proceso de firma o validación de firma digital.

En este artículo, aprenderá más acerca de cómo validar y mostrar información de firma almacenada con firmado digitalmente documentos electrónicos. Estas consideraciones de diseño se basan en la funcionalidad de firma digital proporcionada por el componente OPC de los estándares ISO/IEC 29500 y XML abierto de ECMA 376 Office. Tenga en cuenta que la firma digital de firma de las directivas de formatos de archivo específico basado en OPC podría emplear sólo un subconjunto de las opciones de firma descrito en este artículo.

Firmas digitales

Formatos de archivo OPC, como los descritos en OOXML, utilizan certificados X.509 y XML Digital Signature (W3C 2008) tecnologías para proporcionar dos elementos de seguridad:

  • Rechazo de identidad forma segura identifica el grupo o individual origina una firma.
  • Forma segura contenido validación garantiza que todo el contenido firmado está presente y no se ha modificado de ninguna forma después de firmarlo.

Una alteración a cualquier parte de una firma digital o a cualquier contenido firmado por la firma se detectarán durante la validación de firma y el usuario recibirá una notificación a través de un mensaje de error que la firma se ha interrumpido.

Algunas de las cifras en este artículo son mensajes de estado para el usuario o la notificación de ejemplo. Si confirmación el éxito o fracaso de una validación de firma o características especiales de resaltado que el usuario debe tener en cuenta, representan el tipo de redacción clara y específico que debe utilizar. La aplicación define cuando y donde el usuario ve estos mensajes de estado de firma digital. Validación de firma digital a veces está programada para realizar automáticamente siempre que se abre un documento firmado. En este caso, se mostraría el mensaje cuando un usuario abre el documento. Si el usuario se requiere para realizar la validación de firma digital manualmente a través de una selección de menú, quizás desee presentar el estado de firma en un cuadro de diálogo emergente. Usted y su diseñador IU tienen algunos margen en el control de tiempo y selección de ubicación de estos mensajes de usuario, sólo debe recordar hacerlos como intuitiva y fácil comprender como sea posible.

Categorías de firma

Obtención de la aplicación para informar de éxito o error al comprobar la integridad de la firma y el contenido firmado es sólo el primer paso para escribir un programa seguro digitalmente. También deberá tener en cuenta los distintos tipos de contenido se encuentre con la aplicación.

En la forma más sencilla de la firma, denominada firma completa, un usuario aplica su firma para todo el contenido en un único documento. La firma digital y el contenido firmado se comprobó más tarde y, a continuación, se notifica como válida o no. Figura 1 es que un ejemplo del tipo de mensaje de estado de firma digital un usuario vería.

Figura 1 de firma de mensaje de usuario de ejemplo para generales

Elementos del documento en cuatro categorías adicionales también deben tenerse en cuenta para evitar confusiones o confundir con confianza suposiciones:

  • Contenido sin firmar
  • Grupos de contenido firmados
  • Contenido al que se hace referencia externamente
  • Contenido dinámico

Firma completa

La mayoría de las personas está muy familiarizada con la firma de documentos en papel y contratos. Individuos inicial de cada página o el signo al final de un documento para identificarse y confirmar su revisión, aprobación y aceptación.

Como se mencionó anteriormente, la más sencilla y más sencillo caso en un documento digital de firma es la firma completa. Para estar clasificada como este tipo de firma, todo el contenido asociado con el archivo del documento debe cumplir los siguientes cuatro criterios:

  • Todos los elementos de contenido se encuentran en un paquete único documento.
  • Todos los elementos de contenido son estáticos.
  • No existen vínculos o referencias a contenido externo.
  • Todos los elementos de contenido en el paquete de documento están firmados.

Para que un documento ser completamente estáticos, elementos de contenido no pueden contener cualquier alterable dinámicamente elementos como texto creado mediante macros o de entrada de orígenes externos. Cuando todos los elementos de contenido en un archivo de documento estáticos están firmados, se pueden comprobar la firma digital y el contenido firmado con un resultado resumen informar de la firma y el contenido firmado asociado como válida o no.

En de figura 2, 1 firma firma el documento partes r , s y t de . Una validación posterior realizada en la firma comprobará que firma 1 todavía está intacta y válida, y que cada uno de sus asociados firmado partes (de r , s y t de ) no ha sido modificado después de que se va a firmar.


Figura 2 de Single-Signature contenidos firmados

Figura 3 ilustra una variación en la firma, en el que se aplican las firmas de dos (o más) a un documento. Suele producen varias firmas en un ciclo de revisión y aprobación que requiere individuos indicar su aprobación y aceptación de un documento después de revisarlo. En este formulario, cada firma puede comprobarse independientemente junto con las partes del documento asociado con signo.


Figura 3 de múltiples-Signature contenidos firmados

Puede utilizar el método y propiedad siguientes para comprobar las firmas e identificar cada firmante en un escenario de validación contenido firmado y firma.

Contenido sin firmar

Contenido sin firmar es un riesgo potencial para la asociación de confianza implícita. Con documentos de papel, personas comúnmente signo o las páginas iniciales para identificar a sí mismos y confirmar su revisión y aprobación. Las páginas izquierda sin signo (o había agregado más adelante sin signo como páginas) no tienen asociación formal o peso legal con el firmante.

En documentos digitales, la validación de una firma digital y su contenido relacionado comprueba que el usuario de confianza la firma y el contenido firmado asociado. Desafortunadamente, muchos usuarios no técnicos no disponen de la experiencia necesaria para diferenciar entre las firmas digitales, el contenido firmado, el contenido sin firmar y el contenedor en el que se empaquetan los componentes del documento. Si sólo se muestra una validación positiva de una firma digital y su contenido firmado, los usuarios pueden suponer incorrectamente que la validación se extiende a todo el paquete, lo que podría incluir contenido sin firmar que no debe asociarse con una firma de confianza. Contenido sin firmar no tiene una identificación fuente y pueden agregarse después de otros componentes estén firmados o modificó dentro del paquete de documento.

Las asociaciones de confianza de firma deben ser clara para todos los usuarios. Los usuarios deben ser conscientes de la existencia de contenido sin firmar incluyen dentro de cualquier paquete y proporciona un medio para distinguir claramente de confianza contenido firmado. Figura 4 muestra que el tipo de mensaje que los usuarios debe recibir para avisarle de contenido sin firmar dentro de un documento firmado digitalmente válido.

Figura 4 Mensaje de usuario de ejemplo para el contenido sin firmar

En de figura 5, de m de documento partes y de n están firmados y pueden validarse con firma 1. El mismo paquete de documento también contiene partes sin signo x y de y de no se puede validar. X de partes y y de son independientes y no asociado, incluso implícitamente, firma 1.


Figura 5 de documento que incluye elementos no firmados firmado

Puede utilizar las siguientes propiedades, método y pseudocódigo para identificar los paquetes que contienen partes sin signo:

El pseudocódigo siguiente determina si las partes en un paquete de documento no están firmadas:

PackageDigitalSignatureManager dsm = new PackageDigitalSignatureManager(package);
PackagePartCollection partCollection = Package.GetParts();
foreach (PackagePart part in partCollection)
    foreach (PackageDigitalSignature signature in dsm.Signatures)
    {
        // Search if "part" is included in signature.SignedParts.
        // If "part" is included in signature.SignedParts
        //     then it is a signed part
        //     else it is an unsigned part
    }

Grupos de contenido firmado

Un documento con varios grupos de contenido firmados es otro riesgo para la confianza implícita por asociación. Con documentos de papel, un individuo puede firmar páginas en una sección y una segunda persona puede firmar las páginas en una sección independiente. La firma y las páginas de los primeros síntomas individuales no tienen ninguna asociación formal con las páginas de los segundo signos individuales. Igualmente, la firma y los segundo individuales signos de páginas no tienen ninguna asociación formal con las páginas de los primeros síntomas individuales. Sólo las páginas cosigned por ambas personas representan una asociación conjunta. Un ejemplo de grupos de contenido firmados es un documento en el que el cuerpo se escriben y firmado por un individuo y secciones apéndice agregadas para referencia están escritas y firmadas por otras personas.

En algunos formatos de archivo, se podrían firmar distintos elementos de contenido por individuos diferentes. Los usuarios necesitan saber que cuando las firmas se relacionan entre sí a diferentes grupos de contenido son independientes entre sí y que cada firma y el grupo de contenido deben ser validadas por separado. Figura 6 muestra un mensaje de usuario que se puede acompañar a un documento con grupos de contenido firmados.

Figura 6 de mensaje de usuario de ejemplo para grupos de contenido firmados

En la figura 7de , de rde documento partes , s y t están firmados y validados con firma 1 y de xde documento partes , y de y de z firmados y validados con firma 2. Las firmas de dos y sus grupos de contenido relacionadas son independientes y no asociados entre ellos incluso aunque se encuentran en el mismo documento.


Figura 7 de dos grupos firmados

En una variación de de figura 7, de figura 8 ilustra una situación en la que se cosigned uno o más partes del documento con dos o más firmas. Mientras firma 1 y 2 de firma conjuntamente firman una o más elementos comunes (grupo C), la relación de firma 1 con el grupo A y 2 de firma con el grupo B firma permanece independiente y no asociadas con el otro. Describir la información de firma a los usuarios, debe explícitamente y claramente explicar las asociaciones de firma de contenido independiente y conjuntamente con signo.


Figura 8 de firmado y grupos de Cosigned

Las propiedades y el pseudocódigo siguiente identifican paquetes que contienen varios grupos de contenido firmados:

El pseudocódigo siguiente crea una lista de los grupos de contenido firmados de un paquete:

PackageDigitalSignatureManager dsm = 
   new PackageDigitalSignatureManager(package);
foreach (PackageDigitalSignature signature in dsm.Signatures)
{
    // Add to list(signature.SignaturePart, signature.Signer);
}
// Upon completion the list will contain one entry for each signature
// along with the X.509 certificate that identifies the signer.
// If the list contains more than one entry and different signers,
// the package contains multiple signed content groups.

Proteger contra varios grupos de contenido firmados

Varios grupos de contenido firmados agregar complejidad a un formato de archivo de directiva de firmas, dado que aumentan la posibilidad de que alguien podría agregar contenido fraudulenta firmado a un documento con la intención de crear una asociación a una firma existente y contenido engañosa. Para proteger una aplicación contra esta amenaza, puede requerir firma de un usuario para firmar parte de relaciones de origen de firma del paquete. (La parte firma-origen-relaciones es un archivo especial en el paquete con el nombre \package\services\digital-signatures\_rels\origin.psdor.rels.) Cuando el contenido y la parte de relaciones de origen de firma están firmados, cualquier firmas agregadas posteriormente modificará la parte firma-origen-
relationships, provocando la firma original producir un error e informar el paquete como no válido.

Contenido al que se hace referencia externamente

Contenido al que se hace referencia externamente es otra confianza potencialmente incorrecta por escenario de asociación. Elementos dentro de un documento firmado pueden contener referencias a documentos externos, independientes. A menos que estos otros documentos también están firmados, referencias externas se consideran informativas y no tienen ninguna asociación con el documento firmado formal.

Contenido que se tiene acceso a través de vínculos externos y referencias fuera del paquete de documento puede cambiar en cualquier momento. Idealmente, no debe contener el contenido que se va a firmar los vínculos o referencias a materiales fuera del paquete de documento. Los usuarios deben poder identificar claramente y comprender las situaciones que podrían implicar la firma y validación de contenido que incluye vínculos y referencias a materiales externos. Figura 9 es un mensaje de ejemplo que indica que se hace referencia externamente contenido dentro de un documento.

Figura 9 Mensaje de usuario de ejemplo para el contenido al que se hace referencia externamente

Al validar firmado contenido que incluye vínculos a materiales externos, utilice las directrices siguientes:

  • Alertas a los usuarios la presencia de referencias y vínculos a materiales externos. La notificación debe aclarar que no estén firmadas y no asociados con cualquier firma o confianza de firma materiales externas.
  • Proporcionar a los usuarios con los medios para distinguir claramente material externo sin signo y contenido estático de firmado. Por ejemplo, cuando los usuarios están validando y ver el contenido firmado, sólo vínculos internos a otros firmado contenido se debe mostrar, se deben ocultar los vínculos externos y las referencias a contenido externo.

En de figura 10, documento partes r , s y t de están firmados y pueden validarse con firma 1. Documento parte s , sin embargo, contiene un vínculo a una referencia interna con signo para t de elemento y vínculos a dos referencias externas para x contenido sin signo y y de contenido . Al validar y que describe la información de firma a los usuarios, la aplicación debe explícitamente y claramente notificar al usuario que x de vínculos e y consulte contenido sin firmar que no está asociado con la firma 1 y no guarda relación con otros elementos de contenido validados (rde partes , s y t de ).


Figura 10 de referencia externamente contenido

Identificar elementos que hacen referencia a contenido externo depende de en el esquema del formato de archivo OPC específico. En el material que acompaña a este artículo, puede buscar métodos, propiedades y pseudocódigo que puede utilizar para identificar externamente hace referencia a contenido en formatos de archivo de Microsoft Office para Word (.docx), (.xlsx) de Excel y PowerPoint (.pptx).

Contenido dinámico

Contenido dinámico sin signo también es una confianza posible incorrecta por la situación de asociación. Contenido dinámico alterable no tiene analogía en documentos de papel. Los cambios o modificaciones realizadas a un documento de papel después de que se firmó legalmente invalidarán la firma. Tener peso legal, modificaciones a un documento firmado papel deben ser revisadas, confirma y firmará de nuevo por el original signators.

Desde el punto de vista de confianza de la firma, el contenido que puede agregarse dinámicamente, quitado o modificado es por su propia naturaleza unsignable. Contenido dinámico, como texto creado mediante la ejecución de macros y funciones, puede infringir el principio fundamental de WYSIWYS. Contenido dinámico se produce habitualmente desde funciones que insertar texto variables como “ hoy ” y “ guardada fecha última, ” fórmulas como suma, los campos de referencia u otro contenido creado cuando se ejecutan las macros personalizadas.

Contenido dinámico creado como resultado de ejecutar las macros personalizadas se puede utilizar malintencionadamente y presenta una vulnerabilidad de seguridad. Ejecutables operaciones agregar complejidad a la que hace difícil para los usuarios comprender claramente contenido dinámico. Para exigir el principio WYSIWYS, documentos que deben estar firmados no deberían incluir contenido dinámico y deberían utilizar en su lugar sólo contenido estático.

Situaciones que implican la firma y validación de documentos que contienen contenido dinámico deben ser abiertamente, representado de forma clara y precisa a los usuarios. Cuando firma un documento que contiene el contenido dinámico es inevitable, seguir las directrices siguientes:

  • Alertas a los usuarios la presencia de contenido dinámico. Debería clarificar la notificación de que el contenido dinámico es sin signo y no relacionados con cualquier firma y no se puede asociar con cualquier nivel de confianza de firma.
  • Proporcionar a los usuarios con los medios para identificar y distinguir claramente firmado contenido estático y dinámicos unsigned contenido. Por ejemplo, al validar y ver firmados contenido, se debe ocultar contenido dinámico; el firmante debería ver sólo el contenido estático mostrado originalmente.

Figura 11 muestra un mensaje que advierte al usuario del contenido dinámicamente calculada.

Figura 11 de mensaje de usuario de ejemplo para contenido dinámico

En de figura 12, documento partes r y s están firmados y pueden validarse con firma 1. Sin embargo, el paquete de documento también contiene un fragmento de contenido dinámico, elemento z , que no está firmado o no se puede validar. Z de parte es independiente y no asociado, incluso implícitamente, firma 1.


Figura 12 de contenido dinámico

Identificar elementos que contienen contenido dinámico depende de en el esquema del formato de archivo OPC específico. En la material en línea que acompaña a este artículo, puede encontrar métodos, propiedades y pseudocódigo que puede utilizar para identificar contenido dinámico en formatos de archivo de Microsoft Office para Word (.docx), (.xlsx) de Excel y PowerPoint (.pptx).

Mantenimiento de transparencia

Lo le digo nuevo: En la creación de aplicaciones que admiten firmas digitales, deberá asegurarse de que los usuarios reciben la misma funcionalidad y transparencia que tendrían con una firma manuscrita. Así como ser consciente de las operaciones básicas de validar los certificados de firma (X.509) y contenido firmado (valores hash criptográficos), usted y sus diseñadores de IU deben ser atención cualquier situación que no sea intuitivamente desactívela para el usuario.

Para resumir, podrían surgir problemas potenciales desde los siguientes culprits:

  • Presencia y la identificación de contenido sin firmar
  • Asociaciones entre los firmantes de varios grupos de contenido
  • Presencia y la identificación de material que se hace referencia externamente sin signo.
  • Presencia y la identificación de contenido dinámico sin signo.

Si no excluye estos tipos de contenido desde la aplicación por diseño, debe abiertamente y con precisión presentarlas al usuario. De nuevo, la revelación clara y precisa de información de firma digital es un requisito para la certificación de seguridad ISO/IEC 15408 Common Criteria y una necesidad fundamental del usuario.

En el turno de documentos electrónicos, preocupados por la seguridad grupos e individuos cada vez más se basarán en certificaciones independientes, como ISO/IEC 15408 Common Criteria. Para asegurarse de que está ubicado el producto a tener éxito en el mercado de hoy, tómese el tiempo necesario para escribir una aplicación de software que cumple los estándares de certificación de seguridad y usuario.

Para obtener más información sobre y vínculos a diversos estándares, consulte el material en línea que acompaña a este artículo. También encontrará información general acerca de cómo identificar dinámico y externamente hace referencia a contenido en documentos de Microsoft Office.

Jack Davis es el Administrador de programas para el equipo “ empaquetado ” Windows OPC. Davis es un colaborador de MSDN Magazine anterior (“ OPC: Un nuevo estándar para empaquetar sus datos, ” agosto de 2007) y blogs en el empaquetado de Microsoft del sitio Web en blogs.msdn.com/opc de . Puede ponerse en jack.davis@microsoft.com de .

Contenido Web para “ directrices de aplicaciones en

Prácticas de firma digital para la seguridad de criterios comunes ”

Los siguientes vínculos proporcionan información que necesitará para asegurarse de que las aplicaciones seguir prácticas aceptadas para uso de firmas digitales.

Las direcciones Web pueden cambiar, por lo que es posible que no se puede conectar con los sitios Web mencionados aquí.

Identificar contenido dinámico y al que se hace referencia externamente en los documentos de Office

Elementos de contenido dinámico o el contenido al que se hace referencia externamente identificación depende de en el esquema del formato de archivo OPC específico. Esta sección proporciona información general acerca de cómo identificar dinámico y externamente hace referencia a contenido en formatos de archivo XML abierto de Office (OOXML) para Word (.docx), (.xlsx) de Excel y PowerPoint (.pptx). Esta información general no es completo – para obtener más información, consulte ISO/IEC 29500-3 parte 3: Compatibilidad de marcado y extensibilidad del estándar de formato de archivo OOXML.

Estructura de documento de Office

Formatos de archivo OOXML para Word, Excel y PowerPoint documentos emplean una estructura común para almacenar el contenido.

  • / [Content_Types] .xml archivo
  • carpeta de /_rels/
  • carpeta de /docProps/
  • /documentoEscriba/ carpeta, donde /documentoEscriba/ es:
    • /Word/ para documentos de Word (.docx)
    • /XL/ para documentos de Excel (.xlsx)
    • /ppt/ para documentos de PowerPoint (.pptx)

La parte [tipos de contenido] .xml contiene los tipos MIME (Multipurpose Internet Mail Extension) para todas las partes del paquete. En el marcado de tipo de contenido pueden definirse dos tipos de elemento:

  • Elementos de extensión predeterminado definen predeterminada asociaciones entre una extensión parte (nombre de archivo) y un tipo de contenido MIME especificado. Por ejemplo,
<Default Extension="png" ContentType="image/png" />
  • Reemplazo PartName elementos definen asociaciones para partes específicas y un tipo de contenido MIME especificado. Por ejemplo,
<Override PartName="/word/footnotes.xml"
           ContentType="application/vnd.openxmlformats-
                       officedocument.wordprocessingml.footnotes+xml" />

Puede utilizar el atributo ContentType para los elementos contenidos en la parte [tipos de contenido] .xml para identificar los tipos de elementos almacenados en el paquete (por ejemplo, proyecto de Visual Basic archivos que se utilizan en macros).

Para obtener información adicional en OOXML marcas de formato de archivo, vea ISO/IEC 29500 parte 1: Fundamentos y referencia del lenguaje de marcado.

Documentos de Word

Campos

Documentos de Word pueden incluir campos. Campos pueden definir varios objetos, como hora, fecha, las propiedades del documento, vínculos, referencias a campos de formulario de contenido, externa y así sucesivamente. Campos que se utiliza de este modo pueden proporcionar contenido dinámico. Hay dos tipos de campos: simples y complejos.

El pseudocódigo siguiente (p-code) muestra cómo identificar elementos de campo de simple.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();  // Returns a Stream containing the part content
    if str contains (‘<w:fldSimple *> * </w:fldSimple>’)
    then
       a simple-field exists

Se describen los campos complejos en líneas de múltiplos que contienen una instrucción inicial, una descripción de campo y una instrucción final. El código p siguiente muestra cómo identificar elementos de campo de complejo.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();   // Returns a Stream containing the part content
    if str contains (‘<w:fldChar fldCharType="begin" * />’)
    then
       a complex-field exists

Macros

Las macros son otro mecanismo que puede proporcionar contenido dinámico. Las macros se almacenan en documentos de Word como archivos de Visual Basic. En documentos de Word que utilicen macros, el documento / [Content_Types] .xml archivo contiene una referencia de tipo de contenido MIME para un proyecto de Visual Basic. El código p siguiente muestra cómo identificar el uso de macros.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();  // Returns a Stream containing the part content
    if str contains (‘*vbaProject’)
    then
       a macro exists

Referencias externas

Documentos de Word pueden definir las referencias externas a través del uso de hipervínculos, subdocumentos, objetos OLE o elementos de la combinación de correspondencia. El siguiente código p describe una forma de identificar si un documento utiliza referencias externas.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();  // Returns a Stream containing the part content
    if str contains (‘href’ or ‘Hyperlink’ or ‘External’)
    then
       an external reference exists

Documentos de Excel

Campos calculados

Dentro de un documento de Excel, el contenido dinámico se almacena en campos calculados cuyo valor se calcula a partir de una función. El código p siguiente muestra cómo identificar el uso de las celdas calculadas en un documento de Excel.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();  // Returns a Stream containing the part content
    if str contains (‘<f *> * </f>’)
    then
       a calculated field exists

Fecha y hora

Información de fecha y hora, como en los encabezados y pies de página, puede definirse para actualizarse automáticamente (como cuando impresión). Dinámico información de fecha y hora se define en la hoja descripción archivo \xl\worksheets\sheet X .xml, donde X representa el número de hoja. El archivo de descripción de la hoja puede contener los elementos de pie de página (headerFooter) que definen el contenido asociado y encabezado. Contenido de los valores & C, D & y & T sirva como marcadores de posición para valores de hora y fecha dinámica. Dentro del XML marcado & C acrónimo Current & D son las siglas de fecha y & T son las siglas de hora. &C siempre aparecerá antes & D y & T y es posible concatenar ambas generar cadenas como & C & D & T o & C & T & D.

Macros

Similar a documentos de Word, las macros se almacenan en documentos de Excel como archivos de Visual Basic. Documentos que utilizan macros, el / [Content_Types] .xml archivo contendrá una referencia de tipo de contenido MIME para un proyecto de Visual Basic. El código p para detectar el uso de macros en Excel es similar de Word. Puede utilizar el código p en la parte “ macros ” de la sección “ documentos de Word ” anterior para detectar el uso de macros en Excel también.

Referencias externas

Referencias externas en Excel se implementan en la misma forma que en Word. Consulte la parte “ referencias externas ” de la sección “ documentos de Word ” anterior para obtener más información sobre identificar referencias externas en Excel.

Datos de bases de datos y orígenes de datos externos

Excel permite además documentos obtener dinámicamente datos desde bases de datos y otros orígenes de datos externos. Se hace referencia a orígenes de datos externos a través de una definición de conexión para el origen de datos externos. Las definiciones de conexión se especifican en una parte de /xl/connections.xml almacenada en el paquete. Éstas es algunas origen de datos posibles tipos de conexión:

  • Origen basadas en ODBC
  • Origen de DAO
  • Basado en archivos origen
  • Consulta Web
  • Origen basada en DB OLE
  • Origen basado en texto
  • Conjunto de registros ADO
  • Proveedor de conjunto de datos (DSP)

Para obtener información adicional acerca de orígenes de datos, vea Fundamentos ISO/IEC 29500-1 y referencia del lenguaje de marcado, sección 12.3.4 conexiones de elementos. El código p siguiente muestra cómo identificar conexiones de datos externos en un documento de Excel.

Package pkg = Package.open(filepath);
PackagePart connPart= pkg.GetPart("/xl/connections.xml");
if connPart is not null   // file "/xl/connections.xml" exists
then
   an external data source exists

Datos volátiles

Datos volátiles están un método adicional para Excel para conectarse a un origen de datos externo. Dependencias volátiles funcionan por medio de una caché de datos admitida a través de real - datos de tiempo (RTD). Una conexión de RTD utiliza un objeto COM instalado en el equipo local para proporcionar los datos deseados para el documento de Excel. Para obtener información adicional acerca de datos volátiles, vea Fundamentos ISO/IEC 29500-1 y referencia del lenguaje de marcado, sección 18.15 volátil dependencias. El código p siguiente muestra cómo identificar conexiones RTD en un documento de Excel.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();  // Returns a Stream containing the part content
    if str contains (‘<volTypes *>’)
    then
       volatile data exists

Documentos PowerPoint

Fecha y hora

Diapositivas de una presentación de PowerPoint también pueden contener elementos de tiempo y fecha dinámica. Dinámico se puede definir información de fecha y hora en Descripción archivo \ppt\slides\slide X .xml la diapositiva de cada, donde X es el número de diapositiva. Las diapositivas que contienen el contenido de la hora y fecha dinámica tienen un elemento de fecha con el atributo de tipo establecido en el valor de fecha y hora. El código p siguiente muestra cómo identificar la presencia de elementos de tiempo en un documento de PowerPoint y fecha dinámica.

Package pkg = Package.open(filepath);
PackagePartCollection parts = pkg.GetParts();
foreach(PackagePart part in parts)
    Stream str = part.GetStream();  // Returns a Stream containing the part content
    if str contains (‘datetime’)
    then
       a date-time element exists

Macros

Similar a documentos de Word y Excel, las macros se almacenan en documentos de PowerPoint como archivos de Visual Basic. Documentos que utilizan macros, el / [Content_Types] .xml archivo contendrá una referencia de tipo de contenido MIME para un proyecto de Visual Basic. El código p para detectar el uso de macros en PowerPoint es el mismo que para documentos de Word y Excel.

Referencias externas

Referencias externas en PowerPoint se implementan como están en Word y Excel.