Tajemnice szyfrowania dokumentów Microsoft Office

2010-07-20 00:00:00 +0100


W zaktualizowanym niedawno dokumencie “Office Document Cryptography Structure Specification” firma Microsoft ujawniła szczegóły różnych technik kryptograficznych stosowanych w historycznych i bieżących wersjach Microsoft Office. Lektura ciekawa, choćby ze względu na straszliwe algorytmy “szyfrujące” z początku lat 90-tych takie jak XOR. W dokumencie, poza wieloma mniej lub bardziej związanymi z kryptografią szczegółami implementacyjnymi, opisuje cztery główne rodzaje szyfrowania stosowane w kolejnych wersjach Microsoft Office:

  1. XOR - David LeBlanc z Microsoftu wzdraga się przed nazwaniem tej metody "szyfrowaniem" i w dokumencie jest ona opisana jako "zaciemnianie" (obfuscation). Metoda jest trywialna do złamania.
  2. RC4 - szyfr RC4 pojawił się w Office97. Sam w sobie jest to algorytm silny, ale jako szyfr strumieniowy oparty o XOR łatwo można popełnić błędy implementacyjne. I Microsoft je popełnił, dopuszczając wielokrotne szyfrowanie różnych danych tym samym ciągiem kluczowym. Błąd ten istniał jeszcze w Microsoft Office 2002 (a także w MS PPTPv1) i z powodzeniem demonstrowałem go na szkoleniach z kryptografii z pomocą CrypToola. Na domiar złego MS Office stosowało klucz RC4 o długości 40 bitów - niezależnie od długości hasła - i robiło to na długo po zniesieniu amerykańskich ograniczeń eksportowych, które to ograniczenie wymusiły.
  3. Cryptograpic API - Office zaczęło korzystać z CryptoAPI wraz z pojawieniem się go w systemie Windows. Domyślnym szyfrem było znowu RC4 i pomimo możliwości stosowania dłuższych kluczy (do 128 bitów), domyślną wartością było nadal 40 bitów. Aż do wspomnianego Office 2002 oraz XP powtarzano też te same błędy w implementacji RC4, popsuta też było generowanie klucza z hasła (brak iteracji).
  4. Office 2007 - jest to pierwsza wersja Office, która - wraz z wprowadzeniem OOXML (ECMA-376) uporządkowała kwestie szyfrowania i doprowadziła je do współczesnych standardów. Domyślnym algorytmem jest AES, zaś proces konwersji hasła na klucz ma aż 50 tys. iteracji. W Office 2010 nie ma specjalnych różnic - bo i format dokumentu jest ten sam - dodano za to podpis elektroniczny w formacie XAdES. Dokument "Office Document Cryptography Structure Specification": http://msdn.microsoft.com/en-us/library/cc313071.aspx Blog Davida LeBlanca na temat wstydliwych incydentów w implementacji kryptografii przez Microsoft: http://blogs.msdn.com/b/david_leblanc/archive/2008/07/03/office-crypto-follies.aspx