説明

電子機器、及び、電子機器の制御方法

【課題】フィスカル情報を記憶する電子機器について、フィスカル情報の改ざんの前提となる、不正アクセスによるメモリーからのデータの読み出しを検出可能とする。
【解決手段】メイン制御部30は、第1メモリー制御部35を制御して、第1メモリー制御部35の機能により当該データをEJメモリー34に書き込ませ、暗号化されたデータを第1メモリー制御部35にEJメモリー34から読み出させたことのログを作成するコマンド出力ログ作成部66、第2読出/書込実行ログ作成部53を備えるようにした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フィスカル情報を記憶する電子機器、及び、この電子機器の制御方法に関する。
【背景技術】
【0002】
従来、商品を販売し、また、サービスを提供する店舗等に設けられ、商品等の販売取引に関する情報(売上に関する情報や課税額等に関する情報)を含むフィスカル情報を記憶する書込み可能な不揮発性のメモリー(フィスカルROM)を備えた電子機器(電子式キャッシュレジスター、レシート用のプリンター)が知られている(例えば、特許文献1参照)。メモリーに記憶されたフィスカル情報は、例えば、政府等の国家機関による店舗からの税金の徴収に際し、当該店舗における取引の実態を把握するための情報として利用される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平05−120567号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述のように、メモリーに記憶されたフィスカル情報は、店舗における取引の実態を把握するための情報として利用されることがあるため、メモリーに記憶されたフィスカル情報が改ざんされることを防止する必要がある。特に、国によっては、法律によって、電子機器を、メモリーに記憶されたフィスカル情報が改ざんされることを防止した構成とすることが義務づけられている場合がある。
本発明は、上述した事情に鑑みてなされたものであり、フィスカル情報の改ざんの前提となる、不正アクセスによるメモリーからのデータの読み出しを検出可能な電子機器、及び、この電子機器の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明は、インターフェイスから入力されたフィスカル情報を含むデータを前記記録制御部に出力するメイン制御部と、このメイン制御部に接続され、前記データに基づいて記録部を制御して、この記録部にレシートを発行させる記録制御部と、このメイン制御部に接続されると共にメモリーに接続され、前記メイン制御部の制御に従って前記メモリーに対するデータの読み書きを行うメモリー制御部とを備え、前記インターフェイスから前記メイン制御部に前記データが入力された場合、前記メイン制御部は、前記メモリー制御部を制御して、前記フィスカル情報を前記メモリーに書き込ませ、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことのログを作成するログ作成部を備えることを特徴とする電子機器。
この構成によれば、ログ作成部により作成されたログに基づいて、過去におけるフィスカル情報の読み出しの状況の中から、過去に不正アクセスの可能性があるような態様でフィスカル情報を含むデータの読み出しが行われていることを検出できる。さらに、フィスカル情報を含むデータを、メモリー制御部の機能によって特有のフォーマットによりデータが生成された上でメモリーに記憶されるようにすれば、どのフォーマットであるかを知らない者がメモリーに不正アクセスしてデータを読み出そうとした場合、短時間の間に頻繁にメモリーからデータを読み出す等、正常なデータの読み出しの態様と異なる態様でデータが読み出されることが考えられ、ログ作成部により作成されたログに基づいて、より適切に不正アクセスによるデータの読み出しを検出できる。データを特定の規則により圧縮するなど一種の暗号化して記憶させておいてもよい。
【0006】
ここで、上記発明の電子機器において、前記インターフェイスから入力された読み出し命令に基づき、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させる場合、前記メイン制御部は、読み出し要求を前記メモリー制御部に出力し、前記メモリー制御部は、前記メイン制御部から入力された読み出し要求に基づいて前記メモリーにアクセスして前記メモリーから前記フィスカル情報を読み出し、前記ログ作成部は、前記インターフェイスから読み出し命令が入力されたことのログまたは前記メイン制御部が前記メモリー制御部に読み出し要求を出力したことのログである読出要求ログと共に、前記メモリー制御部が前記メモリーにアクセスして前記メモリーから前記フィスカル情報を読み出したことのログである読出実行ログを作成するようにしてもよい。
ここで、上記構成では、メモリーからフィスカル情報を読み出す場合、インターフェイスから読み出し命令が入力され、メイン制御部は、読み出し要求をメモリー制御部に出力し、メモリー制御部は、メイン制御部から入力された読み出し要求に基づいてメモリーにアクセスしてメモリーからフィスカル情報を読み出す。従って、インターフェイスから読み出し命令またはメイン制御部からメモリー制御部に出力された読み出し要求と、メモリー制御部がメモリーからデータを読み出す処理とは、対応しているはずであり、対応していない場合は、メモリーに対する不正アクセスが行われた可能性がある。
これを踏まえ、上記構成によれば、読出要求ログと、読出実行ログとに基づいて、不正アクセスによるフィスカル情報の読み出しを適切に検出することができる。
【0007】
また、上記発明の電子機器において、前記ログ作成部が作成した読出要求ログに基づいて、前記インターフェイスからの読み出し命令の回数または前記メイン制御部が前記メモリー制御部に読み出し要求を出力した回数を検出すると共に、前記ログ作成部が作成した読出実行ログに基づいて、前記メモリー制御部が前記メモリーにアクセスして前記メモリーから前記フィスカル情報を読み出した回数を検出し、検出結果に基づいて、前記メモリーへの不正アクセスを検出する不正アクセス検出部を備えるようにしてもよい。
ここで、上記構成では、メモリーからフィスカル情報を読み出す場合、インターフェイスから読み出し命令が入力され、メイン制御部は、読み出し要求をメモリー制御部に出力し、メモリー制御部は、メイン制御部から入力された読み出し要求に基づいてメモリーにアクセスしてメモリーからフィスカル情報を読み出す。従って、前記インターフェイスからの読み出し命令の回数またはメイン制御部からメモリー制御部に出力された読み出し要求の回数と、メモリー制御部がメモリーからフィスカル情報を読み出す処理の回数とは、一致しているはずであり、一致していない場合は、不正アクセスによりメモリーからフィスカル情報が読み出された可能性がある。
これを踏まえ、上記構成によれば、読出要求ログに基づいて検出されたメイン制御部が前記メモリー制御部に読み出し要求を出力した回数と、読出実行ログに基づいて検出されたメモリー制御部が前記メモリーにアクセスしてメモリーから前記フィスカル情報を読み出した回数とに基づいて、適切に不正アクセスによる前記フィスカル情報の読み出しを検出することができる。
【0008】
また、上記発明の電子機器において、日時を計時する計時部をさらに備え、前記ログ作成部は、前記計時部により計時された日時に基づいて、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させた日時と対応づけて、ログを作成するようにしてもよい。
この構成によれば、メイン制御部がフィスカル情報をメモリー制御部にメモリーから読み出させた日時の履歴が検出可能となり、メモリーに対する正常のアクセスと異なる態様で行われる不正アクセスを検出できる。
【0009】
また、上記発明の電子機器において、前記ログ作成部が作成したログに基づいて、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させた日時の履歴を検出し、前記検出した履歴に基づいて、前記メモリーへの不正アクセスを検出する不正アクセス検出部を備えるようにしてもよい。
この構成によれば、正常なアクセスを行った場合におけるアクセス時の履歴と、不正アクセスにおけるアクセス時の履歴との相違点の検出が可能となり、検出した相違点に基づいて不正アクセスの検出が可能となる。
【0010】
また、上記発明の電子機器において、前記フィスカル情報を前記メモリーから読み出すことが許可された外部機器が接続可能に構成され、前記ログ作成部は、前記外部機器の接続状況のログを作成するようにしてもよい。
この構成によれば、外部機器の接続状況に関するログと、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことに関するログとに基づいて、外部機器によるメモリーへのアクセスの状況の検出が可能となり、これに基づいて不正アクセスの検出が可能となる。
【0011】
また、上記発明の電子機器において、前記ログ作成部により作成された前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことのログ、及び、前記外部機器の接続状況のログに基づいて、前記メモリーへの不正アクセスを検出する不正アクセス検出部を備えるようにしてもよい。
この構成によれば、この構成によれば、外部機器の接続状況に関するログと、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことに関するログとに基づいて、外部機器によるメモリーへのアクセスの状況の検出が可能となり、これに基づいて不正アクセスの検出が可能となる。
【0012】
また、上記目的を達成するために、本発明は、インターフェイスから入力されたフィスカル情報を含むデータを前記記録装置制御部に出力するメイン制御部と、このメイン制御部に接続され、前記データに基づいて記録部を制御して、この記録部にレシートを発行させる記録制御部と、このメイン制御部に接続されると共にメモリーに接続され、前記メイン制御部の制御に従って前記メモリーに対するデータの読み書きを行うメモリー制御部とを備え、前記インターフェイスから前記メイン制御部に前記データが入力された場合、前記メイン制御部は、前記メモリー制御部を制御して、前記フィスカル情報を前記メモリーに書き込ませる電子機器を制御して、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことを検出し、検出した結果に基づいてログを作成することを特徴とする。
この制御方法によれば、ログ作成部により作成されたログに基づいて、過去におけるフィスカル情報の読み出しの状況の中から、過去に不正アクセスの可能性があるような態様でフィスカル情報を含むデータの読み出しが行われていることを検出できる。特に、フィスカル情報を含むデータは、メモリー制御部の機能によって特有のフォーマットでメモリーに記憶されるため、不正アクセスしてデータを読み出した場合、短時間の間に頻繁にメモリーからデータを読み出す等、正常なデータの読み出しの態様と異なる態様でデータが読み出されることが考えられ、ログ作成部により作成されたログに基づいて、より適切に不正アクセスによるデータの読み出しを検出できる。
【発明の効果】
【0013】
本発明によれば、フィスカル情報の改ざんの前提となる、メモリーからの不正アクセスによるデータの読み出しを検出できる。
【図面の簡単な説明】
【0014】
【図1】本実施形態に係るフィスカルプリンターの外観斜視図である。
【図2】フィスカルプリンターの外観斜視図である。
【図3】フィスカルプリンターの回路構成図である。
【図4】レシートに記録された情報の一例を示す図である。
【図5】フィスカルプリンターの動作を示すフローチャートである。
【図6】フィスカルプリンターの動作を示すフローチャートである。
【図7】フィスカルプリンターの動作を示すフローチャートである。
【図8】フィスカルプリンターの動作を示すフローチャートである。
【図9】コマンド出力ログの構成を模式的に示す図である。
【図10】第1読出/書込実行ログ及び第2読出/書込実行ログを示す図である。
【図11】接続状況ログの構成を模式的に示す図である。
【図12】フィスカルプリンターの動作を示すフローチャートである。
【図13】フィスカルプリンターの動作を示すフローチャートである。
【図14】フィスカルプリンターの動作を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施形態について説明する。
図1は、本実施形態に係るフィスカルプリンター1(電子機器)を上方から見たときの外観斜視図であり、図2は、フィスカルプリンター1を下方から見たときの外観斜視図である。
本実施形態に係るフィスカルプリンター1は、POS端末等のホストコンピューター10(図3)に接続され、ホストコンピューター10の制御の下、レシートを発行すると共に、ホストコンピューター10から入力されたフィスカル情報を含むデータを記憶する。フィスカル情報とは、商品等の販売取引に関する情報(売上に関する情報や課税額等に関する情報)であって、記憶すべき情報として予め定められた情報のことである。このフィスカル情報は、例えば、政府等の国家機関による店舗からの税金の徴収に際し、国家機関が当該店舗における取引の実態を把握するために参照する情報として利用される。本実施形態では、フィスカルプリンター1には、フィスカル情報を含むデータとして、後述する書込レシートデータ11(図3)、及び、日計売上データ12(図3)が記憶される。
【0016】
図1及び図2に示すように、フィスカルプリンター1は、プリンター本体14と、このプリンター本体14の底部15に固定されたフィスカルユニット16と、を備えている。
プリンター本体14の内部には、ロール紙を搬送する搬送機構や、ロール紙に画像を記録するための記録機構等、レシートを発行するための機構や装置等(記録部)や、ロール紙を収納するためのロール紙収納部等が収容されている。
また、プリンター本体14は、図1に示すように、プリンター本体14の上面の前側部分を覆う前側開閉蓋17及び後側部分を覆う後側開閉蓋18を備えており、前側開閉蓋17と後側開閉蓋18との間には、幅方向に延びる記録紙排出口19が形成されている。後側開閉蓋18は、記録紙排出口19の側方に配置されているスライドボタン20を操作すると、ロック機構(不図示)が外れ、開けることが可能となる。後側開閉蓋18を開けると、ロール紙収納部が露出し、ロール紙の交換を行うことができる。また、前側開閉蓋17を開けると、インクリボンの交換等を行うことができる。
【0017】
フィスカルユニット16は、下面に開口部が形成された箱体のケース21と、このケース21の開口部を覆う底板22とを備えている。また、ケース21の後方の側面には、電源アダプタや、ネットワークケーブル、プリンター本体14内部の基板に接続されたケーブルが接続されるコネクターの他、ホストコンピューター10が接続されるPCコネクター24、及び、後述するフィスカルデータ読出装置25(外部機器)が接続されるフィスカルコネクター29が設けられている。
フィスカルユニット16の内部には、管理基板26、プリンター基板27、及び、サブ基板28(いずれも図3)が設けられている。
【0018】
図3は、フィスカルプリンター1の回路構成図であり、特に、フィスカルユニット16の内部に設けられた管理基板26、プリンター基板27、及び、サブ基板28の回路構成を模式的に示している。
図3に示すように、管理基板26には、メイン制御部30と、PCコネクター24と、フィスカルコネクター29と、通信IC31(インターフェイス)と、ROM32と、SRAM33と、RTC38(計時部)と、EJメモリー34と、第1メモリー制御部35(メモリー制御部)と、バッファーIC36と、が実装されている。
【0019】
メイン制御部30は、フィスカルプリンター1の各部を中枢的に制御するものであり、CPUやその他の周辺回路を備えている。メイン制御部30は、コマンド出力ログ作成部66と、接続状況ログ作成部67と、第1不正アクセス検出部70と、第2不正アクセス検出部71と、第3不正アクセス検出部72とを備えているが、これらについては後述する。
PCコネクター24は、フィスカルプリンター1の通常使用時においてホストコンピューター10が接続されるコネクターである。ホストコンピューター10は、PCコネクター24を介してフィスカルプリンター1にレシートの発行に係る印刷コマンドを出力し、また、フィスカル情報を含むデータである日計売上データ12を出力する。
フィスカルコネクター29は、フィスカルデータ読出装置25(外部機器)が接続されるコネクターである。フィスカルデータ読出装置25とは、後述するEJメモリー34や、フィスカルメモリー37に記憶されたデータを読み出すための装置であり、例えば国家機関(政府等)に係る者等の、特別な許可を得た者だけが所持し得る。上述したホストコンピューター10はPCコネクター24に接続された状態が維持されるが、フィスカルデータ読出装置25は、ホストコンピューター10と異なり、データの読み出しが行われる際に、適宜、フィスカルコネクター29に接続される。
【0020】
通信IC31は、PCコネクター24及びフィスカルコネクター29に接続され、メイン制御部30の制御の下、ホストコンピューター10や、フィスカルデータ読出装置25との間でデータの送受信を行う。特に、通信IC31は、フィスカルコネクター29からの出力値に基づいて、フィスカルコネクター29にフィスカルデータ読出装置25が通信可能に接続されている状態であることを検出できる。メイン制御部30は、通信IC31の検出値に基づいて、フィスカルコネクター29にフィスカルデータ読出装置25が接続されていた時間帯(接続開始時刻、及び、接続解除時刻)について検出できる。
ROM32は、メイン制御部30が各種制御を行うための制御プログラム(ファームウェア)や、制御データ等を記憶する。本実施形態では、ROM32として、EEPROMやフラッシュROM等のデータの書き換えが可能な不揮発性のメモリーが用いられている。ROM32には、コマンド出力ログ40(読出要求ログ)と、接続状況ログ41とが記憶されるが、これについては後述する。
SRAM33は、メイン制御部30のCPUのワークエリアとして機能するメモリーであり、各種データを一時的に記憶する。フィスカルプリンター1に商用電源から電力が供給されている間は、SRAM33に対しても商用電源から電力が供給され、商用電源からの電力が遮断されている間は、電池42からSRAM33に対して電力が供給される。
RTC38(Real-time clock)は、現在日時(年月日、時刻)及び現在の曜日を示すデータをメイン制御部30に出力する。SRAM33と同様、RTC38には、フィスカルプリンター1に商用電源から電力が供給されている間は、商用電源から電力が供給され、商用電源からの電力が遮断されている間は、電池42から電力が供給される。
【0021】
EJ(エレクトリックジャーナル)メモリー34は、NAND型フラッシュメモリーであり、大容量のデータを記憶可能である。図3に示すように、EJメモリー34には、書込レシートデータ11と、第1読出/書込実行ログ45(読出実行ログ)とが記憶されるが、これらについては後述する。EJメモリー34は、第1メモリー制御部35の制御の下、1つのアドレスに対して1度しかデータを書き込めないメモリーとして機能する。これにより、EJメモリー34に書き込まれたデータが後から編集されることが防止され、EJメモリー34に記憶されたデータ対する改ざんが防止されている。EJメモリー34では、第1読出/書込実行ログ45が記憶される領域として専用の記憶領域が割り振られており、当該記憶領域に記憶されている第1読出/書込実行ログ45については、適宜、更新できる構成となっている。
第1メモリー制御部35は、CPUを備え、メイン制御部30の制御の下、EJメモリー34に対してデータの読み書きを行う。第1メモリー制御部35は、第1読出/書込実行ログ作成部46を備えているが、これについては後述する。
バッファーIC36は、EJメモリー34に対するデータの読み出し、書き込みの効率を向上するために設けられたバッファーを制御する。
これらEJメモリー34、第1メモリー制御部35、及び、バッファーIC36は、エポキシ樹脂によって管理基板26に封止されており、EJメモリー34が管理基板26から物理的に取り外された上で、EJメモリー34に記憶されたデータが改ざんされることが防止されている。EJメモリー34とフィスカルメモリー37の両方を指して、フィスカルメモリーと称することもある。また、1つのメモリーに両方の情報を記憶することもできる。
なお、メイン制御部30の制御の下、第1メモリー制御部35がEJメモリー34に対して書込レシートデータ11を読み書きする際の動作については、後に詳述する。
【0022】
プリンター基板27には、プリンター制御部48(記録制御部)が実装されている。プリンター制御部48は、CPUや各種周辺回路を備え、印刷コマンドに基づいて、上述したロール紙を搬送する搬送機構や、ロール紙に画像を記録するための画像記録機構等のレシートを発行するための機構や装置(記録部)を制御し、レシートを発行する。プリンター基板27は、専用コネクター49を介して、メイン制御部30と通信可能に接続されている。
本実施形態では、レシートの発行に際し、まず、フィスカルプリンター1に接続されたホストコンピューター10が、印刷コマンドを生成し、生成した印刷コマンドをPCコネクター24を介してメイン制御部30に出力する。印刷コマンドが入力されたメイン制御部30は、入力された印刷コマンドを専用コネクター49を介して、プリンター制御部48に出力する。
【0023】
サブ基板28には、フィスカルメモリー37と、第2メモリー制御部50(メモリー制御部)とが実装されている。
フィスカルメモリー37は、EPROMを備えるメモリーである。フィスカルメモリー37には、日計売上データ12と、第2読出/書込実行ログ52(読出実行ログ)とが記憶されるが、これらについては後述する。フィスカルメモリー37は、第2メモリー制御部50の制御の下、1つのアドレスに対して1度しかデータを書き込めないメモリーとして機能する。これにより、フィスカルメモリー37に書き込まれたデータが後から編集されることが防止され、フィスカルメモリー37に記憶されたデータ対する改ざんが防止されている。EJメモリー34では、第2読出/書込実行ログ52が記憶される領域として専用の記憶領域が割り振られており、当該記憶領域に記憶されている第2読出/書込実行ログ52については、適宜、更新できる構成となっている。
第2メモリー制御部50は、プログラム可能な論理回路を書き込んだデバイスであるCPLD(Complex programmable logic device)を備え、メイン制御部30の制御の下、フィスカルメモリー37に対してデータの読み書きを行う。第2メモリー制御部50は、第2読出/書込実行ログ作成部53を備えているが、これについては後述する。
これらフィスカルメモリー37、及び、第2メモリー制御部50は、エポキシ樹脂によってサブ基板28に封止されており、例えば、フィスカルメモリー37がサブ基板28から物理的に取り外された上で、フィスカルメモリー37に記憶されたデータが改ざんされることが防止されている。
なお、メイン制御部30の制御の下、第2メモリー制御部50がフィスカルメモリー37に対してデータを読み書きする際の動作については、後に詳述する。
【0024】
次いで、メイン制御部30の制御の下、第1メモリー制御部35がEJメモリー34に対して書込レシートデータ11を読み書きする際の動作について説明する。
【0025】
図4は、フィスカルプリンター1によって発行されるレシートの一例を示す図である。
以下の説明では、フィスカルプリンター1が商品を販売する店舗に設置されているものとし、レシートは、顧客が、店舗において1又は複数の商品を購入する際に、代金の支払いに応じて発行されるものとする。また、レシートには、図4に示すように、顧客が購入した商品毎に、商品を示す商品情報60と、当該商品の単価を示す単価情報61と、当該商品を購入した個数を示す購入個数情報62と、当該商品の購入にかかる代金(当該商品の単価×当該商品を購入した個数)を示す商品購入代金情報63とが対応づけて記録され、さらに、全ての商品の総購入代金(商品の購入に係る代金のそれぞれを合計したもの)を示す総購入代金情報64が記録されるものとする。
【0026】
まず、図5及び図6を用いて、メイン制御部30が第1メモリー制御部35を制御して、EJメモリー34に書込レシートデータ11を書き込む際の動作について説明する。
図5は、メイン制御部30が第1メモリー制御部35を制御してEJメモリー34に対して書込レシートデータ11を書き込む際の、メイン制御部30の動作を示すフローチャートであり、図6は、当該動作時における第1メモリー制御部35の動作を示すフローチャートである。
動作の前提として、ホストコンピューター10が、レシートを発行するための印刷コマンドを生成し、メイン制御部30に出力したものとする。この印刷コマンドには、レシートに記録される上述した商品情報60、単価情報61、購入個数情報62、商品購入代金情報63、及び、総購入代金情報64を示すデータがテキストデータとして含まれている。
【0027】
図5を参照し、メイン制御部30は、印刷コマンドが入力されたか否かを監視する(ステップSA1)。印刷コマンドが入力された場合(ステップSA1:YES)、メイン制御部30は、入力された印刷コマンドをプリンター制御部48に出力すると共に、入力された印刷コマンドから、上述した各種情報(商品情報60、単価情報61、購入個数情報62、商品購入代金情報63、及び、総購入代金情報64)を示すテキストデータを抽出する。ここで、抽出されたデータが書込レシートデータ11である(ステップSA2)。
次いで、メイン制御部30は、第1メモリー制御部35に対し、予め定められた所定の文字列を示すデータを出力する(ステップSA3)。このように、本実施形態では、メイン制御部30は、EJメモリー34に対するデータの書き込みを要求するコマンドである書込要求コマンドを第1メモリー制御部35に出力する前に、予め定められた所定の文字列を示すデータを第1メモリー制御部35に出力する。当該所定の文字列は、フィスカルプリンター1の製造段階で、1のメイン制御部30と、当該1のメイン制御部30に接続された第1メモリー制御部35との組み合わせ毎に一意に定められており、第1メモリー制御部35は、所定の文字列を示すデータが入力された場合にのみ、書込要求コマンド等のコマンドを受け付ける構成となっている。この構成により、第1メモリー制御部35が、対応するメイン制御部30以外の制御部(CPU)であって、書込要求コマンドの出力に際し、所定の文字列を示すデータを出力するようプログラミングされていないプログラムを実行する制御部、に接続された場合、当該制御部によるEJメモリー34のアクセスが不可能となり、このような手段によるEJメモリー34に記憶されたデータへの不正アクセスが防止される。
【0028】
図6を参照して、第1メモリー制御部35は、所定の文字列を示すデータが入力されたか否かを監視する(ステップSB1)。所定の文字列を示すデータが入力された場合(ステップSB1:YES)、第1メモリー制御部35は、入力されたデータが示す文字列が、予め定められた文字列であるか否かを判別する(ステップSB2)。予め定められた文字列でない場合(ステップSB2:NO)、第1メモリー制御部35は、メイン制御部30からのデータの書き込みを実行しない(ステップSB3)。これにより、対応するメイン制御部30以外の制御部によるEJメモリー34へのアクセスが防止される。
予め定められた文字列の場合(ステップSB2:YES)、第1メモリー制御部35は、メイン制御部30に対し、コマンドの出力を許可する旨のデータを出力する(ステップSB4)。
【0029】
図5を参照して、ステップSA3の処理後、メイン制御部30は、第1メモリー制御部35から「コマンドの出力を許可する旨のデータ」が入力されたか否かを判別する(ステップSA4)。当該データが入力された場合(ステップSA4:YES)、メイン制御部30は、SRAM33から、EJメモリー34におけるデータの書込開始アドレスを取得する(ステップSA5)。書込開始アドレスとは、EJメモリー34にデータを書き込む際に、EJメモリー34のメモリー領域において書き込みが開始されるアドレスのことである。本実施形態では、EJメモリー34に対してデータの書き込みが行われる度に、第1メモリー制御部35が、次回、EJメモリー34に対してデータを書き込む際の書込開始アドレスを取得し、取得した書込開始アドレスを示すデータをメイン制御部30に出力する。メイン制御部30は、この書込開始アドレスを示すデータを、SRAM33に記憶し、次回、書込レシートデータ11をEJメモリー34に書き込む場合は、SRAM33から書込開始アドレスを取得し、取得した書込開始アドレスが示す記憶領域にデータを書き込む旨の書込要求コマンドを出力する。このため、何らかの不正の手段によって、SRAM33から書込開始アドレスを取得せずに、書込要求コマンドが出力された場合、書込要求コマンドにおいて指定された書込開始アドレスと、EJメモリー34において実際に書き込みの開始が可能なアドレスとが相違する事態が生じる。本実施形態では、この事態が生じた場合、書き込みエラーとなる構成とされ、これにより、不正の手段によって、EJメモリー34に対してデータが書き込まれることが防止されている。
【0030】
SRAM33から書込開始アドレスを取得した後(ステップSA5)、メイン制御部30は、SRAM33から取得した書込開始アドレスに、ステップSA2で抽出した書込レシートデータ11を書き込む旨の書込要求コマンドを第1メモリー制御部35に出力する。
【0031】
図6を参照して、ステップSB5において、第1メモリー制御部35は、メイン制御部30から書込要求コマンドが入力されたか否かを判別する。
書込要求コマンドが入力された場合(ステップSB5:YES)、第1メモリー制御部35は、書込要求コマンドに含まれる書込レシートデータ11を抽出し、この書込レシートデータ11に暗号化処理を施す(ステップSB6)。ここで暗号化されたデータを復号するための機能は、上述したフィスカルデータ読出装置25等の、フィスカル情報を含むデータを正規に読み出すことが許可された限られた装置のみが有している。
次いで、第1メモリー制御部35は、暗号化された書込レシートデータ11をEJメモリー34に書き込むと共に(ステップSB7)、次回、書込レシートデータ11を書き込む際の、書込開始アドレスを検出する(ステップSB8)。次いで、第1メモリー制御部35は、書込開始アドレスを示すデータをメイン制御部30に出力する(ステップSB9)。暗号化は、データ圧縮により実現することができる。この場合、ランレングス符号化、ホフマン符号化などが使用できる。また、フラッシュメモリーなどは、セクターを分割して特有のフォーマットでデータを生成して配列し、記憶するように構成されているので、このような特有のフォーマットを使用して、一種の暗号化として使用してもよい。
【0032】
図5を参照して、ステップSA7において、メイン制御部30は、書込開始アドレスを示すデータが入力されたか否かを監視する。書込開始アドレスを示すデータが入力された場合(ステップSA7:YES)、メイン制御部30は、書込開始アドレスを示すデータをSRAM33に記憶する(ステップSA8)。
【0033】
以上のようにしてメイン制御部30によって制御される第1メモリー制御部35により書込レシートデータ11がEJメモリー34に書き込まれるが、同様の手順によって、メイン制御部30によって制御される第2メモリー制御部50により、フィスカルメモリー37に日計売上データ12が書き込まれる。日計売上データ12とは、1日ごとの総売上を示すデータのことであり、店舗の営業終了後、ホストコンピューター10がその日における総売上を計算し、計算した総売上に基づいて、日計売上データ12を生成し、生成した日計売上データ12をメイン制御部30に出力する。日計売上データ12が入力されると、メイン制御部30は、上述した第1メモリー制御部35に対する制御と同様の制御によって、第2メモリー制御部50を制御し、フィスカルメモリー37に日計売上データ12を書き込む。
【0034】
次いで、図7及び図8を用いて、メイン制御部30が第1メモリー制御部35を制御して、EJメモリー34から書込レシートデータ11を読み出す際の動作について説明する。
図7は、メイン制御部30が第1メモリー制御部35を制御してEJメモリー34から書込レシートデータ11を読み出す際の、メイン制御部30の動作を示すフローチャートであり、図8は、当該動作時における第1メモリー制御部35の動作を示すフローチャートである。
なお、以下の動作では、フィスカルプリンター1にフィスカルデータ読出装置25が接続されており、メイン制御部30は、フィスカルデータ読出装置25によるデータの読み出し指示(読み出し命令)に基づいて、EJメモリー34から書込レシートデータ11を読み出し、読み出した書込レシートデータ11をフィスカルデータ読出装置25に出力するものとする。
【0035】
図7を参照し、メイン制御部30は、フィスカルデータ読出装置25から書込レシートデータ11を読み出すことを指示するコマンド(読み出し命令)が入力されたか否かを監視する(ステップSC1)。コマンドが入力された場合(ステップSC1:YES)、メイン制御部30は、上述の予め定められた所定の文字列を示すデータを第1メモリー制御部35に出力する(ステップSC2)。
【0036】
図8を参照し、第1メモリー制御部35は、所定の文字列を示すデータが入力されたか否かを監視する(ステップSD1)。所定の文字列を示すデータが入力された場合(ステップSD1:YES)、第1メモリー制御部35は、入力されたデータが示す文字列が、予め定められた文字列であるか否かを判別する(ステップSD2)。予め定められた文字列でない場合(ステップSD2:NO)、第1メモリー制御部35は、メイン制御部30からのデータの読み出し要求を実行しない(ステップSD3)。これにより、メイン制御部30以外の制御部によるEJメモリー34へのアクセスが防止される。
予め定められた文字列の場合(ステップSD2:YES)、第1メモリー制御部35は、メイン制御部30に対し、コマンドの出力を許可する旨のデータを出力する(ステップSD4)。
【0037】
図7を参照し、メイン制御部30は、「コマンドの出力を許可する旨のデータ」が入力されたか否かを監視する(ステップSC3)。データが入力された場合(ステップSC3:YES)、メイン制御部30は、書込レシートデータ11を読み出す旨の読出要求コマンドを第1メモリー制御部35に出力する(ステップSC4)。
【0038】
図8を参照して、ステップSD5において、第1メモリー制御部35は、メイン制御部30から読出要求コマンドが入力されたか否かを判別する。
読出要求コマンドが入力された場合(ステップSD5:YES)、第1メモリー制御部35は、EJメモリー34にアクセスし、EJメモリー34から書込レシートデータ11を読み出し(ステップSD6)、読み出した書込レシートデータ11をメイン制御部30に出力する(ステップSD7)。ここで、メイン制御部30に出力された書込レシートデータ11は、暗号化または特有のフォーマット化されたままのデータである。
【0039】
図7を参照して、ステップSC5において、メイン制御部30は、第1メモリー制御部35から書込レシートデータ11が入力されたか否かを監視する(ステップSC5)。
書込レシートデータ11が入力された場合(ステップSC5:YES)、メイン制御部30は、入力された書込レシートデータ11を、通信IC31とフィスカルコネクター29を介して、フィスカルデータ読出装置25に出力する(ステップSC6)。
上述したように、書込レシートデータ11は、暗号化または特有のフォーマット化が施されており、復号化の機能を有する正規のフィスカルデータ読出装置25等によってのみ、復号化が可能である。
なお、同様の手順によって、メイン制御部30によって制御される第2メモリー制御部50によって、フィスカルメモリー37から日計売上データ12が読み出される。この場合も、フィスカルデータ読出装置25から日計売上データ12を読み出すことを指示するコマンド(読み出し命令)の基づき、フィスカルメモリー37から日計売上データ12を読み出し、通信IC31とフィスカルコネクター29を介して、フィスカルデータ読出装置25に出力する。書込レシートデータ11や日計売上データ12は、当日分のみでなく、所定の期間内に蓄積されたものを指定して読み出すこともできる。
【0040】
次いで、メイン制御部30が備えるコマンド出力ログ作成部66について説明する。
このコマンド出力ログ作成部66の機能は、CPUがプログラムを実行する等、ハードウェアとソフトウェアとの協働によって実現される。
コマンド出力ログ作成部66は、所定のタイミングで、ROM32に記憶されたコマンド出力ログ40にログ情報を付加し、コマンド出力ログ40を更新する。
【0041】
図9は、コマンド出力ログ作成部66によって作成されるコマンド出力ログ40を模式的に示す図である。
コマンド出力ログ作成部66は、メイン制御部30が第1メモリー制御部35又は第2メモリー制御部50に読出要求コマンド又は書込要求コマンドを出力する度に、ROM32に記憶されたコマンド出力ログ40に、以下のログ情報を付加し、コマンド出力ログ40を更新する。すなわち、コマンド出力ログ40に付加されるログ情報とは、コマンドが出力された日時(年、月、日、時刻)と、PCコネクター24に接続されたホストコンピューター10からデータの読み出しが指示されたのか、フィスカルコネクター29に接続されたフィスカルデータ読出装置25からデータの読み出しが指示されたのかを示す情報と、読出要求コマンド及び書込要求コマンドのいずれのコマンドが出力されたのかを示す情報と、EJメモリー34及びフィスカルメモリー37のいずれのメモリーに対してコマンドが出力されたのかを示す情報とを対応づけた情報である。
なお、メイン制御部30にコマンド出力ログ40は、通信IC31(インターフェイス)を介して、読み出し命令、又は、書き込み命令が入力されたことのログでもある。
【0042】
次いで、第1メモリー制御部35が備える第1読出/書込実行ログ作成部46について説明する。
第1読出/書込実行ログ作成部46は、EJメモリー34に記憶された第1読出/書込実行ログ45にログ情報を付加し、第1読出/書込実行ログ45を更新する。
【0043】
図10(A)は、第1読出/書込実行ログ45を模式的に示す図である。
第1読出/書込実行ログ作成部46は、第1メモリー制御部35によって、EJメモリー34への書込レシートデータ11の書き込み、又は、EJメモリー34からの書込レシートデータ11の読み出しが実際に行われる度に、EJメモリー34に記憶された第1読出/書込実行ログ45に、以下のログ情報を付加し、第1読出/書込実行ログ45を更新する。すなわち、第1読出/書込実行ログ45に付加されるログ情報とは、EJメモリー34への書込レシートデータ11の書き込み、又は、EJメモリー34からの書込レシートデータ11の読み出しが行われた日時を示す情報と、データの書き込みが行われたのかデータの読み出しが行われたのかを示す情報とを対応づけた情報である。
なお、第1読出/書込実行ログ作成部46は、第1読出/書込実行ログ45を更新する際に発生するEJメモリー34へのデータの書き込みや、データの読み出しについては、ログ情報を付加しない。
【0044】
次いで、第2メモリー制御部50が備える第2読出/書込実行ログ作成部53について説明する。
第2読出/書込実行ログ作成部53は、フィスカルメモリー37に記憶された第2読出/書込実行ログ52にログ情報を付加し、第2読出/書込実行ログ52を更新する。
【0045】
図10(B)は、第2読出/書込実行ログ52を模式的に示す図である。
第2読出/書込実行ログ作成部53は、第2メモリー制御部50によって、フィスカルメモリー37への日計売上データ12の書き込み、又は、フィスカルメモリー37からの日計売上データ12の読み出しが行われる度に、フィスカルメモリー37に記憶された第2読出/書込実行ログ52に、以下のログ情報を付加し、第2読出/書込実行ログ52を更新する。すなわち、第2読出/書込実行ログ52に付加される情報とは、フィスカルメモリー37への日計売上データ12の書き込み、又は、フィスカルメモリー37からの日計売上データ12の読み出しが行われた日時を示す情報と、データの書き込みが行われたのかデータの読み出しが行われたのかを示す情報とを対応づけた情報である。
なお、第2読出/書込実行ログ作成部53は、第2読出/書込実行ログ52を更新する際に発生するフィスカルメモリー37へのデータの書き込みや、データの読み出しについては、ログ情報を付加しない。
【0046】
次いで、メイン制御部30が備える接続状況ログ作成部67について説明する。
接続状況ログ作成部67は、ROM32に記憶された接続状況ログ41にログ情報を付加し、接続状況ログ41を更新する。
【0047】
図11は、接続状況ログ41を模式的に示す図である。
接続状況ログ41とは、フィスカルコネクター29にフィスカルデータ読出装置25が接続されていた時間帯を示すログであり、接続が開始された日時を示す情報と、接続が解除された日時を示す情報とが対応づけられたログ情報を有している。
上述したように、通信IC31は、フィスカルコネクター29にフィスカルデータ読出装置25が接続されていることを検出できるが、接続状況ログ作成部67は、通信IC31の検出値と、RTC38から入力されたデータとに基づいて、フィスカルコネクター29にフィスカルデータ読出装置25が接続されていた時間帯(接続が開始された日時と接続が解除された日時)を検出し、検出した時間帯に基づいて、接続状況ログ41に各ログ情報を付加する。
【0048】
次いで、メイン制御部30が備える第1不正アクセス検出部70について図12のフローチャートを用いて説明する。
この第1不正アクセス検出部70は、以下説明する動作によって、EJメモリー34やフィスカルメモリー37に対して不正アクセスによるデータの読み出しがあった可能性があることを検出する。
第1不正アクセス検出部70の動作は、CPUがプログラムを実行する等、ハードウェアとソフトウェアとの協働によって実現される。
【0049】
図12を参照して、第1不正アクセス検出部70は、ROM32に記憶されたコマンド出力ログ40を参照し(ステップSE1)、メイン制御部30が第1メモリー制御部35に対して書込レシートデータ11の読出要求コマンドを出力した回数を取得する(ステップSE2)。このステップSE2では、例えば、現時点から所定の時間だけ遡った日時までの間に、読出要求コマンドを出力した回数を取得するようにしてもよい。
次いで、第1不正アクセス検出部70は、第1メモリー制御部35に、EJメモリー34から第1読出/書込実行ログ45を読み出す旨の読出要求コマンドを出力することによって、EJメモリー34から第1読出/書込実行ログ45を取得する(ステップSE3)。
次いで、第1不正アクセス検出部70は、取得した第1読出/書込実行ログ45を参照し(ステップSE4)、第1メモリー制御部35がEJメモリー34から実際に書込レシートデータ11の読み出しを実行した回数を取得する(ステップSE5)。なお、ステップSE2において、現時点から所定の時間だけ遡った日時までの間に、読出要求コマンドを出力した回数を取得するようにした場合、このステップSE5では、現時点から所定の時間だけ遡った日時までの間に、第1メモリー制御部35がEJメモリー34から実際にデータの読み出しを実行した回数を取得するようにする。
【0050】
次いで、第1不正アクセス検出部70は、ステップSE2で取得したメイン制御部30が第1メモリー制御部35に対して読出要求コマンドを出力した回数と、ステップSE5で取得した第1メモリー制御部35によってEJメモリー34から実際に書込レシートデータ11の読み出しが実行された回数と、を比較する(ステップSE6)。
ここで、本実施形態では、EJメモリー34からの書込レシートデータ11の読み出しは、メイン制御部30から第1メモリー制御部35に対して読出要求コマンドが出力され、この読出要求出力コマンドに基づいて、第1メモリー制御部35がEJメモリー34から書込レシートデータ11を読み出す。従って、ステップSE2で取得したメイン制御部30が第1メモリー制御部35に対して読出要求コマンドを出力した回数と、ステップSE5で取得した第1メモリー制御部35によってEJメモリー34から実際に書込レシートデータ11の読み出しが実行された回数と、は一致するはずである。一方で、第1メモリー制御部35にメイン制御部30以外の制御部が不正に接続された上で、当該制御部の制御に基づいて、EJメモリー34からデータが読み出された場合、上記回数のそれぞれは、一致しない。これを踏まえ、上記回数のそれぞれが一致するか否かによって不正アクセスによる書込レシートデータ11の読み出しがあった可能性があるか否かを検出できる。
【0051】
ステップSE6において、上記回数のそれぞれが一致した場合(ステップSE6:YES)、第1不正アクセス検出部70は、不正アクセスが検出されなかった旨を示すデータを生成し、ホストコンピューター10やフィスカルデータ読出装置25に出力する(ステップSE7)。ホストコンピューター10やフィスカルデータ読出装置25では、入力されたデータに基づいて、表示部等にその旨表示する等して、そのことを報知する。
一方、上記回数のそれぞれが一致しなかった場合(ステップSE6:NO)、すなわち、不正アクセスによる書込レシートデータ11の読み出しが行われた可能性がある場合、第1不正アクセス検出部70は、不正アクセスがあった可能性がある旨を示すデータを生成し、ホストコンピューター10やフィスカルデータ読出装置25に出力する(ステップSE8)。ホストコンピューター10やフィスカルデータ読出装置25では、入力されたデータに基づいて、表示部等にその旨表示する等して、そのことを報知する。
【0052】
以上説明したように、第1不正アクセス検出部70は、コマンド出力ログ40と、第1読出/書込実行ログ45とに基づいて、不正アクセスがあった可能性があることを検出する。
なお、図12の例では、EJメモリー34に記憶された書込レシートデータ11が不正に読み出された可能性のあることを検出する場合の第1不正アクセス検出部70の動作について説明したが、これと同様の手段によって、不正アクセスによってEJメモリー34に書込レシートデータ11が書き込まれた可能性があることを検出でき、また、コマンド出力ログ40と、第2読出/書込実行ログ52とに基づいて、フィスカルメモリー37に記憶された日計売上データ12が不正に読み出された可能性のあることを検出できると共に、フィスカルメモリー37に対して日計売上データ12が不正に書き込まれた可能性のあることを検出できる。
【0053】
次いで、メイン制御部30が備える第2不正アクセス検出部71について図13のフローチャートを用いて説明する。
この第2不正アクセス検出部71は、以下説明する動作によって、EJメモリー34やフィスカルメモリー37に対して不正アクセスによるデータの読み出しがあった可能性があることを検出する。
第2不正アクセス検出部71の動作は、CPUがプログラムを実行する等、ハードウェアとソフトウェアとの協働によって実現される。
また、以下の説明では、EJメモリー34に記憶された書込レシートデータ11が不正に読み出された可能性があること、又は、読み出されようとした可能性があることを検出する際の、第2不正アクセス検出部71の動作について説明する。
【0054】
まず、第2不正アクセス検出部71は、ROM32に記憶されたコマンド出力ログ40を参照する(ステップSF1)。
次いで、第2不正アクセス検出部71は、コマンド出力ログ40に基づいて、メイン制御部30から第1メモリー制御部35に対して読出要求コマンドが出力された日時の履歴を検出する(ステップSF2)。
次いで、第2不正アクセス検出部71は、ステップSF2で検出したメイン制御部30から第1メモリー制御部35に対して読出要求コマンドが出力された日時の履歴に基づいて、不正アクセスによる書込レシートデータ11の読み出しがあった可能性があることを検出する(ステップSF3)。
ここで、ステップSF2及びステップSF3における動作について、具体例を挙げて説明する。
【0055】
例えば、第2不正アクセス検出部71は、コマンド出力ログ40に基づいて、ある限られた一定時間(例えば、1時間)の間に、所定の間隔より短い間隔(例えば、1分間より短い間隔)で所定の回数以上(例えば、10回以上)、読出要求コマンドが出力されたことがあるか否かを判別し、上記の態様で読出要求コマンドが出力されたことがある場合、不正アクセスによるデータの読み出しがあった可能性があると判別する。これによれば、通常、ある限られた時間の間に、比較的短い間隔で、何度もEJメモリー34から書込レシートデータ11が出力されることがないような場合に、適切に不正アクセスがあった可能性があることを検出できる。特に、本実施形態では、上述したように、書込レシートデータ11は、第1メモリー制御部35の機能により暗号化または特有のフォーマット化された上で、EJメモリー34に記憶される。従って、書込レシートデータ11が暗号化または特有のフォーマット化されていることを知らない者が、例えば、フィスカルプリンター1に外部機器を接続した上で、当該外部機器を利用して、不正に、EJメモリー34から書込レシートデータ11を読み出す場合、書込レシートデータ11が暗号化または特有のフォーマット化されていることに起因して、短時間の間に何度も書込レシートデータ11を読み出す場合があるが、上記方法によって不正アクセスによる書込レシートデータ11の読み出しを検出することにより、このような場合における不正アクセスを適切に検出できる。なお、ある限られた一定時間の間に、所定の間隔より短い間隔で所定の回数以上、読出要求コマンドが出力されたことがあるか否かの判別について、一定時間、所定の間隔、及び、所定の回数は、フィスカルプリンター1が設置された店舗の状況や、フィスカルプリンター1の利用の態様等に応じて適切に設定可能である。
【0056】
また例えば、第2不正アクセス検出部71は、コマンド出力ログ40に基づいて、予め定められた時間帯に、読出要求コマンドが出力されたことがあるか否かを判別し、出力されたことがある場合、不正アクセスによるデータの読み出しがあった可能性があると判別する。予め定められた時間帯とは、例えば、店舗の営業終了の時刻から営業開始の時刻に含まれる時刻であって、書込レシートデータ11の読み出しを行うことがないような時間帯のことである。このような時間帯に書込レシートデータ11の読み出しが行われた場合、不正アクセスによるデータの読み出しが行われた可能性がある。
なお、予め定められた時間帯は、上述したような時間帯のみならず、曜日と時間帯の組み合わせでもよく、また、特定の日付の特定の時間帯としてもよい。こうすることにより、営業日、休業日等、店舗の特有の事情を考慮した上で適切に不正アクセスによる書込レシートデータ11の読み出しを検出できる。
【0057】
なお、図13の例では、EJメモリー34に記憶された書込レシートデータ11が不正に読み出された可能性のあることを検出する場合の第2不正アクセス検出部71の動作について説明したが、これと同様の手段によって、不正アクセスによってEJメモリー34に書込レシートデータ11が書き込まれた可能性があることを検出でき、また、フィスカルメモリー37に記憶された日計売上データ12が不正に読み出された可能性のあることを検出できると共に、フィスカルメモリー37に対して日計売上データ12が不正に書き込まれた可能性のあることを検出できる。
【0058】
次いで、メイン制御部30が備える第3不正アクセス検出部72について図14のフローチャートを用いて説明する。
この第3不正アクセス検出部72は、以下説明する動作によって、EJメモリー34やフィスカルメモリー37に対して不正アクセスによるデータの読み出しがあった可能性があることを検出する。
第3不正アクセス検出部72の動作は、CPUがプログラムを実行する等、ハードウェアとソフトウェアとの協働によって実現される。
また、以下の説明では、EJメモリー34に記憶された書込レシートデータ11が不正に読み出された可能性があること、又は、読み出されようとした可能性があることを検出する際の、第3不正アクセス検出部72の動作について説明する。
【0059】
まず、第3不正アクセス検出部72は、接続状況ログ41を参照し(ステップSG1)、フィスカルデータ読出装置25がフィスカルプリンター1に接続されていた時間帯を取得する(ステップSG2)。
次いで、第3不正アクセス検出部72は、コマンド出力ログ40を参照し(ステップSG3)、フィスカルプリンター1に接続されたフィスカルデータ読出装置25の指示に基づいてメイン制御部30が第1メモリー制御部35に書込レシートデータ11の読出要求コマンドを出力した日時を取得する(ステップSG4)。
次いで、第3不正アクセス検出部72は、ステップSG2で取得したフィスカルデータ読出装置25がフィスカルプリンター1に接続されていた時間帯と、ステップSG4で取得したメイン制御部30が第1メモリー制御部35に書込レシートデータ11の読出要求コマンドを出力した日時とに基づいて、不正アクセスによってEJメモリー34から書込レシートデータ11が読み出されたこと、又は、読み出された可能性があることを検出する(ステップSG5)。
ここで、ステップSG5の動作について具体例を挙げて詳述する。
【0060】
例えば、ステップSG5では、第3不正アクセス検出部72は、ステップSG2で取得したフィスカルデータ読出装置25がフィスカルプリンター1に接続されていた時間帯と、ステップSG4で取得したメイン制御部30が第1メモリー制御部35に書込レシートデータ11の読出要求コマンドを出力した日時とに基づいて、フィスカルデータ読出装置25が予め定められた所定の時間帯以外の時間帯にフィスカルプリンター1に接続された上で、このフィスカルデータ読出装置25の指示に基づいて、書込レシートデータ11の読み出しが行われたことがあるか否かを検出する。そして、当該読み出しが行われたことがある場合、不正アクセスによって書込レシートデータ11の読み出しが行われた可能性があることを検出する。
この検出方法は、以下のような場合に特に有効である。すなわち、フィスカルデータ読出装置25は、政府関係者等の限られた者が、フィスカルプリンター1に記憶された書込レシートデータ11や日計売上データ12等、フィスカル情報を含むデータを読み出す際に利用する装置であり、当該フィスカル情報を含むデータの読み出しは、予め定められた時間帯に定期的になされ、また、事前に定められた特定の時間帯に行われると考えられる。そして、これら時間帯以外の時間帯にフィスカルデータ読出装置25が接続された上で、書込レシートデータ11の読み出しが実行された場合、不正にフィスカルデータ読出装置25を取得した者が、フィスカルデータ読出装置25を利用して書込レシートデータ11を読み出した可能性がある。これを踏まえ、上記方法のように、フィスカルデータ読出装置25が予め定められた所定の時間帯以外の時間帯にフィスカルプリンター1に接続された上で、このフィスカルデータ読出装置25の指示に基づいて、書込レシートデータ11の読み出しが行われたことがあるか否かを検出することによって、不正アクセスによって書込レシートデータ11の読み出しが行われた可能性があることを検出することにより、適切に、不正アクセスによって書込レシートデータ11の読み出しが行われた可能性があることを検出できる。
【0061】
また、例えば、ステップSG5では、第3不正アクセス検出部72は、ステップSG2で取得したフィスカルデータ読出装置25がフィスカルプリンター1に接続されていた時間帯と、ステップSG4で取得したメイン制御部30が第1メモリー制御部35に書込レシートデータ11の読出要求コマンドを出力した日時とに基づいて、フィスカルデータ読出装置25がフィスカルプリンター1に接続されているのにもかかわらず、フィスカルデータ読出装置25が接続されている間に、1回も書込レシートデータ11の読み出しが実行されなかったことがあるか否か、又は、1回のフィスカルデータ読出装置25の接続の間に頻繁に(例えば、10回等の所定の回数以上)書込レシートデータ11の読み出しが実行されたことがあるか否かを検出し、1回も書込レシートデータ11の読み出しが実行されなかったことがあり、又は、頻繁に書込レシートデータ11の読み出しが実行されたことがある場合は、不正アクセスによる書込レシートデータ11の読み出しが行われようとした可能性があることを検出する。これは、フィスカルデータ読出装置25は、書込レシートデータ11等のデータを読み出すための専用的な装置であり、このフィスカルデータ読出装置25が接続されたのにもかかわらず、データの読み出しが行われていない場合や、頻繁にデータの読み出しが行われた場合は、通常のフィスカルデータ読出装置25によるデータの読み出しの態様と異なっており、不正アクセスによるデータの読み出しの可能性があるからである。
【0062】
なお、図14の例では、EJメモリー34に記憶された書込レシートデータ11が不正に読み出された可能性のあることを検出する場合の第3不正アクセス検出部72の動作について説明したが、これと同様の手段によって、不正アクセスによってEJメモリー34に書込レシートデータ11が書き込まれた可能性があることを検出でき、また、フィスカルメモリー37に記憶された日計売上データ12が不正に読み出された可能性のあることを検出できると共に、フィスカルメモリー37に対して日計売上データ12が不正に書き込まれた可能性のあることを検出できる。
【0063】
以上説明したように、本実施形態に係るフィスカルプリンター1は、メイン制御部30が暗号化または特有のフォーマット化されたデータである書込レシートデータ11や日計売上データ12を第1メモリー制御部35や第2メモリー制御部50にメモリーから読み出させたことに関するログであるコマンド出力ログ40、第1読出/書込実行ログ45、及び、第2読出/書込実行ログ52を作成するコマンド出力ログ作成部66、第1読出/書込実行ログ作成部46、及び、第2読出/書込実行ログ作成部53を備えている。
これによれば、各ログ作成部により作成された各ログに基づいて、過去におけるフィスカル情報を含むデータの読み出しの状況の中から、過去に不正アクセスの可能性があるような態様でフィスカル情報を含むデータの読み出しが行われていることを検出できる。特に、フィスカル情報を含むデータは、第1メモリー制御部35又は第2メモリー制御部50の機能によって暗号化または特有のフォーマット化された上でメモリーに記憶されるため、データが暗号化または特有のフォーマット化されていることを知らない者がメモリーに不正アクセスしてデータを読み出した場合、短時間の間に頻繁にメモリーからデータを読み出す等、データが暗号化または特有のフォーマット化されていることを知る者による正常なデータの読み出しの態様と異なる態様でデータが読み出されることが考えられ、各ログ作成部により作成された各ログに基づいて、より適切に不正アクセスによるデータの読み出しを検出できる。
【0064】
また、本実施形態では、コマンド出力ログ作成部66は、メイン制御部30が第1メモリー制御部35又は第2メモリー制御部50に読出要求コマンドを出力したことに関するコマンド出力ログ40を作成し、さらに、第1読出/書込実行ログ作成部46は、第1メモリー制御部35がEJメモリー34にアクセスしてEJメモリー34から書込レシートデータ11を読み出したことに関する第1読出/書込実行ログ45を作成し、第2読出/書込実行ログ作成部53は、第2メモリー制御部50がフィスカルメモリー37にアクセスしてフィスカルメモリー37から日計売上データ12を読み出したことに関する第2読出/書込実行ログ52を作成する。
ここで、本実施形態では、例えば、EJメモリー34から書込レシートデータ11を読み出す場合、メイン制御部30は、読出要求コマンドを第1メモリー制御部35に出力し、第1メモリー制御部35は、メイン制御部30から入力された読出要求コマンドに基づいてEJメモリー34にアクセスしてEJメモリー34から書込レシートデータ11を読み出す。従って、メイン制御部30から第1メモリー制御部35に出力された読出要求コマンドと、第1メモリー制御部35がEJメモリー34からデータを読み出す処理とは、対応しているはずであり、対応していない場合は、EJメモリー34に対する不正アクセスが行われた可能性がある。
これを踏まえ、上記構成によれば、コマンド出力ログ40と、第1読出/書込実行ログ45及び第2読出/書込実行ログ52とに基づいて、不正アクセスを検出することができる。
【0065】
また、本実施形態では、第1不正アクセス検出部70は、コマンド出力ログ40に基づいて、メイン制御部30が第1メモリー制御部35に書込レシートデータ11の読出要求コマンドを出力した回数を検出すると共に、第1読出/書込実行ログ45に基づいて、第1メモリー制御部35がEJメモリー34にアクセスしてEJメモリー34から書込レシートデータ11を読み出した回数を検出し、検出結果に基づいて、EJメモリー34への不正アクセスを検出する。同様に、第1不正アクセス検出部70は、コマンド出力ログ40に基づいて、メイン制御部30が第2メモリー制御部50に日計売上データ12の読出要求コマンドを出力した回数を検出すると共に、第2読出/書込実行ログ52に基づいて、第2メモリー制御部50がフィスカルメモリー37にアクセスしてフィスカルメモリー37から日計売上データ12を読み出した回数を検出し、検出結果に基づいて、フィスカルメモリー37への不正アクセスを検出する。
ここで、本実施形態では、例えば、EJメモリー34から書込レシートデータ11を読み出す場合、メイン制御部30は、読出要求コマンドを第1メモリー制御部35に出力し、第1メモリー制御部35は、メイン制御部30から入力された読出要求コマンドに基づいてEJメモリー34にアクセスしてEJメモリー34から書込レシートデータ11を読み出す。従って、メイン制御部30から第1メモリー制御部35に出力された読出要求コマンドの回数と、第1メモリー制御部35がEJメモリーから書込レシートデータ11を読み出す処理の回数とは、一致しているはずであり、一致していない場合は、不正アクセスによりEJメモリー34から書込レシートデータ11が読み出された可能性がある。このことは、フィスカルメモリー37に記憶された日計売上データ12についても同様である。
これを踏まえ、上記構成によれば、第1不正アクセス検出部70により、適切に不正アクセスによるデータの読み出しを検出することができる。
【0066】
また、本実施形態では、コマンド出力ログ作成部66、第1読出/書込実行ログ作成部46、及び、第2読出/書込実行ログ作成部53の各ログ作成部は、RTC38から入力されたデータに基づいて、メイン制御部30が、書込レシートデータ11や日計売上データ12を、EJメモリー34やフィスカルプリンター1から読み出したことについて、日時と対応づけたログを作成する。
これによれば、メイン制御部30が書込レシートデータ11や日計売上データ12を第1メモリー制御部35や第2メモリー制御部50にEJメモリー34やフィスカルメモリー37から読み出させた日時の履歴が検出可能となり、EJメモリー34やフィスカルメモリー37に対する正常のアクセスと異なる態様で行われる不正アクセスを検出できる。
【0067】
また、本実施形態では、第2不正アクセス検出部71は、コマンド出力ログ40に基づいて、メイン制御部30が書込レシートデータ11や日計売上データ12を第1メモリー制御部35や第2メモリー制御部50にEJメモリー34やフィスカルメモリー37から読み出させた日時の履歴を検出し、検出した履歴に基づいて、EJメモリー34やフィスカルメモリー37への不正アクセスを検出する。
これによれば、正常なアクセスを行った場合におけるアクセスの履歴と、不正アクセスにおけるアクセスの履歴との相違点の検出が可能となり、検出した相違点に基づいて不正アクセスの検出が可能となる。
【0068】
また、本実施形態に係るフィスカルプリンター1は、書込レシートデータ11や日計売上データ12をEJメモリー34やフィスカルメモリー37から読み出すことが許可されたフィスカルデータ読出装置25が接続可能に構成されており、接続状況ログ作成部67は、フィスカルデータ読出装置25の接続状況に関する接続状況ログ41を作成する。
これによれば、接続状況ログ41に基づいて、フィスカルデータ読出装置25の接続状況が検出可能となり、これに基づいて不正アクセスの検出が可能となる。
【0069】
また、本実施形態では、第3不正アクセス検出部72は、接続状況ログ41と、コマンド出力ログ40とに基づいて、EJメモリー34やフィスカルメモリー37への不正アクセスを検出する。
これによれば、フィスカルデータ読出装置25の接続状況、及び、フィスカルデータ読出装置25によるEJメモリー34やフィスカルメモリー37へのアクセスの状況の検出が可能となり、これに基づいて不正アクセスの検出が可能となる。
【0070】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、第1不正アクセス検出部70、第2不正アクセス検出部71、及び、第3不正アクセス検出部72の動作の説明の際に、不正アクセスを検出するための条件を具体的に例を挙げて説明したが、これら条件は、フィスカルプリンター1が設置された店舗の状況、フィスカルプリンター1の使用状況、仕様態様等に応じて、適宜、変更されるものである。
【符号の説明】
【0071】
1…フィスカルプリンター(電子機器)、11…書込レシートデータ(フィスカル情報を含むデータ)、12…日計売上データ(フィスカル情報を含むデータ)、25…フィスカルデータ読出装置(外部機器)、30…メイン制御部、34…EJメモリー(メモリー)、35…第1メモリー制御部(メモリー制御部)、37…フィスカルメモリー(メモリー)、38…RTC(計時部)、40…コマンド出力ログ(ログ)、41…接続状況ログ(外部機器の接続状況のログ)、45…第1読出/書込実行ログ(ログ)、46…第1読出/書込実行ログ作成部(ログ作成部)、48…プリンター制御部(記録制御部)、50…第2メモリー制御部(メモリー制御部)、52…第2読出/書込実行ログ(ログ)、53…書込実行ログ作成部(ログ作成部)、66…コマンド出力ログ作成部(ログ作成部)、67…接続状況ログ作成部(ログ作成部)、70…第1不正アクセス検出部(不正アクセス検出部)、71…第2不正アクセス検出部(不正アクセス検出部)、72…第3不正アクセス検出部(不正アクセス検出部)。

