Saltar para o conteúdo
Dialova

Documentação IRC · Intermédio

SASL em IRC: autenticar uma conta

SASL autentica uma conta no serviço IRC, muitas vezes antes de concluir a ligação. Por si só não cifra o transporte e não equivale ao pseudónimo pedido nem à verificação do certificado do servidor.

A equipa do Dialova · Verificado em

TLS, SASL e NickServ: três funções #

MecanismoFunção
TLSProteger a ligação e verificar a identidade do servidor através do certificado.
SASLAutenticar uma conta através de um mecanismo acordado.
NickServServiço de gestão de contas e pseudónimos cujos comandos dependem da rede.

SASL é útil para entrar num canal que exige uma conta identificada logo à chegada. O nome da conta pode ser diferente do pseudónimo. Um servidor também pode ter autenticação de ligação através de PASS: não confundas estes campos.

Escolher um mecanismo anunciado #

O servidor pode anunciar sasl=PLAIN,EXTERNAL em CAP LS 302. PLAIN usa um segredo da conta numa troca codificada em Base64; isso não é cifragem. EXTERNAL baseia-se numa identidade externa aceite, como um certificado de cliente associado à conta. Não assumas que todos os mecanismos ou os certificados de cliente estão disponíveis em qualquer rede.

  • Usar TLS e verificar o nome e a cadeia do certificado do servidor.
  • Ativar sasl com CAP REQ e esperar ACK.
  • Escolher um mecanismo que o cliente compreenda e o servidor ofereça.
  • Tratar o sucesso, a falha e o cancelamento antes de concluir o registo.

Exemplo PLAIN com credenciais fictícias #

Após CAP ACK sasl, numa ligação TLS: exemplo fictício
C: AUTHENTICATE PLAIN
S: AUTHENTICATE +
C: AUTHENTICATE AGFsaWNlAG1vdC1kZS1wYXNzZS1leGVtcGxl
S: :irc.example 903 Alice :SASL authentication successful

Este Base64 representa uma identidade de autorização vazia, a conta alice e o texto mot-de-passe-exemple, separados por NUL. Serve para explicar o formato, não para fornecer um segredo para copiar. A ficha AUTHENTICATE detalha os blocos de 400 bytes e o marcador +.

Não ocultar uma falha de autenticação #

Um 904 indica uma falha; um tempo de espera esgotado ou o desaparecimento de sasl não significam autenticação bem-sucedida. Se a rede exigir SASL, interrompe a tentativa e apresenta uma causa útil sem registar o segredo. A reautenticação após o registo descrita por SASL 3.2 depende do servidor.

Para o Dialova, cria uma chave IRC própria nas definições da conta. Essa chave destina-se ao programa IRC; não uses a palavra-passe web num exemplo de script nem num ficheiro publicado.

Fontes e verificação

Os exemplos usam alcunhas e domínios fictícios, salvo os pontos de ligação expressamente documentados. As extensões e definições específicas de uma rede são assinaladas no texto.