2

C++ アプリケーション (実際にはブラウザー プラグインですが、これはあまり関係ありません) では、IPC を介して特定のインターフェイスを公開する外部プロセスを実行できるようにする必要があります。プラグイン アーキテクチャのようなものですが、プラグインは DLL などではなく個別のアプリケーションです。

誰かが必要なインターフェイスを簡単に見つけ出し、悪意のある「プラグイン」を作成して Web サイトでホストすることができます。これは、SWF がサンドボックス化されていることを除けば、悪意のある SWF に匹敵します。その後、ブラウザ プラグインをインストールした誰かがそのページにアクセスすると、ドライブバイ攻撃のような悪意のあるプロセスをロードして実行します。

私が目にする 1 つの推奨事項は、署名メカニズムを使用することですが、それがどのように達成されるかはわかりません。注意してください、私は大衆向けではなく専門家向けに何かを作成しているので、正規のプラグインを作成している企業の数は少ないでしょう.

4

2 に答える 2

0

DLL と EXE はどちらも、Authenticode テクノロジと X.509 証明書を使用して署名されています。

Windows に組み込まれたメカニズムを使用して Windows で Authenticode 署名を検証するには、CryptoAPI のWinVerifyTrust関数を使用します。これには、各「プラグイン」が、よく知られている CA (少なくとも Windows では知られている) によって発行された証明書を使用して署名されている必要があります。

プラグイン開発者に独自の証明書を提供したい場合 (CA から証明書を購入する費用を節約できるようにするため)、 SecureBlackbox 製品のPKIBlackboxパッケージを使用して、独自の認証局になることができます。PKIBlackbox を使用すると、Authenticode 署名を作成して検証することもできます。

于 2011-05-30T12:44:00.417 に答える
0

GPG1 つの方法は、またはのような暗号化ライブラリを使用することOpenSSLです。両方を使用して、公開鍵と秘密鍵のペアを作成します。秘密鍵を使用してアプリケーションに署名します。ブラウザ プラグインには、署名の検証に使用される公開鍵が含まれています。これらのライブラリは、特に使いやすいものではありません。dgst.cたとえば、OpenSSL パッケージから読み取ります。プラグインに (少なくとも検証部分を) 適応させる必要があります。学ぶべき API がたくさんあります。そのまま使用dgst.cしてファイルに署名することができます。

Windows を使用している場合は、ほとんど同じ方法で Windows Crypto API (CAPI) を使用することもできますが、Windows API についてはほとんど知りません。

もう 1 つの方法は、署名アルゴリズムをゼロから実装することです。これも気弱な人向けではありません。http://en.wikipedia.org/wiki/Digital_signatureを読んで、実装しやすいと思われる方法 (RSA、DSA、ElGamal...) を選び、それを実装します (署名部分と検証部分の両方、または検証部分 -- ただし、署名に使用できるように、OpenSSL または GPG と互換性があることを確認してください。

于 2011-05-30T11:59:33.337 に答える