Lecture 2 - Nipissing University Word
Download
Report
Transcript Lecture 2 - Nipissing University Word
Lecture 2
Access Control
1
Contents
Identification
and Authentication
Basic Principles and Concepts of
Access Control
Identity-Based Access Control
Access Operations
UNIX Access Control
ACL and Access Matrix
Role-based Access Control
New Challenges
2
Identification & Authentication
A secure system has to track the identities of
the users requesting its services
The
user identity is a parameter in access control
decisions;
The user identity is recorded when logging
security-relevant events in an audit trail.
Identification: Announce who you are.
Authentication: You prove that you are who
you claim to be.
3
Password
Threats for Identification
To avoid attacks such as
Exhaustive search
Intelligent search
Defense:
4
Password guessing
Password spoofing
Compromise of the password file.
Set a password
Change default password
Password length
Password format
Avoid obvious passwords
System help
Password
checkers
Password generation
Password ageing
Limit login attempts
Inform users
5
Spoofing Attacks
Who
gets the user name and
password?
Displaying
the number of failed logins
Trusted path: e.g., NT’s CNTL+ALT+DEL
Mutual authentication: The system should
be required to authenticate itself to the
user.
6
Protecting the Password
file
Cryptographic
protection
Access Control enforced by the OS
Combination
7
Intel Password Rules
In order to protect your security, Intel has certain rules for choosing
passwords. Please read the following rules so that you will know how to
choose a good password.
The following rules apply to all passwords:
8
The password must be at least 8 characters long.
The password must contain at least:
one alpha character [a-zA-Z];
one numeric character [0-9];
one special character from this set:
`!@$%^&*()-_=+[];:'",<.>/?
The password must not:
contain spaces;
begin with an exclamation [!] or a question mark [?];
contain your login ID.
The first 3 characters cannot be the same.
The sequence of the first 3 characters cannot be in your login ID.
The first 8 characters cannot be the same as in your previous password.
Passwords are treated as case sensitive.
Examples
Invalid or poorly chosen passwords:
Strong passwords (the following are for example
purposes only; do not use any of these examples as
your actual password):
9
Your login ID.
Names of co-workers, pets, family, etc.
Phone numbers, license numbers, or birthdays.
Simple passwords like "asdf" (adjacent keys on a keyboard).
Words, which can be found in a dictionary.
Use a name, modified slightly, like "b0b$mith" or "M@ryL0ng".
Use a phrase you can remember, like "hello world" modified to
"hel10@World".
"tL*5i?wu" (contains letters, special characters, and numbers).
Alternatives
Something you know
PIN
Something you hold
Smart
card
Who you are
Palm
prints, finger prints, iris pattern, retina
pattern
What you do
Signature:
Where you are
Which
10
form, speed, pressure,
terminal, which client, registered position
What is access control?
A generic
term for the process by which a
computer system controls the interaction
between users and system resources
To implement a security policy, which may be
determined by
organisational
requirements
statutory requirements (medical records, for
example)
Policy
requirements may include
confidentiality
11
(restrictions on read access)
integrity (restrictions on write access)
availability
A schematic view
A user
requests access (read, write,
print, etc.) to a resource in the
computer system
The reference monitor
establishes
the validity of the request …
… and returns a decision either granting or
denying access to the user
Access
Request
12
Reference
Monitor
System
Decision
Simple analogies
Consider a paper-based office in which
certain documents should only be read by
certain individuals
We could implement security by
storing
documents in filing cabinets
issuing keys to the relevant individuals for the
appropriate cabinets
The reference monitor is the set of (locked)
filing cabinets
An access request (an attempt to open a
filing cabinet) is granted if the key fits the
lock (and denied otherwise)
13
Simple analogies
Consider now a night club where only certain
individuals are allowed into the club
We can implement security by
employing
a bouncer
providing the bouncer with a guest list (that is, a
list of people permitted to enter the club)
The reference monitor is the security guard +
the guest list
An access request is granted only if
a
club-goer can prove their identity
(authentication)
she is on the guest list
14
Subjects and objects
Subject
Active
entity in a computer system
User,
process, thread
We
will assume that a subject is
synonymous with a user
Object
Passive
entity or resource in a computer
system
Files,
15
directories, printers
Authentication &
authorization
If s is a statement, authentication answers
the question ‘Who said s?’ with a subject.
Subjects make statements; this is what they
are for.
If o is an object, authorization answers the
question ‘Who is trusted to access o?’ with a
subject.
Often access rules are attached to objects as
an access control list (ACL): for each
operation, the ACL specifies a set of
authorized subjects
16
Fact file
17
Model assumes identity-based access control: ACL
entries are ‘human readable’ subjects; it may seem
that access control by definition requires that
identities (of persons) are verified
Access rules are local: we do not have to search for
the rule that is applicable, it is stored as an ACL with
the object
Enforcement of rules is centralized: the reference
monitor does not consult other parties when making
a decision
Simple access operations: read, write, execute
Identity-based access
control
The kind of access control we are used to
form operating systems like Unix or Windows
Appropriate for ‘closed’ systems where one
can physically find the users
Do not confuse the ‘identity’ of a person with
a ‘user identity (uid)’ in an operating systems;
a uid is just a unique identifier that need not
correspond to a real person (e.g. ‘root’)
18
Changes of 1990s
On the Internet we can deal with parties we
never met before. Their ‘identity’ can hardly
figure in our access rules.
Access is controlled at the level of applets,
not at the granularity of read/write/execute
Access control is a two-stage process:
1.
Decide on the access rule that should be
applied; third parties may get involved at this
stage
2. Apply the access rules to individual requests
19
Changing the focus
User
identities link a user’s privileges to
a current access request, but there is
no necessity to describe or enforce
access control by reference to subjects
(users)
Instead of asking who made the
request, ask what to do with it
20
21
Access control without
sources
1.
The receiver may associate UID diego with
a particular person (optional)
2. After running a context establishment
protocol, the receiver puts UID diego into the
security context ‘xxxx’ (similar to session key)
3. The receiver handles the request within the
security context with context identifier ‘xxxx’
4. The receiver does not verify the source of
the request
22
Security contexts
Security contexts are collections of access
control parameters. They correspond to
subjects, but can hardly be described as the
sources of access requests.
Authentication answers the question ‘Which
security context should be associated with
this access request?’.
Authorization evaluates the request within
that security context.
23
Trust management
A unified
approach to specifying and
interpreting security policies,
credentials, and relationships.
Generalize rules: instead of ACLs, use
a programming language to express
assertions
Distribute authority: assertions can be
local (‘policies’) or be signed by another
authority (‘credentials’)
24
Trust management
25
Credentials can directly authorize actions, there is no
need to authenticate a user
Trust management engine (compliance checker)
answers question ‘Does the set C of credentials
prove that the request r complies with the local
security policy P?’
Challenge: How to find a set of credentials that
satisfies a given policy
Trade-off between the expressiveness of the
language and the complexity of the compliance
checker
Trust management systems do not manage trust
Code-based access
control
Evidence
used in access decisions can
be site of code origin: local or remote?
URL
of code origin: intranet or Internet?
code signature: signed by trusted author?
code identity: approved (‘trusted’) code?
code proof: code author provides proof of
security properties
Found
in Java security and in .NET
security
26
Call chains
A has access right to resource R, B does not;
A calls B and B requests access to R: should
access be granted?
A conservative
answer is ‘no’, but A could
explicitly delegate the access right to B
A has access right to resource R, B does not;
B calls A and A requests access to R: should
access be granted?
A conservative
answer is ‘no’, but A could
explicitly assert its access right
27
Delegation
Alice ‘delegates’ to Bob the right to use one
of her resources: put this access right into an
ACL
It depends on policy whether Bob can delegate
this right to another user; Alice can manage her
own ACL
Alice
‘delegates her identity (uid)’ to a
process (subject) running in a computer
system
28
It depends on policy whether the process can
delegate her uid to other processes, but usually it
is not an option to ask Alice
Access operations
An
interaction between an object and a
subject
A subject may observe (read) an object
Information
A subject
may alter (write to) an object
Information
29
flows from object to subject
flows from subject to object
Back to the analogies
In the club example
a
subject is a club-goer
the only objects are the club and the guest list
access operations could include “enter club” and
“delete guest” (that is, change the guest list)
In
the filing cabinet example
a
subject is a user of the files in the cabinets
an object is a filing cabinet or a file in one of the
cabinets
access operations could include read and write
(for files) and also “remove key from user”
30
Read and write access
In a multi-user OS users open files to get access
Write access mode is usually implemented as
read/write mode
A user editing a file should not be asked to open it twice
The append (or “blind write” or write-only) access
mode allows users to alter an object without
observing its contents
31
Files are opened for read or for write access so that the OS
can avoid conflicts like two users simultaneously writing to
the same file
Rarely useful (audit log files being the main exception)
Implemented in Multics
The execute access
operation
Sometimes
an object can be used
without opening it in read or write mode
Directories
Binary
executable files
Cryptographic keys
We
include the execute access
operation
This
may mean different things in different
contexts and in different systems
32
UNIX access operations
File
access
Read
(r)
Write (w)
Execute (x)
Directory
Read
access
(list directory contents)
Write (create or rename files in directory)
Execute (search directory)
33
UNIX ls command
Operations
Owner Group
Size
Updated
Name
drwxr-xr-x
jason
Research
512
Jul 3 15:51
Research
-rw-------
jason
research
127092
Aug 28 15:01
Trash
-rwxr-xr-x
jason
research
7632
May 20 18:16
a.out
-rw-r-----
jason
research
0
Nov 25 1998
allfiles.txt
34
The UNIX reference
monitor
Users have an ID and a group ID
12.6
represents a user with group ID 12 and user
ID 6 (within that group)
Objects have an ID (determined by the
creator of the object) and a group ID
(determined by the group ID of the creator)
12.6
is the object ID of an object created by user
12.6
Objects
also have an access mask
A pattern
35
of 9 bits in 3 groups of 3
The UNIX reference
monitor
The access mask of the Research directory
is 101 101 111 representing x-r x-r xwr
The
Assume the ID of the Research directory is
12.6
Any user has the default access given by the
first 3 bits (read and execute in this case)
Any user with ID 12.x has group access
because the user ID and object ID match in
the first place
The user with ID 12.6 has owner access
because the user ID and object ID match in
both places
36
ls output reverses the order of the bits
The access control
matrix
Introduced by Lampson (1972) and extended
by Harrison, Ruzzo and Ullman (1976-8)
Columns
indexed by objects
Rows indexed by subjects
Matrix entries are (sets of) access operations
Foundation of many theoretical security models
Objects
Subjects
jason
mick
37
trash
a.out
allfiles.txt
{r,w}
{r,w,x}
{r,w}
{r,x}
{r}
The access control
matrix
A request
can be regarded as a triple
(s,o,a)
s
is a subject
o is an object
a is an access operation
A request
is granted (by the reference
monitor) if
a
38
belongs to the access matrix entry
corresponding to subject s and object o
The access control
matrix
request (jason, allfiles.txt, w) is
granted
The request (mick, allfiles.txt, w) is
denied
The
Objects
Subjects
jason
mick
39
trash
a.out
allfiles.txt
{r,w}
{r,w,x}
{r,w}
{r,x}
{r}
Disadvantages
Abstract
formulation of access control
not suitable for direct implementation
The
matrix is likely to be extremely sparse
and therefore implementation is inefficient
Management of the matrix is likely to be
extremely difficult if there are XXXXs of
files and XXs of users (resulting in
XXXXXXs of matrix entries)
40
Access control lists
An ACL corresponds to a column in the access
control matrix
[a.out: (jason, {r,w,x}), (mick, {r,x})]
How would a reference monitor that uses ACLs
check the validity of the request (jason, a.out, r)?
Objects
Subjects
jason
mick
41
trash
a.out
allfiles.txt
{r,w}
{r,w,x}
{r,w}
{r,x}
{r}
Access control lists
Access
control lists focus on the
objects
Typically
implemented at operating system
level
Windows NT uses ACLs
Disadvantage
How
can we check the access rights of a
particular subject efficiently (“before-theact per-subject review”)?
42
Capability lists
A capability list corresponds to a row in the access
control matrix
[jason: (trash, {r,w}), (a.out, {r,w,x}), (allfiles.txt, {r,w})]
How would such a reference monitor check the validity
of the request (jason, a.out, r)?
Objects
Subjects
jason
mick
43
trash
a.out
allfiles.txt
{r,w}
{r,w,x}
{r,w}
{r,x}
{r}
Capability lists
Capability lists focus on the subjects
Typically
implemented in services and application
software
Database applications often use capability lists to
implement fine-grained access to tables and
queries
Renewed interest in capability-based access
control for distributed systems
Disadvantage
How
can we check which subjects can access a
given object (“before-the-act per-object review”)?
44
Back to the analogies
An ACL
is analogous to a guest list
the
club is the object
the favoured clubbers appear on the list
A capability
list is analogous to the set
of keys issued to a user (the subject)
for unlocking the filing cabinets (the
objects)
45
Administration
Tasks
include
Creation
of new objects and subjects
Deletion of objects and subjects
Changing entries in access control matrix
(changing entries in ACLs and capability
lists)
The
administration of access control
structures is extremely time-consuming,
complicated and error-prone
46
Aggregation
There
47
are several important theoretical
results (Harrison, Ruzzo and Ullman;
Lipton and Snyder) that demonstrate
that it is extremely difficult to anticipate
the consequences of administrative
actions
Access control structures that
aggregate subjects and objects are
used to simplify the administrative
burden
Aggregation techniques
User
groups
Roles
Procedures
Data types
48
Groups
Access rights are often defined for groups of
users
In
UNIX three groups are associated with each
object
Owner
Group (owner)
Others
In
VMS there are four groups
Owner
Group
World
System
In
49
VSTa, a complicated hierarchical group
structures can be constructed based on the UNIX
model (Andrew Valencia http://www.vsta.org:8080/ )
Roles
A data
type is a set of objects with the same
structure (bank accounts, for example)
We define access operations (procedures or
permissions) on a data type
Permissions are assigned to roles
Users are assigned to roles
A role is a collection of application-specific
operations (procedures)
Roles are (usually) arranged in a hierarchy
50
Example
Objects are bank
accounts
Subjects are bank
employees
The set of bank
accounts forms a data
type
We define roles
51
Teller
Clerk
Administrator
We define procedures for
Crediting accounts (CA)
Debiting accounts (DA)
Transferring funds between
accounts (TF)
Creating new accounts (NA)
Authorising overdrafts (AO)
Example
We
assign procedure
CA and
DA to the Teller role
TF to the Clerk role
NA and AO to the Administrator
role
We
assign all users who are
tellers to the Teller role, etc.
The Administrator role can run
all the procedures
52
Admin
Clerk
Teller
Benefits of RBAC (RoleBased Access Control)
We
only need to assign users and
permissions to roles
We can use inheritance in the role
hierarchy to reduce the number of
assignments that are required
Simplifies administration
53
RBAC models
NIST
(Ferraiolo et al., 1992-2000)
RBAC96 (Sandhu et al., 1996)
ARBAC97 (Sandhu et al., 1997-99)
OASIS (Hayton et al., 1996-2001)
Role Graph model (Nyanchama and
Osborn, 1995-2001)
Unified RBAC96 NIST model
(Ferraiolo, Sandhu et al., 2001)
54
RBAC implementations
Roles implemented in
Window
NT (as global and local groups)
IBM’s OS/400
Oracle 8 onwards
.NET framework
There is no generally accepted standard for
RBAC
Role
hierarchies
Semantics of role hierarchies
55
My Research on Roles
In society, a role is a wrapper of a user to
view the world.
Incoming
Messages
Service
interface
Request
Interface
Top Package::Top
A Human Package
in
Collaboration
56
Outgoing
Messahes
My Research on Roles
In
a system, a role is an interface between a user and a
system.
...
...
role
57
A collaborative
system including
objects, agents,
groups and roles
New challenges
How
do we “do” access control
if we can’t identify subjects?
How do we control the access
of untrusted code running on
our machine?
58
.NET security
Evidence-based
access control
Location
Code
identity
Code author
Proof carrying code
Role-based
security
Authentication
Authorisation
59
(access control)
Java security
Protection
domains
The
scope of a protection domain is the
set of objects accessible by a subject
System domains
Application domains (sandboxes)
Signed
applets
Digitally
signed code that can be trusted
by the host
60
Summary
Identification
and Authentication
Basic Principles and Concepts of Access
Control
Identity-Based Access Control
Access Operations
UNIX Access Control
ACL and Access Matrix
Role-Based Access Control
New Challenges
61