###前提・実現したいこと
Windowsデスクトップ用のソフトウェアをVC++で開発しております。ソフトウェア使用中に広告が表示される機能を備えてあるのですが、広告の画像とURLは実行ファイルとは別の専用のファイル(以下、広告ファイルと呼びます)に保存してあります。この広告ファイルを、定期的にインターネット上からダウンロード(ソースコード上で特定のURLを指定してあります)した新しいものと取り換えるつもりなのですが、そこでセキュリティ上の懸念があります。
###発生している問題・エラーメッセージ
万が一、サーバーが乗っ取られ、不正な広告ファイルをアップロードされてしまうと、ユーザーを危険にさらすことになってしまうのです(例えばフィッシングサイトへ誘導されたり)。そこで、暗号化に目を付けました。私だけが所有する秘密鍵で暗号化し、ソフトウェアに組み込んだ公開鍵で復号化すれば、広告ファイルの偽造は非常に困難になると考えたのです。ですが結局、いろいろ検索してみた結果、CryptoAPIで秘密鍵で暗号化し公開鍵で復号化する方法(署名を除く)を見つけることができませんでした。署名でも上記の目標は達成できると思うのですが、できればインターネット上に置くファイルはたくさんのアクセスに備えて1バイトでも小さい方がいいような気がするので、ハッシュではなくファイル本体を秘密鍵で暗号化したいと考えております。
###聞きたい事
0. CryptoAPI(またはCNG)で秘密鍵で暗号化し公開鍵で復号化する方法はありますか?自分でCSPを作る方法はなしでお願いします。
0. 秘密鍵での暗号化または署名によって、上記のような用途でユーザーの安全を確保できるといえるでしょうか?
以上、日本語や認識が怪しいところもあるかもしれませんが、ご回答いただけると幸いです。どうぞ宜しくお願いいたします。
###試したこと
「CryptoAPI 秘密鍵で暗号化」などと検索しても、普通の鍵交換や署名の方法ばかり出てきて、ほとんどこの話題に関する記事を見つけることができませんでした。そんな中でもこのようなやり取りを見つけました。
その中に以下のような記述があります。
decrypting with public key. I guess by that it is not possible with cryptoapi ?
It is possible with CAPI, but not possible with any of standard Microsoft
cryptography providers (not current version at least). But nothing stops you
from developing your own cryptography provider, signing it (by Microsoft)
and using it from your programs.
英語がイマイチわからないのですが、少なくともこの記事が書かれた時点では自分でCSP作る以外にCryptoAPIで秘密鍵による暗号化を実現する方法はないということなんでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/07 22:37