Zum Inhalt springen
Dialova

IRC-Dokumentation · Fortgeschrittene

SASL bei IRC: ein Konto authentifizieren

SASL authentifiziert ein Konto beim IRC-Dienst, häufig vor Abschluss der Anmeldung. Es verschlüsselt die Verbindung nicht selbst und ist weder mit dem gewünschten Nickname noch mit der Prüfung des Serverzertifikats gleichzusetzen.

Dialova-Team · Überprüft am

TLS, SASL und NickServ: drei unterschiedliche Aufgaben #

MechanismusAufgabe
TLSVerbindung schützen und die Serveridentität anhand des Zertifikats prüfen.
SASLEin Konto mit einem vereinbarten Mechanismus authentifizieren.
NickServDienst zur Konto- oder Nicknameverwaltung mit netzwerkspezifischen Befehlen.

SASL ist etwa für Channels nützlich, die schon beim Beitritt ein authentifiziertes Konto verlangen. Der Kontoname kann vom Nickname abweichen. Ein Server kann zusätzlich ein mit PASS übertragenes Verbindungspasswort verlangen. Verwechsle diese Angaben nicht.

Einen angebotenen Mechanismus auswählen #

Der Server kann in CAP LS 302 sasl=PLAIN,EXTERNAL ankündigen. PLAIN überträgt ein Kontogeheimnis Base64-kodiert; das ist keine Verschlüsselung. EXTERNAL nutzt eine akzeptierte externe Identität, etwa ein dem Konto zugeordnetes Clientzertifikat. Weder ein bestimmter Mechanismus noch Clientzertifikate sind auf allen Netzwerken verfügbar.

  • TLS verwenden sowie Namen und Zertifikatskette des Servers prüfen.
  • sasl mit CAP REQ aktivieren und ACK abwarten.
  • Einen vom Client unterstützten und vom Server angebotenen Mechanismus auswählen.
  • Erfolg, Fehler und Abbruch behandeln, bevor die Anmeldung abgeschlossen wird.

PLAIN-Beispiel mit erfundenen Zugangsdaten #

Nach CAP ACK sasl über TLS: fiktives Beispiel
C: AUTHENTICATE PLAIN
S: AUTHENTICATE +
C: AUTHENTICATE AGFsaWNlAG1vdC1kZS1wYXNzZS1leGVtcGxl
S: :irc.example 903 Alice :SASL authentication successful

Dieser Base64-Text enthält eine leere Autorisierungsidentität, das Konto alice und den Text mot-de-passe-exemple, jeweils durch NUL getrennt. Er erklärt das Format und liefert kein zu übernehmendes Passwort. Der AUTHENTICATE-Eintrag erläutert die Abschnitte von 400 Bytes und den Marker +.

Eine fehlgeschlagene Identitätsprüfung nicht verbergen #

904 bedeutet einen Fehler. Ein Timeout oder das Verschwinden von sasl bedeutet keine erfolgreiche Authentifizierung. Verlangt das Netzwerk SASL, beende den Versuch und zeige einen hilfreichen Grund an, ohne das Geheimnis zu protokollieren. Die in SASL 3.2 beschriebene erneute Authentifizierung nach der Anmeldung hängt vom Server ab.

Erstelle für Dialova in den Kontoeinstellungen einen eigenen IRC-Schlüssel. Er ist für das IRC-Programm bestimmt. Verwende dein Webpasswort nicht in einem Beispielskript oder einer veröffentlichten Datei.

Quellen und Überprüfung

Die Beispiele verwenden erfundene Nicknames und Domains. Ausgenommen sind ausdrücklich dokumentierte Verbindungsadressen. Netzwerkspezifische Erweiterungen und Einstellungen werden im Text gekennzeichnet.