Comprei uma yubikey nova, e agora?

Nesse post vou descrever os passos que tenho que percorrer para preparar uma nova Yubikey para uso diário. Recentemente comprei uma nova chave e chegou a hora de substituir minha chave atual por essa nova. A chave nova é uma Yubikey 5 NFC, e resolvi trocar por alguns motivos: Possui NFC, ou seja, posso usar no celular sem precisar de nenhum tipo de adaptador. Atualmente carrego comigo um adaptador USB-A > USB-C; É a primeira chave da yubico que possui NFC e suporte a chaves GPG de 4096bits; Apesar da chave ser fisicamente um pouco maior ela já possui um furo que permite ser colocada diretamente na argola do meu molho chaves.

Usando vim como interpretador de código

Pra quem traballha com programação, escrever código pode representar grande parte das atividades do dia-a-dia. À medida que o tempo vai passando vamos escrevendo código e nem mais percebendo o que é necessário para rodar esss códigos. Mas quando paramos para pensar nisso, independente da linguagem que usamos, tudo acontece meio que da mesma forma: O código que escrevemos deve ser interpretado por “alguém”, seja esse “alguém” um outro código (um interpretador, por exemplo) ou um hardware (um processador, por exemplo).

Renovando a data de expiração de suas chaves GPG

Escolhi uma data de expiração de 6 meses para minhas chaves GPG. Penso nisso como uma forma de “prova de vida”, onde a comprovação que eu ainda mantenho o controle da chave privada é o fato de eu poder renovar a data de expiração de cada uma das chaves GPG. Eis que chegou hora de fazer a primeira renovação (desde que adotei essa ideia de expirar as chaves de tempos em tempos).

Criando sua keyring GPG de forma fácil

Nesse texto preparei um forma fácil e semi-automatizada para que você possa criar sua keyring GPG. Em vez de criar tudo usando o prompt interavido do GnuPG vamos usar uma funcionalidade que ele tem e que permite que chaves sejam criadas a partir de arquivos de configuração. É o que ele mesmo chama de Unattended GPG key generation. Estrutura da keyring O que vamos fazer é criar 3 chaves, um para cada finalidade:

Múltiplos certificados SSL com Let's Encrypt e traefik

O que o let’s encrypt trouxe foi a possibilidade de gerar certificados de forma simples, gratuita e automatizada. Gerar um certificado é tão simples quanto rodar um comando. O única coisa que você precisa ter em me te é como comprovar que você controla o domínio para o qual você está gerando um certificado. Challenge http-01 Um dos challenges mais comuns é usar um server http para comprovar que você controla o domínio.

Como armazeno de forma segura meus dados sensíveis de acessos a contas online

Esse texto é uma descrição geral do modelo de segurança que escolhi usar depois de pesquisar sobre como outras pessoas guardam dados sensíveis de forma segura. A motivação principal, além de poder ter os dados guardados de forma segura (e aprender muito sobre esse assunto), foi poder ter o total controle sobre eles. Se você usa um password manager online por exemplo, o mínimo que você deveria fazer seria manter esses dados encriptados.

Uso da Yubikey no Android

O último ponto que faltava na minha migração para um novo password manager era poder acessar meus dados usando o celular. Aqui vou mostrar cada um dos apps que uso para poder ter o celular como uma ferramenta completa para poder usar meu smartcard. Suporte à yubikey Os smartcards da Yubico já são naturalmente suportados pelo Android. Os smartcards que possuem NFC têm suporte ainda melhor, pois basta aproximar o telefone do smartcard para que eles se comuniquem.

O que acontece se minha Yubikey parar de funcionar?

Continuando minha caminhada para montar um modelo de segurança onde consiga guardar meus usuários/senhas de forma segura, surge um ponto bem importante: O que acontece se meu smartcard parar de funcionar de repente? Vou explicar aqui os procedimentos que seriam necessários para conseguir preparar uma nova Yubikey e voltar ao dia a dia normal. Cópia da chave que está no smartcard Estou assumindo aqui que existe uma cópia da chave que está no smartcard, ok?

Multi Factor Authentication na linha de comando

Acredito que a forma mais comum de MFA atualmente é o uso de “Authenticator Apps”. Usei por muito tempo o Google Authenticator até que percebi que, se perdesse meu celular, estaria preso pra fora de todas as contas onde tinha MFA configurado. Quando percebi isso, descobri o Authy, que faz backup dos seus MFAs pra você e pode sincronizar entre múltiplos dispositivos. Isso já é muito bom, pois você não fica totalmente dependente do celular.

So long LastPass and thank you for all the fish

