セキュリティ警告を止める
Accessを起動する際にセキュリティ警告というウインドウが表示される。これはたいへん煩わしいので、止めてみよう。
ただし、以下では市販のパソコンを自分が管理して使用している場合の操作方法を示す。本学のPC教室を始め、セキュリティ管理を組織的に行っている場合は、セキュリティ管理者の説明に従わなければならない。
セキュリティ警告とは
Exel, Word, AccessなどMicrosoft Officeの文書ファイルを開こうとすると、以下のようなセキュリティ警告画面が表示される。
図1 セキュリティ警告
コンピュータに損害を与えるコードとは何か? それはマクロと呼ばれるものであり、通常はファイル内の計算や処理を自動化するためのものである。しかし、マクロウイルスという悪意を持ったコードが含まれていると、さまざまな損害を生じる可能性がある。メッセージはそのことを警告するために表示される。
セキュリティ警告を表しない2つの方法
処理を続行してOfficeのドキュメントを開くには、警告画面に対し「開く(O)」を選択しなければならない。 このような画面が表示されないようにするには、以下二つの方法がある。 (1) セキュリティレベルを下げる (2) VBAプログラムにデジタルコード署名をする。 セキュリティレベルを下げるのは危険なので勧められない。ここでは自分が作ったプログラムはExelが実行できるようにデジタルコード署名することにする。
SelfCert(自分のパソコンでのみ有効な証明書)を発行する
まず、自分のパソコンでのみ有効な証明書を作ろう。
A. XPの場合
SelfCertを作成する 「スタート」から「ファイル名を指定して実行」を選ぶ
そして次の画面が表示される。
図3
パスに、
C:\Program Files\Microsoft Office\OFFICE11\SELFCERT.EXE
を指定し、「実行」をクリックする。
すると、以下の画面が表宇治されるので、証明書の名前適当な文字列を入力する。この文字列は後で使うのでメモしておくこと。ここでは、
Samの証明
という名前にする。
図4
Okをクリックすると証明書が作成される。
図5
もしこのような表示にならない場合、その証明書名がすでに使用されている可能性がある。その場合は別の名前を使用する。それでもだめな場合は何かシステムに問題があるので、だれかシステムに詳しい人に相談する。
B: Vista
スタートメニューからMicrosoft Office, Microsoft Offeceツール, VBAプロジェクトのデジタル証明書を選びます。
後の操作はほぼ同じ。
アクセスのファイルに署名する
次に、使用するAccessのファイルに今作成した証明書を使って署名しよう。
通常と同じ方法でAccesswを起動する。この時、最初の1回だけは、セキュリティ警告対し、無条件に「開く」をクリックする必要があるが、これはしかたがない。
図6
ここで、「ツール/デジタル署名」を選ぶ
図7
図8
すると、次の画面が表示されるので、先に作成した証明書の名前を選ぶ。ここでは「Samの証明」を選ぶ。
図9
Okをクリックし、
図10
ここでもOkをクリックして署名を終了する。
図11
ここで、Visual Basicを終了する。
図12
Accessも終了する。
Accessで証明書を有効にする
再度Accessを起動すると今度は次の画面が表示される。
図13
この画面は、VBAのプログラムにはデジタル署名がされており、それを認証するかどうかを確認するものだ。そこで、今度は
この発行元のファイルを常に信頼し、自動的にファイルを開く。
をチェックし、
開く
をクリックする。これで、Accessの起動時にセキュリティ警告が表示されることはなくなる。
これまでの操作で行ったことの意味は?
セキュリティ認証の仕組みは、すこしややこしくてわかりにくい。ここで、これまでに行ったことがどういう意味を持つのかを簡単に解説しておく。
証明書の発行
コンピュータ内でデータの正当性を確認するには、署名アルゴリズムというものを用いる。これは非公開暗号という暗号方式を基本としている。非公開暗号を用いると、ある元のデータからP,Qという数値の組を生成して、この2つの数を用いると、
E(T,P)->C, D(C,Q)->T
という計算を行うことができる。この時、 PからQ, QからPを求めることや、Qを用いることなくTからCを求めること、Qを用いることなくCからTを求めることは事実上できない(非常に時間gかかる)。
「新規作成」したアクセスのファイルにはマクロウイルスは含まれていない、という前提でここでは「開く」を指定しよう。ただし厳密にいえば、これまでに一度でもウイルスに感染した経験があれば、「新規作成」に使用するテンプレートファイルがマクロウイルスに感染している可能性は大いにある。最良のウイルス対策は、ウイルス除去ではなく一度もウイルスに感染しないことである、という鉄則は変わらない。
セキュリティ警告が表示されるのはなぜか
マクロウイルスの危険があるのは、Officeにマクロ機能が備わっているためである。Officeには業務の自動的な処理を支援するために、VBAというスクリプト言語が備わっている。これは基本的にはHTML言語におけるJava Scriptなどと同様のドキュメントに内蔵されたプログラムコードである。VBAはこのようにOfficeドキュメントをより便利にするための機能だが、VBAを利用するとシステムを破壊したりセキュリティを侵害する機能を持つプログラムを作ることができる。Offiec製品のスクリプト言語のことを「マクロ」と呼ぶので、このようにVBAを利用した悪意のあるプログラムは「マクロウイルス」と呼ばれている。マクロウイルスは、Wordなど一見ウイルスとは無縁のドキュメントファイルを開いただけで、次々と感染するというたいへんやっかいなものだ。
そこでその対策として導入されたのが、セキュリティ認証である。この方法を用いると、Office製品はあらかじめ信頼できる作成者が認証したVBAプログラムしか実行しない。マクロウイルスに感染したOfficeファイルのマクロプログラムはそのままでは認証キーが登録されていないので、自動的に実行されることはない。
警告画面に対し「開く(O)」を選択しないかぎりVBAのプログラムは実行できない。 ExelやWordで素性のわからないマクロをうっかり使うと、それが「マクロ・ウイルス」というコンピュータ・ウィルスの一種で、感染してしまう恐れがある。以前多くのマクロ・ウイルスの被害が発生したので、いまではExel、Wordとも最初は「デジタル署名」という安全証明書のないマクロは実行できない。自作のVBAプログラムはコンピュータにとっては、得体のしらないプログラムで、もしかするとマクロ・ウイルスかもしれないので、そのままでは実行できないのだ。 自作のマクロを実行するためには二つの方法がある。 (1) セキュリティレベルを下げる (2) VBAプログラムにデジタルコード署名をする。 セキュリティレベルを下げるのは危険なので勧められない。ここでは自分が作ったプログラムはExelが実行できるようにデジタルコード署名することにする。