10 minutes
ICOM6045 Access Control
Introduction
- access control: deals with the prevention and detection of unauthorized actions by users of a computer system
indentification and authentication: stating who you are and proving the identification claim with credentials
- username (identification) and password (authentication)
other authentication techniques
- something you know, e.g. password
group password criteria try to crack the passwords A passwords consists of >= 6 characters, with at least 1 non-letter 30% easy to crack (passwords easy to remember) B passwords based on passphrases 10% were cracked (passwords easy to remember) C passwords consists of 8 randomly selected characters 10% were cracked (passwords difficult to remember) - something you have, e.g. smartcard
- using pin and card to verify identity
- something you are, e.g. biometric
- enrollment/registration: recording of fingerprint info
- fingerprint is captured by a device
- features are extracted and recorded in a database
- verification/identification: checking of a fingerprint
- features are compared with those in database
- known-subject matching: match with one stored fingerprint features record
- unknown-subject matching: match all records to find records with similar features (more on investigation, less popular)
- types of features
- global features: patterns (aggregate characteristics of ridges)
- arch: ridges enter from one side of the finger, rise in the center forming an arc, and then exit the other side
- loop: ridges enter from one side of a finger, form a curve, and tend to exit from the same side they enter
- whorl: ridges form circularly around a central point on the finger
- local features: minutiae (difficult)
- ridge ending
- bifurcation
- short ridge (or dot)
- global features: patterns (aggregate characteristics of ridges)
- fingerprint minutiae matching
- minutiae are extracted from the 2 fingerprints and stored as sets of points in the 2-dimensional plane
- each minutia is stored as a triplet {x, y, θ}, where (x, y) is the minutia is the location coordinate and θ is the minutia angle
- formulated as a “point pattern matching” problem and processed by pattern recognition algorithm
- fingerprint scanner would check, e.g. iPhone
- fingerprint, verify whether it is correct
- alive, the finger is alive, not just cut one from others (so artificial finger cannnot unlock)
- features are compared with those in database
- enrollment/registration: recording of fingerprint info
- something you know, e.g. password
definitions
- subject: a user
- credential: the required proof needed by the system to validate the identity of the user, e.g. the password
- principal: a name associated with a subject, e.g. username
- subject can have multiple names, e.g. different username on different machine
authorization and access control: restriction on the ability of a subject to use a system or an object in that system
Windows Authentication
- username and password are used for authentication
- windows 2000 uses two methods
- MSV1_0
- stand-alone station
- simple
- just username and hashed password
- do matching with SAM (security account manager)
- match -> success
- no match -> fail
- SAM: the encrypted passwords are stored in the user accounts which are held in the SAM database
- the SAM database is part of the registry
- a binary life, accessed using SAM APIs
- each password is hashed using a one-way function, i.e. password cannot be retrieved in plain form (if you forget your password, you lose it)
- CTRL+ALT+DEL
- aka “secure attention key”: generates calls to low-level functions that cannot be duplicated by application programs
- invokes the Windows operating system logon screen
- provides a trusted path from the keyboard to the login process (winlogon.exe)
- Kerberos
- network environment users
- KDC (key distribution center)
- authenticates users at login and issues tickets which are valid for one session
- maintain a database of secrect keys of all users
- two components
- AS (authentication server): aka. Kerberos server, verify who you are
- a user presents an authenticating credential (e.g. password) to the authentication server
- AS returns a ticket to the user showing that the user has passed authentication
- TGS (ticket granting server): give you personal ticket, using this to access the resource (different people have different tickets, due to AS)
- a users wants to access a resource R (e.g. a file), he sends his authenticated ticket and a request to use R to TGS
- the TGS returns 2 tickets to the user: one shows that the user’s access to R is authorized, the other is for the user to present to R in order to access R
- AS (authentication server): aka. Kerberos server, verify who you are
- Needham and Schroeder Protocol
- a key exchange protocol used in Kerberos
- based on symmetric key crytography
- setting
- Kab: session key between A and B
- Na, Nb: random numbers, avoid sending request again and again
- \(E_K(M)\): encrypt M using K
- Kerberos Authentication Protocol initiating a Kerberos session
- user U with password pw
- Kerberos server: store (U, pw)
- \(K_{K,tgs}\): the secret key shared between Kerbers server and TGS
- \(K_{a,tgs}\): the session key to be used between U and TGS
- \({Ticket}_{a,tgs}\): contains the session key \(K_{a,tgs}\) encrypted using \(K_{K,tgs}\)
- Kerberos Authentication Protocol access a file (after communicating with TGS)
- \(Ticket_{a,F}\) encrypted by \(K_{F,tgs}\), contains
- U's authenticated identity
- an identification of F
- access rights of F with respect to U
- the session key \(K_{a,F}\) for communication between file server and U
- an expiration date for the ticket
- do not need any public key cryptography, just ticket
- \(Ticket_{a,F}\) encrypted by \(K_{F,tgs}\), contains
- advantages
- no password communicated on the network
- protected against spoofing using symmetric key encryption
- limited period of validity for each ticket: protect against brute force search
- timestamps to prevent replay attack
- mutual authentication
- some issues
- requires continuous availability of a trusted TGS (centralized)
- requires a trusted relationship between TGS and every server
- requires timely transactions
- password guessing works
- MSV1_0
- windows login
- users are prompted for username and password
- username and password are gathered by the login process and passed on to the Local Security Authority (LSA) module
- the LSA calls the authentication package that compares the username and password against the values stored in SAM
- when a match is found, the SAM returns the user’s security ID (SID) and the security ID of any group the user belongs to
- the authentication package creates a login session and passes this session together with all SIDs back to the LSA
- the LSA creates a system access token (SAT), containing the user’s SIDs and user rights (privileges)
- the access token contains all relevant information about the capabilities of the authenticated user
- when deciding whether the user is allowed for a particular access, the access token will be consulted
Access Control
Fundamental model (Lampson 1982)
- using reference monitor
- how to specify the control
- what a subject is allowed to do: used in typical application system
- e.g., user A is allowed to access database table T
- what may be done with an object: used by typical OS
- e.g., file gcc is executable and accessible by everyone
- what a subject is allowed to do: used in typical application system
- how to specify the control
Access rights
- Bell-Lapadula security model
- 4 access rights
- execute
- read
- append (blind write), e.g., transaction log
- write
- cannot access
- 4 access rights
- how to specify
- access control matrix (not use)
- can write zero bits in a file to achieve delete function, so there is no rights called "delete" or "move"
- too tedious
- capabilities (not use)
- disadvantages
- difficult to get an overview of who has permission to access a given object, e.g. who has read access to Fun.com
- difficult to revoke a capability: either the OS has to be given the task or users have to keep track of all the capabilities they passed on
- disadvantages
- access control lists (windows use this)
- group
- today, we often use the ACL and group together
- role-based access control
- very common in application layer
- subjects derive their access rights from the role they are performing
- objects: each object can be accessed only through the procedures defined for the object
- roles
- a role is a collection of application specific operations (procedures)
- roles are assigned to users
- a user can have more than one role and more than one user can have the same role
- some problems
- possible violation of security policy due to role inheritance, automatic assumption of rules, unrestricted grants of privileges
- possible misconfiguration due to fuzzy nature of overlaps between roles:
- assignment of users to multiple roles
- assignment of objects to multiple object-access groups
- access control matrix (not use)
Windows Access Control
Domains
- a domain is a collection of machines sharing user accounts database and security policy
- the master copy of the user accounts DB for the domain is held on a server called the primary domain controller (PDC), copy is held on a backup domain controller (BDC)
Workstation
- can maintain their own local account DB and be a member of a domain at the same time
- user can be a local user or a global user
- a user with a local and a global account will have 2 different security identifiers (2 SIDs)
- resources can be managed globally or locally, e.g., a local printer or a network printer
Windows Security Identifiers (SIDs)
- every user, group and machine account has a unique security identification number (SID), used for discretionary access control (DAC)
- DAC means you create a document, and you can control it
- but if you are a general in military, the result may be opposite
- DAC means you create a document, and you can control it
- SID
- constructed when the account is created
- fixed for the life time of the account
- pseudo-random inputs are used in its construction, i.e. delete an account and recreate it will not have the same SID, and access permissions will be different
- structure (S-R-I-S-S- … -RID)
- R: revision number (currently 1)
- I: identifier authority (48-bit)
- S: 1-14 subauthority fields (32-bit)
- RID: relative 32-bit identifier, unique in authority’s name space
- typical principals with their SID
- everyone (world): S-1-1-0
- system: S-1-5-18: the Windows on a machine runs locally as S-1-5-18
- administrator: S-1-5-21-<local authority>-500: a user account created during Windows installation
- administrators: S-1-5-32-544: built-in group with administrator privileges
- guest: S-15-21-<authority>-501
- when a domain is created, a unique SID is constructed
- when a workstation or a server joins a domain, it receives a SID that includes the domain’s SID
- copying the root directory and configuration files of one machine to another machine will make the 2 machines have identical SIDs, which violates the Windows security policy
- windows authorization model
- access to windows objects
- each object has a security descriptor
- the security ID of the owner of the object and the primary group SID
- a set of discretionary access control lists (ACLs): contains access control permissions
- a set of system access control list: contains auditing permissions, which control the audit messages to be generated
- an ACL is composed of multiple Access Control Entries (ACEs), each ACE is a permission
- an access control list entry (ACE) for a subject or group can be
- AccessDenied: always listed first in an ACL
- AccessAllowed: a list of access permission
- each object has a security descriptor
- windows access control checking algorithm
- if no ACL exists, no checks are performed and access is granted
- if an ACL exists, then for each ACE, the subject’s SID in the SAT is compared with the SIDs in the ACE:
- the ACE does not contain a matching SID, the ACE is skipped
- the ACE contains a matching ID specifying ‘AccessDenied’, no access is permitted, regardless of any conflicting AccessAllowed flags
- the ACE contains a matching SID specifying ‘AccessAllowed’, access is granted
- if no matching entry is found, access is denied
Accountability
Overview
- accountability requirements are the second set of security requirements defined in the Orange book (1985)
- accountability: the system knows who you are and what you’re doing
- the system must be able to identify all users of the system
- the system must use information about your identity to decide whether you can access certain information
- the system must keep track of any security-related actions you take
- secure system uses your ID to maintain individual accountability, i.e. keep track of what you are doing in a system
- e.g., if KPC repeatedly tries to access files he’s not authorized to view, the system will know
Requirements
- identification and authentication
- proof yourself to TCB (trusted computing base, mechanisms that enforce security in a system)
- trusted path
- proof you connect to the correct institutions, i.e. authenticate the secure system
- in the past, we use particular key sequence
- today, we use public key certificate
- audit
- the recording, examining and reviewing of security related activities in a trusted system
- typical events are
- logons (successful or unsuccessful)
- logouts
- remote system accesses
- file opens, closes, renames, and deletions
- changes in privileges or security attributes
- auditing provides a way of determining whether and how an attack may take place