問題タブ [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.

0 投票する
10 に答える
94557 参照

certificate - サブジェクトの別名を持つ OpenSSL 証明書 (バージョン 3)

OpenSSL コマンド ライン ツールを使用して、自己署名証明書を生成しています。2 つの問題を除いて、正しく動作しているようです。サブジェクト.cerの別名 (重要) を使用して作成することができず、バージョン 3の証明書を作成する方法を理解できませんでした(これが重要かどうかはまだわかりませんが、方法を学習することをお勧めします)。バージョンを設定します)。

誰もこれを成功させましたか?デフォルトの構成 ( .cfg) ファイルには、一見明確なドキュメントがあります (以下を参照)。

これは subjectAltName と issuerAltname 用です。メールアドレスをインポートします。subjectAltName=email:コピー

ただし、これは機能しません。私の推測では、サブジェクトの別名が表示されていません。これは、V1 仕様には存在しないためです。そのため、バージョンの設定も追求しています。

私が使用している設定ファイルは次のとおりです。

0 投票する
2 に答える
2766 参照

sql-server - SQL Serverを使用したPKIベースのx.509証明書認証?

ADが使用されていない2層クライアント/サーバーレガシーアプリケーション(SQL Server 2008 R2)で、IPSecなどを使用せずにx.509PKI証明書に基づくユーザー認証と承認を追加したいと思います。

クライアントは、SQL Serverに接続する前に、既存のSTS / WS-trustサービスを使用して、署名されたSAMLトークンを取得できます。

SQL ServerのSSLオプションは、これまでのところ、相互(双方向)認証をサポートしていません。1つの考えは、認証(またはSAMLトークン検証)を実行するカスタム.NETストアドプロシージャを使用することでした。その後、ユーザーの現在のSQL Serverログインが「有効」になりますが、より適切なオプションが必要です。

これを達成するための良いアプローチは何でしょうか?

0 投票する
1 に答える
9937 参照

iis-7 - エラー: KeyUsage はデジタル署名を許可しません - Java アプレット + 相互 SSL

Windows 2008 の IIS の下で Tomcat で実行される Web ベースの Java アプリケーションを開発しました。この Web サイトでは、IIS で双方向 (相互) SSL が有効になっており、SSL の一部として x.509 証明書 (PKI) を使用してクライアントを認証する必要があり、これが機能します。 IEを使用したすべての証明書で問題ありません。

Web サイトには、ViewOne ImageViewer という Java アプレットもあります。これは、一部の証明書では双方向 SSL で正常に機能しますが、他の証明書では、ユーザーが認証証明書を選択した後の SSL ハンドシェイク中にクライアント (Java 1.6) で例外が発生します。

セキュリティ: KeyUsage はデジタル署名を許可しません

証明書間の最も明白な違いは、失敗した証明書に EKU (拡張キー使用法) が存在しないことです。動作している証明書には、EKU "Client Authentication - 1.3.6.1.5.5.7.3.2" があります。

Javaアプレットを実行するためにEKU 1.3.6.1.5.5.7.3.2が必要かどうか、またはこれをどこかに設定できるかどうかは誰にもわかりませんか? それとも、他の原因でエラーが発生した可能性がありますか?

ありがとう!

0 投票する
2 に答える
4074 参照

certificate - 公開鍵の形式は何ですか?

公開DSAキーの形式は何ですか?そして、すべての証明書はbase64に保存されていますか?

0 投票する
1 に答える
11248 参照

certificate - OpenSSLは、カスタムサブジェクトフィールドを使用して証明書を生成および署名します

カスタムサブジェクト(、SERIALNUMBER = ...、)を使用して(私はCAです)証明書を作成して署名する必要があります。

これまでのところ、openssl構成ファイルを変更したので、件名にカスタムフィールドを含めることができます。

問題は、そのような証明書に署名した後、新しいフィールドがその奇妙な数値形式で表示されることです-

通常のフィールド名で証明書を生成するには、openssl構成ファイルのどこで何を変更する必要がありますか?1.2.3.4.1333を「SERIALNUMBER」としてエンコードする必要があることを署名プロセスに伝えるにはどうすればよいですか。

ありがとう、ビーフ

0 投票する
1 に答える
229 参照

pki - how to prove that someone's previous public key was really theirs?

