MASTG-KNOW-0066: Kit de Criptografia (CryptoKit)

O Apple CryptoKit foi lançado com o iOS 13 e é construído sobre a biblioteca criptográfica nativa da Apple, corecrypto, que é validada pelo FIPS 140-2. O framework Swift fornece uma interface de API fortemente tipada, possui gerenciamento eficiente de memória, conformidade com equatable e suporte a genéricos. O CryptoKit contém algoritmos seguros para hashing, criptografia de chave simétrica e criptografia de chave pública. O framework também pode utilizar o gerenciador de chaves baseado em hardware do Secure Enclave.

O Apple CryptoKit contém os seguintes algoritmos:

Hashes:

  • MD5 (Módulo Inseguro)
  • SHA1 (Módulo Inseguro)
  • Digest SHA-2 de 256 bits
  • Digest SHA-2 de 384 bits
  • Digest SHA-2 de 512 bits

Chave Simétrica:

  • Códigos de Autenticação de Mensagem (HMAC)
  • Criptografia Autenticada
    • AES-GCM
    • ChaCha20-Poly1305

Chave Pública:

  • Acordo de Chaves
    • Curve25519
    • NIST P-256
    • NIST P-384
    • NIST P-512

Exemplos:

Gerando e liberando uma chave simétrica:

let encryptionKey = SymmetricKey(size: .bits256)

Calculando um digest SHA-2 de 512 bits:

let rawString = "OWASP MTSG"
let rawData = Data(rawString.utf8)
let hash = SHA512.hash(data: rawData) // Calcula o digest
let textHash = String(describing: hash)
print(textHash) // Imprime o texto do hash

Para mais informações sobre o Apple CryptoKit, visite os seguintes recursos: