(57)【要約】【課題】情報処理装置の状況に応じて、ファームウェアの書き換えを適切に制限する。【解決手段】フィスカルプリンター１６は、データの書き込み後、書き込んだデータの書き換えができない記憶領域である納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶される前は、フィスカルデータに係る処理を実行不可能とする一方、当該データが記憶された後は、フィスカルデータに係る処理を実行可能な構成を有すると共に、ファームウェア書換モードへの移行を許可する状態と、許可しない状態とを切り替えるディップスイッチ３５が設けられ、ファームウェアの書き換えを行うモードへの移行の指示があった場合、納税者番号データＤ１が記憶されているか否か判別し、記憶されていない場合は、ディップスイッチ３５の状態にかかわらず、ファームウェア書換モードに移行する。【選択図】図１
2014115803.tif 000002
【特許請求の範囲】
【請求項１】
フィスカルデータを記憶する情報処理装置であって、
データの書き込み後、書き込んだデータの書き換えができない記憶領域を備え、
前記記憶領域に所定の情報が記憶される前は、前記フィスカルデータに係る処理を実行不可能とする一方、前記所定の情報が記憶された後は、前記フィスカルデータに係る処理を実行可能な構成とし、
ファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチを設け、
前記ファームウェアの書き換えを行うモードへの移行の指示があった場合、前記記憶領域に前記所定の情報が記憶されているか否か判別し、記憶されていない場合は、前記スイッチの状態にかかわらず、前記ファームウェアの書き換えを行うモードに移行する
ことを特徴とする情報処理装置。
【請求項２】
前記スイッチは、装置本体のケース内に設けられた回路基板に実装されたディップスイッチであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶領域には、前記フィスカルデータが記憶されることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ファームウェアの書き換えを行うモードへの移行の指示は、接続された外部機器からの特定の制御コマンドによって行われることを特徴とする請求項１ないし３のいずれかに記載の情報処理装置。
【請求項５】
フィスカルデータを記憶し、データの書き込み後、書き込んだデータの書き換えができない記憶領域を備える情報処理装置の制御方法であって、
前記記憶領域に所定の情報が記憶される前は、前記フィスカルデータに係る処理を実行不可能とする一方、前記所定の情報が記憶された後は、前記フィスカルデータに係る処理を実行可能な構成とし、ファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチを設けた上で、
前記ファームウェアの書き換えを行うモードへの移行の指示があった場合、前記記憶領域に前記所定の情報が記憶されているか否か判別し、記憶されていない場合は、前記スイッチの状態にかかわらず、前記ファームウェアの書き換えを行うモードに移行する
ことを特徴とする情報処理装置の制御方法。
【請求項６】
フィスカルデータを記憶し、データの書き込み後、書き込んだデータの書き換えができない記憶領域を備え、前記記憶領域に所定の情報が記憶される前は、前記フィスカルデータに係る処理を実行不可能とする一方、前記所定の情報が記憶された後は、前記フィスカルデータに係る処理を実行可能な構成とし、ファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチを設けた情報処理装置を制御する制御部により実行されるプログラムであって、
前記制御部に、
前記ファームウェアの書き換えを行うモードへの移行の指示があった場合、前記記憶領域に前記所定の情報が記憶されているか否か判別させ、記憶されていない場合は、前記スイッチの状態にかかわらず、前記ファームウェアの書き換えを行うモードに移行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィスカルデータを記憶する情報処理装置、当該情報処理装置の制御方法、及び、当該情報処理装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、商品を販売等する店舗に設けられ、取引に関する情報（売上に関する情報や、課税に関する情報等）を含むフィスカルデータを記憶する情報処理装置（電子式キャッシュレジスター、レシート用のプリンター）が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０５−１２０５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した情報処理装置のように、フィスカルデータを記憶するものでは、装置の基本制御プログラムであるファームウェアの不正な書き換えは、フィスカルデータの改ざん、その他のフィスカルデータに係る不正につながるため、これを防止する必要がある。一方で、情報処理装置の出荷前の製造段階では、プログラム修正やテストに対応するため、容易にファームウェアの書き換えを行えるようにしたいとするニーズがある。
本発明は、上述した事情に鑑みてなされたものであり、情報処理装置の状況に応じて、ファームウェアの書き換えを適切に制限することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、フィスカルデータを記憶する情報処理装置であって、データの書き込み後、書き込んだデータの書き換えができない記憶領域を備え、前記記憶領域に所定の情報が記憶される前は、前記フィスカルデータに係る処理を実行不可能とする一方、前記所定の情報が記憶された後は、前記フィスカルデータに係る処理を実行可能な構成とし、ファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチを設け、前記ファームウェアの書き換えを行うモードへの移行の指示があった場合、前記記憶領域に前記所定の情報が記憶されているか否か判別し、記憶されていない場合は、前記スイッチの状態にかかわらず、前記ファームウェアの書き換えを行うモードに移行することを特徴とする。
この構成によれば、情報処理装置がフィスカルデータに係る処理を行う装置として機能している状況では、スイッチの切り替えによってファームウェアの書き換えを行うモードへの移行を許可する状態となっている場合にのみ、ファームウェアの書き換えを行うモードへの移行が可能となり、ファームウェアの不正な書き換えを抑制できる。その上で、製造段階を含む、情報処理装置がフィスカルデータに係る処理を行なう装置として機能していない状況では、スイッチの状態にかかわらず、ファームウェアの書き換えを行うモードへ移行できるため、製造段階におけるファームウェアの容易な書き換えを実現でき、製造段階における作業の効率化を実現できる。すなわち、情報処理装置の状況に応じて、ファームウェアの書き換えを適切に制限できる。さらに、所定の情報は、データの書込み後、書き込んだデータの書き換えができない記憶領域に記憶されるため、一旦、情報処理装置がフィスカルデータに係る処理を行なう装置として機能した後は、スイッチの切り替えによってファームウェアの書き換えを行うモードへの移行を許可する状態となっている場合にのみ、ファームウェアの書き換えを行うモードへの移行が可能となり、より効果的にファームウェアの不正な書き換えを抑制できる。
【０００６】
また、本発明は、前記スイッチは、装置本体のケース内に設けられた回路基板に実装されたディップスイッチであることを特徴とする。
この構成によれば、装置本体のケースを取り外した上で、回路基板を露出して初めてディップスイッチを操作できる。これにより、専門的な知識を有していない第三者がディップスイッチを操作することを抑制でき、より効果的にファームウェアの不正な書き換えを抑制できる。
【０００７】
また、本発明は、前記記憶領域には、前記フィスカルデータが記憶されることを特徴とする。
ここで、フィスカルデータは、改ざんされることを防止しなければならないデータである。そして、上記構成によれば、フィスカルデータ、及び、所定の情報の双方が、データの書き込み後、書き込んだデータの書き換えができない記憶領域に記憶されるため、それぞれについて専用の記憶領域を設ける場合と比較してコストを削減しつつ、双方のデータが後に改ざんされることを防止できる。
【０００８】
また、本発明は、前記ファームウェアの書き換えを行うモードへの移行の指示は、接続された外部機器からの特定の制御コマンドによって行われることを特徴とする。
この構成によれば、スイッチの適切な切り換え、及び、外部機器からの特定の制御コマンドの入力があって初めて、ファームウェアの書き換えを行なうモードへの移行が可能となり、より効果的にファームウェアの不正な書き換えを抑制できる。
【０００９】
また、上記目的を達成するために、本発明は、フィスカルデータを記憶し、データの書き込み後、書き込んだデータの書き換えができない記憶領域を備える情報処理装置の制御方法であって、前記記憶領域に所定の情報が記憶される前は、前記フィスカルデータに係る処理を実行不可能とする一方、前記所定の情報が記憶された後は、前記フィスカルデータに係る処理を実行可能な構成とし、ファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチを設けた上で、前記ファームウェアの書き換えを行うモードへの移行の指示があった場合、前記記憶領域に前記所定の情報が記憶されているか否か判別し、記憶されていない場合は、前記スイッチの状態にかかわらず、前記ファームウェアの書き換えを行うモードに移行することを特徴とする。
この制御方法によれば、情報処理装置がフィスカルデータに係る処理を行う装置として機能している状況では、スイッチの切り替えによってファームウェアの書き換えを行うモードへの移行を許可する状態となっている場合にのみ、ファームウェアの書き換えを行うモードへの移行が可能となり、ファームウェアの不正な書き換えを抑制できる。その上で、製造段階を含む、情報処理装置がフィスカルデータに係る処理を行なう装置として機能していない状況では、スイッチの状態にかかわらず、ファームウェアの書き換えを行うモードへ移行できるため、製造段階におけるファームウェアの容易な書き換えを実現でき、製造段階における作業の効率化を実現できる。すなわち、情報処理装置の状況に応じて、ファームウェアの書き換えを適切に制限できる。さらに、所定の情報は、データの書込み後、書き込んだデータの書き換えができない記憶領域に記憶されるため、一旦、情報処理装置がフィスカルデータに係る処理を行なう装置として機能した後は、スイッチの切り替えによってファームウェアの書き換えを行うモードへの移行を許可する状態となっている場合にのみ、ファームウェアの書き換えを行うモードへの移行が可能となり、より効果的にファームウェアの不正な書き換えを抑制できる。
【００１０】
また、上記目的を達成するために、本発明は、フィスカルデータを記憶し、データの書き込み後、書き込んだデータの書き換えができない記憶領域を備え、前記記憶領域に所定の情報が記憶される前は、前記フィスカルデータに係る処理を実行不可能とする一方、前記所定の情報が記憶された後は、前記フィスカルデータに係る処理を実行可能な構成とし、ファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチを設けた情報処理装置を制御する制御部により実行されるプログラムであって、前記制御部に、前記ファームウェアの書き換えを行うモードへの移行の指示があった場合、前記記憶領域に前記所定の情報が記憶されているか否か判別させ、記憶されていない場合は、前記スイッチの状態にかかわらず、前記ファームウェアの書き換えを行うモードに移行させることを特徴とする。
このプログラムによれば、情報処理装置がフィスカルデータに係る処理を行う装置として機能している状況では、スイッチの切り替えによってファームウェアの書き換えを行うモードへの移行を許可する状態となっている場合にのみ、ファームウェアの書き換えを行うモードへの移行が可能となり、ファームウェアの不正な書き換えを抑制できる。その上で、製造段階を含む、情報処理装置がフィスカルデータに係る処理を行なう装置として機能していない状況では、スイッチの状態にかかわらず、ファームウェアの書き換えを行うモードへ移行できるため、製造段階におけるファームウェアの容易な書き換えを実現でき、製造段階における作業の効率化を実現できる。すなわち、情報処理装置の状況に応じて、ファームウェアの書き換えを適切に制限できる。さらに、所定の情報は、データの書込み後、書き込んだデータの書き換えができない記憶領域に記憶されるため、一旦、情報処理装置がフィスカルデータに係る処理を行なう装置として機能した後は、スイッチの切り替えによってファームウェアの書き換えを行うモードへの移行を許可する状態となっている場合にのみ、ファームウェアの書き換えを行うモードへの移行が可能となり、より効果的にファームウェアの不正な書き換えを抑制できる。
【発明の効果】
【００１１】
本発明によれば、情報処理装置の状況に応じて、ファームウェアの書き換えを適切に制限できる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係る情報処理システムの構成を示す図である。
【図２】フィスカルプリンターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係る情報処理システム１の構成を示す図である。
図１に示すように、情報処理システム１は、フィスカルプリンター１６（情報処理装置）を備えており、このフィスカルプリンター１６にホストコンピューター１５（外部機器）、及び、フィスカルデータ読出装置４０（外部機器）が接続可能な構成となっている。
フィスカルプリンター１６は、ホストコンピューター１５の制御の下、レシートを発行すると共に、ホストコンピューター１５から入力されたフィスカルデータを記憶する。
フィスカルデータとは、商品等の販売取引に関する情報（売上に関する情報や課税額等に関する情報）であって、記憶すべき情報として予め定められた情報のことである。このフィスカル情報は、例えば、政府等の国家機関による店舗からの税金の徴収に際し、国家機関が当該店舗における取引の実態を把握するために参照する情報として利用される。本実施形態では、フィスカルデータとして、後述する書込レシートデータ５４、及び、日計売上データ５３の２種類のデータが存在する。
なお、以下の説明では、フィスカルプリンター１６が出力するレシートは、店舗のレジカウンターにおいて顧客による会計に際して発行されるレシートであり、購入した商品ごとの小計金額Ｔ１（商品ごとに、商品の単価と購入数量の積によって算出される金額。）と、合計金額Ｔ２（小計金額Ｔ１の和によって算出される金額。）、及び、支払金額Ｔ３（合計金額Ｔ２に消費税等の税を加味して算出される金額。）が記録されているものとする。
【００１４】
図１に示すように、フィスカルプリンター１６は、管理基板２０（回路基板）、プリンター基板２１、及び、サブ基板２２の３つの基板を備えている。
管理基板２０には、メイン制御部２５（制御部）と、ＰＣコネクター２６ａと、フィスカルコネクター２６ｂと、通信ＩＣ２７と、ＲＯＭ２８と、ＳＲＡＭ２９と、ＲＴＣ３０と、ＥＪメモリー３１と、ＥＪメモリー制御部３２と、バッファーＩＣ３３と、ディップスイッチ３５と、通信モジュール３７と、が実装されている。
メイン制御部２５は、フィスカルプリンター１６の各部を中枢的に制御するものであり、ＣＰＵやその他の周辺回路を備えている。ＰＣコネクター２６ａは、フィスカルプリンター１６の通常使用時においてホストコンピューター１５が接続されるコネクターである。ホストコンピューター１５は、ＰＣコネクター２６ａを介してフィスカルプリンター１６にレシートの発行に係る動作を行わせる制御コマンドを出力し、また、フィスカル情報として、後述する日計売上データ５３を出力する。フィスカルコネクター２６ｂは、フィスカルデータ読出装置４０が接続されるコネクターである。フィスカルデータ読出装置４０とは、後述するＥＪメモリー３１や、フィスカルメモリー５０に記憶されたデータを読み出すための装置であり、例えば国家機関（政府等）に係る者等の、特別な許可を得た者だけが所持し得る。上述したホストコンピューター１５はＰＣコネクター２６ａに接続された状態が維持されるが、フィスカルデータ読出装置４０は、ホストコンピューター１５と異なり、データの読み出しが行われる際に、都度、フィスカルコネクター２６ｂに接続される。
通信ＩＣ２７は、ＰＣコネクター２６ａ及びフィスカルコネクター２６ｂに接続され、メイン制御部２５の制御の下、ホストコンピューター１５や、フィスカルデータ読出装置４０との間でデータの送受信を行う。ＲＯＭ２８は、ＥＥＰＲＯＭ等のデータの書き換えが可能なメモリーであり、メイン制御部２５が各種制御を行うための各種データを不揮発的に、書き換え可能に記憶する。ＲＯＭ２８には、フィスカルプリンター１６の基本制御プログラムであるファームウェアがロード可能に記憶されている。ＳＲＡＭ２９は、メイン制御部２５のＣＰＵのワークエリアとして機能する揮発性のメモリーであり、各種データを一時的に記憶する。ＲＴＣ３０（Real-time clock：リアルタイムクロック）は、現在日時（年月日、時刻）を示すデータをメイン制御部２５に出力する。これらＳＲＡＭ２９、ＲＴＣ３０には、フィスカルプリンター１６の電源がオフされた場合であっても、電池３４からバックアップ用の電力が供給される。
【００１５】
ＥＪメモリー３１は、ＮＡＮＤ型フラッシュメモリーであり、大容量のデータを記憶可能である。特に、本実施形態では、ＥＪメモリー３１は、ＭＬＣタイプのＮＡＮＤ型フラッシュメモリーである。周知の通り、ＭＬＣタイプのＮＡＮＤ型フラッシュメモリーは、ＳＬＣタイプのものと比較して、低コストで大容量化が可能である。従って、後に明らかとなるとおり、頻繁に書込みに係る処理が発生する可能性があり、かつ、記憶されるデータのサイズが増大するペースが速い可能性がある書込レシートデータ５４を記憶するメモリーとして適している。
ＥＪメモリー３１において、書込レシートデータ５４及びこれに付随するデータが書き込まれる記憶領域は、ソフトウェア的、及び／又は、ハードウェア的な手段によって、データの書き込み後、当該書き込まれたデータの書き換えができないメモリーとして機能する。すなわち、記憶領域上の１つのアドレスが指し示す領域に対して１度しかデータを書き込めない。これにより、ＥＪメモリー３１に書き込まれたフィスカルデータが後から編集されることが防止され、ＥＪメモリー３１に記憶されたフィスカルデータ対する改ざんが防止されている。ＥＪメモリー制御部３２は、ＣＰＵを備え、メイン制御部２５の制御の下、ＥＪメモリー３１に対してデータの読み書き、消去を行う。バッファーＩＣ３３は、ＥＪメモリー３１に対するデータの読み出し、書き込みの効率を向上するために設けられたバッファーを制御する。
これらＥＪメモリー３１、ＥＪメモリー制御部３２、及び、バッファーＩＣ３３は、エポキシ樹脂によって管理基板２０に封止されており、ＥＪメモリー３１が管理基板２０から物理的に取り外された上で、ＥＪメモリー３１に記憶されたデータが改ざんされることが防止されている。
【００１６】
ディップスイッチ３５は、ＲＯＭ２８に記憶されているファームウェアの書き換えを行うモードへの移行を許可する状態と、許可しない状態とを切り替えるスイッチである。ここで、ファームウェアが不正に書き換えられると、書込レシートデータ５４や、日計売上データ５３の改ざんや、その他の不正につながる可能性がある。また、ファームウェアは、フィスカルプリンター１６の基本的な機能を実現するためのプログラム群であるため、ファームウェアの書き換えが正常に行なわれなかった場合、フィスカルプリンター１６に多大な悪影響を及ぼす可能性がある。これを踏まえ、本実施形態に係るフィスカルプリンター１６では、動作モードとして、ファームウェアの書き換えを行なうモード（以下、「ファームウェア書換モード」という。）を設けており、当該モードに移行している場合にのみ、ファームウェアの書き換えを実行可能な構成となっている。そして、ディップスイッチ３５は、ファームウェア書換モードへの移行を許可する状態と、許可しない状態とを切り替えるためのスイッチである。具体的には、ディップスイッチ３５がオンされている場合には、メイン制御部２５のＣＰＵの所定のポートに所定の信号が入力されて、ファームウェア書換モードへの移行を許可する状態となり、オフの場合には、ファームウェア書換モードへの移行を許可しない状態となる。
ここで、管理基板２０は、フィスカルプリンター１６の装置本体のケース内に設けられた回路基板であり、当該管理基板２０を露出するためには、ケースを取り外す必要がある。特に、本実施形態では、不正な手段でケースが取り外された場合、そのことを検出し、対応する処理、例えば、フィスカルプリンター１６を以後動作させなくしたり、その旨の情報をホストコンピューター１５や、フィスカルデータ読出装置４０に出力したり、通信モジュール３７を介して外部のサーバー装置に出力する構成となっている。不正な手段でケースが取り外されことを検出する構成として、例えば、ドリル等でケースに穴が開けられた場合、ケースに張り巡らされた信号線の一部の通電が遮断されて、メイン制御部２５のＣＰＵのポートにその旨の信号が入力される構成や、振動センサー、傾きセンサー等により閾値以上の振動や傾きを検出する構成がある。これにより、管理基板２０に対する不正なアクセスが抑制されている。
そして、ディップスイッチ３５は、管理基板２０の裏側であって、物理的なアクセスが非常にしにくい場所、例えば、管理基板２０を適切な手順によって取り外して初めて露出する場所等に設けられている。これにより、フィスカルプリンター１６に関する専門的な知識を有さない第三者が不正の目的で、ディップスイッチ３５を切り替えることが抑制されており、第三者が不正の目的で、動作モードをファームウェア書換モードへ移行させた上でファームウェアの書き換えを行なうことが抑制されている。
通信モジュール３７は、電話網やインターネット等のネットワークを介して、政府等が管理するサーバー装置等の外部機器通信するためのモジュールである。外部機器との通信するときの規格は、ＧＰＲＳの規格等、何であってもよい。
【００１７】
また、プリンター基板２１には、プリンター制御部４５が実装されており、プリンター制御部４５は、ホストコンピューター１５が出力した制御コマンドに基づいて、記録機構４６を制御して、レシートを発行する。
記録機構４６は、ロール紙の印刷面に熱を与えることにより画像を記録するサーマルヘッド４６ａや、ロール紙を搬送する搬送機構４６ｂ、所定の位置でロール紙を切断する切断機構４６ｃ等を備えており、プリンター制御部４５の制御の下、これら機構や装置を動作させて、レシートを発行する。
プリンター基板２１には、プリンター側コネクター４２が設けられ、管理基板２０には、管理側コネクター４３が設けられており、これらプリンター側コネクター４２と、管理側コネクター４３とが接続されることにより、管理基板２０と、プリンター基板２１とが接続される。
本実施形態では、レシートの発行に際し、まず、フィスカルプリンター１６に接続されたホストコンピューター１５が、制御コマンドを生成し、生成した制御コマンドをＰＣコネクター２６ａを介してメイン制御部２５に出力する。制御コマンドが入力されたメイン制御部２５は、入力された制御コマンドをプリンター制御部４５に出力する。
【００１８】
サブ基板２２には、フィスカルメモリー５０と、フィスカルメモリー制御部５１とが実装されている。
フィスカルメモリー５０は、シリアルバスを採用した素子を利用した、いわゆるシリアルフラッシュメモリーである。周知の通り、シリアルフラッシュメモリーは、ＮＡＮＤ型フラッシュメモリーと比較して、記憶したデータの信頼性が高く、かつ、データの書込み可能回数が多い、という特徴がある。
フィスカルメモリー５０には、フィスカル書込日時データ５２、及び、日計売上データ５３が記憶されるが、これらについては後述する。
フィスカルメモリー５０において、日計売上データ５３及びこれに付随するデータが書き込まれる記憶領域である。日計売上データ記憶領域５０ａ、及び、納税者番号記憶領域５０ｂは、ソフトウェア的、及び／又は、ハードウェア的な手段によって、データの書き込み後、当該書き込まれたデータの書き換えができないメモリーとして機能する。すなわち、記憶領域上の１つのアドレスが指し示す領域に対して１度しかデータを書き込めない。これにより、フィスカルメモリー５０に書き込まれたフィスカルデータが後から編集されることが防止され、フィスカルメモリー５０に記憶されたフィスカルデータ対する改ざんが防止されている。
フィスカルメモリー制御部５１は、プログラム可能な論理回路を書き込んだデバイスであるＣＰＬＤ（Complex programmable logic device）を備え、メイン制御部２５の制御の下、フィスカルメモリー５０に対してデータの読み書き、消去を行う。
これらフィスカルメモリー５０、及び、フィスカルメモリー制御部５１は、エポキシ樹脂によってサブ基板２２に封止されており、例えば、フィスカルメモリー５０がサブ基板２２から物理的に取り外された上で、フィスカルメモリー５０に記憶されたデータが改ざんされることが防止されている。
【００１９】
次いで、ＥＪメモリー３１に記憶される書込レシートデータ５４、及び、フィスカルメモリー５０に記憶される日計売上データ５３について説明する。上述したように、これらデータは、フィスカルデータに該当する。
書込レシートデータ５４とは、フィスカルプリンター１６によって発行されるレシートに記録される情報を示すデータであって、記憶すべきデータとして予め定められているデータのことである。例えば、レシートに、顧客が購入した商品毎に、商品を示す情報や、商品の単価を示す情報、当該商品を購入した個数を示す情報、各商品の購入に係る代金を示す情報、全ての商品の総購入代金を示す情報等が記録されている場合であって、これら情報を示すデータが記憶すべきデータとして予め定められている場合、これら情報を示すデータが書込レシートデータ５４に該当する。
上述したように、本実施形態では、フィスカルプリンター１６によってレシートを発行する場合、ホストコンピューター１５によって制御コマンドが生成され、この制御コマンドがメイン制御部２５に出力され、さらに、制御コマンドがメイン制御部２５からプリンター制御部４５に出力される。その際、メイン制御部２５は、制御コマンドから、書込レシートデータ５４として記憶すべき情報を抽出し、抽出したこれら情報に基づいて書込レシートデータ５４を生成し、生成した書込レシートデータ５４を、ＥＪメモリー制御部３２を制御して、ＥＪメモリー３１に記憶する。
本実施形態では、書込レシートデータ５４には、レシートにおける小計金額Ｔ１と、合計金額Ｔ２と、支払金額Ｔ３が含まれている。すなわち、上述したように、本実施形態に係るフィスカルプリンター１６が発行するレシートには、小計金額Ｔ１と、合計金額Ｔ２、及び、支払金額Ｔ３が記録されているが、メイン制御部２５は、制御コマンドから、少なくともこれら３つの情報を抽出し、書込レシートデータ５４としてＥＪメモリー３１に記憶する。
【００２０】
ここで、メイン制御部２５は、ＥＪメモリー３１に書込レシートデータ５４を書き込む際、ＲＴＣ３０から現在日時（日付＋時刻）を示すデータを取得し、取得したデータに基づいて日時を示すデータであるＥＪ書込日時データ５５を生成し、書込レシートデータ５４と、ＥＪ書込日時データ５５とを対応付けて書き込む。つまり、書込レシートデータ５４のそれぞれは、ＥＪメモリー３１に書き込まれた日時を示すデータであるＥＪ書込日時データ５５と対応づけてＥＪメモリー３１に記憶される。
さらに、メイン制御部２５は、書込レシートデータ５４を書き込む際、書込レシートデータ５４を元データとして、所定のハッシュ関数に基づいて、ハッシュ値を求め、求めたハッシュ値をフィスカルプリンター１６固有の秘密鍵で暗号化することによりデジタル署名たるＥＪデジタル署名５６を生成し、書込レシートデータ５４と、ＥＪデジタル署名５６とを対応付けて書き込む。つまり、書込レシートデータ５４のそれぞれは、各データに基づいて生成されるＥＪデジタル署名５６と対応付けてＥＪメモリー３１に記憶される。
フィスカルデータ読出装置４０や、その他のフィスカルプリンター１６に記憶されたフィスカルデータの調査、検査を行う装置（例えば、政府が管理するサーバー装置）は、各フィスカルプリンター１６がＥＪデジタル署名５６を生成する際に使用するハッシュ関数を管理すると共に、各フィスカルプリンター１６の秘密鍵に対応する公開鍵を管理しており、ある１のフィスカルプリンター１６から受信した書込レシートデータ５４と、対応するＥＪデジタル署名５６とに基づいて、書込レシートデータ５４に対する改ざんを検出可能である。
なお、ＥＪ書込日時データ５５と、書込レシートデータ５４とを対応づけて記憶する１つの理由は、国によっては、法律や、規則によりそのことが義務づけられているからである。
【００２１】
日計売上データ５３とは、フィスカルプリンター１６によるレシートの発行が行われた会計によって得た「１日」の総売上のことである。「１日」とは、本実施形態では、情報処理システム１が適用された店舗における開店から閉店までの期間のことである。
つまり、集計データは、レシートに含まれる会計情報（売上金額）を集計した情報に関するデータである。
ホストコンピューター１５は、レジカウンターにおいて行われる会計ごとにフィスカルプリンター１６を制御してレシートを発行すると共に、会計ごとの売上金額（＝レシートにおける支払金額Ｔ３）を累積的に記憶する。そして、ホストコンピューター１５は、店舗の閉店後、所定のタイミング（例えば、担当者の指示があったタイミングや、所定の時刻に至ったタイミング）で、累積的に記憶した会計ごとの売上金額に基づいて、対応するフィスカルプリンター１６に係る「１日」における総売上を計算し、計算した総売上に基づいて、日計売上データ５３を生成し、生成した日計売上データ５３をメイン制御部２５に出力する。日計売上データ５３が入力されると、メイン制御部２５は、フィスカルメモリー制御部５１を制御し、フィスカルメモリー５０の所定の記憶領域に日計売上データ５３を書き込む。
ここで、メイン制御部２５は、フィスカルメモリー５０に日計売上データ５３を書き込む際、ＲＴＣ３０に現在日時を示すデータを出力させ、このデータに基づいて、書き込みを行った日時を取得し、取得した日時を示すデータであるフィスカル書込日時データ５２（集計データ）と、日計売上データ５３とを対応づけた状態で、フィスカルメモリー５０に日計売上データ５３を書き込む。つまり、日計売上データ５３のそれぞれは、フィスカルメモリー５０に書き込まれた日時を示すデータであるフィスカル書込日時データ５２と対応づけてフィスカルメモリー５０に記憶される。
さらに、メイン制御部２５は、日計売上データ５３を書き込む際、日計売上データ５３に基づいて、デジタル署名たるフィスカルデジタル署名５８を生成し、日計売上データ５３と、フィスカルデジタル署名５８とを対応付けて書き込む。つまり、日計売上データ５３のそれぞれは、各データに基づいて生成されるフィスカルデジタル署名５８と対応付けてフィスカルメモリー５０に記憶される。
本例では、フィスカルデジタル署名５８を生成する際に使用するハッシュ関数、及び、秘密鍵は、ＥＪデジタル署名５６を生成する際に使用するものと同一であるものとするが、別々であってもよい。
このように、本実施形態では、フィスカル書込日時データ５２と、日計売上データ５３とを対応づけて記憶するが、これは、国によっては、法律や、規則によりそのことが義務づけられているからである。
【００２２】
一方、ホストコンピューター１５は、ホスト制御部４４を備えている。ホスト制御部４４は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路を備え、ホストコンピューター１５の各部を中枢的に制御するものであり、アプリケーション実行部４４ａ、及び、プリンタードライバー実行部４４ｂを備えている。
アプリケーション実行部４４ａは、ホストコンピューター１５が備える所定の記憶部に記憶されたアプリケーションプログラムを読み出して実行することにより、発行するレシートに記録すべき情報を含んだアプリ出力データを生成し、生成したアプリ出力データをプリンタードライバー実行部４４ｂに出力する。例えば、アプリケーション実行部４４ａは、図示せぬバーコードリーダーからの入力値に基づいて、顧客が購入した商品の商品コードを特定するとともに、所定のデータベースにアクセスし、商品コードを利用して当該商品の単価や、商品名を取得する等して、上述した小計金額、合計金額、及び、支払金額を含む各種情報を取得し、取得した情報に基づいて、アプリ出力データを生成する。
プリンタードライバー実行部４４ｂは、ホストコンピューター１５が備える所定の記憶部に記憶されたプリンタードライバーを読み出して実行することにより、アプリケーション実行部４４ａから入力されたアプリ出力データに基づいて、フィスカルプリンター１６のコマンド仕様に準拠して、フィスカルプリンター１６にレシートの発行に係る一連の動作を行わせる制御コマンドを生成し、フィスカルプリンター１６に出力する。
制御コマンドには、例えば、画像の記録の開始を指示するコマンドや、サーマルヘッド４６ａを駆動させることを指示するコマンド、ロール紙を搬送方向に所定量だけ送ることを指示するコマンド、切断機構４６ｃによりロール紙の切断を指示するコマンド等の各種コマンドが含まれている。
【００２３】
ところで、上述したように、本実施形態に係るフィスカルプリンター１６は、動作モードとして、ファームウェア書換モードを備えており、当該モードに移行している間でのみ、ファームウェアの書き換えが可能となっている。そして、ファームウェア書換モードへの移行を許可する状態と、許可しない状態とを切り替えるディップスイッチ３５が管理基板２０に実装されており、ファームウェア書換モードへの移行を許可する状態の場合にのみ、ファームウェア書換モードへの移行が可能である。このディップスイッチ３５は、上述したように、専門的な知識を有さない第三者がアクセスし難い場所に設けられており、第三者による不正の目的でのファームウェアの書き換えが効果的に抑制されている。
このように、フィスカルプリンター１６は、店舗等に設置され、フィスカルデータに係る処理を実行する装置として機能している状況では、ファームウェアの不正な書き換えが的確に防止されている。
一方で、フィスカルプリンター１６は、その出荷前の製造段階では、プログラム修正やテストに対応するため、容易にファームウェアの書き換えを行えるようにしたいとするニーズがある。仮に、製造段階において、ファームウェアの書き換えを行なう度に、ディップスイッチ３５を切り替えを要することとした場合、ディップスイッチ３５は、アクセスしがたい場所に設けられているため、製造段階における効率的な作業を阻害するからである。
以上を踏まえ、フィスカルプリンター１６は、以下の処理を実行する。
【００２４】
まず、本実施形態に係るフィスカルプリンター１６が店舗等に設置され、フィスカルデータに係る処理を行なう装置として機能する前に行なわれる作業について説明する。当該作業が行なわれることが、後に説明するフィスカルプリンター１６の動作の前提条件となる。
本実施形態に係るフィスカルプリンター１６は、以下の国、地域に設置されることが想定された装置である。すなわち、国、地域に係る政府、その他の機関によって、固有の納税者番号が付与され、付与された納税者番号を示すデータ（所定の情報。以下、「納税者番号データＤ１」という。）がフィスカルプリンター１６に記憶されている場合にのみ、当該フィスカルプリンター１６が、フィスカルデータの記憶を含むフィスカルデータに係る処理を実行できる旨の定めが法律（例えば、いわゆるフィスカル法）等によって決められている国、地域である。この納税者番号は、政府等が定める基準に適合した適法なフィスカルプリンター１６のみに付与される。
そして、フィスカルプリンター１６が出荷された後、店舗等に設置されてフィスカルデータに係る処理を行なう装置として機能する前に、政府、その他の機関により納税者番号が付与される。付与された納税者番号に係る納税者番号データは、ホストコンピューター１５や、フィスカルデータ読出装置４０、政府等が管理するサーバー装置等の制御の下、フィスカルメモリー５０に形成された納税者番号記憶領域５０ｂに記憶される。
このように、フィスカルプリンター１６には、出荷後、店舗において使用される前に、納税者番号データＤ１が記憶されるが、このことを換言すれば、フィスカルプリンター１６が出荷前の製造段階にある場合は、政府等により納税者番号が付与されておらず、従って、納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶されていない、ということになる。
フィスカルプリンター１６のメイン制御部２５は、ホストコンピューター１５によってレシートの発行や、フィスカルデータの記憶が指示された場合は、納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶されているか否かを判別し、記憶されていない場合は、処理を実行しない構成となっている。このような構成により、納税者番号データＤ１が記憶されていない状態で、フィスカルプリンター１６がフィスカルデータに係る処理を実行することが防止されている。
上述したように、納税者番号記憶領域５０ｂは、ソフトウェア的、及び／又は、ハードウェア的な手段によって、データの書き込み後、当該書き込まれたデータの書き換えができない記憶領域である。このため、一旦、納税者番号記憶領域５０ｂに納税者番号データＤ１が書き込まれた後は、当該データの改変を行なうことはできない。また、本実施形態では、納税者番号データＤ１を専用のメモリーに記憶するのではなく、日計売上データ５３を記憶するフィスカルメモリー５０に記憶する。これにより、既設のフィスカルメモリー５０を利用して、納税者番号データＤ１を、データの書き込み後、書き込んだデータの書き換えができない記憶領域に適切に記憶させることができる。
なお、納税者番号データＤ１を、このような書き換えが不可能な記憶領域に記憶すべき旨が、法律等により定められている場合もある。
【００２５】
図２は、フィスカルプリンター１６の動作、特に、ファームウェア書換モードへの移行が指示された場合の動作を示すフローチャートである。
まず、フィスカルプリンター１６のメイン制御部２５は、ホストコンピューター１５や、フィスカルデータ読出装置４０、通信モジュール３７を介した通信が可能なサーバー装置等の外部の機器から、ファームウェア書換モードへの移行を指示する特定の制御コマンドが入力されたか否かを監視する（ステップＳＡ１）。
このように、本実施形態では、ファームウェア書換モードへの移行の指示は、接続された外部機器からの制御コマンドによって行なわれる。この構成のため、ディップスイッチ３５の適切な切り換え、及び、外部機器からの特定の制御コマンドの入力があって初めて、ファームウェアの書き換えを行なうモードへの移行が可能となり、ディップスイッチ３５の位置を知っている第三者であっても、上記特定の制御コマンドのデータ構造や、パラメーターの規則等を知らない者は、ファームウェアの書き換えを行えず、より効果的にファームウェアの不正な書き換えを抑制できる。
特定の制御コマンドの入力があった場合（ステップＳＡ１：ＹＥＳ）、メイン制御部２５は、納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶されているか否かを判別する（ステップＳＡ２）。
納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶されていない場合（ステップＳＡ２：ＮＯ）、メイン制御部２５は、動作モードを、ファームウェア書換モードへ移行する（ステップＳＡ３）。
このように、本実施形態では、納税者番号データＤ１が記憶されていない場合は、ディップスイッチ３５の状態を判別することなく、すなわち、ディップスイッチ３５の状態にかかわらず、ファームウェア書換モードへの移行の指示に応じて、ファームウェア書換モードに移行する。これは、以下の理由による。
すなわち、納税者番号データＤ１が記憶されていない、ということは、上述したとおり、フィスカルプリンター１６に納税者番号が付与されておらず、フィスカルプリンター１６が店舗等においてフィスカルデータに係る処理を行なう装置として機能している状況ではない、ということである。換言すれば、フィスカルプリンター１６は、出荷前の製造段階を含む状況にある。このような状況下では、フィスカルデータの改ざんといった事態は生じ得ないため、本実施形態に係るフィスカルプリンター１６では、ディップスイッチ３５の状態にかかわらず、ファームウェア書換モードへの移行の指示に応じて、ファームウェア書換モードに移行し、これにより、製造段階における作業の大幅な効率化を図っている。
【００２６】
一方、ステップＳＡ２において、納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶されていると判別した場合（ステップＳＡ２：ＹＥＳ）、メイン制御部２５は、ディップスイッチ３５がオンか否か判別する（ステップＳＡ４）。
ディップスイッチ３５がオンされている場合は（ステップＳＡ４：ＹＥＳ）、メイン制御部２５は、動作モードをファームウェア書換モードへ移行する（ステップＳＡ３）。上述したように、ディップスイッチ３５は、フィスカルプリンター１６に関する専門的な知識を有さない第三者が操作し難い位置に設けられているため、ディップスイッチ３５がオンされた状態で、ファームウェア書換モードへの移行を指示する特定の制御コマンドの入力があった場合は、正当な権限を有する者によって正当にファームウェアの書き換えが行なわれようとしている蓋然性が非常に高い。
一方、ステップＳＡ４において、ディップスイッチ３５がオンではないと判別した場合（ステップＳＡ４：ＮＯ）、メイン制御部２５は、動作モードをファームウェア書換モードへ移行することなく（ステップＳＡ５）、処理を終了する。これにより、ディップスイッチ３５の切り替えを行えない第三者が不正の目的を持ってファームウェアの書き換えを行なうことが適切に防止される。
【００２７】
以上説明したように、本実施形態に係るフィスカルプリンター１６（情報処理装置）は、データの書き込み後、書き込んだデータの書き換えができない記憶領域である納税者番号記憶領域５０ｂに納税者番号データＤ１（所定の情報）が記憶される前は、フィスカルデータに係る処理を実行不可能とする一方、納税者番号データＤ１が記憶された後は、フィスカルデータに係る処理を実行可能な構成となっている。また、フィスカルプリンター１６の管理基板２０には、ファームウェア書換モードへの移行を許可する状態と、許可しない状態とを切り替えるディップスイッチ３５が実装されている。そして、フィスカルプリンター１６のメイン制御部２５は、ファームウェアの書き換えを行うモードへの移行の指示があった場合、納税者番号記憶領域５０ｂに納税者番号データＤ１が記憶されているか否か判別し、記憶されていない場合は、ディップスイッチ３５の状態にかかわらず、動作モードをファームウェア書換モードへ移行する。
この構成によれば、フィスカルプリンター１６が店舗等においてフィスカルデータに係る処理を行う装置として機能している状況では、ディップスイッチ３５の切り替えによってファームウェア書換モードへの移行を許可する状態となっている場合にのみ、ファームウェア書換モードへの移行が可能となり、ファームウェアの不正な書き換えを抑制できる。その上で、製造段階を含む、フィスカルプリンター１６がフィスカルデータに係る処理を行なう装置として機能していない状況では、ディップスイッチ３５の状態にかかわらず、ファームウェア書換モードへ移行できるため、製造段階におけるファームウェアの容易な書き換えを実現でき、製造段階における作業の効率化を実現できる。すなわち、フィスカルプリンター１６の状況に応じて、ファームウェアの書き換えを適切に制限できる。
さらに、納税者番号データＤ１は、データの書込み後、書き込んだデータの書き換えができない記憶領域である納税者番号記憶領域５０ｂに記憶されるため、一旦、フィスカルプリンター１６がフィスカルデータに係る処理を行なう装置として機能した後は、ディップスイッチ３５の切り替えによってファームウェア書換モードへの移行を許可する状態となっている場合にのみ、ファームウェア書換モードへの移行が可能となり、より効果的にファームウェアの不正な書き換えを抑制できる。
【００２８】
また、本実施形態では、ディップスイッチ３５は、装置本体のケース内に設けられた管理基板２０（制御回路）に実装されている。より具体的には、ディップスイッチ３５は、管理基板２０の裏側であって、物理的なアクセスが非常にしにくい場所、例えば、管理基板２０を適切な手順によって取り外して初めて露出する場所等に設けられている。
これにより、フィスカルプリンター１６に関する専門的な知識を有さない第三者が不正の目的で、ディップスイッチ３５を切り替えることが抑制されており、第三者が不正の目的で、動作モードをファームウェア書換モードへ移行させた上でファームウェアの書き換えを行なうことが抑制されている。すなわち、上記構成によれば、装置本体のケースを取り外した上で、回路基板を露出して初めてディップスイッチ３５を操作できる。これにより、専門的な知識を有していない第三者がディップスイッチ３５を操作することを抑制でき、より効果的にファームウェアの不正な書き換えを抑制できる。
【００２９】
また、本実施形態では、フィスカルデータとしての日計売上データ５３が記憶されるメモリーであるフィスカルメモリー５０に、納税者番号データＤ１が記憶される。
この構成によれば、フィスカルデータ、及び、納税者番号データＤ１の双方が、データの書き込み後、書き込んだデータの書き換えができない記憶領域に記憶されるため、それぞれについて専用の記憶領域を設ける場合と比較してコストを削減しつつ、双方のデータが後に改ざんされることを防止できる。
【００３０】
また、本実施形態では、ファームウェア書換モードへの移行の指示は、接続された外部機器からの制御コマンドによって行われる。
この構成のため、ディップスイッチ３５の適切な切り換え、及び、外部機器からの特定の制御コマンドの入力があって初めて、ファームウェアの書き換えを行なうモードへの移行が可能となり、ディップスイッチ３５の位置を知っている第三者であっても、上記特定の制御コマンドのデータ構造や、パラメーターの規則等を知らない者は、ファームウェアの書き換えを行えず、より効果的にファームウェアの不正な書き換えを抑制できる。
【００３１】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、フィスカル情報（フィスカルデータ）として、書込レシートデータ５４と、フィスカル書込日時データ５２とを例示したが、フィスカル情報がこれらデータに限られないことは言うまでもない。また例えば、図１に示す各機能ブロックはハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。また、各機能ブロックの機能を、外部接続される別の装置に持たせるようにしてもよく、また、説明した各種動作について、外部接続される記憶媒体に記憶させたプログラムを実行することにより、実行するようにしてもよい。
【符号の説明】
【００３２】
１…情報処理システム、１５…ホストコンピューター（外部機器）、１６…フィスカルプリンター（情報処理装置）、２０…管理基板、２５…メイン制御部（制御部）、３５…ディップスイッチ（スイッチ）、３７…通信モジュール、４０…フィスカルデータ読出装置（外部機器）、５０…フィスカルメモリー（記憶領域）、５０ｂ…納税者番号記憶領域（記憶領域）、５３…日計売上データ（フィスカルデータ）、５４…書込レシートデータ（フィスカルデータ）、Ｄ１…納税者番号データ（所定の情報）。
【図１】
2014115803.tif 000003
【図２】
2014115803.tif 000004