Tripcode
Tripcodes (jap. トリップ, Torippu) sind eine Authentifizierungsmethode, die keine Registrierung benötigt. Zumeist werden sie auf Textboards wie 2channel oder Imageboards verwendet.
Ein Tripcode wird vom Server aus einem Passwort (Trip Key) mittels einer kryptologischen Hash-Funktion erzeugt. Das Passwort wird für gewöhnlich zusammen mit dem Benutzernamen in ein gemeinsames Eingabefeld eingetragen. Aus einer Eingabe im üblichen 2channel-Format username#tripkey
erscheint dann im Beitrag username!3GqYIJ3Obs
. Das #
dient als Trennzeichen zwischen Benutzername und Passwort und !
zwischen Benutzername und Tripcode. In einigen Boards wird statt letzterem ein ◆
dargestellt. Um eine Fälschung zu erschweren, werden Benutzername und Tripcode häufig unterschiedlich formatiert dargestellt, z. B. der Benutzername in Fettdruck.
Personen, die in einem Board lesen, können die Beiträge, die von demselben Benutzer stammen, durch Vergleichen der Tripcodes erkennen. Da es unwahrscheinlich ist, dass zwei Personen mit demselben Benutzernamen dasselbe Passwort benutzen, können sie anhand der Tripcodes auseinandergehalten werden.
Ein Vorteil von Tripcodes ist, dass weder die Benutzernamen noch die Passwörter in irgendeiner Art auf dem Server gespeichert werden müssen. Da die meisten Boards denselben Tripcode-Algorithmus verwenden, können Benutzer sich auch über Websites hinweg authentifizieren.
Beispielimplementierung
BearbeitenDer Code zur Erzeugung von Tripcodes im klassischen 2channel-Stil in Perl unter Verwendung von DES als Hashalgorithmus – der Schlüssel wird vom Klartext abgeleitet – ist folgender:
$salt = substr($tripkey.'H.', 1, 2); # tripkey ist Shift-JIS kodiert
$salt =~ s/[^\.-z]/\./go; # ersetze alle Zeichen kleiner als "." und größer als "z" durch "."
$salt =~ tr/:;<=>?@[\\]^_`/A-Ga-f/; # ersetze alle Zeichen aus ":;<=>?@[\]^_`" durch ihr Äquivalent aus "ABCDEFGabcdef"
$trip = crypt($tripkey, $salt); # Unix-crypt(3)-Funktion
$trip = substr($trip, -10); # entferne Salt am Anfang
print '◆'.$trip;
Secure Tripcodes
BearbeitenTripcodes sind keine kryptografisch sichere Authentifizierungsmethode, da der Schlüsselraum bei Tripcodes im 2channel-Stil aufgrund der Verwendung von DES nur 254 Bits groß ist. Somit können relativ schnell Preimage-Angriffe z. B. durch Rainbow Tables gefahren werden, um einen Trip Key zu finden, der einen bestimmten, gewünschten Tripcode erzeugt. Daher verwenden einige Imageboards Secure Tripcodes (sichere Tripcodes) gemeinsam mit den normalen Tripcodes. Secure Tripcodes sind Salted Hashes, die einen zweiten Trip Key als Eingabe verlangen – häufig in der Form username#tripkey#securetripkey
– und einen auf dem Server gespeicherten Salt (Zufallswert) verwenden. Da dieser Salt geheim und eindeutig für jede Website ist, werden genannte Angriffe erschwert.
Ein Nachteil von Secure Tripcodes ist, dass sie Board-spezisch sind. Sofern zwei Boards nicht denselben Salt, Tripcode-Algorithmus und Darstellung verwenden, kann eine Person nicht nachweisen, dass sie auf zwei unterschiedlichen Boards dieselbe Person ist. Da die meisten Benutzer davon ausgehen, dass sich nur wenige die Mühe machen, Trip Keys von anderen herauszufinden, ziehen sie die herkömmlichen Tripcodes vor.