AES är ett bra val för generell kryptering, den betraktas i allmänhet som mycket säker. WinZip valde dessutom att använda Dr. Brian Gladman's SD-licensierade AES-implementation, som har blivit undersökt av flera oberoende parter.

De publicerade även detaljerad information om hur de använde krypteringen på sina sidor, så att andra skulle kunna göra kompatibla program. Ett skolexempel på hur man bygger in stöd för kryptering i sitt program.

Men ändå hittade Tadayoshi Kohno inte mindre än sex olika säkerhetsproblem med WinZip 9.0 och dess stöd för krypterade ZIP-arkiv. Inget av säkerhetsproblemen gör det möjligt att knäcka godtyckliga krypterade ZIP-arkiv, men många av dem gör att en angripare kan få betydligt större kunskap om innehållet i zipfilen än vad han borde ha. Om inte användarna är införstådda med detta kommer de få en falsk känsla av säkerhet.

Exempelvis skulle ett företag kunna lägga ut en zipfil med konfidentiella dokument, avsedda för sina partners, på sin webplats, utan att bry sig om att skydda åtkomsten till filen. Själva filen är ju krypterad, så bara de partners som har lösenordet kan läsa innehållet, eller hur?

Men om man inte är införstådd att namnen på filerna inuti zip-arkivet är allmänt läsliga kan man lätt avslöja för mycket bara genom ett filnamn ("Planer_ang_uppköp_av_Foo_AB.doc").

Inget av problemen som Kohno presenterar beror på något fundamentalt fel i krypteringsalgoritmen. Ett problem handlar om att algoritmen initialiseras på ett sätt som gör krypteringen mindre stark än vad som är möjligt, men i övrigt härstammar problemen från avvägningar som WinZip har gjort mellan säkerhet och bakåtkompatibilitet, avvägningar som säkert gjordes med de bästa av avsikter, men som ändå har fått allvarliga konsekvenser.

Vad lär vi oss av det här?

För utvecklare handlar det om en gammal lärdom, kanske bäst uttryckt av Bruce Schneier och Niels Ferguson i boken "Practical Cryptography". Fritt återgivet: "Kryptografi är väldigt svårt. Kryptografi är den lätta biten." Att bara länka in en AES-implementation i sitt program kommer inte göra ditt program säkrare om du inte samtidigt har koll på vilka hot du vill skydda emot. I Winzip-fallet hade utvecklarna kunnat skydda mot det farligaste informations-läckaget utan att göra avkall på bakåtkompatibilitet om de bara hade beaktat hotet.

För användare handlar det om att säkerhet är mer komplicerat än bara frågan om hur många bitars kryptering som används. I Winzip-fallet är det ganska tydligt att filnamn och annan metadata inte krypteras, och flera av de andra begränsningarna dokumenteras i hjälpfilen, som du tydligt uppmanas läsa första gången du försöker kryptera något. Om du måste hålla din information hemlig måste du också förstå vad de program du använder gör, och framförallt vad de inte gör.

Av Staffan Malmgren, kolumnist i IDG.se Teknik & Tester