Quelles sont les meilleures technologies pour la mise en œuvre de CA par rapport au langage de programmation, base de données, etc OpenSSLAutorité de certification PKI
Répondre
La question est assez large. Je trouve que la partie administrative est plus complexe que la partie technologique en ce qui concerne les ICP. Il n'y a pas grand chose à faire lors de la configuration d'une autorité de certification: conserver la clé privée (comme toujours), recevoir des demandes de certificat, vérifier l'identité du demandeur, émettre le certificat et le stocker quelque part (vous pouvez implémenter mécanismes de révocation en plus de cela). Je simplifie légèrement l'image, mais c'est à peu près tout le processus, et vous pouvez l'implémenter dans un certain nombre de langages avec des bibliothèques existantes sans trop de difficultés. L'utilisation de BouncyCastle en Java fonctionne, mais je suis sûr que d'autres outils fonctionnent aussi, par exemple OpenSSL avec Perl. Toutes les langues n'exposent pas toute l'API OpenSSL (si elles l'utilisent sous le capot), et il peut être utile d'avoir une bibliothèque capable de lire et d'écrire des structures ASN.1 (surtout si vous voulez des extensions spécifiques). Pour le stockage, il peut être utile de combiner ceci avec une structure de répertoire (par exemple, un système basé sur LDAP), mais cela peut dépendre de ce que vous avez déjà en termes de système de gestion des utilisateurs.
L'autre aspect à prendre en compte à quel point il doit être simple pour les utilisateurs de demander un certificat. Cela peut être pénible pour les utilisateurs qui doivent demander/utiliser un certificat mais n'ont pas le temps d'apprendre de quoi il s'agit. La génération de clé dans le navigateur peut être utile, au lieu de les faire générer un CSR (plus ou moins à la main). Pour la génération dans le navigateur, c'est une combinaison de <keygen>
(l'élément de formulaire introduit par Netscape pour cela - fonctionne sur Firefox et Opera par exemple), ActiveX (pour MSIE) ou Mozilla Javascript extensions. Au lieu d'ActiveX, vous pouvez également avoir un "assistant" autonome qui est une application complète (il aura plus d'autorisations pour effectuer des opérations liées au certificat), car ce qui est disponible via JScript/ActiveX est limité et dépend de divers paramètres de sécurité.
L'autre chose à prendre en compte est le système par lequel vous vérifiez l'identité de l'utilisateur lors de l'application. Si c'est relativement petit, il n'y a pas grand chose à faire, mais s'il s'agit d'une structure plus large, vous aurez peut-être besoin de représentants locaux et de divers services qui leur permettront de communiquer ces affirmations aux personnes qui délivreront les certificats. La plupart de ce dont vous avez besoin ici dépendra du niveau d'assurance dont vous avez besoin.
Vous pourriez être intéressé par OpenCA.