|
デジタル署名について |
|
|
ここで述べることは、本来のビジュアル・カルキュレーションとは、全く関係がありませんが、ダウンロードできるステンシルに使ってあるVBAマクロにデジタル署名をすることを試みましたので、そのことについて述べるものです。
|
|
| |
 |
|
|
|
|
デジタル署名にもいろいろある
|
|
上の図は、デジタル署名をしたVBAマクロに添付されている「証明書」です。 デジタル署名にもいろいろありますが、VBAのマクロなど、ソフトウエアのデジタル署名は、コード署名と言われています。
|
|
証明書の目的
|
|
上の図をよく見ると「この証明書の目的」が二つ書いてあります。 「ソフトウエアの発行者の送信であることを確認する」というのは、たとえばこのVBAマクロが、確かに私が送ったものである、ということを確認することです。そのことは、少し下の方にある「発行先」のところに”Junichi
Yoda”と名前が書いてあることで確認します。 もう一つの目的の、「公開後のソフトウエアの変更を禁止する」というのは、もしあなたが、このVBAマクロを変更して保存すると、添付されていた「証明書」が消えてしまう、ということです。決して、私が書いたVBAマクロを変更できないということではありません。もし変更すると証明書が消えてしまいますから、証明書が付いているVBAマクロは他の人が変更したものではありません、という意味になります。
|
|
発行先・発行者
|
|
ここに書いてある「発行者」とは、この証明書をこのVBAマクロに署名した私に対して発行した組織のことを指しています。この「発行者」が、Junichi
Yodaという「発行先」に対して、「有効期間」内にデジタル署名をすることができるよう、証明書を「発行」した、という意味です。 「発行者」のところには、”UTN-UserFirst-Object”と書いてあります。これは何でしょう。会社名でしょうか。私にはわかりませんが、「詳細」というタブ(上の方にある)を開くと、その中の「発行者」という行に、”UTN-UserFirst-Object,http://www.usertrust.com/”と書いてあります。このURL、www.usertrust.com/ をインターネットブラウザーで開くと、COMODO社のホームページです。私が証明書を購入した会社です。.
|
|
発行者のステートメント
|
|
「発行者のステートメント」というボタンを押すと、またしてもCOMODO社のホームページが開きます。
|
|
証明書は誰でも購入できる?
|
|
私は、ある方からメールで、「VBAマクロにデジタル署名をして欲しい。」と要望されました。また、「コード署名用の証明書は、誰でも購入できます。」、とも言われました。そして、ここから購入すると安い、というところを教えていただきました。その会社はKSoftWareという会社です。URLは、(http://www.ksoftware.net/)です。実際に調べてみると、確かに他より安いです。そこで早速手続きをしました。KSoftWareで購入の手続きをすると、ある所から先は、COMODO社のホームページに変わり、そこで手続きをすることになります。不思議なことに、最初からCOMODO社のホームページで購入するより安いのです。こうして、私もデジタル署名の証明書を購入できました。
|
|
購入に必要な書類
|
|
証明書を購入するには、本人確認ができる書類のコピーが必要です。購入先は英語しか、わかりませんので、パスポートのように英文が書いてあるものが必要でした。また、税金や電気の領収書のような、本人の住所が確認できる書類が必要でした。こういう書類は日本語で書いてありますので、必要な個所に英文を併記し、「以上間違いありません。」ということを英文で書いておく必要がありました。私は、こういう書類をすぐに準備できませんでしたので、購入先と何度かやり取りをしながら揃えました。
|
|
証明書の受け渡し
|
|
本人確認の書類の送信は、電子メールでできました。しかし証明書を受け取るためには、独自のドメイン名のメールアドレスが必要とされました。たとえば、junichi@yoda.comというようなメールアドレスが必要でした。しかも、このドメインは、所有者を確認できるドメインであることが必要でした。「ドメイン 検索」、または「Whois
検索」のできるサイトで検索したら、所有者の氏名や住所が英文で表示されることが必要でした。私の場合、ドメインを所有していませんでしたので、困りました。いろいろさがして、グーグルで、ドメインを作りましたが、グーグルで作ったドメインは、個人情報保護のため、検索しても所有者が確認できませんでした。そこで、Microsoft
Office Live ホームにドメインを作りました。ここも、十分注意して作らないと、ほとんど自動的に個人情報が保護されてしまいます。
|
|
証明書のインストール
|
|
こうして、どうにか受け取った証明書をインストールすると、ソフトウエアにデジタル署名ができるようになりました。デジタル署名ができるのは、証明書をインストールしたマシンでだけです。多分、もうほかのマシンにはインストールできないでしょう。
|
|
証明書の有効期間
|
|
証明書の有効期間は、上の図にもありますように、2008年6月30日から2009年7月1日までの1年間です。有効期間を過ぎると、署名することができなくなります。
それでは、有効期間内に署名したVBAマクロは、有効期限を過ぎたら、どうなるのでしょう。これは、私はまだ経験していませんのでわかりません。なにか警告がでるのだろうと思いますが、わかりません。でもそのあとマクロが使えなくなるというようなことは、多分ないのではないかと思います。証明書が有効でないので、証明書にこだわる人からは苦情が出るかもしれません。
|
|
タイムスタンプ
|
|
じつは、この証明書には、もう一つの機能があります。それは、タイムスタンプです。タイムスタンプとは、私がVBAのマクロに電子署名をした日時の記録です。証明書の期限がきれたあとでも、タイムスタンプの記録は確認できるそうです。このことは、別のある方(Nさん)が確かめて教えてくれました。ところでタイムスタンプは何の役に立つのでしょうか。それは、状況によりけりでしょう。
|
|
タイムスタンプを有効にするには
|
|
タイムスタンプの機能を有効にするには、パソコンのレジストリーにタイムスタンプ専用の項目 [HKEY_CURRENT_USER\Software\Microsoft\VBA\Security]
を設け、必要なデータを入力する必要があります。そのデータとは、 「TimeStampURL」
と 「TimeStampRetryCount」 と 「TimeStampRetryDelay」
です。 この内、「TimeStampURL」は、COMODO社のタイムスタンプ専用のアドレスです。 私が、デジタル署名をした瞬間に、このURLから正確な日時を取得するのが、目的だと思います。残りの二つは一度でうまく日時が取得できなかった場合にリトライしたりする回数ではないかと思います。これらの設定方法についても、Nさんに教えていただきました。あとで、マイクロソフト社やCOMODO社のサイトで検索したら、同じようなことが書いてありました。
|
|
タイムスタンプを確認するには
|
|
上の図ではタイムスタンプを見ることができません。タイムスタンプを見るのには、VBAマクロが書いてあるVisioの図面を開いたとき、「セキュリティに関する通知」というダイアログが表示され、”セキュリティに影響を及ぼす可能性のある問題点が検出されました。”というメッセージが表示されます(下図参照)。
|
|
|

|
|
|
|
「署名の詳細を表示する」という項目をクリックすると、「署名時刻」を確認できます(下図参照)。 しかし、すでに、「発行元からのコンテンツを常に信頼する。」と設定したあとは、同じ方法では見ることができません。その場合は、メニュー ツール/セキュリティセンター/「信頼できる発行元」にある該当の証明書を削除し、「マクロの設定」をクリックし、「警告を表示して、すべてのマクロを無効にする。」と設定してあることを確認する必要があります。(Visio2007)
|
|
|
|

|
|
|
|
デジタル署名された図面の開き方
|
|
|
|
VBAのマクロにデジタル署名があってもなくても、図面の開き方は同じですが、その後のメッセージが少し違います。ツール/セキュリティセンター/マクロの設定で、「警告を表示してすべてのマクロを無効にする。」と設定されていれば、以下のようになります。 VBAマクロが書いてあるVisioの図面を開いたとき、「セキュリティに関する通知」というダイアログが表示され、「セキュリティに影響を及ぼす可能性のある問題点が検出されました。」というメッセージが表示されます(上図)。そこで署名の詳細をクリックして証明書が確認できたら、「マクロを有効にする」、または「発行元からのコンテンツを常に信頼する」というボタンをクリックします。「マクロを有効にする」を押した場合は、次回に図面を開くときも、同じ通知が出ます。「発行元からのコンテンツを常に信頼する」を押した場合は、次回からは出なくなります。
|
|
|
|
|
|