I'm in the planning stage of an open-source credit clearing system, and my idea is to use GPG keys to sign IOUs. But I'm concerned that if Bob signs an IOU he emails to Alice, then later deletes his keys, creates a new keypair and uploads his new key to keyservers, he'll be able to plausibly deny ownership of the IOU. Is there some programmatic way of proving a key once belonged to the owner of the email account that sent the signed email? My google-fu is failing me on this one.

Update: "non-repudiation" is the word I was looking for. Still researching...

0 投票する
2 に答える
1169 参照

python - PKIで保護されたphpサイト(HTTPS)にアクセスするためのPythonの例

HTTPS経由でphpサイトと通信し、PKI保護を使用するPythonアプリケーションを実装する方法のサンプルコードを探しています。

私はおそらくpyOpenSSLとhttplib.HTTPSConnectionを使用します。私の質問は、認証にPKIを使用するサイトをどこで見つけることができるかということです。(Githubはこれを行いますか?)また、実装方法のサンプルコードはありますか?アドバイス、ありがとう。

0 投票する
3 に答える
1727 参照

java - java.security.cert.X509Certificate の個別の実装を比較する方法

アプリのさまざまな部分で bouncycastle org.bouncycastle.jce.provider.X509CertificateObject と sun.security.x509.X509CertImpl を使用していますが、それらが等しいかどうかを比較する必要がある場合があり、 equals() メソッドが機能せず、 getSubjectDN のようなメソッドがあります().getName() は、これらの実装ごとに異なる結果を表示します。バイナリ DER または PEM 比較に行かずに、これらの証明書が等しいかどうかを比較するにはどうすればよいですか?

0 投票する
2 に答える
2081 参照

certificate - PKI:証明書失効状況の確認手順と設定

良い一日!

私のasp.net Webアプリケーションでは、ファイルの着信デジタル署名をチェックする必要があります. 私はそれを呼び出すことによってそれを行います:

SignedCms.CheckSignature(false) または SignerInfo.CheckSignature(false) (C#)。

そして、そのような呼び出し中の署名者の証明書が正しく失効していることを確認し、システム設定が正しいことを確認し、このプロセスを自分でクリアしたいと考えています。

入ってくる署名者の証明書は、大量の CA のものである可能性があります。したがって、署名者の証明書には、CA の OCSP サービスまたは CA の CRL サービスへの参照が含まれる場合と含まれない場合があります。

システムがそのような方法で失効をチェックするようにしたい:

IF 証明書が CA の OCSP Web サービスへの参照を持っている場合、システムは CA に要求を行います。ELSE IF 証明書が CA のオンライン CRL サービスへの参照を持っている場合、システムは CRL をダウンロードして使用します。ELSE システムはローカル CRL を使用します。

私の質問に答えてください:

  1. 必要な動作を説明するシステム設定をどのように (どこで) 見つけることができますか? (この動作は変更可能ですか、それとも修正されますか?)
  2. 証明書に CA の CRL Web サービスへの参照が含まれている場合、定期的にスクリプトを使用して CA の CRL をダウンロードしてインストールする必要がありますか?それとも、チェックのために CRL が必要な場合に、システムのダウンロードに依存してそれらを自動的に使用できますか?

ありがとうございました。

0 投票する
2 に答える
1962 参照

pki - プログラムによる CSR の作成

CSRをプログラムで作成しようとしています。ASN.1、RFC 2986、X.509 について読みました。
を使用して作成されたいくつかの DER エンコードされた CSR ファイルも手動で解析しましOpenSSLた。
いくつかのことを除いて、すべてが明確に見えます。

  1. 公開鍵部分には8D 00 30 81 89 02 81 81、BIT STRING コンテンツの前 (および の後03 81) の次のバイトが含まれます。これは何ですか?DER でエンコードされたすべての CSR ファイルにそれらが含まれていることに気付きました。RFCでそれらについて何も見つけられませんでした。

  2. 署名部分には、署名内容の前で の後に次の不明なバイトが含まれています03 81。私が理解しているように、この部分には BIT STRING の最後のオクテットに関する情報が含まれています (最後のバイトの実際のバイト数)。しかし、これらのバイトをデコードする方法がわかりません。たとえば、署名は次のようになります。
    03 81 81 00 64 12 ... 24 B1 28
    はビット文字列03h形式、81hビット文字列の長さ64 12 ... 24 B1 28、署名です (ただし、長さは 80h です)。の部分がわかりません81 00

前もって感謝します。