Servidor Couchbase

Autenticação com certificados X.509

A segurança dos dados é um aspecto importante de toda plataforma de dados moderna. Com as arquiteturas baseadas em microsserviços se tornando cada vez mais um padrão comum em todos os aplicativos de alta escala, os mecanismos de autenticação baseados em senhas existentes para autenticação de usuários são difíceis de gerenciar em escala, sem falar no fato de que as senhas são difíceis de lembrar ou podem ser quebradas. Como solução, o Couchbase Server 5.0 introduziu a autenticação por certificado X.509.

Servidor Couchbase 5.5 acrescenta outros aprimoramentos para oferecer suporte a todos os serviços e interfaces, incluindo N1QL, Indexação, XDCR, Pesquisa e até mesmo a interface do usuário da Web do Couchbase e os pontos de extremidade REST.

O que é autenticação baseada em certificado?

Em poucas palavras, "autenticação" é o processo de verificar se um usuário é quem ele diz ser. No mundo da tecnologia, isso pode ser feito de várias maneiras. A autenticação baseada em certificado permite que os usuários acessem um servidor com segurança trocando um certificado digital em vez de um nome de usuário e uma senha. Isso significa que o cliente não está enviando um nome de usuário ou senha para o servidor, o que ajuda na impedindo ataques de phishing, registro de pressionamento de teclas e ataques man-in-the-middle (MITM), entre outros problemas comuns com a autenticação baseada em senha.

Handshake TLS cliente-servidor ilustrando a autenticação mútua

A autenticação baseada em certificado é criada com o uso do padrão de infraestrutura de chave pública (PKI) X.509. A autenticação por certificado oferece maior segurança ao autenticar mutuamente o cliente, usando uma parte confiável (a autoridade de certificação (CA)) e o servidor durante o handshake do TLS. Como o certificado é assinado, só é possível conectar-se ao servidor real e gerenciar centralmente os certificados usando a CA para rotação ou revogação.

Identificação do usuário em um certificado

Se estiver se perguntando como funciona a autenticação do certificado x509, ele precisa ter vários campos, como data de validade, nome CN, nome san etc. Dependendo da sua organização e das políticas, diferentes campos serão usados para codificar o nome/id do usuário. Por exemplo:

Para identificar o usuário, o Couchbase está configurado para analisar um ou mais campos e extrair o usuário. Isso é feito usando um caminho, um prefixo e um delimitador. O caminho descreve em que parte do certificado o nome de usuário deve ser obtido, o prefixo retira o início do nome de usuário e o delimitador termina o nome de usuário. No exemplo acima, para extrair um usuário chamado "bob" que você usaria:

Há um limite máximo de 10 expressões de caminho no Couchbase, sem que duas expressões tenham os mesmos campos de caminho e prefixo, e é obrigatório especificar todos os campos na expressão. O Couchbase tenta cada expressão de caminho no certificado, uma a uma, na ordem especificada, e usa a primeira que consegue extrair com êxito uma cadeia de caracteres de nome de usuário não vazia. Se todas as expressões de caminho não conseguirem extrair a cadeia de caracteres do usuário, as tentativas de autenticação com certificados X.509 também falharão.

Configuração do servidor Couchbase

Em Couchbase Server 5.5, a autenticação baseada em certificado é desativada por padrão, dependendo, em vez disso, de métodos de autenticação baseados em usuário/passagem local ou LDAP/PAM.

Quando "Require Client Certificate" (Exigir certificado do cliente) estiver definido como "Enable" (Ativar), o Couchbase Server aceitará o certificado fornecido e tentará se autenticar com base nele. Se isso falhar, o Couchbase Server voltará a usar os métodos de autenticação baseados em usuário/passagem ou LDAP/PAM.

Quando "ReqSe a opção "User Client Certificate" for definida como "Mandatory", um certificado X.509 deverá ser fornecido, caso contrário, a autenticação falhará.

Essas configurações também podem ser fornecidas por meio da CLI ou da API REST.

Autorização do usuário

Depois que um usuário é "autenticado" (ele é quem diz ser), ele ainda precisa ser "autorizado", que é o processo de determinar o que ele tem permissão para fazer.

No Couchbase Server, isso é feito por Atribuição de uma ou mais funções a cada usuário.

Configuração de clientes para autenticação baseada em certificado

O recurso de autenticação baseado em certificado X.509 é compatível com todos os clientes SDK. No entanto, somente as versões mais recentes oferecem suporte a ele, portanto, verifique as notas de versão de suas versões do SDK.

O X.509 é o padrão oficial para certificados de chave pública e o SSL/TLS se baseia nesse padrão. Em seu cliente, você deve usar um certificado x.509 válido que seja gerado e assinado pela mesma autoridade de certificação (CA) raiz que o servidor.

Os navegadores da Web mais comuns oferecem suporte à autenticação do cliente desde os primeiros dias do TLS. Você pode configurar o certificado do cliente no armazenamento de certificados do navegador e estará pronto para começar!

Todas as ferramentas do Couchbase, como couchbase-cli e o shell N1QL, também estão sendo atualizadas para oferecer suporte à autenticação X.509.

Conclusão

Embora seja um pouco trabalhoso configurar esse tipo de autenticação, ele é muito seguro e mais simples de gerenciar em escala. Por favor download do Couchbase Server 5.5 para experimentar. Aguardamos seus comentários!

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Perry Krug

Perry Krug é arquiteto no escritório do CTO e se concentra em soluções para clientes. Ele está no Couchbase há mais de 8 anos e trabalha com sistemas de cache e banco de dados de alto desempenho há mais de 12 anos.

2 Comentários

  1. Informações úteis. O MA-SSL também é compatível com o servidor Couchbase 4.5?

    1. Perry Krug, Arquiteto Principal, Couchbase junho 20, 2018 em 5:24 am

      Oi Vidhya, obrigado pelo seu comentário!

      O MA-SSL não era compatível antes da versão 5.5, pois não oferecia suporte à _autenticação_ por meio de certificados, apenas à criptografia.

      Espero que isso ajude

      Perry

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.