Outlook Passwörter
Benutzen Sie
Passwörter die Groß- und Kleinbuchstaben, Zahlen und Symbole
kombinieren. Schwache Passwörter bestehen nicht aus einer solchen
Kombination. Starkes Passwort: Y6dh!et5. Schwaches Passwort:
House27.
Auszug aus dem MS Office
Outlook Benutzerhandbuch
|
Einleitung
Passwörter der PST Dateien
Verschlüsselung von PST Dateien
Techniken zur Speicherung von eMail Zugangspasswörtern
Zusammenfassung
Einleitung
Dieser Artikel wurde ursprünglich geschrieben, um auf eine interessante
Anomalie in den PST-Dateien von Outlook aufmerksam zu machen. Nach und
nach entwickelte sich der Artikel zu einer Anleitung, die die erweiterten
Möglichkeiten innerhalb von Outlook zur Speicherung von persönlichen Daten
aufzeigt. Dabei wird beispielhaft die Entwicklung der von Outlook genutzten
Verschlüsselung beleuchtet. Dies vermag einen grundsätzlichen Einblick in die
Entwicklung des gesamten Windows Betriebsystems zu bieten.
Passwörter der PST Dateien
Beginnen wir an dem Punkt an dem Microsoft Office Outlook's PST-Datei als
Datenbank Datei auf dem lokalen Computer in einer bestimmten Reihenfolge Daten,
wie Kontakte, Notizen, e-Mail Nachrichten und andere Dinge speichert. Eine PST-Datei
kann als ein lokaler, voreingestellter Speicherort für zu verschickende e-Mail
Nachrichten, wie auch als Datensicherung angesehen werden.
Um den Inhalt einer PST-Datei zu schützen und den Zugriff für unautorisierte
Personen zu unterbinden, kann ein bis zu 15 Zeichen langes Passwort (Abbildung
1) gesetzt werde. In einem solchen Fall sollte – so die Annahme - die PST-Datei
nicht ohne die Eingabe des originalen Passworts geöffnet werden können. Aber ist
dem wirklich so?
Abbildung 1. Outlook PST Passwort Dialog
Ein PST-Datei Passwort wird in keiner expliziten Art und Weise gespeichert.
Statt dessen errechnet der Computer den Hash-Wert des Passworts und speichert
diesen in der PST-Datei oder, wenn die Option 'Speichern des Passworts in der
Passwortliste' (Abbildung 1) gewählt ist, zusätzlich in verschlüsselter
Form.
Bemerkenswert ist nun, daß der zur Berechnung verwendete Hash Algorithmus nicht
aktuell, sondern eine einfache CRC32 Checksummen Berechnung ist. CRC32
ist ein Algorithmus zur Redundanzprüfung, aber sicher keine Hash-Routine. Aus
irgendeinem Grund entschied Microsoft jedoch diesen zu verwenden anstatt eines
sicheren Algorithmus wie z.B. den SHA. Zusätzlich verwendet Microsoft –
wahrscheinlich aus Kompatibilitätsgründen, diese CRC32-Routine seit geraumer
Zeit. Auf der anderen Seite – und die Gründe hierfür sind unklar – wurde der
Algorithmus nicht in Outlook 2003 PST-Dateien weiterverwendet, denn hier
kommt jetzt eine 64-bit interne Adressierung zur Anwendung, die nicht mit den
vorherigen Versionen kompatibel ist.
Betrachten wir die CRC32 Routine etwas genauer:
DWORD CPstReader::Crc32(
LPBYTE pPassword )
{
assert( pPassword );
//set initial crc to zero
DWORD crc=0;
//till the end of string
while (
*pPassword )
crc = (crc>>8)
^ pCRCTable[(BYTE)crc ^ (*pPassword++)];
return crc;
}
Wie man aus dem Source Code Fragment erkennen kann, wird das Passwort
(pPassword) zu Beginn eingegeben, woraufhin seine Checksumme
ausgegeben wird. Die größte Angreifbarkeit der CRC32 Routine ist die
32-bit Länge des Passwort-Hash, er ist einfach ausgedrückt zu kurz,
und so können aus zwei verschiedenen Passworten, die Checksummen
übereinstimmen. So ergeben die Passworte 1 und orxgnm oder
die Passworte mozart und 2920347097 jeweils die identische
Checksumme. Diese 'Kollisionen' treten sehr häufig auf.
Diese 'Kollisionen' sind bemerkenswerte Ereignisse! Der Rückschluß ist
mit einer ähnlichen Häufigkeit zulässig: je länger das Passwort, um so
einfacher tritt eine 'Kollision' auf. Nehmen wir ein Beispiel aus dem
Outlook Benutzerhandbuch, jenes Beispiel, was im Vorwort dieses Artikels
nicht zufällig gewählt wurde. Für dieses als sicher bezeichnete Passwort
Y6dh!et5 existiert eine einfache fünf Zeichen lange Entsprechung,
die die identische Checksumme generieren läßt: JlSfw.
Es gibt aber noch eine andere interessante Beobachtung. Wird eine
Checksumme in eine PST-Datei gespeichert, die gleich NULL ist, nimmt das
Programm an, daß kein Passwort gesetzt wurde! Da wir nun wissen, daß
Passworte mit identischer Checksumme auftreten, so ist die Annahme, daß
dies auch bei den Passworten mit der Checksumme NULL auftritt,
folgerichtig. Und tatsächlich existieren diese Passworte. Hier ein
kleiner Auszug aus der langen Liste dieser Passwörter: 1Rj78C,
5J8j84, ArTniW. Crc32('1Rj78C')=0, Crc32('5J8j84')=0,
Crc32('ArTniW')=0. Benutzt man nun eines dieser Passwörter um einen
PST-Datei zu schützen, so wird diese Datei ungeschützt sein und das
Programm wird beim nächsten Start der Datei noch nicht einmal ein
Passwort abfragen! Sie glauben mir nicht? – Probieren Sie es einfach
aus.
Experimente haben gezeigt, daß mittels einer 'Brute Force Attack' aus
dem Outlook Hash das Passwort innerhalb einer Minute wiederhergestellt
werden kann. Die Analyse der verwendeten CRC32-Routine hat gezeigt, daß
für kurze Passworte (bis zu 4 Zeichen) eine vollständige und für alle
anderen Passwortlängen eine teilweise Umkehrung des Algorithmus möglich
ist. Weiterhin ist sicher, daß zur Auffindung einer 'Kollision'
(Passwörter mit identischer Checksumme) weniger als 7 Zeichen notwendig
sind. Dies bedeutet, daß das Originalpasswort zumeist unmittelbar
wiederhergestellt werden kann.
Verschlüsselung von PST Dateien
Wenn wir die Einstellungsmöglichkeiten (Abbildung 2) betrachten, fällt auf,
daß Outlook neben anderen Dingen auch eine Verschlüsselung des Dateiinhalts
anbietet. In diesem Fall wird die Passwort-Checksumme nicht in offener Form
innerhalb der PST-Datei abgelegt. Statt dessen wird eine zusätzliche
Verschlüsselung mittels eines Verschlüsselungsalgorithmus verwendet. Betrachten
wir nun diesen Verschlüsselungsalgorithmus. Während der Erzeugung eines neuen
PST-Datei bietet
Outlook drei Datei Typen an:
- Nicht verschlüsselt
- Komprimierte Verschlüsselung
- Starke Verschlüsselung
Abbildung 2. Anlegen einer neuen PST-Datei.
Wird keine Verschlüsselung gewählt, werden alle Benutzerdaten wie
Kontakte, Nachrichten, Passwörter etc. in einer offenen Form gespeichert, so daß
sie für alle Benutzer einsehbar sind. Diese Daten lassen sich z.B. mit einem
Texteditor betrachten.
Der komprimierte Verschlüsselungsalgorithmus arbeitet mit einer einfachen
Zeichen für Zeichen Ersetzungstabelle. Hier ist der Algorithmus:
BOOL
CPstReader::Decrypt1( LPBYTE
buf,
int iSize )
{
assert( buf );
BYTE y=0;
int x=0;
//Check input buffer
if ( buf==NULL )
return
FALSE;
//Check encryption type
if ( m_pst.encryption!=PST_
ENCRYPT_COMPESSIBLE )
return
FALSE;
//actual decryption
while ( iSize-- )
{
y=buf[x];
buf[x++]=m_pTable[y];
}
return
TRUE;
}
Die Ersetzungstabelle (m_pTable) wird so gebildet, daß mit der
späteren Komprimierung die höchste Komprimierungsrate erreicht werden kann.
Dieser Ersetzungsalgorithmus komprimiert den Inhalt nicht, sondern bereitet ihn
nur zu den günstigsten Konditionen (im Sinne der späteren Komprimierung) auf.
Die starke Verschlüsselung ist ebenfalls eine Art des zuerst
vorgestellten Substitutionsalgorithmus. Im Gegensatz zur ersten Variante bietet
diese jedoch eine stärkere Verschlüsselung. Ein weiterer Unterschied dieses
Algorithmus ist die Tatsache, daß die erzeugte verschlüsselte PST-Datei weniger
stark komprimiert werden kann.
BOOL
CPstReader::Decrypt2( LPBYTE
buf,
int iSize, DWORD id )
{
assert( buf );
int x=0;
BYTE y=0;
WORD wSalt;
//Check input buffer
if (
buf==NULL
)
return
FALSE;
//Check encryption type
if ( m_pst.encryption!=PST_ENCRYPT_STRONG )
return
FALSE;
//prepare encryption key from block
ID
wSalt=HIWORD(id) ^ LOWORD(id);
//actual decryption
while ( iSize-- )
{
y=buf[x];
y+=LOBYTE(wSalt);
y=m_pTable2[y];
y+=HIBYTE(wSalt);
y=m_pTable2[y+0x100];
y-=HIBYTE(wSalt);
y=m_pTable2[y+0x200];
buf[x++]= y - LOBYTE(wSalt++);
}
return
TRUE;
}
Um einen Datenblock wiederherstellen zu können, muß der „Block Identifier"
bekannt sein. Ohne diesen „Identifier" würde sich der Wiederherstellungsprozeß
wesentlich schwieriger gestalten. Nochmals, wenn wir den Source Code des
Algorithmus näher betrachten, können wir feststellen, daß nur ein 16-bit Block
Identifier benutzt wird. Dies erlaubt eine starke Eingrenzung der Anzahl an
Iterationen, die für die Ermittlung des VerschlüsselungsKeys mittels einer Brute
Force Attacke notwendig sind.
Techniken zur Speicherung von eMail Zugangspasswörtern
Beim Lesen dieses Artikels haben Sie vielleicht nun die falsche Vorstellung
bekommen, daß MS Outlook nur schwache Passwort Verschlüsselungsalgorithmen
verwendet, doch dies ist nicht so. Die Wahrheit finden wir durch einen Vergleich
heraus, denn bisher haben wir nur PST-Dateien auf ihre
Verschlüsselungsmechanismen hin analysiert. Betrachten wir nun Outlooks eMail
Account Verschlüsselungs-methoden im Vergleich mit denen anderer populärer
Programme.
Die Mehrzahl der populären eMail Clients haben keine sonderlich hohen Schutz zur
Sicherung der Benutzerpassworte implementiert. So nutzen z.B. Eudora,
TheBat! oder auch ältere Versionen von Netscape einen schon als
archaisch zu bezeichnenden BASE64 oder Derivate davon als Algorithmus um
Benutzerdaten zu verschlüsseln. IncrediMail benutzt einen einfachsten
XOR Range des Originalpassworts (man könnte auch spitzfindig behaupten, das
dies gar keine Verschlüsselung ist!), ältere Versionen von Opera
verschlüsseln Passworte überhaupt nicht, sondern speichern diese als direkt
lesbaren (plain) Text ab.
Mit den neuesten Versionen von Thunderbird, Opera M2, und
Outlook Express verhält es sich ein wenig besser. Sie verwenden
zuverlässige, zeitgemäße Algorithmen mit Hilfe eines Masterkeys. Dies ist
normalerweise eine Kombination aus MD5 + RC4 oder SHA + 3DES oder
Derivate davon. Thunderbird, Opera M2, und Outlook Express speichern ihre
Masterkeys und Verschlüsselungskeys mit den verschlüsselten Passworten ab, was
einen (zumeist) einfachen Rückschluß auf das Passwort ermöglicht.
Was nun Outlook betrifft (nebenbei bemerkt, ist dies nicht mit Outlook Express
zu verwechseln!), so zeigt sich hier ein höchst verworrenes Bild. Die gesamte
Chronologie der Entwicklung zur Speicherung der Passwörter für Outlooks eMail
Zugangsdaten kann in vier Perioden unterteilt werden:
- Das prähistorisches Zeitalter
- Die Steinzeit
- Das Mittelalter
- Das Zeitalter des technologischen Fortschritts
Erläutern wir dies nun ausführlicher:
Das prähistorisches Zeitalter – die Periode der ersten Schritte. Die
ersten Versionen der Programme speichern die verschlüsselten Passworte mittels
eines BASE64 Algorithmus in der Registry, was zu dieser Zeit eine
Errungenschaft war. Um solche Passwörter wiederherzustellen benötigte man nur
einen Taschenrechner und ein wenig 'Gehirnschmalz'.
Die Steinzeit – Outlook 9x – die Periode der ersten Experimente. Ein
neuer Verschlüsselungsalgorithmus, der mit einem verschlüsselten Key und einem
einmaligen (record) Identifier arbeitet, wird eingeführt. Zu dieser Zeit
state-of-the-art, Stand der aktuellen Entwicklung. Die verschlüsselten Daten
können ohne Kenntnis des Keys und des Indentifiers nicht wiederhergestellt
werden. Viele der aktuellen eMail Clients verfügen noch nicht einmal heute über
diese Algorithmen! Die ursprüngliche Idee dieser Methode wird jedoch von einer
einzigen großen Schwäche untergraben – der Verschlüsselungs-Key und der (record)
Identifier werden in der Registry zusammen mit den verschlüsselten Daten
gespeichert.
Mittelalter – Outlook 2000 – die ersten Standards. eMail
Zugangspasswörter werden nunmehr innerhalb des geschützten Windows
Speicherbereich abgelegt (einer der nächsten Artikel wird diesen Speicherbereich
näher betrachten). Das verwendete Verfahren dazu lässt sich wie folgt
darstellen:
- Key1 wird zur Entschlüsselung des MasterKey erzeugt. Es werden SHA(Salt)
+ SHA(SID) + SHA(Salt) verwendet, wobei Salt eine globale Konstante und SID
der Benutzer Identifier ist.
- Key2 wird zur Entschlüsselung des MasterKey erzeugt. Es werden
SHA(MKSalt) + SHA(Key1) verwendet, wobei MKSalt vom Typ BinaryData, für
jeden MasterKey einmalig ist und mit ihm zusammen gespeichert wird. Key1
besteht aus einem 20 bit langen Wert, der durch den vorherigen Schritt (1)
erzeugt wurde.
- Der MasterKey wird mit Hilfe eines DES Algorithmus und des Key2
entschlüsselt.
- Der so erhaltene MasterKey ist Bestandteil der Entschlüsselung des
Datenverschlüsselungs-Key. Der Datenverschlüsselungs-Key wird zusammen mit
den Daten abgespeichert und ist für jeden Dateneintrag unterschiedlich. Er
besteht aus 16 Bytes. Die erste Hälfte wird zur Entschlüsselung genutzt, die
zweite Hälfte zur Gültigkeitsprüfung.
- Mit diesem entschlüsselten DatenKey kann man nun die Daten selbst
(Passwörter, Unterlagen und andere sicherheitsrelevante Informationen)
entschlüsseln.
Dies ist eine großartige Idee. Die Hauptvorteile dieses Algorithmus liegen in
folgenden Aspekten:
- Ein einziger MasterKey für alle Daten. Es genügt (in den Schritten 1-3)
den MasterKey einmalig zu entschlüsseln. Dies beschleunigt den
Entschlüsselungprozeß ohne die Gesamtsicherheit der Methode zu schwächen.
- Der Beutzer SID ist Teil der Entschlüsselung des MasterKeys, so daß
jeder Benutzer einen eigenen MasterKey besitzt. Dadurch ist es unmöglich die
Daten ohne Kenntnis des benutzerspezifischen SIDs zu entschlüsseln,
unvorteilhafterweise werden jedoch die SID gemeinsam mit dem MasterKey in
der Registry gespeichert.
- Dieser Algorithmus ist, obwohl schon vor über 10 Jahren entwickelt,
sicher gegenüber den heute populären Attacken mit RainbowTables.
Diese Verschlüsselungsroutine, die nebenbei gesagt bei der Einführung des
Internet Explorers 4 schon benutzt wurde, war ein Durchbruch in der
Datenverschlüsselung. Alle modernen Browser (Opera, Mozilla,
Firefox, und Internet Exlorer bis zur Version 6) nutzen dieses oder ein
ähnliches Passwortverschlüsselungs-Schema. Beachten Sie bitte, daß die stärksten
Outlook Konkurrenten hier in der Entwicklung stehen blieben, im Mittelalter der
Verschlüsselungstechnologie.
Das Zeitalter des technologischen Fortschritts – Outlook 2003 betritt die
Bühne der Welt. Die neue Version des populären eMail Clients benutzt einen neuen
Verschlüsselungsalgorithmus, der eine logische Weiterentwicklung des vorherigen
darstellt. Dieser Algorithmus basiert auf einer wichtigen Grundlage – er ist an
das Benutzerpasswort gebunden. Dieser Artikel soll nicht im Detail die
Funktionen des Algorithmus beschreiben, denn dazu sind schon ein paar Seiten
mehr von Nöten. Statt dessen möchten wir eine Vorstellung von dem vermitteln,
was zur Wiederherstellung von Passwörtern, die mit diesem neuen Algorithmus
verschlüsselt wurden, benötigt wird (Abbildung 3):
- Der Benutzer MasterKey
- Der Benutzer SID
- Das Benutzer Passwort
Abbildung 3. Outlook 2003 Passwörter.
Die Vorteile des neuen DPAPI
Algorithmus sind:
- Der MasterKey wird nunmehr in einem eigenen Verzeichnis auf dem lokalen
Computer gespeichert. Der Zugang zu diesem Verzeichnis ist teilweise
eingeschränkt.
- Der MasterKey hat ein Länge von 512 Bits, was die Möglichkeit der
Methode einer zufälligen Auffindung in der nächsten Zukunft ausschließt.
- Es werden neue Verschlüsselungsalgorithmen genutzt, teilweise SHAHMAC,
die eine variable Anzahl an wiederholten Iterationen (4000 in der
Grundeinstellung) benutzen.
- Der Verschlüsselungsalgorithmus (sowohl für den MasterKey, als auch für
die aktuellen Daten) sind vollständig anpassbar. Einige Einstellungen können
über das Betriebssystem gesetzt werden.
- Der Datenschutz kann über den Zugangslevel des Betriebssystems
realisiert werden.
- Der Algorithmus ist an das User Passwort gebunden.
Die Entschlüsselung der Passwörter für einen angemeldeten Benutzer sind
absolut transparent. Das Passwort wird ein einziges Mal bei der
Benutzeranmeldung an das Betriebssystem abgefragt. Für den Rest sorgt dann das
Betriebssystem. Wenn ein potentieller Hacker keinen physikalischen Zugriff auf
die verschlüsselten Daten hat, wird er nur mit Kenntnis des Benutzer Passworts
in der Lage sein, die Daten zu entschlüsseln. Ohne das Benutzer Passwort hat er
keine Möglichkeit die Daten zu entschlüsseln.
Zusammenfassung
Jede Neuerscheinung des populären eMail Clients hat Microsoft dazu genutzt
mittels neuer und zu diesem Zeitpunkt unbekannter Methoden die Sicherheit für
den Endverbraucher zu erhöhen. Der neuen Outlook 2003
Verschlüsselungsalgorithmus ist ausgesprochen gut.
Sind Sie nicht auch schon gespannt, was die nächste Version, Outlook 2007,
an Neuerungen bereithält? Nehmen wir uns die Freiheit anzunehmen, daß PST
Passwörter die momentan in der Windows Registry und zusätzlich wie in Outlook 9x
verschlüsselt wurden (siehe die Betrachtungen über die 'Steinzeit'), auch so nun
in Outlook 2003 verschlüsselt werden. Dies scheint schlußendlich logisch zu
sein. Es ist schwierig etwas über die zukünftige Entwicklung in der Behandlung
von eMail Zugangspasswörtern zu sagen. Wir werden jedoch die weitere Entwicklung
von neuen, auf Grundlage des Outlook 2003 basierenden Verschlüsselungsverfahren
oder einer neuen Kombination aus geschütztem Speicherbereich und Benutzer
Passwort gespannt verfolgen und Ihnen die Verschlüsselunsgmechanismen der neue
Programmversion in einem der zukünftigen Artikel vorstellen.
Dieser Artikel kann frei vertrieben oder
reproduziert werden, so lange Bezug
auf den Originalartikel durch Hinweis auf jeder Kopie des Artikels genommen
wird.
(c) 2006 Passcape Software. Alle Rechte vorbehalten.
https://www.passcape.com