この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
clr:strong_name [2009/02/03 07:45] admin 作成 |
clr:strong_name [2014/11/30 17:32] admin |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | {{indexmenu_n>4}} | ||
====== Strong Name ====== | ====== Strong Name ====== | ||
ライン 8: | ライン 9: | ||
COMを使ってabc.dllを配布する場合、インストールプロセスに於いて、abc.dllのRegsterServerを実行し、 abc.dllがもつGUIDをレジストリに登録します。使う側はCoCreateInstanceなどを使ってそのGUIDを指定し利用します。しかしそのGUIDはオープンであって他の人が同じGUIDを使ってそのライブラリに偽装することを防ぐことはできません。 | COMを使ってabc.dllを配布する場合、インストールプロセスに於いて、abc.dllのRegsterServerを実行し、 abc.dllがもつGUIDをレジストリに登録します。使う側はCoCreateInstanceなどを使ってそのGUIDを指定し利用します。しかしそのGUIDはオープンであって他の人が同じGUIDを使ってそのライブラリに偽装することを防ぐことはできません。 | ||
- | SNは上記の問題を解決するためのしくみです。abc.dllのハッシュを秘密鍵で暗号化し、abc.dllの内部に公開鍵と電子署名(暗号化したハッシュ)を持たせます。そしてabc.dllを使うアプリapp.exeをビルドする際、abc.dllから公開鍵と電子署名を得てその情報を app.exeに埋め込みます。 | + | SNは上記の問題を解決するためのしくみです。abc.dllのハッシュを秘密鍵で暗号化し、abc.dllの内部に公開鍵と電子署名(暗号化したハッシュ)を持たせます。そしてabc.dllを使うアプリapp.exeをビルドする際、abc.dllから公開鍵と得てその情報を app.exeに埋め込みます。実行時にabc.dllのハッシュを計算したものと電子署名を公開鍵で復号したものが一致するか確認します。 |
===== VC2005でアセンブリにStrong Nameを施す ===== | ===== VC2005でアセンブリにStrong Nameを施す ===== |