Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Modelo de Criptografia do .NET Framework

 

O framework .NET oferece implementações de muitos algoritmos padronizados de criptografia. Esses algoritmos são fáceis de usar e têm as propriedades possíveis padrão mais seguras. Além disso, o modelo de criptografia do .NET Framework de herança de objetos, design de fluxo e configuração é extremamente extensível.

O sistema de segurança do .NET Framework implementa um padrão extensível de herança da classe derivada. A hierarquia é da seguinte maneira:

Usando esse padrão de classes derivadas, é fácil adicionar um novo algoritmo ou uma nova implementação de um algoritmo existente. Por exemplo, para criar um novo algoritmo de chave pública, você herdaria a AsymmetricAlgorithm classe. Para criar uma nova implementação de um algoritmo específico, você criaria uma classe derivada não abstrata de algoritmo.

Como um exemplo das implementações diferentes disponíveis para um algoritmo, considere algoritmos simétricos. É a base para todos os algoritmos simétricos SymmetricAlgorithm, que são herdadas pelos seguintes algoritmos:

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Aes é herdada por duas classes: AesCryptoServiceProvider e AesManaged. O AesCryptoServiceProvider classe é um wrapper para a implementação do Windows Cryptography API (CAPI) do Aes, enquanto o AesManaged classe é escrita inteiramente em código gerenciado. Também há um terceiro tipo de implementação, geração CNG (Cryptography Next), além de gerenciado e implementações de CAPI. Um exemplo de um algoritmo CNG é ECDiffieHellmanCng. Algoritmos da CNG estão disponíveis no Windows Vista e posterior.

Você pode escolher qual implementação é melhor para você. As implementações gerenciadas estão disponíveis em todas as plataformas que dão suporte a .NET Framework. As implementações de CAPI estão disponíveis em sistemas operacionais mais antigos e não estão sendo desenvolvidas. A CNG é a implementação mais recente onde novos desenvolvimentos ocorrerá. No entanto, as implementações gerenciadas não são certificadas pelo FIPS Federal Information Processing Standards () e podem ser mais lentas do que as classes de wrapper.

O common language runtime usa um design orientado por fluxo para implementar algoritmos simétricos e algoritmos de hash. O núcleo desse design é o CryptoStream classe, que deriva de Stream classe. Objetos criptográficos baseados em fluxo de suportam a uma interface padrão (CryptoStream) para tratar a parte da transferência de dados do objeto. Como todos os objetos são criados em uma interface padrão, é possível encadear vários objetos (como um objeto de hash seguido por um objeto de criptografia) e você pode executar várias operações nos dados sem a necessidade de qualquer armazenamento intermediário para ele. O modelo de streaming também permite que você crie objetos de objetos menores. Por exemplo, um algoritmo de criptografia e hash combinado pode ser exibido como um objeto de fluxo único, embora esse objeto pode ser criado a partir de um conjunto de objetos de fluxo.

Configuração de criptografia permite resolver uma implementação específica de um algoritmo para um nome de algoritmo, permitindo a extensibilidade das classes de criptografia do .NET Framework. Você pode adicionar sua própria implementação de hardware ou software de um algoritmo e a implementação do mapa para o nome do algoritmo de sua escolha. Se um algoritmo não é especificado no arquivo de configuração, as configurações padrão são usadas. Para obter mais informações sobre a configuração de criptografia, consulte Configurar Classes de criptografia.

Você pode selecionar um algoritmo por diferentes motivos: por exemplo, para a integridade de dados e à privacidade dos dados ou para gerar uma chave. Algoritmos de hash simétrica destinam-se para proteger dados por motivos de integridade (proteção de alteração) ou motivos de privacidade (proteção contra a exibição). Algoritmos de hash são usados principalmente para a integridade dos dados.

Aqui está uma lista dos algoritmos recomendados pelo aplicativo:

Mostrar: