Question

Je suis la programmation d'une autorité de certification en Java pour une classe uni, maintenant je ne sais pas quelle est la meilleure option pour le numéro de série du certificat.

  • simple compteur statique de 0 à veryBigNumber
  • un certain grand nombre aléatoire BigInt

Y at-il une bonne raison de choisir l'un sur l'autre ... ou aucun d'entre eux ??

merci,

Était-ce utile?

La solution

Je vous recommandons d'utiliser un nombre aléatoire, mais gardez une liste de ces numéros de série émis dans une base de données. Cela permettra deux choses.

  1. Vous ne rééditer le même numéro de série.
  2. Vous pouvez dire à partir du numéro de série d'un certificat si elle est même à distance valide.

Bien sûr # 1 exige que vous vérifiez contre la liste connue de la génération et de générer un nouveau nombre aléatoire en cas de collision, et # 2 est pas beaucoup de quoi que ce soit en termes de sécurité ou de validation, mais une perspective intéressante ne ayant jamais fumé le moins.

Autres conseils

Techniquement contre de 0 à veryBigNumber est plus facile à mettre en œuvre que bigRandomNumber - parce que les numéros de série doivent être différents.

Cependant - vous ne voulez pas utiliser un simple compteur si vous vous souciez de savoir combien de personnes certificats que vous avez attribué.

Cela dépend de ce que vous utilisez le numéro de série. Si vous êtes une petite entreprise et si vous prévoyez de donner un certificat par client, votre numéro de série révélera combien de clients que vous avez.

A part ça, je ne vois aucune raison pour laquelle le numéro de série ne doit pas être série. Certaines personnes affirment que l'utilisation des numéros de série va donner quelques informations (le prochain numéro de série) à un attaquant potentiel, mais je ne pense pas que c'est un gros problème.

La principale exigence est que la (Issuer distinguished name, serial number) paire doit être unique dans l'univers. Par conséquent, vous ne devriez pas utiliser un nombre aléatoire à moins qu'il est si grand que la probabilité de répétition est négligeable. Un nombre aléatoire de 20 octets devrait être plus que suffisant. Un simple compteur est parfaitement bien, si cela ne vous dérange pas d'autres personnes savoir combien de certificats que vous avez émis.

Les attaques relativement récentes sur les émetteurs de certificats SSL (par Alex Sotirov et al.) Qui exploitaient la faiblesse MD5 ont été faites en réalité encore plus facile par l'utilisation des numéros de série de type compteur. numéros de série aléatoires ne sont pas attaqués. Cela ne signifie pas que des numéros de série prévisibles sont mauvais sécurité, cela signifie simplement que pour cette application des numéros de série aléatoires pourraient aider à masquer les faiblesses de MD5. Le problème de la racine était encore MD5.

Je pense que si nous examinons le mot de série, la réponse est implicite .... série, série, etc progression

Je me trouvais tout à l'heure à venir à travers cette question par hasard, et on pourrait penser des réponses qu'un numéro de série prévisible n'est pas un problème de sécurité. Je dirais que ce est une préoccupation et que les numéros de série aléatoires sont beaucoup plus sûrs. Cf. attaque de flamme et al ici par exemple, ou ici ou l'article sur wikipedia " prévisible numéro de série attaque ."

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top