Existem duas formas de autenticação no SIP, uma entre um UA e um servidor
e a outra entre dois UA.
Um servidor pode exigir uma autenticação de UA, antes de permitir que ele
utilize seus serviços. E dois UA necessitam de autenticação para garantir com quem
você está realmente falando. No SIP existem duas formas de autenticação, uma forma
simples baseada no HTTP digest e o outro esquema envolve criptografia e troca de
certificados.
No HTTP digest , o servidor Proxy responde a uma solicitação de
autenticação, cujo solicitante não está autenticado, com uma resposta 407 Proxy
Authentication Required com o desafio. Após enviado o ACK, o UA solicitante
pode reenviar o INVITE com um cabeçalho Proxy-Authorization, geralmente a
mensagem é enviada com o mesmo Call-id, porém com um incremento do CSeq. UA,
redirect e Registrar Server normalmente enviam a mensagem 401 Unauthorized para
qualquer solicitação de INVITE sem um Proxy- Authorization. As credenciais de um
UA geralmente são um nome de usuário e senha encriptados. Entretanto HTTP digest
não garante a segurança, para isso deve ser usado TLS ou S/MIME[1].
O TLS 1.0 é suportado pelo SIP, e se usado como transporte, permite que
dois servidores Proxy se autentiquem mutuamente. No caso de dois servidores se
autenticando o TLS é muito eficiente, porém caso seja necessário a autenticação entre
mais servidores Proxy o S/MIME é mais eficiente.