Artículos de Diseño Gráfico y Diseño y Desarrollo Web

RSS - Sindicar Contenidos
Xhtml 1.1 Strict Válido! CSS Nivel 2 Válido!  Nivel Doble-A de Conformidad con las Directrices de Accesibilidad Web (WAI)
Descarga FireFox gratis!
\n"; } } } lecturas();

Control de acceso en documentos XML

Autor: David Menéndez Cisterna Planeta Silius

Este artículo está bajo licencia CopyLeft. Se permite pués su libre distribución con la única condición de incluir el nombre del autor y un enlace a la web original.

A medida que la tecnología XML se extiende, se distribuye cada vez más información en este formato. En este ámbito es necesario considerar la necesidad de tener un control de acceso a esos documentos, con el nivel de granularidad que permita la propia tecnología XML. Pero XML nació como formato de documentos y en sí mismo no contiene elementos relacionados con la seguridad o el control de acceso. Esto hace necesario realizar un esfuerzo concreto en esta materia.

Los usuarios finales tendrán que poder controlar su interacción obteniendo la información que desean en documentos XML generados dinámicamente. Sin embargo, diferentes usuarios pueden tener diferentes intereses o incluso diferentes niveles de acceso sobre esa información, y los servidores tendrán que conocer con precisión qué datos concretos pueden leer y/o modificar y cuáles no.

Esto quiere decir que habrá que ejercer un control de acceso para cada usuario en cuestión, y esto quiere decir que en ocasiones se permitirá o denegará el acceso a documentos enteros, o porciones de los mismos. Esto se hará en base a algún mecanismo de identificación del usuario en base a diversos criterios y propiedades. Al mismo nivel, es necesario remarcar que estas mismas observaciones deben aplicarse a las técnicas de criptografía (que no van a ser objeto de discusión en este texto) para documentos XML que complementan al control de accesos.

A continuación se van a tratar las características que debe abarcar todo mecanismo de control de acceso para documentos XML.

Requisitos para el control de acceso a documentos XML

Control de acceso a diferentes niveles

La tecnología XML puede definir información desde el nivel de documentos enteros hasta el nivel de elementos y atributos concretos. Un control de acceso a esta información debe permitir ese mismo nivel de granularidad.

Pero también hay que considerar el acceso no sólo a una instancia de un documento sino a conjuntos de documentos. Este factor también debería tenerse en cuenta: definir políticas de acceso para cada documento en concreto es muy costoso, hay que optar por la posibilidad de considerar colecciones de documentos asociadas mediante algún criterio (por ejemplo, el ajuste a una DTD/Schema en concreto) y definir políticas para cada colección.

Arquitectura de permisos completa

Desde un punto de vista general podemos identificar dos tipos de permisos generales: lectura y escritura. Pero la propia tecnología XML nos impone desglosar esos permisos en otros, más concretos, como podrían ser los siguientes:

Propagación de los permisos

A todos los permisos anteriormente considerados hay que aplicarles un nivel de propagación que puede ser distinto según cada caso:

Permisos positivos y negativos

Para facilitar la confección de las políticas de control de acceso deben existir versiones positivas y negativas de los permisos considerados. Esto trae como consecuencia de posibles casos de conflicto entre permisos, que deben estar previstos previamente con algún mecanismo de resolución.

Métodos de identificación del cliente

Cada cliente tendrá una determinada vista de la información XML y va a ser absolutamente imprescindible establecer criterios para la identificación. A la hora de implementar un mecanismo de control de accesos hay que tener en cuenta de cuáles van a ser las necesidades concretas del sistema en este campo.

Puede establecerse una condición simple de identificación como es el clásico login//password, la pertenencia a un grupo, la adopción de un rol, o una combinación de todas esas técnicas. Por otro lado también pueden existir otros métodos como la identificación del puesto de trabajo (por ejemplo, la dirección IP o un rango de posibles direcciones), una franja horaria permitida, un tiempo máximo de acceso, o incluso credenciales personales (edad, profesión, idioma…). Todas estas posibilidades habrán de ser consideradas en cada caso.

Políticas de seguridad configurables

Las políticas de control de acceso tienden a ser modificadas con el tiempo, y este hecho debe ser tenido en cuenta. El administrador del sistema debe poder cambiar y renovar las políticas existentes fácilmente, con ayuda de alguna herramienta destinada al efecto.

Pero al mismo tiempo es altamente recomendable que el administrador pueda ser capaz de poder editar dichas políticas a bajo nivel, ya que según el entorno de trabajo no siempre podremos garantizar la existencia de herramientas de ayuda (por ejemplo, en sistemas con recursos muy limitados).

