sabato 17 maggio 2008
Stando alla knowledge base di Debian un programmatore ha avuto la bella idea di togliere due righe di codice che hanno reso predicibile la generazione di numeri casuali, che sono la base per gli algoritmi crittografici. (Crediti a Luciano Bello che ha trovato il bug e Obiwan per avermelo segnalato).
Cosa ha provocato e provocherà questo bug?
- Tutti i certificati generati con OpenSSL a partire dalla versione 0.9.8c-1 (del 17 Settembre 2006 !!!) su un OS basato su Debian sono craccabili e DEVONO essere rigenerati.
- Tutte le chiavi di SSH, OpenVPN, DNSSec, qualsiasi certificato X.509 e chiavi di sessione per connessioni SSL/TLS sono compromesse.
- Tutti i certificati Verisign come da questo bollettino, devono essere sostituiti in quanto compromessi
Questo significa che la patch di Debian NON risolve totalmente il problema in quanto tutte le chiavi ed i certificati che sono stati generati con la versione bacata sono ormai compromessi.
La causa del bug probabilmente sta nel fatto che qualcuno ha modificato del codice senza poi siano stati fatti la review di sicurezza su quel codice, cosa che avrebbe in tutta probabilità portato alla luce il problema.
Si, sto dicendo che applicando SDL nel modo corretto questo bug non sarebbe passato.
* * *
Ok, ma quanto è sfruttabile il bug? Semplicissimo, basta usare questi tool e il crack è pronto. Inutile nasconderli, security through obscurity NON funziona, se ancora ci fosse bisogno di dirlo.
Questo feroce bug colpisce non solo Debian e le distro derivate come Ubuntu, ma tutti quei sistemi embedded che sono basati su Debian. Pensiamo a telecamere IP, centralini, router, access point, etc. Si, perché Debian è una delle distro più usate in apparati embedded.
La vera domanda perciò è: quanto tempo occorrerà adesso per aggiornare tutti questi sistemi? Probabilmente infinito perché tipicamente i sistemi embedded non vengono MAI aggiornati dopo la loro produzione. Questo deve far riflettere e cominciare a far cambiare la mentalità nel software per cui un sistema non aggiornato è MORTO.
Diamo infine un caloroso benvenuto a Debian nel mondo reale, fatto di persone umane che sbagliano a prescindere dalla bandiera dell'OS a cui stanno lavorando. La sicurezza è un problema di tutti, nessuno escluso. Già perché personalmente non penso che sia affatto scandaloso trovare un bug di sicurezza, il vero scandalo è che molti pensavano che questo non accada sulle distro Linux e meno che mai in Debian.
Come nota finale non posso che definire sconcertante uno dei commenti iniziali a questo post di Larry Osterman che respinge la tesi che sia un bug di Debian. Quando si dice talebano ...
mercoledì 14 maggio 2008
Per qualche strano motivo Microsoft non concepisce il fatto che qualcuno come il sottoscritto preferisca lavorare su versioni server del sistema operativo.
In passato ho usato Windows 2000 server, poi 2003 e attualmente 2008 che ho sia sul portatile che sul desktop e i vantaggi per uno sviluppatore sono tanti: dhcp e dns per le macchine virtuali, IIS versione server, terminal services per sviluppare in roaming per l'ufficio o da una vpn, etc.. Usando Win2008 come workstation ho abilitato i temi di Vista, aero, e tutte le altre comodità.
Purtroppo però non è abilitabile il bluetooth sul portatile ma mni basta che il power management funzioni a meraviglia.
Come software tutto ok tranne la serie "Live" dei software che proprio di installarsi su Windows Server non ne vuole sapere. Niente Live Messenger e qualche trick per Live Writer.
Questo mi solleva un montagna di dubbi a livello di sicurezza: Il mio Windows Live Messenger mi segnala di essere obsoleto ma il setup di Live Messenger non può essere eseguito.
Che devo fare? Disinstallare MSN perché è a rischio? Sappiamo bene che MSN è una applicazione fortemente a rischio ad attacchi e mantenere installata una versioine obsoleta è senza dubbio un chiaro ed evidente rischio di sicurezza.
Io credo fermamente che Microsoft dovrebbe rivedere il "profilo" degli utenti tipici di Windows prevedendo che un utente avanzato possa prediligere Windows 2008 a Vista senza per questo negargli nessun tipo di funzionalità, e perché no, anche i games.
martedì 22 aprile 2008
Ancora una volta un Summit magnifico. A prescindere dall'aspetto tecnologico, un po' tutti abbiamo apprezzato la qualità della vita (in termine di vita quotidiana, cortesia e vivibilità) di Seattle e dintorni. Questo è qualcosa che non si può descrivere con parole, ma va vissuto in prima persona ed è l'aspetto che lascia dei ricordi molto piacevoli.


