2008-12-16 12 views
7

Je rencontre un problème avec une application ASP.NET 2.0. Nos gens de réseau tout upped notre sécurité, et maintenant je reçois l'erreur floowing chaque fois que je tente d'accéder à l'application:Algorithme de chiffrement ASP.NET 2.0 RijndaelManaged par rapport à FIPS

« Cette mise en œuvre ne fait pas partie de la plate-forme Windows FIPS algorithmes de chiffrement validés. »

Je l'ai fait un peu de recherche, et il semble que ASP.NET utilise l'algorithme de chiffrement AES pour chiffrer RijndaelManaged le ViewState des pages ... et RijndaelManaged est sur la liste des algorithmes qui ne sont pas conformes à la norme FIPS . Nous n'appelons certainement pas explicitement n'importe quel algorithme de cryptage ... beaucoup moins sur la liste non-conforme.

Cette entreprise ViewState a du sens pour moi, je suppose. La chose que je ne peux pas embrouiller, cependant, est ce qu'il faut faire à ce sujet. J'ai trouvé un KB article qui suggère d'utiliser un paramètre web.config pour spécifier un algorithme différent ... mais soit cela ne colle pas, ou cet algorithme n'est pas à la hauteur, non plus.

Alors:

1) Est-ce la chose RijndaelManaged/ViewState réellement le problème? Ou suis-je aboyer le mauvais arbre?

2) Comment spécifier l'algorithme à utiliser à la place de RijndaelManaged? J'ai une liste d'algorithmes qui sont et ne sont pas conformes; Je ne suis pas sûr où placer ces informations.

Merci!

Richard

Répondre

2

En ce qui concerne votre 2ème question: Peut-être que ce MSDN Article aide.

Selon les documents que vous pouvez configurer l'algorithme de chiffrement comme ceci:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>

Pour la validation, vous pouvez utiliser une des options suivantes: [SHA1 | MD5 | 3DES | Pour le décryptage, vous pouvez utiliser l'un des éléments suivants: [Auto | DES | 3DES | AES]

Donc, pour être conforme à la norme FIPS, vous pouvez utiliser 3DES (bien qu'AFAIK soit théoriquement moins sécurisé).

0

Nous avons essayé la machineKey que vous suggérez. Il a aidé avec certaines applications Web (quand jumelé avec), ce qui est génial, mais pas tous d'entre eux, ce qui est frustrant.

Il me manque quelque chose, mais je ne sais pas quoi dire.

0

vous aurez également besoin de le faire sur la boîte

Enforcing FIPS Certified Cryptography

+0

Bien que pas très pertinente, à peine digne d'un -1, celui qui vous - si équilibrez par upvoting (si le -1er revient et explique, je suis heureux d'enlever mon upvote). (Le lien explique comment les gens du réseau en question auraient changé cette politique en premier lieu) –

5

de Revérifiez que vous n'avez pas <compilation debug="true" /> dans votre web.config. Lorsque la compilation de débogage est définie, .NET utilise un hachage MD5 pour la comptabilité interne. MD5 n'est pas compatible avec FIPS, donc vous obtenez cette erreur.

0

Certains sites comme les sites SharePoint ont déjà la clé machine SHA1 dans la configuration Web, vérifiez donc s'il existe déjà un algorythme s'il y a suppression et ajoutez ce qui précède.

2

Source: http://blogs.msdn.com/b/shawnfa/archive/2008/03/14/disabling-the-fips-algorithm-check.aspx

Vous pouvez ajouter ce qui suit à votre web.config ou configuration de la machine afin que vos applications ASP.Net cessera défaut en raison des contrôles de conformité FIPS.

<configuration> 

    <runtime> 
     <enforceFIPSPolicy enabled="false"/> 
    </runtime> 

Votre machine.config se trouve ici: \ Microsoft.NET \ Framework \\ config \ machine.config

Si vous changez machine.config, un iisreset peut être requis pour que les paramètres prennent effet. Remarque: la modification de votre fichier maching.config affectera toutes les applications .NET sur le système.


Pour obtenir votre application à être conformes sans avoir FIPs désactiver FIPs, vous pouvez essayer ce qui suit:

1) Configurez votre clé de la machine à utiliser pour le déchiffrement 3DES et SHA1 pour validation.

<configuration> 
<system.web> 
    <authentication mode="Windows" /> 
    <machineKey decryption="3DES" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" validationKey="AutoGenerate,IsolateApps" /> 
</system.web> 
</configuration> 

REMARQUE: si vous utilisez un environnement agricole web, vous pouvez utiliser l'interface graphique IIS et accédez à la section de configuration des clés d'ordinateur pour générer un jeu de clés et d'utiliser les mêmes clés dans votre batterie de serveurs Web.

2) Assurez-vous que votre compilation debug = "false", et que toutes les directives de page ont debug = "false". Définir le débogage sur true lancera également la vérification de conformité FIP.

0

La clé machine viewstate et les problèmes de compilation = "débogage" sont les causes les plus fréquentes de ce problème d'après ce que j'ai vu. Pour autant que je sache, dans .NET 2.0, l'algorithme 3DES pour la validation/chiffrement viewstate est le seul qui soit conforme à la norme FIPS. Les options SHA1, MD5 et AES ne fonctionneront donc pas ici.

Il est également important de réaliser que si une référence à l'algorithme ANY non-FIPS conforme est dans le code, même si jamais réellement utilisé/accessible entraînera l'erreur de conformité FIPS. Par exemple, déclarer une variable MD5CryptoServiceProvider sans même l'instancier provoquera l'erreur. Cela inclut d'autres assemblys .NET référencés, assurez-vous donc qu'aucune DLL référencée n'utilise des algorithmes compatibles non-fips.

est ici un site pratique qui répertorie tous les algorithmes FIPS et non FIPS dans .NET http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

Questions connexes