問題タブ [authenticode]

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 投票する
0 に答える
39 参照

ssl - HTTPS とコード署名の両方に SSL 証明書を使用できますか?

私はコード署名についてほとんど知らず、これについてインターネット上で明確な答えを見つけることができませんでした.HTTPSサーバーを実行するために単一のSSL証明書を使用、同時にWindows実行可能ファイルにコード署名することは可能ですか?

はいの場合、利点/欠点は何ですか?

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

inno-setup - デジタル署名 Inno セットアップ

Inno セットアップで setup.exe に署名する方法を知りたいです。無料でできますか?それを行うには、Windows 用の特別なライセンスが必ず必要ですか?

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

continuous-integration - バイナリにデジタル署名するように CI サーバーを安全に構成するにはどうすればよいですか?

証明書ファイルで実行する方法を説明しているサイトは多数あります。要約すると、次signtool.exeのようになります。.pfx

ほとんどの CI プロセスと同様に、すべてを実行する継続的インテグレーション CI プロセスのセットアップ (TeamCity を使用) があります。現在、同一の VM を実行している 3 つのビルド エージェントがあり、それらのどれでもこのプロセスを実行できます。

安全でない実装

今日これを達成するために、セキュリティに関する限り、いくつかの悪いこと (TM) を行います。.pfx ファイルはソース管理にあり、そのパスワードはビルド スクリプト (ソース管理にもあります) にあります。これは、ソース コード リポジトリにアクセスできるすべての開発者が、pfx ファイルを取得して、好きなように悪意のあることを実行できることを意味します。(私たちは比較的小さな開発ショップであり、誰もがアクセスできることを信頼していますが、明らかにこれはまだ良くありません)。

究極の安全な実装

これを「正しく」行うことについて私が見つけることができるのは、次のことだけです。

  • pfx とパスワードを安全な媒体 (指でロックを解除できる暗号化された USB ドライブなど) に保管し、おそらく一緒に保管しないでください。
  • 署名ファイルへのアクセス権を持つ人を数人だけ指定する
  • このコード署名セレモニーのために持ち出す必要があるまで、ロックアップされた保管庫に保管されている、接続されていない専用マシンでのみ最終ビルドに署名してください。

これのセキュリティのメリットはわかりますが..非常に重いプロセスであり、時間の面で費用がかかります(このプロセスを実行し、証明書のバックアップを安全に保持し、コード署名マシンが動作状態であることを確認するなど) )。

手順をスキップして、個人のシステムに保存されている証明書を使用してファイルに手動で署名するだけの人もいると思いますが、それでも素晴らしいことではありません。

また、インストーラー (ビルド サーバーによってビルドされる) 内で使用される署名ファイルとも互換性がありません。これは、管理者アクセスを取得するための UAC プロンプトを持つ .exe がインストールされている場合に重要です。

中盤?

私は、それが私の会社であることを証明することよりも、恐ろしい「信頼できないアプリケーション」UAC プロンプトをユーザーに提示しないことにはるかに関心があります。同時に、すべての開発者 (および QA と高度な技術サポート) がアクセスできるソース コード リポジトリに秘密キーとパスワードを格納することは、明らかに適切なセキュリティ プラクティスではありません。

私が望むのは、CI サーバーが現在のようにビルド プロセス中に署名することですが、パスワード (または証明書の秘密鍵部分) がなくても、ソース コード リポジトリにアクセスできるすべての人がアクセスできるようにすることです。

パスワードをビルドから保護したり、何らかの方法で保護したりする方法はありますか? signtool に証明書ストアを使用するように指示する必要がありますか (また、3 つのビルド エージェントとビルドを非対話型ユーザー アカウントとして実行する場合)。他の何か?

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

certificate - PFX をインストールせずに WTD_LIFETIME_SIGNING_FLAG を取得する

「コード署名証明書の有効期限が切れるとどうなりますか?」という質問への回答から。、署名された実行可能ファイルの意図しない動作を暗示する可能性のある WTD_LIFETIME_SIGNING_FLAG があることがわかりました。

証明書がインストールされたら、次の手順を使用してフラグを確認できます。

  • Internet Explorer を開きます (以下はバージョン 11 を指します)。
  • ツール/インターネットオプションに移動します
  • 「コンテンツ」タブに移動します
  • 「証明書」をクリック
  • 証明書を選択し、「詳細」を選択します
  • 「生涯署名」チェックボックスが見つかるまで下にスクロールします

