Delle volte mi sembra di parlare solo con delle pecore. Hanno sentito/letto che "Vista fa schifo" e stop, non c'è più nulla da fare, come caproni ripetono la frase all'infinito tappandosi le orecchie.
D'altra parte a scuola gli hanno insegnato solo ad imparare a memoria le poesie, quindi che bisognava aspettarsi?
Non sto a difendere i bug, che ci sono come dappertutto, o le disastrose performance di rete della pre-SP1. Anch'io ho cose che apprezzo e altre che non apprezzo, come il setup delle connessioni di rete.
Ma se facciamo un confronto con XP per velocità, stabilità, sicurezza e usabilità non c'è proprio storia. Vista e 2008 tutta la vita.
Durante la beta di Vista sono girati per mesi i whitepaper che informavano di tutte le breaking changes che avrebbero reso la vita difficile o compromesso la compatiblità con certe applicazioni. E puntualmente sono state ignorate. Le orecchie vanno tirate alle software house perché questi cambiamenti hanno migliorato la sicurezza e questo è un punto su cui nessuno può tirarsi indietro.
Entro pochi anni gli antivirus non solo saranno sempre più pedanti (e questo lo sono già ora) ma in pratica totalmente inutili.
D'altra parte Vista e 2008 sono una major release di Windows cioè la 6.0. Vogliamo parlare di che è successo al kernel 2.6 di Linux? Io ho macchine su cui non c'era più storie di farle partire, altro che compatibilità di applicazioni. E per questo non ho criticato questa scelta ma ho letto e capito che erano per lo più giustificate.
Ci sono due dozzine di novità fondamentali:
- UAC tutta la vita: AKA "finalmente non regalo più il token di amministratore a tutte le schifezze che scarico da internet". Non vi piace UAC? Godetevi i Virus oppure gioite ogni volta che dovete usare "runas". E poi provate a spiegarlo alla mamma come elevare i privilegi per cambiare l'ora del computer senza essere administrator su XP.
- Virtualizzazione di file system e registry. Questo è un gentile omaggio a tutte le software house che non hanno letto i whitepaper di cui parlavo prima. Chi riesce ad avere problemi nonostante questo deve avere del codice veramente "bello" ;-)
- COM Elevation moniker. Un modo per i dev di elevare i privilegi di quelle parti di una applicazione che richiedono assolutamente di essere administrator. Il resto della app può girare ovviamente come normale user.
- Una tonnellata di nuove policy per UAC, virtualizzazione, dialog di consent, etc.
- Detect euristico di una applicazione di setup. A volte è pure una rogna, ma è certamente il modo più soft per elevare i privilegi ad admin di un setup. In pratica se l'exe ha la parola "setup" o qualche variante nel nome, viene chiesto all'utente di elevarlo.
- Integrity Levels. Una vera rivoluzione nella sicurezza di un sistema operativo. I processi marcati con un livello basso non possono eseguire "read-up" nè "write-up" verso processi di livello più alto. Nè possono eseguire "write-up" su oggetti kernel (file e registry sono tra questi) di livello più alto.
Esempio? Semplice Internet Explorer gira con dei plugin dentro il proprio processo. Se uno di questi dovesse essere bacato ed eseguire del codice 'malicious' scaricato da una pagina web, non potrebbe fare danni agli altri processi che girano perché Internet Explorer gira dentro Vista e 2008 in "Protected Mode" cioè integrity level "Low".
È ancora poco sfruttata ma è certamente una delle tecnologie di sicurezza (la cui teoria è degli anni 70) che possono dare ottimi frutti.
- UIPI. Per evitare che gli attacchi possano accadere con hook, sendmessage, postmessage, injection, ecco arrivare un sistema di filtro che impedisce ai processi di livello più alto di "dialogare" con quelli di livello più alto. E il tutto con le API per controllare il filtro ovviamente, ivi compreso un flag di Bypass per le applicazioni di accessibilità (per i portatori di handicap) che devono simulare mouse e tastiera su qualsiasi processo.
- Sessione 0 totalmente svuotata di codice utente. Qui girano solo i servizi, i profili, le group policy, la local system authority e la service control machine, ma niente più applicazioni utente.
Di conseguenza niente "interact with desktop" ma di non farlo lo ripetiamo ai dev da sempre
- Niente più GINA ma un sistema di credential provider che permette di sviluppare e gestire i sistemi di autenticazione separatamente (password, smartcard, fingerprint, ...). Tutto totalmente riscritto e decisamente più funzionale per l'utente.
- Per-service SID. Una manna dal cielo avere un SID per ciascun servizio per poter confinare i permessi. Non ci sono parole ma i sistemisti dovrebbero fare salti di gioia, e gli utenti essere felici della maggiore sicurezza acquisita.
- ASLR. Un sistema per randomizzare il base-address delle immagini PE (Exe, dll). Migliora (non scongiura del tutto, ma non esiste la sicurezza 100%) la resistenza ai buffer overrun.
- Ready-boost e ready-boot per migliorare le performance con l'ausilio di chiavette USB
- Nuove primitive di sincronizzazione
- Nuova infrastruttura di thread-pooling
- Service thread tagging
- Supporto per dischi con settori di grossa dimensione
- Chkdsk online e ridimensionamento volume (NTFS)
- Advanced-IPC per comunicazioni in kernel mode
- TCP/IP stack rifatto da zero
- NAP (Network Access Protection). Win2008 impedisce l'accesso alla rete se il client Vista non risponde a certi requisiti (patch, firme virus, presenza di applicativi, ...)
- Protected Process per il DRM
- Windows Resource Protection (evoluzione del Windows File Protection)
Novità grafiche? Quali? Se c'è una cosa che non mi interessa è quella e Microsoft ha regolarmente toppato spingendo *SOLO* quelle. Uffa.
Adesso, calcolando che 2 giorni di corso mi bastano a malapena per parlare di tutte queste cose, come faccio a TechDays/WPC a parlare in una sola ora della part di sicurezza? Le slide in bozza erano 83 e ho dovuto tagliare peggio di un giardiniere allergico.
A parte questo la mia intolleranza ai chiaccheroni rimane, tutta.