Naar de inhoud
Dialova

IRC-documentatie · Gevorderd

SASL op IRC: een account authenticeren

SASL authenticeert een account bij IRC, vaak vóór afronding van de verbinding. Het versleutelt niet zelfstandig het transport en is iets anders dan de gevraagde nickname of servercertificaatcontrole.

Dialova-team · Gecontroleerd op

TLS, SASL en NickServ: drie rollen #

MechanismeRol
TLSDe verbinding beveiligen en de serveridentiteit via het certificaat controleren.
SASLEen account via een overeengekomen mechanisme authenticeren.
NickServAccount- en nicknamedienst met netwerkspecifieke opdrachten.

SASL helpt om een chatroom te openen die meteen een geïdentificeerd account vereist. Accountnaam en nickname kunnen verschillen. Een server kan ook PASS-authenticatie hebben. Verwar die velden niet.

Een aangeboden mechanisme kiezen #

De server kan sasl=PLAIN,EXTERNAL aankondigen in CAP LS 302. PLAIN gebruikt een geheim in Base64, geen versleuteling. EXTERNAL steunt op een geaccepteerde externe identiteit, bijvoorbeeld een gekoppeld clientcertificaat. Veronderstel niet dat ieder netwerk deze mechanismen of certificaten biedt.

  • Gebruik TLS en controleer naam en certificaatketen van de server.
  • Schakel sasl in met CAP REQ en wacht op ACK.
  • Kies een begrepen mechanisme dat de server aanbiedt.
  • Verwerk succes, fout of afbreken voordat je registratie afrondt.

PLAIN-voorbeeld met fictieve gegevens #

Na CAP ACK sasl op een TLS-verbinding: fictief voorbeeld
C: AUTHENTICATE PLAIN
S: AUTHENTICATE +
C: AUTHENTICATE AGFsaWNlAG1vdC1kZS1wYXNzZS1leGVtcGxl
S: :irc.example 903 Alice :SASL authentication successful

Deze Base64 bevat een lege autorisatie-identiteit, account alice en de tekst mot-de-passe-exemple, door NUL gescheiden. Het verklaart het formaat, geen te kopiëren geheim. AUTHENTICATE legt stukken van 400 bytes en + uit.

Een identiteitsfout niet verbergen #

904 betekent mislukt. Een timeout of verdwenen sasl betekent geen succesvolle authenticatie. Vereist het netwerk SASL, stop dan en toon een bruikbare fout zonder het geheim te loggen. Herauthenticatie na registratie volgens SASL 3.2 hangt van de server af.

Maak op Dialova een aparte IRC-sleutel in de accountinstellingen. Die is voor het IRC-programma. Zet je webwachtwoord niet in een scriptvoorbeeld of openbaar bestand.

Bronnen en controle

De voorbeelden gebruiken fictieve gebruikersnamen en domeinen, behalve waar verbindingspunten uitdrukkelijk zijn gedocumenteerd. Uitbreidingen en netwerkspecifieke instellingen worden in de tekst aangegeven.