TechNet
Security Workshop IV
Milano, 8 Giugno
Internet Information Server 6.0
Agenda
Accounts Built-in IIS 6.0
Autenticazione in IIS:
Anonymous Authentication
Basic Authentication
Integrated Authentication
Client Certificate Authentication
Protezione
del Traffic Web
Scelta di un Isolation Mode
Mode
IIS 5.0
Isolation
Mode
Applicazioni:
Funzionano in
Inetinfo.exe, e
le applicazioni
out-of-process
funzionano in
DLL host
separate
Worker Funzionano in
Process un ambiente
Isolation isolato
Mode
Compatibilità:
Garantisce la
compatibilità per
la maggior parte
delle applicazioni
esistenti
Isolamento:
Impedisce che
un’applicazione (o
un sito) ne danneggi
un’altra
Le applicazioni
devono essere
scritte per
funzionare come
un’istanza
multipla
Permette agli
amministratori di
isolare qualunque
cosa, da una singola
applicazione Web a
siti multipli nel loro
worker process
L’Autenticazione in IIS 6.0?
IIS 4.0
IIS 5.0
IIS 6.0
Anonymous
Basic (clear text)
Authentication
.NET Passport
Windows NT
Challenge /
Response
Non
disponibile
Integrated
Digest
Disponibile
come
Pienamente
installazione
integrata
separata
Account
Description
Account
Built-in
in
IIS
6.0
Ha molti diritti di accesso
LocalSystem
di assegnare LocalSystem come identità di un
application pool
Pochi privilegi
IInteragisce attraverso la rete utilizzando il computer
account
Network Service
E’ l’identità assegnata per default all’application pool
(raccomandata)
Pochi provilegi
Si collega attraverso la rete in modalità anonima
Local Service
Da usare solo per applicazioni Web locali
Gruppo di IIS, l’account che assegno come identità
dell’Application Pool deve essere membro di questo
IIS_WPG
gruppo
IUSR_computerna Account di IIS utilizzato per l’accesso anonimo
me
IWAM_computern
ame
ASPNET
Evitare
Account
di IIS per avviare applicazioni out-of-process in
IIS 5.0 isolation mode
Account
di IIS per avviare il worker process di ASP.NET
in IIS 5.0 isolation mode
Flusso del Controllo d’accesso
1.
2.
L’indirizzo IP è permesso?
L’utente è permesso?
Credenziali valide (Autenticazione)
Restrizioni dell’Account
3.
4.
Time, Lockout, Password scaduta, Privilegi
IIS permette l’accesso ?
NTFS permette l’accesso ?
Architettura di Autenticazione
IE
Client IIS
Basic, Digest,
Windows, Client
certificates
SQL
IIS
IIS Backend Server
Delega ?
Scenario di Autenticazione
Internet
DMZ
SQL
Server
IIS
Firewall
Web Proxy
Active
Directory
Web Browser
Anonymous Authentication
GET dbquery.asp HTTP/1.1
SQL
Server
2
SQL
authentication
SELECT * FROM
table
3
IIS
Firewall
1
Proxy
Active
Directory
Web Browser
Anonymous Authentication
Accesso
alle risorse come utente anonimo
(IUSR_<machinename>
Identità del Processo: Network Services,
LocalSystem, IWAM_<machinename>
L’identità del processo è configurabile
tramite COM+
Sicurezza / Prestazioni
Basic Authentication
GET dbquery.asp HTTP/1.1
401 Unauthorized
SQL
Server
WWW-Authenticate: Basic realm="spoon"
Authorization:
“Basic” Base64 encoded user/pw
6
IIS
2
Firewall
3
1
4
Windows
authentication
LogonUser
5
(“user1”, “pw”)
Proxy
Active
Directory
Web Browser
Basic Authentication
Identità del Processo: Network Services,
LocalSystem, IWAM_<machinename>
Accesso alle risorse come authenticated user
Vantaggi
Tutti i client HTTP supportano la basic auth
Supporta delega one hop
Svantaggi
Password in chiaro (Base64 Encoded)
Su Internet
Sul Server
Deve essere protetto tramite SSL
Windows Integrated
Authentication
Security
Support Provider (SSPI)-based
NTLM o Kerberos
IIS chiede al client che protocollo supporta
Il Protocollo può essere forzato
NTAuthenticationProviders
Negotiate
NTLM
Kerberos
NTLM Authentication
GET dbquery.asp HTTP/1.1
401 Unauthorized
SQL
Server
WWW-Authenticate: “NTLM” challenge
Authorization: “NTLM” response
2
IIS
Firewall
1
3
Proxy
Active
Directory
Web Browser
NTLM Authentication
1. GET dbquery.asp HTTP/1.1
2. HTTP/1.1 401 Unauthorized
WWW-Authenticate: NTLM
3. HTTP GET dbquery.asp HTTP/1.1
Authorization: NTLM {…} Connection: Keep-Alive
4. HTTP/1.1 401 Access Denied
WWW-Authenticate: NTLM {…}Connection: Keep-Alive
5. HTTP GET dbquery.asp HTTP/1.1
SQL Login / COM+
Authorization: NTLM {hashed challenge}
SELECT * FROM
Connection: Keep-Alive
7 table WHERE
user=‘user1’
1 Impersonate
2SecurityContext
6
SQL
Server
IIS
3
4
5
Active
Directory
Web Browser
NTLM Authentication
Vantaggi
Lavora out-of-the-box
Fornisce logon automatico / senza logon
dialog box
Svantaggi
Solo Enterprise– non funziona attraverso i
Proxy Server (richiede keep-alive connection)
Non supporta delega
Configurata per essere compatibile con i client
vecchi
Kerberos Authentication
1. HTTP GET dbquery.asp HTTP/1.1
2. HTTP/1.1 401 Unauthorized
WWW-Authenticate: Negotiate, Kerberos
SQL
Server
3. Kerberos Session Ticket Request
2
IIS
Firewall
1
Proxy
3
Web Browser
Active
Directory
Kerberos Authentication
1. HTTP GET dbquery.asp HTTP/1.1
2. HTTP/1.1 401 Unauthorized
WWW-Authenticate: Negotiate, NTLM
3. Kerberos Session Ticket Request
SQL
Server
4. Kerberos Session Ticket Response
5. HTTP GET dbquery.asp HTTP/1.1
6
6. Delegation
Impersonate
SecurityContext
NT
Authentication
IIS
1
2
5
3
4
Web Browser
Active
Directory
Kerberos Authentication
Robusta, scalabile, veloce, supporta delega
Support client limitato
Criticità
Internet Explorer 5 e Windows 2000
Client devono poter accedere ai DC
Delega deve essere abilitata
Non vincolata in IIS 5
Setup
Vedi “designing secure Web-based applications”
Client Certificate Authentication
Handshake phase
Client Hello
Server Hello
certificate, crypto parameters
SQL
Server
Client response
certificate, crypto parameters
Client finish
2
Server finish
IIS
Firewall
5
1
3
4
Proxy
Active
Directory
Web Browser
Client Certificate Authentication
IIS Mapping
HTTPS GET dbquery.asp HTTP/1.1
SQL
Server
NT
Authentication
5
3
Mapping
IIS
Firewall
4
1
Proxy
LogonUser(
“user1” ,
“pw”)
Active
Directory
Web Browser
Client Certificate Authentication
Active Directory Mapping
HTTPS GET dbquery.asp HTTP/1.1
SQL
Server
3
SQL Login / COM+
SELECT * FROM
table WHERE
user=‘user1’
IIS
Firewall
2
1
SCHANNEL
UPN Mapping
or
AD Mapping
Proxy
Active
Directory
Web Browser
Client Certificate Authentication
Vantaggi
Molto sicura
Flessibile
Garantisce Integrità e confidenzialità
Svantaggi
Maggiori costi di gestione per la PKI
Scalabilità e Performance
Griglia di Autenticazione
Schema
Sicurezza
Anonymous
None
Basic
Low
Digest
Limiti / Commenti
Supporto
Client
Scenario
Tutti
Tutti
Password in chiaro, da
usare solo con SSL
Tutti
Tutti
Medium
IIS 5 o sup
IE5 e sup in un
dominio
Tutti
NTLM
Medium
Non funziona attraverso i
proxy
Solo Internet
Explorer
Solo Intranet, non
funziona con i
Proxy
Kerberos
High
IIS 5.0 o sup
IE 5 su W2000 o
XP in un dominio
Solo Intranet, DC
devono essere
accessibili da
parte dei client
IIS Client Cert
Mapping
High
Gestione PKI rende la
gestione dei certificati
client costosa (eccetto PKI
W2003) , IIS 5.0 o sup
Tutti i browsers
più recenti
Tutti
AD Client
Cert Mapping
Very High
Gestione PKI rende la
gestione dei certificati
client costosa (eccetto PKI
W2003) , IIS 5.0 o sup
Tutti i browsers
più recenti
Tutti