|
Io sono d'accordo con Duncan. La sicurezza non stà nel tenere nascosta l'architettura che c'è sotto (vedi l'algoritmo nei casi di crittografia a chiave pubblica) ma stà nell'avere un'architettura solida e intrinsecamente sicura. Ti faccio un esempio: un produttore di porte blindate (Microsoft) costruisce una nuova porta (Windows). Ha cinque ingegneri (programmatori) che decidono tutti i materiali e come dovrà essere costruita la porta (scrivono il codice). Fanno però l'errore di costruire i cardini in argilla (baco) ma nessuno può correggerli perchè lo sanno solo loro (codice chiuso). Quando il ladro arriva davanti alla porta vede che c'è una toppa della chiave in acciaio temprato (password) e non la guarda nemmeno. Invece comincia ad appoggiare l'oreccio alla porta e a picchettarla con un martello (reverse engineering). Ben presto si accorde che basta dare un colpo secco in prossimità dei cardini e la porta cade come una patata bollita (exploit). Se la porta fosse stata costruita con i canoni dell'open source ci sarebbe stato qualcuno che avrebbe detto "forse i cardini in argilla non sono il massimo..." e la porta sarebbe stata più sicura benchè più conosciuta.
Ora, l'esempio è un po' semplicistico ma se pensi che un software come Windows è fatto da milioni di righe di codice, qualche "cardine d'argilla" ci scappa per forza. Più gente c'è a controllare e più sicuro intrinsecamente può diventare il sistema.
Ocimin
|