Ma l'aspetto tecnologico non è stato da meno. Ho passato il mio tempo al Campus a parlare di tre argomenti principali:
- Developer Security. Novità dal gruppo SDL, evoluzione nel threat modeling, futuro. CLR e Silverlight security.
- VC++ vNext. Grosse novità in vista, enormi quantità di feedback a 360 gradi su tutto il prodotto. Altrettanto grande considerazione e apprezzamento da parte del team sul feedback ricevuto. Stay tuned ...
- MSDN Forums vs NNTP. Ancora mezz'ora prima di andare in areoporto ero in un meeting con il team che si occupa di questi temi. I punti su cui ho ripetutamente insistito (quasi in modo molesto :) ) sono stati:
a) NNTP è "solo"un protocollo al pari diHTTP e che NNTP non preclude di veicolare un rich content
b) NNTP può essere esteso al pari di NNTP
c) le caratteristiche che oggi offre NNTP sono ottimali per chi partecipa in modo attivo alle discussioni tecniche
d) UGIdotNET e Aspitalia sono perfetti case studies di erogazione dello stesso contenuto con protocolli differenti.
Posso solo garantire che questi messaggi sono arrivati a chi di dovere. Stay tuned ...
Visual Studio box, Visual C++ Art e Ale Contenti nel suo ufficio a sorvegliare le Safe CRT :-). Ale you promised ... open your own blog! ;-)
Ecco i Developer Security MVP deliziati da una fantastica sessione di Shawn Farkas (terzo da sinistra) sulla sicurezza in Silverlight.
In piedi Herb Sutter partecipa alla discussione su Visual C++ e al feedback degli MVP.

martedì 15 aprile 2008
Dopo il primo giorno di splendido sole (26 gradi!) a base di amici e barbeque in quel di Kirkland (grazie Max!!!) ...
... oggi è partito il Summit 2008 che vede il cambio del vertice MVP dal grandissimo Sean O'Driscoll a Toby Richards

Sean si dedicherà d'ora in poi ad un mestiere che probabilmente in Italia verrà compreso tra parecchi anni, consulenza sul social media e communities. Un argomento che non tocca solo le community che orbitano nell'industria IT ma di qualsiasi azienda che abbia a che fare con gli end-user. Il mondo del web sta rivoluzionando il rapporto tra gli utenti (vedi facebook.com) e tra gli utenti e le aziende e lui certamente in questi anni ha potuto sviscerare come pochi altri questo argomento.
La giornata è servita soprattutto a incontrare di persona le tante persone che sentiamo durante l'anno ma che si ha ovviamente poche occasioni per incontrarle se non in conferenze o qui a Seattle.
Io ho dedicato il resto della giornata a difendere a spada tratta le community per far si che i protocolli NNTP (ms newgroups) e HTTP (msdn forums) attingano ad uno storage comune separando invece le UI (browser e newsreader, ma non solo) per soddisfare le esigenze di chi fa domande, di chi da risposte e delle comunity che vogliano aggregare (mashup) questi contenuti. I "miei" case studies sono stati UGIdotNET e Aspitalia.... che gli MVP portino consiglio
.
Domani giornata piena... io sarò tra i dev-security e il team di VC++.
lunedì 14 aprile 2008
Il viaggio in aereo (a destra la groenlandia):

Il tradizionale viaggio in Limo a downtown ...
check-in in albergo e subito a Cheescake factory insieme al grande Ale Contenti (Lead PM librerie di VC++)
Questi si che sono hamburger:

sabato 12 aprile 2008
Non sono bastate le 118 vittime dell'8 Ottobre 2001. Negli ultimi due giorno il radar di terra non funzionava. Chissà da quanto tempo non funzionava. I viaggiatori l'anno scoperto con il brutto tempo perché non era possibile l'atterraggio a vista.
Il risultato della nostra personale esperienza è stato:
- passeggeri dirottati su Malpensa con i loro propri mezzi. Noi abbiamo speso in quattro 170 Euro di taxi che ha violato ogni legge della fisica per portarci in tempo a Malpensa
- prenotazione e check-in online (con tanto di posti assegnati) tutti annullati
- nuovo check-in a Malpensa con i minuti contati e riassegnazione casuale dei posti
- alcuni di noi dirottati su Milano - Londra - Los Angeles - Seattle che non è ancora giunto a destinazione mentre sto scrivendo
- altri tra quelli arrivati ieri sera con il bagaglio perso
Un pensiero va ai 118 di quel tragico volo del 2001 e ringrazio il cielo (non certo la SEA) di essere arrivato in un modo o nell'altro qui a Seattle.
L'arrabbiatura è all'ennesima potenza perché come professionisti informatici spendiamo tantissimo tempo a progettare e realizzare sistemi che prevedano ridondanza, gestione delle eccezioni, etc.
Si, ci sono tantissime piccole aziendine che sono molto più efficienti di un vitale sistema di sicurezza areoportuale e questo è un vero inaccettabile schifo.
- Non è accettabile che non ci sia una ridondanza per un radar di terra
- Non è accettabile che non ci sia un tecnico in grado di metterci mano in tempo reale, giorno, notte, domenica o natale che sia.
- Non è accettabile che in caso di imprevisto NON esista una benché minima procedura per risolvere diversamente la soluzione
Queste cose non sono la luna, sono la normalità per l'industria IT ed elettronica. Vergogna SEA, vergogna Linate.
mercoledì 9 aprile 2008
Quest'anno si che ho le idee chiare per le elezioni politiche. Anche il test me lo conferma
.
Quindi ho taroccato il test per renderlo più geekkoso ed ecco comparire la mia reale preferenza:
Nel bagaglio decine tra caricatori cavetti e adattatori vari. Venerdi mattina la carovana di MVP viaggerà per il fantastico MVP Summit 2008.
Limitatamente a quanto è permesso dall'NDA, cercherò di bloggare quanto più è possibile.
Ritorno previsto il 18 Aprile. E da Seattle a Segrattle, il 21 e 22 Aprile sarò in Microsoft a Milano a tenere il primo corso su Office Open XML.
mercoledì 2 aprile 2008
Oggi si è conclusa la lunga battaglia combattuta in vari paesi mondiali tra i sostenitori e i detrattori delle specifiche Office OpenXML che oggi sono divenute finalmente standard ISO DIS 29500:
http://www.reuters.com/article/technologyNews/idUSL0179716920080401
http://www.microsoft.com/presspass/press/2008/apr08/04-01OpenXMLVotePR.mspx
In sede ISO (mondiale) i commenti propositivi ci sono stati, e sono stati tanti. Nonostante questo mi è spiaciuto vedere spesso una battaglia troppo politica e troppo poco tecnica, con abbondanza di "no" aprioristici invece di controproposte concrete che avrebbero solo potuto migliorare il risultato finale.
Perché credo che questo standard sia un vantaggio per tutti?
- L'approvazione di uno standard non afferma alcuna prevalenza sul mercato ma toglie al produttore la libertà di giocare con le specifiche. La presenza di due standard (ODF e OOXML) toglie qualsiasi dubbio sul fatto che possano avvantaggiarsi solo per il fatto di essere standard ISO.
- Microsoft ha un indiscutibile vantaggio sul mercato con Microsoft Office. Da oggi abbiamo la garanzia che il formato non potrà cambiare in modo significativo e siamo, sia come sviluppatori che come utenti finali, garantiti dallo standard ECMA e ISO che gli investimenti su quel formato siano a lungo termine.
Se viceversa Microsoft avesse deciso di tenere un formato proprietario, proprio perché possiede la fetta di mercato più grossa, avrebbe potuto fare il bello e il cattivo tempo, minando seriamente gli investimenti di software house e utenti finali.
- La durata nel tempo delle informazioni. La RAI periodicamente travasa i filmati di tutto il suo storico da un media all'altro per mantenere "viva" l'informazione che, anche quando è digitale, è molto lontana dall'essere immortale. Io stesso ho ancora vecchi file in Word per DOS, Wordstar, Paintbrush, Lotus 123, Framework (Ashton Tate), etc. che sono "morti".
Un formato digitale deve essere facilmente fruibile in modo indipendente dal sistema operativo e dalle tecnologie usate per sviluppare le applicazioni. Il formato zip e XML garantiscono questa sopravvivenza alle tecnologie.
- La retrocompatibilità. È indiscutibile che la retrocompatibilità giochi per gli utenti un ruolo fondamentale. Non potremmo mai chiedere, come sviluppatori, di migrare un qualsiasi formato ad uno nuovo che non supporti la totalità delle caratteristiche del formato precedente. Questo è accaduto nel passaggio da Lotus 123 a Excel e vale tutt'ora per una moltitudine di formati come ad esempio TGA.
Questo è stato certamente il punto fondamentale per cui non ho aderito all'idea di poter adottare solo ODF che unico standard. Siamo pieni di multi-standard su tantissime tecnologie, lo scopo primario di uno standard NON è quello di essere unico, ma di garantire la condivisione delle specifiche tra gli implementatori.
- Le specifiche OOXML sono aperte e libere (al momento già reperibili sul sito ECMA). Tanto per fare un paragone illustre, JPG è una specifica chiusa e disponibile solo a pagamento.
Alla faccia delle specifiche troppo grosse, ad oggi sono in grado di produrre documenti OOXML di wordprocessing e spreadsheet che ho testato con Word, Excel e OpenOffice. Si perché il plugin free di Microsoft per le precedenti versioni di Office funziona anche aprendo il formato OOXML da OpenOffice. Grazie al "si" di oggi, so che il tempo investito a scrivere questo codice è stato ben riposto.
E dopo cosa viene? Spero che da oggi si inizi a parlare solo della parte tecnica e migliorare lo standard per le prossime versioni. Gli standard non sono statici, vivono e si evolvono e la giornata di oggi è solo l'inizio.
lunedì 31 marzo 2008
L'orologio al quarzo ha rivoluzionato una decade e l'introduzione degli orologi radiocontrollati prometterebbe una nuova rivoluzione....
Mi oppongo! Il caro vecchio orologio con ora "relativa" cioè senza sincronizzazione automatica è una garanzia senza rivali.
La prima possibilità (che mi è successa veramente qualche anno fa) è che il segnale venga capito "male" dall'orologio che cambia l'ora in modo assurdo, magari di 12 ore più indietro. Dopo questa esperienza ho capito che mai e poi mai avrei dovuto usare una sveglia radiocontrollata. Il vecchio orologio al massimo sballa di qualche minuto ma non fa alcun danno.
La seconda mi è venuta in mente oggi e non dubito che qualcuno ci abbia già pensato.... un bel attacco di hacking sugli orologi. Costruisco un trasmettitore radio e mando un segnale di sincronia radio, sballando totalmente gli orologi a portata di antenna. Vi immaginate il disastro di un attacco di questo genere? Magari eseguito durante la notte.
Perciò va bene avere un orologio per sincronizzare gli altri a mano, ma non ci affiderei nessun servizio essenziale, a partire dalla sveglia di casa.
giovedì 27 marzo 2008
A causa di un driver sballato (che novità, eh ...) che cerca di pilotare il monitor ad una risoluzione diversa da quella del pannello di controllo, ho deciso il cambio di scheda grafica.
Comincio a sospettare che ATI e nVidia facciamo marketing producendo cattivi driver, ma lasciamo perdere.
Non volendo rumorose ventole, ecco il mostro che mi sono trovato davanti all'apertura della scatola (notare il cavo supplementare di alimentazione). Lì per lì ho pensato che la marca fosse Whirlpool
.
La tecnologia va avanti e i signori Joule e Maxwell ci guardano dall'alto, ridacchiando...
Chiamarli pirati è fargli un complimento e la triste realtà non sono tanto loro che ci provano, ma quelli che ci cascano.
In questo attacco, fresco fresco di questa notte non c'è nulla di speciale, è una delle solite email che arrivano regolarmente.
Punto A: Email sgrammaticata ... dovrebbe almeno insospettire
Punto B: Hyperlink palesemente errato
Punto C: Il vero sito usa https e l'utente può vedere il lucchetto
Punto D: L'indirizzo del sito clonato è palesemente errato
Veniamo però ai punto dove la banca avrebbe potuto fare meglio:
- Il nome del sito è totalmente anti-intuitivo. Se fosse stato il vero nome della banca e con un URL semplice (io lo chiamo ergonomico) l'utente avrebbe meno dubbi a scegliere quello giusto.
Da notare che spesso in questi attacchi vengono usati URL molto simili a quelli orginali come www.mia-banca.it oppure www.miabanca.me.com, etc.
Questo è il motivo per cui è importante il punto 2. - Il vero sito purtroppo NON fa uso di certificati Extended Validation che avrebbero trasformato la barra di Internet Explorer con un background verde e rendendo molto più evidente l'affidabilità del sito.
Questi certificati vengono rilasciati solo dopo verifica dell'esistenza fisica dell'azienda richiedente e costano molto più cari. - Il sito non fa uso di rolling-codes che vengono generati sempre diversi per ogni accesso e non riutilizzabili, rendendo così inutile il furto delle password.
Non sono stato a guardare i sorgenti della pagina per eventuali altre cose.
A coloro che pensano che gli utenti non possono essere anche "meccanici" del proprio veicolo rispondo che a mio avviso l'utente dovrebbe almeno prendere una patente prima di avventurarsi per la strada.
La truffa internet è più facile da prevenire rispetto al furto del numero della carta di credito in qualsiasi negozio, la differenza come al solito la fa l'utente e non il mezzo.
domenica 23 marzo 2008
Ho finalmente concluso la riscrittura completa di una generica implementazione di IXmlSerializable.
Ovviamente per essere generica usa reflection e non ho fatto l'ottimizzazione dell'implementazione di default, cioè la generazione al volo con CodeDom del codice per serializzare/deserializzare, in quanto per i progetti in cui mi serve la performance di questo codice non è, al momento, critica. In più ci sono già voluti alcuni giorni per considerare tutti i casi imposti dagli attributi XmlElement, XmlChoice, XmlArray, etc. etc.
Perché rifarla da zero? Perché abbiamo bisogno di due cose:
- Avere un evento nella entity prima e dopo la serializzazione (cosa non banale quando la entity è in mezzo ad un mare di oggetti dentro un domain model).
- Poter modificare liberamente il risultato della serializzazione senza dover riscrivere ad-hoc il codice per ogni singola entity (lavoro massacrante).
Purtroppo riscrivere un XmlWriter non aiuta in modo granulare e così via alla riscrittura. Adesso ogni entity riceve, se vuole, un evento con un XDocument (superbo modo di gestire XML) che può modificare come più gli piace dopo la serializzazione e prima della deserializzazione.
Durante le varie manipolazioni con Reflection ho incontrato una piccola stranezza. Quando chiamo GetProperties l'array delle proprietà viene restituito in modo comodo a chi l'ha implementato, ma anche in modo "illogico".
La lista infatti è in ordine di dichiarazione della classe ma nella gerarchia sono elencate le proprietà a partire dalla classe in questione a scendere verso quella base.
Il serializzatore XML di default invece (a meno di non specificare un Order preciso) serializza dalla base risalendo la gerarchia, cosa che appare logica visto che una classe derivata "specializza" e quindi di fatto aggiunge delle proprietà alle classi di base.
Da qui il listato che segue, probabilmente ancora ottimizzabile ma perfetto per il mio scopo. Ovviamente fare il reverse delle proprietà non andrebbe bene perché il loro ordine è corretto per ogni livello della gerarchia di derivazione.
1: /// <summary>
2: /// Same as Type.GetProperties, but returning properties in the correct order
3: /// The problem is that Type.GetProperties returns derived properties first,
4: /// while the XML Serializer want the base properties first.
5: /// </summary>
6: /// <param name="t"></param>
7: /// <returns></returns>
8: private PropertyInfo[] GetProperties(Type t)
9: {
10: //PropertyInfo[] properties = t.GetProperties(
11: // BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public);
12:
13: List<PropertyInfo> props = new List<PropertyInfo>();
14: List<Type> types = new List<Type>();
15: // Take the list of all base types
16: do
17: {
18: types.Add(t);
19: t = t.BaseType;
20: }
21: while(t != typeof(object));
22: // invert the type list.
23: // After this the list start from the base types to the derived ones
24: types.Reverse();
25:
26: foreach(Type x in types)
27: {
28: // for each type in the list, I take only the public properties
29: // It's foundamental to get only the properties declared in that level
30: // by using "DeclaredOnly" binding flag.
31: PropertyInfo[] properties = x.GetProperties(
32: BindingFlags.GetProperty | BindingFlags.Instance |
33: BindingFlags.Public | BindingFlags.DeclaredOnly);
34: props.AddRange(properties);
35: }
36: // finally I can return the PropertyInfo array
37: return props.ToArray<PropertyInfo>();
38: }
Sto anche pensando di pubblicare la serializzazione XML su Codeplex, ma non so se sarebbe di interesse...
lunedì 17 marzo 2008
Poco fa ho ricevuto una email che non posso che riportare testualmente:
I just wanted to let you know the smashing success of the Fish Bowl video you recorded in Barcelona. Your video—posted to www.virtualteched.com on February 6—Threat Modeling and Discovering Security Issues came in near the top of our February Video Viewings Metrics with 350 hits…great job!
Il link al video è: http://www.virtualteched.com/pages/videossearch.aspx?KW=raffaele
E chi ha mai detto che la security è noiosa? 
A parte la soddisfazione personale, questo è un chiaro segnale che l'argomento sicurezza e il Threat Modeling che ho trattato nel video è certamente un argomento sempre più sentito e che non è più ignorabile.
Forza allora ... security first!
venerdì 14 marzo 2008
La cronaca di oggi riporta due attacchi informatici stra-prevedibili, tanto che io e Max ne parliamo ormai da anni.
Il primo, da quanto leggo nell'articolo, sembra essere lo sniffing delle password i cui hash passano nei pacchetti SMB della rete bancaria. http://www.tg5.mediaset.it/cronaca/articoli/2008/03/articolo6353.shtml
Dall'articolo capisco che qualcuno ha installato un piccolo apparato alla rete fisica della banca raggiungibile tramite wifi dall'esterno della banca.
Il secondo è la falsificazione del fingerprint.
http://www.video.mediaset.it/video.html?sito=studioaperto&data=2008/03/14&id=35928&categoria=edizione/servizio&from=studioaperto
Di fantasia ce n'è voluta proprio poca. Il sistema è fin troppo facilmente ingannabile.
Si da il caso che alla scorsa WPC a Milano io e Max abbiamo spiegato e mostrato demo anche su questi attacchi:
- In una delle tante demo ho usato un minuscolo access point per catturare il traffico di rete. Accedevo da remoto tramite un client SSH prelevando la cattura di rete e decrittando gli hash grazie alle mostruosamente grosse tabelle di rainbow sul computer fisso.
Max ha più volte insistito sul fatto che la DMZ è morta perché la LAN ormai è troppo facilmente attaccabile.
Io ho fatto proprio l'esempio di quanto sarebbe facile insinuare in una azienda un piccolo Access Point come quello da usare come ponte per un attacco.
Signori, IPSEC esiste da un pezzo e qui, ancora una volta, sono mancate le giuste precauzioni!
- Nella demo conclusiva alla nostra sessione, con il famigerato guanto da scheletro che ho recentemente rispolverato a Bologna, mi sono loggato a Windows XP con un'impronta digitale falsa che ho riprodotto facilmente con mezzi casalinghi.
Sono ormai tre (3) anni che ripetiamo che il fingerprint NON è un dispositivo di sicurezza e per questo motivo il driver Microsoft non funziona sui sistemi operativi Server.
Ancora una volta sono mancate le giuste precauzioni, oltre all'invasione della privacy per i 'normali' utenti bancari.
Un ultimo disclaimer per chi non è pratico di sicurezza. "Security through obscurity" NON funziona. Chi teme che, parlando di queste cose, si diano "cattive" idee ai malintenzionati si sbaglia di grosso. La storia della sicurezza dimostra esattamente il contrario. È necessario parlarne fino alla noia per rendere al corrente tutti del potenziale pericolo. Chi se ne capisce e ha cattive intenzioni non ha bisogno di ripetizioni.
Fino a ieri la mia macchina principale era un Windows 2003. La scelta è stata dettata dalla necessità di certi componenti server, IIS6 in primis, ma anche diversi altri.
Considerato che non sono admin del mio PC, rispetto a Vista che uso sul portatile, Windows 2003 era un continuo RunAs o terminal services su me stesso per i normali task amministrativi.
Ieri ho prima clonato e poi lanciato l'aggiornamento a Windows 2008 ... le uniche possibili parole sono "semplicemente fantastico".
Le "maledette" Frontpage server extensions che erano installate da chissaquanto mi hanno fatto ripetere la procedura di installazione perché finalmente Windows 2008 (IIS7) non le vuole più in mezzo ai piedi. E come ultimo dispetto la loro disinstallazione mi ha richiesto l'ultimo reboot su 2003.
L'installazione ha richiesto un tempo infinito (in tutto c'è voluta una intera giornata, partendo dalle circa due ore per clonare i dischi (backup) fino al primo boot pulito su 2008) ma credo sia dovuto al fatto che il setup supporta il rollback, che non è certamente una cosa banale.
Ovviamente, essendo per me una workstation per sviluppare software, ho prontamente installato alcuni componenti, abilitato i temi e Aero, l'audio, le shadow copy, il search e diverse altre comodità tipiche da workstation.
La UAC (che adoro) mi ha tolto le rogne di RunAs (a questo ormai ero abituato ma è comunque molto comodo). Boot e Reboot sono infinitamente più veloci. Niente più servizi che falliscono per timeout al boot.
Il browsing del file system locale e di rete è una scheggia in confronto a 2003. Finalmente il media player è la versione 11 (che su 2003 si poteva installare solo con un piccolo tweak). E molte altre bellezze ancora.
Unico (prevedibile) neo, le stampanti locali devono tutte essere reinstallate. Prevedibile visto che il driver model è cambiato.
Per quanto riguarda i componenti di terze parti:
NVidia. I driver come sempre (certificati per Vista) sono pessimi e ho dovuto persino invertire fisicamente i monitor perché il driver non ci capiva più nulla. Ovviamente questa mattina dopo l'ennesimo reboot, li ha re-invertiti di nuovo ... grr. Duclis in fundo il driver sta cercando di pilotare il monitor a una risoluzione superiore a quella dichiarata nel pannello di controllo. Il monitor se ne accorge, me lo dice e poi funziona auto-abbassandosi la risoluzione... mah. Shame on Nvidia.
VMWare. Ho dovuto reinstallare VMWare workstation (v6.2) ma adesso funziona come un cronometrino. Accettabile, bravi.
Raxco. Grazie alla licenza MVP (come VMWare) ho voluto provare PerfectDisk 2008 Server che nella notte mi ha deframmentato i dischi durante il reboot e stamattina ho trovato il gioiellino perfettamente a posto e deframmentato. Applausi.
Microsoft. La time zone utility caccia una NullReferenceException. Bocciata e disinstallata. Outlook Express (nntp) è stato rimpiazzato da Live Mail. Conserva la lista degli account ma NON migra nè i messaggi nè le credenziali per l'accesso. Pessimo, bocciati.
Software "maggiori" come VS2008, Office, Sql Server, Outlook, IE, etc. sono tutti perfettamente a posto. Il voto va quindi differenziato da team a team.
Il resto delle applicazioni (per quello che ho avuto il tempo di provare) è tutta funzionante.
Se siete power users / developer vi consiglio di installarvi Windows 2008 come workstation perché è un vero spettacolo. Se siete utenti non saprei, io non uso quasi nulla di un utente tradizionale.
Due ultimi avvisi ai naviganti. Per usare HyperV è necessaria la versione a 64bit (io sono ancora a 32bit anche per motivi di compatibilità con applicazion, driver e tools).
Windows 2008 con HyperV sul portatile è da sconsigliare perché non supporta l'ibernazione e lo standby.
giovedì 6 marzo 2008
Il carissimo amico Aldo mi ha mandato questa foto affissa dalla fantastica e dinamica April, ex PM di Visual C++, oggi nel team di MSDN help.
Ebbene si, la mia foto è affissa al sesto piano del building 41 di Redmond, "patria" di Visual Studio, Visual C++ e di altri gruppi di prodotto.
Sono onorato del privilegio ma spero che ad Aprile, girando nel campus qualche cacciatore di taglie non mi riconosca
.
mercoledì 5 marzo 2008
Lasciamo perdere il viaggio da incubo a cura di Trenitalia (40 minuti di ritado da Genova a Milano, coincidenze perse e un calcio nel sedere al posto delle informazioni a Milano centrale). Lasciamo perdere che tutti i treni di andata e ritorno (parliamo di eurostar e intercity) hanno avuto ritardo di almeno 20 minuti. E passiamo dunque ad argomenti più produttivi.
Come previsto l'after-hour è andato liscio liscio e con abbondanza di presenza nella sala MSDN del lancio di VS2008, Win2008 SQL 2008.

