Segurança no mundo Apple: tudo sobre o Keychain

Keychain Locked

Todos os dias lidamos com inúmeros aplicativos, serviços e sistemas, o que nos obriga a memorizar um grande número de senhas. Para a criação dessas senhas, o OS X dispõe de um utilitário chamado Assistente de Senha, visto em outro artigo da série Segurança no mundo Apple. Hoje abordaremos a Keychain, uma solução nativa e sofisticada que armazena de forma segura informações críticas e integra com as etapas de autenticação do dia-a-dia.

Publicidade

Keychain LockedLançado desde a versão 8.6 do Mac OS (de 26 de julho de 1997), o Keychain é um sistema de gerenciamento de senhas e informações críticas completo e seguro. Embora muitas pessoas desconheçam sobre o seu funcionamento ou existência, ele tem sido parte importante e transparente no nosso dia-a-dia.

O Keychain armazena todas as informações em um arquivo de banco de dados criptografado e pode ser gerenciado pelo utilitário Keychain Access – em português conhecido como Acesso às Chaves, localizado dentro da pasta /Applications/Utilities/ ou pelo comando /usr/bin/security através do Terminal.

Por padrão, o Keychain trabalha com um banco de dados distinto para cada usuário do sistema, além de um banco de dados comum a todos os usuários e outro de uso exclusivo do sistema operacional. Ao abrir o utilitário Keychain Access, você encontrará os seguintes bancos:

  • Login — distinto para cada usuário do sistema, normalmente é utilizado para armazenar informações particulares e relacionadas com o usuário proprietário, fica armazenado na pasta Home do usuário: ~/Library/Keychains/login.keychain.
  • System — um banco de dados comum a todos os usuários do sistema e normalmente de uso do sistema operacional, armazena informações relacionadas a serviços de rede (Wi-Fi, VPN, modem) e certificados digitais instalados no sistema pelo usuário. Este banco fica armazenado na pasta /Library/Keychains/System.keychain.
  • System Roots — é composto por vários bancos de dados armazenados na pasta /System/Library/Keychains/ que guardam informações relacionadas a certificados digitais confiáveis e de uso do sistema operacional.

Um banco de dados Keychain pode conter vários tipos de dados armazenados, como senhas (de websites, FTP, SSH, VNC, email, iChat, iCloud, compartilhamentos de rede, conexões de rede sem fio, imagens de disco criptografados e qualquer outro recurso que tenha a opção de salvar a senha no sistema), além de certificados digitais, chaves privadas e notas seguras.

Aplicativos nativos (Finder, Safari, Mail, etc.) fazem uso do Keychain do usuário para armazenar e consultar senhas. Por padrão, o Safari vem desabilitado para armazenar senhas de sites visitados, entretanto você pode habilitar esta função através do menu Safari » Preferences » AutoFill, e marcar a opção nome de usuários e senhas. A partir daí, toda vez que você preencher um formulário de login ele perguntará se você gostaria de armazenar aquela informação, da mesma forma que, ao visitar o site novamente, ele automaticamente preencherá os dados de login recuperados do banco Login Keychain.

Publicidade

Alguns assuntos adicionais relacionados à Keychain:

  • Faça backup com periodicidade do banco de dados do seu Keychain e/ou sincronize-o com um serviço de armazenamento de dados na nuvem (como Dropbox).
  • Você pode criar um novo arquivo Keychain para guardar apenas senhas e notas seguras e armazená-lo na pasta do Dropbox, desta forma ele ficará sincronizado com todos os seus dispositivos.
  • Por padrão, a senha do Login Keychain é sincronizada com a senha do usuário do sistema, e alterações forçadas da senha do usuário obrigarão que seja informada a senha antiga do usuário para atualização. Isto garante a integridade e confidencialidade das informações armazenadas — opcionalmente, você pode ter uma senha distinta para o seu usuário e outra para o banco Keychain.
  • Mantenha o cadeado do seu banco Keychain sempre travado — isto obriga que todas as consultas de senhas e alterações sejam autenticadas. Para facilitar esse controle, no menu Keychain Access » Preferences você pode optar por manter um ícone na barra de menus do OS X ou mantê-lo sempre bloqueado ou pela linha de comando, digitando security lock-keychain no Terminal.
  • Certificados digitais que serão comum a todos os usuários do sistema precisam ser armazenados no banco System e certificados de que o sistema que o sistema confiará deverão ser armazenados no banco System Roots — para alterar esses bancos, você precisará de privilégios administrativos.
  • O Keychain pode armazenar certificados digitais do tipo A1 emitidos no Brasil (Serasa, Certisign, Serpro…) e o uso do certificado é automático quando se utiliza o Safari como navegador.
  • O Keychain também trabalha com certificados digitais do tipo A3 que são gravados em cartões (smart cards) ou tokens, é por ele que fazemos acesso às informações armazenadas no dispositivo — com exceção ao Lion, que não dá mais suporte nativo aos leitores. Para utilizar os leitores, tokens e cartões utilizados no Brasil você vai precisar de um middleware que pode ser instalado através do projeto OpenSC (link para download aqui). Ele é beta e funciona perfeitamente no Snow Leopard e Lion, e para removê-lo basta digitar o comando opensc-uninstall através do Terminal. Outra solução para usuários do Lion é o próprio projeto de código aberto chamado SmartCard Services, utilizado anteriomente pela Apple. Sobre este assunto, tudo indica que a Apple poderá trazer grandes novidades no lançamento do Mountain Lion, confira neste link.

O Keychain é uma excelente solução nativa e gratuita, e, por se tratar de um recurso do sistema operacional integrado com várias funcionalidades (uma delas, o armazenamento de senhas), não pode ser comparado com soluções de terceiros como por exemplo o 1Password. A própria desenvolvedora deste, a AgileBits, utilizou recursos do Keychain no início do produto.

O armazenamento de senhas pode parecer algo inseguro, entretanto se feito de forma correta e utilizando uma ferramenta confiável, facilita o nosso dia-a-dia e cria uma camada de proteção a mais contra um atacante. E aí? Alguém usa todas as funcionalidades do Keychain? Comentem! 😉

Posts relacionados

Comentários

Carregando os comentários…