MASTG-KNOW-0068: Bibliotecas de Terceiros para Criptografia
Existem diversas bibliotecas de terceiros disponíveis, tais como:
- CJOSE: Com o crescimento do JWE e a falta de suporte público para AES GCM, outras bibliotecas surgiram, como a CJOSE. A CJOSE ainda requer um encapsulamento de nível superior, pois fornece apenas uma implementação em C/C++.
- CryptoSwift: Uma biblioteca em Swift, que pode ser encontrada no GitHub. A biblioteca suporta diversas funções de hash, funções MAC, funções CRC, cifras simétricas e funções de derivação de chaves baseadas em senha. Não é um wrapper, mas uma versão totalmente autoimplementada de cada uma das cifras. É importante verificar a implementação efetiva de uma função.
- OpenSSL: OpenSSL é a biblioteca de toolkit usada para TLS, escrita em C. A maioria de suas funções criptográficas pode ser usada para realizar as diversas ações criptográficas necessárias, como criar (H)MACs, assinaturas, cifras simétricas e assimétricas, hashing, etc. Existem diversos wrappers, como OpenSSL e MIHCrypto.
- LibSodium: Sodium é uma biblioteca de software moderna e fácil de usar para criptografia, descriptografia, assinaturas, hashing de senhas e muito mais. É um fork portátil, cross-compilável, instalável e empacotável do NaCl, com uma API compatível e uma API estendida para melhorar ainda mais a usabilidade. Consulte a documentação do LibSodium para mais detalhes. Existem algumas bibliotecas wrapper, como Swift-sodium, NAChloride e libsodium-ios.
- Tink: Uma nova biblioteca de criptografia do Google. O Google explica sua motivação por trás da biblioteca em seu blog de segurança. Os fontes podem ser encontrados no repositório do Tink no GitHub.
- Themis: uma biblioteca de criptografia para armazenamento e mensagens para Swift, Obj-C, Android/Java, С++, JS, Python, Ruby, PHP, Go. Themis usa o motor LibreSSL/OpenSSL libcrypto como dependência. Suporta Objective-C e Swift para geração de chaves, mensagens seguras (ex.: criptografia e assinatura de payload), armazenamento seguro e configuração de sessão segura. Consulte sua wiki para mais detalhes.
- Outras: Existem muitas outras bibliotecas, como CocoaSecurity, Objective-C-RSA e aerogear-ios-crypto. Algumas delas não são mais mantidas e podem nunca ter passado por revisão de segurança. Como sempre, é recomendado buscar bibliotecas suportadas e mantidas.
- DIY (Faça Você Mesmo): Um número crescente de desenvolvedores tem criado sua própria implementação de uma cifra ou função criptográfica. Essa prática é altamente desencorajada e deve ser rigorosamente avaliada por um especialista em criptografia, se for utilizada.