"ネットワーク管理プロトコルとしてSNMPを用いて、管理装置と管理対象装置とがネットワークを介して、SNMPメッセージを送受信するネットワーク管理システムであって、前記管理装置は、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出し、該メッセージ認証情報を含む認証用VarBindを作成し、該認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成処理部と、前記SNMPメッセージ生成処理部で作成したSNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信部とを備え、前記管理対象装置は、前記管理装置からのパケットを受信するパケット受信部と、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べ、無ければ前記パケットを廃棄するSNMPメッセージ解析処理部と、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュと、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が前記メッセージ認証情報キャッシュ内に存在するか調べ、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、前記SNMPメッセージ解析処理部に異常終了を返す認証MIBモジュールとを備えるネットワーク管理システム。前記認証MIBモジュールは、前記メッセージ認証情報が前記メッセージ認証情報キャッシュ内に含まれていなかった場合には、受信したパケットの送信元アドレスに対応する共通鍵を用いて、認証用VarBindを除いたSNMPメッセージのメッセージ認証情報を算出し、前記認証用VarBindに含まれていたメッセージ認証情報と前記MIBモジュールが算出したメッセージ認証情報とが一致するか調べ、両者が不一致の場合には、SNMPメッセージが改ざんされたと判断して、前記SNMPメッセージ解析処理部に異常終了を返し、両者が一致した場合には、前記SNMPメッセージが改ざんされておらず、前記管理装置からの正当なSNMPメッセージであると判断し、前記メッセージ認証情報キャッシュに前記メッセージ認証情報を追加して、前記SNMPメッセージ解析処理部に正常終了を返す請求項1に記載のネットワーク管理システム。前記認証MIBモジュールは、前記SNMPメッセージ解析処理部から受け取ったパケットがSETリクエスト以外の場合には何もしないで、前記SNMPメッセージ解析処理部に正常終了を返す請求項1又は2に記載のネットワーク管理システム。前記SNMPメッセージ解析処理部は、いずれか一つでも異常終了を返せば、SETリクエスト全体をエラーとしてSET処理を無効にする請求項1~3のいずれかに記載のネットワーク管理システム。ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理対象装置とSNMPメッセージを送受信する管理装置であって、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出し、該メッセージ認証情報を含む認証用VarBindを作成し、該認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成処理部と、前記SNMPメッセージ生成処理部で作成したSNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信部とを備える管理装置。ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理装置とSNMPメッセージを送受信する管理対象装置であって、前記管理装置からのパケットを受信するパケット受信部と、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べ、無ければ前記パケットを廃棄するSNMPメッセージ解析処理部と、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュと、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が前記メッセージ認証情報キャッシュ内に存在するか調べ、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、前記SNMPメッセージ解析処理部に異常終了を返す認証MIBモジュールとを備える管理対象装置。ネットワーク管理プロトコルとしてSNMPv1、SNMPv2cを用いて、管理装置と管理対象装置とがネットワークを介して、SNMPメッセージを送受信するネットワーク管理方法であって、前記管理装置が、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出する第1の算出ステップと、前記管理装置が、前記メッセージ認証情報を含む認証用VarBindを作成する作成ステップと、前記管理装置が、前記認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成ステップと、前記管理装置が、前記SNMPメッセージ生成ステップで作成したSNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信ステップと、前記管理対象装置が、前記管理装置からのパケットを受信するパケット受信ステップと、前記管理対象装置が、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べる有無調査ステップと、前記管理対象装置が、前記認証用VarBindが無い場合には、前記パケットを廃棄する廃棄ステップと、前記管理対象装置が、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュ内に存在するか調べる第1のメッセージ認証情報調査ステップと、前記管理対象装置が、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、異常終了を返す第1の異常終了ステップとを有するネットワーク管理方法。ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理対象装置とSNMPメッセージを送受信する管理装置のコンピュータに対し、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出する算出ステップと、前記メッセージ認証情報を含む認証用VarBindを作成する作成ステップと、前記認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成ステップと、前記SNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信ステップと、を実行させるためのコンピュータプログラム。ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理装置とSNMPメッセージを送受信する管理対象装置のコンピュータに対し、前記管理装置からのパケットを受信するパケット受信ステップと、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べる有無調査ステップと、前記認証用VarBindが無い場合には、前記パケットを廃棄する廃棄ステップと、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュ内に存在するか調べる第1のメッセージ認証情報調査ステップと、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、異常終了を返す第1の異常終了ステップと、を実行させるためのコンピュータプログラム。しかしながら、上述した特許文献1に開示された技術では、コミュニティ名、もしくは、SNMPメッセージ全体を暗号化しているため、運用時に発生した問題を解決する場合、可読性が悪化するという問題がある。また、特許文献2に開示された技術では、動的に生成されたコミュニティ名が原文のままネットワーク上を流れるため、コミュニティ名が盗聴されると、不正な操作が可能となってしまうという問題がある。また、管理装置は、管理対象装置が動的に生成したコミュニティ名を要求取得する必要があり、そのためのネットワークトラヒックが増加してしまうという問題がある。また、SNMPv3では、従来のSNMPv1、v2cと比較して、仕様が複雑になっており、プロトコル処理に時間がかかるという問題がある。また、SNMPv3とSNMPv1、v2cとでは、全体のフレームワークや、パケットフォーマットも異なり、互換性がない。ゆえに、既存のSNMPv1、v2c処理機能を活用できないため、SNMPv3の導入にはコストがかかるという問題がある。上記事情に鑑み、本発明は、盗聴によって認証用識別情報が第三者に知られた場合でも、管理対象装置への不正な設定を防ぐことを可能とする技術を提供することを目的としている。本発明の一態様は、ネットワーク管理プロトコルとしてSNMPを用いて、管理装置と管理対象装置とがネットワークを介して、SNMPメッセージを送受信するネットワーク管理システムであって、前記管理装置は、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出し、該メッセージ認証情報を含む認証用VarBindを作成し、該認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成処理部と、前記SNMPメッセージ生成処理部で作成したSNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信部とを備え、前記管理対象装置は、前記管理装置からのパケットを受信するパケット受信部と、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べ、無ければ前記パケットを廃棄するSNMPメッセージ解析処理部と、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュと、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が前記メッセージ認証情報キャッシュ内に存在するか調べ、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、前記SNMPメッセージ解析処理部に異常終了を返す認証MIBモジュールと、を備える。本発明の一態様は、ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理対象装置とSNMPメッセージを送受信する管理装置であって、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出し、該メッセージ認証情報を含む認証用VarBindを作成し、該認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成処理部と、前記SNMPメッセージ生成処理部で作成したSNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信部と、を備える。本発明の一態様は、ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理装置とSNMPメッセージを送受信する管理対象装置であって、前記管理装置からのパケットを受信するパケット受信部と、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べ、無ければ前記パケットを廃棄するSNMPメッセージ解析処理部と、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュと、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が前記メッセージ認証情報キャッシュ内に存在するか調べ、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、前記SNMPメッセージ解析処理部に異常終了を返す認証MIBモジュールと、を備える。本発明の一態様は、ネットワーク管理プロトコルとしてSNMPv1、SNMPv2cを用いて、管理装置と管理対象装置とがネットワークを介して、SNMPメッセージを送受信するネットワーク管理方法であって、前記管理装置が、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出する第1の算出ステップと、前記管理装置が、前記メッセージ認証情報を含む認証用VarBindを作成する作成ステップと、前記管理装置が、前記認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成ステップと、前記管理装置が、前記SNMPメッセージ生成ステップで作成したSNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信ステップと、前記管理対象装置が、前記管理装置からのパケットを受信するパケット受信ステップと、前記管理対象装置が、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べる有無調査ステップと、前記管理対象装置が、前記認証用VarBindが無い場合には、前記パケットを廃棄する廃棄ステップと、前記管理対象装置が、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュ内に存在するか調べる第1のメッセージ認証情報調査ステップと、前記管理対象装置が、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、異常終了を返す第1の異常終了ステップと、を有する。本発明の一態様は、ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理対象装置とSNMPメッセージを送受信する管理装置のコンピュータに対し、共通鍵を用いて、SETリクエストのメッセージ認証情報を算出する算出ステップと、前記メッセージ認証情報を含む認証用VarBindを作成する作成ステップと、前記認証用VarBindを含むSNMPメッセージを作成するSNMPメッセージ生成ステップと、前記SNMPメッセージとあて先アドレスとからパケットを作成して送信するパケット送信ステップと、を実行させるためのコンピュータプログラムである。本発明の一態様は、ネットワーク管理プロトコルとしてSNMPを用いて、ネットワークを介して、管理装置とSNMPメッセージを送受信する管理対象装置のコンピュータに対し、前記管理装置からのパケットを受信するパケット受信ステップと、前記パケットがSETリクエストであれば、認証用VarBindの有無を調べる有無調査ステップと、前記認証用VarBindが無い場合には、前記パケットを廃棄する廃棄ステップと、前記認証用VarBindがある場合には、前記認証用VarBind内の前記メッセージ認証情報が、既に認証で使用したメッセージ認証情報が記憶されているメッセージ認証情報キャッシュ内に存在するか調べる第1のメッセージ認証情報調査ステップと、前記メッセージ認証情報がメッセージ認証情報キャッシュ内に存在する場合には、リプレイ攻撃と判定し、異常終了を返す第1の異常終了ステップと、を実行させるためのコンピュータプログラムである。本発明により、盗聴によって認証用識別情報が第三者に知られた場合でも、管理対象装置への不正な設定を防ぐことが可能となる。まず、ネットワーク管理システムの概略について説明する。ネットワーク管理システムは、SNMPv1やSNMPv2cのエージェント機能を具備する装置に対する設定用SNMPメッセージSETリクエストに関して、SNMPのプロトコル処理部分の改変を小さく留めた上で、セキュリティを向上させる。具体的には、ネットワーク管理システムでは、セキュリティ向上のために以下の事項が実現される。a従来のコミュニティ名による認証方法に加え、SNMPメッセージのMACMessageAuthenticationCodeによる認証を使用する。なお、コミュニティ名とは、SNMPが管理するネットワークシステムの範囲を表す識別情報であり、認証に用いられる識別情報認証用識別情報でもある。b上記aにおける認証において、MACの性質上、SNMPメッセージの改ざんを検知できる。cリプレイ攻撃に備え、認証済みMACのキャッシュを用意することで、同一MACのSNMPメッセージは受け付けないようにする。[第一実施形態]図1は、第一実施形態によるネットワーク管理システムの構成を示すブロック図である。図1において、管理装置100と管理対象装置200は、互いに共通する秘密鍵共通鍵101を保持する。管理対象装置200は、認証MIBManagementInformationBaseモジュール241を持ち、認証用OIDObjectIDentiferを持ったインタフェースを具備する。通常、認証MIBモジュール241は、SNMPのプロトコル処理部図示略とは独立している。また、第一実施形態では、認証はSNMPv1/SNMPv2cの機能のみで実現している。また、対向装置に設定したい内容を含むSETリクエストのパケットに認証情報を含んでいる。管理装置100は、バスで接続されたCPUCentralProcessingUnitやメモリや補助記憶装置などを備え、管理プログラムを実行する。管理装置100の機能の全て又は一部は、ASICApplicationSpecificIntegratedCircuitやPLDProgrammableLogicDeviceやFPGAFieldProgrammableGateArray等のハードウェアを用いて実現されても良い。管理プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。管理対象装置200は、バスで接続されたCPUやメモリや補助記憶装置などを備え、管理対象プログラムを実行する。管理対象装置200の機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されても良い。管理対象プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。管理装置100は、共通鍵101を使用して、コミュニティ名11及びその他VarBindVariableBindings13の組み合わせを含むSETリクエストから、SETリクエストのMACMessageAuthenticationCode:メッセージ認証符号を計算する。MACは、メッセージ認証情報の一例である。また、管理装置100は、コミュニティ名11と、VarBindVariableBindings、OIDとそのOIDのオブジェクトに設定したい値のペアとして、認証用VarBind認証用OIDと算出したMACのペア12と、その他VarBind13とを含めた認証付SETリクエスト10を作成して、管理対象装置200に送信する。上記により、SETリクエスト10が第三者に盗聴され、コミュニティ名11が知られても、第三者は共通鍵101を知らないため、正しいMACを計算することができず、認証可能な認証付SETリクエストを作成できない。続いて、以下の処理により、リプレイ攻撃を防ぐことが可能となっている。管理対象装置200内のSNMPメッセージ解析処理部230は、受信した認証付SETリクエスト10内のVarBindに、認証用VarBind12が含まれているかを調べ、含まれていない場合には、SETリクエストである判別して廃棄し、含まれている場合には、認証用VarBind12を認証MIBモジュール241で処理する。認証MIBモジュール241は、認証用VarBind12内のMACがMACキャッシュ243に含まれているかを調べる。MACキャッシュ243は、既に認証で使用したMACが記憶されている。SNMPの仕様上、SNMPメッセージ内のリクエストIDは、メッセージ毎に異なるため、MACは常に異なる。したがって、認証用VarBind12内のMACがMACキャッシュ243に含まれていた場合には、SNMPメッセージ解析処理部230に異常終了を返す。このように、第三者が認証付SETリクエスト10を盗聴し、変更無しで再送しても、MACキャッシュ243による検査でSETリクエストは失敗する。続いて、以下の処理により、認証付SETリクエスト10の認証を行う。受信した認証付SETリクエスト10のMACを共通鍵101で算出して、認証用VarBind12内のMACと比較する。双方のMACが一致した場合には、SNMPメッセージ解析処理部230に正常終了を返す認証完了。これに対して、双方のMACが一致しなかった場合には、SNMP解析処理部230に異常終了を返す認証失敗。SNMPの仕様上、SNMPメッセージ解析処理部230は、MIBモジュールのうち、どれか一つでも異常終了を返せば、SETリクエスト全体をエラーとしてSET処理を無効にする。そのため、上述したように、認証MIBモジュール241が異常終了を返すことで、装置への設定を失敗させることができる。上述した第一実施形態によれば、盗聴によってコミュニティ名が第三者に知られた場合でも、管理対象装置への不正な設定を防ぐことができる。[第二実施形態]図2は、本発明の第二実施形態によるネットワーク管理システムの全体構成を示したブロック図である。図2において、ネットワーク管理システムは、1つの管理装置100と3つの管理対象装置200-1~200-3以下、総称して管理対象装置200ともいうと、ネットワーク300とを備える。図2では、管理装置100を1つとしているが複数あってもよい。また、管理対象装置200-1~200-3も3つとしているが4つ以上であってもよい。管理装置100は、ネットワーク300を介して、管理対象装置200-1~200-3の監視、及び設定を行う。管理対象装置200-1~200-3は、管理装置100からの指示に基づき、自身が保有する情報をネットワーク300を介して、管理装置100に通知する。また、管理対象装置200-1~200-3は、管理装置100からの指示に基づき、自身が保有する情報を更新して自身の動作を変更する。ここで、管理対象装置200-1~200-3として、例えば、ルータ、スイッチングハブ、パーソナルコンピュータ、プリンタ、テレビなどがある。ネットワーク300は、例えば、LANLocalAreaNetworkなどである。管理装置100と管理対象装置200-1~200-3との間の管理情報例えば、MIBのやりとりには、ネットワーク管理プロトコルとして標準化されたSNMPが用いられる。SNMPは、ネットワークに接続された装置をネットワーク経由で監視したり、設定したりするためのプロトコルである。管理装置100と管理対象装置200-1~200-3との間は、パケットの送受信によって管理情報のやり取りが行われる。図3は、パケットの構成を示す概念図である。図3において、パケット240には、送信元アドレス251と、あて先アドレス252と、SNMPメッセージ253が含まれている。送信元アドレス251は、パケット240を送信した装置のアドレスである。あて先アドレス252は、パケット240の送信先のアドレスである。例えば、IPネットワークでは、パケット240は、IPパケット、送信元アドレス251は、送信元IPアドレス、あて先アドレス252は、あて先IPアドレスである。SNMPメッセージ253の詳細は、RFC1157、1901、3417で規定されている。以下、本発明で必要な部分のみを説明する。図4は、SNMPメッセージの構成を示す概念図である。図4において、SNMPメッセージ253は、バージョンヘッダ261、コミュニティ名262、PDUProtocolDataUnit263で構成される。バージョンヘッダ261は、SNMPのバージョンを表し、SNMPv1であれば数値0、SNMPv2cであれば数値1である。コミュニティ名262は、ネットワーク管理者のみが知る識別情報で、管理装置100、及び管理対象装置200にそれぞれ設定されている。管理対象装置200は、コミュニティ名262を照合して、SNMPメッセージが正当なネットワーク管理者からであるか否かを判断する。コミュニティ名262は、例えば、文字列でpublicや、privateなどである。なお、本実施形態は、SNMPv1、v2cのセキュリティを向上するためのものだが、SNMPのバージョンは、0、1以外でもよい。図5は、PDUの構成を示す概念図である。PDU263は、PDU種別271、リクエストID272、エラーステータス、エラーインデクス、複数個のVarBind273、...で構成される。PDU種別271は、管理装置100が管理対象装置200に対する制御の種類を指定するために使われるフィールドである。PDU種別271は、管理対象装置200が管理装置100から受け取った制御に対する応答であることを伝えるためにも用いられる。設定の場合には、SETを指定し、応答の場合には、RESPONSEを指定する。SETのSNMPメッセージをSETリクエストという。RESPONSEのSNMPメッセージをレスポンスという。リクエストID272は、管理装置100が管理対象装置200に送信したSNMPメッセージ253に対する、管理対象装置200から管理装置100へのレスポンスを区別するための識別子で整数値である。例えば、SNMPメッセージ作成のたびに基準値からインクリメントしても良いし、毎回乱数でも良い。VarBind273は、操作したいOIDとそのOIDのオブジェクトに設定したい値のペアにしたものである。VarBind273は、PDU263内に複数あってもよい。図6は、VarBindの構成を示す概念図である。VarBind273は、OID281と、設定値282で構成される。OID281は、管理対象装置200が持つ管理情報毎の識別IDである。設定値282は、SETリクエストのとき、OID281に設定したい値を指定するために用いる。OID281とその設定値282の仕様は、RFCなどで定義された標準MIBや、ベンダー独自のMIBがある。例えば、RFC3418で定義されているSNMPv2-MIBでは、OID.1.3.6.1.2.1.1.6sysLocationは、管理対象装置200の物理的な設置場所情報のOIDであり、設定値には256文字未満の文字列例えば、Chibaなどを使用するように定義されている。図7は、第二実施形態による管理装置100の機能的構成を示すブロック図である。なお、図1に対応する部分には同一の符号を付けて説明を省略する。図7において、管理装置100は、パケット送受信部110と、SNMPメッセージ生成処理部120と、SNMPメッセージ解析処理部130と、不揮発性装置140と、不揮発性装置140内に記憶している共通鍵テーブル141とを備える。共通鍵テーブル141は、ネットワーク300上の管理対象装置200のアドレスと対応させた共通鍵101を記憶する。パケット送受信部110は、SNMPメッセージ生成処理部120から受け取ったSNMPメッセージ253とあて先アドレスとからパケット240を作成して送信する。また、パケット送受信部110は、管理対象装置200から受信したパケット240をSNMPメッセージ解析処理部130に処理させる。SNMPメッセージ生成処理部120は、SNMPメッセージ253を作成してパケット送受信部6110に処理させる機能を持つ。但し、認証付SETリクエスト作成時は、共通鍵テーブル141から取得した共通鍵101でSETリクエストのMACを求め、認証用VarBindを作成して、SNMPメッセージ253に付与する機能を持つ。MACは、例えば、HMACKeyedHashingforMACを使用する。ハッシュ関数は、SHA1SecureHashAlgorithm1や、MD5MessageDigestalgorithm5などを使用する。HMACは、RFC2104、SHA1は、FIPS180-1、MD5は、RFC1321で標準化されている。SNMPメッセージ解析処理部130は、パケット送受信部110から受け取った内容を管理者に通知する。図8は、第二実施形態による、管理装置100内に具備する共通鍵テーブル141の一例を示す概念図である。共通鍵テーブル141内の共通鍵101は、各アドレスに対する認証付SETリクエストを作成する場合に求めるMACに使用する鍵である。例えば、アドレスがADDR1である装置ここでは、管理対象装置200のことに対するSETリクエストのMAC算出に使用する共通鍵101は、CK1である。共通鍵CK1、CK2、、CKnは、すべて同じでも良い。なお、共通鍵テーブル141では、管理装置100自身のアドレスに対する共通鍵も管理できる。共通鍵テーブル141では、アドレスをADDRM、共通鍵をCKMで表している。図9は、第二実施形態による管理対象装置200の機能的構成を示すブロック図である。図9において、管理対象装置200は、パケット送受信部210と、SNMPメッセージ生成処理部220と、SNMPメッセージ解析処理部230と、不揮発性装置250と、不揮発性装置250内に記憶している共通鍵テーブル242と、記憶装置260と、記憶装置260内に記憶しているMACキャッシュ243と、MIBモジュール231とを備える。MIBモジュール231は、通常、複数存在し、その中の1つとして認証MIBモジュール241を備える。共通鍵テーブル242は、ネットワーク300上の管理装置100のアドレスと対応させた共通鍵を記憶する。パケット送受信部210は、SNMPメッセージ生成処理部220から受け取ったSNMPメッセージとあて先アドレスとからパケットを作成して送信する。また、パケット送受信部210は、受信したパケットをSNMPメッセージ解析処理部230に処理させる。SNMPメッセージ解析処理部230は、パケットがSETリクエストSETリクエストまたは認証付SETリクエストであれば、認証用VarBindの有無を調べ、無ければパケットを廃棄する。一方、認証用VarBindがある場合には、SNMPメッセージ内の各VarBindに対応しているMIBモジュール231にパケットを処理させ、その応答を待つ。特に、認証用VarBindの場合には、認証MIBモジュール241にパケットを処理させる。例えば、VarBindのOIDが.1.3.6.1.2.1.1.6の場合には、SNMPv2-MIBモジュールに処理させ、VarBindのOIDが認証用OIDの場合VarBindが認証用VarBindの場合には、認証MIBモジュール241に処理させる。SNMPメッセージ解析処理部230は、各MIBモジュール231からの応答を受け取り、全て正常終了であれば解析結果を正常とする。各MIBモジュール231のうち、一つ以上のMIBモジュールから異常終了を受け取ると、解析結果を異常とする。SNMPの仕様上RFC1157,3416、解析結果が異常の場合、SNMPメッセージ解析処理部230は、SNMPメッセージによる処理を無効にしなければならない。例えば、OID.1.3.6.1.2.1.1.6は、256文字未満の文字列を指定する必要がある。このため、SETリクエストの中が、このOIDに対して256文字以上の文字列の設定を要求するVarBindを持つと、SNMPv2-MIBモジュールは、異常終了をSNMPメッセージ解析処理部230に返す。異常終了を受け取ったSNMPメッセージ解析処理部230は、他のVarBindの設定内容を無効にする。SNMPメッセージ解析処理部230は、解析結果と、レスポンス生成に必要な情報例えば、各VarBindや、異常終了したVarBindの位置などと、パケット内の送信元アドレス管理装置100のアドレスをあて先アドレスとして、SNMPメッセージ生成処理部220に処理させる。MIBモジュール231は、SNMPメッセージ解析処理部230から受け取ったVarBindを定義に従って処理し、その結果をSNMPメッセージ解析処理部230に返す。MIBモジュール231の動作仕様は、RFCなどで定義された個々のMIB定義に従う。例えば、OID.1.3.6.1.2.1.1.6の動作は、RFC3418に、IPの情報を管理するIP-MIBは、RFC4293、LLDPの管理情報LLDP-MIBは、IEEE802.1AB-2005等に定義されている。認証MIBモジュール241は、SNMPメッセージ解析処理部230から受け取ったパケットがSETリクエストSETリクエストまたは認証付SETリクエスト以外の場合には何もしないで、SNMPメッセージ解析処理部230に正常終了を返す。一方、認証MIBモジュール241は、SNMPメッセージ解析処理部230から受け取ったパケットが認証付SETリクエストの場合には、認証用VarBind内の設定値MAC-MとするがMACキャッシュ243内に含まれているか検査する。認証MIBモジュール241は、MAC-MがMACキャッシュ243内に含まれていた場合には、リプレイ攻撃と考え、SNMPメッセージ解析処理230に異常終了を返す。一方、認証MIBモジュール241は、MAC-MがMACキャッシュ243内に含まれていなかった場合には、共通鍵テーブル242を参照して、受信したパケットの送信元アドレスに対応する共通鍵101を用いて、認証用VarBindを除いたSNMPメッセージのMACを、管理装置100と同じ方法で算出するこのMACをMAC-1とする。認証MIBモジュール241は、MAC-MとMAC-1とが一致するか調べ、MAC-1とMAC-Mとが不一致の場合には、SNMPメッセージが改ざんされたと判断して、SNMPメッセージ解析処理部230に異常終了を返す。一方、認証MIBモジュール241は、MAC-1とMAC-Mとが一致すれば、SNMPメッセージが改ざんされておらず、管理装置100からの正当なSNMPメッセージであると判断し、MACキャッシュ243にMAC-1を追加して、SNMPメッセージ解析処理部230に正常終了を返す。図10は、第二実施形態による、管理対象装置200が備える共通鍵テーブル242の一例を示す概念図である。共通鍵テーブル242における、共通鍵101は、各アドレスに対するMACを算出するために使用する鍵である。例えば、図10では、アドレスがADDRMである装置ここでは管理装置100のことに対して、MACの算出に使用する共通鍵は、CKMである。共通鍵CK1、CK2、...、CKnは、すべて同じでも良い。なお、共通鍵テーブル242では、管理対象装置200自身のアドレスに対する共通鍵も管理できる。図10では、アドレスをADDR1、共通鍵をCK1で表している。管理装置100のアドレスがADDRM、管理対象装置200のアドレスがADDR1であれば、管理装置100内の共通鍵テーブル141のCK1と管理対象装置200内の共通鍵テーブル242のCKMは同じものである。MACキャッシュ243は、認証MIBモジュール241が認証に成功したMACの履歴を記憶している。該MACの履歴は、認証MIBモジュール241が新たに認証するとき、認証用VarBind内のMACが過去に認証で使用したMACと一致するかを検索するために用いられる。MACキャッシュ243は、どのような実装でも良い。例えば、管理対象装置200が再開するまで記憶してもよいし、保存後一定時間が経ったMACは削除するようにしてもよいし、あらかじめMACキャッシュ243のサイズを決めて、空きサイズが不足すれば、古いMACを削除するようにしてもよい。なお、記憶装置260は、不揮発性、揮発性どちらでも良い。SNMPメッセージ生成処理部220は、SNMPメッセージ解析処理部230から解析結果、レスポンス生成に必要な情報、あて先アドレス管理装置100のアドレスを受け取り、レスポンスを作成して、レスポンスとあて先アドレスとをパケット送受信部210に処理させる。次に、第二実施形態によるネットワーク管理システムの動作について説明する。図11は、第二実施形態による管理装置100がSNMPメッセージを送信するまでの動作を説明するためのフローチャートである。まず、管理装置100において、管理者による操作、あるいは定期的な情報収集に基づいて、SNMPメッセージ生成処理部120に対して、管理対象装置200に対するSNMPメッセージの作成を要求するステップS101。次に、管理者は、管理対象装置200のアドレス、バージョン261、コミュニティ名262、PDU種別271、VarBind273を、SNMPメッセージ生成処理部120に与える。SNMPメッセージ生成処理部120は、適当な乱数などをリクエストID272にしてSNMPメッセージI110を作成するステップS102。リクエストID272は、他のSNMPメッセージのリクエストIDと異なれば何でも良い。次に、SNMPメッセージ生成処理部120は、作成したSNMPメッセージI110のPDU種別271がSETか否かを検査するステップS103。そして、SETの場合にはステップS103のYES、SNMPメッセージ生成処理部120は、認証用VarBindの作成処理を行うステップS104~S107へ進む。一方、SETでは無い場合にはステップS103のNO、何もせず、パケット作成の準備をするステップS108へ進む。まず、PDU種別271がSETである場合について説明する。SNMPメッセージ生成処理部120は、共通鍵テーブル141から、管理者が指定した管理装置200のアドレスに対応する共通鍵I101を取得するステップS104。例えば、共通鍵テーブル141において、管理対象装置200のアドレスがADDR1であれば、取得する共通鍵I101はCK1である。次に、SNMPメッセージ生成処理部120は、取得した共通鍵I101CK1で、ステップS102で作成したSNMPメッセージI110のMACを計算するステップS105。次に、SNMPメッセージ生成処理部120は、求めたMACと認証用OIDとで認証用VarBindを作成するステップS106。その後、SNMPメッセージ生成処理部120は、作成した認証用VarBindを、ステップS102で作成したSNMPメッセージI110に付け加え、認証付SNMPメッセージI111を作成するステップS107。次に、PDU種別271がSETでは無い場合ステップS103のNO、あるいは、上記ステップS107が終了すると、SNMPメッセージ生成処理部120は、管理者から受け取った管理対象装置200のアドレスをあて先アドレスにして、SNMPメッセージをパケット送受信部110に供給してパケット作成を要求するステップS108。パケット送受信部110に処理させるSNMPメッセージは、ステップS103でNOだった場合には、SNMPメッセージI110、ステップS103でYESだった場合には、SNMPメッセージI111になる。パケット送受信部110は、管理装置100のアドレスを送信元アドレスとして、SNMPメッセージ生成処理部120から受け取ったSNMPメッセージI110またはI111と、あて先アドレスとからパケットI112を作成するステップS109。パケット送受信部110は、パケットI112を管理対象装置200に送信するステップS110。次に、図12は、第二実施形態による管理対象装置200が管理装置100から受信したSNMPメッセージを処理する動作を説明するためのフローチャートである。まず、パケット送受信部210は、管理装置100から受信したパケットI112を受信し、SNMPメッセージ解析処理部230に処理させるステップS201。次に、SNMPメッセージ解析処理部230は、パケット受信部210から受け取ったパケットI112のPDU種別がSETか否かを調べるステップS202。そして、PDU種別がSETだった場合にはステップS202のYES、パケットI112中のVarBindに認証用VarBindがあるか否かを調べるステップS203。そして、VarBindに認証用VarBindがない場合にはステップS203のNO、パケットI112を廃棄するステップS204。一方、PDU種別がSETではなかった場合ステップS202のNO、もしくは、認証用VarBindがあった場合にはステップS203のYES、SNMPメッセージ解析処理部230は、各VarBindに対応したMIBモジュール231にパケットI112を処理させ、結果を待つステップS205。特に、認証用VarBindは、認証MIBモジュール241にパケットI112を処理させ、処理の結果を待つ。なお、認証MIBモジュール241の動作については後述する。次に、SNMPメッセージ解析処理部230は、異常終了を返したMIBモジュールがあるかを調べるステップS206。調べる対象は、MIBモジュール231と認証MIBモジュール241である。そして、異常終了を返したMIBモジュールがない場合にはステップS206のNO、解析結果正常終了と、レスポンス作成に必要な情報と、あて先アドレスパケットI112の送信元アドレスとを、SNMPメッセージ生成処理部220に処理させるべく、正常終了用のレスポンスの作成を要求するステップS207。一方、異常終了を返したMIBモジュールがあった場合にはステップS206のYESは、SNMPの仕様RFC1157,3416に従って、SNMPメッセージによる処理を無効にするステップS208。SNMPメッセージ解析処理部230は、解析結果異常終了、レスポンス生成に必要な情報例えば、各VarBindや異常終了したVarBindの位置などと、あて先アドレスパケットI112の送信元アドレスとを、SNMPメッセージ生成処理部220に処理させるべく、異常終了用のレスポンスの作成を要求するステップS209。異常終了、正常終了いずれの場合も、SNMPメッセージ生成処理部220は、SNMPメッセージ解析処理部230から受け取った解析結果正常終了または異常終了、レスポンス情報からレスポンスを作成するステップS210。SNMPメッセージ生成処理部8220は、作成したレスポンスをあて先アドレスと共にパケット送受信部8210に供給し、パケット作成を要求するステップS211。パケット送受信部210は、管理対象装置200のアドレスを送信元アドレスとして、SNMPメッセージ生成処理部220から受け取ったレスポンスと、あて先アドレスとからパケットを作成するステップS212。パケット送受信部210は、作成したパケットを管理装置100に送信するステップS213。図13は、第二実施形態による、認証MIBモジュール241の動作を説明するためのフローチャートである。認証MIBモジュール241は、SNMPメッセージ解析処理部230からパケットI112を受け取るS301。次に、認証MIBモジュール241は、SNMPメッセージ解析処理部230から受け取ったパケットI112のPDU種別がSETか否かを調べるステップS302。そして、PDU種別がSETではない場合にはステップS302のNO、SNMPメッセージ解析処理部230に正常終了を返すステップS303。一方、PDU種別がSETである場合にはステップS302のYES、認証MIBモジュール241は、パケットI112から認証用VarBind内の設定値MAC-Mとするを取り出し、MACキャッシュ243に同じ値がないか検索するステップS304。次に、認証MIBモジュール241は、MAC-MがMACキャッシュ243内に含まれているかを調べるステップS305。そして、MAC-MがMACキャッシュ243内に含まれている場合にはステップS305のYES、認証MIBモジュール241は、SNMPメッセージ解析処理部230に異常終了を返すステップS306。一方、MAC-MがMACキャッシュ243内に含まれていない場合にはステップS305のNO、認証MIBモジュール241は、共通鍵テーブル242を参照して、パケットI112の送信元アドレスに対応する共通鍵I101を取得するステップS307。例えば、共通鍵テーブル242において、パケットI112の送信元アドレスがADDRMであれば、共通鍵I101はCKMである。次に、認証MIBモジュール241は、パケットI112から、認証用VarBindを除いたSNMPメッセージI111を取り出すステップS308。次に、共通鍵I101を使ってSNMPメッセージI111のMACを計算するステップS309。これをMAC-1とする。MACは、管理装置100と同じ方法S105で算出する。次に、認証MIBモジュール241は、MAC-MとMAC-1とが一致するかを調べるステップS310。そして、MAC-MとMAC-1とが一致しない場合にはステップS310のNOは、SNMPメッセージ解析処理部230に異常終了を返すステップS311。一方、MAC-MとMAC-1とが一致した場合にはステップS310のYES、MACキャッシュ243にMAC-1を登録するステップS312。そして、SNMPメッセージ解析処理部230に正常終了を返すステップS313。以上のようにして、認証MIBモジュール241は、SNMPメッセージ解析処理部230に異常終了か、正常終了を返す。上述した第二実施形態によれば、以下の効果が得られる。1管理装置100がSETリクエストに認証用VarBindを付与すること、2管理対象装置200内のSNMPメッセージ解析処理部230が受信したSNMPメッセージ内に認証用VarBindが存在するかを検査すること、3認証MIBモジュール241において、認証用VarBind内の設定値MACと同じMACがMACキャッシュ243に含まれるか検査すること、4認証MIBモジュール241が再計算したMACと認証用VarBind内の設定値MACとが一致するかを検査すること、5MAC認証処理の大部分を、SNMPのプロトコル処理とは独立した認証MIBモジュール241で実現すること、により、以下の効果を奏する。上記1、2、4より、管理対象装置200に対するSETリクエストにおいてMACによる認証を行える。これにより、盗聴によってコミュニティ名が第三者に知られても不正なSETリクエストによって管理対象装置200に設定することを防ぐことができる。上記1、2、4より、管理対象装置200に対するSETリクエストにおいてのMACによる認証で、第三者によるSETリクエストの改ざんを検知できる。上記1、2、3より、同じMACのSETリクエストを受け付けないようになる。これにより、過去に認証できたSETリクエストと同じSETリクエストを第三者が管理対象装置200に送ったとしても、管理対象装置200は、その設定を受け付けないようにできる。上記5より、MACによる認証で失敗したとき同じMACがMACキャッシュ243内にあった場合、MACが不一致の場合、認証が失敗したことをレスポンスで管理装置100に通知できる。上記5より、管理対象装置200のSNMPプロトコル処理実装の改修をほとんど必要とせず、他のプロトコル処理実装に置き換えたとしても、容易に移植できる。なお、上述した第一、第二実施形態では、認証にMACを使用したが、公開鍵秘密鍵によるデジタル署名も使用できる。また、上述した第一、第二実施形態では、SETリクエストの認証のみであったが、管理対象装置200が自発的に管理装置100へ通知するTRAP、INFORMリクエストについても応用できる。そのためには、管理対象装置200のSNMPメッセージ生成処理部220が、管理装置100のように、TRAP、INFORMリクエストのSNMPメッセージの認証用VarBindを、SNMPメッセージに付与して管理装置100に送信するようにする。一方、管理装置100は、受信したTRAP、INFORMリクエストを、管理対象装置200のSNMPメッセージ解析処理部230、認証MIBモジュール241と同様に認証処理行う必要がある。また、例えば、特許文献1の技術と組み合わせて、暗号化と本発明による認証とでの運用も可能である。さらに、特許文献2の技術と組み合わせて、動的なコミュニティ名と本発明による認証とでの運用も可能である。以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。"