Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Modelo de Criptografia do .NET Framework
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

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 tem as propriedades padrão mais seguras possível. 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 é a seguinte:

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 aAsymmetricAlgorithmclasse. Para criar uma nova implementação de um algoritmo específico, você criaria uma classe derivada não abstratas 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étricosSymmetricAlgorithmque são herdadas pelos seguintes algoritmos:

  1. [ T:System.Security.Cryptography.Aes ]

  2. [ T:System.Security.Cryptography.DES ]

  3. [ T:System.Security.Cryptography.RC2 ]

  4. [ T:System.Security.Cryptography.Rijndael ]

  5. [ T:System.Security.Cryptography.TripleDES ]

Aes é herdada por duas classes:AesCryptoServiceProvidereAesManaged. OAesCryptoServiceProviderclasse é um wrapper para a implementação do Windows Cryptography API (CAPI) do Aes, enquanto oAesManagedclasse é inteiramente escrita em código gerenciado. Há também um terceiro tipo de implementação, CNG Cryptography Next Generation (), além de gerenciado e implementações de CAPI. Um exemplo de um algoritmo CNG éECDiffieHellmanCng. Algoritmos 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 oferecem suporte o .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 padrões () 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 é oCryptoStreamclasse, que deriva deStreamclasse. Suportam a objetos criptográficos baseados em fluxo de uma interface de padrão único (CryptoStream) para tratar a parte da transferência de dados do objeto. Porque todos os objetos são criados em uma interface padrão, você pode 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 desde 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 mapear a implementação 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, consulteConfigurar 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:

  • Privacidade de dados:

    • [ T:System.Security.Cryptography.Aes ]

  • Integridade de dados:

    • [ T:System.Security.Cryptography.HMACSHA256 ]

    • [ T:System.Security.Cryptography.HMACSHA512 ]

  • Assinatura digital:

    • [ T:System.Security.Cryptography.ECDsa ]

    • [ T:System.Security.Cryptography.RSA ]

  • Troca de chaves:

    • [ T:System.Security.Cryptography.ECDiffieHellman ]

    • [ T:System.Security.Cryptography.RSA ]

  • Geração de números aleatórios:

    • [ T:System.Security.Cryptography.RNGCryptoServiceProvider ]

  • Gerando uma chave de uma senha:

    • [ T:System.Security.Cryptography.Rfc2898DeriveBytes ]

Mostrar:
© 2015 Microsoft