System and method for evaluating a reverse query
First Claim
1. A computer-implemented method for real-time evaluation of a reverse query to an attribute-based access control (ABAC) policy (P) comprising functional expressions dependent on attributes, wherein the ABAC policy is evaluable for an access request if the access request assigns a value to at least one of said attributes, wherein an access decision resulting from said evaluation is enforceable to control access to one or more resources in a computer network, said method performed by a processing device and comprising the steps of:
- i) receiving by the processing device a reverse query indicating a given access decision (d), which is one of permit access and deny access, and further indicating a subset (R) of two or more access requests to the ABAC policy, wherein the subset (R) is defined by constraints over the set of possible access requests;
ii) constructing by the processing device a partial request (rpartial) from the subset (R) of access requests;
iii) reducing by the processing device the ABAC policy in accordance with the partial request;
iv) caching by the processing device the ABAC policy after said reducing, as a simplified policy (P′
) comprising at least one functional expression dependent on an attribute;
v) translating by the processing device the cached simplified policy (P′
) and the given decision (d) into a satisfiable logic proposition in Boolean variables (vi, i=1, 2, . . . ), including replacing, by a Boolean variable, any Boolean expression in the policy representing a comparison of an attribute and a fixed value;
vi) deriving by the processing device all variable assignments (cj=[v1=xj1, v2=xj2, . . . ], j=1, 2, . . . ) satisfying the logic proposition;
vii) processing by the processing device the variable assignments satisfying the logic proposition on the basis of a correlation between each Boolean variable and the comparison which it replaces; and
viii) determining by the processing device, from each variable assignment processed in step vii, a set of potential access requests for which the ABAC policy would evaluate to the given decision (d) and where each request belongs to subset R.
1 Assignment
0 Petitions
Accused Products
Abstract
Real-time techniques for determining all access requests to an attribute-based access control policy which evaluate to a given decision, “permit” or “deny”. The policy is enforced to control access to one or more resources in a computer network. In one embodiment, a method includes: (i) receiving a reverse query and a set of admissible access requests, each of which includes one or more attributes in the policy and values of these; (ii) extracting attributes to which all access requests in the set assign identical values; (iii) reducing the ABAC policy by substituting values for the extracted attributes; (iv) caching the policy as a simplified policy; (v) translating the simplified policy and the given decision into a satisfiable logic proposition; (vi) deriving all solutions satisfying the proposition; and (vi) extracting, based on the solutions, all access requests from the set for which the policy yields the given decision.
31 Citations
14 Claims
-
1. A computer-implemented method for real-time evaluation of a reverse query to an attribute-based access control (ABAC) policy (P) comprising functional expressions dependent on attributes, wherein the ABAC policy is evaluable for an access request if the access request assigns a value to at least one of said attributes, wherein an access decision resulting from said evaluation is enforceable to control access to one or more resources in a computer network, said method performed by a processing device and comprising the steps of:
-
i) receiving by the processing device a reverse query indicating a given access decision (d), which is one of permit access and deny access, and further indicating a subset (R) of two or more access requests to the ABAC policy, wherein the subset (R) is defined by constraints over the set of possible access requests; ii) constructing by the processing device a partial request (rpartial) from the subset (R) of access requests; iii) reducing by the processing device the ABAC policy in accordance with the partial request; iv) caching by the processing device the ABAC policy after said reducing, as a simplified policy (P′
) comprising at least one functional expression dependent on an attribute;v) translating by the processing device the cached simplified policy (P′
) and the given decision (d) into a satisfiable logic proposition in Boolean variables (vi, i=1, 2, . . . ), including replacing, by a Boolean variable, any Boolean expression in the policy representing a comparison of an attribute and a fixed value;vi) deriving by the processing device all variable assignments (cj=[v1=xj1, v2=xj2, . . . ], j=1, 2, . . . ) satisfying the logic proposition; vii) processing by the processing device the variable assignments satisfying the logic proposition on the basis of a correlation between each Boolean variable and the comparison which it replaces; and viii) determining by the processing device, from each variable assignment processed in step vii, a set of potential access requests for which the ABAC policy would evaluate to the given decision (d) and where each request belongs to subset R. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system including a processing device coupled to a non-transitory data memory, the computer system being configured for real-time evaluation of a reverse query to an attribute-based access control (ABAC) policy (P) comprising functional expressions dependent on attributes, wherein the ABAC policy is evaluable for an access request if the access request assigns a value to at least one of said attributes, wherein an access decision resulting from said evaluation is enforceable to control access to one or more resources in a computer network,
wherein the reverse query indicates a given access decision (d), which is one of permit access and deny access, and further indicating a subset (R) of two or more access requests to the ABAC policy, wherein the subset (R) is defined by constraints over the set of possible access requests, the computer system comprising: -
the data memory operable to store one or more ABAC policies; a partial request generation means operable to construct a partial request (rpartial) from the subset (R) of access requests; a policy decision partial evaluation means connected to the partial request generation means and to the data memory, and operable to reduce evaluate the ABAC policy (P) in accordance with the partial request (rpartial), thereby yielding a simplified policy (P′
);a translation means, connected to the policy decision means and operable to translate the simplified policy (P′
), and the given decision (d) into a satisfiable logic proposition (F) in Boolean variables (vi, i=1, 2, . . . ), wherein the translation means is configured to replace, by a Boolean variable, any Boolean expression in the policy representing a comparison of an attribute and a fixed value;an analyzing means, connected to the translation means and operable to derive all variable assignment (cj=[v1=xji, v2=xj2, . . . ], j=1, 2, . . . ) satisfying the logic proposition; a conversion means connected to said analyzing means, and operable to process the variable assignments satisfying the logic proposition on the basis of a correlation between each Boolean variable and the comparison which it replaces; and a determining means operable to determining, from each variable assignment processed by said conversion means, a set of potential access requests for which the ABAC policy would evaluate to the given decision (d) and where each request belongs to subset R.
-
Specification