(57)【要約】【課題】日時情報と内容情報とを含むログ情報を記憶する通信装置において、不正に書き換えたログ情報がサーバに送信されることを防止する技術を提供する。【解決手段】通信装置は、通信装置によって第１の処理が実行される場合に、第１の処理の内容を示す第１のログ情報を符号化することによって、第１の値を生成し、第１のログ情報と第１の値とを対応付けてメモリに記憶し、その後に、メモリにおいて第１の値に対応付けて記憶されている情報を符号化することによって、第２の値を生成し、第１の値と前記第２の値とが一致すると判断される場合に、第１のログ情報をサーバに送信し、第１の値と第２の値とが一致しないと判断される場合に、メモリにおいて第１の値に対応付けて記憶されている情報をサーバに送信しない。【選択図】図４
2020068438.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
メモリと、
前記通信装置によって第１の処理が実行される場合に、前記第１の処理の内容を示す第１のログ情報を符号化することによって、第１の値を生成する第１の生成部と、
前記第１のログ情報と前記第１の値とを対応付けて前記メモリに記憶する第１の記憶制御部と、
前記第１のログ情報と前記第１の値とが前記メモリに記憶された後に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報を符号化することによって、第２の値を生成する第２の生成部と、
前記第１の値と前記第２の値とが一致するのか否かを判断する第１の判断部と、
前記第１の値と前記第２の値とが一致すると判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている前記第１のログ情報をサーバに送信する第１の送信部であって、前記第１の値と前記第２の値とが一致しないと判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報は前記サーバに送信されない、前記第１の送信部と、
を備える通信装置。
【請求項２】
前記通信装置は、さらに、
前記通信装置によって前記第１の処理が実行される場合に、前記第１の処理の内容が所定の内容であるのか否かを判断する第２の判断部を備え、
前記第１の生成部は、前記第１の処理の内容が前記所定の内容であると判断される場合に、前記第１の値を生成し、
前記第１の処理の内容が前記所定の内容でないと判断される場合に、前記第１の値は生成されず、
前記通信装置は、さらに、
前記第１の処理の内容が前記所定の内容でないと判断される場合に、前記第１の値が生成されることなく、前記第１のログ情報を前記サーバに送信する第２の送信部を備える、請求項１に記載の通信装置。
【請求項３】
前記メモリは、複数個の処理の内容のそれぞれについて、予め決められている順位を示す順位情報を記憶しており、
前記第２の判断部は、
前記メモリ内の前記順位情報を利用して特定された前記第１の処理の内容の順位が所定の順位よりも高順位である場合に、前記第１の処理の内容が前記所定の内容であると判断し、
前記第１の処理の内容の順位が、前記所定の順位に等しい場合、又は、前記所定の順位よりも低順位である場合に、前記第１の処理の内容が前記所定の内容でないと判断する、請求項２に記載の通信装置。
【請求項４】
前記通信装置は、さらに、
前記第１の値と前記第２の値とが一致しないと判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報を前記サーバとは異なる外部装置に送信する第３の送信部を備える、請求項１から３のいずれか一項に記載の通信装置。
【請求項５】
前記第１の生成部は、前記通信装置によって前記第１の処理が実行された後に、前記通信装置によって第２の処理が実行される場合に、前記第１のログ情報と、前記第２の処理の内容を示す第２のログ情報と、を合わせて符号化することによって、前記第１の値を生成し、
前記第１の記憶制御部は、前記第１のログ情報と前記第２のログ情報と前記第１の値とを対応付けて前記メモリに記憶させ、
前記第２の生成部は、前記第１のログ情報と前記第２のログ情報と前記第１の値とが前記メモリに記憶された後に、前記メモリにおいて前記第１の値に対応付けて記憶されている２個の情報を合わせて符号化することによって、前記第２の値を生成し、
前記第１の送信部は、前記第１の値と前記第２の値とが一致すると判断される場合に、前記メモリにおいて、前記第１の値に対応付けて記憶されている前記第１のログ情報と前記第２のログ情報とを前記サーバに送信し、
前記第１の値と前記第２の値とが一致しないと判断される場合に、前記２個の情報は前記サーバに送信されない、請求項１に記載の通信装置。
【請求項６】
前記第１の生成部は、前記通信装置によって前記第１の処理が実行されてから所定時間が経過するまでの間に、前記通信装置によって前記第２の処理が実行される場合に、前記第１のログ情報と、前記第２のログ情報と、を合わせて符号化することによって、前記第１の値を生成する、請求項５に記載の通信装置。
【請求項７】
前記通信装置は、さらに、
単位時間当たりに実行されるログに関する処理の回数を示す頻度が所定の頻度より高い場合に、第１の時間を前記所定時間として決定し、
前記頻度が前記所定の頻度より高くない場合に、前記第１の時間より長い第２の時間を前記所定時間として決定する決定部を備える、請求項６に記載の通信装置。
【請求項８】
前記決定部は、さらに、
前記第１のログ情報と前記第２のログ情報を含む２個以上のログ情報の個数を利用して、前記頻度を算出し、
算出済みの前記頻度を利用して、次の所定時間を決定し、
前記第１の生成部は、さらに、前記通信装置によって第３の処理が実行されてから決定済みの前記次の所定時間が経過するまでの間に、前記通信装置によって第４の処理が実行される場合に、前記第３の処理の内容を示す第３のログ情報と、前記第４の処理の内容を示す第４のログ情報と、を合わせて符号化する、請求項７に記載の通信装置。
【請求項９】
前記通信装置は、さらに、
前記第１の値と前記第２の値とが一致しないと判断される場合に、前記通信装置によって前記第１の処理及び前記第２の処理の実行後に第５の処理が実行される際に、前記第５の処理の内容を示す第５のログ情報を符号化することによって、第３の値を生成する第３の生成部と、
前記第５のログ情報と前記第３の値とを対応付けて前記メモリに記憶する第２の記憶制御部と、
前記第５のログ情報と前記第３の値とが前記メモリに記憶された後に、前記メモリにおいて前記第３の値に対応付けて記憶されている情報を符号化することによって、第４の値を生成する第４の生成部と、
前記第３の値と前記第４の値とが一致するのか否かを判断する第３の判断部と、
前記第３の値と前記第４の値とが一致すると判断される場合に、前記メモリにおいて前記第３の値に対応付けて記憶されている前記第５のログ情報を前記サーバに送信する第４の送信部と、
前記第３の値と前記第４の値とが一致しないと判断される場合に、前記メモリにおいて前記第３の値に対応付けられて記憶されている情報を前記サーバとは異なる外部装置に送信する第５の送信部と、
を備える、請求項５から８のいずれか一項に記載の通信装置。
【請求項１０】
前記第１の値と前記第２の値とが一致しないと判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報は前記外部装置に送信されない、請求項９に記載の通信装置。
【請求項１１】
前記第１の送信部は、前記第１の値と前記第２の値が一致すると判断される場合に、Ｓｙｓｌｏｇプロトコルに従って、前記第１のログ情報を前記サーバに送信する、請求項１から１０のいずれか一項に記載の通信装置。
【請求項１２】
前記通信装置は、プリンタであり、
前記第１の処理は、前記通信装置のユーザを認証するための認証処理と印刷処理とを含む複数個の処理のうちのいずれかの処理であり、
前記第１の処理の内容は、前記認証処理が成功した内容と、前記認証処理が失敗した内容と、前記印刷処理が成功した内容と、前記印刷処理が失敗した内容と、を含む複数個の内容のうちのいずれかの内容を示す、請求項１から１１のいずれか一項に記載の通信装置。
【請求項１３】
通信装置のためのコンピュータプログラムであって、
前記通信装置のコンピュータを、以下の各部、即ち、
前記通信装置によって第１の処理が実行さる場合に、前記第１の処理の内容を示す第１のログ情報を符号化することによって、第１の値を生成する第１の生成部と、
前記第１のログ情報と前記第１の値とを対応付けて前記通信装置のメモリに記憶する第１の記憶制御部と、
前記第１のログ情報と前記第１の値とが前記メモリに記憶された後に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報を符号化することによって、第２の値を生成する第２の生成部と、
前記第１の値と前記第２の値とが一致するのか否かを判断する第１の判断部と、
前記第１の値と前記第２の値とが一致すると判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている前記第１のログ情報をサーバに送信する第１の送信部であって、前記第１の値と前記第２の値とが一致しないと判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報は前記サーバに送信されない、前記第１の送信部と、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、ログ情報をサーバに送信する通信装置に関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、動作ログを記憶するＭＦＰ（Multi-Function Peripheralの略）が開示されている。ＭＦＰは、所定のタイミングにおいて、Ｓｙｓｌｏｇプロトコルに従って、記憶済みの動作ログを外部ホストに送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２８７１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の技術では、動作ログが記憶されてから動作ログが送信されるまでの間に、記憶済みの動作ログが不正に書き換えられることが何ら想定されていない。このため、上記の技術では、不正に書き換えられた動作ログが外部ホストに送信され得る。
【０００５】
本実施例では、日時情報と内容情報とを含むログ情報を記憶する通信装置において、不正に書き換えたログ情報がサーバに送信されることを防止する技術を提供する。
【０００６】
本明細書で開示する通信装置は、メモリと、前記通信装置によって第１の処理が実行される場合に、前記第１の処理の内容を示す第１のログ情報を符号化することによって、第１の値を生成する第１の生成部と、前記第１のログ情報と前記第１の値とを対応付けて前記メモリに記憶する第１の記憶制御部と、前記第１のログ情報と前記第１の値とが前記メモリに記憶された後に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報を符号化することによって、第２の値を生成する第２の生成部と、前記第１の値と前記第２の値とが一致するのか否かを判断する第１の判断部と、前記第１の値と前記第２の値とが一致すると判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている前記第１のログ情報をサーバに送信する第１の送信部であって、前記第１の値と前記第２の値とが一致しないと判断される場合に、前記メモリにおいて前記第１の値に対応付けて記憶されている情報は前記サーバに送信されない、前記第１の送信部と、を備えてもよい。
【０００７】
上記の構成によれば、通信装置は、第１の処理が実行される場合に、第１のログ情報を符号化して第１の値を生成し、第１のログ情報と第１の値とを対応づけてメモリに記憶する。その後、通信装置は、第１の値に対応付けられている情報を符号化して第２の値を生成し、第１の値と第２の値とが一致するのか否かを判断する。そして、通信装置は、第１の値と第２の値とが一致すると判断する場合には、第１のログ情報をサーバに送信するが、第１の値と第２の値とが一致しないと判断する場合には、メモリにおいて第１の値に対応付けて記憶されている情報をサーバに送信しない。第１の値と第２の値とが一致しないということは、第１のログ情報がメモリに記憶された後に、第１のログ情報が不正に書き換えられた可能性があることを意味する。この場合、メモリにおいて第１の値に対応付けて記憶されている情報がサーバに送信されないので、不正に書き換えたログ情報がサーバに送信されることを防止することができる。
【０００８】
上記の通信装置を実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。また、上記の通信装置によって実行される方法も新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成を示す。
【図２】第１実施例におけるログ情報記憶処理のフローチャートを示す。
【図３】第１実施例におけるログ情報送信処理のフローチャートを示す。
【図４】図３及び図４の処理によって実現される具体的なケースを示す。
【図５】第２実施例における各テーブルを示す。
【図６】第２実施例におけるログ情報記憶処理のフローチャートを示す。
【図７】第２実施例におけるログ情報送信処理のフローチャートを示す。
【図８】待機時間変更処理のフローチャートを示す。
【図９】図６〜図８の処理によって実現される具体的なケースＢ１を示す。
【図１０】図９の続きを示す。
【図１１】図６〜図８の処理によって実現される具体的なケースＢ２を示す。
【発明を実施するための形態】
【００１０】
（通信システム２の構成；図１）
図１に示されるように、通信システム２は、プリンタ１０と、ログ管理サーバ１００と、端末装置２００と、を備える。各装置１０、１００、２００は、同じＬＡＮ（Local Area Networkの略）４に所属しており、ＬＡＮ４を介して相互に通信可能である。
【００１１】
（プリンタ１０の構成）
プリンタ１０は、印刷機能を実行可能な周辺装置（即ち端末装置２００等の周辺装置）である。プリンタ１０は、ネットワークインターフェース１６と、制御部２０と、を備える。ネットワークインターフェース１６は、有線通信を実行するためのＩ／Ｆであり、ＬＡＮ４に接続されている。変形例では、ネットワークＩ／Ｆ１６は、無線通信を実行するためのＩ／Ｆであってもよく、この場合、ＬＡＮ４は、いわゆる無線ＬＡＮである。なお、以下では、インターフェースのことを「Ｉ／Ｆ」と記載する。
【００１２】
制御部２０は、ＣＰＵ２２と、不揮発性メモリ２４と、揮発性メモリ４０と、を備える。不揮発性メモリ２４は、プリンタ１０の電源がＯＦＦされても、記憶内容が消去されないメモリである。揮発性メモリ４０は、プリンタ１０の電源がＯＦＦされると、記憶内容が消去されるメモリである。揮発性メモリ４０は第２実施例で利用されるので、本実施例では揮発性メモリ４０に関する詳しい説明を省略する。
【００１３】
ＣＰＵ２２は、不揮発性メモリ２４に記憶されているプログラム３０に従って、様々な処理を実行する。例えば、ＣＰＵ２２は、プログラム３０に従って予め決められている或る処理を実行する場合に、プログラム３０に従ってログ情報を不揮発性メモリ２４に記憶する。以下では、上記の予め決められている或る処理のように、ログ情報が記憶される処理のことを「ログに関する処理」と記載する。ログに関する処理は、例えば、ユーザ認証、印刷処理、ＦｉｒｍＵｐｄａｔｅ等を含む。ユーザ認証は、プリンタ１０のユーザを認証するための処理である。例えば、プリンタ１０は、プリンタ１０と通信可能な外部装置（例えば端末装置２００）からプリンタ１０の設定情報（例えばネットワーク設定）の変更要求を受信する場合に、変更要求に含まれる認証情報（例えばユーザ名とパスワード）を利用してユーザ認証を実行することができる。印刷処理は、外部装置から画像データを受信して、当該画像データによって表わされる画像の印刷を実行する処理である。ＦｉｒｍＵｐｄａｔｅは、プリンタ１０に記憶されているプログラム３０（即ちＦｉｒｍｗａｒｅ）をアップデートする処理である。
【００１４】
また、ＣＰＵ２２は、プログラム３０に従って、不揮発性メモリ２４に記憶されているログ情報をＳｙｓｌｏｇプロトコルに従った文字列に変換し、当該文字列に変換されたログ情報をログ管理サーバ１００に送信する。Ｓｙｓｌｏｇプロトコルは、システムのログを記憶するための汎用的な通信プロトコルである。
【００１５】
不揮発性メモリ２４は、さらに、Ｐｒｉｏｒｉｔｙテーブル３２を記憶する。Ｐｒｉｏｒｉｔｙテーブル３２は、複数個のログに関する処理の内容のそれぞれについて、当該ログに関する処理の内容と、順位を示す順位情報と、を対応付けて記憶するテーブルである。Ｓｙｓｌｏｇプロトコルでは、ログに関する処理の内容の重要度（即ちＰｒｉｏｒｉｔｙ）を示す順位が定義されている。順位の数字が小さい程、重要度が高い。例えば、順位「０」は順位「１」より高順位であり、順位「７」は順位「６」より低順位である。
【００１６】
プリンタ１０のベンダは、複数個のログに関する処理の内容のそれぞれについて、順位「０」〜「７」のうちのいずれかを割り当てる。本実施例では、例えば、ユーザ認証が成功したことを示す処理の内容には、順位「６」が割り当てられ、ユーザ認証が失敗したことを示す処理の内容には、順位「３」が割り当てられる。Ｐｒｉｏｒｉｔｙテーブル３２は、プリンタ１０の出荷段階から不揮発性メモリ２４に予め記憶されている。また、Ｐｒｉｏｒｉｔｙテーブル３２は、プリンタ１０の出荷後にプログラム３０のアップデートが実行される場合等に変更されてもよい。
【００１７】
不揮発性メモリ２４は、さらに、送信テーブル３４を記憶する。送信テーブル３４は、ログ管理サーバ１００に送信されるログ情報を記憶するためのテーブルである。送信テーブル３４は、ログ情報を識別する番号を示すログ番号（例えば「log01」）と、ログ情報と、を対応付けて記憶する。ログ情報は、ログに関する処理が実行された日時を示す日時情報（例えば「Sep-13 10:00」）と、当該処理の内容を示す内容情報（例えば「authentication, IP address = 10.0.0.99, result = fail」）と、を含む。また、ログ情報がハッシュ化されることによってハッシュ値が生成される場合には、送信テーブル３４は、ログ番号とログ情報とに対応付けて、ハッシュ値をさらに記憶する。
【００１８】
（ログ管理サーバ１００の構成）
ログ管理サーバ１００は、プリンタ１０から受信されるログ情報を管理するサーバである。ログ管理サーバ１００は、プリンタ１０の管理者によってＬＡＮ４に接続される。変形例では、ログ管理サーバ１００は、インターネットに設置されてもよい。
【００１９】
（端末装置２００の構成）
端末装置２００は、デスクトップＰＣ（Personal Computerの略）、ノートＰＣ、タブレットＰＣ、携帯端末等の装置である。端末装置２００は、Ｓｙｓｌｏｇプロトコルに従った文字列を解析するためのＳＩＥＭ（Security Information and Event Managementの略）ツール２３０を記憶する。端末装置２００は、ログ管理サーバ１００からログ情報を受信し、ＳＩＥＭツール２３０に従って受信済みのログ情報を解析する。これにより、端末装置２００は、プリンタ１０においてログに関する処理が実行された日時と、当該処理の内容と、を取得することができ、それらの情報を表示することができる。
【００２０】
（ログ情報記憶処理；図２）
図２を参照して、プリンタ１０のＣＰＵ２２によって実行されるログ情報記憶処理について説明する。図２の処理は、プリンタ１０の電源が投入されることをトリガとして開始される。
【００２１】
Ｓ１０では、ＣＰＵ２２は、ログに関する処理が実行されることを監視する。ＣＰＵ２２は、ログに関する処理が実行されると（Ｓ１０でＹＥＳ）、Ｓ１２に進む。以下では、当該処理のことを「対象処理」と記載する。
【００２２】
Ｓ１２では、ＣＰＵ２２は、Ｐｒｏｒｉｔｙテーブル３２から対象処理の内容に対応する順位を特定し、特定済みの順位が所定の順位（本実施例では順位「４」）よりも高順位（即ち順位「０」〜「３」）であるのか否かを判断する。ＣＰＵ２２は、特定済みの順位が所定の順位よりも高順位であると判断する場合（Ｓ１２でＹＥＳ）に、Ｓ１４に進み、特定済みの順位が、所定の順位に等しいと判断する場合、又は、所定の順位よりも低順位（即ち順位「５」〜「７」）であると判断する場合（Ｓ１２でＮＯ）に、Ｓ１８に進む。なお、Ｓ１２で利用される所定の順位は、順位「４」でなくてもよく、他の順位であってもよい。
【００２３】
Ｓ１４では、ＣＰＵ２２は、対象処理が実行された日時を示す日時情報と、対象処理の内容を示す内容情報と、を含むログ情報（以下、「対象ログ情報」と記載）をハッシュ化することによって、ハッシュ値を生成する。具体的には、ＣＰＵ２２は、日時情報を表わす文字列と内容情報を表わす文字列とを組み合わせて１個の文字列を生成し、所定のハッシュ関数を利用して当該１個の文字列をハッシュ化することによって、ハッシュ値を生成する。ハッシュ関数は、例えば、ＭＤ５、ＳＨＡ−１、ＳＨＡ−２５６等の既知の関数である。
【００２４】
Ｓ１６では、ＣＰＵ２２は、新しいログ番号と対象ログ情報とＳ１４で生成されたハッシュ値とを対応付けて送信テーブル３４に記憶する。Ｓ１６が終了すると、Ｓ１０に戻る。
【００２５】
また、Ｓ１８では、ＣＰＵ２２は、対象ログ情報からハッシュ値を生成することなく、新しいログ番号と対象ログ情報とを対応付けて送信テーブル３４に記憶する。この場合、新しいログ番号と対象ログ情報とに対応付けてハッシュ値が記憶されない。Ｓ１８が終了すると、Ｓ１０に戻る。
【００２６】
（ログ情報送信処理；図３）
図３を参照して、プリンタ１０のＣＰＵ２２によって実行されるログ情報送信処理について説明する。図３の処理は、プリンタ１０の電源がＯＮされている間に定期的に（例えば１５分周期で）実行される。
【００２７】
Ｓ３０では、ＣＰＵ２２は、送信テーブル３４に記憶されているログ情報の個数が所定数（例えば５個）以上であるのか否かを判断する。ＣＰＵ２２は、記憶済みのログ情報の個数が所定数より小さいと判断する場合（Ｓ３０でＮＯ）に、Ｓ３２以降の処理を実行せずに、図３の処理を終了する。即ち、ＣＰＵ２２は、記憶済みのログ情報の個数が所定数より小さい場合に、ログ情報をログ管理サーバ１００に送信しない。本実施例によると、所定数以上の個数のログ情報をログ管理サーバ１００にまとめて送信することができ、この結果、ログ管理サーバ１００との通信回数を削減することができる。これにより、プリンタ１０とログ管理サーバ１００との間の通信に関する処理の負荷を低減させることができる。なお、変形例では、Ｓ３０の処理を省略してもよい。
【００２８】
ＣＰＵ２２は、記憶済みのログ情報の個数が所定数以上であると判断する場合（Ｓ３０でＹＥＳ）に、Ｓ３２において、記憶済みの複数個のログ情報の中から１個のログ情報を選択する。
【００２９】
Ｓ３４では、ＣＰＵ２２は、送信テーブル３４において選択済みのログ情報に対応付けて記憶されているハッシュ値が存在するのか否かを判断する。ＣＰＵ２２は、ハッシュ値が存在しないと判断する場合（Ｓ３４でＮＯ）に、Ｓ３６〜Ｓ４２の処理をスキップして、Ｓ４４に進む。一方、ＣＰＵ２２は、ハッシュ値が存在すると判断する場合（Ｓ３４でＹＥＳ）に、Ｓ３６に進む。
【００３０】
Ｓ３６では、ＣＰＵ２２は、選択済みのログ情報をハッシュ化することによって、ハッシュ値を生成する。具体的には、ＣＰＵ２２は、選択済みのログ情報に含まれる日時情報を表わす文字列と、選択済みのログ情報に含まれる内容情報を表わす文字列と、を組み合わせて１個の文字列を生成し、図２のＳ１４で利用された所定のハッシュ関数と同じハッシュ関数を利用して当該１個の文字列をハッシュ化することによって、ハッシュ値を生成する。
【００３１】
Ｓ３８では、ＣＰＵ２２は、Ｓ３６で生成された生成済みのハッシュ値と、送信テーブル３４において選択済みのログ情報に対応付けて記憶されている記憶済みのハッシュ値と、が一致するのか否かを判断する。例えば、図２のＳ１６の処理においてログ情報が送信テーブル３４に記憶されてから、当該ログ情報が図３のＳ３２で選択されるまでの間に、当該ログ情報が不正に書き換えられる状況を想定する。この場合、当該ログ情報に対応する生成済みのハッシュ値と、当該ログ情報に対応する記憶済みのハッシュ値と、が異なる。ＣＰＵ２２は、生成済みのハッシュ値と記憶済みのハッシュ値とが一致しないと判断する場合（Ｓ３８でＮＯ）に、選択済みのログ情報が不正に書き換えられたログ情報であると判断して、Ｓ４２に進む。一方、ＣＰＵ２２は、生成済みのハッシュ値と記憶済みのハッシュ値とが一致すると判断する場合（Ｓ３８でＹＥＳ）に、選択済みのログ情報が不正に書き換えられたログ情報でないと判断して、Ｓ４４に進む。
【００３２】
Ｓ４２では、ＣＰＵ２２は、選択済みのログ情報をメール情報として決定する。メール情報は、プリンタ１０の管理者に送信される警告メールの本文に記述される情報である。Ｓ４２が終了すると、Ｓ４６に進む。
【００３３】
Ｓ４４では、ＣＰＵ２２は、選択済みのログ情報をサーバ送信情報として決定する。サーバ送信情報は、ログ管理サーバ１００に送信される情報である。Ｓ４４が終了すると、Ｓ４６に進む。
【００３４】
Ｓ４６では、ＣＰＵ２２は、送信テーブル３４の中に未選択のログ情報が存在するのか否かを判断する。ＣＰＵ２２は、送信テーブル３４の中に未選択のログ情報が存在すると判断する場合（Ｓ４６でＹＥＳ）に、Ｓ３２に戻り、送信テーブル３４の中から１個のログ情報を新たに選択する。一方、ＣＰＵ２２は、送信テーブル３４の中に未選択のログ情報が存在しないと判断する場合（Ｓ４６でＮＯ）に、Ｓ５０に進む。
【００３５】
Ｓ５０では、ＣＰＵ２２は、１個以上のログ情報がメール情報として決定される場合（Ｓ４２）に、不揮発性メモリ２４に予め記憶されている管理者のメールアドレスを宛先として、メール情報が記述された本文を含む警告メールを送信する。別言すれば、ＣＰＵ２２は、Ｓ３２で選択されたいずれのログ情報もメール情報として決定されない場合には、警告メールを送信しない。警告メールが送信されると、管理者は、例えば端末装置２００を操作して、警告メール内の本文に記述されたメール情報を見ることができる。これにより、管理者は、不正に書き換えられたログ情報を知ることができる。なお、変形例では、ＣＰＵ２２は、メール情報と同じ情報を電子メール以外の方法（例えば、ＦＴＰ（File Transfer Protocolの略）を利用した方法）を利用して、端末装置２００に送信してもよい。
【００３６】
さらに、Ｓ５０では、ＣＰＵ２２は、１個以上のログ情報がサーバ送信情報として決定される場合（Ｓ４４）に、サーバ送信情報として決定された１個以上のログ情報のそれぞれをＳｙｓｌｏｇプロトコルに従った文字列に変換し、１個以上の文字列に変換された１個以上のログ情報をログ管理サーバ１００に送信する。これにより、サーバ送信情報がログ管理サーバ１００に記憶される。なお、ＣＰＵ２２は、１個以上のログ情報を含む１個のファイルをログ管理サーバ１００に送信してもよいし、１個以上のログ情報のそれぞれを１個のファイルとしてログ管理サーバ１００に送信してもよい。
【００３７】
Ｓ６０では、ＣＰＵ２２は、送信テーブル３４内の全てのログ情報及び対応する各情報（即ちログ番号及びハッシュ値）を削除する。Ｓ６０が終了すると、図３の処理が終了する。
【００３８】
（具体的なケース；図４）
図４を参照して、図２及び図３の処理によって実現される具体的なケースを説明する。本ケースでは、まず、プリンタ１０によってユーザ認証が９月１３日１０時００分に実行され、ユーザ認証が失敗する。この場合、プリンタ１０は、ユーザ認証が実行されたと判断し（図２のＳ１０でＹＥＳ）、Ｐｒｏｒｉｔｙテーブル３２からユーザ認証が失敗した内容に対応する順位「３」を特定し、順位「３」が所定の順位「４」よりも高順位であると判断する（Ｓ１２でＹＥＳ）。そして、プリンタ１０は、ユーザ認証が実行された日時を示す文字列「Sep-13 10:00」と、ユーザ認証が失敗した内容を示す文字列「authentication, IP address = 10.0.0.99, result = fail」と、を組み合わせて１個の文字列「Sep-13 10:00, authentication, IP address = 10.0.0.99, result = fail」を生成し、生成済みの１個の文字列からハッシュ値ＨＶ１を生成する（Ｓ１４）。ここで、ユーザ認証が失敗した内容を示す文字列は、ユーザ認証を示す文字列「authentication」と、ＩＰアドレスを示す文字列「IP address = 10.0.0.99」と、失敗した結果を示す文字列「result = fail」と、を含む。ＩＰアドレスを示す文字列は、ユーザ認証に利用された認証情報（即ちユーザ名とパスワード）の送信元の端末装置に割り当てられているＩＰアドレス「10.0.0.99」を含む。そして、プリンタ１０は、ログ番号「log01」と、ログ情報（即ち日時情報「Sep-13 10:00」と内容情報「authentication, IP address = 10.0.0.99, result = fail」）と、ハッシュ値ＨＶ１と、を対応付けて送信テーブル３４に記憶する（Ｓ１６）。
【００３９】
さらに、本ケースでは、プリンタ１０によって印刷処理が９月１３日１０時０２分に実行され、当該印刷処理が成功する。この場合、プリンタ１０は、印刷が実行されたと判断し（図２のＳ１０でＹＥＳ）、Ｐｒｏｒｉｔｙテーブル３２から印刷処理が成功した内容に対応する順位「６」を特定し、順位「６」が所定の順位「４」よりも低順位であると判断する（Ｓ１２でＮＯ）。この場合、プリンタ１０は、ハッシュ値を生成することなく、ログ番号「log02」と、ログ情報（即ち日時情報「Sep-13 10:02」と内容情報「print, result = success」）と、を対応付けて送信テーブル３４に記憶する（Ｓ１８）。ここで、印刷処理が成功した内容を示す内容情報は、印刷処理を示す文字列「print」と、成功した結果を示す文字列「result = success」と、を含む。
【００４０】
さらに、本ケースでは、９月１３日１０時０２分の後の同日１０時０３分、１０時０４分、１０時０７分のそれぞれにおいても、印刷処理が実行され、いずれも成功する。この結果、送信テーブル３４には、さらに、ログ番号「log03」〜「log05」に対応する３個のログ情報が記憶される。
【００４１】
また、本ケースでは、ログ番号「log01」に対応するログ情報が記憶されてからログ番号「log05」に対応するログ情報が記憶されるまでの間に、ログ番号「log01」に対応するログ情報内の内容情報が不正に書き換えられる。例えば、認証情報の送信元の端末装置に割り当てられているＩＰアドレス「10.0.0.99」がＩＰアドレス「10.0.0.51」に不正に書き換えられる（即ち改ざんされる）。
【００４２】
プリンタ１０は、ログ番号「log05」に対応するログ情報が記憶された後に、１５分の周期によって決定されるタイミングが到来すると、ログ情報送信処理（図３）を実行する。プリンタ１０は、送信テーブル３４内のログ情報の個数が所定数である５個以上であると判断する（Ｓ３０でＹＥＳ）。次いで、プリンタ１０は、ログ番号「log01」に対応するログ情報を選択する場合（Ｓ３２）に、送信テーブル３４において選択済みのログ情報に対応するハッシュ値ＨＶ１が存在すると判断する（Ｓ３４でＹＥＳ）。この場合、プリンタ１０は、選択済みのログ情報からハッシュ値ＨＶ２を生成する（Ｓ３６）。本ケースでは、上記したように、ログ番号「log01」に対応するログ情報内の内容情報が改ざんされている。この結果、プリンタ１０は、生成済みのハッシュ値ＨＶ２と送信テーブル３４に記憶されているハッシュ値ＨＶ１とが一致しないと判断し（Ｓ３８でＮＯ）、ログ番号「log01」に対応するログ情報をメール情報として決定する（Ｓ４２）。
【００４３】
また、プリンタ１０は、ログ番号「log02」〜「log05」のうちのいずれかに対応するログ情報を選択する場合（Ｓ３２）に、送信テーブル３４において選択済みのログ情報に対応するハッシュ値が存在しないと判断して（Ｓ３４でＮＯ）、選択済みのログ情報をサーバ送信情報として決定する（Ｓ４４）。
【００４４】
プリンタ１０は、送信テーブル３４内の全てのログ情報を選択し終えると（Ｓ４６でＮＯ）、ログ番号「log01」に対応するログ情報（即ちメール情報）が記述された本文を含む警告メールを送信する（Ｓ５０）。さらに、プリンタ１０は、サーバ送信情報として決定されたログ番号「log02」〜「log05」に対応する４個のログ情報のそれぞれをＳｙｓｌｏｇプロトコルに従った文字列に変換し、４個の文字列に変換された４個のログ情報をログ管理サーバ１００に送信する（Ｓ５０）。Ｓｙｓｌｏｇプロトコルに従った文字列は、ＰＲＩ部と、ＨＥＡＤＥＲ部と、ＭＥＳＳＡＧＥ部と、を含む。ＰＲＩ部は、システムの種類を示すＦａｃｉｌｉｔｙの値とＰｒｉｏｒｉｔｙの順位とに基づいて算出される値である。ＨＥＡＤＥＲ部は、日時情報を示す文字列（例えば「Sep-13 10:07」）と、プリンタ１０のＩＰアドレスを示す文字列（例えば「10.0.1.20」）と、を含む。ＭＥＳＳＡＧＥ部は、内容情報を示す文字列（例えば「print, result = success」）を含む。
【００４５】
プリンタ１０は、警告メールの送信とログ管理サーバ１００へのログ情報の送信が終了すると、送信テーブル３４内のログ番号「log01」〜「log05」に対応する５個のログ情報及び対応する各情報（即ちログ番号「log01」〜「log05」及びハッシュ値ＨＶ１）を削除する（Ｓ６０）。
【００４６】
（本実施例の効果）
本実施例によれば、プリンタ１０は、ユーザ認証が９月１３日１０時００分に実行された後に、ログ情報をハッシュ化してハッシュ値ＨＶ１を生成し、ログ情報とハッシュ値ＨＶ１とを送信テーブル３４に記憶する（図４のログ番号「log01」参照）。また、プリンタ１０は、ログ番号「log01」に対応するログ情報とハッシュ値ＨＶ１とが送信テーブル３４に記憶された後に、ハッシュ値ＨＶ１に対応付けて記憶されているログ番号「log01」に対応するログ情報をハッシュ化してハッシュ値ＨＶ２を生成する。そして、プリンタ１０は、ハッシュ値ＨＶ１とハッシュ値ＨＶ２とが一致しないと判断する場合に、ログ番号「log01」に対応するログ情報をログ管理サーバ１００に送信しない。ハッシュ値ＨＶ１とハッシュ値ＨＶ２とが一致しないということは、ログ番号「log01」に対応するログ情報が送信テーブル３４に記憶された後に、当該ログ情報が異なるログ情報（即ちＩＰアドレス「10.0.0.51」を含むログ情報）に改ざんされたことを意味する。従って、改ざんされたログ情報がログ管理サーバ１００に送信されることを防止することができる。これにより、ログ管理サーバ１００は、改ざんされていないログ情報のみを記憶することができる。このために、端末装置２００は、ログ管理サーバ１００から改ざんされていないログ情報のみを取得することができる。この結果、端末装置２００は、ＳＩＥＭツール２３０に従ってログ情報を解析して解析結果を管理者に提供する際に、改ざんされていないログ情報の解析結果を管理者に提供することができる。
【００４７】
また、プリンタ１０は、対象処理の内容に対応する順位が所定の順位よりも高順位である場合、即ち、対象処理の内容の重要度が高い場合に、ハッシュ値を生成して、送信テーブル３４に記憶する（図２のＳ１２でＹＥＳ、Ｓ１４、Ｓ１６）。そして、プリンタ１０は、送信テーブル３４内のハッシュ値と、当該ハッシュ値に対応するログ情報から生成されたハッシュ値と、が一致しない場合に、ログ情報が改ざんされたと判断して、ログ情報をログ管理サーバ１００に送信しない（図３のＳ３８でＮＯ）。例えば、重要度が高い内容の内容情報を含むログ情報が改ざんされ、改ざんされたログ情報がログ管理サーバ１００に送信される状況を想定する。この場合、管理者は、改ざんされたログ情報を見て、重要度が高い内容に対処する作業を不必要に実行する可能性がある。これに対して、重要度が高い内容について、改ざんされたログ情報がログ管理サーバ１００に送信されないことによって、重要度が高い内容に対処する作業が不必要に実行されることを防止することができる。また、プリンタ１０は、対象処理の内容に対応する順位が所定の順位よりも低順位である場合、即ち、対象処理の内容の重要度が低い場合に、ハッシュ値を生成しない（図２のＳ１２でＮＯ）。重要度が高いログに関する処理の内容は、管理者が注視する内容であるため、管理者によって第三者の不正な行動がばれやすい。このため、第三者は、重要度が高い内容の内容情報を含むログ情報を改ざんする可能性が高い。これに対して、重要度が低い内容の内容情報を含むログ情報は改ざんされる可能性が低い。本実施例の構成によれば、重要度に関わらず全てのログ情報のそれぞれからハッシュ値を生成する構成と比較して、プリンタ１０の処理負荷を低減することができる。
【００４８】
また、プリンタ１０は、Ｐｒｏｒｉｔｙテーブル３２を利用して、ハッシュ値を生成するのか否かの判断を実行する（図２のＳ１２）。即ち、Ｓｙｓｌｏｇプロトコルによって定義されているＰｒｉｏｒｉｔｙの順位を利用して、ハッシュ値を生成するのか否かの判断を実行することができる。
【００４９】
（対応関係）
プリンタ１０、不揮発性メモリ２４が、それぞれ、「通信装置」、「メモリ」の一例である。ユーザ認証、ログ番号「log01」に対応するログ情報、ハッシュ値ＨＶ１が、それぞれ、「第１の処理」、「第１のログ情報」、「第１の値」の一例である。ＩＰアドレスが改ざんされたログ番号「log01」に対応するログ情報、ハッシュ値ＨＶ２が、それぞれ、「前記メモリにおいて前記第１の値に対応付けて記憶されている情報」、「第２の値」の一例である。ユーザ認証が失敗した内容が、「所定の内容」の一例である。Ｐｒｉｏｒｉｔｙテーブル３２内の各順位、順位「４」が、それぞれ、「順位情報」、「所定の順位」の一例である。端末装置２００が、「外部装置」の一例である。
【００５０】
図２のＳ１４、Ｓ１６が、それぞれ、「第１の生成部」、「第１の記憶制御部」によって実現される処理の一例である。図３のＳ３６、Ｓ３８、Ｓ５０が、それぞれ、「第２の生成部」、「第１の判断部」、「第１の送信部」によって実現される処理の一例である。
【００５１】
（第２実施例）
本実施例では、ログ情報記憶処理の一部とログ情報送信処理の一部が第１実施例と異なる。また、本実施例において、揮発性メモリ４０は、ログテーブル５０を記憶する。また、プリンタ１０の不揮発性メモリ２４は、さらに、ＩＤ（Identifier の略）テーブル３６と、モード情報３８と、を記憶する。モード情報３８は、ログ情報の改ざんが行われていないことを示す「通常」と、ログ情報の改ざんが行われた可能性が高いことを示す「危険」と、のうちのいずれかの値を示す。モード情報３８は、デフォルトでは「通常」を示す。
【００５２】
（各種テーブル；図５）
本実施例の送信テーブル３４は、ハッシュ値に代えてハッシュＩＤが記憶される点を除いて、第１実施例の送信テーブル３４と同様である。ハッシュＩＤは、ログ情報から生成されたハッシュ値を識別するための情報である。ＩＤテーブル３６は、ハッシュ値とハッシュＩＤを対応付けて記憶する。
【００５３】
ログテーブル５０は、ログ情報を一時的に記憶するためのテーブルである。ログテーブル５０は、ログ番号（例えば、ログ番号「log02」）と、ログ情報（例えば、日時情報「Sep-13 10:00」と内容情報「authentication, IP address = 10.0.0.99, result = fail」）と、を対応付けて記憶する。上記したように、ログテーブル５０は揮発性メモリ４０に記憶される。このため、プリンタ１０の電源がＯＦＦされると、ログテーブル５０内の情報が消去される。これに対して、送信テーブル３４は不揮発性メモリ２４に記憶されるため、プリンタ１０の電源がＯＦＦされても、送信テーブル３４内の情報は消去されない。
【００５４】
（ログ情報記憶処理；図６）
図６を参照して、本実施例のログ情報記憶処理について説明する。Ｓ１００は、図２のＳ１０と同様である。ＣＰＵ２２は、ログに関する処理が実行されると（Ｓ１００でＹＥＳ）、Ｓ１０２において、当該ログに関する処理が実行された日時を示す日時情報と、当該ログに関する処理の内容を示す内容情報と、を含むログ情報を生成する。そして、ＣＰＵ２２は、新しいログ番号と生成済みのログ情報とを対応付けてログテーブル５０に記憶する。
【００５５】
Ｓ１０４では、ＣＰＵ２２は、不揮発性メモリ２４内のモード情報３８が「通常」を示すのか否かを判断する。ＣＰＵ２２は、モード情報３８が「通常」を示すと判断する場合（Ｓ１０４でＹＥＳ）に、Ｓ１０６に進む。
【００５６】
Ｓ１０６では、ＣＰＵ２２は、ログテーブル５０に記憶されている日時情報のうちの最先の日時情報によって示される最先の日時から所定の待機時間（例えば、３分）が経過したのか否かを判断する。ＣＰＵ２２は、最先の日時から所定の待機時間が経過していないと判断する場合（Ｓ１０６でＮＯ）に、Ｓ１００に戻る。一方、ＣＰＵ２２は、最先の日時から所定の待機時間が経過したと判断する場合（Ｓ１０６でＹＥＳ）に、Ｓ１１０に進む。
【００５７】
Ｓ１１０では、ＣＰＵ２２は、ログテーブル５０に記憶されている全てのログ情報を合わせてハッシュ化することによって、ハッシュ値を生成する。例えば、２個のログ情報がログテーブル５０に記憶されている場合には、ＣＰＵ２２は、２個のログ情報のうちのログ情報Ａを表す文字列と２個のログ情報のうちのログ情報Ｂを表す文字列とを組み合わせて１個の文字列を生成し、所定のハッシュ関数を利用して、生成済みの１個の文字列をハッシュ化することによって、ハッシュ値を生成する。３個以上のログ情報が記憶されている場合も、ＣＰＵ２２は、同様に、３個以上のログ情報から１個の文字列を生成して、ハッシュ値を生成する。
【００５８】
即ち、ＣＰＵ２２は、最先の日時から所定の待機時間が経過するまでの間に、プリンタ１０によって特定のログに関する処理が実行される場合に、最先の日時に対応するログ情報と、特定のログに関する処理の内容を示す内容情報を含む特定のログ情報と、を合わせてハッシュ化することによって、ハッシュ値を生成する。
【００５９】
また、ＣＰＵ２２は、モード情報３８が「危険」を示すと判断する場合（Ｓ１０４でＮＯ）に、Ｓ１１２において、Ｓ１０２においてログテーブル５０に記憶された１個のログ情報をハッシュ化することによって、ハッシュ値を生成する。即ち、ＣＰＵ２２は、モード情報３８が「通常」を示す場合に、複数個のログ情報を合わせてハッシュ化することによって１個のハッシュ値を生成し（Ｓ１１０）、モード情報３８が「危険」を示す場合に、複数個のログ情報を合わせることなく、複数個のログ情報のそれぞれをハッシュ化することによって複数個のハッシュ値を生成する（Ｓ１１２）。Ｓ１１０又はＳ１１２が終了するとＳ１１４に進む。
【００６０】
Ｓ１１４では、ＣＰＵ２２は、新しいハッシュＩＤを生成し、生成済みのハッシュＩＤとＳ１１０又はＳ１１２で生成されたハッシュ値とを対応付けてＩＤテーブル３６に記憶する。さらに、ＣＰＵ２２は、揮発性メモリ４０内のログテーブル５０に記憶されている全てのログ番号及び全てのログ情報を不揮発性メモリ２４内の送信テーブル３４に記憶する。そして、ＣＰＵ２２は、送信テーブル３４に記憶した全てのログ情報のそれぞれに対応付けて、生成済みのハッシュＩＤを送信テーブル３４に記憶する。Ｓ１１６では、ＣＰＵ２２は、ログテーブル５０に記憶されている全てのログ番号及び全てのログ情報を削除する。Ｓ１１６が終了すると、Ｓ１００に戻る。
【００６１】
例えば、図６のＳ１０４、Ｓ１０６、Ｓ１１０の処理が実行されず、Ｓ１０２の後にＳ１１２の処理が実行される比較例が想定される。この比較例では、ログに関する処理が実行される毎にハッシュ化の処理が実行される。これに対して、本実施例では、所定の待機時間の間にログテーブル５０に記憶された複数個のログ情報を合わせてハッシュ化する。従って、上記の比較例と比べて、プリンタ１０の処理負荷を低減することができる。なお、変形例では、上記の比較例の構成を採用してもよい。
【００６２】
（ログ情報送信処理；図７）
図７を参照して、本実施例のログ情報送信処理について説明する。Ｓ１３０は、図３のＳ３０と同様である。送信テーブル３４に記憶されているログ情報の個数が所定数以上であると判断する場合（Ｓ１３０でＹＥＳ）に、Ｓ１３２において、ＩＤテーブル３６の中から１個のハッシュＩＤを選択する。
【００６３】
Ｓ１３４では、ＣＰＵ２２は、送信テーブル３４の中から選択済みのハッシュＩＤに対応付けられて記憶されている全てのログ情報を特定する。そして、ＣＰＵ２２は、特定済みの全てのログ情報を合わせてハッシュ化することによって、ハッシュ値を生成する。具体的には、ＣＰＵ２２は、全てのログ情報を組み合わせて１個の文字列を生成して、図６のＳ１１０又はＳ１１２で利用された所定のハッシュ関数と同じハッシュ関数を利用して、当該１個の文字列をハッシュ化することによって、ハッシュ値を生成する。
【００６４】
Ｓ１３８では、ＣＰＵ２２は、Ｓ１３０で生成された生成済みのハッシュ値と、ＩＤテーブル３６において選択済みのハッシュＩＤに対応付けられて記憶されている記憶済みのハッシュ値が一致するのか否かを判断する。ＣＰＵ２２は、生成済みのハッシュ値と記憶済みのハッシュ値が一致しないと判断する場合（Ｓ１３８でＮＯ）に、特定済みの全てのログ情報のうちの少なくとも１個のログ情報が改ざんされたログ情報であると判断して、Ｓ１４０に進む。
【００６５】
Ｓ１４０では、ＣＰＵ２２は、モード情報３８が「危険」を示すのか否かを判断する。ＣＰＵ２２は、モード情報３８が「通常」を示すと判断する場合（Ｓ１４０でＮＯ）に、Ｓ１４２をスキップして、Ｓ１４６に進む。一方、ＣＰＵ２２は、モード情報３８が「危険」を示すと判断する場合（Ｓ１４０でＮＯ）に、Ｓ１４２に進む。Ｓ１４２は、選択済みのハッシュＩＤに対応付けられている全てのログ情報がメール情報として決定される点を除いて、図３のＳ４２と同様である。
【００６６】
また、ＣＰＵ２２は、生成済みのハッシュ値と記憶済みのハッシュ値が一致すると判断する場合（Ｓ１３８でＹＥＳ）に、特定済みの全てのログ情報が改ざんされたログ情報でないと判断して、Ｓ１４４に進む。Ｓ１４４は、特定済みの全てのログ情報がサーバ送信情報として決定される点を除いて、図３のＳ４４と同様である。Ｓ１４２またＳ１４４が終了すると、ＣＰＵ２２は、Ｓ１４６に進む。
【００６７】
Ｓ１４６では、ＣＰＵ２２は、ＩＤテーブル３６の中に未選択のハッシュＩＤが存在するのか否かを判断する。ＣＰＵ２２は、ＩＤテーブル３６の中に未選択のハッシュＩＤが存在すると判断する場合（Ｓ１４６でＹＥＳ）に、Ｓ１３２に戻り、ＩＤテーブル３６の中から１個のハッシュＩＤを新たに選択する。一方、ＣＰＵ２２は、ＩＤテーブル３６の中に未選択のハッシュＩＤが存在しないと判断する場合（Ｓ１４６でＮＯ）に、Ｓ１５０に進む。Ｓ１５０は、図３のＳ５０と同様である。
【００６８】
Ｓ１５２では、ＣＰＵ２２は、Ｓ１３８において生成済みのハッシュ値と記憶済みのハッシュ値が一致しないとの判断が行われた否かを判断する。ＣＰＵ２２は、Ｓ１３８において生成済みのハッシュ値と記憶済みのハッシュ値が一致しないとの判断が行われたと判断する場合（Ｓ１５２でＹＥＳ）に、Ｓ１５４において、モード情報３８を「通常」から「危険」に変更する。これにより、今回の周期の次の周期において実行されるログ情報送信処理において、ログ情報の改ざんが行われる場合に、Ｓ１４２の処理が実行されて、警告メールが送信される。上記したように、モード情報３８が「危険」を示す場合に、ＣＰＵ２２は、複数個のログ情報のそれぞれをハッシュ化する。この場合には、改ざんされたログ情報を適切に特定することができ、警告メールの送信により改ざんされたログ情報を管理者に知らせることができる。なお、モード情報３８が「危険」を示す場合には、モード情報３８が「危険」に維持される。ＣＰＵ２２は、Ｓ１５４が終了すると、Ｓ１６０に進む。
【００６９】
また、ＣＰＵ２２は、Ｓ１３８において生成済みのハッシュ値と記憶済みのハッシュ値が一致しないとの判断が行われなかったと判断する場合（Ｓ１５２でＮＯ）に、Ｓ１５６において、後述する待機時間変更処理（図８）を実行する。待機時間変更処理は、所定の待機時間を変更するための処理である。ＣＰＵ２２は、Ｓ１５６が終了すると、Ｓ１６０に進む。
【００７０】
Ｓ１６０では、ＣＰＵ２２は、送信テーブル３４内の全てのログ情報及び対応する各情報（即ちログ番号及びハッシュＩＤ）を削除するとともに、ＩＤテーブル内の全てのハッシュＩＤ及び全てのハッシュ値を削除する。Ｓ１６０が終了すると、図７の処理が終了する。
【００７１】
（待機時間変更処理；図８）
図８を参照して、待機時間変更処理について説明する。Ｓ２００では、ＣＰＵ２２は、送信テーブル３４に記憶されている全てのログ情報の個数を利用して、単位時間当たりに実行されるログに関する処理の回数を示す頻度を算出する。具体的には、ＣＰＵ２２は、送信テーブル３４に記憶されている全てのログ情報の中から、最先のログ情報に含まれる最先の日時情報と、最新のログ情報に含まれる最新の日時情報を特定する。ＣＰＵ２２は、送信テーブル３４に記憶されている全てのログ情報の個数を最新の日時情報によって示される日時と最先の日時情報によって示される日時との差分である差分時間で除算することによって、上記の頻度を算出する。
【００７２】
Ｓ２０２では、ＣＰＵ２２は、Ｓ２００において算出された頻度である算出頻度が「４」より高いのか否かを判断する。ＣＰＵ２２は、算出頻度が「４」より高いと判断する場合（Ｓ２０２でＹＥＳ）に、Ｓ２０４において、時間「１分」を所定の待機時間として決定する。一方、ＣＰＵ２２は、算出頻度が「４」より高くない（即ち算出頻度が「４」と等しい、又は、「４」より低い）と判断する場合（Ｓ２０２でＮＯ）に、Ｓ２０６に進む。
【００７３】
Ｓ２０６では、ＣＰＵ２２は、算出頻度が「２」より高くかつ「４」より低い、又は、算出頻度が「４」と等しい所定の条件が満たされるのか否かを判断する。ＣＰＵ２２は、所定の条件が満たされると判断する場合（Ｓ２０６でＹＥＳ）に、Ｓ２０８において、時間「３分」を所定の待機時間として決定する。
【００７４】
また、ＣＰＵ２２は、所定の条件が満たされない、即ち、算出頻度が「２」より低いと判断する場合（Ｓ２０６でＮＯ）に、Ｓ２１０に進む。Ｓ２１０では、ＣＰＵ２２は、時間「５分」を所定の待機時間として決定する。Ｓ２０４、Ｓ２０８、及び、Ｓ２１０のうちのいずれかが終了すると、図８の処理が終了する。
【００７５】
（具体的なケースＢ１；図９、図１０）
図９及び図１０を参照して、図６〜図８の処理によって実現される具体的なケースＢ１を説明する。本ケースの初期状態では、モード情報３８は「通常」を示し、所定の待機時間は「３分」である。
【００７６】
本ケースでも、第１実施例の図４のケースと同様に、プリンタ１０においてユーザ認証が９月１３日１０時００分に実行され、ユーザ認証が失敗し、９月１３日１０時００分の後の同日１０時０２分、１０時０３分、１０時０４分、１０時０７分のそれぞれにおいて、印刷処理が実行され、いずれも成功する。
【００７７】
本ケースでは、ユーザ認証が９月１３日１０時００分に実行される場合（図６のＳ１００でＹＥＳ）に、ログ番号「log01」に対応するログ情報がログテーブル５０に記憶される。プリンタ１０は、モード情報３８は「通常」を示すと判断するとともに、ログテーブル５０の最先の日時が９月１３日１０時００分であり、現時点では、所定の待機時間「３分」が経過していないと判断して（Ｓ１０６でＮＯ）、ハッシュ値を生成しない。
【００７８】
さらに、本ケースでは、印刷処理が９月１３日１０時０３分に実行される場合（図６のＳ１００でＹＥＳ）に、ログ番号「log03」に対応するログ情報がログテーブル５０に記憶される。プリンタ１０は、現時点において、最先の日時である９月１３日１０時００分から所定の待機時間「３分」が経過していると判断して（Ｓ１０６でＹＥＳ）、ログ番号「log01」〜「log03」に対応する３個のログ情報を合わせてハッシュ化することによって、ハッシュ値ＨＶ１０を生成する（Ｓ１１０）。プリンタ１０は、ハッシュＩＤ「h01」を生成し、ハッシュＩＤ「h01」とハッシュ値ＨＶ１０とを対応付けてＩＤテーブル３６に記憶する（Ｓ１１４）。プリンタ１０は、ログ番号「log01」〜「log03」に対応する３個のログ情報を送信テーブル３４に記憶し、上記の３個のログ情報のそれぞれに対応付けて、ハッシュＩＤ「h01」を送信テーブル３４に記憶する（Ｓ１１４）。プリンタ１０は、ログテーブル５０に記憶されているログ番号「log01」〜「log03」に対応する３個のログ情報とログ番号「log01」〜「log03」を削除する（Ｓ１１６）。
【００７９】
さらに、本ケースでは、印刷処理が９月１３日１０時０７分に実行される場合にも、ログ番号「log04」、「log05」に対応する２個のログ情報からハッシュ値ＨＶ１２が生成され、ハッシュＩＤ「h02」とハッシュ値ＨＶ１２がＩＤテーブル３６に記憶される（図６のＳ１１４）。また、ログ番号「log04」、「log05」に対応する２個のログ情報が送信テーブル３４に記憶され、ハッシュＩＤ「h02」が、ログ番号「log04」、「log05」のそれぞれに対応付けられて、送信テーブル３４に記憶される（Ｓ１１４）。
【００８０】
また、本ケースでも、第１実施例の図４のケースと同様に、ログ番号「log01」に対応するログ情報が送信テーブル３４に記憶されてからログ番号「log05」に対応するログ情報が送信テーブル３４に記憶されるまでの間に、ログ番号「log01」に対応するログ情報内の内容情報が改ざんされる。
【００８１】
プリンタ１０は、ログ番号「log05」に対応するログ情報が記憶された後に、１５分の周期によって決定されるタイミングが到来すると、ログ情報送信処理（図７）を実行する。プリンタ１０は、送信テーブル３４内のログ情報の個数が所定数である５個以上であると判断する（Ｓ３０でＹＥＳ）。次いで、プリンタ１０は、ハッシュＩＤ「h01」を選択する場合（Ｓ１３２）に、送信テーブル３４の中からハッシュＩＤ「h01」に対応付けられて記憶されているログ番号「log01」〜「log03」に対応する３個のログ情報を特定する。この場合、ＣＰＵ２２は、ログ番号「log01」〜「log03」に対応する３個のログ情報を合わせてハッシュ化することによって、ハッシュ値ＨＶ２０を生成する（Ｓ１３４）。本ケースでは、上記したように、ログ番号「log01」に対応するログ情報が改ざんされている。この結果、プリンタ１０は、生成済みのハッシュ値ＨＶ２０とＩＤテーブル３６に記憶されているハッシュ値ＨＶ１０が一致しないと判断する（Ｓ１３８でＮＯ）。そして、プリンタ１０は、モード情報３８は「通常」を示すと判断して、上記の３個のログ情報をメール情報として決定することなく、ハッシュＩＤ「h02」を選択する（Ｓ１４０でＮＯ、Ｓ１４６でＮＯ、Ｓ１３２）。
【００８２】
さらに、プリンタ１０は、ハッシュＩＤ「h02」を選択する場合（図７のＳ１３２）に、ハッシュＩＤ「h02」に対応付けられて記憶されているログ番号「log04」、「log05」に対応する２個のログ情報からハッシュ値ＨＶ１２を生成する（図７のＳ１３４）。本ケースでは、上記の２個のログ情報は改ざんされていない。この結果、プリンタ１０は、生成済みのハッシュ値ＨＶ１２とＩＤテーブル３６に記憶されているハッシュ値ＨＶ１２とが一致すると判断する（Ｓ１３８でＹＥＳ）。そして、プリンタ１０は、上記の２個のログ情報をサーバ送信情報として決定する（Ｓ１４４）。
【００８３】
プリンタ１０は、ＩＤテーブル３６内の全てのハッシュＩＤを選択し終えると（図３のＳ１４６でＮＯ）、Ｓｙｓｌｏｇプロトコルに従って、サーバ送信情報として決定されたログ情報（即ちログ番号「log04」、「log05」に対応する２個のログ情報）をログ管理サーバ１００に送信する（Ｓ１５０）。また、送信テーブル３４内のいずれのログ情報もメール情報として決定されないので、警告メールは送信されない。
【００８４】
プリンタ１０は、ログ番号「log04」、「log05」に対応する２個のログ情報をログ管理サーバ１００に送信した後に、生成済みのハッシュ値とＩＤテーブル３６に記憶されているハッシュ値が一致しないとの判断が行われたと判断し（図７のＳ１５２でＹＥＳ）、モード情報３８を「通常」から「危険」に変更する（Ｓ１５４）。そして、プリンタ１０は、送信テーブル３４内のログ番号「log01」〜「log05」に対応する５個のログ情報、ログ番号「log01」〜「log05」、及び、ハッシュＩＤ「h01」、「h02」と、ＩＤテーブル内のハッシュＩＤ「h01」、「h02」及びハッシュ値ＨＶ１０、ＨＶ１２を削除する（図３のＳ１６０）。
【００８５】
続けて、プリンタ１０は、ユーザ認証が９月１３日１０時１５分に実行され、ユーザ認証が失敗し、９月１３日１０時１５分の後の同日１０時１６分、１０時１７分、１０時１９分、１０時２０分のそれぞれにおいて、印刷処理が実行され、いずれも成功する（図１０）。また、上記したように、現時点では、モード情報３８は「危険」を示す。従って、プリンタ１０は、例えば、ユーザ認証が９月１３日１０時１５分に実行される場合（図７のＳ１００でＹＥＳ）に、ログ番号「log06」に対応する１個のログ情報からハッシュ値ＨＶ１３を生成し（Ｓ１０４でＮＯ、Ｓ１１２）、ハッシュＩＤ「h03」とハッシュ値ＨＶ１３とを対応付けてＩＤテーブル３６に記憶し、ログ番号「log06」に対応するログ情報とハッシュＩＤ「h03」と対応付けて送信テーブル３４に記憶する（Ｓ１１４）。９月１３日１０時１５分の後の同日１０時１６分、１０時１７分、１０時１９分、１０時２０分のそれぞれにおいて印刷処理が実行される場合にも、同様に、１個のログ情報からハッシュ値が生成され、生成済みのハッシュ値とハッシュＩＤがＩＤテーブル３６に記憶され、当該１個のログ情報とハッシュＩＤが送信テーブル３４に記憶される。
【００８６】
また、ログ番号「log06」に対応するログ情報が記憶されてからログ番号「log010」に対応するログ情報が記憶されるまでの間に、ログ番号「log06」に対応するログ情報内の内容情報が改ざんされる。
【００８７】
プリンタ１０は、ログ番号「log06」〜ログ番号「log10」に対応する５個のログ情報が記憶された後に、１５分の周期によって決定されるタイミングが到来すると、ログ情報送信処理（図７）を実行する。プリンタ１０は、送信テーブル３４内のログ情報の個数が所定数である５個以上であると判断する（Ｓ１３０でＹＥＳ）。次いで、プリンタ１０は、ハッシュＩＤ「h03」を選択する場合（Ｓ１３２）に、送信テーブル３４の中からハッシュＩＤ「h03」に対応付けられているログ番号「log06」に対応するログ情報を特定する。この場合、ＣＰＵ２２は、ログ番号「log06」に対応するログ情報をハッシュ化することによって、ハッシュ値ＨＶ３０を生成する（Ｓ１３４）。本ケースでは、上記したように、ログ番号「log06」に対応するログ情報が改ざんされている。この結果、プリンタ１０は、生成済みのハッシュ値ＨＶ３０と記憶済みのハッシュ値ＨＶ１３が一致しないと判断する（Ｓ１３８でＮＯ）。そして、プリンタ１０は、モード情報３８が「危険」を示すと判断して、ログ番号「log06」に対応するログ情報をメール情報として決定する（Ｓ１４２）。なお、ハッシュＩＤ「h04」〜「h07」のうちのいずれかが選択される場合には、ログ番号「log07」〜ログ番号「log10」に対応する４個のログ情報のうちのいずれも改ざんされていないので、プリンタ１０は、上記の４個のログ情報をサーバ送信情報として決定する（Ｓ１４４）。
【００８８】
プリンタ１０は、ＩＤテーブル３６内の全てのハッシュＩＤを選択し終えると（図３のＳ１４６でＮＯ）、ログ番号「log06」に対応するログ情報（即ちメール情報）が記述された本文を含む警告メールをメールサーバに送信する（Ｓ１５０）。さらに、プリンタ１０は、Ｓｙｓｌｏｇプロトコルに従って、サーバ送信情報として決定されたログ情報（即ちログ番号「log07」〜「log10」に対応する４個のログ情報）をログ管理サーバ１００に送信する（Ｓ１５０）。
【００８９】
本ケースによれば、プリンタ１０は、ログ情報送信処理において生成されたハッシュ値ＨＶ２０と記憶済みのハッシュ値ＨＶ１０とが一致しない場合に、改ざんされたログ情報をログ管理サーバ１００に送信しない（図９のログ番号「log01」参照）。従って、第１実施例と同様に、改ざんされたログ情報がログ管理サーバ１００に送信されることを防止することができる。
【００９０】
また、プリンタ１０は、ログ情報送信処理において生成されたハッシュ値とＩＤテーブル３６に記憶されているハッシュ値が一致しないとの判断が行われたと判断する場合に、モード情報３８を「通常」から「危険」に変更する（図７のＳ１５４）。これにより、プリンタ１０は、複数個のログ情報を合わせてハッシュ化することにより１個のハッシュ値を生成する状態から、複数個のログ情報それぞれをハッシュ化することにより複数個のハッシュ値を生成する状態に移行する。そして、プリンタ１０は、モード情報３８が「危険」を示す場合、即ち、１個のログ情報のみをハッシュ化する状態に移行した場合に、改ざんされたログ情報を含む警告メールを送信する（Ｓ１４０でＹＥＳ、Ｓ１４２）。複数個のログ情報を合わせてハッシュ化する場合には、複数個のログ情報のうちのいずれのログ情報が改ざんされたのかを特定できない。これに対して、１個のログ情報のみをハッシュ化する場合には、改ざんされたログ情報を適切に特定することができる。１個のログ情報のみをハッシュ化する状態に移行した場合に警告メールを送信することによって、改ざんされたログ情報を管理者に知らせることができる。
【００９１】
また、プリンタ１０は、複数個のログ情報を合わせてハッシュ化する場合に、警告メールを送信しない（図９のログ番号「log01」参照）。これにより、どのログ情報が改ざんされたのか不明である状況で警告メールが送信されるのを防止することができ、警告メールに対処する作業を管理者に強いることを防止することができる。
【００９２】
（具体的なケースＢ２；図１１）
図１１を参照して、図６〜図８の処理によって実現される具体的なケースＢ２を説明する。本ケースでは、ログ番号「log01」〜ログ番号「log05」に対応する５個のログ情報のいずれも改ざんされていない。このため、本ケースでは、ログ番号「log01」〜「log05」に対応する５個のログ情報がログ管理サーバ１００に送信される（図７のＳ１５０）。
【００９３】
また、プリンタ１０は、ログ番号「log01」〜「log05」に対応する５個のログ情報をログ管理サーバ１００に送信した後に、生成済みのハッシュ値とＩＤテーブル３６に記憶されているハッシュ値が一致しないとの判断が行われなかったと判断し（図７のＳ１５２でＮＯ）、待機時間変更処理を実行する（Ｓ１５６）。
【００９４】
プリンタ１０は、待機時間変更処理において、送信テーブル３４内のログ情報の個数「５」を最先の日時である９月１３日１０時００分と最新の日時である９月１３日１０時０７分との差分である差分時間「７分」で除算することによって、頻度「０．７１」を算出する（図８のＳ２００）。この結果、プリンタ１０は、算出頻度「０．７１」が「２」より低いと判断して（Ｓ２０６でＮＯ）、時間「５分」を所定の待機時間として決定する（Ｓ２１０）。
【００９５】
続けて、プリンタ１０は、ユーザ認証が９月１３日１０時１５分に実行され、ユーザ認証が成功し、９月１３日１０時１５分の後の同日１０時１６分、１０時１７分、１０時１９分、１０時２０分のそれぞれにおいて、印刷処理が実行され、いずれも成功する。例えば、印刷処理が９月１３日１０時１９分に実行される場合（図６のＳ１００でＹＥＳ）に、ログ番号「log09」に対応するログ情報がログテーブル５０に記憶される。プリンタ１０は、モード情報３８は「通常」を示すと判断するとともに（Ｓ１０４でＹＥＳ）、ログテーブル５０の最先の日時が９月１３日１０時１５分であり、現時点では、所定の待機時間「５分」が経過していないと判断して（Ｓ１０６でＮＯ）、ハッシュ値を生成しない。
【００９６】
また、印刷処理が９月１３日１０時２０分に実行される場合（図６のＳ１００でＹＥＳ）に、ログ番号「log10」に対応するログ情報がログテーブル５０に記憶される。プリンタ１０は、現時点において、ログテーブル５０の最先の日時である９月１３日１０時１５分から所定の待機時間「５分」が経過していると判断して（Ｓ１０６でＹＥＳ）、ログ番号「log06」〜「log10」に対応する５個のログ情報を合わせてハッシュ化することによって、ハッシュ値ＨＶ２３を生成する（Ｓ１１０）。
【００９７】
例えば、図７のＳ１５６の待機時間変更処理が実行されず、待機時間が３分で一定である比較例が想定される。この比較例では、プリンタ１０は、印刷処理が９月１３日１０時１８分に実行される場合（図６のＳ１００でＹＥＳ）に、ログ番号「log06」〜「log8」に対応する３個のログ情報を合わせてハッシュ化することによって、ハッシュ値を生成する。これに対して、本実施例では、待機時間が３分から５分に変更されることにより、ログ番号「log06」〜「log10」に対応する５個のログ情報を合わせてハッシュ化することができ、比較例よりも多くのログ情報を合わせてハッシュ化することができる。例えば、ハッシュ化の処理に要する時間は、３個のログ情報を合わせてハッシュ化する場合と、５個のログ情報を合わせてハッシュ化する場合と、で略同一である。このため、比較的多くのログ情報を合わせてハッシュ化することによって、単位時間当たりにハッシュ化できる情報量（即ちログ情報の個数）を多くすることができる。
【００９８】
また、待機時間が長くなると、その間にプリンタ１０の電源がＯＦＦされる確率が高まり、この結果、揮発性メモリ４０内のログ情報が不揮発性メモリ２４に記憶される前に消去される確率が高まる。特に、ログに関する処理が実行される頻度が高まると、プリンタ１０の電源がＯＦＦされることに起因して、より多くのログ情報が消去され得る。本実施例では、プリンタ１０は、定期的に実行されるログ情報送信処理において待機時間変更処理（図８）を実行し、例えば、算出頻度が「２」から「３」に高まる場合（Ｓ２０６でＹＥＳ）に、待機時間を５分から３分に変更する。これにより、上記の問題に対処することができる。
【００９９】
（対応関係）
印刷処理、ログ番号「log02」に対応するログ情報が、それぞれ、「第２の処理」、「第２のログ情報」の一例である。ハッシュ値ＨＶ１０、ハッシュ値ＨＶ２０が、「第１の値」、「第２の値」の一例である。待機時間が、「所定時間」の一例である。図８の頻度「２」、３分、５分が、それぞれ、「所定の頻度」、「第１の時間」、「第２の時間」の一例である。図１１において決定された５分の待機時間が、「次の所定時間」の一例である。
【０１００】
図１１におけるログ番号「log06」に対応するログ情報、図１１におけるログ番号「log07」に対応するログ情報が、それぞれ、「第３のログ情報」、「第４のログ情報」の一例である。図１０におけるログ番号「log06」に対応するログ情報が、「第５のログ情報」の一例である。ハッシュ値ＨＶ１３、ハッシュ値ＨＶ３０が、それぞれ、「第３の値」、「第４の値」の一例である。ログ番号「log06」に対応するログ情報が、「前記メモリにおいて前記第３の値に対応付けられて記憶されている情報」の一例である。
【０１０１】
図６のＳ１１０、Ｓ１１４が、それぞれ、「第１の生成部」、「第１の記憶制御部」によって実現される処理の一例である。図７のＳ１３４、Ｓ１３８、Ｓ１５０が、それぞれ、「第２の生成部」、「第１の判断部」、「第１の送信部」によって実現される処理の一例である。
【０１０２】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１０３】
（変形例１）「通信装置」は、プリンタ１０でなくてもよく、例えば、スキャナ、多機能機、携帯端末、ＰＣ、サーバ等の他のデバイスであってもよい。
【０１０４】
（変形例２）上記の第１実施例では、プリンタ１０は、日時情報と内容情報とを含むログ情報をハッシュ化することによってハッシュ値を生成する（図２のＳ１４）。これに代えて、ログ情報は、日時情報を含まず、内容情報のみを含んでもよい。そして、プリンタ１０は、内容情報のみを含むログ情報をハッシュ化することによってハッシュ値を生成してもよい。本変形例では、内容情報のみを含むログ情報が、「第１のログ情報」の一例である。
【０１０５】
（変形例３）上記の各実施例では、プリンタ１０は、ログ情報をハッシュ化することによって、ハッシュ値を生成する（図２のＳ１４、図６のＳ１１０）。これに代えて、プリンタ１０は、所定の鍵情報を利用して、ログ情報を暗号化することによって、特定のコードを生成してもよい。一般的に言えば、「第１の値」は、ログ情報を符号化することによって生成された値でもよい。
【０１０６】
（変形例４）上記の第１実施例では、プリンタ１０は、対象処理の内容に対応するＰｒｏｒｉｔｙの順位が所定の順位「４」よりも高順位である場合に、ハッシュ値を生成する（図２のＳ１２でＹＥＳ、Ｓ１４）。例えば、プリンタ１０は、対象処理の内容が、ユーザ認証が失敗した内容である場合に、ハッシュ値を生成し、対象処理の内容が、ユーザ認証が成功した内容である場合に、ハッシュ値を生成しない。これに代えて、プリンタ１０は、対象処理がユーザ認証である場合に、ユーザ認証の成功、失敗に関わらず、ハッシュ値を生成し、対象処理がユーザ認証以外の処理（例えば、印刷処理）である場合に、ハッシュ値を生成しなくてもよい。本変形例では、ユーザ認証が実行されたことが、「所定の内容」の一例である。
【０１０７】
（変形例５）上記の第１実施例では、プリンタ１０は、対象処理の内容に対応するＰｒｏｒｉｔｙの順位が所定の順位よりも高順位である場合に、ハッシュ値を生成する（図２のＳ１２でＹＥＳ、Ｓ１４）。これに代えて、プリンタ１０は、ハッシュ値を生成する対象である内容のリストを記憶していてもよい。そして、プリンタ１０は、対象処理の内容がリストに含まれる場合に、ハッシュ値を生成してもよい。例えば、リストは、ユーザ認証が成功した内容、ユーザ認証が失敗した内容等を含む。上記したように、ユーザ認証は、プリンタ１０の設定情報を変更する際に実行される。このため、第三者の外部装置から変更要求が受信されてプリンタ１０の設定情報が不正に変更された後に、ユーザ認証のログを示すログ情報が改ざんされる可能性が高い。上記のリストは、改ざんされる可能性が高い内容のリストである。本変形例では、上記のリストに含まれる内容が、「所定の内容」の一例である。
【０１０８】
（変形例６）上記の各実施例では、Ｐｒｉｏｒｉｔｙテーブル３２において、順位「０〜７」は、数字が小さくなるほど高順位である。これに代えて、Ｐｒｉｏｒｉｔｙテーブル３２において、順位「０〜７」は、数字が大きくなるほど高順位であってもよい。例えば、Ｐｒｉｏｒｉｔｙの順位「７」は、Ｐｒｉｏｒｉｔｙの順位「６」より高順位である。
【０１０９】
（変形例７）「外部装置」は、端末装置２００でなくてもよく、例えば、ログ管理サーバ１００とは異なる他の通信装置（例えば、端末装置）であればよい。
【０１１０】
（変形例８）上記の第２実施例では、プリンタ１０は、ログテーブル５０における最先の日時から所定の待機時間が経過した場合に、ログテーブル５０に記憶されている全てのログ情報を合わせてハッシュ化することによって、ハッシュ値を生成する（図６のＳ１０６でＹＥＳ、Ｓ１１０）。これに代えて、プリンタ１０は、ログテーブル５０に記憶されている全てのログ情報の個数が所定数以上である場合に、当該全てのログ情報を合わせてハッシュ化することによって、ハッシュ値を生成してもよい。一般的に言えば、「通信装置」は、「所定時間」を利用しなくてもよい。
【０１１１】
（変形例９）上記の第２実施例では、プリンタ１０は、ログテーブル５０における最先の日時から所定の待機時間が経過するまでの間にログテーブル５０に記憶された全てのログ情報を合わせてハッシュ化する（図６のＳ１０６、Ｓ１１０）。これに代えて、プリンタ１０は、予め決められている特定の周期の間にログテーブル５０に記憶された全てのログ情報を合わせてハッシュ化してもよい。本変形例では、特定の周期が、「所定時間」の一例である。
【０１１２】
（変形例１０）上記の第２実施例では、ログ情報送信処理において待機時間変更処理が実行される（図７のＳ１５６）。これに代えて、例えば、ログ情報記憶処理において、Ｓ１１４の処理が実行された後に、待機時間変更処理が実行されてもよい。この場合、例えば、プリンタ１０は、ログテーブル５０に記憶されている全てのログ情報の個数を利用して、単位時間当たりに実行されるログに関する処理の回数を示す頻度を算出してもよい。本変形例では、「決定部」によって実現される処理が、ログ情報記憶処理において実行されてもよい。
【０１１３】
（変形例１１）図２のＳ１２の処理は実行されなくてもよい。本変形例では、「第２の判断部」を省略可能である。
【０１１４】
（変形例１２）図３のＳ４２の処理とＳ５０のうちの警告メールの送信処理は実行されなくてもよい。本変形例では、「第３の送信部」を省略可能である。
【０１１５】
（変形例１３）図７のＳ１５５６の処理は実行されなくてもよい。本変形例では、「決定部」を省略可能である。
【０１１６】
（変形例１４）図６のＳ１０４、Ｓ１１２の処理は実行されなくてもよい。本変形例では、「第３の生成部」、「第２の記憶制御部、「第４の生成部」、「第３の判断部」、「第４の送信部」、「第５の送信部」を省略可能である。
【０１１７】
（変形例１５）図７のＳ１４０の処理は実行されなくてもよい。代わりに、Ｓ１３８の後にＳ１４２が常に実行されてもよい。一般的に言えば、第１の値と第２の値とが一致しないと判断される場合に、メモリにおいて第１の値に対応付けて記憶されている情報は外部装置に送信されてもよい。
【０１１８】
（変形例１６）上記の各実施例では、ログ情報は、Ｓｙｓｌｏｇプロトコルに従った文字列に変換され、変換後の文字列を含むログ情報がログ管理サーバ１００に送信される（図３のＳ５０）。これに代えて、ログ情報は、Ｓｙｓｌｏｇプロトコルに従った文字列に変換されることなく、ログ管理サーバ１００に送信されてもよい。また、ログ情報は、Ｓｙｓｌｏｇプロトコル以外の所定のプロトコル（例えば、プリンタ１０のベンダによって設計されたプロトコル）に従って、ログ管理サーバ１００に送信されてよい。一般的に言えば、「第１の送信部」は、Ｓｙｓｌｏｇプロトコルを利用しなくてもよい。
【０１１９】
（変形例１７）図１に示すように、Ｐｒｉｏｒｉｔｙテーブル３２において、ＦｉｒｍＵｐｄａｔｅが異常である内容の順位は「１」を示す。この結果、プリンタ１０は、ログに関する処理であるＦｉｒｍＵｐｄａｔｅが実行され、ＦｉｒｍＵｐｄａｔｅが異常である場合に、ログ情報からハッシュ値を生成する（図２のＳ１２でＹＥＳ、Ｓ１４）。ＦｉｒｍＵｐｄａｔｅが異常であることは、例えば、ＦｉｒｍＵｐｄａｔｅが実行され、かつ、正常なプログラムであることを示す所定の情報がプログラム３０に含まれていない場合である。本変形例では、ＦｉｒｍＵｐｄａｔｅが異常である内容が「所定の内容」の一例である。
【０１２０】
（変形例１８）上記の各実施例では、プリンタ１０のＣＰＵ２２がプログラム３０（即ちソフトウェア）を実行することによって、図２〜図１１の各処理が実現される。これに代えて、いずれかの処理は、論理回路等のハードウェアによって実現されてもよい。
【符号の説明】
【０１２１】
２：通信システム、１０：プリンタ、１６：ネットワークＩ／Ｆ、２０：制御部、２２：ＣＰＵ、２４：不揮発性メモリ、３０：プログラム、３２：テーブル、３４：送信テーブル、３６：ＩＤテーブル、３８：モード情報、４０：揮発性メモリ、５０：ログテーブル、１００：ログ管理サーバ、２００：端末装置、２３０：ＳＩＥＭツール
【図１】
2020068438.tif 000003
【図２】
2020068438.tif 000004
【図３】
2020068438.tif 000005
【図４】
2020068438.tif 000006
【図５】
2020068438.tif 000007
【図６】
2020068438.tif 000008
【図７】
2020068438.tif 000009
【図８】
2020068438.tif 000010
【図９】
2020068438.tif 000011
【図１０】
2020068438.tif 000012
【図１１】
2020068438.tif 000013