Nella sessione di Linq, Andrea ha presentato con l'esordiente Mauro, a cui vanno gli applausi come speaker e per padronanza della materia. I topics (il doppio senso è voluto
) sono di quelli leggeri
... scrivere un provider per Linq.
Poi, visto che mi dovevo redimere dalla cattiva fama di massacratore di platee, è arrivata la mia sessione sulle novità di Windows Mobile in Visual Studio 2008, di livello molto tranquillo ... un classico level 300.
Devo proprio ringraziare tutti i presenti che hanno avuto la costanza di seguirmi fino alla fine, una sessione dalle 21:00 alle 22:00 non è proprio facile da seguire.
Ed infine una piacevole tavolata con tanti amici ...
... ed un losco figuro
che ci ha riportao in albergo alla fine.
Alla prossima!
lunedì 3 marzo 2008
La carovana del lancio di Visual Studio 2008, Windows Server 2008 e Sql Server 2008 si sposta a Bologna e UGIdotNET ha organizzato il Technical Community After Hour.
Alla fine dell'evento la cena e poi attaccano Mauro ed Andrea alle 20:00 con la sessione su Linq. A ruota la mia sessione sulle novità di Windows Mobile in Visual Studio 2008 e nel Compact Framework 3.5.
Le novità non sono affatto poche e ho già deciso cosa immolare sul sacro altare del taglio delle slides per rompere l'incantesimo che mi vuole come "sforatore dei tempi" ufficiale. Scherzi a parte ci sarà occasione anche dopo la sessione di approfondire "vis à vis" i dettagli della sessione.
Sul forum "caffetteria" di UGI si sta preparando il "after-after-hour" ...
come sempre aperto a tutti.
Noi arriveremo a fine mattinata e vi aspettiamo ovviamente nella zona community per una chiaccherata. A Bologna dunque!
P.S. Dimenticavo ... per chi non lo sapesse i ricchi regali del lancio (VS2008, Win Server 2008, SQL Server 2008) vengono dati anche a chi partecipa solo all'after-hour!
domenica 2 marzo 2008
Voglio ringraziare Alex Feinman per l'illuminante spiegazione su come avviare RTF Host sugli emulatori di Windows Mobile.
Seguendo infatti passo-passo la procedura indicata nei power toys, non si riesce ad aggiungere un "TCP Device" ottenendo invece l'errore seguente.

