Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A comunicação segura em redes não seguras geralmente envolve três áreas principais de preocupação: privacidade, autenticação e integridade. A API de criptografia da Microsoft (CryptoAPI) é um conjunto de funções, interfaces e ferramentas que os aplicativos podem usar para melhorar a confiança de segurança nessas áreas.
Além da funcionalidade de privacidade, autenticação e integridade, a CryptoAPI também fornece:
- Codificação de mensagens para o formulário ASN.1 ( Abstract Syntax Notation One ).
- Decodificação de mensagens ASN.1.
- Gerenciando coleções de certificados em repositórios de certificados.
- Trabalhando com listas de certificados confiáveis e cadeias de certificados para verificação da validade dos certificados.
Privacidade
Para obter privacidade, os usuários devem impedir que qualquer pessoa, exceto o destinatário pretendido, leia uma mensagem. Melhorar a probabilidade de privacidade geralmente envolve o uso de alguma forma de criptografia. Técnicas criptográficas são usadas para criptografar (embaralhar) mensagens antes que as mensagens sejam armazenadas ou transmitidas.
A criptografia de dados transforma texto não criptografado em texto cifrado. Os dados a serem criptografados podem ser texto ASCII , um arquivo de banco de dados ou qualquer outro dado. Nesta documentação, o termo mensagem é usado para se referir a qualquer parte dos dados, texto não criptografado refere-se a dados que não foram criptografados e texto cifrado refere-se a dados que foram criptografados. Um bom sistema de criptografia de dados dificulta a transformação de dados criptografados de volta em texto não criptografado sem uma chave secreta.
Os dados criptografados podem ser armazenados em mídia não segura ou transmitidos por uma rede não segura. Posteriormente, os dados podem ser descriptografados em sua forma original. Esse processo é mostrado na ilustração a seguir.
Quando os dados são criptografados, a mensagem e uma chave de criptografia são passadas para o algoritmo de criptografia. Para descriptografar os dados, o texto cifrado e uma chave de descriptografia são passados para o algoritmo de descriptografia. A criptografia e a descriptografia podem ser feitas usando uma única chave em um processo chamado criptografia simétrica.
As chaves usadas para descriptografar uma mensagem devem ser mantidas o mais secretas e seguras possível e devem ser transmitidas para outros usuários usando técnicas de aprimoramento de segurança. Isso é discutido mais detalhadamente em Criptografia e Descriptografia de Dados. O desafio main é restringir corretamente o acesso à chave de descriptografia porque qualquer pessoa que a possua poderá descriptografar todas as mensagens que foram criptografadas com sua chave de criptografia correspondente.
Para atender às metas de privacidade declaradas, os desenvolvedores podem usar CryptoAPI para criptografar e assinar dados digitalmente de maneira flexível, ao mesmo tempo em que ajudam a fornecer proteção para os dados confidenciais de chave privada do usuário.
A CryptoAPI fornece as seguintes áreas de funcionalidade para executar as tarefas de criptografia/descriptografia, assinatura de mensagens e armazenamento de chaves:
Autenticação
As comunicações seguras exigem que os indivíduos que se comunicam saibam a identidade daqueles com quem se comunicam. A autenticação é o processo de verificar a identidade de uma pessoa ou entidade.
Por exemplo, no dia a dia, a documentação física, geralmente chamada de credenciais, é usada para verificar a identidade de uma pessoa. Quando um marcar é descontado, a pessoa que desconta o marcar pode pedir para ver uma carteira de motorista. A carteira de motorista é um documento físico que aumenta a confiança do comerciante na identidade da pessoa que está sacando o marcar. Nesse caso, a pessoa que desconta o marcar confia que o estado que emite a licença verificou adequadamente a identidade do titular da licença.
Os passaportes fornecem outro exemplo. Um oficial da alfândega olha para um passaporte e aceita-o como prova de que uma pessoa é quem ele diz ser. O funcionário confia que o governo fez um trabalho adequado de identificar o portador do passaporte antes de emitir o passaporte. Em ambos os exemplos, existe um nível de confiança no emissor do documento físico.
A autenticação também envolve garantir que os dados recebidos sejam os dados que foram enviados. Se a parte A enviar uma mensagem para a festa B, o partido B precisará ser capaz de provar que a mensagem recebida foi a mensagem que a parte A enviou e não uma mensagem que foi substituída por essa mensagem. Para fornecer essa forma de autenticação, a CryptoAPI fornece funções para assinar dados e verificar assinaturas usando pares de chaves públicas/privadas.
Como as comunicações em uma rede de computador ocorrem sem contato físico entre os comunicadores, verificar a identidade geralmente depende de uma credencial que pode ser enviada e recebida por uma rede. Essa credencial deve ser emitida por um emissor confiável de credenciais. Certificados digitais, comumente conhecidos como certificados, são apenas uma credencial. Eles são uma maneira de verificar a identidade e obter autenticação em uma rede de computadores.
Um certificado digital é uma credencial emitida por uma organização ou entidade confiável chamada AC (autoridade de certificação). Essa credencial contém uma chave pública (consulte Pares de Chaves Públicas/Privadas) e dados que identificam a entidade do certificado. Um certificado é emitido por uma AC somente depois que a AC verifica a identidade do titular do certificado e confirma que a chave pública incluída no certificado pertence a essa entidade.
A comunicação entre uma AC e um solicitante de certificado pode ser realizada pelo solicitante carregando fisicamente as informações necessárias, talvez armazenadas em um disquete, para a AC. No entanto, a comunicação geralmente é realizada com uma mensagem assinada enviada por uma rede. A AC geralmente usa um aplicativo confiável chamado servidor de certificado para emitir certificados.
A CryptoAPI dá suporte à autenticação por meio do uso de certificados digitais, com funções de codificação/decodificação de certificado e funções de repositório de certificados .
Para obter mais informações sobre verificação e autenticação de identidade por meio do uso de certificados, consulte Certificados Digitais.
Integridade
Todos os dados enviados por uma mídia não segura podem ser alterados por acidente ou de propósito. No mundo real, as focas são usadas para fornecer e provar a integridade. Uma garrafa de aspirina, por exemplo, pode vir em embalagens à prova de adulteração que tem um selo ininterrupto para provar que nada foi colocado no pacote depois que o pacote deixou o fabricante.
Da mesma maneira, um receptor de dados deve ser capaz de verificar a identidade do remetente dos dados e ter certeza de que os dados recebidos são exatamente os dados que foram enviados; ou seja, que não foi adulterado. O estabelecimento da integridade dos dados recebidos geralmente é feito enviando não apenas os dados originais, mas também uma mensagem de verificação, chamada de hash, sobre esses dados. Os dados e a mensagem de verificação podem ser enviados com uma assinatura digital que comprova a origem de ambos.
A integridade é fornecida no CryptoAPI por meio do uso de Assinaturas Digitais e Hashes de Dados.
A CryptoAPI dá suporte à integridade por meio do uso de funções de mensagem para assinar dados e verificar assinaturas digitais.