【特許請求の範囲】
【請求項1】
インターフェイスから入力されたフィスカル情報を含むデータを前記記録制御部に出力するメイン制御部と、このメイン制御部に接続され、前記データに基づいて記録部を制御して、この記録部にレシートを発行させる記録制御部と、このメイン制御部に接続されると共にメモリーに接続され、前記メイン制御部の制御に従って前記メモリーに対するデータの読み書きを行うメモリー制御部とを備え、
前記インターフェイスから前記メイン制御部に前記データが入力された場合、前記メイン制御部は、前記メモリー制御部を制御して、前記フィスカル情報を前記メモリーに書き込ませ、
前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことのログを作成するログ作成部を備えることを特徴とする電子機器。
【請求項2】
前記インターフェイスから入力された読み出し命令に基づき、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させる場合、前記メイン制御部は、読み出し要求を前記メモリー制御部に出力し、前記メモリー制御部は、前記メイン制御部から入力された読み出し要求に基づいて前記メモリーにアクセスして前記メモリーから前記フィスカル情報を読み出して、前記インターフェイスに出力し、
前記ログ作成部は、前記インターフェイスから読み出し命令が入力されたことのログまたは前記メイン制御部が前記メモリー制御部に読み出し要求を出力したことのログである読出要求ログと共に、前記メモリー制御部が前記メモリーにアクセスして前記メモリーから前記フィスカル情報を読み出したことのログである読出実行ログを作成することを特徴とする請求項1に記載の電子機器。
【請求項3】
前記ログ作成部が作成した読出要求ログに基づいて、前記インターフェイスからの読み出し命令の回数または前記メイン制御部が前記メモリー制御部に読み出し要求を出力した回数を検出すると共に、前記ログ作成部が作成した読出実行ログに基づいて、前記メモリー制御部が前記メモリーにアクセスして前記メモリーから前記フィスカル情報を読み出した回数を検出し、検出結果に基づいて、前記メモリーへの不正アクセスを検出する不正アクセス検出部を備えることを特徴とする請求項2に記載の電子機器。
【請求項4】
日時を計時する計時部をさらに備え、
前記ログ作成部は、前記計時部により計時された日時に基づいて、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させた日時と対応づけて、ログを作成することを特徴とする請求項1に記載の電子機器。
【請求項5】
前記ログ作成部が作成したログに基づいて、前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させた日時の履歴を検出し、前記検出した履歴に基づいて、前記メモリーへの不正アクセスを検出する不正アクセス検出部を備えることを特徴とする請求項4に記載の電子機器。
【請求項6】
前記フィスカル情報を前記メモリーから読み出すことが許可された外部機器が接続可能に構成され、
前記ログ作成部は、前記外部機器の接続状況のログを作成することを特徴とする請求項1に記載の電子機器。
【請求項7】
前記ログ作成部により作成された前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことのログ、及び、前記外部機器の接続状況のログに基づいて、前記メモリーへの不正アクセスを検出する不正アクセス検出部を備えることを特徴とする請求項6に記載の電子機器。
【請求項8】
インターフェイスから入力されたフィスカル情報を含むデータを前記記録装置制御部に出力するメイン制御部と、このメイン制御部に接続され、前記データに基づいて記録部を制御して、この記録部にレシートを発行させる記録制御部と、このメイン制御部に接続されると共にメモリーに接続され、前記メイン制御部の制御に従って前記メモリーに対するデータの読み書きを行うメモリー制御部とを備え、
前記インターフェイスから前記メイン制御部に前記データが入力された場合、前記メイン制御部は、前記メモリー制御部を制御して、前記フィスカル情報を前記メモリーに書き込ませる電子機器を制御して、
前記メイン制御部が前記フィスカル情報を前記メモリー制御部に前記メモリーから読み出させたことを検出し、検出した結果に基づいてログを作成することを特徴とする電子機器の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2011−123781(P2011−123781A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−282405(P2009−282405)
【出願日】平成21年12月14日(2009.12.14)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】