O Couchbase Server 7.0 Beta já está disponível com alguns aprimoramentos adicionais para reforçar a segurança da plataforma. O Couchbase usa a criptografia TLS em todo o nosso portfólio para garantir que a comunicação na rede seja segura, o que significa que terceiros não podem espionar ou adulterar as solicitações que seu aplicativo faz ao banco de dados ou mesmo os dados que trafegam entre os nós do cluster ou entre clusters. Um novo anúncio importante é a introdução do suporte ao TLS 1.3.
O que é TLS?
Vamos começar com um pouco de história.
Quando se fala em acesso a sites seguros, como comércio eletrônico ou banco on-line, é comum ouvir as pessoas se referirem à criptografia SSL como sendo o sistema subjacente que as mantém seguras. Esse é um erro comum. O Secure Sockets Layer (SSL) era originalmente o sistema usado para fazer isso, mas foi substituído em 1999 com a introdução do Transport Layer Security (TLS) (RFC 2246) como o método que o mundo usa para proteger as comunicações on-line. Com o tempo, isso foi aprimorado com o TLS 1.1 (RFC 4346) em 2006, e novamente seguido pelo padrão TLS 1.2 em 2008 (RFC 5246). Mas e quanto ao HTTPS, ele não se refere ao SSL? Não, o S em HTTPS se refere a HTTP seguro.
No verão de 2018, a especificação final do padrão TLS 1.3 foi acordada como RFC 8446 e é isso que estamos introduzindo agora no Couchbase Server 7.0.
O TLS consiste em um cliente e um servidor. O cliente iniciará a conexão com um handshake, no qual apresentará uma lista de conjuntos de cifras que sabe como manipular. Uma suíte de cifras é um conjunto de algoritmos criptográficos que geralmente inclui um algoritmo de troca de chaves, um algoritmo de criptografia em massa e um algoritmo de código de autenticação de mensagem (MAC). A partir dessa lista, o servidor escolherá um conjunto de funções com as quais também sabe se comunicar e, em seguida, notificará o cliente sobre como proceder.
Por que o Couchbase está adicionando suporte ao TLS 1.3?
A versão 1.2 do TLS continua sendo uma opção segura até hoje, mas, ao adotar os padrões 1.3 mais recentes, estamos nos protegendo contra ameaças que ainda não foram descobertas. Assim como qualquer outro tipo de segurança, com o passar do tempo, os algoritmos e protocolos são aprimorados, tornando-se mais seguros e acrescentando recursos adicionais para dificultar a interceptação ou a adulteração das comunicações.
Por exemplo, o TLS 1.2 mais antigo permite que os administradores configurem as preferências de suíte de cifras para garantir que as cifras mais fortes sejam preferidas às mais fracas, mas a maioria dos administradores não aproveita esse recurso e deixa a ordenação padrão das cifras, o que os torna vulneráveis sem saber. Com a introdução do TLS 1.3, muitas dessas cifras mais antigas nem sequer estão disponíveis como opção, de modo que os conjuntos de cifras padrão disponíveis já estão em um padrão mais alto.
Atualmente, o Google Chrome é o navegador da Web mais popular do mundo, não é mais compatível com conectar-se a sites protegidos usando o protocolo TLS 1.0 ou 1.1. Existem medidas semelhantes que foram implementadas no Firefox, Safari e Edge. E o padrão de segurança PCI DSS, que é obrigatório para empresas que lidam com pagamentos com cartão de crédito, exige pelo menos o TLS 1.1 desde julho de 2018, com forte orientação para usar o TLS 1.2. Muitos setores consideram que o TLS 1.0 e 1.1 não são mais seguros e é por isso que o Couchbase recomenda que os clientes usem o TLS 1.2 ou superior em todos os casos de uso. Com a introdução do TLS 1.3, estamos um passo à frente dos padrões.
Como faço para usar o TLS 1.3 com o Couchbase Server 7.0?
É um processo simples e vamos usar a excelente ferramenta de teste SSL/TLS gratuita da http://testssl.sh para verificar quais protocolos estão em uso.
Você pode obter a cópia mais recente no site deles como um download ou um clone do git. Vamos fazer o download com o repositório do git usando uma máquina Ubuntu 16.
1 2 |
git clone --profundidade 1 https://github.com/drwetter/testssl.sh.git testssl cd testssl/ |
Em seguida, testaremos uma instalação padrão do Couchbase Server 7.0 Beta. Para fins de brevidade, chamaremos a ferramenta Testar SSL sem cabeçalhos e avisos adicionais e mostraremos apenas as informações do protocolo. Executaremos essa ferramenta em um dos nós do Couchbase Server em relação ao protocolo Porta criptografada TLS do serviço de dados.
1 2 3 4 5 6 7 8 9 10 |
./testssl.sh --silencioso --avisos desligado -p localhost:11207 Testes protocolos via soquetes exceto NPN+ALPN SSLv2 não oferecido (OK) SSLv3 não oferecido (OK) TLS 1 oferecido (depreciado) TLS 1.1 oferecido (depreciado) TLS 1.2 oferecido (OK) TLS 1.3 oferecido (OK): final NPN/SPDY não oferecido ALPN/HTTP2 não oferecido |
Como você pode ver, o servidor e o cliente negociaram o protocolo mais forte que ambos entendem e, portanto, a conexão final é estabelecida com o TLS 1.3 sem a necessidade de nenhuma alteração de configuração.
E se quisermos garantir que o cluster não ofereça nem mesmo os protocolos TLS 1.0/1.1 mais antigos e obsoletos? Podemos emitir um comando CLI em todo o cluster para exigir o TLS versão 1.2 como mínimo.
1 2 3 4 |
/optar/couchbase/caixa/couchbase-cli configuração-segurança -c localhost:8091 \ -u Administrador -p senha --definir --tls-min-versão tlsv1.2 SUCESSO: Segurança configurações atualizado |
Em seguida, teste novamente a porta do Data Service.
1 2 3 4 5 6 7 8 9 10 |
./testssl.sh --silencioso --avisos desligado -p localhost:11207 Testes protocolos via soquetes exceto NPN+ALPN SSLv2 não oferecido (OK) SSLv3 não oferecido (OK) TLS 1 não oferecido TLS 1.1 não oferecido TLS 1.2 oferecido (OK) TLS 1.3 oferecido (OK): final NPN/SPDY não oferecido ALPN/HTTP2 não oferecido |
Como você pode ver, apenas o TLS 1.2 e superior foi oferecido como opção.
No momento em que este artigo foi escrito, o TLS 1.3 ainda não havia sido implementado em todos os serviços do Couchbase no Couchbase Server 7.0 Beta, portanto, a opção de definir um mínimo de TLS 1.3 em todo o cluster ainda não está disponível.
O que você pode fazer, no entanto, é definir o TLS mínimo para 1.3 nos serviços em que ele está disponível usando a API REST. Vamos definir a porta criptografada do Data Service para permitir apenas o TLS 1.3.
1 2 |
enrolar -k https://localhost:18091/settings/security/data/tlsMinVersion \ -u Administrador:senha -X POST -d "tlsv1.3" |
Em seguida, execute novamente a ferramenta de teste.
1 2 3 4 5 6 7 8 9 10 11 12 |
./testssl.sh --silencioso --avisos desligado -p localhost:11207 localhost:11207 aparece para suporte TLS 1.3 SOMENTE. Você melhor uso --openssl= Testes protocolos via soquetes exceto NPN+ALPN SSLv2 não oferecido (OK) SSLv3 não oferecido (OK) TLS 1 não oferecido TLS 1.1 não oferecido TLS 1.2 não oferecido TLS 1.3 oferecido (OK): final NPN/SPDY não oferecido ALPN/HTTP2 não oferecido |
Como você pode ver, o TLS 1.3 é agora a única opção oferecida disponível.
Experimente o Couchbase Server 7.0 Beta hoje mesmo e use alguns de nossos novos recursos de segurança!
Disponibilidade e duração do Beta
Documentação
Blogs adicionais
Escopos e coleções para aplicativos modernos de vários locatários: Couchbase 7.0
Transações do Couchbase com N1QL
Obtenha a versão beta do Community Edition e do Enterprise Edition
O Couchbase 7 Beta está disponível para as edições Enterprise e Community. Todos podem fazer o download do software em https://www.couchbase.com/downloads
O suporte ao cliente está disponível por meio de seus canais de suporte regulares, enquanto o suporte à comunidade está disponível nos fóruns do Couchbase em https://www.couchbase.com/forums/