説明

アクセスセキュリティシステム

【課題】本発明は、迅速かつ正確に文字列を選別、正当又は不正なウェブアクセス要求を判定し、その要求を受信するための受信部を具備するアクセスセキュリティシステムを提供することを目的とする。
【解決手段】上記課題は、第1の記憶部(2)に記憶された文字列を暗号化するための第1の暗号化部(3a)と、暗号化した暗号文を格納する第2の記憶部(4)と;受信部(5)が受信した通信情報に含まれる所定の情報を抽出する情報抽出部(6)と、前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)とを具備するアクセスセキュリティシステムなどにより解決される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化を行った文字列を予め格納し、暗号文によるマッチング判定を行うことで、迅速かつ正確に文字列を選別できるアクセスセキュリティシステムなどに関する。
【背景技術】
【0002】
インターネットが普及するにつれて、既存のドメインネームシステムが書き換えられて意図しないウェブサイトへアクセスしてしまうケースや、コンピュータがウィルスに感染してドメインネームシステムで名前解決することなく偽のウェブサイトへアクセスしてしまうケースがある。よって、意図しないウェブサイトや偽のウェブサイトへアクセスしないよう、コンピュータで事前にアクセス先を確認できるプログラムなどが開発されている。
【0003】
たとえば、アクセス先のウェブサイトが日本国内にあるウェブサーバで運用されている場合、アクセス先のウェブサイトが日本国内又は他の任意の国のウェブサーバで運用されていることを判断し、意図しない、偽のウェブサイトへのアクセスを利用者へ示唆するプログラムが開発されている。
【0004】
しかし、このプログラムは、日本国内又は同国内に、意図しない、偽のウェブサーバがある場合には、意図しない、偽のウェブサイトへアクセスしてしまうという問題がある。また、情報が書き換えられてしまう可能性のある既存のドメインネームシステムへ逐次照合するため、偽のウェブサイトへアクセスしてしまうという問題が残る。
【0005】
さらには、ウェブサイトへアクセスした瞬間にコンピュータに害をなす、意図しない、偽のウェブサイトへのアクセスを防ぐことができないという問題がある。
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、迅速かつ正確に文字列を選別できるアクセスセキュリティシステムを提供することを目的とする。
【0007】
さらには、正当又は不正なウェブアクセス要求を判定し、その要求を受信するための受信部を具備するアクセスセキュリティシステムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、基本的には、照合を行う文字列などを予めハッシュ関数などで暗号化して記憶しておき、その記憶された文字列を用いて照合作業を行えば、照合作業の際にデータベースから文字列などを一々読み出す必要がなくなり、予め記憶された機械語状態の暗号文を用いて照合できるので、きわめて正確かつ迅速に照合作業を行うことができるという知見に基づくものである。すなわち、任意の文字列のマッチングを、SHA−1などによる暗号文で行うというものである。
【0009】
本発明は、具体的には、1又は複数の文字列を記憶した第1の記憶部(2)と接続可能とされ、前記第1の記憶部に記憶された文字列を暗号化するための第1の暗号化部(3a)と、前記第1の暗号化部が暗号化した暗号文を格納する第2の記憶部(4)と;通信情報を受信するための受信部(5)と接続可能とされ、前記受信部が受信した通信情報に含まれる所定の情報を抽出する情報抽出部(6)と、前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、前記第2の暗号化部が暗号化した暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と、を具備する、アクセスセキュリティシステムに関する。本発明はまた、ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを記憶した第1の記憶部(2)と接続可能とされ、前記第1の記憶部に記憶された文字列を暗号化するための第1の暗号化部(3a)と、前記暗号化部が暗号化した暗号文を格納する第2の記憶部(4)と;ウェブアクセス要求を受信するための受信部(5)と接続可能とされ、前記受信部が受信したウェブアクセス要求に含まれる所定の情報を抽出する情報抽出部(6)と、前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、前記第2の暗号化した暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)とを具備する、アクセスセキュリティシステムなどに関する。このようなシステムは、例えば、コンピュータ又はサーバなどとして実装されうる。アクセスセキュリティシステムとは、たとえば、不当なウェブサイトへのアクセス要求などを排除するためのシステムなどを意味する。
【0010】
後述するように、情報抽出部(6)は、例えば、ドメインネームやIPアドレスは、これら情報を含むウェブアクセス要求通信の所定の場所に所定の関数や定義文などで定義されているので、それらの関数などを用いることで、所定の情報を指定し、抽出することができる。
【0011】
また、関連性判定部(8)は、例えば、第2の記憶部に格納されたハッシュ値(またはハッシュ値の最初のブロック)などに基づいて、第3の記憶部の所定の項目(ハッシュ値に関する項目)に、そのハッシュ値と同じハッシュ値などが存在するかどうかマッチングを行う。ハッシュ値などは、通常の文字列に比べてきわめて容量が小さいので、予め暗号化し登録した文字列と一致する文字列がウェブアクセス要求に含まれるかどうかを、きわめて迅速にマッチングすることができる。また、あえて、チェックしたい用語を暗号化したので、マッチングの際に、いちいち文字列DB(第1の記憶部)などにアクセスする必要がなくなる。
【0012】
例えば、文字列abc、defは、それぞれSHA−1などの暗号化処理により、ハッシュ値x、yに暗号化されるとすると、ハッシュ値xは、文字列abcに対応し、ハッシュ値yは文字列defに対応する。したがって、このハッシュ値について、マッチングを行えば文字列をマッチングしたことになるのである。
【0013】
さらには、複数のドメインネームシステムが所有し補完し合うドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを第1の記憶部(2)に格納し、前記第1の記憶部に記憶された文字列を第1の暗号化部(3a)にて暗号化し、前記暗号化部が暗号化した暗号文を第2の記憶部(4)に格納し;ウェブアクセス要求を受信するための受信部(5)から所定の情報を情報抽出部(6)にて抽出し、前記情報抽出部が抽出した情報を第2の暗号化部(3b)にて暗号化し、前記第2の暗号化した暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか関連性判定部(8)にて判断し、それぞれの暗号文が一致した場合に一致(正当なウェブアクセス)という情報を出力し、一致しない場合に不一致(不正なウェブアクセス)という情報を出力し、不正なウェブサイトへのアクセス要求を効果的に排除する。
【0014】
また、不正なウェブサイトへのアクセス要求などに関する通信情報を確実に抽出するため、受信部、特にウェブアクセス要求を受信するための受信部(5)を具備することによって、従来のドメインネームシステム(DNS)では抽出できない通信情報を抽出できるようになる。
【発明の効果】
【0015】
従来の照合方法を採用したアクセスセキュリティシステムであれば、データベースなどに文字列を登録するだけで、照合のもととなる文字列を簡単にアップデートできる。一方、本発明のアクセスセキュリティシステムでは、データベースなどの記憶部に登録された文字列を暗号化した後、記憶しなければならずアップデートが煩雑になる。しかし、本発明のアクセスセキュリティシステムでは、文字列を照合する際に、照合する文字列が既に機械語(たとえば暗号化されたハッシュ値)などとして記憶されているので、マッチングしたい情報を暗号化することにより、迅速かつ正確に照合作業を行うことができることとなる。しかも、照合するものが機械語であるから、その精度を高めることができる。また、ハッシュ値などの特定の部分のみを用いて1次スクリーニングを行えば、きわめて迅速にマッチング判定を行うことができることとなる。そのような判定によって、偽のウェブサイトや、ウェブサイトへアクセスした瞬間にコンピュータに害をなすようなサイトかどうか、迅速かつ正確に判定できるので、意図しない、偽のウェブサイトへアクセスしてしまうという問題や、ウェブサイトへアクセスした瞬間にコンピュータに害をなす、意図しない、偽のウェブサイトへアクセスしてしまう事態を効果的に防止することができることとなる。
【0016】
さらには、複数のドメインネームシステムが所有し補完しあうドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを一箇所に集約することで、既存のドメインネームシステムが書き換えられて意図しないウェブサイトへアクセスしてしまうケースや、コンピュータがウィルスに感染してドメインネームシステムで名前解決することなく偽のウェブサイトへアクセスしてしまうような、不正なウェブアクセス要求を効果的に排除することができることとなる。
【0017】
また、不正なウェブサイトへのアクセス要求などに関する通信情報を確実に抽出するための受信部(5)を具備することによって、DNSサーバへドメインネームとIPアドレスに関する情報を確認しない不正なウェブアクセス要求に対して、従来のDNSでは抽出する手段がなかったが、本発明では受信部(5)を具備することによって抽出できるようになる。
【発明を実施するための最良の形態】
【0018】
[基本システム構成]
図1は、本発明のアクセスセキュリティシステムの基本構成を示すブロック図である。図1に示されるとおり、本発明のシステム(1)は、1又は複数の文字列を記憶した第1の記憶部(2)と接続可能とされ、前記第1の記憶部に記憶された文字列を暗号化するための第1の暗号化部(3a)と、前記第1の暗号化部が暗号化した暗号文を格納する第2の記憶部(4)と;通信情報を受信するための受信部(5)と接続可能とされ、前記受信部が受信した通信情報の文字列に含まれる所定の情報を抽出する情報抽出部(6)と、前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、前記第2の暗号化部が暗号化した暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と、を具備する。なお、第1の記憶部と接続可能であれば、第1の記憶部は必須の構成ではない。また、受信部、情報抽出部、及び第2の暗号化部も、任意の要素であり、第2の暗号化部が暗号化した暗号文を、第3の記憶部が入手し記憶できるものであれば良い。
【0019】
任意要素は、含まれていても含まれていなくてもよく、例えば、本発明のシステム(1)の別の形態としては、1又は複数の文字列を記憶した第1の記憶部(2)と;前記第1の記憶部に記憶された文字列を暗号化するための第1の暗号化部(3a)と、前記暗号化部が暗号化した暗号文を格納する第2の記憶部(4)と;ウェブアクセス要求などの通信を受信するための受信部(5)と;前記受信部が受信したウェブアクセス要求などの文字列に含まれる所定の情報を抽出する情報抽出部(6)と、前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、前記第2の暗号化した暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と、を具備するものであってもよい。
【0020】
本発明のシステム(1)の別の形態としては、1又は複数の文字列を記憶した第1の記憶部(2)と接続可能とされる前記第1の記憶部に記憶された文字列を暗号化するための第1の暗号化部(3a)と接続可能とされ、前記暗号化部が暗号化した暗号文を格納する第2の記憶部(4)と;ウェブアクセス要求などの通信を受信するための受信部(5)と接続可能とされ、前記受信部が受信したウェブアクセス要求などの文字列に含まれる所定の情報を抽出する情報抽出部(6)と、前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、前記第2の暗号化した暗号文を記憶するための第3の記憶部(7)と、前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)とを具備するものであってもよい。
【0021】
以下、本発明のシステムに含まれる各要素について説明する。
第1の記憶部(2)には、1又は複数の文字列が記憶される。第1の記憶部に記憶されるマッチングしたい文字列として、例えば任意のドメイン名、さらに厳密に言えばFQDN(Fully Qualified Domain Name:インターネットやイントラネットなどのTCP/IPネットワーク上で、ドメイン名・サブドメイン名・ホスト名を省略せずにすべて指定した記述形式のこと)、外部DNSサーバへの名前解決処理委譲を示す文字列、などがあげられる。第1の記憶部に記憶される文字列として、ユーザのアクセスを防ぐことが意図されるウェブサイトへリンクされる可能性があるドメインネーム、IPアドレス、及び外部DNSサーバへの名前解決処理委譲を示す文字列があげられる。
【0022】
この第1の記憶部(2)は、例えばデータベースとして構成されるものがあげられる。また、第1の記憶部は、本システム外のコンピュータやサーバなどの記憶部であっても、そのような記憶部の所定のファイルやテーブルなどであっても、文字列が記載されている暗号化された定義ファイルであってもよい。また、データベースとして構成される場合は、公知のデータベースマネージメントシステムにより制御されていてもよい。データベースとして、公知の記憶装置を用いることもできるし、公知の記録方式を用いることもできる。なお、ハードウェアやソフトウェアで実装する場合は、情報の授受をすることができるようにそれぞれの要素はバスなどで連結されており、動作に応じて情報が出力及び入力される。
【0023】
なお、第1の記憶部(2)は、例えばインターフェイス部(9a)を介して、入力装置と接続され、様々な用語などが適宜入力され、第1の記憶部(2)の所定のファイルなどが更新されるものが好ましい。
【0024】
第1の記憶部(2)がデータベースとして構成される場合、DBMS(データベース管理システム)として、公知のDBMSがあげられる。DBMSとして、DES(Data Encryption Standard)方式やRSA方式などにより所定の項目に対して暗号化を施すものでもよい。そして、この暗号化は、後述の第1の暗号化部(3a)における暗号化方式と同一であっても異なってもよい。ただし、本発明としては、第1の記憶部(2)における暗号化処理ではなく、第1の記憶部と接続されるサーバなどに暗号化プログラムなどが格納され、その暗号化プログラムにより暗号化が行われるものが好ましく、その暗号化プログラムを用いてウェブアクセス要求などの通信から抽出された情報も暗号化されるものが好ましい。
【0025】
第1の記憶部(2)は、本発明のシステムを構成する任意のサーバ内に設ける。暗号化された定義ファイルを読み出す場合は、第1の記憶部が後述する第1の暗号化部(3a)の機能をも具備するものである。
【0026】
例えば、本発明のアクセスセキュリティシステムが、ウェブアクセス要求確認のシステムである場合、第1の記憶部(2)が記憶する文字列としては、ドメインネーム又はIPアドレスがあげられる。そのような1又は複数の文字列は、後述のように暗号化されると、それらの用語に対応した暗号文(例えば、ハッシュ値)とされる。
【0027】
第1の暗号化部(3a)は、たとえば、MD5(Message Digest 5)、MD4、拡張MD4、RIPEMD、SHA、SHA−1(Secure Hash Algorithm 1)、HAVAL、RIPEM−160などの暗号化プログラムに従って、第1の記憶部に入力される文字列、又は第1の記憶部に格納される文字列を自動的に暗号化(Encrypt)するための装置である。なお、好ましい暗号化方法として、暗号化前の平文に比べ暗号化後の暗号文の容量が小さくなるものがあげられる。暗号化する箇所を特定するためには、例えば、第1の記憶部内のフラグなどで識別された所定のファイル又はテーブルに格納された所定の項目に含まれる文字列のみを読み出して、暗号化を行うようにすればよい。このように第1の記憶部に格納された所定の文字列は、例えばCPUの指令などにより読み出され、第1の暗号化部(3a)へと送信される。また、第1の暗号化部(3a)により暗号化された情報は、第2の記憶部(4)へと送信される。
【0028】
本発明の好ましい暗号化方式のひとつであるSHA−1について説明する。この暗号化方式では、メッセージなどの平文(Plaintext)を512ビットごとのブロックに分割する。このために、最後のブロックを448ビットまでにパディングし、最後の64ビットにメッセージの長さが入るようにする。このようにして、平文を512ビットごとのブロックにパディングする。そして、パディングされた平文を、それぞれのブロックごとにW〜W79の計算を施す。すなわち、512ビットを32ビットごとに16分割し、最終的に32ビットの長さを持つ80個の値を計算する。具体的には、まずW〜W16を用意する。そして、XOR回路又はXOR装置に、Wt−16、Wt−14、Wt−8、及びWt−3を入力し、その出力に1ビット回転処理を行い、Wを求める。次に、ブロックの処理を行う。この処理では、32ビットごとのA、B、C、D、及びEの5つの値にW〜W79の値を混ぜながらA、B、C、D、及びEの値を計算して、最終的なA、B、C、D、及びEの値を求め、その値をあわせたものをハッシュ値とする。
【0029】
このように暗号化を行うので、登録した用語を平易に解読されないという効果を得ることができる。さらには、入れ子文字による文字数制限をコンピュータ演算限界値まで受けないという効果を得ることができる。
【0030】
第1の暗号化部(3a)の好ましい態様は、第1の記憶部(2)に接続されれば、第1の記憶部(2)に含まれる所定のテーブルやファイルに含まれる所定の文字列などの平文を、自動的に読み出して、暗号化するものがあげられる。この場合、例えば、CPUがメインメモリ中の暗号化プログラムの指令を受け、第1の記憶部の所定のテーブルなどに記憶される文字列などを読み出し、読み出した文字列などをRAMなどに記憶させ、RAMなどに記憶された文字列を暗号化し、暗号化された文字列をRAMなどに記憶させ、RAMなどに記憶された暗号文を第2の記憶部(4)などへ出力する。また、第1の暗号化部(3a)で暗号化された文字列(暗号文:Cipher textとも呼ぶ)として、平文とハッシュ値とを含むものであってもよいし、ハッシュ値のみからなるものであってもよいし、ハッシュ値のうち先頭ブロックのみであってもよい。ハッシュ値又はハッシュ値の先頭ブロックを用いて、後述の判定処理を行えば、判定を正確かつ迅速に行うことができる。なお、第1の暗号化部の好ましい態様は、SHA―1、MD5などの暗号化アルゴリズムに従って暗号化を行うものである。
【0031】
第2の記憶部(4)は、例えば、1又は複数の文字列を記憶するための装置である。具体的には、第1の暗号化部(3a)で暗号化された文字列を、並列記憶する。好ましくは、暗号化された文字列を機械語により物理メモリに格納する。ハッシュ関数とされた文字列は、所定のファイル分けや、テーブル分けがなされた状態で記憶されることが好ましい。なお、第2の記憶部(4)として、比較部を有し、既に格納された情報と、新たに入力される情報とを比較し、その差分情報だけを新たに記憶部に格納するものは、本発明の好ましい実施態様である。第2の記憶部(4)として、ハードディスク、メモリなど公知の記憶装置を用いることができる。また、所定の処理機能を有する記憶部を実装するためには、例えば、ハードディスクなどの記憶装置とCPUなどを含み、CPUがメインメモリ中の制御プログラムの指令を受け、所定の制御を行えるようにすればよい。そして、第2の記憶部(4)に記憶された情報は、CPUなどの指令を受けて適宜読み出し可能とされ、バスなどを解して、関連性判断部(8)に送信される。
【0032】
第2の記憶部(4)は、例えば、文字列を固有ハッシュ関数化したものをIDとして記憶するものがあげられる。このIDは、好ましくは、第1の記憶部におけるインデックス(索引)として用いられる。そして、文字列、暗号化された文字列などは、このインデックスにより、記憶部のどこに保存されたかという情報と関連して記憶される。このようにすることにより、データ発信者が意図する最新の文字列を用いて確実で高速にデータを抽出できるという効果を得ることができる。なお、第2の記憶部(4)の記憶構造として、リレーショナルデータベースが構成されており、前記固有ハッシュ関数化(暗号化)されたIDと、もとの文字列に関する情報とが関連付けて記憶されるものであってもよい。第2の記憶部(4)には、複数のファイルが設けられ、そのうち用途に応じて特定のファイルを選択できるようにされていてもよい。そして、そのようなファイルには、レコードとして、文字列をハッシュ関数化したものをIDとして格納されるものがあげられる。
【0033】
前記第2の記憶部(4)の好ましい態様として、ドメインネーム、IPアドレス、又は外部DNSサーバへの名前解決処理委譲を示す文字列から抽出された文字列であって暗号化されたものをインデックスとして格納するものがあげられる。このようなインデックスは、上記の情報抽出部と暗号化部とにより得ることができ、そのようにして得られたインデックスがバスなどを介して第2の記憶部に転送され、第2の記憶部に記憶される。
【0034】
受信部(5)は、ウェブアクセス要求などの通信情報を受信するための装置である。通信情報として、ウェブアクセス要求以外にネットワークアクセス要求などであってもよい。ネットワークアクセス要求の場合もウェブアクセスと同様に処理が行われればよい。受信部(5)は、たとえばインターフェイス部(9b)を介して通信ネットワークに接続され、通信ネットワークを介してウェブアクセス要求などを受信する。このインターフェイス部は、LANを介してインターネットなどに接続されていてもよい。また、LANは、イーサネット(登録商標)で構築されていても、無線LANなどであってもよい。ネットワークは、多くの接続ノードを有しており、インターネットプロトコル(IP)を用いて通信が行われる。たとえば、HTTPやFTPなどの高レベルプロトコルは、アプリケーション階層の通信を担当し、TCP/IPのような低レベルプロトコルはトランスポート階層とネットワーク階層などの通信を担当する。イントラネットは、ファイアウォールを介してネットワークに接続され、ファイアウォールによりフィルタリングが行えるようなものであってもよい。また、本発明のシステムが、ファイアウォール又はファイアウォールの一部として機能してもよい。受信部(5)が受信したウェブアクセス要求情報は、例えば後述する情報抽出部(6)へ送信される。
【0035】
情報抽出部(6)は、例えばウェブアクセス要求などから、ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列など所定の情報を抽出する。勿論、情報抽出部(6)は、ウェブアクセス要求などに関する情報全て(ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを含む)を抽出しても良いし、ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などのうちいずれか2つ以上を抽出しても良い。特定の情報のみを抽出するためには、所定の関数で定義されるパケットのデータ部から、所定の情報を抽出すればよい。情報抽出部(6)の好ましい態様として、受信部が受信した通信情報としてのウェブサイトアクセス要求に含まれる、ドメインネーム又はIPアドレスを抽出するものがあげられる。情報抽出部(6)を実装するためには、例えば、CPUがメインメモリ中の制御プログラムの指令を受け、受信部(5)が受信し一時的に記憶しているメモリなどから所定の関数で定義される部位やフラグが立てられている部位などを抽出することにより目的とする情報(ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列など)を抽出するものがあげられる。情報抽出部(6)が抽出した情報は、例えば、第2の暗号化部(3b)へ送信される。
【0036】
第2の暗号化部(3b)は、情報抽出部が抽出した情報(ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列など)を暗号化するための部である。なお、第2の暗号化部(3b)と第1の暗号化部(3a)とは、同一の回路、バッファなどのハードウェアで構成されても良い。また、第2の暗号化部(3b)と第1の暗号化部(3a)とは、同一のアルゴリズムにより情報を暗号化するものであっても良い。具体的には、第2の暗号化部(3b)と第1の暗号化部(3a)とに共通する暗号化プログラムがメインメモリなどに記憶されてよく、CPUはメインメモリ中の暗号化プログラムの指令を受け、一時メモリなどに記憶される暗号化する対象となる情報を読み出して、所定のバッファなどを利用し、所定の暗号化処理を行えばよい。具体的には、ウェブアクセス要求などから所定の関数により規定される情報や所定のフラグで識別される情報を抽出し、暗号化を施して、例えばハッシュ関数などで表現するものがあげられ、好ましい暗号化プログラムは、SHA−1である。なお、ウェブアクセス要求などに含まれる情報全体に暗号化を施してもよい。そして、暗号化された情報は、第3の記憶部(7)へ出力される。出力された情報は、第3の記憶部(7)へと送信される。第3の記憶部(7)は、この抽出され、暗号化された情報を記憶する。第3の記憶部(7)として、DRAMなどのRAMなどの一時メモリがあげられる。なお、第2の暗号化部の好ましい態様は、SHA―1:Secure Hash Algorithm 1、MD5:Message Digest 5などの暗号化アルゴリズムにより暗号化を行うものである。より具体的に説明すると、暗号化アルゴリズムに基づいたプログラムをCD−ROMなどの記憶媒体に格納しておき、格納されたプログラムを読み出して、適宜演算処理を行うことにより暗号化を行うものがあげられる。
【0037】
関連性判定部(8)は、第3の記憶部(7)に記憶された情報を受取り、第2の記憶部(4)に格納された暗号化された文字列と関連するか判定するための装置である。具体的には、暗号化されたウェブアクセス要求などの情報の中に、暗号化された文字列が含まれるか判定(マッチング判定)をする。このような判定は、暗号化された文字列のいずれかと、暗号化されたウェブアクセス要求などから抽出した情報とが一致するものがあるかどうか判断するようにすればよい。例えば、関連性判定部(8)を実装するためには、CPUがメインメモリ中の制御プログラムの指令を受け、所定の情報を読み出し、マッチングを行えるようにすればよい。また、たとえば、第2の記憶部(4)には、ハッシュ値などの暗号化されたものがIDとして記憶されているので、そのIDと同じIDを有するものがウェブアクセス要求などの情報であって暗号化されたものの中に含まれるかどうか判断すればよい。また、このようにIDにより同一のものがないとされた場合はそのような指令を、同一のものがあるとされた場合はそのような指令を、バスなどを介して所定の処理部へ出力してもよい。そして、その処理部は、入力された判定部の判定結果を受け、例えばCPUにより読み出されたメインメモリ中の制御プログラムの指令を受けて所定の処理を行うようにすればよい。このような所定の処理としては、受信したウェブアクセス要求などを不正なアクセスとして廃棄する処理があげられる。なお、関連性判定部(8)として、前記第3の記憶部(7)が記憶する暗号文としてのハッシュ値のうち先頭ブロックが、前記第2の記憶部(4)に記憶された暗号文としてのハッシュ値の先頭ブロックと一致するものがあるかどうか判断するものを用いてもよい。この場合、関連性判断を迅速に行うことができることとなる。
【0038】
[基本システムの動作例]
以下、図2〜図4に従って、本システムの基本動作例を説明する。図2は、本発明の暗号文準備段階を説明するためのフローチャートである。第1の記憶部(2)と第1の暗号化部(3a)とが接続されるか、又は第1の記憶部(2)の所定のファイルなどに新たな用語が入力される(ステップ101)。すると、第1の暗号化部(3a)は、メインプログラムから読み出された制御プログラムに従って、第1の記憶部の所定の記憶部に記憶される文字列を自動的に読み出し、伝送バスなどを介してRAMなどへ伝え、RAMなどはその情報を記憶する。そして、第1の暗号化部(3a)は、RAMなどに記憶した用語を読み出して、SHA−1などの暗号化プログラムに従って、自動的にその文字列を暗号化し、暗号文を得る(ステップ102)。この暗号文として、ハッシュ関数によるIDと、その文字列とを有するものがあげられる。また、文字列全体をハッシュ関数などで暗号化してもよい。そして、第1の暗号化部(3a)は、暗号文を、バスなどを介して第2の記憶部(4)へ出力する。第1の記憶部(4)は、暗号文を受け取り、機械語により物理メモリに格納する(ステップ103)。このようにして、本システムの準備ステップが終了する。具体的には、暗号文(ハッシュ関数など)をインデックスとし、そのインデックスと文字列とを関連付けて記憶するものがあげられる。また、第2の記憶部(4)には、ウェブアクセス要求などに含まれるドメインネーム、IPアドレスなどによりカテゴリー分けされる複数のファイル(テーブル)が設けられ、それぞれの情報がそれぞれのファイルに格納されても良い。
【0039】
次に、受信したウェブアクセス要求などに含まれる情報を暗号化する工程例について説明する。図3は、受信したウェブアクセス要求などに含まれる情報を暗号化する工程例を説明したフローチャートである。図3に示されるように、受信部(5)は、ウェブアクセス要求などを受信する(ステップ201)。そして、受信部は、受信したウェブアクセス要求などをRAMなどに記憶する。情報抽出部(6)は、RAMなどに記憶されたウェブアクセス要求などに含まれる情報を読み出し、 ウェブアクセス要求などに含まれる所定のデータ部などから、所定の関数により規定される必要情報を抽出する(ステップ202)。そして、情報抽出部(6)は、バスなどを介して抽出した情報を第2の暗号化部(3b)へ送信する。第2の暗号化部(3b)は、この情報を受信し、ハッシュ関数による暗号化を施す(ステップ203)。具体的には、CPUがメインメモリ中の制御プログラムの指令を受け、RAMなどに記憶されたウェブアクセス要求などの情報(ウェブアクセス要求などの情報のうち所定の情報のみであっても良い)を読み出し、上記暗号化部(3a)と同一の暗号化プログラムをメインメモリなどから読み出して、暗号化を行う。そして、第2の暗号化部(3b)は、暗号化した情報を、バスなどを介して、第3の記憶部(7)へ出力する。第3の記憶部(7)は、暗号文を受信し、記憶する(ステップ204)。この暗号文として、ハッシュ関数によるIDと、その抽出された情報とを有するものがあげられる。また、抽出された情報全体をハッシュ関数などで暗号化してもよい。そして、暗号化文は、バスなどを介して、関連性判定部(8)へ送信される(ステップ205)。
【0040】
次に、関連性判定処理について説明する。図4は、関連性判定処理の例を示すフローチャートである。図4に示されるように、関連性判定部(8)は、第3の記憶部(7)に記憶された暗号文を受取り、RAMなどに一時的に記憶する(ステップ301)。そして、CPUがメインメモリ中の制御プログラムの指令を受け、第2の記憶部(4)に格納された暗号文に、第3の記憶部(7)に記憶された暗号文と一致するものがあるかどうか検索する(ステップ302)。具体的には、ハッシュ関数で暗号化されたIDをインデックスとして用いて、第2の記憶部(4)に格納されたID(群)と一致するものが第3の記憶部(7)に記憶された暗号文(ID)にあるか判定する。そして、その判定情報を所定の処理部へ出力する(ステップ303)。このようにして、本発明のシステムを用いたマッチング処理(判定)が行われる。
【0041】
判定結果を出力するには、具体的には、一致しないとされた場合はバスなどを介してそのような情報を所定の処理部へ出力し、同一のものがあるとされた場合はバスなどを介してそのような情報を所定の処理部へ出力すればよい。そして、その所定の処理部は、入力された判定部の判定結果(処理情報)を受け、たとえばCPUにより読み出されたメインメモリ中の制御プログラムの指令を受けて所定の処理を行う。また、一致するものがある場合、暗号文をインデックスとして平文を引き出し、それら平文が一致するかどうか判断した上で、平文も一致した場合に、一致したという情報を出力し、平文は一致しない場合はそのような情報を出力するようにしてもよい。この場合は、まずは暗号文を用いて一致する文字列を迅速にスクリーニングできるので、いずれにせよ処理が迅速且つ正確となる。
【0042】
このように、本発明によれば、マッチング判定を行う場合に、あらかじめ機械語で格納された用語を用いて判定を行えるので、判定するたびに第1の記憶部(2)に格納される用語を読み出して、用語を照合する必要がなくなる。これにより、頻繁に任意の文字列(例えばウェブアクセス要求に含まれるドメインネームなどの情報)をチェックしてもデータベースとCPUなどを連結するバスの帯域を圧迫することにならず、また、ネットワークの帯域も圧迫することにならないし、任意の文字列のチェックなどもきわめて迅速かつ正確に行うことができる。
【0043】
また、複数のドメインネームシステムが所有し補完しあうドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを一箇所に集約(一つの記憶部に格納)することにより、任意のウェブアクセス要求に含まれるドメインネームやIPアドレスとのマッチング判定が可能となり、不正なウェブサイトへのアクセス要求を効果的に排除できるようになる。
【0044】
本発明の好ましい態様では、任意のウェブアクセス要求に含まれるドメインネーム又はIPアドレスをマッチングするための受信部(5)を具備するものがあげられる。不正なウェブサイトへのアクセス要求などに関する通信情報を確実に抽出するため、任意のウェブアクセス要求に含まれるドメインネームなどの情報とIPアドレスをマッチングする従来のDNSサーバにはない受信部(5)を具備することによって、従来のドメインネームシステム(DNS)では抽出できない通信情報を抽出できるようになり、正当又は不正なウェブアクセス要求を抽出、判定できるようになり、不正なウェブアクセス要求を効果的に排除することが可能となる。
【0045】
さらには、例えば、サーバ内の文字列などが暗号化されて記憶されているので、第三者がサーバにアクセスしたとしても、その文字列が漏洩する怖れを軽減できる。さらには、文字列をハッシュ関数などで暗号化し、そのIDを、例えばインデックス(索引)として用いて、ウェブアクセス要求などの所定の部分にその文字列が含まれるかどうか判定できるので、機械語のまま、かつ小さな情報の一致・不一致を判断すれば足りることとなる。これにより、任意の文字列のチェックをきわめて迅速に行うことができることとなる。
【0046】
先に説明したとおり、本発明では、暗号文としてハッシュ値又はハッシュ関数を用いるものがあげられる。ハッシュ値は、本来通常受信者側にて計算され、インターネットなどを経由してその情報が受信者に送信される間に、データの改ざんなどが行われたかどうか判定するために用いられる。しかし、本発明では、このハッシュ値を、あえて同じサーバ又はシステム内でのマッチング処理のために用いており、これによりマッチング処理を迅速に行うことができる。
【0047】
次に、マッチング方法の例について説明する。このマッチング方法では、ハッシュ関数などの暗号文全体が一致するものがあるかどうか判断するのではなく、ハッシュ関数などを複数のブロックに分けて、ブロックごとに一致するものがあるかどうか判断する方法に関する。図5は、暗号文をブロックに分けた例を示す概念図である。例えば、暗号文(11)としてのハッシュ値は、128ビットの情報量を有しているので、例えば12ビットごとのブロック(12、13、14など)に分ける。このようなブロック分けは、カウンタなどを用いるか、所定のプログラムを利用することで容易に行うことができる。なお、図5中、12は先頭ブロックを示し、13はセカンドブロックを示し、14はサードブロックを示す。
【0048】
図6は、ブロック分けを利用したマッチング工程の例を示すフローチャートである。図6(A)は、1工程のみを示し、図6(B)は多段階スクリーニング(マッチング)工程のものを示す。
【0049】
図6(A)に示されるマッチングでは、例えば、ハッシュ値(11)のうち先頭ブロック(12)のみによりマッチング(ステップ401)を行う。具体的には、第3の記憶部(7)に記憶されたハッシュ関数として、ハッシュ値(11)の先頭ブロック(12)のみのものとし、また、第2の記憶部(8)では、ハッシュ値(11)の先頭ブロック(12)のみ又はハッシュ値(11)の先頭ブロック(12)をインデックスとして平文が関連付けられて記憶される。そして、マッチングでは、第3の記憶部(7)に記憶されたハッシュ値(11)の先頭ブロック(12)を読み出して、それを一時的に記憶し、第2の記憶部(8)に格納されたハッシュ値(11)の先頭ブロック(12)に一致するものがあるかどうか判断すればよい。このような処理は、CPUが、メインメモリに格納された制御プログラムの指令を受けて、2つの記憶部に記憶された先頭ブロック(12)を読み出して、それらが一致するものがあるかどうか判断するようにすればよい。そして、一致した場合は、一致に相当する信号を出力し、一致しない場合は不一致に相当する信号を出力すればよい。そうすれば、例えば、ウェブアクセス要求処理システムであれば、一致信号に応じて任意のウェブアクセス要求であると判断し、不正なウェブアクセス要求を排除するなどの処理を行う。
【0050】
勿論、このようなマッチングを行う場合でも、第3の記憶部(7)及び第2の記憶部(4)に記憶されたハッシュ関数として、ハッシュ値のブロック全体(11)を記憶しておいて、例えば先頭ブロック(12)のみを抽出し、一致するものがあるかどうか判断しても良い。
【0051】
図6(B)に示されるマッチングでは、多段階のマッチングを行う。すなわち、1又は複数回のスクリーニングを経て、最終マッチングを行うものである。このマッチングでは、図6(A)に示されるものと同様の一部マッチング(ファーストマッチング:ステップ501)を行う。そして、その結果がNOであれば、その情報を出力し、マッチングが終わる。このファーストマッチングは、通常、ハッシュ値の先頭ブロック(12)のマッチングによるが、これに限定されるものではない。ファーストマッチングの結果がYESであった場合、ファーストマッチングで用いたブロック以外のブロックを用いてマッチングを行う。具体的には、セカンドブロック(13)を用いてマッチングを行う。そして、その結果がNOであった場合、不一致という信号を出力し、マッチングが終わる。その結果がYESであった場合は、一致という信号を出力し、マッチングを終えても良いし、更に他のブロックが一致するものがあるかどうかのマッチングを続けても良い。例えば、先頭ブロック、セカンドブロック、サードブロックのように順番に全てのブロックについてマッチングを行っても良いし、先頭ブロックマッチングを終えた後は、残りの全てのブロックについてマッチングを行っても良いし、改めて全てのブロック(11)のマッチングを行っても良い。
【0052】
[ハードウェア実装]
図7は、本発明のシステムに関するサーバなどのハードウェア構成(20)を示す図である。図7に示されるようにこのシステムは、中央演算部(CPU)(21)、インターフェイス(22)、RAMなどのメモリ(23)、ROM(24)、表示部(25)を具備し、各要素は、バス(26)を介して連結されている。また、インターフェイスは、外部と接続可能とされているし、このシステムはバス(26)などを介して上記以外の要素と接続可能とされている。そして、例えば、バスを介して所定の情報が伝送されており、所定の情報が所定の情報送信手段から送信され、及び所定の受信手段により受信されるようにされる。
【0053】
CPUは、各種プログラムを実行するなどして、本発明のシステムの各部を制御する。また、演算などの処理は、加算回路、乗算回路、除算回路、減算回路、ビットシフタ、汎用演算装置などのハードウェアを用いてもよい。また、処理を迅速に行うため並列処理を行うことができるようにされてもよい。通常本発明は、記憶部を有しているが、記憶部は、上記のとおりRAMなどのメモリ(23)と、ROM(24)などにより構成されてもよい。ハードディスクをメモリの一部として用いてもよい。そして、ROMなどの記憶部には、所定の制御プログラムや、所定のデータ(ファイル、テーブルなどの形であってもよい)が読み出し可能な状態で格納される。そして、CPUの指令により、格納された制御プログラムやデータを読み出し、所定の処理を行う。一方、メモリは、プログラムのデータ領域、作業領域、所定のデータを格納する領域などとして利用される。そして、メモリへの書き込み、読み出しは、CPUからの制御指令によって行われればよい。
【0054】
インターフェイス(22)は、外部と接続されており、たとえば入出力部として機能する。すなわち、外部からの情報がインターフェイスを介して本システム内での処理に適した状態とされ入力される。たとえば、キーボードなどのポインティングデバイスからの操作情報がインターフェイスを介して本システムに入力されてもよい。一方、本システムにおいて処理された情報は、外部での伝送などに適した状態として出力される。
【0055】
表示部(25)は、所定の情報を表示する任意の要素である。表示部は、表示部の態様に応じて、グラフィック処理部や、γ補正部、フレームバッファなどがあり、表示部に適した状態に情報を変換した後に、情報を表示させる。
【0056】
バス(26)は、中央演算部(CPU)(21)、インターフェイス(22)、メモリ(23)、ROM(24)、表示部(25)などの各要素を連結し、バスを介してデータなどが伝送される。
【0057】
[コンピュータ又はサーバ]
本発明は、1又は複数の文字列を記憶した第1の記憶手段(2)と接続可能とされ、前記第1の記憶手段に記憶された文字列を暗号化するための第1の暗号化手段(3a)と、前記暗号化手段が暗号化した暗号文を格納する第2の記憶手段(4)と;ウェブアクセス要求などを受信するための受信手段(5)と接続可能とされ、前記受信手段が受信したウェブアクセス要求などに含まれる所定の情報を抽出する情報抽出手段(6)と、前記情報抽出手段が抽出した情報を暗号化するための第2の暗号化手段(3b)と、前記第2の暗号化した暗号文を記憶するための第3の記憶手段(7)と、前記第2の記憶手段に記憶された暗号文と、前記第3の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する、不正なウェブアクセス要求などを選別するか、所定の情報を有するウェブアクセス要求を選別するためのコンピュータであってもよい。なお、各手段は、上述した各部に対応するものであり、各手段としてそれぞれ対応する各部と同様に機能するものがあげられる。
【0058】
また、本発明は、1又は複数の文字列を記憶した第1の記憶手段(2)と接続可能とされ、前記第1の記憶手段に記憶された文字列を暗号化するための第1の暗号化手段(3a)と、前記暗号化手段が暗号化した暗号文を格納する第2の記憶手段(4)と;ウェブアクセス要求などを受信するための受信手段(5)と接続可能とされ、前記受信手段が受信したウェブアクセス要求などに含まれる所定の情報を抽出する情報抽出手段(6)と、前記情報抽出手段が抽出した情報を暗号化するための第2の暗号化手段(3b)と、前記第2の暗号化した暗号文を記憶するための第3の記憶手段(7)と、前記第2の記憶手段に記憶された暗号文と、前記第3の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する、不正なウェブアクセス要求などを選別するか、所定の情報を有するウェブアクセス要求などを選別するためのサーバであっても良い。
【0059】
また、本発明は、コンピュータを、ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを記憶した第1の記憶手段(2)と接続可能とされ、前記第1の記憶手段に記憶された文字列を暗号化するための第1の暗号化手段(3a)と、前記第1の暗号化手段が暗号化した暗号文を格納する第2の記憶手段(4)と;ウェブアクセスを受信するための受信手段(5)と接続可能とされ、前記受信手段が受信したウェブアクセスに含まれるドメインネーム又はIPアドレスを抽出する情報抽出手段(6)と、前記情報抽出手段が抽出した情報を暗号化するための第2の暗号化手段(3b)と、前記第2の暗号化手段が暗号化した暗号文を記憶するための第3の記憶手段(7)と、前記第2の記憶手段に記憶された暗号文と、前記第3の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する、所定の情報を有するウェブアクセスを選別するためのコンピュータとして機能させるプログラムであってもよい。また、コンピュータを、1又は複数の文字列を記憶した第1の記憶手段(2)と接続可能とされ、前記第1の記憶手段に記憶された文字列を暗号化するための第1の暗号化手段(3a)と、前記第1の暗号化手段が暗号化した暗号文を格納する第2の記憶手段(4)と;ウェブアクセス要求などを受信するための受信手段(5)と接続可能とされ、前記受信手段が受信したウェブアクセス要求などに含まれる所定の情報を抽出する情報抽出手段(6)と、前記情報抽出手段が抽出した情報を暗号化するための第2の暗号化手段(3b)と、前記第2の暗号化手段が暗号化した暗号文を記憶するための第3の記憶手段(7)と、前記第2の記憶手段に記憶された暗号文と、前記第3の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する、不正なウェブアクセス要求などを選別するか、所定の情報を有するウェブアクセス要求などを選別するためのコンピュータとして機能させるプログラムであっても良い。更には、そのようなプログラムをコンピュータが読み出し可能な状態で格納したCD−ROM、DVD−ROM、MO、ハードディスク、USBメモリデバイスなどの情報記録媒体であっても良い。
【0060】
[第1の実施形態−ドメインネーム判別−]
以下、本発明の第1の実施形態に係る「ウェブアクセス要求に含まれるドメインネームなどの情報から不正なウェブアクセスを判断するウェブアクセスフィルタリングシステム」について説明する。その基本構成は、図1に示されたものと同様である。第1の記憶部(2)がデータベースとして構成される場合、公知のデータベースマネージメントシステムにより制御されていてもよい。データベースとして、公知の記憶装置を用いることもできるし、公知の記録方式を用いることもできる。なお、ハードウェアやソフトウェアで実装する場合は、情報の授受をすることができるようにそれぞれの要素はバスなどで連結されており、動作に応じて情報が出力及び入力される。
【0061】
なお、第1の記憶部(2)に複数のドメインネームシステムが所有し補完しあうドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを集約して格納することによって、任意のウェブアクセス要求に含まれる該当する情報(ドメインネームやIPアドレスなど)とのマッチング判定が可能となる。なお、「複数のドメインネームシステムが所有し補完しあうドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列」は、既存のドメインネームシステムが複数台で所有しており、補完しあっている文字列である。
【0062】
また、第1の記憶部(2)がデータベースとして構成される場合、データベースにおけるDBMS(データベース管理システム)として、公知のDBMSがあげられる。DBMSとして、DES方式やRSA方式などにより暗号化を施すものでもよい。そして、この暗号化は、後述の第1の暗号化部(3a)における暗号化方式と同一であっても異なってもよい。ただし、本発明としては、第1の記憶部(2)における暗号化処理ではなく、第1の記憶部と接続されるサーバなどに暗号化プログラムなどが格納され、その暗号化プログラムにより第1の暗号化部(3a)により所定のデータが暗号化され、またウェブアクセス要求などの所定の情報も暗号化されるものが好ましい。
【0063】
第1の暗号化部(3a)は、SHA、SHA−1、SHA―256、SHA―384、SHA―512、MD5、MD4、拡張MD4、RIPEMD、HAVAL、RIPEM−160などの暗号化プログラムに従って、第1の記憶部に入力される文字列を自動的に暗号化(Encrypt)するための装置である。たとえば、SHA−1では、256ビットの「指紋」又は「メッセージダイジェスト」を出力する。本発明では、この指紋やメッセージダイジェストを暗号化結果として用いてもよく、それらを用いて後述の判定を行ってもよい。暗号化プログラムとして、ハッシュアルゴリズムによるものが好ましいが、GCCカオス暗号法を用いてもよい(例えば、特開平7−334081号公報)。このような暗号化プログラムは、たとえば記憶部のメインメモリに格納され、CPUの指令により読み出し可能とされればよい。このようにして暗号化された文字列は、例えばハッシュ関数で表現される。第1の暗号化部(3a)は、例えば、CPUなどが、メインメモリ中の暗号化プログラムの指令を受け、第1の記憶部から読み出した文字列を暗号化し、出力するようにすればよい。また、そのための作業空間や一時記憶空間として、例えば、記憶部に含まれるメモリを用いればよい。
【0064】
このように暗号化を行うので、登録した文字列を平易に解読されないという効果を得ることができる。さらには、入れ子文字による文字数制限をコンピュータ演算限界値まで受けないという効果を得ることができる。
【0065】
第1の暗号化部(3a)の好ましい態様は、第1の記憶部(2)に接続されれば、第1の記憶部(2)に含まれる所定のテーブルやファイルに含まれる所定の文字列などの平文(Plaintext)を、自動的に読み出して、暗号化するものがあげられる。この場合、例えば、メインメモリ中の暗号化プログラムとして、第1の記憶部の所定のテーブルなどに記憶される文字列などを読み出す指令と、読み出した文字列などをRAMなどに記憶させる指令と、RAMなどに記憶された文字列を暗号化するためのプログラムと、暗号化された文字列をRAMなどに記憶させる指令と、RAMなどに記憶された暗号化された文字列を第2の記憶部(4)などへ出力する指令とを含むものがあげられる。また、第1の暗号化部(3a)で暗号化された文字列(暗号文)として、平文とハッシュ値とを含むものであってもよい。この場合、ハッシュ値のみを機械語として記憶し、後述の判定処理を行えば、判定を正確かつ迅速に行うことができる。
【0066】
第2の記憶部(4)は、例えば、1又は複数の文字列を記憶するための装置である。具体的には、第1の暗号化部(3a)で暗号化された文字列を、並列記憶する。具体的には、暗号化された文字列を機械語により物理メモリに格納する。ハッシュ関数とされた文字列は、所定のテーブル分けがなされた状態で記憶されることが好ましい。なお、第2の記憶部(4)として、比較部を有し、既に格納された情報と、新たに入力される情報とを比較し、その差分情報だけを新たに記憶部に格納するものは、本発明の好ましい実施態様である。第2の記憶部(4)として、ハードディスク、メモリなど公知の記憶装置を用いることができる。また、所定の処理機能を有する記憶部を実装するためには、例えば、ハードディスクなどの記憶装置とCPUなどを含み、CPUがメインメモリ中の制御プログラムの指令を受け、所定の制御を行えるようにすればよい。
【0067】
第2の記憶部(4)は、例えば、文字列を固有ハッシュ関数化したIDとして記憶する。このIDは、好ましくは、第1の記憶部におけるインデックス(索引)として用いられる。そして、文字列、暗号化された文字列などは、このインデックスにより、記憶部のどこに保存されたかという情報と関連して記憶される。このようにすることにより、データ発信者が意図する最新の用語を用いて確実で高速にデータを抽出するという効果を得ることができる。なお、第2の記憶部(4)の記憶構造として、リレーショナルデータベースが構成されており、前記固有ハッシュ関数化(暗号化)されたIDと、もとの文字列に関する情報とが関連付けて記憶されてもよい。
【0068】
受信部(5)は、ウェブアクセス要求などを受信するための装置である。情報抽出部(6)は、例えばこのウェブアクセス要求などから、ウェブアクセス要求などのドメインネームなどに関する情報を抽出する。具体的には、ウェブアクセス要求などの所定のデータ部から、所定の関数により規定されるドメインネームなどの情報を抽出する。そして、第2の暗号化部(3b)は、抽出されたドメインネームなどの情報に、暗号化を施して、ハッシュ関数などで表現する。第2の暗号化部(3b)を実装するためには、例えば、CPUがメインメモリ中の制御プログラムの指令を受け、所定の制御を行えるようにすればよい。第2の暗号化部(3a)が行う暗号化のアルゴリズムは、第1の暗号化部(3a)におけるアルゴリズムと同様のものがあげられる。すなわち、情報抽出部は、ドメインネームなどの情報を抽出した後、CPUは、メインメモリなどに記憶された暗号化処理プログラムの指令を受け、RAMなどのメモリを利用しつつ、抽出したドメインネームなどの情報を暗号化する。暗号化されたドメインネームなどの情報は、第3の記憶部(7)へ出力される。第3の記憶部(7)は、この抽出されたドメインネームなどの情報を記憶する。第3の記憶部(7)として、RAMなどがあげられる。
【0069】
受信部(5)の好ましい態様は、任意のウェブアクセス要求に含まれるドメインネーム又はIPアドレスをマッチングするものがあげられる。このような受信部(5)を具備し、任意のウェブアクセス要求などの通信情報を受信することで、従来のDNSサーバへドメインネームやIPアドレスを確認しない不正なウェブサイトへのアクセス要求などに関する通信情報を確実に抽出できるようになる。
【0070】
判定部(8)は、第3の記憶部(7)に記憶されたウェブアクセス要求のドメインネームなどの情報を受取り、第2の記憶部(4)に格納された文字列と関連するか判定するための装置である。具体的には、暗号化されたドメインネームなどの情報の中に、暗号化された文字列(ドメインネームなど)が含まれるか判定する。このような判定は、暗号化された文字列のいずれかと、暗号化されたドメインネームなどの情報とが一致するものがあるかどうか判断するようにすればよい。例えば、判定部(8)を実装するためには、CPUがメインメモリ中の制御プログラムの指令を受け、所定の制御を行えるようにすればよい。
【0071】
[第一の実施形態の動作]
以下、動作例を説明する。第1の記憶部(2)と第1の暗号化部(3a)とが接続されるか、又は第1の記憶部(2)の所定のファイルなどに新たな文字列(ドメインネーム)が入力される。すると、第1の暗号化部(3a)は、メインプログラムから読み出された制御プログラムに従って、第1の記憶部の所定の記憶部に記憶される文字列を自動的に読み出し、RAMなどに記憶する。そして、RAMなどに記憶した文字列を読み出して、暗号化プログラムに従って、自動的にその文字列を暗号化する。この暗号化後のものとして、ハッシュ関数によるIDと、その文字列とを有するものがあげられる。また、文字列全体をハッシュ関数などで暗号化してもよい。そして、暗号化部は暗号化した文字列を第2の記憶部(4)へ出力する。記憶部(4)は、暗号化されハッシュ関数とされた文字列などを、機械語により物理メモリに格納する。
【0072】
受信部(5)は、ウェブアクセス要求などを受信する。そして、受信部は、受信したウェブアクセス要求などをRAMなどに記憶する。情報抽出部(6)は、ウェブアクセス要求などの所定の情報から、所定の関数により規定されるドメインネームなどの情報を抽出し、第2の暗号化部(3b)へ送信する。第2の暗号化部(3b)は、受信した情報に例えばハッシュ関数による暗号化を施す。具体的には、CPUがメインメモリ中の制御プログラムの指令を受け、RAMなどに記憶されたウェブアクセス要求から、ドメインネームなどの情報を抽出し、抽出したドメインネームなどの情報をRAMなどに記憶した上で、上記暗号化部(3a)と同一の暗号化プログラムを読み出して、暗号化を行う。そして、暗号化したドメインネームなどの情報を第3の記憶部へ出力する。第3の記憶部(7)は、この抽出されたドメインネームなどの情報を記憶する。この暗号化後のものとして、ハッシュ関数によるIDと、その文字列とを有するものがあげられる。また、文字列全体をハッシュ関数などで暗号化してもよい。
【0073】
判定部(8)は、第3の記憶部(7)に記憶されたウェブアクセス要求のドメインネームなどの情報を受取り、RAMなどに一時的に記憶する。そして、CPUがメインメモリ中の制御プログラムの指令を受け、このドメインネームなどの情報に含まれる文字列に第2の記憶部(4)に格納された文字列のうち一致するものがあるかどうか検索する。具体的には、ハッシュ関数で暗号化されたIDを用いて、ドメインネームなどの情報に含まれる文字列の全てのIDについて、第2の記憶部(4)に格納されたIDと同一のものがあるか判定する。そして、第2の記憶部(4)に格納されたいずれかの文字列と、ウェブアクセス要求のドメインネームなどの情報に含まれる文字列とが一致するものがあると判断した場合、一致(正当なウェブアクセス要求)という情報を出力する。一方、第2の記憶部(4)に格納されたいずれかの文字列と、ウェブアクセス要求のドメインネームなどの情報に含まれる文字列とが一致しない場合、不一致(不正なウェブアクセス要求)という情報を出力する。一致という判断を受けた受信部(5)は、RAMなどに一時的に記憶されたウェブアクセス要求に含まれるIPアドレスなどの情報に従って、所定のウェブサイトへの通信を許可する。一方、この不一致という判断を受けた受信部(5)は、RAMなどに一時的に記憶されたウェブアクセス要求を、そのウェブアクセス要求に含まれるIPアドレスなどの情報に従って、不正なウェブアクセス要求に該当する通信を受信した旨に関する情報を所定のクライアントへ通知する。
【0074】
このように、本発明によれば、判定を行う場合に、あらかじめ機械語で格納された文字列を用いて判定を行えるので、第1の記憶部(2)に格納される文字列を読み出して、文字列を照合する必要がなくなる。これにより、頻繁に正当な又は不正なウェブアクセス要求などのチェックをしても第1の記憶部とCPUなどを連結するバスの帯域を圧迫することにならず、また、ネットワークの帯域も圧迫することにもならず、正当な又は不正なウェブアクセス要求などのチェックもきわめて迅速かつ正確に行うことができる。さらには、例えば、サーバ内の文字列が暗号化されているので、第三者がサーバにアクセスしたとしても、その文字列が漏洩する怖れを軽減できる。さらには、文字列をハッシュ関数などで暗号化し、そのIDを、例えばインデックス(索引)として、用いて、ウェブアクセス要求にその文字列が含まれるかどうか判定できるので、機械語のまま、かつ小さな情報の一致・不一致を判断すれば足りるので、正当な又は不正なウェブアクセス要求などのチェックをきわめて迅速に行うことができることとなる。
【0075】
さらには、複数のドメインネームシステムが所有し補完しあうドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを一箇所、たとえば、第1の記憶部(2)に集約、格納することにより、任意のウェブアクセス要求に含まれるドメインネームやIPアドレスとのマッチング判定が可能となり、不正なウェブサイトへのアクセス要求を効果的に排除できるようになる。
【0076】
また、不正なウェブサイトへのアクセス要求などに関する通信情報を確実に抽出するため、任意のウェブアクセス要求に含まれるドメインネームなどの情報とIPアドレスをマッチングする従来のDNSサーバにはない受信部(5)を具備することによって、従来のドメインネームシステム(DNS)では抽出できない通信情報を抽出できるようになり、正当又は不正なウェブアクセス要求を抽出、判定できるようになり、不正なウェブアクセス要求を効果的に排除することが可能となる。
【0077】
[第二の実施形態]
次に本発明の第二の実施形態に係るIPアドレスから不正なウェブアクセス要求などの通信を判断するアクセスセキュリティシステムについて説明する。その基本ブロック構成は、上述したと同様である。第1の記憶部(2)には、複数のIPアドレスが入力される。第1の暗号化部(3a)は、CPUが読み出した制御プログラムの指令に従って、第1の記憶部の所定の記憶領域に記憶される1又は複数のIPアドレスを読み出し、CPUが読み出したMD5、MD4などの暗号化プログラムに従って、読み出したIPアドレスを暗号化する。このようにして暗号化されたIPアドレスは、たとえば、ハッシュ関数で表される。
【0078】
また、第1の記憶部(2)は、好ましくは、複数のドメインネームシステムが所有し補完しあうIPアドレスを集約、格納する。具体的には、IPアドレスだけでアクセスが可能な正当なウェブサイトのIPアドレスを、正当なウェブサイトのIPアドレスとして格納し、不正なウェブサイトのIPアドレスとして公知のIPアドレスは、不正なウェブサイトのIPアドレスとして格納することが好ましい。
【0079】
第2の記憶部(4)は、例えば、1又は複数のアクセス先ウェブサイトなどのIPアドレスを暗号化して記憶する。具体的には、例えばIPアドレスをハッシュ関数によるIPブロックに分けて記憶する。それぞれのIPブロックは、例えば、複数のレコードで構成されるが、ひとつのIPアドレスに対しては、好ましくはひとつのレコードが形成される。
【0080】
受信部(5)は、ウェブアクセス要求などを受信する。情報抽出部は、このウェブアクセス要求などから、アクセス先ウェブサイトなどのIPアドレスに関する情報を抽出し、第2の暗号化部へ送信する。第2の暗号化部は、抽出された情報を暗号化する。この暗号文として、ハッシュ関数があげられ、ブロックに分けて出力されてもよい。第3の記憶部(7)は、この暗号化されたアクセス先ウェブサイトなどのIPアドレスを記憶する。
【0081】
なお、受信部(5)を具備することによって、不正なウェブサイトへのアクセス要求などに関する通信情報を確実に抽出する。具体的には、通常、従来のDNSサーバへドメインネームやIPアドレスが確認されて任意のウェブアクセス要求が成立するが、従来のDNSサーバへ該当する情報を確認せずに不正なウェブサイトへ誘導される場合があり、このような場合に、従来のDNSサーバでは抽出できない該当する不正なウェブアクセス要求を抽出できるようになり、正当又は不正なウェブアクセス要求を判定し、不正なウェブアクセス要求を効果的に排除することが可能となる。
【0082】
判定部(8)は、第3の記憶部(7)に記憶された暗号化されたアクセス先ウェブサイトなどのIPアドレスを受取り、第2の記憶部(4)に格納された暗号文から検索する。これらの暗号文は、同じアルゴリズムにより暗号化されたもので、たとえばハッシュ関数として表現されている。そして、第2の記憶部(4)に格納された任意のIPアドレスと、アクセス先ウェブサイトなどのIPアドレスとが一致するものがある場合、一致(正当なウェブアクセス)という情報を出力する。一方、第2の記憶部(4)に格納されたいずれかのIPアドレスと、アクセス先ウェブサイトなどのIPアドレスとが一致しない場合、不一致(不正なウェブアクセス)という情報を出力する。
【0083】
なお、暗号化されたIPアドレス(ハッシュ関数)が一致した場合に、そのハッシュ関数をインデックスとしてIPアドレスの平文を読み出して、読み出されたIPアドレスと、送信者のIPアドレスとが一致するものがあるかどうかさらに判断し、一致した場合に一致(正当なウェブアクセス)という情報を出力し、一致しない場合に不一致(不正なウェブアクセス)という情報を出力するようにしてもよい。このようにした場合、最終的な照合は、暗号化されていない文字列(平文)により行われることとなるが、平文による照合を行う量を大幅に削減できる。
【0084】
また、特に図示しないが、判定部(8)の判定結果は、所定の処理部へ送られ、所定の処理部は判定結果をRAMなどに記憶し、CPUにより読み出された制御プログラムの指令を受けて、所定の指令を出力する。具体的には、たとえば、受信部に対して、ウェブアクセス要求などを破棄する所定の指令などを出力する。これを受けた受信部は、ウェブアクセス要求を破棄する処理を行う。また、制御プログラムの中にウェブアクセス要求の受信自体を拒否する指令を出力し、これを受けた受信部は、大量に送付された同一のウェブアクセス要求自体を受信拒否する処理を行うようにしてもよい。
【0085】
なお、上記のようにウェブアクセス要求を破棄する処理を行った場合、任意の指令などを受けて、利用者へウェブアクセス要求を受信しなかったことを示す内容のウェブアクセス処理を返信するものは本発明の好ましい別の実施態様である。このようなウェブアクセス要求システムは、任意のウェブアクセス要求の破棄に関する指令など判定結果を受取る入力部と、利用者へウェブアクセス要求を受信しなかったことを示す内容のウェブアクセス処理を格納する記憶部と、利用者へウェブアクセス要求を受信しなかったことを示す内容のウェブアクセス処理を返信する送信部とを具備するものがあげられる。そして、任意のウェブアクセス要求の破棄に関する指令など判定結果を受取った場合、CPUが、メインメモリなどから制御プログラムを読み出して、その制御プログラムの指令に基づいて、記憶部に格納されたウェブアクセス処理を読み出して、RAMなどに記憶し、前記送信部が利用者のIPアドレスなどを用いて、利用者に前記ウェブアクセス処理を返信するようにすればよい。
【図面の簡単な説明】
【0086】
【図1】図1は、本発明のシステムの基本構成を示すブロック図である。
【図2】図2は、本発明の暗号文準備段階を説明するためのフローチャートである。
【図3】図3は、受信したウェブアクセス要求などに含まれる情報を暗号化する工程例を説明したフローチャートである。
【図4】図4は、関連性判定処理の例を示すフローチャートである。
【図5】図5は、暗号文をブロックに分けた例を示す概念図である。
【図6】図6は、ブロック分けを利用したマッチング工程の例を示すフローチャートである。図6(A)は、1工程のみを示し、図6(B)は多段階スクリーニング(マッチング)工程のものを示す。
【図7】図7は、本発明のシステムに関するサーバなどのハードウェア構成を示す図である。
【符号の説明】
【0087】
1 ウェブアクセス要求処理システム
2 第1の記憶部
3a 第1の暗号化部
3b 第2の暗号化部
4 第2の記憶部
5 メール受信部
6 情報抽出部
7 第3の記憶部
8 関連性判定部

