Efter en förfrågan på bugzilla-listan om mer information om hur vårt root-certifikat skyddas har jag bestämt mig för att skriva ihop det här och se om det föreslås något mer att göra, eller om det finns ett bättre sätt att hantera alltsammans.

För tillfället finns det två huvudservrar, en med webbserver, en med root-förvaring, med root-förvaringen endast ansluten till webbservern via seriekabel, med en daemon som körs i form av ickeroot-processer i varje ända av den seriella och tar emot/skickar förfrågningar/information.

Om root-förvaringen upptäcker en felaktig förfrågan antar den att webbservern är äventyrad och stänger av sig själv.

Om root-förvaringen inte mottar ett 'ping'-svar över den seriella länken inom en bästämd tidslängd antar den att webbservern är äventyrad eller att root-förvaringen själv är stulen och stänger av sig själv.

Utöver boot-grejorna så befinner sig all data på en krypterad partition på root-förvaringsservern och kan bara startas på nytt genom manuell inblandning i boot-processen.

Förfrågningar som skickas till root-förvaringen lagras i en fil för parsning och signering av en annan process utlöst av cron, sedan lagras de i en svarsfil för att skickas tillbaka till webbservern. Gör att saker separeras i olika användare, grundläggande privilegieseparerings-grejor. Så att faktiskt lyckas hacka de seriella daemonerna orsakar bara i det ALLRA värsta fallet oriktiga certifikat, inte att rooten avslöjas.

Varför använda seriellt undrar du? Jo certifikatförfrågningar innebär låg bandbredd för det första, också är förstås enklare system inom säkerhet mindre utsatta för exploits, och till sist är seriell kod ganska färdigutvecklad och vältestad och förhoppningsvis har alla exploits hittats och åtgärdats för länge sedan.

Med de föreslagna förändringarna för root-certifikat skulle det finnas en ny root som skulle signera minst en under-root, sedan skulle den privata nyckeln förvaras offline i ett bankvalv, och under-rooten skulle stå för all signering, eller alternativt två under-rootar, en för klientcertifikat, en för server. Tanken bakom detta är att om någon av under-rootarna äventyras kan de annulleras och återutfärdas.

Alternativt kan vi alltmedan saker fortgår lägga till fler säkerhetslager med säg fyra webbservrar som pratar med två övergångsservrar, som pratar med root-förvaringen, och fungerar i token ring-stil. Om något händer i fel orning stänger den direkt överliggande servern av sig själv. Om detta var på plats och det fanns flera vägar, så skulle all nertid i denna stil falla över på servrarna som inte är äventyrade. Hursomhelst bara lite mat för tanken.

CAcerts verksamheter sponsras av
Om oss | Donationer | Föreningsmedlemskap | Sekretesspolicy | Uppdragsförklaring | Kontakta oss | ©2002-2010 av CAcert