1 Authorization Sec PAL: A Decentralized Authorization Language.

Slides:



Advertisements
Similar presentations
Semantics Static semantics Dynamic semantics attribute grammars
Advertisements

A Unified Approach to Trust, Delegation, and Authorization Blair Dillaway, Greg Fee Microsoft Corporation Presented at GGF18 Copyright © 2006, Microsoft.
Introduction to Prolog, cont’d Lecturer: Xinming (Simon) Ou CIS 505: Programming Languages Fall 2010 Kansas State University 1.
Lecture 3Dr. Verma1 COSC 6397 – Information Assurance Module M2 – Protocol Specification and Verification University of Houston Rakesh Verma Lecture 3.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
1 Authorization XACML – a language for expressing policies and rules.
Getting started with ML ML is a functional programming language. ML is statically typed: The types of literals, values, expressions and functions in a.
Answer Set Programming Overview Dr. Rogelio Dávila Pérez Profesor-Investigador División de Posgrado Universidad Autónoma de Guadalajara
Propositional Logic Russell and Norvig: Chapter 6 Chapter 7, Sections 7.1—7.4 Slides adapted from: robotics.stanford.edu/~latombe/cs121/2003/home.htm.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 16: Exception Handling.
An Approach to Evaluate Data Trustworthiness Based on Data Provenance Department of Computer Science Purdue University.
Comp 205: Comparative Programming Languages Semantics of Imperative Programming Languages denotational semantics operational semantics logical semantics.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
5-1 Flow of Control Recitation-01/25/2008  CS 180  Department of Computer Science  Purdue University.
CS 330 Programming Languages 09 / 13 / 2007 Instructor: Michael Eckmann.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Logical Operators and Conditional statements
C++ for Engineers and Scientists Third Edition
CONTROL STATEMENTS Lakhbir Singh(Lect.IT) S.R.S.G.P.C.G. Ludhiana.
Lesson Objective: I can…
Chapter 6: Integrity and Security Thomas Nikl 19 October, 2004 CS157B.
Formal Models of Computation Part II The Logic Model
Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions.
1 Chapter 4: Selection Structures. In this chapter, you will learn about: – Selection criteria – The if-else statement – Nested if statements – The switch.
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
CS Describing Syntax CS 3360 Spring 2012 Sec Adapted from Addison Wesley’s lecture notes (Copyright © 2004 Pearson Addison Wesley)
CMPF144 FUNDAMENTALS OF COMPUTING THEORY Module 5: Classical Logic.
1 Logical Agents CS 171/271 (Chapter 7) Some text and images in these slides were drawn from Russel & Norvig’s published material.
Chapter 12 Support for Object oriented Programming.
CMP-MX21: Lecture 4 Selections Steve Hordley. Overview 1. The if-else selection in JAVA 2. More useful JAVA operators 4. Other selection constructs in.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
ISBN Chapter 3 Describing Semantics.
Chapter 3 Part II Describing Syntax and Semantics.
Copyright © 2006 Addison-Wesley. All rights reserved. Ambiguity in Grammars A grammar is ambiguous if and only if it generates a sentential form that has.
1 Logical Agents CS 171/271 (Chapter 7) Some text and images in these slides were drawn from Russel & Norvig’s published material.
Structure Programming Lecture 8 Chapter 5&6 - Function – part I 12 December 2015.
CS6133 Software Specification and Verification
SecPAL Presented by Daniel Pechulis CS5204 – Operating Systems1.
Chapter 10: Classes and Data Abstraction. Objectives In this chapter, you will: Learn about classes Learn about private, protected, and public members.
1 Access Control Policies: Modeling and Validation Luigi Logrippo & Mahdi Mankai Université du Québec en Outaouais.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
Oracle Data Integrator User Functions, Variables and Advanced Mappings
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
Control statements Mostafa Abdallah
© 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Lesson # 8 HP UCMDB 8.0 Essentials.
CS412/413 Introduction to Compilers Radu Rugina Lecture 13 : Static Semantics 18 Feb 02.
Knowledge Based Information System
In The Name Of Allah Lab 03 1Tahani Aldweesh. objectives Searching for the solution’s. Declaration. Query. Comments. Prolog Concepts. Unification. Disjunction.
Chapter 10: Classes and Data Abstraction. Classes Object-oriented design (OOD): a problem solving methodology Objects: components of a solution Class:
Recap Introduction to Inheritance Inheritance in C++ IS-A Relationship Polymorphism in Inheritance Classes in Inheritance Visibility Rules Constructor.
Control structures in C by Dr P.Padmanabham Professor (CSE)&Director Bharat Institute of Engineering &Technology Hyderabad Mobile
LECTURE 5 Scanning. SYNTAX ANALYSIS We know from our previous lectures that the process of verifying the syntax of the program is performed in two stages:
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Towards a Semantic Model for Java Wildcards Sophia Drossopoulou Mariangiola Dezani-Ciancaglini Imperial College London Università di Torino Italy Nicholas.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
COMP 412, FALL Type Systems C OMP 412 Rice University Houston, Texas Fall 2000 Copyright 2000, Robert Cartwright, all rights reserved. Students.
LECTURE 10 Semantic Analysis. REVIEW So far, we’ve covered the following: Compilation methods: compilation vs. interpretation. The overall compilation.
Decentralized Access Control: Policy Languages and Logics
TK1924 Program Design & Problem Solving Session 2011/2012
The order in which statements are executed is called the flow of control. Most of the time, a running program starts at the first programming statement,
Using Subqueries to Solve Queries
CS 432: Compiler Construction Lecture 11
CSE 341 Lecture 11 b closures; scoping rules
Comparing Data & the ‘switch’ Statement
Comparing Data & the ‘switch’ Statement
CprE 185: Intro to Problem Solving (using C)
Presentation transcript:

