Kapitel 6
BIN
Assets/Systemsicherheit-apache-axis-2.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
Assets/Systemsicherheit-cobra-1.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
Assets/Systemsicherheit-cobra-2.png
Normal file
After Width: | Height: | Size: 138 KiB |
BIN
Assets/Systemsicherheit-kerberos-login.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
Assets/Systemsicherheit-middleware-level-policy.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
Assets/Systemsicherheit-nizza-application-view.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Assets/Systemsicherheit-nizza-enigmail-tcb.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
Assets/Systemsicherheit-nizza-enigmail.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
Assets/Systemsicherheit-nizza-os-view.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
Assets/Systemsicherheit-object-managers.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
Assets/Systemsicherheit-policy-controlled-app-application.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
Assets/Systemsicherheit-policy-controlled-app-tcp-functional.png
Normal file
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 37 KiB |
BIN
Assets/Systemsicherheit-policy-controlled-os-tcp-functional.png
Normal file
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 46 KiB |
BIN
Assets/Systemsicherheit-policy-controlled-os.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
Assets/Systemsicherheit-policy-microkernel-os-policy.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
Assets/Systemsicherheit-policy-microkernel-tcp-functional.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
Assets/Systemsicherheit-security-architecture-distributed.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
Assets/Systemsicherheit-selinux-architecture.png
Normal file
After Width: | Height: | Size: 67 KiB |
@ -136,14 +136,20 @@
|
||||
- [Authentication Protocols](#authentication-protocols)
|
||||
- [Summary](#summary-6)
|
||||
- [Security Architectures](#security-architectures)
|
||||
- [Design Principles](#design-principles)
|
||||
- [Operating Systems Architectures](#operating-systems-architectures)
|
||||
- [Architecture Design Principles](#architecture-design-principles)
|
||||
- [The Reference Monitor Principles](#the-reference-monitor-principles)
|
||||
- [Implementation Layers](#implementation-layers)
|
||||
- [Security Architectures of Operating Systems](#security-architectures-of-operating-systems)
|
||||
- [Nizza](#nizza)
|
||||
- [SELinux](#selinux)
|
||||
- [Distributed Systems Architectures](#distributed-systems-architectures)
|
||||
- [Security Enhanced Linux (SELinux)](#security-enhanced-linux-selinux)
|
||||
- [Security Architectures of Distributed Systems](#security-architectures-of-distributed-systems)
|
||||
- [CORBA](#corba)
|
||||
- [Web Services](#web-services)
|
||||
- [Kerberos](#kerberos)
|
||||
- [Kerberos Cryptography: Inside Kerberos Tickets](#kerberos-cryptography-inside-kerberos-tickets)
|
||||
- [Kerberos Login](#kerberos-login)
|
||||
- [Using a Server](#using-a-server)
|
||||
- [Kerberos Summary](#kerberos-summary)
|
||||
- [Summary](#summary-7)
|
||||
|
||||
# Introduction
|
||||
@ -3899,7 +3905,7 @@ Verification: By comparing probe with reference pattern
|
||||
|
||||
Some numbers (2008) :
|
||||
- Finger print readers: FMR 0,01% -0,0001% (1 von 10^4 - 106 ), FNMR 1%
|
||||
- Iris readers: FMR »0,0008%
|
||||
- Iris readers: FMR $\sim$ 0,0008%
|
||||
|
||||
More Technical Issues
|
||||
- Susceptible wrt. environmental conditions
|
||||
@ -4093,12 +4099,488 @@ Basic Security Mechanisms of a TCB
|
||||
- $\rightarrow$ set of all security mechanisms $\not =$ security architecture
|
||||
|
||||
# Security Architectures
|
||||
## Design Principles
|
||||
## Operating Systems Architectures
|
||||
|
||||
> Trusted Computing Base (TCB)
|
||||
> The set of functionsof an IT system that are necessary and sufficient for implementing its security properties $\rightarrow$ Isolation, Policy Enforcement, Authentication ...
|
||||
|
||||
> Security Architecture
|
||||
> The part(s) of a system’s architecture that implement its TCB $\rightarrow$ Security policies, Security Server (PDP) and PEPs, authentication components, ...
|
||||
|
||||
> Security Mechanisms
|
||||
> Algorithms and data structures for implementing functions of a TCB $\rightarrow$ Isolation mechanisms, communication mechanisms, authentication mechanisms, ...
|
||||
|
||||
$\rightarrow$ TCB $\sim$ runtime environment for security policies
|
||||
|
||||
Security architectures have been around for a long time ...
|
||||
- Architecture Components
|
||||
- Buildings, walls, windows, doors, moats, draw bridges
|
||||
- Architecture
|
||||
- Component arrangement and interaction
|
||||
- Goal of a Security Architecture: Build a stronghold such that security policies can be enforced
|
||||
- Presence of necessary components/mechanisms
|
||||
- Totality of interaction control ("mediation")
|
||||
- Tamperproofness
|
||||
- $\rightarrow$ architecture design principles
|
||||
|
||||
Check your trust in
|
||||
- Completeness of access mediation (and its verification!)
|
||||
- Policy tamperproofness(and its verification!)
|
||||
- TCB correctness (and its verification!)
|
||||
|
||||
Problem Areas
|
||||
- PDPs (policy decision points)
|
||||
- PEPs (policy enforcement points)
|
||||
|
||||
are
|
||||
- Scattered among many OS components $\rightarrow$ Problem of security architecture design
|
||||
- Not robust
|
||||
- Notisolated from errors within the entire OS implementation
|
||||
- Especially in dynamically loaded OS modules
|
||||
- $\rightarrow$ Problem of security architecture implementation
|
||||
|
||||
... and that is not all
|
||||
|
||||
Linux set-user-id programs
|
||||
- Execute security-sensitive operations
|
||||
- Adopt different effective user id during execution
|
||||
- Thushave different privileges
|
||||
- Especially those of user id "root"
|
||||
- $\rightarrow$ each such program is part of the TCB!
|
||||
- e.g.
|
||||
- /usr/bin/passwd (> 50 y old open sourceprogram)
|
||||
- /opt/google/chrome/chrome-sandbox (author: Google!)
|
||||
- /usr/lib/virtualbox/VirtualBox (author: Oracle!)
|
||||
|
||||
Problem
|
||||
- OSes/Middleware/Applications are big
|
||||
- Only a small set of their functions logically belongs to the TCB
|
||||
- $\rightarrow$ Security architecture design such that TCB functions are collected in an
|
||||
- not bypassable (total access mediation),
|
||||
- isolated (tamperproofness),
|
||||
- trustworthy (verifiable correctness) core
|
||||
- $\rightarrow$ Security architecture implementation such that these properties are enforced
|
||||
|
||||
## Architecture Design Principles
|
||||
Goal
|
||||
- Complete
|
||||
- Tamperproof
|
||||
- Verifiably correct
|
||||
- control of all security-relevant actions in a system
|
||||
|
||||
Approach: Definitions of fundamental security architecture design principles
|
||||
|
||||
### The Reference Monitor Principles
|
||||
There Exists an Architecture Component that is
|
||||
- (RM 1) Involved in any subject/object interaction
|
||||
- $\rightarrow$ _total mediation property_
|
||||
- (RM 2) Well-isolated from the rest of the system
|
||||
- $\rightarrow$ _tamperproofness_
|
||||
- (RM 3) Small and well-structured enough to analyze correctness by formal methods
|
||||
- $\rightarrow$ _verifiability_
|
||||
|
||||
A security architecture component built along these principles: "Reference Monitor"
|
||||
|
||||
Idea
|
||||
- 1 PDP (policy implementation)
|
||||
- many PEPs (interceptors, policy enforcement)
|
||||
|
||||
Reference Monitor
|
||||
- Core component of a TCB
|
||||
- Typically encloses
|
||||
- Security policy implementation(s) (PDP)
|
||||
- Model state (e.g. ACM, subject set, entity attributes)
|
||||
- Model behavioral logic (e.g.authorization scheme)
|
||||
- Enforcement mechanisms: PEPs
|
||||
- Typically excludes (due to complexity and size, RM 3)
|
||||
- Authentication
|
||||
- Cryptographic mechanisms
|
||||
- Sometimes also model state (e.g.ACLs)
|
||||
|
||||
Consequences of (RM 3) for TCBs
|
||||
- Few functions $\rightarrow$ small size (LoC)
|
||||
- Simple functions $\rightarrow$ low complexity
|
||||
- Strong isolation
|
||||
- Precisely known perimeter
|
||||
|
||||
### Implementation Layers
|
||||
- Policy-controlled OS - Monolithic OS Kernel
|
||||
- OS level policy: 
|
||||
- TCB - Functional View: 
|
||||
- TCB - Implementation View: 
|
||||
- Policy-controlled OS - Microkernel Architecture ( Nizza )
|
||||
- OS level policy: 
|
||||
- TCP functional view: 
|
||||
- TCP implementation view: 
|
||||
- Policy-controlled Application: Middleware-level Policy
|
||||
- 
|
||||
- Example: Web Services on Apache Axis-2 Webservers
|
||||
- Policy-controlled Application
|
||||
- Application-level Policy 
|
||||
- TCB - Functional View 
|
||||
- TCB - Implementation View 
|
||||
|
||||
State of the Art
|
||||
- Numerous rather weak implementations in
|
||||
- Commodity OSes
|
||||
- Middleware
|
||||
- Applications
|
||||
- Stronger approaches in
|
||||
- Microkernel OSes (e.g.L4/Nizza)
|
||||
- Security-focused OSes(e.g.SELinux, Trusted BSD, Open Solaris)
|
||||
|
||||
## Security Architectures of Operating Systems
|
||||
Goal: OS security architecture such that reference monitor principles
|
||||
- (RM 1) Involved in any subject/object interaction
|
||||
- (RM 2) Well isolated from the rest of the system
|
||||
- (RM 3) Small and well-structured
|
||||
|
||||
for security policy are satisfied
|
||||
|
||||
### Nizza
|
||||
### SELinux
|
||||
## Distributed Systems Architectures
|
||||
### CORBA
|
||||
### Web Services
|
||||
### Kerberos
|
||||
## Summary
|
||||
Goals
|
||||
- RM 1 - RM 3
|
||||
- Especially: Small TCB
|
||||
- Maintain functionality of
|
||||
- Contemporary legacy OSes
|
||||
- Legacy Applications ("legacy" = unmodified for security)
|
||||
|
||||
Concepts
|
||||
- Reference monitor principles: Separation of OS, Applications into security-critical vs. non-critical components
|
||||
- $\rightarrow$ precise identification of a (minimal) TCB
|
||||
- Maintain functionality
|
||||
- $\rightarrow$ Paravirtualization of standard, legacy OSes
|
||||
|
||||
OS View
|
||||

|
||||
- Trustworthymicrokernel
|
||||
- Trustworthybasic services
|
||||
- Nottrustworthy (paravirtualized) legacy OS
|
||||
|
||||
Application View
|
||||
- Vulnerability increaseswith growing complexity
|
||||
- $\rightarrow$ reduce vulnerability of security-critical code by
|
||||
- Software functionality separation
|
||||
- Isolation of functional domains
|
||||
- 
|
||||
- Example: Email Client
|
||||
- Non-critical: reading/composing/sending emails
|
||||
- Critical: signing emails (email-client $\leftrightarrow$ Enigmail Signer)
|
||||
|
||||
Putting it all Together
|
||||

|
||||
|
||||

|
||||
|
||||
Size of TCB: 105 000 LoC
|
||||
- Microkernel (L4/Fiasco): 15 000 LoC
|
||||
- Trustworthy basic services: 35 000 LoC
|
||||
- Enigmail Signer: 55 000 LoC
|
||||
|
||||
Results
|
||||
- Code size of TCB reduced by 2 orders of magnitude (100 000 LOC vs. 10 000 000 LOC!)
|
||||
- Functionality of legacy OSes and applications preserved
|
||||
|
||||
Costs
|
||||
- (Moderate) performance penalties
|
||||
- Paravirtualization of legacy OS
|
||||
- Decomposition of trusted applications
|
||||
|
||||
### Security Enhanced Linux (SELinux)
|
||||
Goal: Security-aware OS
|
||||
- State-of-the-art OS
|
||||
- State-of-the-art security paradigms
|
||||
|
||||
Idea: Policy-controlled (Linux) OS kernel
|
||||
|
||||
Approach SELinux =
|
||||
- Linux (DAC, IBAC)
|
||||
- MAC, RBAC, ABAC, TAM, MLS
|
||||
|
||||
Security Policies in SELinux
|
||||
- Implementation by new OS abstractions (unheard of for > 40 years...)
|
||||
- Somewhat comparable to " process" abstraction!
|
||||
- Specification ...
|
||||
- of a process is a program: algorithm implemented in formal language (C++, Rust, Python, Java, ...)
|
||||
- of a security policy is a security model: rule set in formal language (predicate logic, automaton theory, DynaMo, ...)
|
||||
- Runtime environment (RTE) ...
|
||||
- of a process is OSprocess management $\rightarrow$ RTE for application-level programs
|
||||
- of a security policy is OS security Server $\rightarrow$ RTE for kernel-level policies
|
||||
|
||||
SELinux Architecture
|
||||

|
||||
- Policy-aware Security Server (policy decision point, PDP)
|
||||
- Policy RTE in kernel‘s protectiondomain
|
||||
- Interceptors (policy enforcement points, PEPs)
|
||||
- Total interaction control in object managers (part of Linux Security Module Framework)
|
||||
|
||||
Implementation Concepts
|
||||
- Reference Monitor Principles
|
||||
- Total mediation of security-relevant interactions
|
||||
- $\rightarrow$ placement of PEPs: Integration into object managers
|
||||
- Tamperproofness of policy implementation
|
||||
- $\rightarrow$ placement of PDP: Integration into kernel ( security server )
|
||||
- Policy Support
|
||||
- Remember: Security policies require
|
||||
- Authenticity of entities: Unique subject/object identifiers
|
||||
- Policy-specific entity attributes (type, role, MLS label)
|
||||
- Problem in Linux,
|
||||
- Subject identifiers (PIDs) or object identifiers (i-node numbers)are
|
||||
- neither unique
|
||||
- nor are of uniform type
|
||||
- $\rightarrow$ security identifier (SID)
|
||||
- Policy-specific subject/object attributes (type, role, MLS label) are
|
||||
- not part of subject/object metadata (task struct, i-node struct)
|
||||
- $\rightarrow$ security context
|
||||
- $\rightarrow$ Approach: Extensions of process/file/socket...-management
|
||||
|
||||
Authenticity of Entities
|
||||
- Object managers help: implement injective mapping SÈO $\rightarrow$ SID
|
||||
- SID created by security server
|
||||
- Mapping of SIDs to objects by object managers
|
||||

|
||||
|
||||
Entity Attributes
|
||||
- Security policy implements injective mapping SID $\rightarrow$ security context
|
||||
- security contexts creation according to policy-specific labeling rules
|
||||
- Entry in SID $\rightarrow$ security context mapping table
|
||||
|
||||
Security Context contains
|
||||
- Standard entity attributes such as
|
||||
- Unique user ID
|
||||
- Role
|
||||
- Type (user_t , tomCat_t, ...)
|
||||
- Class (process, file, ...)
|
||||
- Policy-specific entity attributes such as
|
||||
- Confidentiality/clearance level (e.g.MLS label)
|
||||
- is implemented as
|
||||
- A text string with policy-dependent format:
|
||||
```bash
|
||||
$ ps -Z
|
||||
bob:doctor_r:shell_t:s0-s0:c0.c255 4056 pts/2 00:00:00 bash
|
||||
```
|
||||
|
||||
Problem: Security contexts of persistent Entities
|
||||
- Policies not aware of persistency of entities, e.g. files (that continue existing over system shutdowns)
|
||||
- $\rightarrow$ persistency of security contexts is job of object managers
|
||||
- Layout of object metadata (e.g. inodes in a file system) is file system standard
|
||||
- $\rightarrow$ security contexts cannot be integrated in i-nodes (their implementation: policy-independent)!
|
||||
|
||||
Solution
|
||||
- Persistent objects additionally have (OM-local) persistent SID : "PSID"
|
||||
- OMs map these to SID
|
||||
- 3 invisible storage areas ($\sim$ files) in persistent memory(HDD, SSD) implementing
|
||||
- Security context of file system itself (label)
|
||||
- Bijective mapping: inode $\rightarrow$ PSID
|
||||
- Bijective mapping: PSID $\rightarrow$ security context
|
||||
|
||||
Access Vector Cache(AVC)
|
||||
- Located in object managers (user level) resp. in Security Server (kernel level)
|
||||
- Caches access decisions
|
||||
|
||||
Summary SELinux
|
||||
- Motivation
|
||||
- Out-of-date and weak security mechanisms in contemporary commodity OSs
|
||||
- Consequence
|
||||
- Insufficient and inadequate security specification paradigms
|
||||
- Numerous vulnerabilities
|
||||
- Approach
|
||||
- New OS abstraction: Security policies
|
||||
- $\rightarrow$ policy-controlled OS: DAC & MAC, IBAC, RBAC, ABAC, TAM, MLS
|
||||
|
||||
RM Evaluation of SELinux
|
||||
- Compliance with Reference Monitor Principles
|
||||
1. Total Mediation Property (placement of PEPs) (currently) done manually
|
||||
2. Tamperproofness of Policy Implementation
|
||||
- Fundamental problem in monolithic software architectures
|
||||
- $\rightarrow$ TCB implementation vulnerable from entire OS kernel code
|
||||
- Security server
|
||||
- All object managers
|
||||
- Memory management
|
||||
- IPC implementation
|
||||
- I/O system
|
||||
- It can be done: Nizza
|
||||
3. Verifiability
|
||||
- Size and complexity of policy (reference policy $\sim$ 50.000 rules) $\rightarrow$ analysis tools
|
||||
- Policy‘s RTE claim to be universal
|
||||
- Completeness of PEPs
|
||||
- Policy isolation
|
||||
|
||||
## Security Architectures of Distributed Systems
|
||||
Scenario: 
|
||||
|
||||
### CORBA
|
||||
Integration of Security Policies
|
||||
|
||||

|
||||

|
||||
|
||||
### Web Services
|
||||
Integration of Security Policies
|
||||
|
||||
Example: Apache Axis-2 Webserver
|
||||
|
||||

|
||||
|
||||
### Kerberos
|
||||
Authentication and authorization architecture for distributed systems with closed user groups( $\rightarrow$ static sets of subjects)
|
||||
|
||||
Target Scenario:
|
||||
- Distributed system run by single organization
|
||||
- Workstations and Servers
|
||||
- 2 Kerberos servers
|
||||
- Authentication Server (AS)
|
||||
- Authorization Server (TGS)
|
||||
|
||||
History:
|
||||
- MIT _Athena_ project, started 1986
|
||||
- Concepts are part of CORBA‘s _Basic CORBA Security Architecture_ specification
|
||||
- Originally designed for: 650 workstations, 65 servers, 5000 users (1988)
|
||||
|
||||
Principal Architecture Components
|
||||
- Authentication Server (AS)
|
||||
- Authenticates users
|
||||
- Based on (symmetric) key shared between user and AS
|
||||
- Result: electronic ID card (authenticator)
|
||||
- Authorizes use of TGS
|
||||
- Based on key shared between AS and TGS
|
||||
- Result: ticket (capability) for TGS
|
||||
- Ticket Granting Server (TGS)
|
||||
- Issues tickets for all servers
|
||||
- Based on key shared between TGS and respective server
|
||||
- Result: ticket(s) for server(s)
|
||||
- Kerberos database
|
||||
- Contains for each user and server a mapping $⟨user, server⟩\rightarrow$ authentication key
|
||||
- Used by AS
|
||||
- Is multiply replicated (availability, scalability)
|
||||
|
||||
Typical Use Case
|
||||
1. Authentication, then request for TGS ticket
|
||||
2. Authenticator, TGS-Ticket
|
||||
3. Request for further server tickets
|
||||
4. Server tickets
|
||||
5. Service request: Servers decide based on
|
||||
- authenticator of client
|
||||
- server ticket
|
||||
- (tentatively) local security policies
|
||||
|
||||
#### Kerberos Cryptography: Inside Kerberos Tickets
|
||||
Tickets
|
||||
- Issued by Ticket Granting Server
|
||||
- Specify right of one client to use one server (personalized capability)
|
||||
- Limited lifetime (to make cryptographic attacks difficult)
|
||||
- $\sim$ 1 day; balance between secure and convenient
|
||||
- Short: inconvenient but more secure (if ticket is stolen it soon expires)
|
||||
- Long: insecure but more convenient (no need for frequent renewal)
|
||||
- Can be used multiply while valid
|
||||
- Are sealed by TGS with key of server
|
||||
|
||||
$T_{Client/Server}=\{Client, Server, Client.NetworkAddress, Timestamp, Lifetime, SessionKey_{Client/Server}\}_{KTGS/Server}$
|
||||
|
||||
Provisions against Misuse
|
||||
- Tampering by client to fabricate rights for different server
|
||||
- $\rightarrow$ provision: guarantee of integrity by MAC using KTGS/Server
|
||||
- Use by third party intercepting ticket
|
||||
- $\rightarrow$ provision: personalization by
|
||||
- Name and network address of client together with
|
||||
- Limited lifetime
|
||||
- Authenticator of client $\rightarrow$
|
||||
|
||||
Authenticators
|
||||
- Proof of identity of client to server
|
||||
- Created using SessionKeyClient/Server
|
||||
- $\rightarrow$ can be created and checked only by
|
||||
- Client (without help by AS, because client knows session key (see below))
|
||||
- Server
|
||||
- TGS (trusted)
|
||||
- Can be used exactly once
|
||||
- $\rightarrow$ prevent replay attacks by checking freshness
|
||||
|
||||
$A_{Client}=\{Client, Client.NetworkAddress, Timestamp\}_{SessionKey_{Client/Server}}$
|
||||
|
||||
#### Kerberos Login
|
||||
The Complete Process
|
||||

|
||||
|
||||
Single Steps:
|
||||
1. Alice tells her name
|
||||
2. Alice’s workstation requests authentication
|
||||
3. The AS
|
||||
- Creates fresh timestamp
|
||||
- Creates a fresh session key for Alice's communication with the TGS: $SessionKey_{Alice/TGS}$
|
||||
- Creates Alice’s ticket for TGS and encrypts it with $K_{AS/TGS}$ (so Alice cannot modify it): $Ticket_{Alice/TGS}=\{Alice, TGS, ..., SessionKey_{Alice/TGS}\}_{K_{AS/TGS}}$
|
||||
- Encrypts everything with $K_{Alice/AS}$ (so only Alice can read the session key and the TGS-Ticket) $\{TGS, Timestamp , SessionKey_{Alice/TGS}, Ticket_{Alice/TGS}\}_{K_{Alice/AS}}$
|
||||
4. Alice’s workstation
|
||||
- Now has ${TGS, Timestamp , SessionKey_{Alice/TGS} , Ticket_{Alice/TGS}\}_{K_{Alice/AS}}$
|
||||
- Requests Alice’s password
|
||||
- Computes $K_{Alice/AS}$ from password using a cryptographic hash function
|
||||
- Uses it to decrypt above message from AS
|
||||
- Result: Alice’s workstation has
|
||||
- Session key for TGS session: $SessionKey_{Alice/TGS}$
|
||||
- Ticket for TGS: $Ticket_{Alice/TGS}$
|
||||
- The means to create an authenticator
|
||||
|
||||
#### Using a Server
|
||||
Authentication (bidirectional)
|
||||
|
||||
2 Steps
|
||||
1. Authentication of client to server
|
||||
2. Authentication of server to client (optional)
|
||||
|
||||
1. Authentication of Client
|
||||
- Assumptions
|
||||
- Alice has session key
|
||||
- Alice has server ticket
|
||||
1. Alice assembles authenticator $A_{Alice}=\{Alice,Alice’s network address,timestamp\}_{SessionKey_{Alice/Server}}$ Only Alice can do that, because only she knows $SessionKey_{Alice/Server}$
|
||||
2. Alice sends $Ticket_{Alice/Server}, A_{Alice}$ to Server
|
||||
3. Server decrypts ticket and thus gets session key; thus it can decrypt $A_{Alice}$ and check:
|
||||
- Freshness
|
||||
- Compliance of names in ticket and authenticator
|
||||
- Origin of message (as told by network interface) and network address in authenticator
|
||||
2. Authentication of Servers
|
||||
- Server sends $\{Timestamp+1\}_{SessionKey_{Alice/Server}}$ to Alice
|
||||
- Can only be done by principal that knows $SessionKey_{Alice/Server}$
|
||||
- This can only be a server that can extract the session key from the ticket $Ticket_{Alice/Server}=\{Alice,Server ,..., SessionKey_{Alice/Server}\}_{K_{TGS/Server}}$
|
||||
|
||||
Getting a Ticket for a Server
|
||||
- Are valid for a pair ⟨client, server⟩
|
||||
- Are issued (but for TGS-Ticket itself) only by TGS
|
||||
- Ticket request to TGS: $(server, TGS ticket, authenticator)$
|
||||
|
||||
TGS:
|
||||
- Checks $Ticket_{Alice/TGS}$ and $authenticator$
|
||||
- Generates session key for client and server: $SessionKey_{Alice/Server}$
|
||||
- Generates ticket: $Ticket_{Alice/Server}$
|
||||
- Encrypts both using shared session key $\{Server, SessionKey_{Alice/Server}, Ticket_{Alice/Server}\}_{SessionKey_{Alice/TGS}}$
|
||||
|
||||
#### Kerberos Summary
|
||||
Distributed Authentication and Authorization Architecture
|
||||
- 2 Security servers
|
||||
- Authentication
|
||||
- Authorization
|
||||
- Cryptographic mechanisms for
|
||||
- Authentication
|
||||
- Symmetric encryption: Confidentiality + Integrity + Authenticity
|
||||
- of communication
|
||||
- of tickets and authenticators
|
||||
- Kerberos TCB: TCBs of all OSes+
|
||||
- Authentication Server
|
||||
- Ticket GrantingServer
|
||||
- Kerberos database
|
||||
- All PDPs and PEPs on the servers
|
||||
- Time server ($\rightarrow$ signed time stamps!)
|
||||
|
||||
## Summary
|
||||
Current TCBs
|
||||
- Huge
|
||||
- Inhomogeneous
|
||||
- Distributed
|
||||
- Hard to identify precisely
|
||||
|
||||
Security Architectures’ Problem
|
||||
- Compliance to reference monitor principles
|
||||
|
||||
Case Studies
|
||||
- Nizza
|
||||
- SELinux
|
||||
- CORBA, Web Services, Kerberos
|
||||
- $\rightarrow$ Huge challenges!
|