Para que esto sea posible, el archivo donde se reúnen las políticas debe ser legible e interpretable por un humano. Nada mejor que utilizar un documento XML para ello ya que puede ser editado fácilmente.

Por otro lado, si el administrador va a manipular directamente los archivos de políticas, debe emplearse un método de identificación de partes de documentos XML que sea sencillo y comprensible por un humano. Se recomienda utilizar XPath ya que su similitud con la estructura de directorios de los sistemas operativos habituales lo hacen suficientemente intuitivo para un operario no experto en XML.

Seguridad de la transmisión

Es de prever que la mayor parte de los presentes y futuros sistemas de información basados en XML trabajen en canales inseguros. Se ha considerado que aplicar seguridad en esas transmisiones no es un objetivo explícito de los sistemas de control de acceso; si bien cualquiera de esos sistemas debería poder trabajar conjuntamente y complementariamente con cualquier solución criptográfica existente u otro mecanismo de seguridad. XML Encryption es la opción más adecuada actualmente.

Transparencia

Los procesamientos del sistema de control de acceso deben ser transparentes a ojos del cliente final. El usuario solicitante no debería ser consciente de cuáles son las informaciones que se le ocultan, a menos que la intención del sistema sea la de avisar al cliente de alguna prohibición expresa.

Independencia tecnológica

Los documentos XML, como archivos de texto plano que son, tienen la ventaja de ser portables y completamente independientes de la tecnología; y un sistema de control de acceso a esos documentos debe mantener esa característica. Hay que tener en cuenta que los métodos para la presentación de documentos XML son variados: XSLT, XSL-FO, XForms... luego el documento que genere el sistema de control de acceso tras su procesamiento debería ser otro documento XML listo para enviar al cliente y ser presentado de la forma que sea.

Por otro lado, las acciones que pongan en riesgo la información XML de un sistema (esto es, acciones de escritura por parte de clientes) deben ser respaldadas por el mecanismo de control de accesos. Es importante destacar que las tecnologías de presentación y entrada de datos implicadas pueden fallar y permitir modificaciones en el documento XML que contradigan las políticas de seguridad. En este caso el sistema de control de accesos debe chequear ese documento modificado por el cliente y desestimar toda modificación ilegal que sea localizada.

Compatibilidad con otros tipos de datos

La información en XML puede ser enviada junto a datos de distinto formato: imágenes, audio, videos, código html… En consecuencia, los mecanismos de control de acceso deben cubrir esas posibilidades e integrar esos datos multimedia como objetos de su procesamiento.

Conservar la validez de los documentos XML

Deben evitarse alteraciones drásticas en el documento original provocadas por el procesamiento del control de accesos, procurando que el documento siga ajustándose a su DTD/Schema en lo posible después de ser tratado.

Obviamente, ante una DTD o Schema con fuertes restricciones de tipos, cardinalidades, o valores, perderíamos la validez del documento con gran facilidad por mínimas que sean las modificaciones aplicadas.En este caso tendremos dos opciones:

Conviene reseñar que en muchos casos no es necesaria la validez expresa de los documentos modificados, ya que normalmente sólo serán vistas que un cliente tiene sobre una información guardada en la base de datos. Pero si se van a llevar a cabo más operaciones sobre ese documento generado conviene encarecidamente disponer de métodos que conserven su validez frente al DTD/Schema, aunque en última instancia la elección dependerá de la naturaleza de esas operaciones que se van a llevar a cabo.

Mecanismos de logging

Todo sistema con seguridad debe venir avalado por algún mecanismo que permita registrar las acciones realizadas por los usuarios solicitantes y los resultados obtenidos. Esto no sólo es útil para que el administrador haga un seguimiento de los eventos producidos sino también para probar el modelo de seguridad diseñado y descubrir posibles debilidades o errores.

La forma de almacenar esos “logs†o “registros†es igualmente importante, ya que esas informaciones son susceptibles de recibir tratamientos posteriores tanto manuales como automatizados. Sin duda, el formato XML es el más recomendado para ello.

Herramientas de ayuda

El diseño y el mantenimiento de las políticas de acceso en un sistema puede ser una labor complicada, pudiendo requerir muchos conocimientos específicos.

Esta necesidad puede paliarse mediante herramientas de ayuda para el administrador, para ayudarle a construir el modelo de seguridad y evitar que se introduzcan errores o debilidades en el mismo.

Referencias

Este artículo está bajo licencia CopyLeft. Se permite pués su libre distribución con la única condición de incluir el nombre del autor y un enlace a la web original.

Scour Design - Todos los Derechos Reservados - Carlos Carmona