PFX ファイルを証明書ストアにインポートせずに (つまり、信頼することを意味します)、PFX ファイルでこのフラグについて調べたいと思います。

を試しcertutil -dump <pfx>ましたが、フラグがまったく表示されません。次に、certutil -dump -v <pfx>リスト コード署名 (1.3.6.1.5.5.7.3.3) を使用しましたが、ライフタイム署名 (IE でチェックボックスがオンになっている証明書の場合) は使用しませんでした。

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

windows-8 - コントロール パネル - 既定のプログラムに表示されるプログラムの詳細に Web アドレスを追加する方法

mailto: プロトコルを扱えるプログラムを書いています。ユーザーが自分のプログラムをデフォルトの電子メール ハンドラーとして選択できるようにするために、プログラムを登録しました。ただし、一部のプログラムでは、ファイル エクスプローラーなど、会社名の下に会社の Web サイトへのクリック可能なリンクが表示されることに気付きました。

アプリが選択されたときに既定のプログラム UI が表示されるように、自分の Web サイトへのリンクを指定するにはどうすればよいですか?

Microsoft Visual Studio 2013 Ultimate を使用しています。.reg 形式のプログラム登録の詳細は次のとおりです。

ファイル エクスプローラーのクリック可能なリンクの例を次に示します。 ファイルエクスプローラー

これがリンクのない私のアプリケーションです マイアプリ - リンクなし

これは私がこれまでに見つけたものです:

  1. すべてのアプリにこのリンクが表示されるわけではありません。

  2. Microsoft アプリと Microsoft 以外のアプリの両方でこのリンクを表示できます。たとえば、Cyber​​Link PowerDVD は www.cyberlink.com へのリンクを表示します。

  3. すべての Microsoft アプリがリンクを表示するわけではなく、リンクを表示するアプリの URL が異なる場合があります。たとえば、Microsoft Corporation による 3 つのアプリ: ペイント - リンクなし、フォト ギャラリー - http://www.microsoft.com、Visual Studio 2013 - http://microsoft.com (www なし)。

  4. Skype for Desktop には、会社 Skype Technologies SA とhttp://www.microsoft.comへのリンクが表示されます。

  5. リンク アドレスがレジストリに保存されているようには見えません。これは、shell\open\command の下にリストされている実行可能ファイルに格納されています。

  6. 実行可能ファイルにリソースとして保存されているようには見えません。

  7. sysinternalsの文字列ツールは、実行可能ファイル内のリンク アドレスを検出しません。

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

windows - SHA-2 を使用した相互署名証明書を使用して、signtool で署名および検証した後の Windows ドライバーのインストールの失敗

適切に署名されているように見える 2 つのドライバー ファイルがあります。

しかし、それらをインストールしようとすると、dredded エラーが発生します。

このファイルのデジタル署名を確認できません。最近のハードウェアまたはソフトウェアの変更により、正しく署名されていないか破損しているファイルがインストールされた可能性があります。または、不明なソースからの悪意のあるソフトウェアである可能性があります。

問題のファイルと関連する証明書を投稿しました。次のコマンドを使用してファイルを作成します。

私の証明書は署名アルゴリズムを使用しています: sha256WithRSAEncryption

次に何を試せばいいですか?

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

powershell - PowerShell でファイルの一連の証明書を取得しますか?

PowerShell のみを使用して、署名付きファイルの証明書チェーンを一覧表示する方法を探しています。具体的には、ルート証明書を取得します。

特定の実行可能ファイル (インストールされたソフトウェア上) が依存している Microsoft 以外のルート証明書のリストを取得する必要があるためです。これは、Microsoft KB293781 の PKI 手順を使用する OS ベースライン ガイドラインによるものです。特定のルート証明書のみを特定のコンピューターに配置する必要がある場合。たとえば、よく使用される「VeriSign Class 3 Primary CA - G5」は、必要な場合にのみ使用されます。

Get-AuthenticodeSignature は、発行者のみを一覧表示します。例えば:Get-AuthenticodeSignature C:\windows\system32\MRT.exe

「SysInternals SigCheck」などのツールはこれを行うことができsigcheck.exe -i C:\windows\System32\mrt.exe、この情報はさらに解析できます。SignTool.exeまた、Windows SDK やAnalyzePESigDidier Stevens による他のツールでも、この情報を取得できます。

しかし、これは PowerShell だけを使用して実行できますか? おそらく、Windows で WinVerifyTrust API を使用します。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa382384(v=vs.85).aspx http://support2.microsoft.com/kb/323809/en-us

乾杯、テック