1 Authorization Sec PAL: A Decentralized Authorization Language

Running title CS 5204 – Fall, Introduction This presentation is based on Design and Semantics of a Decentralized Authorization Language The paper describes an authorization language named SecPAL Agenda:  Problem Description  How SecPAL attempts to solve this problem  SecPAL Semantics and Syntax  Examples and Policy Idioms

Running title CS 5204 – Fall, Problem Description Authentication deals with the problem of how to verify identity  How do we know that user Alice is really Alice?  This presentation assumes that authentication is handled elsewhere Authorization deals with the question of what actions an identity can take  Is Alice allowed to read or write to a certain file?  Previous lectures dealt with how a single system might handle authorization

Running title CS 5204 – Fall, Problem Description Consider an ad hoc network of institutions, each with its own user base and access protocols

Running title CS 5204 – Fall, How SecPAL attempts to solve this problem Virtual organization must establish an authorization policy SecPAL is a declarative authorization policy language  Hosts asserts facts about the rights of users  Authorization policy consists of a collection of assertions (Assertion Context)  Systems can perform queries against Assertion Context  Provides a syntax that is easily read and reasoned by humans

Running title CS 5204 – Fall, SecPAL Semantics and Syntax An authorization policy consists of a set of assertions, called the assertion context An assertion has this form: A says fact if fact 1,..., fact n,c A is the issuer, fact 1,..fact n are conditional facts, and c is the constraint Conditional facts and constraints are optional Assertions can contain variables

Running title CS 5204 – Fall, Assertion Examples Examples: STS says Alice is a researcher FileServer says x can read /project if x is a researcher Alice says Cluster can read /project if currentTime()<=07/09/2006

Running title CS 5204 – Fall, Constraints Constraints narrow the scope of an assertion Can include equality, numerical inequality, path/hierarchical constraints, and regular expressions FileServer says x can read file if x can read dir, file dir, x matches * son

Running title CS 5204 – Fall, Delegation Assertions can specify who has the right to assert a fact Implemented using the pharse “can say” Cluster says STS can say 0 x is a researcher Cluster has delegated the authority to assert who is a researcher to STS “say 0 ” means that STS cannot re-delegate; “say ∞ ” would allow STS to re-delegate A fact that uses “can say” is considered nested, and is considered flat otherwise

Running title CS 5204 – Fall, Deduction Rules SecPAL provides 3 deduction rules Allows conclusions to be made from assertions in the assertion context

Running title CS 5204 – Fall, Deduction Rule “condition” Very simply, the condition rule says that if all of the facts within an assertion are true, the entire assertion is true.

