デジタル署名の問題

Excel97以前には、「デジタル署名」は存在しません。

「デジタル署名」というのは、Excel2000以降の機能です。
Excel97の<acronym title=
   Excel97  ↓Excel2002
Excel2000の<acronym title=
これは、VisualBasicエディタ(VBE)の画面ですが、上がExcel97、下がExcel2002のものです。「デジタル署名」は、Excel95Excel97には存在しません。

Excel2000以降で「デジタル署名」を設定したワークブックのマクロは、Excel97でも動作するようですが、ロックしていなくてもExcel97ではVBプロジェクトが開けなくなります。
プロジェクトを表示できません。
※パスワードの登録がなくても、表示できなくなります。

戻る 先頭に戻る

デジタル署名の設定の実際

さて、デジタル署名の登録方法です。

まず、デジタル署名の作成を行ないます。
デジタル証明の作成
これは、Office2000以降がインストールされている「Office」フォルダにある「SELFCERT.exe」を起動させて下さい。
登録は、名前を入力して「OK」をクリックするだけです。

ここで作成するのは、CA認証局の署名と違い、あくまで「個人的に」作成するもので「公」的に証明できるものではありません。

作成は名前を入力するだけの簡単なものですが、実際の認証はこの名前ではなく内部的に作成されたIDで行なわれます。このため、同じ名前のデジタル署名がいくつでも作成することができてしまうので注意が必要です。
あとは、作成したマクロ等の仕組みを持つExcelワークブックにこの署名を実装させます。

次にデジタル署名を登録するブックを開いて、VBEditorに移り、「ツール」から「デジタル署名」を選択します。
デジタル署名を設定する前
この時点では「規定の証明がありません」と表示されています。

上記画面で、「選択」をクリックします。
証明書の選択
ここで、先ほど「SELFCERT」で作成した署名が表示されるので、選択して「OK」をクリックします。
「フレンドリ名」は、この画面の「証明書の表示」から「詳細設定」タブを選択し、「プロパティの編集」で登録できます。

署名が登録されると、「デジタル署名」に署名が表示されます。
デジタル署名(登録済み)
この状態で保存させれば、署名が有効になります。

署名を登録したワークブックを開くと、セキュリティレベルが「高」になっていてもマクロはそのまま無効にはならず、警告が表示されます。
セキュリティの警告(中レベル)
これはセキュリティレベルが「中」の状態です。「この作成者のマクロを常に信頼する」にチェックして「マクロを有効にする」をクリックすると、Excel側にも署名が登録されて、以降はこの確認画面は表示されずに、そのまま開くことができるようになります。

セキュリティレベルが「中」の場合は、「この作成者のマクロを常に信頼する」にチェックしなくても「マクロを有効にする」がクリックできますが、「高」の場合は、
セキュリティの警告(高レベル)
まず、「この作成者のマクロを常に信頼する」にチェックしなければ「マクロを有効にする」がクリックできないようになっています。
チェックした後は、以降はこの警告画面は表示されず、そのまま開かれるようになります。

間違って「この作成者のマクロを常に信頼する」にチェックしてしまった場合は削除できます。
証明許可の削除
「セキュリティ」を開いて、「信頼のおけるソース元」タブを選択、間違って「信頼」した名前を選択して「削除」をクリックし「OK」をクリックします。その後は一旦Excelを終了させると有効になります。

ここで配布目的では「デジタル署名」は使えないという問題があります。Excel2000では、このブックを配布して、他のユーザー(他のPC)でもこの方法でデジタル署名の信頼登録ができるのですが、Excel2002で開いた場合は動作が異なります。

試しに、他のPCに同一ユーザーでログインして、全く同じ名前のデジタル署名を作ってブックに登録し、そのブックを元のPC(同じ名前のデジタル署名が登録されている)で開いてみました。
セキュリティ警告で「常に信頼」にチェックができない。
これはセキュリティレベルが「中」の状態です。ここでは、「マクロを有効にする」は選択できますが、「この作成者のマクロを常に信頼する」にはチェックは付けられません。

セキュリティ警告でマクロを有効にできない。
これはセキュリティレベルが「高」の状態です。「マクロを有効にする」も選択できず、「この作成者のマクロを常に信頼する」にもチェックは付けられません。
もうお分かりのように、同名のデジタル署名を登録しても、同じだとは認識されないのです。
しかたなく「マクロを無効にする」で開くと説明のようなメッセージが表示されます。
マクロを無効にした時のメッセージ
マクロを有効にしたいのなら、セキュリティレベルを変更するか、デジタル署名をこのPC内で登録し直すようにということなのです。
もともと、セキュリティレベルが「高」の状態で、必要なマクロだけが機能できるようにという用途であったわけですから、これでは考え直さなければなりません。

上で説明したデジタル署名の登録ツール「SELFCERT.exe」の画面には、「自分で署名した証明書は、個人的な事柄に限って使用して下さい。」と表示されているのですが、これはこのような結果を先に説明されていたわけです。

さらに悪いことに、このデジタル署名自体をファイルに落として配布することもできない上、このデジタル署名を登録してあるPCであっても、何らかの理由でWindowsの再インストールを行なった場合でのデジタル署名の復旧の不可能なようです。
このようなデジタル署名の仕組みでは、ネットワーク上で共有利用する運用では使い物になりません。
PC内で作成するデジタル署名は共有環境では利用できないとお考え下さい。
Excel 2003の「デジタル署名の作成」を見ると、このことが明示されています。
Office 2003の「デジタル署名の作成」

CA認証局で発行しているデジタル署名ではこのようなことはないらしいにですが、費用も掛かることですし、利用経験もないため詳しくは説明できません。
関心がある方は「日本ベリサイン」をインターネットの検索サイトで検索してみて下さい。