Archive for: ‘Juli 2007’

Lotus Notes legt Benutzerpasswort offen

18. Juli 2007 Posted by Michael Siegrist

Lotus Notes hat ab Version 5 eine Debug-Funktion, die dazu geeignet ist, beim Wechseln des Benutzerpasswortes eine Datei mit dem neuen Passwort im Klartext zu schreiben. Diese Funktion dient eigentlich dazu, die Bewertung der Passwortgte transparent zu machen. Trgt man in der Konfigurationsdatei

Notes.INI zwei zustzliche Zeilen ein, so protokolliert Notes die Bewertung:

KFM_ShowEntropy=1
Debug_Outfile=c:\testvowe.txt

Beim nchsten Passwortwechsel erstellt Notes die Datei mit folgendem Inhalt:

testvowe_TLANB_2007_07_18@17_07_33.txt
18.07.2007 17:07:36 Lotus Notes client started
18.07.2007 17:07:47 Index update process started
Entering SpellCheckInit
entropy.c SpellCheckAccess Get 13A834 0
Initializing spell checking code
SPELLInitialize succeeded; spell checking DLL loaded
SPELLInitMainDict succeeded
SPELLInitUserDict succeeded
Password Entropy: spell checking code initialized
SpellCheckInit succeeded
Bytes per char: 1
Distribution base multiplier: 6
Resulting entropy limit: 60
[c]alp[c]: 0
[c]alp[t]: 0
[-]alp-s[-]: 18
[t]nalp-s[t]: 18
[t]alp[e]: 18
[t]alp[s]: 18
[t]alp[t]: 18
Testing word: [test]
Searching for [test]
Found [test], worth 12 bits
[2]alp-s[2]: 36
[2]nalp[3]: 42
[2]nalp[4]: 48
Entropy as determined by the state machine: 48

Entropy Limit: 60
Current Entropy: 48
Final Entropy: 48

Final Entropy: 48 bits, 12 chars
entropy.c SpellCheckAccess Put 422EB60 F01069BD

Das Passwort findet sich in den Zeilen nach "Resulting entropy limit: 60" jeweils als Einzelbuchstaben in eckigen Klammern: ct-test234.

Der Debug-Parameter wurde von IBM als Support-Dokument verffentlicht, vor Kurzem jedoch wieder entfernt. Das Dokument ist derzeit noch im Google Cache zu lesen.

Da die Datei Notes.INI auf der Festplatte des Benutzers manipuliert werden muss, bentigt man zunchst einen physischen Zugang zum Rechner. Es gibt jedoch eine Reihe von Mglichkeiten innerhalb von Notes, diese Datei zu manipulieren. Diese lassen sich zugleich als Abwehrmanahme gegen diese Schwachstelle nutzen:

Seit Notes 7 knnen Einstellungen in der NOTES.INI ber Workstation Policies vorgenommen werden. Auf diesem Wege lt sich die Einstellung "KFM_ShowEntropy=0" erzwingen.
In Notes 6 gibt es eine undokumentierte Mglichkeit, die gleiche Einstellung vorzunehmen. Dazu muss das Policy-Dokument um ein Feld mit dem Namen $PrefKFM_ShowEntropy mit dem Wert 0 erweitert werden.
Alternativ kann die Einstellung ber dieses kurze Lotuscript gesetzt werden:

Dim s As New NotesSession
Call s.SetEnvironmentVar("KFM_ShowEntropy","0", true)

Ldt man dieses Skript automatisch beim ffnen der Maildatenbank aller Benutzer, so wird diese Einstellung jedesmal erneut vorgenommen. Siehe dazu auch dieses Support-Dokument von IBM.

Notes schtzt mit dem Passwort den Zertifikatspeicher Notes.ID, den jeder Benutzer zur Authentisierung gegenber Notes nutzt. Diese Datei wird mit dem Benutzer-Passwort ver- beziehungsweise entschlsselt. Notes.ID speichert mit den Notes-Zertifikaten auch die privaten Schlssel des Benutzers sowie gegebenenfalls X.509-Zertifikate. Es ist deshalb eminent wichtig, dass niemand gleichzeitig eine Kopie von Passwort und Notes.ID anfertigt. Sollte jemand die Logdatei und die Notes.ID gleichzeitig in Besitz nehmen, kann er sich jederzeit gegenber Notes ausweisen.

Auch wenn sich der Missbrauch dieser Debug-Funktion durch administrative Eingriffe weitgehend ausschlieen lsst, so ist ein Notes-Administrator mit geeigneten Rechten in der Lage, die Passwrter aller Benutzer auszusphen.

Anders als etwa bei Windows ist es fr den Notes-Administrator nicht mglich, ein vergessenes Passwort zurckzusetzen, da es nur fr die Entschlsselung der Notes.ID bentigt wird. Einige Notes-Kunden haben deshalb aufwndige Lsungen, die Passwort-nderungen zentral ablegen, eine Wiederherstellung von Passwrtern aber nur mittels eines Vieraugenprinzips in Zusammenarbeit von Administration und Revision ermglichen. Diese Sicherheit wird durch die Debug-Funktion unterlaufen. (vowe/c't)