問題タブ [pki]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 暗号化ライブラリ?
会社のプロジェクトで PKI ライブラリを C# で実装する任務を負っていますが、適切な実装を見つけることができませんでした。複数のライブラリがあり、削除された MSDN ライブラリへのリンクが壊れているようです。Crypt32.dll を使用している人、独自のライブラリを作成している人、P/Invoke を使用してシステム証明書ストアにアクセスしている人、組み込みライブラリを拡張している人、C# にはまったく当てはまらない例 (Java の例など)、および商用ライブラリ。
私の質問は、データの単純な暗号化/復号化に最も推奨される実装/ライブラリはどれですか?
私が計画していることの背景として、秘密鍵 (.pfx) を使用してメッセージを暗号化し、公開鍵 (.cer) を使用して復号化する必要があるだけです。プロジェクトのこのレベルでは、メッセージの署名と認証は必要ありませんが、将来的には必要になる可能性があります。暗号化の長さについて言及されているのを見て不安になりました。任意の長さのメッセージを暗号化できる必要があります (もちろん、当然のことです!)。これは私が心配する必要があるものですか? もしそうなら、それに対処する方法はありますか?
可能であれば、Windows証明書マネージャーに公開/秘密鍵を保存したくないのですが、実装が大幅に簡単になる場合は、そうしてください。
PKI と暗号化は大規模で複雑なテーマであることは理解していますが、とにかく比較的単純なライブラリを望んでいます... (期待できますよね?)
ありがとう!
windows - X509証明書をDBに保存する-そうですか、それともそうですか?
公開鍵証明書と、社内アプリケーション用の単一の秘密鍵証明書を保存する必要があることに気付きました。
私たちのチームのメンバーは、これまで行ってきたように、X509証明書をWindows証明書ストアに保存するのではなく、データベースに保存することを提案しました。車輪の再発明は好きではありませんが、少なくともそのアイデアを検討する必要があります。これは、データをより集中化することを意味します。これは良いことだと思います。
私が見ることができる最初の障壁は次のとおりです。
- 秘密鍵はまだどこかに保存する必要があり、それを「公開鍵」テーブルにシューホーニングするのが良い考えかどうかはわかりません。単一の要素のテーブルを設定するというアイデアも好きではありません。おそらく、秘密鍵をローカルファイルとして保持するだけですか?(たとえば、.pfxファイル)。
- 失効リスト。おそらく、取り消された公開鍵を処理するプロセスを設定する必要があります。
私はX509証明書の経験があまりないので、私の質問は次のとおりです。Windows証明書ストアではなく、データベースに公開鍵証明書を保存するときに発生する可能性のある他の問題はありますか?
このアプリケーションは複数のビジネスクライアントサーバーに展開されるため、すべてのデータを1つの場所に保持すると、バックアップが容易になることを覚えておく価値があります。ああ、問題の社内アプリはC#で開発されています。
ありがとう!
encryption - 人々のグループ(OSにとらわれない方が望ましい)のファイルを暗号化するためにどのシステムを使用していますか?
たくさんのファイルがあるとしましょう。これらのファイルにメタデータを保存できるとします。たとえば、これらのメタ属性の1つは「暗号化」と呼ばれていました。誰もがこれらのファイルを見ることができたとしましょう。ただし、これらのファイルは暗号化されているため、復号化の方法を知っている人だけが実際にコンテンツを読み取ることができます。たとえば、「暗号化」の特定の値ごとに、人々のグループがその値でマークされたファイルを復号化する方法に関する知識を共有します。OSにとらわれない方法で、プログラムでこれを実行できるようにしたいとします(可能な場合)
「暗号化」に使用する値は何ですか?キーをどのように保存しますか?キーへのアクセスをどのように整理しますか?
私は現在、次の実装に傾いています:
- フィールド「encryption」の値にはキーの名前が含まれており、使用されるアルゴリズムも示している可能性があります
- 各ユーザーは、一連のキーにアクセスできます。これは、LDAP / ActiveDirectoryのような構造でユーザーが持つ役割によって定義することも、ユーザープロファイル/ホームディレクトリの安全なディレクトリにあるファイルにすることもできます。
- ファイルを表示すると、ビューア(ドキュメント管理システムを構築しようとしています)はユーザーキーをチェックし、一致するキーが見つかった場合はファイルを復号化します。
どの暗号化を使用しますか?対称(AES)?または非対称(良いものは何ですか)?
非対称キーを使用すると、ファイルの読み取りと書き込みを区別できるという追加の利点があります。ファイルの書き込みには秘密キーへのアクセスが必要であり、公開キーへのアクセスが必要です(特定の役割のみがアクセスできるため、半公開のみ)。 it)ファイルの読み取りを許可します。私はここで完全に間違っていますか?
中小企業で使用されるこれらの問題を解決するための一般的なシステムは何ですか?
編集:普遍的な解決策はないようです。それで、私が解決しようとしている問題をもう少し明確に述べます:
分散方式で動作するドキュメント管理システムを想像してみてください。各ドキュメントは、(会社が管理するプライベートな)P2Pネットワークのさまざまなノードにコピーされます。ドキュメントの冗長性を保証するためのアルゴリズムを使用して、すべてのドキュメント(リビジョンを含む)のバックアップを確保します。このシステムは、バックグラウンドでサービス/デーモンとして機能し、ドキュメントを前後にシャベルで移動します。
これは、ユーザーがローカルワークステーション(会社が管理するPCやラップトップなど)で表示することを意図していないドキュメントになってしまうことを意味します。この設定では、SME IT担当者がこれをすべて設定し、誰が参加するかを管理します。 P2Pネットワークの)。
これにより、ユーザーはおそらくデータにアクセスできるため、ディレクトリアクセスベースのスキームが除外されます。私はここで間違っていますか?ドメインユーザーのみがアクセスできるようにローカルフォルダを暗号化できますか?それはどれくらい安全ですか?
私は、ユーザーが復号化されたバージョンのファイルを共有していることを知っています-そしてそれを技術的に抑制するのは難しいです。これは私が解決しようとしている問題ではありません。
pki - MS CA 終了モジュール コードまたはチュートリアル
MS 認証局の終了モジュールのコーディングの例/説明を見つけるのに苦労しています。
誰かが助けやリソースを持っていれば、彼らは私に指摘することができます.
digital-certificate - CA は署名前に CSR を変更できますか?
証明機関 (CA) が、独自の秘密鍵で証明書に実際に署名する前に、証明書署名要求 (CSR) を変更することを許可されているかどうか教えてください。
具体的には、署名を追加する前に CA が追加のフィールド (EKU など) を証明書に挿入することが有効かどうかを知りたいです。
authentication - 切断されたネットワークから SSL クライアント証明書を生成するには?
IE ブラウザーと IIS 6 の間で HTTPS 経由のクライアント証明書認証を実装する必要があるという特殊な状況があります。ブラウザーと IIS は、ブラウザーが SSL ポートで IIS に接続することのみを許可するファイアウォールによって分離されています。
IIS と同じネットワーク上に内部証明書サーバーがあります。IIS 用の SSL サーバー証明書を生成し、それをインストールしました。SSL のみを許可し、クライアント証明書を要求するように IIS を構成しました。
ここでの制限は、ブラウザ マシンが切断されたネットワーク上にあるため、CA のhttp://caserver/CertSrv URL にアクセスして、通常のようにクライアント証明書を要求できないことです。
ルート CA の公開鍵に対して CSR を生成できる方法があれば、それを CA サーバーにコピーしてクライアント証明書を生成できると考えました。しかし、IE または証明書 MMC には、これを行うための準備がないようです。証明書 MMC は、CA への直接接続を必要とするようです。
誰もこれを以前に解決しましたか?
参考までに、参照されているすべてのサーバーは Windows Server 2003 を実行しています。
更新: CertReq.exe コマンド ライン ツールを指摘してくれた Jonas Oberschweiber と Mark Sutton に感謝します。これを使用して CSR を生成し、その結果、正常にインストールされるクライアント証明書を生成しました。ただし、IE は、問題の IIS サーバーにアクセスするときに、このクライアント証明書を送信していないようです。それでも 403.7 "禁止: SSL クライアント証明書が必要です" が生成されます。その理由は、クライアント証明書のサブジェクト フィールドが IE を実行しているアカウントのユーザー ID と一致しないため、おそらく一致しないクライアント証明書を送信していないためだと思われます。サブジェクトは、CSR を送信し、ファイアウォールの反対側でクライアント証明書を生成するために使用したユーザーのものと一致します。
件名フィールドは重要ですか? IE がこの証明書を送信できるようにするために他に何かする必要がありますか?
java - ブラウザ ベースのドキュメント署名 (デジタル署名付き) に最適なクロスブラウザ ソリューションは何ですか?
XadES 形式のデータにデジタル署名して検証できるようにするブラウザー ベースのコンポーネント (クロスブラウザーである必要があるため、おそらく Java アプレット) を実装する必要があります。利用可能なオプションと最適なソリューションは何ですか?
certificate - クラス 1 とクラス 3 のルートと、それらによって署名された証明書の違いは何ですか?
質問が言っていることはほとんど。根の 2 つのクラスの違いは何ですか? そのようなルートによって署名された証明書の違いは? クラス 1 の署名付き証明書には、クラス 3 にはない用途と、その逆の用途がありますか?
pki - 最高の (無料) 証明書管理ツール
私は最近、PEM、PFX などの証明書ファイルを管理するためのきちんとした Java ツールをダウンロードしました。メモリからは Java で書かれていましたが、私の人生ではそれを見つけることができません (ダウンロード リストと明白でないファイル名をクリアしました)。 !)。
これにより、私は疑問を投げかけました-証明書を管理するための無料ツールは何ですか? 前述のツールは、証明書を生成するだけでなく、UI を介して表示することもできます。
証明書を追跡し、通常、正式なCAツールやキーツール/その他のコマンドラインツールを使用して、扱っている証明書を確認する必要なく、詳細を簡単に表示できるようにしたいだけです。
web-services - 「wsse:InvalidSecurity」とはどういう意味ですか?
これはWS-Securityの質問です...
WS エンドポイントに問題はありません (TIBCO BW エンジンで実行されていることを除けば!)。誰かがこの種のエラーの「事前」を持っていますか? おそらくこのエラーが発生するために WS-Security ヘッダーがどこかで壊れている可能性があることは理解していますが、何らかの一般的なエラーでは 90% パーセンタイルになる可能性があります。
セキュリティで保護された SOAP は次のとおりです。クライアントはスタンドアロンの Java (WSS4J 1.5.0) であり、この段階では署名のみを実行します。