Riporto perciò la traduzione della procedura che Alex Feinman ha pubblicato sul proprio blog:
L'errore deriva dal fatto che gli emulatori di default usano il trasporto DMA (DeviceDMA.dll), perciò RTF non seleziona il trasporto corretto. Per poter eseguire la procedura "Add TCP Device" la procedura è la seguente:
1. Avviare l'emulatore usando il Device Emulator Manager
2. Configurare una connessione di rete e il folder condiviso mappato sulla storage card.
3. Copiare il seguente file nella storage card:
C:\Program Files\Common Files\microsoft shared\CoreCon\1.0\Target\wce400\armv4i\TCPConnectionA.dll"
4. Usando il file explorer dell'emulatore, aprire la cartella \Windows\Corecon1.1
Se la cartella non fosse presente, collegarsi con l'emulatore da Visual Studio almeno una volta.
5. Lanciare ClientShutdown (a seguito del quale verrà creata una nuova cartella che ha per nome un guid)
6. Copiare \Storage\Card\TcpConnectionA.dll in \Windows
7. Aprire la cartella \Windows e cancellare DeviceDMA.dll
Il file risulta occupato solo se non si è lanciato ClientShutdown precedentemente
8. Aprire la cartella \Windows\Corecon1.1 e lanciare ConmanClient.exe
9. Lanciare RTF Host
La procedura non è affatto ovvia e purtroppo non è documentata in MSDN. Ad ogni modo avviare RTF Host su un emulatore è utile sostanzialmente per eseguire delle demo e difficilmente potrà risultare utile durante il normale sviluppo su device reali dove questo problema non si verifica.
Thanks Alex!
venerdì 22 febbraio 2008
Dopo solo qualche giorno dalla diabolica perseveranza nell'inserire bug di sicurezza nel sito del partito democratico, documentato anche da Roberto, ecco un altro penoso esempio di assenza di attenzione sulla sicurezza applicativa.
Il 28 e 29 Novembre 2007 ho mandato due email in cui avvertivo Sogei, gestore del sito delle dogane, sull'uso totalmente errato dei certificati digitali.
Si, è vero, avevo detto che ormai non mandavo più email di avvertimento perché non venivano mai considerate. Io ho fatto un'eccezione, ma puntualmente si è avverato quello che dico sempre: le email non hanno minimamente prodotto alcun effetto. Tutto puntualmente ignorato nel massimo rispetto della saccenza di chi li riceve. Come se non bastasse, l'agenzia delle dogane (numero verde) e Sogei hanno giocato al gioco dello scaricabarile rimbalzandomi dall'uno all'altro... cavoli dico, di solito per queste cose mi pagano le consulenze, mentre qui gli faccio consulenza gratuita e mi sbattono la porta in faccia... eccezionale!
Veniamo ai punti salienti.
Il sito protetto si trova all'indirizzo: https://telematico.agenziadogane.it/
Contrariamente a quello che avviene in tutto il resto della rete, nella parte http del sito viene chiesto all'utente di configurare il browser, scaricando ed installando una specifica certificate authority:
http://www.agenziadogane.gov.it/wps/wcm/connect/ed/Servizi/Servizio+Telematico+Doganale+-+E.D.I./Servizio+Telematico+Doganale+-+Accesso
Da ciò le prime considerazioni
- Voglio conoscere l'utente finale che è capace di fare tutto al primo colpo senza sbagliare la procedura
- Poverini, non hanno a disposizione 15$ per comprare un certificato trustato da una Certificate Authority già nota ai più diffusi browser ed evitare così questo scempio agli utenti
Andiamo avanti, il prossimo passo è quello di scaricare il certificato (punto 2 del precedente link) ... clicco e ..
Il link per il download è in https (https://telematico.agenziadogane.it/ca/ca.der) ma è protetta usando il certificato che ancora non è stato scaricato!!!!
Perché questo è male? Perché l'hacker può fare spoofing della richiesta https e sparare la propria Certificate Authority agli utenti di quel sito.
Che cosa ottiene l'hacker installando una CA in un computer? Significa che qualsiasi certificato (web, di codice, etc.) emesso da quella CA risulterà sempre affidabile da quel computer. Perciò l'hacker combinando un attacco di tipo dns poisoning con la falsa CA, può far credere che qualsiasi sito dell'hacker è affidabile. Per esempio l'hacker può far navigare l'utente su un sito clone di una banca e fargli credere di essere collegato ad una vera banca mentre in realtà si tratta di un falso. In questo modo è in grado di rubare le credenziali di accesso. Liberate la fantasia e qualsiasi altro attacco simile è possibile.
L'unica difesa è che l'utente apra il pdf delle istruzioni e confronti (vedi pagina 5) l'hash SHA1 con quello del certificato che sta installando, confrontando i 40 byte esadecimali (bello facile da leggere).
Si perché l'hash MD5 che c'è nella riga inferiore è BUCABILE, in quanto esistono già su tutte le reti peer le tabelle di rainbow per craccare gli hash MD5. In pratica l'hacker è potenzialmente in grado di produrre un certificato che abbia lo stesso hash MD5.
Ma io avevo avvertito Sogei per email e la risposta è stata: "Abbiamo consultato i nostri colleghi sistemisti i quali assicurano che non esiste alcun buco di sicurezza; in ogni caso se lei ci fornisce il suo recapito telefonico verrà contattato direttamente."
Il numero di cellulare gliel'ho mandato e la telefonata ovviamente non è mai arrivata.
La lezione è: denunciare sui blog sempre e subito perché avvisare non serve a niente!