Security and Reliability Issues in Distributed Systems

advertisement
Security and Reliability Issues
in Distributed Systems
Chan Hing Wing, Anthony
MPhil Term 1,
CSE CUHK
December 11, 1998
Presentation Outline


Introduction
Distributed system security
 Common
requirements and
approaches
 The SSL protocol
 CORBA Security

Distributed system reliability
 Common
requirements and
approaches


Summary
Questions and Answers
Introduction
Distributed systems developed rapidly
over the past two decades

E.g., WWW, automatic teller machines,
distant learning

As distributed systems become widely
used, their security and reliability
becomes very important

Distributed Systems: hardware
(autonomous computers, the linking
network) and software (distributed
system software)
 Security and Reliability both have
hardware aspect and software aspect

Distributed System Security
Hardware Vs Software:

Hardware security: keys, locks, cards,
visitor monitoring, etc. (not main focus)

Software security:
(in terms of user requirements)
 integrity: message transmitted over network
must be identical to the original
 confidentiality: message transmitted must not
be readable to unintended entities
 availability: the system must not be
unavailable due to security attacks
 accountability: user actions that is securitycritical must be traceable
Common Approaches

Cryptography
encryption
Data
decryption
Secret-form data
The secret-form data must be unreadable
without prior knowledge of a secret / key
(confidentiality), but recoverable with
knowledge of the secret (availability)
Usually the secret-form data cannot be
decrypted successfully if it is tampered
it can be used to ensure the integrity of data,
(e.g., message authentication codes (MACs),
digital signatures)
Common Approaches

Cryptography (cont’d)
Secret-key cryptography: the same key is
used in encryption and decryption, e.g.,
DES, block/stream ciphers, MACs
 Public-key cryptography: different keys
are used, e.g., RSA, digital signatures
 Public keys (PK) Vs Secret keys (SK)

PK do not require distribution of shared
secret
 more convenient for distributed systems
 PK rely heavily on the computational
unfeasibility to solve some hard problems
(e.g., factoring, travelling salesman)
 breakable if these problems were solved

Common Approaches

Authentication
the process of verifying a claimed identity
 the entity to be authenticated may be a
person (e.g., in password checking), a
message (i.e., integrity) or a program (e.g.,
client/server authentication)
 usually make use of cryptography, in which
a secret (key) of the entity of the owner of it
is used to verify its identity
 authentication protocols

ways for two components in a DS to ensure
each other is the intended entity
 usually by negotiating a short-term key for
communication (e.g., Needham/Schroeder)

Common Approaches

Authorization / Access Control
the process of granting suitable rights to
legitimate users
 usually by means of access control lists
(ACLs) (e.g., permissions in UNIX NFS)


Logging

logging security-critical activities of
users (e.g., “su” logs in UNIX), so that
any internal security attacks can be
accounted for
The SSL protocol



Secure Socket Layer, by Netscape
Provides security for applications
over the insecure Internet
Overview:
Application 1
(e.g., telnet, ftp)
Application
data protocol
SSL handshake
protocol
SSL record protocol
Application 2
Application
data protocol
SSL handshake
protocol
SSL record protocol
Reliable transport protocol (e.g., TCP)
The SSL Protocol The Three Components

Record protocol






SSL handshake protocol



encapsulate higher level protocols
divide messages into blocks
compresses message blocks
applies MAC to message blocks
encrypts and transmits message blocks
allow the client to authenticate the server, and
the server to authenticate the client
negotiate an encryption algorithm and key for
application data transmission
Application data protocol

transmits data from applications to the record
layer, which then sends the data securely
The SSL Handshake Protocol
•An authentication protocol
•A sample session:
“Hello! I want to connect with you.
I understand encryption algorithms like DES, RC4, IDEA, etc.…”
“Hello, then let’s use DES.
This is my certificate. Please check. Please also send yours.”
CLIENT
(Client authenticate server by verifying server’s certificate...)
“Alright, here is my certificate, and I’ve generated a DES
master key. Here I encrypt it with your public key and send
it to you I’m finished..”
(Server authenticate client by verifying client’s certificate...)
(Server decrypts the DES key received from client…)
Ok, I received your key. I’m finished.
Data encrypted with the DES master key
.
.
.
SERVER
The SSL Protocol - Implementation