【特許請求の範囲】
【請求項1】
1又は複数の文字列を記憶した第1の記憶部(2)と接続可能とされ、前記第1の記憶部に記憶された文字列を暗号化するための第1の暗号化部(3a)と、
前記第1の暗号化部が暗号化した暗号文を格納する第2の記憶部(4)と、
通信情報を受信するための受信部(5)と接続可能とされ、
前記受信部が受信した通信情報に含まれる所定の情報を抽出する情報抽出部(6)と、
前記情報抽出部が抽出した情報を暗号化するための第2の暗号化部(3b)と、
前記第2の暗号化部が暗号化した暗号文を記憶するための第3の記憶部(7)と、
前記第2の記憶部に記憶された暗号文と、前記第3の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と、
を具備する、アクセスセキュリティシステム。
【請求項2】
前記第1の暗号化部(3a)及び第2の暗号化部(3b)は、情報を暗号化してハッシュ関数とする、
請求項1に記載のアクセスセキュリティシステム。
【請求項3】
前記第1の暗号化部(3a)及び第2の暗号化部(3b)は、暗号化アルゴリズムにより情報を暗号化する、
請求項1に記載のアクセスセキュリティシステム。
【請求項4】
前記第2の記憶部(4)は、暗号化された文字列をインデックスとして記憶する、
請求項1に記載のアクセスセキュリティシステム。
【請求項5】
前記第2の記憶部(4)は、ドメインネーム、IPアドレス、又は外部DNSサーバへの名前解決処理委譲を示す文字列から抽出された文字列であって暗号化されたものをインデックスとして格納する、
請求項1に記載のアクセスセキュリティシステム。
【請求項6】
前記情報抽出部(6)は、前記受信部が受信した通信情報としてのウェブサイトアクセス要求に含まれる、ドメインネーム又はIPアドレスを抽出する、
請求項1に記載のアクセスセキュリティシステム。
【請求項7】
前記関連性判定部(8)は、
前記第3の記憶部(7)が記憶する暗号化した情報が、前記第2の記憶部(4)に記憶された暗号文のうち一致するものが含まれるかどうか判断する、
請求項1に記載のアクセスセキュリティシステム。
【請求項8】
前記関連性判定部(8)は、
前記第3の記憶部(7)が記憶する暗号文としてのハッシュ値が、前記第2の記憶部(4)に記憶された暗号文としてのハッシュ値と一致するものがあるかどうか判断する、
請求項1に記載のアクセスセキュリティシステム。
【請求項9】
前記関連性判定部(8)は、
前記第3の記憶部(7)が記憶する暗号文としてのハッシュ値のうち先頭ブロックが、前記第2の記憶部(4)に記憶された暗号文としてのハッシュ値の先頭ブロックと一致するものがあるかどうか判断する、
請求項1に記載のアクセスセキュリティシステム。
【請求項10】
複数のドメインネームシステムが所有し補完し合うドメインネームに関する情報を暗号化して一箇所に集約し、正当又は不正なウェブアクセス要求を判定する、
請求項1に記載のアクセスセキュリティシステム。
【請求項11】
ウェブアクセス要求を受信するための受信部(5)を具備する、請求項10に記載のアクセスセキュリティシステム。
【請求項12】
コンピュータを、ドメインネーム、IPアドレス、外部DNSサーバへの名前解決処理委譲を示す文字列などを記憶した第1の記憶手段(2)と接続可能とされ、前記第1の記憶手段に記憶された文字列を暗号化するための第1の暗号化手段(3a)と、前記第1の暗号化手段が暗号化した暗号文を格納する第2の記憶手段(4)と;ウェブアクセスを受信するための受信手段(5)と接続可能とされ、前記受信手段が受信したウェブアクセスに含まれるドメインネーム又はIPアドレスを抽出する情報抽出手段(6)と、前記情報抽出手段が抽出した情報を暗号化するための第2の暗号化手段(3b)と、前記第2の暗号化手段が暗号化した暗号文を記憶するための第3の記憶手段(7)と、前記第2の記憶手段に記憶された暗号文と、前記第3の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する、所定の情報を有するウェブアクセスを選別するためのコンピュータとして機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−129431(P2007−129431A)
【公開日】平成19年5月24日(2007.5.24)
【国際特許分類】
【出願番号】特願2005−319611(P2005−319611)
【出願日】平成17年11月2日(2005.11.2)
【出願人】(505223067)シンクライアント株式会社 (2)
【Fターム(参考)】