web-dev-qa-db-fra.com

Quelle clé SSL devrais-je faire pour IIS: RSA ou DH? Quelle longueur est appropriée?

Je crée un certificat SSL pour mon IIS serveur et devez savoir quand je devrais choisir le Microsoft RSA SChannel Cryptographic Provider ou la Microsoft DH SChannel Cryptographic Provider.

Question 1 Pourquoi quelqu'un voudrait-il encore (ce que je suppose est) un certificat hérité de "DH"?

Étant donné que la valeur par défaut est RSA/1024, je suppose que c'est le choix le plus sécurisé, et l'autre est pour des raisons héritées.

Question 2 Y a-t-il un guide pour déterminer quel niveau bit est approprié pour x périphérique x?

Je serais intéressé par les résultats de laboratoire, une formule mathématique ou votre expérience personnelle. Je sais que les différents niveaux de bits influencent le temps nécessaire pour sécuriser une session SSL et qui est importante pour les appareils à faible puissance.

Question Comment cela pourrait-il affecter ces scénarios?

Mon cas particulier concerne ces modèles de communication:

  1. Un site Web qui a des clients puissants connectant et déconnectant la session fréquemment

  2. Un site Web de la WCF qui soutient des durées longues de hautes IO transferts de données

  3. Un client confronté à un site Web adapté aux iPhones et aux ordinateurs de bureau

15
goodguys_activate
  1. RSA et Diffie-Hellman (DH) ne sont que deux algorithmes différents qui accomplissent un objectif similaire. À la plupart des fins, il n'y a pas de raison accablante de préférer un algorithme sur un autre (RSA vs Diffie-Hellman). Ils ont des caractéristiques de performance quelque peu différentes. RSA est le choix standard, et c'est un choix fin.

  2. Il est difficile de donner une recommandation unique à la taille de la taille de la taille, car elle est susceptible de dépendre des besoins de sécurité de votre site et, car la taille de la clé affecte la performance. Ma recommandation par défaut serait d'utiliser une clé RSA de 1536 bits. Les clés RSA 1024 bits devraient être un minimum absolu minimum; Toutefois, les touches RSA 1024 bits sont sur le bord de ce qui pourrait devenir fissuré à court terme et ne sont généralement pas recommandés pour une utilisation moderne, donc si possible, je recommanderais des clés RSA 1536- ou 2048 bits.

    Notez que de nombreux CAS ont récemment commencé à amorcer les certificats d'entité finale 1024 bits, au 31 décembre 2010: ils peuvent vous émettre un certificat pour une clé RSA de 1024 bits, à des fins héritées, si vous demandez, mais ils encouragent les gens Transition vers 2048 bits RSA. Certains CAS nécessitent des clés de 2048 bits, aucune exception. Personnellement, je pense que 2048-bits RSA est surchargé à la plupart des fins et 1536 bits RSA est probablement bien, mais la RSA 2048 bits accumule une certaine inertie.

  3. Plus la clé est grande, l'établissement initial de la connexion initial plus lent sera. L'impact le plus probable est sur la charge de votre serveur, car le serveur doit effectuer quelques opérations de clé publique pour chaque nouvel appareil qui se connecte à celui-ci (dans une période de 24 heures ou plus). La cryptographie cline publique n'entre qu'un coût unique, qui est payé une fois lorsqu'une connexion est créée (et non payée à nouveau pour toute nouvelle connexion dans l'environ 24 heures environ); La quantité de données transférée sur la connexion n'est pas pertinente.

Donc, ma suggestion par défaut serait la suivante: Sélectionnez une touche RSA 1536 bits, puis testez sur un client d'extrémité typique (par exemple, un iPhone) pour vous assurer que les performances sont correctes, puis testez si votre serveur peut gérer le nombre de connexions par jour associé à cette taille de la clé. Si vous avez des problèmes de performance sur le serveur, envisagez un accélérateur Crypto pour accélérer les performances de votre serveur. Si vous avez toujours des problèmes de performance sérieux, vous pourriez envisager de supprimer jusqu'à 1024 bits RSA. Si vous avez un site critique de sécurité, comme un site bancaire, utilisez 2048 bits RSA.

17
D.W.
  1. DH et RSA sont différents algorithmes à clé publique, mais il n'y a pas de différence notable dans la sécurité aient les mêmes tailles de clé publique. DH certificats sont assez rares, et vous ne devez pas vous inquiéter à leur sujet.

  2. Le temps nécessaire pour effectuer une opération RSA augmente approximativement comme le cube de la taille de module, à savoir une clé de 2048 bits est d'environ 8 fois plus lente qu'une clé de 1024 bits. Cela affecte surtout les performances du serveur SSL, parce que les opérations publiques RSA (de Décrypter, signe) sont beaucoup plus rapides que les opérations privées (Crypter, vérifier) ​​et le client n'a besoin que d'effectuer un chiffrement public RSA en utilisant la clé publique du serveur dans la plupart des suites de chiffrement.

  3. Dans votre premier cas, la performance serait fortement affectée par l'utilisation de la reprise de la session SSL. Si un client se reconnecte au même serveur en utilisant SSL, il a la possibilité de " reprendre " une session précédente, ce qui permet de sauter l'échange coûteux de clé RSA. Dans le second cas, les transferts de longue durée ne sont pas affectés du tout par la taille des clés du serveur, car les données d'application dans SSL sont cryptées avec un algorithme de chiffrement symétrique, et non la clé RSA du serveur. Pour le troisième cas, voir (2) ci-dessus.

8
Tom Wu