プログラミング言語、データベース、opensslなどに関してCAを実装するための最良のテクノロジーは何ですか
1 に答える
質問はかなり広いです。PKI に関して言えば、管理部分は技術部分よりも複雑です。
基本的な CA をセットアップするときにやるべきことはそれほど多くありません: 秘密鍵を (いつものように) 安全に保管し、証明書要求を受信し、何らかの方法で要求者の身元を確認し、証明書を発行してどこかに保存します (トップに失効メカニズムを実装できます)。これの)。図を少し単純化していますが、それが大まかなプロセス全体であり、既存のライブラリを使用して多くの言語でそれを実装することはそれほど難しくありません。Java で BouncyCastle を使用することもできますが、OpenSSL と Perl など、他のツールも機能すると確信しています。すべての言語が OpenSSL API 全体を公開しているわけではなく (内部で使用している場合)、ASN.1 構造を読み書きできるライブラリがあると便利です (特に特定の拡張機能が必要な場合)。ストレージについては、これをディレクトリ構造と組み合わせると便利な場合があります (たとえば、
ユーザーが証明書を要求するのがいかに簡単でなければならないかを考慮に入れるもう1つの側面。これは、証明書を要求/使用する必要があるが、それが何であるかを学ぶ時間がないユーザーにとっては苦痛になる可能性があります. CSR を (多かれ少なかれ手動で) 生成する代わりに、ブラウザ内でのキー生成が便利です。ブラウザー内生成の場合は、使用<keygen>
(Netscape によって導入されたフォーム要素 - たとえば Firefox と Opera で動作)、ActiveX (MSIE 用)、またはMozilla Javascript 拡張機能の組み合わせです。. ActiveX の代わりに、完全なアプリケーションであるスタンドアロンの「ウィザード」を使用することもできます (証明書関連の操作を実行するためのより多くのアクセス許可が付与されます。それ以外の場合、MSIE 内から JScript/ActiveX を介して利用できるものは制限されており、さまざまなセキュリティ設定に依存します)。 .)
もう一つ考慮すべきことは、申請時にユーザーの身元を確認するシステムです。比較的小さい場合は、やることはあまりありませんが、より広い構造の場合は、地元の代表者と、証明書を発行しようとしている人にそれらの主張を伝えることができるさまざまなサービスが必要になる場合があります。ここで必要なもののほとんどは、必要な保証のレベルによって異なります。
OpenCAに興味があるかもしれません。