Running title CS 5204 – Fall, Rule “condition” Example Given these assertions: Cluster says x can execute dbgrep if x is a researcher Cluster says Alice is a researcher You can deduce: Alice can execute dbgrep

Running title CS 5204 – Fall, Deduction Rule “can say” If A says that B can say fact, and B says fact, then you can deduce that A has asserted fact.

Running title CS 5204 – Fall, Rule “can say” Example Given these assertions: Cluster says STS can say x is a researcher STS says x is a researcher You can deduce: Cluster says Alice is a researcher

Running title CS 5204 – Fall, Deduction Rule “can act as” Asserts that all facts applicable to C also apply to B, when it is derivable that B can act as C

Running title CS 5204 – Fall, Rule “can act as” Example Given these assertions: FileServer says Node23 can act as Cluster FileServer says Cluster can say x is a researcher You can deduce: FileServer says Node23 can say x is a researcher

Running title CS 5204 – Fall, Authorization Queries Have form A says fact and constraints Performed against a specific assertion context Returns an answer set of all substitutions that make the query true. If the query has no variables, either an empty set or singleton set (for yes or true) is returned.

Running title CS 5204 – Fall, Authorization Query Example Assertion Context: Alice says Bob can read Foo Alice says Charlie can read Foo Alice says David can read Foo Alice says Edward can read Bar Authorization query: Alice says x can read Foo Returns: Bob, Charlie, David These are all the assignments for x that can read Foo according to Alice

Running title CS 5204 – Fall, Authorization Query Table Contains authorization queries for a local assertion context Allows for parameterization of queries When called, parameter is passed to the query This allows an instantiated authorization query to be run against the assertion context Example: check-access-permissions(x): FileServer says x has access from t 1 till t 2, t 1 ≤ currentTime() ≤ t 2, not  t 3, t 4 ( FileServer says x has no access from t 3 till t 4, t 3 ≤ currentTime() ≤ t 4 )

Running title CS 5204 – Fall, Authorization Query Table Example If called for user Alice, the query becomes: check-access-permission(Alice) : FileServer says Alice has access from t 1 till t 2, t 1 ≤ currentTime() ≤ t 2, not  t 3, t 4 ( FileServer says Alice has no access from t 3 till t 4, t 3 ≤ currentTime() ≤ t 4 )

Running title CS 5204 – Fall, Policy Idioms SecPAL can be used to model a variety of authorization protocols Roles: NHS says FoundationTrainee can read /docs NHS says SpecialistTrainee can act as FoundationTrainee NHS says SeniorMedPractitioner can act as SpecialistTrainee NHS says Alice can act as SeniorMedPractitioner

Running title CS 5204 – Fall, Roles Roles: NHS says FoundationTrainee can read /docs NHS says SpecialistTrainee can act as FoundationTrainee NHS says SeniorMedPractitioner can act as SpecialistTrainee NHS says Alice can act as SeniorMedPractitioner Alice has the role of SeniorMedPractitioner, and inherits the capabilities of the SpecialistTrainee and FoundationTrainee

Running title CS 5204 – Fall, Bell-LaPadula *-Property: FileServer says x can read f if x is a user, f is a file, level( x ) >= level(f) FileServer says x can write f if x is a user, f is a file, level(x) <= level(f) FileServer asserts that a user can read any file with a level that is the same or less than that of the user, and write to any file that has a level that is the same or greater than that of the user.

Running title CS 5204 – Fall, Decidability To be useful, authorization queries must return in a reasonable amount of time. The validity of a queries must be determined in a finite number of steps. That is, a query must be decidable SecPAL provides definitions of safety conditions to determine whether an assertion or query is decidable.

Running title CS 5204 – Fall, Assertion Safety Assertion A says fact if fact 1,..., fact n,c is safe if and only if: all conditional facts are flat All variables in c also occur somewhere else in the assertion fact is flat All variables in fact occur in a conditional fact

Running title CS 5204 – Fall, Authorization Query Safety An authorization query is safe if and only if all variables in q are instantiated when query is evaluate. Safe: x says y can read f, not(y says x can read f) All variables in the negation are instantiated by the left-hand side of the query Not safe: x says y can read f, not(y says z can read f) z will not be instantiated when negation clause is evaluated

Running title CS 5204 – Fall, Questions?