ES2284654T3 - Filtrado de un conjunto de autorizaciones que usa solicitudes de autorizacion asociadas con un conjunto de codigo. - Google Patents
Filtrado de un conjunto de autorizaciones que usa solicitudes de autorizacion asociadas con un conjunto de codigo. Download PDFInfo
- Publication number
- ES2284654T3 ES2284654T3 ES01944152T ES01944152T ES2284654T3 ES 2284654 T3 ES2284654 T3 ES 2284654T3 ES 01944152 T ES01944152 T ES 01944152T ES 01944152 T ES01944152 T ES 01944152T ES 2284654 T3 ES2284654 T3 ES 2284654T3
- Authority
- ES
- Spain
- Prior art keywords
- authorization
- code
- requests
- authorizations
- optional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
- Separation Using Semi-Permeable Membranes (AREA)
- External Artificial Organs (AREA)
- Electrophonic Musical Instruments (AREA)
- Lock And Its Accessories (AREA)
Abstract
Un procedimiento para el procesado de un conjunto de autorizaciones asociado con un conjunto de código (106) recibido de un sitio fuente (100) para controlar la ejecución del conjunto de código, comprendiendo el procedimiento: recepción del conjunto de autorizaciones que incluye al menos una autorización asociada con el conjunto de código; recepción de un conjunto de solicitudes de autorización (120, 324, 420, 522) en asociación con el conjunto de código; y filtrado del conjunto de autorizaciones basado en el conjunto de solicitudes de autorización para controlar la ejecución del conjunto de código; caracterizado porque el conjunto de solicitudes de autorización especifica un conjunto de solicitudes opcional que especifica un conjunto opcional de autorizaciones solicitadas en asociación con el conjunto de código; y la operación de filtrado comprende el filtrado del conjunto de autorizaciones basado en el conjunto de solicitudes opcional para generar un conjunto de concesiones de autorización (208 - 212, 414, 520); y que comprende además: ejecución de un primer nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional es un subconjunto del conjunto de concesiones de autorización; y ejecución de un segundo nivel de funcionalidad del conjunto de código si el conjunto de solicitudes opcional no es un subconjunto del conjunto de concesiones de autorización.
Description
Filtrado de un conjunto de autorizaciones que
usa solicitudes de autorización asociadas con un conjunto de
código.
Esta solicitud que es presentada como solicitud
de PCT por MICROSOFT CORPORATION, nacional y residente de los
Estados Unidos, que se destina a todos los países excepto EE.
UU.
La invención se refiere generalmente a seguridad
de ordenadores y, más concretamente, al filtrado de conjuntos de
autorizaciones que usa una solicitud de autorización asociada con un
conjunto de código.
Los riesgos de la seguridad, tales como la
concesión de acceso no autorizado al sistema de un usuario, son
inherentes a muchas actividades en línea. Por ello, se han
desarrollado mecanismos de seguridad para proteger sistemas de
usuario. Por ejemplo, un usuario puede descargar una aplicación a
demanda de la Internet y ejecutar la aplicación desde dentro del
navegador. Para prevenir el acceso no autorizado a los recursos del
sistema de un usuario (por ejemplo, un directorio situado en el
disco duro del usuario), el sistema del usuario se protege mediante
una protección de "cajón de arena" que es obligatoria en el
entorno del navegador. La protección de cajón de arena implica un
área segura limitada de memoria de ordenador en la que se puede
ejecutar una aplicación, de manera que la aplicación está impedida
de acceder a recursos del sistema que residen fuera del área
segura.
Sin embargo, en algunas circunstancias un
usuario puede desear permitir que una aplicación descargada tenga
acceso controlado a ciertos recursos que residen dentro del sistema
de usuario. Por ejemplo, un usuario puede desear usar una
aplicación de procesamiento de texto a demanda para generar un
documento y, seguidamente, guardar el documento en un directorio
del sistema del usuario.
Las metodologías existentes para proveer dichas
aplicaciones con acceso controlado y seguro a un sistema de usuario
son demasiado complicadas y rígidas. En un procedimiento, por
ejemplo, se define una norma de seguridad dentro de una base de
datos de normas en la que una aplicación dada está asociada con un
conjunto de autorizaciones. La norma de seguridad, en combinación
información de origen, información de firma y limitaciones de
acceso, ayuda a definir una relación "fiable" entre la
aplicación y el sistema de usuario.
Consideremos el siguiente ejemplo:
En el ejemplo, un applet del sitio fuente,
"www.BobsWidgets.com", tiene concedidas autorizaciones de
acceso a ciertos archivos si está firmado con una clave concordante
con otra clave contenida en BobsCertificate. Tradicionalmente, un
applet es un programa diseñado para su ejecución desde dentro de un
navegador más que directamente desde dentro del sistema operativo.
El applet tiene concedida autorización para leer archivos del
directorio "/tmp" del sistema servidor y para crear y escribir
en archivos del directorio "/tmp/bwdir". La autorización para
ejecutar es otro modificador de autorizaciones habitual. Otras
especificaciones de norma de seguridad pueden, por ejemplo,
conceder autorizaciones amplias para acceder a archivos de cualquier
sitio del sistema, independientemente de la fuente de la aplicación
o de si la aplicación está firmada o no.
En estos tipos de metodologías, las normas de
seguridad son especialmente estáticas, permaneciendo fijas durante
periodos de tiempo prolongados. A medida que el procesado de
aplicaciones a demanda a través de la Internet se hace más
frecuente, las normas de de seguridad sustancialmente estáticas son
demasiado limitativas. Además, los cambios infrecuentes en la
normativa de seguridad que tienen lugar (normalmente realizados por
un gestor del sistema) pueden introducir debilitamientos o fisuras
en la seguridad, o prevenir el funcionamiento de aplicaciones
autorizadas negando a una aplicación un acceso que le había sido
concedido previamente. Así pues, las arquitecturas de seguridad
existentes decepcionan al determinar dinámica y flexiblemente si una
aplicación (o un conjunto de código dado de una aplicación) puede
ser fiable en cierto número de accesos al sistema de usuario.
Además, en las estructuras de seguridad
existentes, la asignación de autorizaciones está determinada por la
norma de seguridad definida en el sistema de usuario y,
posiblemente, por una pregunta al usuario durante la ejecución o
carga de la aplicación. Así pues, un componente de una aplicación a
demanda no afecta generalmente a qué autorizaciones está asignado
de acuerdo con una norma de seguridad. Por ejemplo, un componente de
un sitio autorizado puede tener concedido un acceso amplio a áreas
protegidas de un sistema informático, aún cuando ese componente
pueda no requerir o incluso desear dicho acceso. Por razones de
responsabilidad civil, el componente puede desear un acceso más
limitado. Además, un componente puede no ser capaz de ejecución sin
un conjunto mínimo de autorizaciones. En las estructuras de
seguridad existentes, un conjunto de concesiones de autorización
inadecuada solamente se detecta cuando una operación solicitada
falla por falta de autorización durante la ejecución del conjunto
de código, en cuyo momento el tiempo de ejecución se ha
desperdiciado y la recuperación del error puede ser más
compleja.
Anand R. y otros en "A Flexible Security Model
for Using Internet Content", Actas del 16º Simposio sobre
Sistemas de Distribución Fiable, 22 de octubre de 1997, IEEE
Computer Soc., EE. UU., páginas 89 a 96 se refieren a la generación
de un dominio de protección de contenidos descargados usando
dinámicamente el dominio solicitado de contenidos y una base de
datos de normas que describe la fiabilidad del usuario en el tipo y
fabricante del contenido. Cada contenido se despacha con
estampillas firmadas facilitadas por su fabricante con lo que cada
estampilla contiene, entre otras cosas, un dominio solicitado. Este
dominio solicitado especifica la protección que el contenido
requiere para ejecutar el contenido. Para obtener un dominio con
protección de contenidos que está establecido en una tabla de
derechos de acceso, se añade un derecho de acceso del dominio
solicitado al dominio con protección de contenidos si está dentro
del dominio máximo para el contenido especificado en la base de
datos de normas. De esta manera, la base de datos de normas almacena
las configuraciones de las descripciones de los contenidos para
dominios de protección máxima por defecto. Además, un módulo de
análisis puede recuperar cualquier contenido del dominio de
protección máxima por defecto facilitando su descripción a la base
de datos de normas.
El documento
US-A-6.044.466, de 28 marzo 2000, se
refiere a un mecanismo de obtención dinámica que facilita
autorizaciones limitadas para ejecutables. El mecanismo usa una
descripción autentificada de los ejecutables para determinar las
autorizaciones máximas que los autorizadores individuales pueden
delegar a contenidos ejecutables. Por cada descripción y descarga
de contenido principal, el mecanismo recupera las propuestas de
autorizaciones máximas de una norma de seguridad del sitio. Después
de la obtención de las autorizaciones máximas de las contribuciones
de cada autorizador en la propuesta de autorización máxima, las
autorizaciones en curso y máximas se computan usando las propuestas
de autorizaciones en curso y máximas y las contribuciones en curso
y máximas de los autorizadores de propuestas. Además, las
autorizaciones incluyen derechos positivos y negativos así como
transformaciones. Los derechos asocian un grupo de objetos con un
conjunto de operaciones que son autorizadas o negadas y con un
límite del número de veces que se puede usar esta autorización. Las
transformaciones asocian una de acción del autorizador de
delegación, por ejemplo, una operación, con modificaciones a las
autorizaciones, por ejemplo, aumento o disminución de derechos.
El objetivo de la invención es proveer un
sistema más flexible para controlar los derechos de acceso a
contenidos descargados. Este objetivo lo resuelve la invención como
se reivindica en las reivindicaciones independientes.
Las realizaciones preferentes son definidas por
las reivindicaciones dependientes.
De acuerdo con la presente invención, los
problemas anteriores y otros son resueltos por un gestor de normas
basado en la evidencia que genera un conjunto de concesiones de
autorización a un conjunto de código recibido de un sitio fuente.
El conjunto de concesiones de autorización puede ser afectado (por
ejemplo, filtrado) por solicitudes de autorización recibidas en
asociación con el conjunto de código. Las solicitudes de
autorización pueden definir características de las necesidades de
autorización del conjunto de código. Por ejemplo, las solicitudes
de autorización pueden incluir un conjunto de solicitudes mínimo,
que especifica las autorizaciones requeridas por el conjunto de
código para funcionar correctamente con al menos una funcionalidad
básica. Las solicitudes de autorización pueden incluir también un
conjunto de solicitudes opcional, que especifica las autorizaciones
solicitadas por el conjunto de código para proveer un nivel
alternativo de funcionalidad. Además, las solicitudes de
autorización pueden incluir un conjunto de solicitudes de rechazo,
que especifica las solicitudes que no se van a conceder al conjunto
de código.
En una realización de la presente invención, se
provee un procedimiento de procesado de un conjunto de
autorizaciones asociado con un conjunto de código recibido de un
sitio fuente para controlar la ejecución del conjunto de código. El
conjunto de autorizaciones incluye al menos una autorización
asociada con el conjunto de código. Un conjunto de solicitudes de
autorización se recibe en asociación con el conjunto de código. El
conjunto de autorizaciones es filtrado sobre la base del conjunto
de solicitudes de autorización para controlar la ejecución del
conjunto de
código.
código.
En otra realización de la presente invención, el
procedimiento comprende además la generación del conjunto de
autorizaciones basado en la pertenencia del conjunto de código a uno
o más grupos de código. Una colección de grupos de código se define
sobre la base de una especificación de norma de seguridad. La
colección de grupos de código incluye uno o más grupos de código.
La evidencia es recibida en asociación con el conjunto de código.
La pertenencia del conjunto de código a uno o más grupos de código
se evalúa sobre la base de la evidencia.
En otra realización de la presente invención, se
provee un módulo gestor de normas para el procesado de un conjunto
de autorizaciones asociado con un conjunto de código recibido de un
sitio fuente para controlar la ejecución del conjunto de código,
incluyendo dicho gestor un filtro que recibe el conjunto de
autorizaciones y un conjunto de solicitudes de autorización
asociados con el conjunto de código. El filtro filtra también el
conjunto de autorizaciones basado en el conjunto de solicitudes de
autorización para controlar la ejecución del conjunto de
código.
En otras realizaciones de la presente invención,
los artículos de fabricación se proveen como productos de
programación de ordenadores. Una realización del producto de
programación de ordenadores provee un medio de almacenamiento de
programa de ordenador que es legible por un sistema de ordenador y
que codifica un programa de ordenador para la ejecución de un
procedimiento de ordenador para el procesado de un conjunto de
autorizaciones asociado con un conjunto de código recibido de un
sitio fuente para controlar la ejecución del conjunto de código.
Otra realización de un producto de programación de ordenadores puede
ser provista en una señal de datos de ordenador realizada en una
onda portadora por un sistema informático y que codifica el programa
de ordenador para el procesado de un conjunto de autorizaciones
asociado con un conjunto de código recibido de un sitio fuente para
controlar la ejecución del conjunto de código.
En una realización, el producto de programación
de ordenadores codifica un programa de ordenador para la ejecución
en un sistema informático de un procedimiento de ordenador que
define una colección de grupos de código basado en una
especificación de norma de seguridad. La colección de grupos de
código incluye uno o más grupos de código. La evidencia se recibe
en asociación con el conjunto de código. La pertenencia del conjunto
de código a uno o más grupos de código es evaluada sobre la base de
la evidencia. El conjunto de autorizaciones se genera sobre la base
de la pertenencia del conjunto de código a uno o más grupos de
código. El conjunto de autorizaciones incluye al menos una
autorización asociada con el conjunto de código. Sobre el conjunto
de autorizaciones y el conjunto de solicitudes de autorización se
realiza una operación de
\hbox{conjuntos lógicos para generar un conjunto de concesiones de autorización.}
Un gran beneficio de una realización de la
presente invención es el filtrado de las autorizaciones concedidas
a un conjunto de código por el gestor de normas de acuerdo con las
solicitudes de autorización. De esta manera, el conjunto de código
afecta a las autorizaciones que recibe, en cooperación con lo que
permite la normativa de seguridad aplicable. Las autorizaciones se
usan para controlar la ejecución del conjunto de código en un
sistema informático. Es conveniente conceder solamente las
autorizaciones realmente solicitadas por el conjunto de código. Por
ejemplo, una norma de seguridad puede conceder amplias
autorizaciones a un conjunto de código fiable. Sin embargo, si el
conjunto de código no solicita una autorizadión dada, se puede
evitar el acceso involuntario a un área protegida del sistema
informático, tal como el producido por un error del conjunto de
código. Además, el sistema de código puede rehusar un conjunto de
autorizaciones determinado para evitar el riesgo potencial de
responsabilidad civil por acceder a (y posiblemente corromper) un
área protegida de un sistema informático.
Estas y otras diferentes características así
como otros beneficios, que caracterizan la presente invención, se
harán evidentes con la lectura de la siguiente descripción detallada
y con un repaso de los dibujos adjuntos.
La figura 1 representa un gestor de normas de
seguridad basado en evidencias de una realización de la presente
invención.
La figura 2 representa una lista de programas y
procedimientos de tiempo de ejecución de una realización de la
presente invención.
La figura 3 representa un sistema informático
para la gestión de la seguridad basado en evidencias de una
realización de la presente invención.
La figura 4 representa módulos de un gestor de
normas para gestionar la seguridad sobre la base de evidencias de
una realización de la presente invención.
La figura 5 representa niveles de normativa
ejemplares sobre los que opera un gestor de normas en una
realización de la presente invención.
La figura 6 ilustra un diagrama de flujos del
filtrado usado en una realización de la presente invención.
La figura 7 ilustra un sistema ejemplar útil
para la aplicación de una realización de la presente invención.
La figura 8 ilustra un diagrama de flujos de
operaciones para el procesado de un conjunto de autorizaciones en
una realización de la presente invención.
Una realización de la presente invención provee
un gestor de normas basado en evidencias que genera un conjunto de
concesiones de autorización para un conjunto de código recibido de
un sitio fuente. Generalmente, un conjunto de código es una unidad
de código empaquetado, tal como un archivo .EXE o un archivo .DLL.
El gestor de normas se puede ejecutar en un sistema informático
(por ejemplo, un cliente de Web o una estación de trabajo en red)
en combinación con el módulo de verificación y el cargador de clases
del entorno de tiempo de ejecución; sin embargo, un gestor de
normas se puede ejecutar también fuera de un entorno de tiempo de
ejecución. El conjunto de concesiones de autorización generado para
un conjunto de código se aplica en una lista de programas y
procedimientos de tiempo de ejecución para ayudar al sistema a
determinar si esta autorizada una operación del sistema dada por el
conjunto de código. El gestor de normas puede procesar solicitudes
de autorización recibidas en asociación con el conjunto de código.
Además, tanto los conjuntos de código como la evidencia pueden ser
recibidos a través de un mecanismo de distribución, que incluye una
fuente local (por ejemplo, desde dentro de la máquina local), una
red local o periférica, o un sitio fuente remoto a través de una red
(por ejemplo, la Internet).
En una realización de la presente invención, las
solicitudes de autorización se usan para filtrar las autorizaciones
ofrecidas inicialmente por el gestor de normas sobre la base de una
especificación de normativa de seguridad y de la evidencia recibida
en asociación con el conjunto de código. De esta manera, el conjunto
de código puede afectar al conjunto de concesiones de autorización
resultante que está asociado con el conjunto de código, para evitar
la recepción de autorizaciones excesivas o innecesarias.
La figura 1 representa un gestor 104 de normas
de seguridad basado en evidencia de una realización de la presente
invención. Un sitio 100 fuente, tal como un servidor, es accesible
para un sistema 102 informático (por ejemplo, un cliente de Web o
servidor) a través de una red (no se muestra). Un sitio fuente se
indica normalmente mediante un URI (Identificador de Recursos
Uniformes), que es un término genérico aplicable a todos los tipos
de nombres y direcciones que se refieren a objetos de la Internet.
Un URL (Localizador de Recursos Uniformes) es un tipo de URI. Los
recursos ejemplares pueden incluir sin limitación documentos,
imágenes, datos de audio, aplicaciones, rutinas, y otros datos y
almacenes de datos codificados accesibles a través de una red. Se
debe entender que un sitio fuente puede ser local respecto del
sistema 102 informático o remoto respecto del sistema 102
informático (por ejemplo, acoplado por la Internet.).
Un tipo de recurso aplicable en una realización
de la presente invención es un conjunto de código. Un conjunto de
código puede constar, por ejemplo, de un conjunto de applets,
códigos de aplicación, códigos de clase, códigos de rutina, y
datos. Los códigos y los datos incluidos en un conjunto de código
pueden estar en forma de códigos de bytes, códigos intermedios,
códigos de máquina, y componentes de información (clases, imágenes,
segmentos de audio y vídeo, etc.). Además, un conjunto de código
puede estar empaquetado en una carpeta de archivo que contiene uno
o más clases descargadas de un sitio fuente. En una realización de
la presente invención, se combinan las clases de una aplicación en
un módulo (un resultado de un procedimiento de unión), y uno o más
módulos se pueden combinar en un conjunto de código.
La figura 1 se refiere a la ejecución de una
aplicación descargada en un sistema 102 informático. Las
realizaciones alternativas pueden incluir applets, controles
ACTIVEX, y otras rutinas y objetos descargados. Una aplicación
descargada ejemplar consta de objetos definidos en uno o más
conjuntos de códigos locales o remotos. Los conjuntos de códigos
locales se almacenan dentro del sistema 102 informático y se cargan
en memoria cuando son necesarios. Los conjuntos de código remotos
se descargan de un sitio fuente, tal como el sitio 100 fuente.
El sistema 102 informático inicia un entorno de
tiempo de ejecución para ejecutar la aplicación descargada y
gestionar la seguridad del sistema 102. El entorno de tiempo de
ejecución en el sistema 102 informático puede ser iniciado por un
"servidor fiable", tal como un intérprete de órdenes del
sistema operativo, un navegador, un servidor de SQL, u otro código
que sea externo al entorno de tiempo de ejecución. El servidor
inicia también la ejecución de la aplicación descargando en el
sistema 112 los diferentes conjuntos de código 106 que constituyen
la aplicación y pasando los conjuntos de código 106 a una máquina
110 virtual para ejecución.
Una máquina virtual provee un entorno operativo
autónomo que realiza gran parte de la funcionalidad de un ordenador
separado. Por ejemplo, una aplicación puede funcionar en una máquina
virtual sin acceso directo al sistema operativo del servidor. Este
diseño presenta al menos dos ventajas:
- \bullet
- Independencia del Sistema: Una aplicación funcionará igual en cualquier máquina virtual que soporte el lenguaje de programación en el que está escrita la aplicación, independientemente del hardware y del software sobre los que se asienta el sistema. Por ejemplo, la misma aplicación (es decir, el mismo código de programación) puede funcionar en una máquina virtual sobre diferentes sistemas informáticos que tengan diferentes tipos de microprocesadores y diferentes tipos de sistemas operativos.
- \bullet
- Seguridad: Generalmente las aplicaciones que funcionan en una máquina virtual son impedidas de acceder a recursos de sistemas protegidos (es decir, el sistema operativo, el sistema de archivos, las regiones de memoria protegidas, una red o periférico conectado. Sin embargo, se debe entender que una realización de la presente invención puede evaluar evidencias y normas de seguridad para determinar si se autoriza que una aplicación acceda a recursos de sistemas protegidos. Si la autorización para una operación dada está concedida, la aplicación se considera fiable para esa operación. Las solicitudes de autorización recibidas en asociación con un conjunto de código se pueden usar para filtrar el conjunto de concesiones de autorización resultantes que se usa para determinar qué operaciones puede realizar el conjunto de código.
A medida que los componentes de la aplicación
(por ejemplo, conjuntos 106 de código descargados) son recibidos
por el sistema 102, un módulo de verificación asegura que el código
descargado en los conjuntos de código está formateado correctamente
y que no viola las limitaciones de seguridad del lenguaje codificado
o de la máquina 110 virtual. También se pueden realizar otras
verificaciones, tales como la verificación de que la dirección del
puntero no está presente, que las áreas de memoria disponibles no se
pueden rebasar ni agotar, y que las instrucciones del código
tendrán los parámetros tecleados correctamente. Seguidamente, los
conjuntos de código se pasan a un cargador 113 de clases, el cual
puede asegurar que la aplicación no sustituye componentes del nivel
sistema dentro de un entorno de tiempo de ejecución (por ejemplo, el
cargador de clases puede forzar la ejecución de conjuntos de código
provistos por el servidor cuando se solicita, sustituyendo de esta
manera conflictos de nombre por conjuntos de códigos descargados).
Posteriormente, el cargador 113 de clases carga los conjuntos 106
de código sobre una lista de programas y procedimientos 114 de
tiempo de ejecución en respuesta a solicitudes de la máquina 110
virtual.
Por ejemplo, la máquina virtual ejecuta un
primer conjunto de código (por ejemplo, el conjunto 202 de código
principal de la figura 2) que llama una rutina facilitada por un
segundo conjunto de código (por ejemplo, el conjunto de código
reconocedor de la figura 2). El cargador 113 de clases recibe de la
máquina virtual la solicitud del segundo conjunto de código y carga
el segundo conjunto de código en la lista de programas y
procedimientos 114 de tiempo de ejecución de manera que el primer
conjunto de código puede llamar la rutina necesaria.
Con el fin de asegurar que se impiden los
accesos no autorizados a áreas protegidas, se introduce en el gestor
104 de normas la evidencia 108 asociada con cada uno de los
conjuntos 106 de código descargados. El gestor 104 de normas
determina el conjunto de concesiones de autorización (véase el
conjunto 414 de concesiones de autorización de la figura 4)
asociado con cada conjunto de código. También se introduce en el
gestor 104 de normas una especificación de norma de seguridad para
ayudar en el cómputo de las concesiones adecuadas. Además, las
solicitudes 120 de autorización son recibidas en asociación con los
conjuntos 106 de código descargados para especificar las
características de las necesidades de autorización de cada conjunto
106 de código descargado. En una realización, las solicitudes de
autorización se registran en un formato de serialización binaria
dentro del propio conjunto de código y, por consiguiente, se
descargan con el conjunto de código en una sola comunicación por la
red. Alternativamente, las solicitudes de autorización se pueden
registrar en otro lugar del sitio fuente accesible para el gestor
104 de normas en una comunicación por red aparte. Además, aunque un
formato de serialización binaria se especifica como formato
ejemplar para registrar solicitudes de autorización, se contemplan
formatos de datos alternativos (por ejemplo, XML) dentro del ámbito
de la presente invención.
Además, el desarrollador puede usar un formato
de datos, tal como el XML, para especificar inicialmente las
solicitudes de autorización. Posteriormente, las solicitudes de
autorización especificadas en formato XML, se pueden codificar en
otro formato de datos, tal como un formato de serialización binaria,
para su inserción en el conjunto de código. Además, algunos
compiladores permiten que un desarrollador especifique solicitudes
de autorización usando anotaciones de seguridad declarativas en el
código fuente del conjunto de código. Seguidamente, el compilador
puede codificar las anotaciones en las solicitudes de autorización
integradas en el conjunto de código.
En una realización de la presente invención, las
solicitudes 120 de autorización se "teclean" de manera que
cada tipo de solicitud de autorización se pueda aplicar para filtrar
las autorizaciones de manera diferente. Basado en estas entradas,
el gestor 104 de normas computa las autorizaciones adecuadas para
cada conjunto de código y pasa los conjuntos de concesiones de
autorización resultantes a la
\hbox{lista 114 de programas y procedimientos de tiempo de ejecución.}
Así pues, cada conjunto de código de la lista de
programas y procedimientos de tiempo de ejecución está asociado con
un conjunto de concesiones de autorización correspondiente (por
ejemplo, conjuntos de concesiones de autorización 208, 210 y 212 de
la figura 2). Del gestor de normas se recibe un conjunto de
concesiones que define varias autorizaciones que han sido
computadas para un conjunto de código correspondiente. Las
autorizaciones asociadas con cada conjunto de código pueden variar
ampliamente dependiendo del origen relativo del conjunto de código
(por ejemplo, local o remoto), del origen específico del conjunto de
código (por ejemplo, un URL específico), o de otras características
de fiabilidad del conjunto de código, todo lo cual se puede
denominar "evidencia" 108. En una realización de la presente
invención, las características de fiabilidad se usan para determinar
un conjunto de concesiones de autorización para un conjunto de
código dado. Además, una especificación 116 de norma de seguridad
puede definir múltiples niveles de normativa dentro del marco de
seguridad de una determinada empresa, máquina, usuario, aplicación,
etc. donde se evalúan las características de fiabilidad de un
conjunto de código dado.
La figura 2 representa una lista 200 de
programas y procedimientos de tiempo de ejecución que contiene
conjuntos de código individuales dispuestos en el orden en el que
fueron llamados. Los conjuntos de código individuales se pueden
descargar de un sitio fuente remoto o se pueden recuperar localmente
del sistema 102 informático de la figura 1. Los conjuntos de código
individuales son cargados en listas 114 de programas y
procedimientos de tiempo de ejecución por el cargador 113 de clases
para acceso y ejecución por la máquina 110 virtual de la figura
1.
Por ejemplo, un objeto de la clase de aplicación
principal del conjunto 202 de código es cargado primero por el
cargador de clases en la lista 200 de programas y procedimientos de
tiempo de ejecución ilustrada. A medida que la máquina virtual
ejecuta la clase principal, la clase principal crea un objeto
reconocedor desde un conjunto 204 de código y llama un
procedimiento del objeto reconocedor para reconocer un archivo de
datos en un área protegida del sistema informático.
Consecuentemente, el cargador de clases carga el código del
reconocedor del conjunto 204 de código en la lista 200 de programas
y procedimientos de tiempo de ejecución. Posteriormente, el objeto
reconocedor crea un objeto de acceso a archivos desde un conjunto
206 de código y llama un procedimiento del objeto de acceso a
archivos para realizar una operación de lectura en el archivo
protegido. Consecuentemente, el cargador de clases carga el código
de acceso a ficheros del conjunto 206 de código en la
\hbox{lista 200 de programas y procedimientos de tiempo de ejecución.}
Cada conjunto de concesiones de autorización se
corresponde con un conjunto de código de la lista de programas y
procedimientos de tiempo de ejecución. Así pues, el intento de un
conjunto de código de acceder a un recurso protegido se evalúa
frente a su conjunto de concesiones de autorización asociado, así
como frente a los conjuntos de concesiones de autorización de otros
conjuntos de código de la lista 200 de programas y procedimientos
de tiempo de ejecución. En el ejemplo de la operación de lectura de
un fichero protegido por parte de la aplicación ilustrado en la
figura 2, el conjunto 202 de código principal está asociado con un
conjunto 208 de concesiones de autorización. El conjunto 202 de
código principal llama (como se representa mediante la flecha 214)
un procedimiento del conjunto 204 de código reconocedor, que está
asociado con el conjunto 210 de concesiones de autorización. Para
acceder al fichero protegido, el conjunto 204 de código reconocedor
llama (como se representa mediante la flecha 216) un procedimiento
del conjunto 206 de código de acceso a ficheros, que está asociado
con el conjunto 212 de concesiones de autorización. Para determinar
si el conjunto 206 de código de acceso a ficheros puede acceder al
fichero protegido, se calcula la "intersección" de los
conjuntos 208, 210 y 212 de concesiones de autorización y se usa
para determinar si la operación de acceso al fichero está
autorizada. Por ejemplo, si el conjunto 212 de concesiones de
autorización incluye una autorización para leer el fichero
protegido, pero no la incluye uno de los conjuntos 208 o 210 de
concesiones de autorización, en ese caso se niega el acceso al
fichero protegido.
Generalmente, una operación de
"intersección" (representada por el símbolo "\cap") es
una operación de conjuntos que obtiene los elementos comunes de los
conjuntos de la operación. Por ejemplo, si el conjunto 1 incluye
los elementos A, B, y C, y el conjunto 2 incluye los elementos B, C
y D, en ese caso la intersección del conjunto 1 y del conjunto 2
(es decir, conjunto 1 \cap conjunto 2) es igual a B y C. Por el
contrario, una operación de "unión" (representada por el
símbolo "\cup") es una operación de conjuntos que obtiene
todos los elementos de los conjuntos de la operación (es decir, la
agregación no duplicada de todos los elementos de los conjuntos).
Por ejemplo, si el conjunto 1 incluye los elementos A, B y C, y el
conjunto 2 incluye los elementos B, C y D, en ese caso la unión del
conjunto 1 y del conjunto 2 (es decir, conjunto 1 \cup conjunto 2)
es igual a A, B, C y D.
La figura 3 representa un sistema informático
para la gestión de seguridad basada en evidencia de una realización
de la presente invención. Un servidor 300 (por ejemplo, un servidor
de Internet) está acoplado a un cliente 302 (por ejemplo, un
cliente de Internet) por medio de una red de comunicación (no se
muestra). El cliente 302 ejecuta un entorno de tiempo de ejecución
(por ejemplo, el entorno COM+2.0 Run.time de Microsoft Corporation)
para gestionar la ejecución de aplicaciones en el cliente 302. En
una realización de la presente invención, el entorno de tiempo de
ejecución incluye un módulo 304 de verificación, un módulo 306
cargador y un gestor 308 de normas.
Como se expuso anteriormente, los conjuntos de
código se cargan en una lista 318 de programas y procedimientos de
tiempo de ejecución para su ejecución por una máquina 312 virtual.
Una primera categoría de conjunto de código está representada por
los conjuntos 314 de código locales que, generalmente, se consideran
conjuntos de código fiables porque se originan en el cliente 302.
Por el contrario, una segunda categoría de conjunto de código está
representada por los conjuntos 316 de código descargados, que se
pueden originar en sitios fuente remotos o no fiables, tal como el
servidor 300. En una realización de la presente invención, los
conjuntos 314 de código locales y los conjuntos 316 de código
descargados se introducen en el módulo 304 de verificación.
Seguidamente, los conjuntos de código se introducen en el módulo 306
cargador para ser cargados en la lista 318 de programas y
procedimientos de tiempo de ejecución.
Generalmente, los conjuntos 314 y 316 de código
están asociados con evidencias (o credenciales) usadas para
computar un conjunto de concesiones de autorización para cada
conjunto de código. Un componente de evidencia ejemplar puede ser
una firma de AUTHENTICODE. Otro componente de evidencia ejemplar es
una etiqueta de PICS (Plataforma de Selección de Contenidos de
Internet), que indica las propiedades de una fuente de Internet
(por ejemplo, un código ejecutable que ha sido verificado en cuanto
a virus). En "PICS: Internet Access Controls without
Censorship," de P. Resnick y J. Miller, Comunicaciones del ACM,
39 (1996), páginas 87 - 93; disponible también en
www.w3.org/pub/WWW/PICS/iacwcv2.htm, se exponen más detalles
relativos a una etiqueta de PICS. Otros ejemplos de evidencia
pueden incluir, sin limitación, pruebas de compra o de licencia,
identificadores de autor, identificadores de vendedor, información
de versionado, y credenciales programáticas. Las credenciales
programáticas pueden estar, por ejemplo, en forma de código de
programación que examina declaraciones hechas por otras
credenciales y aporta información complementaria de la red antes de
decidir qué declaraciones probatorias se debe facilitar al gestor
308 de normas.
La evidencia acerca de un conjunto de código
puede ser facilitada por el servidor o extraída del propio conjunto
de código. La evidencia 322 obtenida localmente o del servidor es,
implícitamente, fiable y se supone que es verdadera. Sin embargo,
la evidencia 320 descargada o facilitada por el conjunto de código
no es implícitamente fiable y debe ser o bien autoconfirmada (por
ejemplo, firmada digitalmente) o confirmada independientemente. La
evidencia 320 descargada puede ser descargada de uno o más sitios
fuente desde los cuales se origina el conjunto de código.
La evidencia 322 local y la evidencia 320
descargada se introducen en el gestor 308 de normas, que evalúa la
evidencia sobre la base de la normativa de seguridad. En el gestor
308 de normas, se evalúa la evidencia en combinación con la
especificación 326 de norma de seguridad (y, opcionalmente, con las
solicitudes 324 de autorización, que definen un conjunto de
autorizaciones solicitado por el conjunto de código) para generar
un conjunto de concesiones de autorización final que se corresponde
con un conjunto de código dado.
En una realización de la presente invención, las
solicitudes 324 de autorización están asociadas con uno o más
conjuntos 314 y 316 de código y pueden incluir al menos un conjunto
de solicitudes de autorización de tres tipos siguientes: (1) un
conjunto de solicitudes mínimo (MinRS); (2) un conjunto de
solicitudes opcional (OptRS); y (3) un conjunto de solicitudes de
rechazo (RefuseRS). Se debe entender que dentro del ámbito de la
presente invención se contemplan tipos alternativos de conjuntos de
solicitudes de autorización.
En una realización de la presente invención
(véase el diagrama de flujos de filtrado de la figura 6), los
valores por defecto de MinRS y RefuseRS son iguales al conjunto
vacío y el valor por defecto de OptRS es el conjunto universal.
Como consecuencia, si no se presenta solicitud de autorización
alguna, en ese caso, el conjunto de autorizaciones intermedio de la
figura 4 se concede como conjunto 414 de concesiones de autorización
resultante.
El conjunto de solicitudes mínimo define una
condición de autorización mínima y puede incluir el conjunto de
autorizaciones mínimo que requiere el conjunto del código asociado
para la ejecución. Si el conjunto de concesiones de autorización
generado por el gestor 308 de normas no satisface la condición de
autorización mínima (por ejemplo, si el conjunto de solicitudes
mínimo no es un subconjunto del conjunto de autorizaciones
intermedias producido por el generador 518 de conjuntos de
autorizaciones de la figura 5), en ese caso el gestor 308 de normas
plantea una excepción a la norma que indica al cargador 306 que el
conjunto de código 314 o 316 asociado no se debe cargar. En esta
realización, se valúa una determinación de seguridad que implica el
conjunto de solicitudes mínimo antes de la carga y ejecución del
conjunto de código. Alternativamente, un gestor 308 de normas puede
permitir que el conjunto de código sea cargado con un conjunto de
concesiones de autorización inadecuado, aunque en virtud del
conjunto de concesiones de autorización inadecuado, el conjunto de
código no llegará a ejecutarse.
Alternativamente, dentro del ámbito de la
presente invención se pueden emplear condiciones de autorización
mínimas, incluso sin limitación, la provisión de múltiples conjuntos
de solicitudes formuladas, en las que la condición de autorización
mínima se satisface si al menos uno de los conjuntos de solicitudes
formuladas es un subconjunto del conjunto de autorizaciones
intermedias. Así pues, el primer conjunto de solicitudes formuladas
a satisfacer se puede usar para filtrar el conjunto de
autorizaciones intermedias.
Además, también se pueden emplear técnicas
alternativas para prevenir la ejecución del conjunto de código,
incluso sin limitación el establecimiento de atributos asociados con
el conjunto de código 314 o 316 asociado que indique que la
condición de autorización mínima no se ha satisfecho. El cargador
306, por ejemplo, puede comprobar los atributos de cada conjunto de
código antes de proseguir con la carga del conjunto de código. El
cargador 306 también puede devolver un resultado a la máquina 312
virtual indicando que el conjunto de código dejó de cargarse y que
no se puede ejecutar.
En una realización alternativa de la presente
invención, el entorno de tiempo de ejecución dentro del cliente 302
puede intentar establecer una acción correctiva en respuesta a un
fallo del conjunto de código en la obtención de autorizaciones que
satisfagan el conjunto de solicitudes mínimo. Por ejemplo, si un
conjunto de solicitudes mínimo incluye una autorización requerida
para escribir en un directorio protegido dado, el entorno de tiempo
de ejecución puede preguntar al usuario si concede esta
autorización. Además, se puede eliminar la autoridad requerida para
que un usuario conceda interactivamente dicha autorización requerida
sobre la base de la identidad del usuario (por ejemplo, solamente
un usuario con "status" de administrador puede conceder
interactivamente dicha autorización).
El conjunto de solicitudes opcional contiene
autorizaciones que el conjunto de código preferiría que fueran
concedidas, pero que no son absolutamente necesarias para que se
ejecute el conjunto de código. Dichas autorizaciones opcionales
pueden permitir que un conjunto de código presente funcionalidad
mejorada. Sin embargo, si las autorizaciones opcionales no son
concedidas, en ese caso todavía puede estar disponible una
funcionalidad más básica, como se define en el conjunto de
solicitudes mínimo.
Una realización de la presente invención soporta
la naturaleza opcional del conjunto de solicitudes opcional
incorporando la funcionalidad opcional en el conjunto de código. Es
decir, si algunas o todas las autorizaciones del conjunto de
solicitudes opcional no son concedidas, el conjunto de código puede
descubrir esto cuando se niegue una operación solicitada (o cuando
se niegue la autorización opcional solicitada) durante la ejecución.
En respuesta a dicha negativa, el conjunto de código puede ejecutar
un código alternativo o adicional que se base en una autorización
diferente, tal como una autorización indicada en el conjunto de
autorizaciones mínimo. En esta realización, una determinación de
seguridad que implique el conjunto de solicitudes mínimo se evalúa
durante la ejecución del conjunto de código.
En una realización alternativa, pueden ser
recibidos múltiples conjuntos de solicitudes opcionales por el
gestor 308 de normas. Los conjuntos de solicitudes opcionales pueden
ser procesados para especificar las autorizaciones solicitadas
correspondientes a los niveles múltiples de funcionalidad. Basado en
los conjuntos de solicitudes opcionales que pueden ser satisfechas
o no por el conjunto de autorizaciones, el gestor 308 de normas
puede indicar al cargador 306 que omita la carga de una o más
clases. Por ejemplo, puede no ser necesario cargar una clase dada
si el cargador 306 sabe de antemano que las autorizaciones
requeridas por la clase no están disponibles. Dichos conjuntos de
solicitudes opcionales pueden ser formuladas también de manera que
un máximo nivel de concesión de autorización pueda dar lugar a la
carga de conjuntos de código adecuados para permitir un máximo
nivel de funcionalidad.
\global\parskip0.900000\baselineskip
Alternativamente, los conjuntos de solicitudes
opcionales se pueden usar para especificar grupos de autorizaciones
opcionales. Por ejemplo, para proporcionar un primer nivel de
funcionalidad, un conjunto de código puede requerir las
autorizaciones A, B, C y D (como se especificó en un primer conjunto
de solicitudes opcional), mientras que para proporcionar un segundo
nivel de funcionalidad, el conjunto de código puede requerir
solamente las autorizaciones A y B (como se especificó en un
segundo conjunto de solicitudes opcional). Así pues, si el conjunto
de autorizaciones puede proporcionar solamente las autorizaciones A,
B y C no se satisface el primer conjunto de solicitudes opcional.
Consecuentemente, el segundo conjunto de solicitudes opcional filtra
el conjunto de autorizaciones para proporcionar solamente las
autorizaciones A y B, evitando una concesión innecesaria de la
autorización C.
Además, debido a que el procedimiento de
verificación en el módulo 304 de verificación y el procedimiento de
gestión de la seguridad en el gestor 308 de normas se pueden
ejecutar concurrentemente, los dos procedimientos pueden
comunicarse entre sí para afectarse mutuamente. Por ejemplo, el
gestor 308 de normas puede evaluar una evidencia que indica que un
conjunto de código dado está garantizado que es de tipo seguro.
Consecuentemente, esta garantía de seguridad del tipo se puede
comunicar al módulo 304 de verificación, el cual puede omitir una
operación de comprobación de tipo sobre la base de dicha
información. Alternativamente, el módulo 304 de verificación puede
determinar que un conjunto de código dado no pase una comprobación
de seguridad de tipo. En respuesta, el módulo 304 de verificación
puede comunicarse con el gestor 308 de normas para preguntar si al
conjunto de código le ha sido concedida una autorización de
ejecución a pesar de no haber logrado pasar una comprobación de
seguridad de tipo.
La figura 4 representa módulos de un gestor de
normas para gestionar seguridad basada en evidencia en una
realización de la presente invención. Los módulos ejecutables
descritos en relación con la figura pueden ser ejecutados como
módulos de software que sean ejecutables en un sistema informático.
Alternativamente, en el ámbito de la presente invención se
contemplan también módulos ejecutables ejecutados en hardware o en
una combinación de hardware y software. Además, los módulos
revelados en la presente se pueden combinar en menos módulos o
dividir en más módulos sin salir del ámbito de la presente
invención.
Para recibir una especificación 402 de norma de
seguridad y un conjunto 404 de evidencias, se acopla un gestor 400
de normas. La especificación 402 de norma de seguridad especifica
una definición de uno o más grupos de código. En una realización,
los grupos de código están configurados en una o más colecciones de
grupos. Alternativamente, los grupos de código pueden estar
configurados en una o más jerarquías de grupos de código. La
especificación de la norma de seguridad puede definir también uno o
más niveles de norma. El conjunto 404 de evidencias define
características de fiabilidad asociadas con conjunto de código
recibido por un sistema informático.
En una realización de la presente invención, un
módulo 406 reconocedor recibe la especificación 402 de norma de
seguridad y extrae una definición de uno o más grupos de código
designados. Cada grupo de código está asociado con un criterio de
pertenencia, una definición de descendiente (que especifica cero o
más grupos de código descendientes del grupo de código), y un
conjunto de autorizaciones del grupo de código. El criterio de
pertenencia especifica las condiciones de pertenencia a un grupo de
código dado, que un conjunto de evidencias debe satisfacer para que
un conjunto de código correspondiente sea considerado perteneciente
al grupo de código. La definición de grupo de código descendiente
especifica el descendiente de un grupo de código dado. Si un
conjunto de código demuestra su pertenencia a un primer grupo de
código (es decir, un grupo de código progenitor), se considerará
que el conjunto de código pertenece a los grupos de código
descendientes del grupo de código progenitor. Los conjuntos de
autorizaciones del grupo de código representan colecciones de
autorizaciones que pueden ser asignadas a grupos de código. Si se
determina que un conjunto de código pertenece al grupo de código,
las autorizaciones del conjunto de autorizaciones asociado pueden
ser concedidas al conjunto de código, dependiendo de otras
operaciones del gestor de normas.
Otras realizaciones del grupo de código pueden
incluir configuraciones de información alternativas. Por ejemplo,
en una realización, la colección de grupos de código está
representada en una lista unidimensional de grupos de código, en la
que cada grupo de código incluye un criterio de pertenencia y un
conjunto de autorizaciones, y omite una definición de grupo de
código descendiente presentada anteriormente. En esta realización,
la lista unidimensional puede estar ordenada o no ordenada. Además,
dentro del ámbito de la presente invención se contemplan otras
configuraciones de la información.
En una realización ejemplar de la presente
invención, los conjuntos de autorizaciones pueden estar designados
para facilitar su identificación en la especificación 402 de norma
de seguridad. Más de un grupo de código pueden tener asignado el
mismo conjunto de autorizaciones. Así pues, si se hace un cambio en
un conjunto de autorizaciones designado (por ejemplo, inserción o
eliminación de una autorización individual), el cambio afecta a
todos los grupos de código asociados con ese conjunto de
autorizaciones designado. Por ejemplo, para conceder las mismas
autorizaciones a varios sitios de Internet de una asociación
comercial de extranet que pertenecen a grupos de código diferentes,
se puede definir un solo conjunto de autorizaciones designado y
asignarlo a varios grupos de código.
En una realización de la presente invención, se
soportan tres tipos de conjunto de autorizaciones designados: (1)
conjuntos de autorizaciones estándar -estos conjuntos están
predefinidos y no se pueden cambiar; (2) conjuntos de
autorizaciones predefinidos -estos conjuntos pueden ser modificados
por el administrador; y (3) conjuntos de autorizaciones
personalizados -estos conjuntos pueden ser definidos por un usuario
siempre que las designaciones del conjunto de autorizaciones no
entren en conflicto con las designaciones de conjuntos de
autorizaciones estándar o predefinidos. En una realización, los
conjuntos de autorizaciones estándar están disponibles en todos los
niveles de normativa y no se pueden predefinir en nivel de normativa
de seguridad alguno (ámbito universal). En esta realización, los
conjuntos de autorizaciones predefinidos y personalizados se definen
y se referencian dentro de cualquier nivel de normativa y no se
pueden referenciar desde otros niveles de normativa (ámbito de
nivel de normativa). Sin embargo, se debe entender que, en una
realización alternativa de la presente invención, el ámbito de
cualquier conjunto de autorizaciones se puede ampliar hasta más allá
de un nivel de normativa dado.
La Tabla 1 describe conjuntos de autorizaciones
estándar disponibles en una realización de la presente invención.
Algunos conjuntos de autorizaciones estándar, tales como conjuntos
de Internet y de intranets locales, están predefinidos, pero pueden
ser modificados por un usuario o administrador. En una realización
de la presente invención, otros conjuntos de autorizaciones, tales
como los de verificación omitida, no se pueden modificar. Dentro
del ámbito de la presente invención se contemplan también conjuntos
de autorizaciones designados, y los conjuntos de autorizaciones
designados descritos en la Tabla 1 se pueden modificar sin salir de
la presente invención.
Aunque en la presente se describen muchas
autorizaciones como autorizaciones ejemplares, en una realización
de la presente invención la lista de las posibles autorizaciones
contempladas dentro del ámbito de la presente invención no se
limita a estas autorizaciones ejemplares. Por ejemplo, una
autorización puede ser concedida para permitir la ejecución de un
conjunto de código a pesar de omitir la verificación. Otra
autorización puede ser concedida para permitir que una clase de un
conjunto de código sea heredera de una clase de otro conjunto de
código (por ejemplo, un derecho a subclasificar).
El conjunto de autorizaciones de grupo de código
asociado con un grupo de código dado puede especificar
autorizaciones asociadas con el grupo de código. Alternativamente,
el conjunto de de autorizaciones del grupo de código asociado con
un grupo de código dado puede especificar autorizaciones asociadas
con el grupo de código y con todos los grupos de código
progenitores. Esta flexibilidad permite una variedad de
configuraciones de seguridad (por ejemplo, niveles de normativa,
conjuntos de autorizaciones, criterios de pertenencia, etc.) a
definir en una especificación de norma de seguridad. Como se expuso
anteriormente, el gestor de normas puede estar desarrollado para
albergar dicha variedad de configuraciones de seguridad.
En una realización, la especificación 402 de
norma de seguridad puede especificar también múltiples niveles de
la norma, teniendo cada nivel de la norma uno o más grupos de
código. Los grupos de código se pueden configurar en una o más
colecciones de grupos de código. Los niveles de la norma permiten
que un administrador, por ejemplo, defina diferentes normas de
seguridad para diferentes máquinas, usuarios, aplicaciones, periodos
de tiempo, grupos de usuarios, etc. Cuando un módulo 410 evaluador
de pertenencias genera un conjunto de autorizaciones con un nivel
de norma, el módulo 410 evaluador de pertenencias cruza a través de
los grupos de código asociados con ese nivel de norma. Por
consiguiente, el gestor 400 de normas puede generar un conjunto de
autorizaciones asociado con el nivel de normativa individual.
Posteriormente, los conjuntos de autorizaciones de los múltiples
niveles de normativa pueden ser procesados (por ejemplo, combinados
o seleccionados) para generar un conjunto 414 de concesiones de
autorización resultante.
En la realización ilustrada, un módulo 408
generador de colecciones de grupos de código recibe la definición
de reconocida del módulo 406 reconocedor y genera una o más
colecciones de grupos de código en la memoria del sistema
informático. El módulo 410 evaluador de pertenencias recibe el
conjunto 404 de evidencias y extrae características de fiabilidad
relacionadas con el correspondiente conjunto de código. El módulo
410 evaluador de pertenencias cruza a través de los grupos de
código para determinar si el conjunto de código pertenece a uno o
más grupos de código. Un módulo 412 generador de conjuntos de
autorizaciones recibe la determinación de la pertenencia del módulo
419 evaluador de pertenencias y genera un conjunto 422 de
autorizaciones intermedias, basado en una combinación lógica de los
conjuntos de autorizaciones del grupo de código asociado con grupos
de código cuya pertenencia ha sido determinada. Un módulo 424 de
filtro de autorizaciones/solicitudes filtra el conjunto 422 de
autorizaciones intermedias y genera el conjunto 414 de concesiones
de autorización resultante.
La figura 5 representa niveles de normativa
ejemplares sobre los que opera un gestor de normas de una
realización de la presente invención. En el gestor 502 de normas
procesa una especificación 500 de norma de seguridad para generar
uno o más niveles 506, 508 y 510 de normativa de seguridad (este
procedimiento está representado por las líneas de puntos que
apuntan a cada uno de los niveles de normativa). En una realización
de la presente invención, la especificación 500 de norma de
seguridad está escrita en un archivo de XML (Lenguaje de maquetación
extensible). Sin embargo, en realizaciones alternativas, se pueden
emplear otros formatos de información, incluso sin limitación SGML
(Lenguaje de Maquetación Generalizado Estándar), HTML (Lenguaje de
Maquetación de Hiper Texto), RDF (Marco de Descripción de
Recursos), Visual Basic, y otros formatos de información y código
estándar y personalizado.
En una realización de la presente invención, la
especificación 500 de norma de seguridad es una representación
constante de una norma de seguridad (por ejemplo, una colección
ordenada de niveles de normativa y/o colecciones de grupos de
código), en la que cada nivel de normativa está construido con
grupos de código. Los niveles de normativa de orden inferior
especifican generalmente limitaciones de la normativa más
restrictivas que las de los niveles de normativa de orden superior.
La especificación 500 de norma de seguridad es generada típicamente
por un sistema de administrador, un usuario o un programa de
instalación de la aplicación que tiene autorizaciones adecuadas.
Los niveles de normativa ejemplares pueden incluir sin limitación
niveles
\hbox{de normativa de empresa, máquina, usuario y aplicación.}
En una realización de la presente invención, el
nivel más alto del nivel normativo es un nivel normativo de
empresa, que puede definir la norma de seguridad aplicada a todos
los sistemas dentro de una empresa dada. Un nivel inferior del
nivel de normativa es un nivel de normativa de una máquina, que
puede definir la norma de seguridad aplicada a todos los usuarios
de un sistema dado. Un nivel de normativa de usuario puede definir
la norma de seguridad aplicada a un usuario dado, independientemente
de en que sistema individual está registrado el usuario. Un nivel
de normativa de aplicación puede definir una norma de seguridad
aplicada a una aplicación dada, independientemente del usuario o
sistema de ejecución de la aplicación. Dentro del ámbito de la
presente invención se contemplan niveles de normativa y órdenes de
nivel de normativa adicionales.
La especificación 500 de norma de seguridad
también gestiona seguridad usando colecciones de grupos de código
(por ejemplo, colecciones de niveles de grupo de código), que son
definidos por las condiciones de pertenencia y contienen conjuntos
de autorizaciones y atributos especiales. La especificación 500 de
norma de seguridad consta de declaraciones de grupos de código con
conjuntos de autorizaciones asociados. Un conjunto de código que
pertenece a un grupo de código dado puede recibir concesiones de
autorización del conjunto de autorizaciones asociado con el grupo
de código. La pertenencia a un grupo de código es determinada por el
gestor 502 de normas usando el conjunto 504 de evidencias asociado
con el conjunto de código, tal como una firma digital, el origen
del conjunto de código, etc. Un administrador puede añadir un grupo
de código a la colección de grupos de código para conceder
autorizaciones adicionales a los conjuntos de código que pertenecen
al nuevo grupo de código.
En una realización de la presente invención, un
grupo de código puede ser atribuido con un indicador de propiedad
"Exclusiva", que especifica que solamente las autorizaciones
asociadas con este grupo de código específico se deben aplicar al
conjunto de código perteneciente a dicho grupo. Los conjuntos de
autorizaciones de otros grupos de código pertenecientes se ignoran
(es decir, no se combinan).
En una realización de la presente invención, los
grupos de código se definen en una colección de grupos de código
que tiene un nodo raíz correspondiente a "todos" los conjuntos
de código. El nodo raíz representa un grupo de código progenitor
que tiene nodos descendientes, cada uno de los cuales puede tener
también nodos descendientes, etc., para formar una jerarquía de
grupos de código. Dentro del ámbito de la presente invención
también se contemplan colecciones de grupos de código alternativas
incluso, sin limitación, listas ordenadas y no ordenadas de grupos
de código. Si el gestor 502 de normas determina que un conjunto de
código pertenece a un grupo de código progenitor, en ese caso, se
prueba el conjunto de código comparándolo con los descendientes del
grupo de código progenitor para determinar la pertenencia del mismo.
Los tipos de grupo de código ejemplares y los criterios de
pertenencia se describen en la Tabla 2, aunque se contemplan otros
tipos de grupos de código dentro del ámbito de la presente
invención. Además, los tipos de grupos de código pueden estar
asociados con una propiedad. Por ejemplo, un tipo de grupo de
código "editor de software" puede
\hbox{estar asociado con un editor especificado, Microsoft , como en Editor: Microsoft .}
\newpage
\global\parskip1.000000\baselineskip
Además, la especificación 500 de norma de
seguridad puede definir múltiples niveles de normativa. En la
realización ilustrada, cada nivel de normativa (por ejemplo, nivel
empresa 506, nivel máquina 508 y nivel usuario 510) tiene una
colección de grupos de código individual. Como se expuso
anteriormente, dentro del ámbito de la presente invención, se
pueden emplear otras configuraciones del nivel de normativa, tales
como una o más colecciones de grupos de código sobre las cuales se
distribuyen los múltiples niveles de normativa (por ejemplo, un
nivel de normativa por subárbol asociado con un descendiente de un
nodo raíz).
En la realización ilustrada, se genera un
conjunto de autorizaciones con nivel de normativa (por ejemplo,
conjunto 512 de autorizaciones de nivel empresa, conjunto 514 de
autorizaciones de nivel máquina, o conjunto 516 de autorizaciones
de nivel usuario) de cada uno de los niveles de normativa. Un
combinador de conjuntos de autorizaciones con nivel de normativa
combina o de otro modo procesa los conjuntos 512, 514 y 516 de
autorizaciones con nivel de normativa para generar un conjunto 526
de autorizaciones intermedias. El filtro 524 de
autorizaciones/solicitudes introduce solicitudes 522 de
autorización y aplica un algoritmo de filtro al conjunto 526 de
autorizaciones intermedias para generar el conjunto 520 de
concesiones de autorización resultante, si es pertinente.
En una realización ejemplar, el filtro 524 de
autorizaciones/solicitudes aplica un algoritmo de filtro para
generar el conjunto 520 de concesiones de autorización, descrito en
combinación con la figura 6:
- 1)
- MaxRS = (MinRS \cup OptRS) [Operación 600]
- 2)
- Si (MinRS no es un subconjunto de IntPS) [Operación 602], en ese caso el gestor 502 de normas lanza una excepción a la norma para prevenir la carga y/o ejecución del conjunto de código [Operación 604]
- 3)
- Si (MinRS es un subconjunto de IntPS) [Operación 602], en ese caso PGS = (MaxRS \cap IntPS) - RefuseRS [Operación 606]
- 4)
- Si (PGS incluye la autorización de ejecución) [Operación 608], en ese caso el conjunto de código puede ser cargado por el cargador 306 de la figura 3 [Operación 610] y PGS puede ser cargado en el área de memoria 318 de tiempo de ejecución en la figura 3 en asociación con el conjunto de código [Operación 612]
- 5)
- Si (PGS no incluye la autorización de ejecución) [Operación 608], en ese caso el gestor 502 de normas lanza una excepción a la norma para prevenir la carga y/o ejecución del conjunto de código [Operación 614]
donde PGS representa el conjunto
520 de concesiones de autorización, IntPS representa el conjunto 526
de autorizaciones intermedias, MaxAS representa el conjunto de
solicitudes máximo, MinRS representa las solicitudes de autorización
mínimas, OptAS representa solicitudes de autorización opcional, y
RefuseRS representa solicitudes de autorización rechazadas. MinRS,
OptRS, y RefuseRS son recibidos como elementos de las solicitudes
522 de
autorización.
En una realización de la presente invención, si
MinRS, OptRS, o RefuseAS no se especifican, se les asignan valores
por defecto. Para MinRS y RefuseAS, los valores por defecto son
conjuntos vacíos. Para OptRS, el valor por defecto es el conjunto
universal. Por ejemplo, si MinRS y OptRS no se especifican, en ese
caso PGS sería igual a lntPS - RefusePS.
La operación 606 lógica de conjuntos se usa para
generar un subconjunto del conjunto de autorizaciones intermedias,
de manera que en el conjunto de concesiones de autorización
solamente se incluyen las autorizaciones necesarias. Es decir, el
conjunto de autorizaciones intermedias puede ser mucho más amplio
que el requerido o solicitado por el conjunto de código.
Consecuentemente, se omiten las autorizaciones innecesarias o no
solicitadas del conjunto de concesiones de autorización
resultante.
Se debe entender que el algoritmo revelado
anteriormente es meramente un algoritmo ejemplar del filtrado de un
conjunto de autorizaciones intermedias que usa solicitudes de
autorización. Dentro del ámbito de la presente invención se
contemplan algoritmos alternativos, especialmente si se usa una
combinación de solicitudes de autorización alternativas (por
ejemplo, tipos adicionales de conjuntos de autorizaciones).
La figura 7 ilustra un sistema ejemplar útil
para la implementación de una realización de la presente invención.
Un sistema informático ejemplar para las realizaciones de la
invención incluye un dispositivo de computo de uso general en forma
de sistema 700 informático convencional, que incluye una unidad 702
de procesador, una memoria 704 del sistema, y un colector 706 del
sistema que acopla varios componentes del sistema incluso la
memoria 704 del sistema a la unidad 700 de procesador. El colector
706 del sistema puede ser cualquiera de los diferentes tipos de
estructuras de colector que incluya un colector de memoria o
controlador de la memoria, un colector periférico y un colector
local que usa cualquiera de las diferentes arquitecturas de
colector. La memoria del sistema incluye una memoria 708 de solo
lectura (ROM) y una memoria 710 de acceso aleatorio (RAM). En la
ROM 708 está almacenado un sistema 712 de entrada/salida básico
(BIOS), que contiene rutinas básicas que ayudan a transferir
información entre elementos instalados dentro del sistema 700
informático.
\newpage
El sistema 700 informático incluye además una
unidad 712 de disco duro para leer de y escribir en un disco duro,
una unidad 714 de disco magnético para leer de o escribir en un
disco 716 magnético extraible, y una unidad 718 de disco óptico
para leer de o escribir en un disco 719 óptico extraible tal como un
CD ROM, DVD u otros medios ópticos. La unidad 712 de disco duro, la
unidad 714 de disco magnético y la unidad 718 de disco óptico están
conectados al colector 706 del sistema por una interfaz 720 de la
unidad de disco duro, una interfaz 722 de la unidad de disco
magnético, y una interfaz 724 de la unidad de disco óptico,
respectivamente. Las unidades y sus medios informáticos legibles
asociados permiten el almacenamiento no volátil de instrucciones
legibles de ordenador, estructuras de datos, programas y otra
información del sistema 700 informático.
Aunque el entorno ejemplar descrito en la
presente emplea un disco duro, un disco 716 magnético extraible, y
un disco 719 óptico extraible, en el sistema ejemplar se pueden usar
otros tipos de medios legibles del ordenador capaces de almacenar
información. Los ejemplos de estos otros tipos de medios legibles
del ordenador que se pueden usar en el entorno operativo ejemplar
incluyen casettes magnéticos, tarjetas de memoria no volátil,
discos de vídeo digitales, cartuchos Bemoulli, memorias de acceso al
azar (RAM), y memorias de solo lectura (ROM).
En el disco duro, disco 716 magnético, disco 719
óptico, ROM 708 o RAM 710 se pueden almacenar varios módulos de
programa, incluso un sistema 726 operativo, uno o más programas 728
de aplicación, otros módulos 730 de programas e información 732 de
programas. Un usuario puede introducir comandos e información en el
sistema 700 informático a través de dispositivos de entrada tales
como un teclado 734 y un ratón 736 u otros dispositivos de
señalización. Los ejemplos de otros dispositivos de entrada pueden
incluir un micrófono, una palanca de control, una almohadilla de
juego, antena parabólica y escáner. Estos y otros dispositivos de
entrada se conectan frecuentemente a la unidad 702 de proceso a
través de una interfaz 740 de puerto en serie que se acopla al
colector 706 del sistema. No obstante, estos dispositivos de entrada
también se pueden conectar a través de otras interfaces, tales como
un puerto en paralelo, puerto de juego, o un colector en serie
universal (USB). También se conecta al colector 706 del sistema un
monitor 742 u otro tipo de dispositivo de presentación por medio de
una interfaz, tal como un adaptador 744 de vídeo. Además del monitor
742, los sistemas informáticos típicamente incluyen otros
dispositivos periféricos de salida (no se muestran), tales como
altavoces e impresoras.
El sistema 700 informático puede operar en un
entorno de red usando conexiones lógicas a uno o más ordenadores
remotos, tales como un ordenador 746 remoto. El ordenador 746 remoto
puede ser un sistema de ordenadores, un servidor, un enrutador, un
PC en red, un dispositivo de conexión punto a punto u otro nodo de
red común y, típicamente, incluye muchos o todos los elementos
descritos anteriormente en relación con el sistema 700 informático.
Las conexiones en red incluyen una red de área local (LAN) 748 y una
red de área amplia (WAN) 750. Dichos entornos de red son habituales
en oficinas, redes de ordenadores amplias de empresa, intranets, e
Internet.
El sistema 700 informático, cuando se usa en un
entorno de red LAN se conecta a la red 748 local a través de una
interfaz o adaptador 752 de red. El sistema 700 informático, cuando
se usa en un entorno de red WAN típicamente incluye un módem 754 u
otro medio para el establecimiento de comunicaciones a través de la
red 750 de área amplia, tal como la Internet. El módem 754, que
puede ser interno o externo, se conecta al colector 706 del sistema
a través de la interfaz 740 de puerto en serie. En un entorno de
red, los módulos de programas representados en relación con el
sistema 700 informático, o partes del mismo, se pueden almacenar en
el dispositivo de almacenamiento de memoria remota. Se puede
apreciar que las conexiones en red mostradas son ejemplares y que
se pueden utilizar otros medios para establecer un enlace de
comunicación entre los ordenadores.
En la realización ilustrada, se puede leer una
especificación de norma de seguridad en una unidad 712 de disco
duro, por ejemplo, en la memoria 704. La CPU 702 ejecuta código de
instrucciones residente en memoria para los procedimientos de
ordenador que ponen en funcionamiento una máquina virtual y que
generan un conjunto de concesiones de autorización usando
solicitudes de autorización tecleadas asociadas con el conjunto de
código recibido de un sitio fuente. Además, la CPU 702 ejecuta los
componentes del software que ponen en práctica el gestor de normas
citado en las reivindicaciones.
La figura 8 ilustra un diagrama de flujos de
operaciones de una realización de la presente invención para la
generación de un conjunto de concesiones de autorización que usa las
solicitudes de autorización tecleadas asociadas con el conjunto de
código recibido de un sitio fuente. La operación 800 de definición
define una colección de grupos de código de acuerdo con una
especificación de norma de seguridad. La colección de grupos de
código incluye uno o más grupos y puede estar configurada como
jerarquía de grupos de código. La operación 802 de recepción recibe
las evidencias asociadas con un conjunto de código. La operación 804
de pertenencia evalúa la pertenencia del conjunto de código
respecto de los grupos de código. Generalmente, la evaluación se
basa en un criterio de pertenencia asociado con cada grupo de
código.
La operación 806 de generación genera un
conjunto de autorizaciones basado en una o más determinaciones de
pertenencia hechas por la operación 804 de pertenencia. Por ejemplo,
en una realización en la que la colección de grupos de código está
configurada como jerarquía de grupos de código, el conjunto de
autorizaciones se genera dinámicamente combinando autorizaciones
asociadas con un grupo de código progenitor y con grupos de código
descendentes a los que el conjunto de código está determinado que
pertenece. Las autorizaciones combinadas se producen en la
operación 806 de generación como el conjunto de autorizaciones que
es recibido por un módulo de filtro de
autorizaciones/solicitudes.
La operación 808 de recepción recibe solicitudes
de autorización asociadas con el conjunto de código. Las
solicitudes de autorización se pueden recibir como parte del
conjunto de código, o recibir (o recuperar) de otra fuente, tal
como un sitio fuente local (por ejemplo, dentro del sistema
informático, de un periférico o medio de almacenamiento adjunto, o
de un sitio de almacenamiento de la red) o un sitio fuente remoto
(por ejemplo, por medio de la Internet).
La operación 810 de filtrado filtra el conjunto
de autorizaciones basada en el conjunto de solicitudes de
autorización para controlar la ejecución del conjunto de código. Si
la operación 810 de filtrado determina que un conjunto de
solicitudes mínimo, si se presenta en asociación con el conjunto de
código, no es un subconjunto del conjunto de autorizaciones, el
gestor de normas puede prevenir la carga o ejecución del conjunto de
código. Análogamente, si una ejecución de autorización no está
incluida en el conjunto de autorizaciones, la operación 810 de
filtrado puede prevenir la carga u operación del conjunto de
código.
La operación 810 de filtrado también puede
omitir las autorizaciones no incluidas en un conjunto de solicitudes
mínimo o en un conjunto de solicitudes máximo, si se presentan en
asociación con el conjunto de código, al generar el conjunto de
concesiones de autorización para evitar la concesión de
autorizaciones no solicitadas por el conjunto de código. Además,
las autorizaciones incluidas en un conjunto de solicitudes de
rechazo, si se presentan en asociación con el conjunto de código,
también pueden ser omitidas del conjunto de concesiones de
autorización.
Las realizaciones de la invención descritas en
la presente se ejecutan como etapas lógicas en uno o más sistemas
informáticos. Las operaciones lógicas de la presente invención se
ejecutan (1) como una secuencia en la ejecución de etapas
implementadas por un procesador en uno o más sistemas informáticos y
(2) como módulos de máquina interconectados con uno o más sistemas
informáticos. La implementación es cuestión de elección, dependiente
de los requisitos de rendimiento del sistema informático que
implementa la invención. Consecuentemente, las operaciones lógicas
que constituyen las realizaciones de la invención descritas en la
presente se denominan diversamente operaciones, etapas, objetivos o
módulos.
La especificación, ejemplos y datos anteriores
constituyen una descripción completa de la estructura y del uso de
realizaciones ejemplares de la invención. Dado que se pueden hacer
muchas realizaciones de la invención sin salir del ámbito la
invención, la invención reside en las reivindicaciones adjuntas a
continuación.
Claims (33)
1. Un procedimiento para el procesado de un
conjunto de autorizaciones asociado con un conjunto de código (106)
recibido de un sitio fuente (100) para controlar la ejecución del
conjunto de código, comprendiendo el procedimiento:
- recepción del conjunto de autorizaciones que incluye al menos una autorización asociada con el conjunto de código;
- recepción de un conjunto de solicitudes de autorización (120, 324, 420, 522) en asociación con el conjunto de código; y
- filtrado del conjunto de autorizaciones basado en el conjunto de solicitudes de autorización para controlar la ejecución del conjunto de código;
caracterizado
porque
el conjunto de solicitudes de autorización
especifica un conjunto de solicitudes opcional que especifica un
conjunto opcional de autorizaciones solicitadas en asociación con el
conjunto de código; y
la operación de filtrado comprende el filtrado
del conjunto de autorizaciones basado en el conjunto de solicitudes
opcional para generar un conjunto de concesiones de autorización
(208 - 212, 414, 520); y que comprende además:
- ejecución de un primer nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional es un subconjunto del conjunto de concesiones de autorización; y
- ejecución de un segundo nivel de funcionalidad del conjunto de código si el conjunto de solicitudes opcional no es un subconjunto del conjunto de concesiones de autorización.
2. El procedimiento de la reivindicación 1, en
el que la operación de filtrado comprende:
- generación del conjunto de concesiones de autorización de un subconjunto del conjunto de autorizaciones, siendo especificado el subconjunto por el conjunto de solicitudes de autorización.
3. El procedimiento de la reivindicación 1 en
el que la operación de filtrado comprende:
- cómputo de una operación lógica de conjuntos con el conjunto de autorizaciones y el conjunto de solicitudes de autorización para generar un conjunto de concesiones de autorización.
4. El procedimiento de la reivindicación 1 en
el que el conjunto de solicitudes de autorización especifica una
condición de autorización mínima y la operación de filtrado
comprende:
- impedir la carga del conjunto de código si el conjunto de autorizaciones deja de satisfacer la condición de autorización mínima.
5. El procedimiento de la reivindicación 1 en
el que el conjunto de solicitudes de autorización especifica una
condición de autorización mínima y la operación de filtrado
comprende:
- impedir la ejecución del conjunto de código si el conjunto de autorizaciones deja de satisfacer la condición de autorización mínima.
6. El procedimiento de la reivindicación 1 que
comprende además:
- definición (800) de una colección de grupos de código basada en una especificación de norma de seguridad (326, 402, 500), incluyendo la colección de grupos de código uno más grupos de código;
- recepción (802) de la evidencia (108, 320, 404, 504) asociada con el conjunto de código;
- evaluación (804) de la pertenencia del conjunto de código a uno o más grupos de código, basada en la evidencia; y
- generación (806) del conjunto de autorizaciones basada en la pertenencia del conjunto de códigos a uno o más grupos de código.
7. El procedimiento de la reivindicación 1 en
el que el conjunto de solicitudes de autorización especifica una
pluralidad de conjuntos de solicitudes de autorización tecleados,
especificando cada conjunto de solicitudes de autorización tecleado
un tipo distinto de preferencia de autorización solicitada en
asociación con el conjunto de código.
8. El procedimiento de la reivindicación 1 en
el que el conjunto de solicitudes de autorización especifica un
conjunto de solicitudes mínimo que especifica un conjunto mínimo de
autorizaciones solicitadas en asociación con el conjunto de
código.
9. El procedimiento de la reivindicación 8 en
el que la operación de filtrado comprende:
- filtrado del conjunto de autorizaciones basado en el conjunto de solicitudes mínimo para generar el conjunto de concesiones de autorización, de manera tal que el conjunto de concesiones de autorización incluya un subconjunto del conjunto de autorizaciones.
10. El procedimiento de la reivindicación 8 que
comprende además:
- impedir la carga del conjunto de código si el conjunto de solicitudes de autorización no es un subconjunto del conjunto de autorizaciones.
11. El procedimiento de la reivindicación 8 que
comprende además:
- impedir la ejecución del conjunto de código si el conjunto de solicitudes mínimo no es un subconjunto del conjunto de autorizaciones.
12. El procedimiento de la reivindicación 1 en
el que el conjunto de solicitudes de autorización especifica un
conjunto de solicitudes denegadas que especifica un conjunto de una
o más autorizaciones a omitir del conjunto de concesiones de
autorización en asociación con el conjunto de código.
13. El procedimiento de la reivindicación 12 en
el que la operación de filtrado comprende:
- omisión del conjunto de una o mas autorizaciones especificado por el conjunto de solicitudes denegadas del conjunto de concesiones de autorización.
14. El procedimiento de la reivindicación 1 en
el que el conjunto de solicitudes de autorización incluye un
conjunto de solicitudes opcional y un conjunto de solicitudes mínimo
que especifica un conjunto mínimo de autorizaciones solicitadas en
asociación con el conjunto de código, y en el que la operación de
filtrado comprende:
- cómputo (600) de una unión del conjunto de solicitudes opcional y del conjunto de solicitudes mínimo para proveer un conjunto de solicitudes máximo; y
- cómputo de una intersección del conjunto de solicitudes máximo y del conjunto de autorizaciones.
15. El procedimiento de la reivindicación 14 en
el que el conjunto de solicitudes de autorización especifica además
un conjunto de solicitudes denegadas que especifica un conjunto de
una o más autorizaciones a omitir de un conjunto de concesiones de
autorización en asociación con el conjunto de código, y en el que la
operación de filtrado comprende además:
- sustracción (606) del conjunto de una o más autorizaciones especificado en el conjunto de solicitudes denegadas de la intersección del conjunto de solicitudes máximo y del conjunto de autorizaciones.
16. El procedimiento de la reivindicación 1 en
el que la operación de recepción de un conjunto de solicitudes de
autorización comprende:
- recepción del conjunto de solicitudes de autorización y del conjunto de código en una sola comunicación por la red.
17. El procedimiento de la reivindicación 1 en
el que la operación de recepción de un conjunto de solicitudes de
autorización comprende:
- recuperación del conjunto de solicitudes de autorización en una comunicación por la red distinta de una comunicación por la red en la que se recibe el conjunto de código.
18. Un módulo de gestor de normas (104, 308,
400, 502) para el procesado de un conjunto de autorizaciones
asociado con un conjunto de código (106) recibido de un sitio fuente
(100) para controlar la ejecución del conjunto de código,
comprendiendo el módulo de gestor de normas:
- un filtro (424, 524) que recibe (808) el conjunto de autorizaciones y un conjunto (120, 324, 420, 522) de solicitudes de autorización asociado con el conjunto de código y que filtra (810) el conjunto de autorizaciones basado en el conjunto de solicitudes de autorización para controlar la ejecución del conjunto de código;
en el que el conjunto de
solicitudes de autorización especifica un conjunto de solicitudes
opcional que especifica un conjunto opcional de autorizaciones
solicitadas en asociación con el conjunto de código; y en el que el
filtro genera un conjunto (208 - 212, 414, 520) de concesiones de
autorización basado en el conjunto de solicitudes opcional, estando
asociado el conjunto de concesiones de autorización con un primer
nivel de la funcionalidad del conjunto de código si el conjunto de
solicitudes opcional es un subconjunto del conjunto de concesiones
de autorización y que está asociado con un segundo nivel de la
funcionalidad del conjunto de código si el conjunto de solicitudes
opcional no es un subconjunto del conjunto de concesiones de
autorización.
19. El módulo de gestor de normas de la
reivindicación 18 que comprende además:
- un generador (412, 518) de conjuntos de autorizaciones que recibe un conjunto (404, 504) de evidencias y que genera un conjunto de autorizaciones en asociación con el conjunto de código basado en el conjunto de evidencias.
20. El módulo de gestor de normas de la
reivindicación 18 en el que el filtro genera el conjunto de
concesiones de autorización a partir de un subconjunto del conjunto
de autorizaciones especificado por el conjunto de solicitudes de
autorización.
21. El módulo de generador de normas de la
reivindicación 18 en el que el filtro computa una operación lógica
de conjuntos con el conjunto de autorizaciones y el conjunto de
solicitudes de autorización para generar el conjunto de concesiones
de autorización.
22. El módulo de gestor de normas de la
reivindicación 18 en el que el filtro impide la carga del conjunto
de código si el conjunto de autorizaciones deja de satisfacer la
condición de autorización mínima.
23. El módulo de gestor de normas de la
reivindicación 18 en el que el filtro impide la ejecución del
conjunto de código si el conjunto de autorizaciones deja de
satisfacer la condición de autorización mínima.
24. El módulo de gestor de normas de la
reivindicación 18 en el que el conjunto de solicitudes de
autorización especifica una pluralidad de conjuntos de solicitudes
de autorización tecleadas, especificando cada conjunto de
solicitudes de autorización tecleado un tipo distinto de preferencia
de autorización solicitada en asociación con el conjunto de
código.
25. El módulo de gestor de normas de la
reivindicación 18 en el que el conjunto de solicitudes de
autorización especifica un conjunto de solicitudes mínimo que
especifica un conjunto mínimo de autorizaciones solicitadas en
asociación con el conjunto de código.
26. El módulo de gestor de normas de la
reivindicación 18 en el que el filtro genera el conjunto de
concesiones de autorización que omite una o más autorizaciones
especificadas en un conjunto de solicitudes denegadas.
27. El módulo de gestor de normas de la
reivindicación 18 en el que el conjunto de solicitudes de
autorización especifica el conjunto de solicitudes opcional y un
conjunto de solicitudes mínimo que especifica un conjunto mínimo de
autorizaciones solicitadas en asociación con el conjunto de código,
y en el que la operación de filtrado
comprende:
comprende:
- cómputo (600) de una unión del conjunto de solicitudes opcional y del conjunto de solicitudes mínimo para proveer un conjunto de solicitudes máximo; y
- cómputo de una intersección del conjunto de solicitudes máximo y del conjunto de autorizaciones.
28. El módulo de gestor de normas de la
reivindicación 18 que comprende además:
- un generador (408) de colecciones de grupos de código que crea (800) una colección de grupos de código basada en una especificación (116, 326, 402, 500) de norma de seguridad, incluyendo la colección de grupos de código uno o más grupos de código;
- un evaluador (410) de pertenencia que determina (804) la pertenencia de un conjunto de código a uno o más grupos de código, basado en una evidencia (108, 320, 404, 504) asociada con el conjunto de código; y
- un generador (412, 518) de conjuntos de autorizaciones que crea el conjunto de autorizaciones basado en la pertenencia del conjunto de código al uno o más grupos de código.
29. Una señal de datos de ordenador incorporada
en una onda portadora por un sistema de computación y que codifica
un programa de ordenador para la ejecución de un procedimiento de
ordenador que procesa un conjunto de autorizaciones asociado con un
conjunto (106) de código recibido de un sitio (100) fuente para
controlar la ejecución del conjunto de código, comprendiendo el
procedimiento de ordenador:
- recepción del conjunto de autorizaciones que incluye al menos una autorización asociada con el conjunto de código;
- recepción de un conjunto (120, 324, 420, 522) de solicitudes de autorización en asociación con el conjunto de código; y
- filtrado del conjunto de autorizaciones basado en el conjunto solicitudes de autorización para controlar la ejecución del conjunto de código;
en el que el conjunto de
solicitudes de autorización especifica un conjunto de solicitudes
opcional que especifica un conjunto opcional de autorizaciones
solicitadas en asociación con el conjunto de código; y en el que la
operación de filtrado comprende además el filtrado del conjunto de
autorizaciones basado en el conjunto de solicitudes opcional para
generar un conjunto (208 -212, 414, 520) de concesiones de
autorización; y que comprende
además:
- ejecución de un primer nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional es un subconjunto del conjunto de concesiones de autorización; y
- ejecución de un segundo nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional no es un subconjunto del conjunto de concesiones de autorización.
30. Un medio de almacenamiento de programas de
ordenador legible por un sistema de ordenador y que codifica un
programa de ordenador para la ejecución de un procedimiento de
ordenador que procesa un conjunto de autorizaciones asociado con un
conjunto de código (106) recibido de un sitio fuente (100),
comprendiendo el procedimiento de ordenador:
- recepción del conjunto de autorizaciones que comprende al menos una autorización asociada con el conjunto de código;
- recepción de un conjunto (120, 324, 420, 522) de solicitudes de autorización en asociación con el conjunto de código; y
- filtrado del conjunto de autorizaciones basado en el conjunto de solicitudes de autorización para controlar la ejecución del conjunto de código;
en el que el conjunto de
solicitudes de autorización especifica un conjunto de solicitudes
opcional que especifica un conjunto opcional de autorizaciones
solicitadas en asociación con el conjunto de código; y en el que la
operación de filtrado comprende el filtrado del conjunto de
autorizaciones basado en el conjunto de solicitudes opcional para
generar un conjunto (208 - 212, 414, 520) de concesiones de
autorización; y que comprende
además:
- ejecución de un primer nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional es un subconjunto del conjunto de concesiones de autorización; y
- ejecución de un segundo nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional no es un subconjunto del conjunto de concesiones de autorización.
31. Un producto de programación de ordenadores
que codifica un programa de ordenador para la ejecución en un
sistema informático de un procedimiento de ordenador que procesa un
conjunto de autorizaciones asociado con un conjunto de código (106)
recibido de un sitio fuente (100) para controlar la ejecución del
conjunto de código, comprendiendo el procedimiento de
ordenador:
- definición (800) de una colección de grupos de código basada en una especificación de norma de seguridad, incluyendo la colección de grupos de código uno o más grupos de código;
- recepción (802) de una evidencia (108, 320, 404, 504) asociada con el conjunto de código;
- evaluación (804) de la pertenencia del conjunto de código al uno o más grupos de código, basada en la evidencia;
- generación (806) del conjunto de autorizaciones basada en la pertenencia del conjunto de código al uno o más grupos de código;
- recepción del conjunto de autorizaciones que incluye al menos una autorización asociada con el conjunto de código;
- recepción (808) de un conjunto (120, 324, 420, 522) de solicitudes de autorización en asociación con el conjunto de código; y
- cómputo de una operación de conjuntos lógica con el conjunto de autorizaciones y con el conjunto de solicitudes de autorización para generar un conjunto de concesiones de autorización;
\newpage
en el que el conjunto de
solicitudes de autorización especifica un conjunto de solicitudes
opcional que especifica un conjunto opcional de autorizaciones
solicitadas en asociación con el conjunto de código; y en el que la
operación de filtrado comprende el filtrado del conjunto de
autorizaciones basado en el conjunto de solicitudes opcional para
generar un conjunto (208 - 212, 414, 520) de concesiones de
autorización; y que comprende
además:
- ejecución de un primer nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional es un subconjunto del conjunto de concesiones de autorización; y
- ejecución de un segundo nivel de la funcionalidad del conjunto de código si el conjunto de solicitudes opcional no es un subconjunto del conjunto de concesiones de autorización.
32. El producto de programación de ordenadores
de la reivindicación 31 en el que el conjunto de solicitudes de
autorización incluye el conjunto de solicitudes opcional y un
conjunto de solicitudes mínimo que especifica un conjunto mínimo de
autorizaciones solicitadas en asociación con el conjunto de código,
y en el que la operación de filtrado comprende:
- cómputo (600) de una unión del conjunto de solicitudes opcional y del conjunto de solicitudes mínimo para proveer un conjunto de solicitudes máximo; y
- cómputo de una intersección del conjunto de solicitudes máximo y del conjunto de autorizaciones.
33. El producto de programación de ordenadores
de la reivindicación 32 en el que el conjunto de solicitudes de
autorización especifica además un conjunto de solicitudes denegadas
que especifica un conjunto de una o más autorizaciones a omitir de
un conjunto de concesiones de autorización en asociación con el
conjunto de código, y en el que la operación de filtrado comprende
además:
- sustracción (606) del conjunto de una o más autorizaciones especificado en el conjunto de solicitudes denegadas de la intersección del conjunto de solicitudes máximo y del conjunto de autorizaciones.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/599,015 US6981281B1 (en) | 2000-06-21 | 2000-06-21 | Filtering a permission set using permission requests associated with a code assembly |
US599015 | 2000-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2284654T3 true ES2284654T3 (es) | 2007-11-16 |
Family
ID=24397852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES01944152T Expired - Lifetime ES2284654T3 (es) | 2000-06-21 | 2001-05-18 | Filtrado de un conjunto de autorizaciones que usa solicitudes de autorizacion asociadas con un conjunto de codigo. |
Country Status (8)
Country | Link |
---|---|
US (3) | US6981281B1 (es) |
EP (1) | EP1299790B1 (es) |
JP (1) | JP4718753B2 (es) |
AT (1) | ATE358293T1 (es) |
AU (1) | AU2001266590A1 (es) |
DE (1) | DE60127557T2 (es) |
ES (1) | ES2284654T3 (es) |
WO (1) | WO2001098876A2 (es) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606659B1 (en) | 2000-01-28 | 2003-08-12 | Websense, Inc. | System and method for controlling access to internet sites |
US7051366B1 (en) * | 2000-06-21 | 2006-05-23 | Microsoft Corporation | Evidence-based security policy manager |
US6981281B1 (en) * | 2000-06-21 | 2005-12-27 | Microsoft Corporation | Filtering a permission set using permission requests associated with a code assembly |
US7350204B2 (en) * | 2000-07-24 | 2008-03-25 | Microsoft Corporation | Policies for secure software execution |
DE50011222D1 (de) * | 2000-12-04 | 2005-10-27 | Siemens Ag | Verfahren zum Nutzen einer Datenverarbeitungsanlage abhängig von einer Berechtigung, zugehörige Datenverarbeitungsanlage und zugehöriges Programm |
US7099663B2 (en) | 2001-05-31 | 2006-08-29 | Qualcomm Inc. | Safe application distribution and execution in a wireless environment |
US8209753B2 (en) | 2001-06-15 | 2012-06-26 | Activcard, Inc. | Universal secure messaging for remote security tokens |
US20040218762A1 (en) | 2003-04-29 | 2004-11-04 | Eric Le Saint | Universal secure messaging for cryptographic modules |
US20030135758A1 (en) * | 2001-07-19 | 2003-07-17 | Turner Elliot B. | System and method for detecting network events |
US7024555B2 (en) * | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7194464B2 (en) | 2001-12-07 | 2007-03-20 | Websense, Inc. | System and method for adapting an internet filter |
US7188364B2 (en) * | 2001-12-20 | 2007-03-06 | Cranite Systems, Inc. | Personal virtual bridged local area networks |
US20030177484A1 (en) * | 2002-03-15 | 2003-09-18 | Bosschaert Allaert J. D. | Firewall class loader |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
SE0201313D0 (sv) * | 2002-04-29 | 2002-04-29 | Electrolux Home Prod Corp | Behållare för dosering |
US20040123152A1 (en) * | 2002-12-18 | 2004-06-24 | Eric Le Saint | Uniform framework for security tokens |
US7475408B2 (en) * | 2003-02-27 | 2009-01-06 | Microsoft Corporation | Hosting an application in one of a plurality of execution environments |
US7430743B2 (en) | 2003-02-27 | 2008-09-30 | Microsoft Corporation | System and method for hosting an application in one of a plurality of execution environments |
TWI263894B (en) * | 2003-10-15 | 2006-10-11 | Hon Hai Prec Ind Co Ltd | System and method for quickly getting user's permission in access control list |
US8930944B2 (en) * | 2003-11-18 | 2015-01-06 | Microsoft Corporation | Application model that integrates the web experience with the traditional client application experience |
US7054868B2 (en) * | 2003-12-22 | 2006-05-30 | Insworld, Inc. | Methods and systems for creating and operating hierarchical levels of administrators to facilitate the production and distribution of content |
US7907935B2 (en) | 2003-12-22 | 2011-03-15 | Activcard Ireland, Limited | Intelligent remote device |
US7054869B1 (en) * | 2003-12-22 | 2006-05-30 | Insworld, Inc. | Methods and systems for facilitating the production and distribution of content |
US20050138380A1 (en) | 2003-12-22 | 2005-06-23 | Fedronic Dominique L.J. | Entry control system |
EP2267625A3 (en) * | 2004-04-19 | 2015-08-05 | Lumension Security S.A. | On-line centralized and local authorization of executable files |
WO2005099340A2 (en) | 2004-04-19 | 2005-10-27 | Securewave S.A. | On-line centralized and local authorization of executable files |
US7743425B2 (en) * | 2004-04-29 | 2010-06-22 | Microsoft Corporation | Security restrictions on binary behaviors |
US7814308B2 (en) * | 2004-08-27 | 2010-10-12 | Microsoft Corporation | Debugging applications under different permissions |
GB2418037B (en) * | 2004-09-09 | 2007-02-28 | Surfcontrol Plc | System, method and apparatus for use in monitoring or controlling internet access |
GB2418999A (en) | 2004-09-09 | 2006-04-12 | Surfcontrol Plc | Categorizing uniform resource locators |
US20060143689A1 (en) * | 2004-12-21 | 2006-06-29 | Docomo Communications Laboratories Usa, Inc. | Information flow enforcement for RISC-style assembly code |
US7890315B2 (en) * | 2005-12-29 | 2011-02-15 | Microsoft Corporation | Performance engineering and the application life cycle |
US20070157311A1 (en) * | 2005-12-29 | 2007-07-05 | Microsoft Corporation | Security modeling and the application life cycle |
US7627652B1 (en) * | 2006-01-31 | 2009-12-01 | Amazon Technologies, Inc. | Online shared data environment |
EP1979812A4 (en) * | 2006-02-01 | 2010-01-06 | Nokia Corp | ACCESS CONTROL |
US7818788B2 (en) * | 2006-02-14 | 2010-10-19 | Microsoft Corporation | Web application security frame |
US7712137B2 (en) * | 2006-02-27 | 2010-05-04 | Microsoft Corporation | Configuring and organizing server security information |
US8020206B2 (en) | 2006-07-10 | 2011-09-13 | Websense, Inc. | System and method of analyzing web content |
US8615800B2 (en) | 2006-07-10 | 2013-12-24 | Websense, Inc. | System and method for analyzing web content |
US8443188B2 (en) * | 2006-11-30 | 2013-05-14 | Microsoft Corporation | Using code access security for runtime accessibility checks |
US9654495B2 (en) | 2006-12-01 | 2017-05-16 | Websense, Llc | System and method of analyzing web addresses |
US20080168528A1 (en) * | 2007-01-04 | 2008-07-10 | Dah-Haur Lin | Role-based authorization using conditional permissions |
GB2445764A (en) | 2007-01-22 | 2008-07-23 | Surfcontrol Plc | Resource access filtering system and database structure for use therewith |
US20080189767A1 (en) * | 2007-02-01 | 2008-08-07 | Microsoft Corporation | Accessing file resources outside a security boundary |
US8015174B2 (en) * | 2007-02-28 | 2011-09-06 | Websense, Inc. | System and method of controlling access to the internet |
AU2009267107A1 (en) | 2008-06-30 | 2010-01-07 | Websense, Inc. | System and method for dynamic and real-time categorization of webpages |
US8190673B2 (en) * | 2008-07-30 | 2012-05-29 | Microsoft Corporation | Enforcement of object permissions in enterprise resource planning software |
CN102486731B (zh) * | 2009-11-30 | 2015-12-09 | 国际商业机器公司 | 增强软件的软件调用栈的可视化的方法、设备和系统 |
US8677506B2 (en) * | 2009-12-03 | 2014-03-18 | Osocad Remote Limited Liability Company | System and method for loading application classes |
US11244745B2 (en) | 2010-01-22 | 2022-02-08 | Deka Products Limited Partnership | Computer-implemented method, system, and apparatus for electronic patient care |
US10242159B2 (en) | 2010-01-22 | 2019-03-26 | Deka Products Limited Partnership | System and apparatus for electronic patient care |
US10453157B2 (en) | 2010-01-22 | 2019-10-22 | Deka Products Limited Partnership | System, method, and apparatus for electronic patient care |
US11881307B2 (en) | 2012-05-24 | 2024-01-23 | Deka Products Limited Partnership | System, method, and apparatus for electronic patient care |
US11164672B2 (en) | 2010-01-22 | 2021-11-02 | Deka Products Limited Partnership | System and apparatus for electronic patient care |
US11210611B2 (en) | 2011-12-21 | 2021-12-28 | Deka Products Limited Partnership | System, method, and apparatus for electronic patient care |
US10911515B2 (en) | 2012-05-24 | 2021-02-02 | Deka Products Limited Partnership | System, method, and apparatus for electronic patient care |
US20110313789A1 (en) | 2010-01-22 | 2011-12-22 | Deka Products Limited Partnership | Electronic patient monitoring system |
US8849857B2 (en) * | 2010-12-17 | 2014-09-30 | International Business Machines Corporation | Techniques for performing data loss prevention |
US8650640B2 (en) * | 2011-02-24 | 2014-02-11 | International Business Machines Corporation | Using a declaration of security requirements to determine whether to permit application operations |
US8656465B1 (en) * | 2011-05-09 | 2014-02-18 | Google Inc. | Userspace permissions service |
US10445528B2 (en) * | 2011-09-07 | 2019-10-15 | Microsoft Technology Licensing, Llc | Content handling for applications |
US9223976B2 (en) * | 2011-09-08 | 2015-12-29 | Microsoft Technology Licensing, Llc | Content inspection |
US9047476B2 (en) * | 2011-11-07 | 2015-06-02 | At&T Intellectual Property I, L.P. | Browser-based secure desktop applications for open computing platforms |
US9100235B2 (en) | 2011-11-07 | 2015-08-04 | At&T Intellectual Property I, L.P. | Secure desktop applications for an open computing platform |
KR101900047B1 (ko) * | 2012-03-12 | 2018-09-18 | 삼성전자주식회사 | 애플리케이션이 필요로 하는 권한을 진단하는 방법 및 장치 |
US8726386B1 (en) * | 2012-03-16 | 2014-05-13 | Symantec Corporation | Systems and methods for detecting malware |
US8671282B2 (en) * | 2012-03-24 | 2014-03-11 | Mach 1 Development, Inc. | Digital data authentication and security system |
EP2677380A1 (en) * | 2012-06-21 | 2013-12-25 | Siemens Aktiengesellschaft | Method for controlling a manufacturing execution system (MES) |
JP6047021B2 (ja) * | 2013-01-23 | 2016-12-21 | キヤノン株式会社 | 撮影装置及びその制御方法、プログラム |
US9515832B2 (en) | 2013-06-24 | 2016-12-06 | Microsoft Technology Licensing, Llc | Process authentication and resource permissions |
EP3001293A4 (en) * | 2013-12-30 | 2016-08-31 | Huawei Device Co Ltd | METHOD AND DEVICE FOR MANAGING RIGHTS |
US9852294B1 (en) | 2014-06-24 | 2017-12-26 | Symantec Corporation | Systems and methods for detecting suspicious applications based on how entry-point functions are triggered |
KR102337990B1 (ko) * | 2014-09-18 | 2021-12-13 | 삼성전자주식회사 | 권한 설정 토큰을 이용하는 전자 장치 |
US10360135B2 (en) | 2016-03-31 | 2019-07-23 | Microsoft Technology Licensing, Llc | Privilege test and monitoring |
US9928365B1 (en) * | 2016-10-31 | 2018-03-27 | International Business Machines Corporation | Automated mechanism to obtain detailed forensic analysis of file access |
US10346625B2 (en) * | 2016-10-31 | 2019-07-09 | International Business Machines Corporation | Automated mechanism to analyze elevated authority usage and capability |
US9830469B1 (en) * | 2016-10-31 | 2017-11-28 | International Business Machines Corporation | Automated mechanism to secure customer data |
JP6328290B2 (ja) * | 2017-04-04 | 2018-05-23 | Kddi株式会社 | 端末、アクセス制限方法およびプログラム |
US10650156B2 (en) | 2017-04-26 | 2020-05-12 | International Business Machines Corporation | Environmental security controls to prevent unauthorized access to files, programs, and objects |
US11443067B2 (en) * | 2018-01-31 | 2022-09-13 | Salesforce.Com, Inc. | Restricting access and edit permissions of metadata |
JP6783812B2 (ja) * | 2018-03-13 | 2020-11-11 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0549104B1 (en) * | 1991-12-20 | 1998-05-06 | International Computers Limited | Program attribute control in a computer system |
JP4145365B2 (ja) * | 1994-08-03 | 2008-09-03 | 株式会社野村総合研究所 | ファイルアクセス制御装置 |
US5978484A (en) | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
US5825877A (en) * | 1996-06-11 | 1998-10-20 | International Business Machines Corporation | Support for portable trusted software |
US5958050A (en) | 1996-09-24 | 1999-09-28 | Electric Communities | Trusted delegation system |
US5915085A (en) | 1997-02-28 | 1999-06-22 | International Business Machines Corporation | Multiple resource or security contexts in a multithreaded application |
US6044466A (en) | 1997-11-25 | 2000-03-28 | International Business Machines Corp. | Flexible and dynamic derivation of permissions |
US6044467A (en) | 1997-12-11 | 2000-03-28 | Sun Microsystems, Inc. | Secure class resolution, loading and definition |
US6125447A (en) | 1997-12-11 | 2000-09-26 | Sun Microsystems, Inc. | Protection domains to provide security in a computer system |
US6473800B1 (en) * | 1998-07-15 | 2002-10-29 | Microsoft Corporation | Declarative permission requests in a computer system |
US6321334B1 (en) * | 1998-07-15 | 2001-11-20 | Microsoft Corporation | Administering permissions associated with a security zone in a computer system security model |
US6526513B1 (en) * | 1999-08-03 | 2003-02-25 | International Business Machines Corporation | Architecture for dynamic permissions in java |
US6981281B1 (en) * | 2000-06-21 | 2005-12-27 | Microsoft Corporation | Filtering a permission set using permission requests associated with a code assembly |
-
2000
- 2000-06-21 US US09/599,015 patent/US6981281B1/en not_active Expired - Lifetime
-
2001
- 2001-05-18 WO PCT/US2001/016057 patent/WO2001098876A2/en active IP Right Grant
- 2001-05-18 EP EP01944152A patent/EP1299790B1/en not_active Expired - Lifetime
- 2001-05-18 AU AU2001266590A patent/AU2001266590A1/en not_active Abandoned
- 2001-05-18 ES ES01944152T patent/ES2284654T3/es not_active Expired - Lifetime
- 2001-05-18 AT AT01944152T patent/ATE358293T1/de not_active IP Right Cessation
- 2001-05-18 DE DE60127557T patent/DE60127557T2/de not_active Expired - Lifetime
- 2001-05-18 JP JP2002504571A patent/JP4718753B2/ja not_active Expired - Lifetime
-
2005
- 2005-10-20 US US11/254,839 patent/US7251834B2/en not_active Expired - Fee Related
- 2005-11-14 US US11/272,639 patent/US7310822B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2001098876A3 (en) | 2003-01-23 |
WO2001098876A2 (en) | 2001-12-27 |
JP2004501467A (ja) | 2004-01-15 |
DE60127557T2 (de) | 2007-12-27 |
DE60127557D1 (de) | 2007-05-10 |
AU2001266590A1 (en) | 2002-01-02 |
EP1299790A2 (en) | 2003-04-09 |
US20060070112A1 (en) | 2006-03-30 |
ATE358293T1 (de) | 2007-04-15 |
US20060037082A1 (en) | 2006-02-16 |
US7251834B2 (en) | 2007-07-31 |
EP1299790B1 (en) | 2007-03-28 |
US7310822B2 (en) | 2007-12-18 |
JP4718753B2 (ja) | 2011-07-06 |
US6981281B1 (en) | 2005-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2284654T3 (es) | Filtrado de un conjunto de autorizaciones que usa solicitudes de autorizacion asociadas con un conjunto de codigo. | |
US7669238B2 (en) | Evidence-based application security | |
US6457130B2 (en) | File access control in a multi-protocol file server | |
US7783616B2 (en) | System and method for managing objects and resources with access rights embedded in nodes within a hierarchical tree structure | |
EP1309906B1 (en) | Evidence-based security policy manager | |
US6138238A (en) | Stack-based access control using code and executor identifiers | |
US7131143B1 (en) | Evaluating initially untrusted evidence in an evidence-based security policy manager | |
Krohn et al. | Information flow control for standard OS abstractions | |
Mayer et al. | SELinux by example: using security enhanced Linux | |
US20020184521A1 (en) | Authorizing a requesting entity to operate upon data structures | |
US20090205018A1 (en) | Method and system for the specification and enforcement of arbitrary attribute-based access control policies | |
Seitz et al. | Policy administration control and delegation using xacml and delegent | |
Delessy et al. | Patterns for access control in distributed systems | |
Anderson | Java™ access control mechanisms | |
Halfmann et al. | Embedding security policies into a distributed computing environment | |
Ilioudis et al. | Security Model for XML Data. | |
Kechar et al. | An access control system architecture for xml data warehouse using xacml | |
CN114139127A (zh) | 一种计算机系统的权限管理方法 | |
Clark | A Linux-based approach to low-cost support of access control policies | |
Ge et al. | Secure database development and the Clark-Wilson security model | |
Tari et al. | Dynamic, Flow Control-Based Information Management for Web Services | |
Levin et al. | Execution policies research and implementation |