Desde que pude guardar minha chave GPG de forma segura em um token físico, passei a pensar em como voltar a ter controle sobre minhas informações já que agora posso guardá-las encriptadas com essa chave. Os primeiros dados que comecei a encriptar foram documentos sensíveis que guardo de backup, como comprovantes, documentos pessoais e afins. O segundo passo foi fazer algo em relação ao password manager. Uso o LastPass já há muito tempo e sempre funcionou muito bem, cumpriu seu propósito.

Modelos de segurança para uso de smartcards

Desde que descobri a existência de smartcards que podem ser usados como segundo fator de autenticação, fiquei curioso em como seria usar um dispositivo desses no dia a dia. Minha curiosidade era mais no sentido de quanta “burocracia” um dispositivo desse poderia inserir no meu dia de trabalho. Na época eu já queria um desses pelo simples fato de ser um token físico, mas pensando bem usar o celular com algum App de TOTP seria bem semelhante, talvez até “melhor” já que o App do celular pode exigir uma senha antes de abrir e no caso do token físico, não tem senha nenhuma, basta inserir na porta USB e tocar com o dedo.

Compilando polybar no Arch Linux

Polybar é uma (de várias) possíveis implementações de statusbar para gerenciadores de janelas para o projeto X.org (ou apenas X, xorg-server, Xorg). Window manager (ou apenas WM) é basicamente a parte responsável por “falar” com o xorg-server e desenhar as janelas dos programas que você abre. O WM faz também muitas outras coisas, mas para o que vamos ver aqui saber isso basta. Todas as opções de interface gráfica que hoje existem para o Xorg possuem um Window Manager.

SSH de Guerrilha

Boa parte do meu dia envolve usar ssh. Às vezes como comando direto para fazer acesso remoto a algum servidor e às vezes como ferramenta para poder executar alguma outra tarefa. Nesse texto vamos ver os usos mais comuns que faço desse comando e algumas configurações que fui acumulando ao longo do tempo. SSH Config O primeiro ponto que temos que ter bastante atenção é o arquivo de configuração. Muita gente acha que apenas o ssh-server possui um config, mas isso não é verdade.

Mantendo variáveis de ambiente encriptadas

Desde que me interessei mais sobre encriptação, chaves GPG e afins comecei a tentar montar um workflow que fosse ao mesmo tempo agradável e seguro (para os padrões que escolhi). Depois de ter começado a usar um smartcard para armazenar minhas chaves ([1] e [2]) comecei a usá-lo em vários pontos do meu dia a dia que achei que deveriam/poderiam ser mais seguros. Variáveis de ambiente Variáveis de ambiente, ou apenas ENVs são muito comuns no dia a dia de quem lida com desenvolvimento.

Usando seu keyring GPG para guardar sua chave SSH

Por muito tempo tive minha chave privada SSH gravada dentro da minha ${HOME}, geralmente em .ssh/id_rsa. Algum tempo atrás descobri que o GnuPG permite criar chaves com “propriedades” específicas, por exemplo, Encriptação, Assinatura, etc. O que vamos usar aqui é a propriedade de Autenticação. Para criar essa chave, vamos adicionar uma nova subchave à nossa keyring GPG. Estou assumindo aqui que você já possui uma keyring e que já tem uma chave GPG criada.

Curl de Guerrilha

Vou escrever aqui algumas das opções que mais uso no dia a dia quando preciso do comando curl. Muitas vezes o curl é usado apenas para “baixar arquivos” e pelo fato dele usar por padrão o stdout muitas vezes as pessoas preferem até mesmo usar o wget, que por padrão salva o output em um arquivo. O curl é muito mais do que um “baixador de arquivos” e diria até que o propósito principal dele nem é esse, apesar dele conseguir fazer isso também.

(Arch) Linux Com Full Disk Encryption

Atualmente é tão simples e transparente ter o disco encriptado que não faz sentido não ter. Se você pensar na possível perda de performance (pelo fato do seu disco estar sendo encriptado/decriptado em tempo de execução) vai perceber que, a não ser que você faça um uso muito específico do seu PC, essa “perda de performance” não fará nenhuma diferença. Sempre que me perguntam se a performance de um disco encriptado é boa ou ruim, eu respondo que não sei pois nunca tive um laptop onde o disco não estava encriptado.

Preparando uma Yubikey 4 Nano para uso diário

Até saber da existência de smartcards, eu carregava minha chave RSA no meu computador pessoal e tinha uma chave para cada computador que eu usava, basicamene uma chave no trabalho e uma chave em casa. Meu primeiro interesse em smartcards nem foi para usar como storage para chaves criptográficas e sim para fazer Multi-Factor Autentication. Nesse caso o primeiro fator é algo que eu “sei” (minha senha) e o segundo fator é algo que eu “tenho”, ou seja, o smartcard.