Sicurezza degli accessi remoti Sicurezza degli

Transcript

Sicurezza degli accessi remoti Sicurezza degli
La sicurezza degli accessi remoti
(remote - gen'01)
Situazione standard
Sicurezza
Sicurezza degli
degli accessi
accessi remoti
remoti
■
Antonio Lioy
< lioy @ polito.it >
■
■
Politecnico di Torino
Dip. Automatica e Informatica
Sicurezza orientata al canale di
comunicazione
Protocolli:
■ SSL / TLS
■ SSH
■ ad-hoc (es. deslogin, stel)
■ PCT
SSL (Secure Socket Layer)
■
■
■
proposto da Netscape Communications
protocollo di trasporto sicuro (circa livello
sessione):
■ crittografia simmetrica dei messaggi
■ autenticazione (server, server+client)
■ integrità dei messaggi
■ protezione da replay e da filtering
applicabile facilmente a HTTP, SMTP, NNTP, FTP,
TELNET, ...
■ HTTP sicuro (https://....) = TCP/443
■ NNTP sicuro = TCP/563
Porte ufficiali per applicazioni SSL
nsiiops
261/tcp # IIOP Name Service over TLS/SSL
https
443/tcp # http protocol over TLS/SSL
smtps
465/tcp # smtp protocol over TLS/SSL (was ssmtp)
nntps
563/tcp # nntp protocol over TLS/SSL (was snntp)
imap4-ssl 585/tcp # IMAP4+SSL (use 993 instead)
sshell
614/tcp # SSLshell
ldaps
636/tcp # ldap protocol over TLS/SSL (was sldap)
ftps-data 989/tcp # ftp protocol, data, over TLS/SSL
ftps
990/tcp # ftp protocol, control, over TLS/SSL
telnets
992/tcp # telnet protocol over TLS/SSL
imaps
993/tcp # imap4 protocol over TLS/SSL
ircs
994/tcp # irc protocol over TLS/SSL
pop3s
995/tcp # pop3 protocol over TLS/SSL (was spop3)
msft-gc-ssl 3269/tcp # MS Global Catalog with LDAP/SSL
© Antonio Lioy - Politecnico di Torino (1995-2001)
autenticazione ed autorizzazione basate su
password
■ problema: password snooping
autenticazione basata su indirizzo IP (server
WWW; comandi R: rsh, rlogin, rcp, ...)
■ problema: IP spoofing
problemi generali:
■ data snooping
■ shadow server
SSL - autenticazione e integrità
■
■
all’apertura del canale:
■ il server si autentica presentando la propria
chiave pubblica (certificato X.509) e
subendo una sfida asimmetrica
■ l’autenticazione del client (con chiave
pubblica e certificato X.509) è opzionale
per l’integrità il protocollo prevede:
■ un digest (MD5 o SHA-1) protetto
■ un MID per evitare il replay e la cancellazione
1
La sicurezza degli accessi remoti
(remote - gen'01)
SSL - riservatezza
■
■
SSL
il client genera una session key utilizzata per
la cifratura simmetrica dei dati (RC2, RC4,
DES, 3DES o IDEA)
la chiave viene comunicata al server
cifrandola con la chiave pubblica del server
(RSA, Diffie Hellman o Fortezza-KEA)
(1) https://www.polito.it/
(2) configurazione di sicurezza
(3) cert (www.polito.it)
server
Web
sicuro
(3bis) server challenge /response
browser
(4) cert (utente)
(4bis) client challenge /response
(5) canale sicuro (SSL)
Architettura di SSL-3
SSL
handshake
protocol
SSL
change cipher
spec protocol
SSL
alert
protocol
SSL-2 - il protocollo
■
due tipi di record:
■ SSL Handshake Protocol
permette di negoziare gli algoritmi di cifratura
e autenticazione utilizzati
■ SSL Record Protocol
consente di incapsulare dati e informazioni di
autenticazione
■
SESSION KEY PRODUCTION
a partire dalla session-master-key vengono
generate la session-write-key e la sessionread-key
SERVER VERIFY (solo per RSA)
il server ‘‘sfida’’ il client per verificare la
session-master-key ricevuta
CLIENT AUTHENTICATION (opzionale)
il server può richiedere l’autenticazione del
client (X.509 v3)
FINISHED conclude l’handshake
application
protocol
(es. HTTP)
SSL record protocol
reliable transport protocol (es. TCP)
network protocol (es. IP)
SSL-2 handshake protocol
Permette alle parti di negoziare le specifiche di
sicurezza della transazione
■ HELLO
■ scelta del tipo di cifratura e di digest
■ il server invia il proprio certificato ed il
connection-id
■ KEY EXCHANGE
■ il client genera la session-master-key e la
invia al server
■ RSA, Diffie Hellman e Fortezza-KEA
© Antonio Lioy - Politecnico di Torino (1995-2001)
■
■
■
A questo punto si dispone di un canale sicuro per
inviare dati secondo il protocollo applicativo
scelto.
2
La sicurezza degli accessi remoti
(remote - gen'01)
Connection-id
Connection-id
Tipica transazione Web:
■ 1. open, 2. GET page.htm, 3. page.htm, 4. close
■ 1. open, 2. GET home.gif, 3. home.gif, 4. close
■ 1. open, 2. GET logo.gif, 3. logo.gif, 4. close
■ 1. open, 2. GET back.jpg, 3. back.jpg, 4. close
■ 1. open, 2. GET music.mid, 3. music.mid, 4. close
■
■
■
Se ogni volta si devono rinegoziare i parametri
crittografici per SSL, il collegamento si appesantisce
molto.
per evitare di dover ri-negoziare ad ogni
sessione i parametri crittografici il server SSL
può offrire un connection identifier
se il client, all’apertura della sessione,
presenta un connection-id valido si salta la
fase di negoziazione e si procede subito col
dialogo SSL
il server può rifiutare l’uso del connection-id
(in assoluto o dopo un certo tempo dalla sua
emissione)
SSL-3 record protocol
SSL con session-ID
dati
datiapplicativi
applicativi
(1) https://www.polito.it/
frammentazione
F1
F1
(1bis) session-ID
F2
F2
compressione
server
Web
sicuro
browser
calcolo del MAC
MAC
MAC
padding
MAC
MAC
PP
cifratura
(5) canale sicuro (SSL)
header
SSL - calcolo del MAC
MAC = message_digest (
key, data, padding, seq_number)
■
■
■
message_digest: dipende dall’algoritmo di
scelto
key: sender-write-key (receiver-read-key)
seq_number: intero a 32 bit
© Antonio Lioy - Politecnico di Torino (1995-2001)
HH
SSL-3: novità rispetto a SSL-2
■
■
■
compressione dei dati:
■ opzionale
■ prima della cifratura (dopo non serve …)
opzionalità della cifratura dei dati:
■ per avere solo autenticazione e integrità
possibilità di rinegoziare la connessione:
■ cambio periodico delle chiavi
■ cambio degli algoritmi
3
La sicurezza degli accessi remoti
(remote - gen'01)
TLS
■
■
■
■
■
Transport Layer Security
standard IETF (TLS-1.0 = RFC-2246)
TLS-1.0 = SSL-3.1
al 99% coincide con SSL-3
enfasi su algoritmi crittografici e di digest
standard (non proprietari):
■ DH + DSA + 3DES
■ HMAC
Netscape versione esportazione
■
■
■
■
IE versione esportazione
■
■
■
■
genera / importa chiavi asimmetriche da 512
bit
usa chiavi simmetriche a 40 bit
usa chiavi simmetriche a 56 bit a partire da IE
5.0 per Windows-2000
usa interfaccia MS-CAPI per il motore
crittografico (CSP)
Fortify
■
■
■
■
Sicurezza del WWW
■
■
HTTP-1.0
■ password-based
l’accesso è limitato da username e
password inviate con UUENCODE
(Basic Protection Scheme)
■ address-based
il server consente/impedisce l’accesso
in base all’indirizzo IP del client
entrambi gli schemi sono altamente
insicuri (perché HTTP suppone che sia
sicuro il canale!)
© Antonio Lioy - Politecnico di Torino (1995-2001)
genera chiavi asimmetriche da 512 bit
importa chiavi asimmetriche da 1024 bit
dalla versione 4.6 usa chiavi simmetriche a 56
bit (in precedenza: 40 bit)
usa interfaccia PKCS-11 per il motore
crittografico (CSP)
http://www.fortify.net
eleva la sicurezza dei browser Netscape 4.x
versione esportazione alla versione
americana
effettua la patch binaria degli eseguibili
quindi bisogna fare attenzione ad usare la
versione giusta
ovviamente non funziona con altri browser
(es. Internet Explorer)
HTTP - basic protection scheme
GET /path/alla/pagina/protetta
HTTP/1.0 401 Unauthorized - authentication failed
WWW-Authenticate: Basic realm="RealmName"
Authorization: Basic UU_encoded_username_password
HTTP/1.0 200 OK
Server: NCSA/1.3
MIME-version: 1.0
Content-type: text/html
<HTML> pagina protetta … </HTML>
4
La sicurezza degli accessi remoti
(remote - gen'01)
Client authentication SSL
a livello applicativo
Sicurezza del WWW
■
■
■
canale SSL:
■ protezione delle transazioni
■ protezione delle password applicative
password:
■ del servizio HTTP
■ del S.O. che ospita il server (es. NT o UNIX)
ACL per accedere ai documenti:
■ in funzione dell’autenticazione effettuata
(utenti del S.O., DN per X.509)
■
■
tramite la client authentication è possibile
identificare l’utente che ha aperto un canale
alcuni server web permettono di fare un
mapping (semi-)automatico tra credenziali
estratte dal certificato X.509 e utenti del
server web e/o del S.O.
Coesistenza di SSL
con altri protocolli
S-HTTP
■
■
■
■
■
■
■
nuova versione del protocollo HTTP-1.0
sviluppato da EIT-Terisa
incapsula comandi e risposte HTTP in una
busta sicura (PEM, PGP o PKCS-7)
negoziazione delle chiavi in linea, fuori linea
o con Kerberos
certificati X.509 o PKCS-6
firme RSA o DSA
digest MD2, MD5 o SHA-1
crittografia DES, IDEA, RC2, RC4
■
■
■
■
sostituzione completa dei comandi R
(rsh, rlogin, rcp) + X11 forwarding
crittografia del canale
vari tipi di autenticazione:
■ indirizzi IP (= rlogin + crypto)
■ chiave RSA di host
■ chiave RSA di utente
public-domain per UNIX, commerciale
per MS-Windows
protocollo in corso di pubblicazione
come RFC
© Antonio Lioy - Politecnico di Torino (1995-2001)
S/MIME
telnet
SMTP
SMTP
SSL
SSL
TCP
TCP
IP
IP
Internet
SSH (Secure SHell)
■
S/MIME
telnet
SSH - crittografia del canale
■
■
utilizza DES, triplo DES, RC4, IDEA oppure
ISS
la chiave di cifratura è una chiave di sessione
scambiata in fase di connessione
5
La sicurezza degli accessi remoti
SSH - certificazione
■
■
usa chiavi RSA ma non usa certificati di
alcun tipo
la chiave pubblica, non essendo associata
ad un certificato di una CA, deve essere
nota alla controparte per poter essere
verificata:
■ i client tengono la chiave pubblica dei
server in ~/.ssh/known_hosts
■
(remote - gen'01)
SSH - protezione delle chiavi private
■
■
i server tengono le chiavi pubbliche dei
client in ~/.ssh/authorized_keys
la chiave privata del server è conservata in
chiaro in un file:
■ tenerlo nascosto
■ cancellare il file di configurazione che dice
qual è il file in questione
la chiave privata del client è conservata
crittografata con un passphrase P:
■ P richiesta all’utente quando occorre
■ uso di ssh-agent per trasmettere P
automaticamente ai sottoprocessi
SSH - autenticazione dei client
■
■
standard dei comandi r:
■ indirizzo IP + connessione attraverso porta
privilegiata
■ file ~/.rhosts o /etc/hosts.equiv
SSH - autenticazione dei client
■
■
uso di login+password Unix all’interno di un
canale crittografato
challenge RSA puro, ossia senza controllo
dell’indirizzo IP
standard + RSA challenge:
■ il client deve rispondere ad una sfida
crittografica (verificabile dal server perché
conosce le chiavi pubbliche dei client)
■ il server verifica comunque ~/.rhosts e
/etc/hosts.equiv
SSH - autenticazione dei server
■
solo ed esclusivamente mediante challenge
RSA
K-commands
■
■
■
■
■
© Antonio Lioy - Politecnico di Torino (1995-2001)
K-telnet, K-ftp, Klogin, Kcp, Ksh, K-POP
autenticazione con Kerberos
crittografia del canale con DES
disponibile per UNIX e PC (DOS, Windows,
Mac)
richiedono Kerberos!
6
La sicurezza degli accessi remoti
(remote - gen'01)
SSL-telnet, SSL-ftp, SSL-rsh
■
■
■
■
applicazione standard modificata con
trasporto SSL
si appoggia sulla libreria OpenSSL (ex
SSLeay)
usa certificati X.509
modalità di fall-back = se l’autenticazione
SSL fallisce si può:
■ rifiutare la connessione
■ collegarsi col protocollo standard
SSL-x: autenticazione
■
■
■
DESLOGIN
il server è sempre autenticato:
■ chiave privata in chiaro in un file
■ passphrase all’avvio per aprire il file che
contiene la chiave privata
per default, il client è autenticato tramite
login+password Unix ma su un canale
crittografato
opzionalmente si può usare la client
authentication di SSL; in questo caso la
passphrase che protegge la chiave privata è
richiesta all’utente
Funzionamento di DESLOGIN
Mr.X vuole entrare!
■
■
■
■
■
■
emulazione di terminale (VT100)
autenticazione del server e del client tramite
sfida simmetrica (challenge-response con
una passphrase)
crittografia del canale con DES
non richiede modifiche al sistema di
autenticazione nativo (doppia autenticazione)
disponibile per UNIX e PC (Windows)
semplice ma utile
{sfida}PFX
sfida
canale crittografato
demone di
Deslogin
login?
password?
comandi, dati
risultati
chiave = {{sfida}PFX }PFX
Il sistema X-windows (X11)
SERVER
(video, tastiera, mouse)
A
CLIENT
(CPU, RAM)
Sicurezza di X-windows
■
A
A
B
VAX/VMS
B
B
SPARC/Solaris
© Antonio Lioy - Politecnico di Torino (1995-2001)
■
autenticazione:
■ indirizzi IP ( xhost +host )
■ cookie (da X11R4)
■ Kerberos V5 (da X11R6)
■ avere autenticazione debole significa che con
le primitive di X11 (es. xwindump) posso
catturare tutto l’I/O del terminale grafico
senza bisogno di fare sniffing
forwarding di X11 su canale sicuro:
■ SSH
■ IPsec
7
La sicurezza degli accessi remoti
(remote - gen'01)
Protezione della chiave privata
■
■
■
■
deve usarla un processo
in chiaro dentro un file (facile ma
richiede la protezione del server)
in un file criptato, con chiave fornita
all’avvio (operatore all’avvio +
attaccabile da root via debug della RAM
+ non usabile per processi automatici)
su un dispositivo protetto (acceleratore
crittografico o crypto-engine) che
effettua anche le operazioni di
crittografia:
■ genera la coppia Kpub / Kpri
■ cifra e decifra
Sicurezza degli accessi remoti a DBMS
■
modalità di accesso a dati remoti:
■ in emulazione di terminale
= protezione del canale (SSL-telnet, SSH, ...)
■ tramite interfaccia WWW
= protezione del Web (SSL, ...)
■ client-server
= sistema di sicurezza proprietario, oppure
transazioni appoggiate su IPsec
Sicurezza degli accessi
client-server a DBMS
■
Oracle SNS
esempio: Oracle SNS (Secure Network
Services)
■ add-on per Oracle SQL*Net
■ autentica client e server
■ protegge i dati (query, update, risposte)
da:
■ intercettazione (data encryption)
■ modifiche (data integrity)
■ cancellazione (data filtering)
■
■
■
applicabile a:
■ DB Oracle centralizzato/distribuito
■ DB federato con parti non Oracle
non richiede modifiche alle applicazioni
esistenti
non richiede dispositivi hardware
SNS - schema funzionale
server
serverOracle
Oracle
SQL*Net
SQL*Net
SNS - applicabilità
applicazione
applicazione
SQL*Net
SQL*Net
dati non protetti
dati non protetti
SNS
SNS
■
■
qualunque oggetto SQL*Net V2
anche prodotti non Oracle tramite Oracle
Open Gateway
SNS
SNS
dati protetti
dati protetti
Oracle
OracleNPA
NPA
network
networksw
sw
Oracle
OracleNPA
NPA
network
networksw
sw
SQL*Net V2
SNS
SNS
FoxPro
FoxPro
SNS
SNS
Oracle
Oracle
Open
OpenGateway
Gateway
DB2
DB2
dati protetti
PC MS-Windows
host MVS
rete
© Antonio Lioy - Politecnico di Torino (1995-2001)
8
La sicurezza degli accessi remoti
(remote - gen'01)
SNS - supporto multiprotocollo
■
SNS - supporto cross-protocollo
■
poichè SNS si appoggia sopra Oracle
Network Protocol Adapter (NPA) supporta
tutti i protocolli supportati da Oracle
■ TCP/IP
■ SPX/IPX
■ APPC
■ DECnet
■ X.25
■ Netbios
■ ...
■
client
client
SNS
SNS
SPX / IPX
Crittografia in SNS
■
■
■
■
■
■
terze parti con accordi esclusivi !
Banyan - Universal StreetTalk
■ login singolo di rete
Bull - Integrated System Management
■ SESAME
■ identificazione basata su token
CyberSAFE - Challenger
■ Kerberos V5 (V4, DCE)
■ applicativi kerberizzati
■ GSS-API
© Antonio Lioy - Politecnico di Torino (1995-2001)
canale sicuro
Oracle
Oracle
MultiProtocol
MultiProtocol
Interchange
Interchange
server
server
SNS
SNS
TCP / IP
Vantaggi di SNS
negoziazione dell’algoritmo:
■ ce n’è uno di default
■ default diverso tra client e server:
negoziazione
■ possibile rifiuto della connessione
attivazione automatica:
■ per default può essere disattivata
■ attivazione automatica e trasparente quando
ci si collega ad un server che la richiede
SNS - identificazione ed autenticazione
degli utenti
SNS è integrato in Oracle MultiProtocol
Interchange
cambio di protocollo senza rimettere i
dati in chiaro: velocità + inattaccabilità
■
■
■
■
■
■
Oracle 7 client-server non trasmette le
password in chiaro ...
... ma lascia in chiaro:
■ la trasmissione dei dati
■ i cambi di password
SNS crittografa tutta la sessione e quindi
elimina questi problemi
ICL - AccessManager
■ login singolo di rete
■ A: RACF, ACF2, TopSecret, DCE, Kerberos
■ I: SDI SecurID, PCSL StopLockV, RACF
Passticket
Identix - TouchSafeII
■ verifica delle impronte digitali
■ interfaccia ISA
Security Dynamics Technologies - SecurID
■ autenticatore hardware
■ PIN + numero casuale (cambia ogni minuto)
9
La sicurezza degli accessi remoti
(remote - gen'01)
SNS - integrità dei dati
■
■
SNS usa MD5 come checksum
■ normalmente non inserita
■ inseribile a richiesta
SNS opzionalmente:
■ numera i pacchetti
■ controlla che non ne manchino e non ci
siano duplicati
■ arresta il sistema in caso di attacco
Sistemi di pagamento elettronico
■
■
■
fallimento della moneta elettronica per
problemi tecnici e normativi
(es. bancarotta di DigiCash)
attualmente il metodo più usato è
trasmissione del numero di carta di credito
su canale SSL ...
... che però non garantisce contro le frodi:
VISA Europa dichiara che il 50% dei tentativi
di frode nascono da transazioni Internet, che
però sono solo il 2% del suo volume d’affari!
Sicurezza delle transazioni
basate su carta di credito
■
■
■
STT
(Secure Transaction Technology)
VISA + Microsoft
SEPP
(Secure Electronic Payment Protocol)
Mastercard, IBM, Netscape, GTE, CyberCash
SET = STT + SEPP
(Secure Electronic Transaction)
SET
■
■
■
SET non è un sistema di pagamento ma un
insieme di protocolli per usare in rete aperta
in modo sicuro un’infrastruttura esistente
basata su carte di credito
usa certificati X.509v3 dedicati
esclusivamente alle transazioni SET
assicura la privacy degli utenti perché mostra
a ciascuna parte solo i dati che le competono
Architettura di SET
Caratteristiche di SET
■
■
■
■
■
versione 1.0 (maggio 1997)
digest: SHA-1
crittografia simmetrica: DES
scambio chiavi: RSA
firma digitale: RSA con SHA-1
merchant
cardholder
INTERNET
payment
gateway
payment
network
issuer
© Antonio Lioy - Politecnico di Torino (1995-2001)
acquirer
10
La sicurezza degli accessi remoti
(remote - gen'01)
Attori in SET (I)
■
■
■
cardholder
legittimo possessore di una carta di credito
aderente a SET
merchant
venditore di un prodotto via Internet (Web o
e-mail)
issuer
istituto finanziario che ha emesso la carta di
credito dell’utente
Attori in SET (II)
■
■
■
Doppia firma SET
■
■
■
■
per garantire privacy all’utente nei confronti
di merchant e del sistema finanziario
(acquirer + issuer) si usa una doppia firma
al merchant non vengono fatti sapere gli
estremi del pagamento
alla banca non viene fatto sapere quale merce
si è acquistata
solo l’utente può dimostrare l’associazione
tra merce e pagamento
Doppia firma SET: dettagli
■
■
■
■
■
■
■
Problemi di SET
acquirer
organizzazione finanziaria che stabilisce un
rapporto col mercante e lo interfaccia con
uno o più circuiti di pagamento
payment gateway
sistema che traduce transazioni SET nel
formato richiesto dal circuito di pagamento
dell’acquirer
certification authority
emette certificati X.509v3 e CRL X.509v2 per
tutti gli altri attori di SET
PI: Purchase Information (pagamento)
OI: Order Information (merce)
DS = E ( H( H(PI),H(OI) ), Ukpri)
DS+H(PI) al merchant
merchant conosce OI e può calcolare
H(H(PI),H(OI)) verificando che corrisponda al
valore estratto dalla firma
DS+H(OI) all’acquirer
acquirer conosce PI e può calcolare
H(H(PI),H(OI)) verificando che corrisponda al
valore estratto dalla firma
Architettura di pagamento via Web
1. offerta
■
■
■
■
software molto caro (sia per le CA, sia per il
merchant e l’acquirer)
necessita di un’applicazione speciale dal lato
utente (SET wallet)
procedura di rilascio del certificato a chiave
pubblica per gli utenti complessa
in sviluppo la versione 2.0 di SET che farà a
meno del wallet (userà un browser)
2. ordine
cardholder
5.
4.
da
ric
h
ti
c
SS
L
.c
.
Internet
ie
st
a
c.
8.
c.
POS
virtuale
payment
gateway
© Antonio Lioy - Politecnico di Torino (1995-2001)
ct
ire
red
!
3.
OK
to
en
m
ga
pa
6.
da
ti
c.c
.
7.
OK
!
merchant
mondo
finanziario
OK
?
payment
network
11
La sicurezza degli accessi remoti
(remote - gen'01)
Pagamento con carta di credito via Web
■
■
ipotesi base:
■ l’acquirente possiede una carta di credito
■ l’acquirente ha un browser con SSL
conseguenze:
■ la sicurezza effettiva dipende dalla
configurazione sia del server sia del client
■ il payment gateway ha tutte le informazioni
(pagamento + merce) mentre il merchant ha
solo le informazioni sulla merce
© Antonio Lioy - Politecnico di Torino (1995-2001)
12