MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Web Crypto API

This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.

Rascunho
Esta página está incompleta.

A Web Crypto API é uma interface que permite um script utilizar primitivas criptográficas para criar aplicações que utilizam criptografia.

Uma característica fundamental desta API é permitir a manipulação e o armazenamento de chaves criptográficas privadas e secretas sem que o código cliente tenha acesso aos bits internos das chaves.

Essa interface permite que scripts acessem as seguintes primitivas:

  • digest, a habilidade de computar um hash de um bloco arbitrário de dados com o objetivo de detectar se houve alguma mudança.
  • mac, a habilidade de computar um código de autenticação de mensagem.
  • sign and verify, a habilidade de assinar digitalmente um documento e de verificar se uma dada assinatura pertence àquele que afirma ser seu signatário.
  • encrypt and decrypt, a habilidade de codificar e decodificar um documento utilizando chaves criptográficas.
  • import and export, a habilidade de importar e exportar chaves criptográficas.
  • key generation, a habilidade de criar uma chave ou um par de chaves criptograficamente seguros, sem o uso de uma chave base, mas utilizando a entropia do sistema local como fonte de aleatoriedade para essa geração.
  • key wrapping and unwrapping, a habilidade de transmitir e receber uma chave de um terceiro, codificada utilizando uma outra chave, sem expor a chave subjacente ao código JavaScript.
  • random, a habilidade de gerar números pseudo-randômicos criptograficamente significantes.

A Web Crypto API não resolve todos os problemas criptográficos que um sítio Web ou aplicação pode encontrar:

  • Ela não dispensa o respeito ao modelo de origem idêntica do navegador, como em casos em que chaves são fornecidas por autoridades centrais utilizadas por diversos sítios Web.
  • Ela é incapaz de interagir com hardwares criptográficos dedicados do cliente, tais como cartões inteligentes (smartcards), tokens USB ou geradores de aleatoriedade.

Warning!

  • O mero uso de criptografia não faz seu sistema seguro. Segurança é um processo que constantemente avalia os riscos em que um sistema pode incorrer dentro do seu contexto de utilização. O contexto e os riscos que podem ocorrer evoluem no tempo.
  • Quando se lida com segurança, todo o sistema precisa ser considerado. No caso da Web Crypto API, os desenvolvedores Web não devem considerar apenas a segurança de seu código ou script, mas também a segurança da conexão que é mantida com o servidor e os dados que o servidor pode manter em texto plano (não criptografado). A segurança geral não será mais forte que a segurança de da parte mais fraca do sistema.

Interfaces

Alguns navegadores implementam uma interface chamada Crypto sem que ela esteja bem definida ou seja criptograficamente substancial. Para evitar confusões, métodos e propriedades desta interface foram retiradas de navegadores que implementaram Web Crypto API, e todos os métodos Web Crypto API estão disponíveis em uma nova interface: SubtleCrypto. A propriedade Crypto.subtle dá acesso a um objeto que a imnplementa.

Casos de uso

A Web Crypto API pode ser utilizada:

  • para verificar que dados não foram alterados por um terceiro. Mesmo se dados foram armazenados sem criptografia, o armazenamento de uma assinatura, gerada a partir de uma senha, permite que pessoas que conhecem a senha identificar se o conteúdo e a assinatura são genuínos.

Specifications

Specification Status Comment
Web Cryptography API Recommendation Initial definition

Etiquetas do documento e colaboradores

 Colaboradores desta página: cristof
 Última atualização por: cristof,