De praktijk leert dat alleen een computer die niet is aangesloten op het internet en waar niemand fysiek bij kan komen "kraakvrij" is. Niemand kan een kraakvrij non-triviaal OS (in deze context incl. alle applicatie software) maken.
Het enige wat je kunt doen is het kraken zo moeilijk mogelijk te maken: Voor de producenten van software komt dat neer op het kiezen van rationele defaults, betrouwbare bewezen algoritmen, procedures en tools die fouten voorkomen of snel zichtbaar maken. Een
buffer overrun (een veel voorkomende lek) is bijvoorbeeld door
een goede keuze van tools te voorkomen; Als het OS
het geheugenruimte op een random manier toewijst dan kan een buffer overrun amper nog gebruiken worden voor een kraak. Dit zijn allemaal erg triviale zaken die al jaren bekend zijn.
Gebruikers kunnen zichzelf beschermen door geen software te gebruiken met bekende fouten. Dit vereist echter flexibiliteit van de gebruikers aangezien dit betekend dat men moet kunnen werken in de context van een diversiteit van implementaties. Ook maakt dit het essentieel dat alle data is opgeslagen in open formaten en dat iedereen open standaarden ondersteund. Helaas komt het nog steeds voor dat men op een bepaalde implementatie tot standaard verheft: Op die manier ontstaat er dan een implementatie monocultuur waarbij 90% van alle computers online dezelfde fout heeft, en dat is gewoon vragen om problemen.