SSLeay






A commonly used implementation of the SSL protocol
(2.0 and 3.0)
Written by Eric Young in Australia
Contains library functions for making SSL
communications (e.g., SSL_connect, SSL_free,
SSL_get_certificate, SSL_get_cipher)
Includes many encryption algorithms:
 ciphers (e.g., DES, RC4, RC2, IDEA)
 digests (MD5, MD4, SHA-1)
 public keys (RSA, DSA, Diffie-Hellman)
Applications built on top of SSLeay: SSLtelnet, SSLftp,
SSLhttpd, etc., by Tim Hudson in Australia
Patches (< 100 K size) to some existing server and
client programs that support SSLeay
CORBA Security


Security is provided as a kind of CORBA
services (not part of the core ORB)
Two levels of security defined:
level 1: does not change IDL definition;
applications are unaware of the security
mechanism. Users may be authenticated
before calling an application, and then security
is enforced automatically during object
invocation
 level 2: new IDL definition introduced;
applications can make use of objects such as
credentials and Principal-Authenticators to
define their own security policies

CORBA Security

The security model:
User
Server
Client
requests
Message
protection,
access control
device, etc.
ORB
Security Implementation
enforcing security policy
Message
protection,
access control
device, etc.
•All object invocations are mediated by the
security implementation
•No specific security policy defined in the model,
so that a wide variety of different policies can be
defined according to different needs
CORBA Security

Principals


Human users or system entities (e.g., the
client acting for a user) registered in and
authentic to the system
Credentials




Each principal in a CORBA environment with
Security Service is associated with
credentials
Credentials contain security attributes of an
object, e.g., its identity and privileges (like
gate-passes)
Credentials are used for access controls,
authentication, etc.
An object may have several credentials,
representing privileges in different domains
CORBA Security
invoker

Delegation
Passing of credentials from one object to
another, so that the receiving object
(intermediate) can invoke a third object
(target) on behalf of the passing object
(invoker)
 Options of delegation:

Client credentials
intermediate
Client credentials /
intermediate
credentials / mixed,
according to different
options
targe
no delegation
 simple delegation
 composite delegation
 combined delegation
 traced delegation

CORBA Security

Non-repudiation service

provide services that make users / principals
accountable for their actions
Object A
Object B
Dispute/judgement
Non-repudiation service
Evidence
generation
&
verification

Evidence
storage
&
retrieval
Adjudicator
Delivery
Authority
Service
requests /
responses
Implementation: SSL services come with
Orbix; separate purchase for Visigenic
Distributed System Reliability

Reliability:
broad meaning (dependability):
 security
 availability
 fault tolerance
 recoverability
 correctness
 consistency
 timeliness
Reliability

A narrower definition (J. Stankovic):
Fault: a mechanical or algorithmic defect
which may generate an error
 Error: an item of information which will
produce a failure
 Failure: an event at which a system
violates its specifications
Reliability: the degree of tolerance
against errors and faults

Reliability
Hardware Vs Software:

Hardware reliability
 hardware
redundancy, high-quality IC,
wires, UPS, etc. (not main focus)

Software reliability
 fault
tolerance
 error recovery
 data / code redundancy
Common Approaches

Replication
keeping > 1 copies of data / programs in
system, increase availability
 Fault masking:



Majority voting:


masking out the effects of faults by data /
program redundancy in replicas
process requests on different servers, and
produce the most possible results by
voting on results from different servers
Crash recovery

E.g., by logging, checkpointing
Common Approaches

Reliable transmission protocols
 protocols
with error detection,
correction e.g., TCP/IP

Concurrency control
 locking
 ordering
Summary

Security requirements and
approaches in distributed systems
 The
SSL protocol
 CORBA Security Service

Reliability requirements and
approaches in distributed systems
Next Steps



Know more about distributed
system reliability
Study the CORBA Security Service
specification; investigate existing
implementations of the spec.
Probably implement a system that
demonstrates security & reliability
in the CORBA environment
The End
Questions and Answers session
Download