(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024060311
(43)【公開日】2024-05-02
(54)【発明の名称】決済端末におけるプログラムのダウンロード方法及び決済端末
(51)【国際特許分類】
G06F 8/65 20180101AFI20240424BHJP
G06F 9/4401 20180101ALI20240424BHJP
G06F 21/57 20130101ALI20240424BHJP
G06F 21/60 20130101ALI20240424BHJP
【FI】
G06F8/65
G06F9/4401
G06F21/57 320
G06F21/60 360
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022167613
(22)【出願日】2022-10-19
(71)【出願人】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】横水 綾一
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA34
5B376CA36
5B376CA88
(57)【要約】
【課題】メモリ容量、特に揮発性メモリの容量が小さい決済端末においても。ファームウエアやOSなどのその決済端末に格納されるプログラムを、十分なセキュリティを保ちつつオンラインで更新する。
【解決手段】決済端末の電源投入時にタッチスクリーンに対して特定の操作が実行されたときに(ステップ104;はい)、プログラムサーバからメモリデータ書き換え用プログラムを揮発性メモリにダウンロードし(ステップ105)、CPUにメモリデータ書き換え用プログラムを実行させて更新処理を実行する(ステップ106)。更新処理では、少なくとも一部が暗号化された更新対象のプログラムをプログラムサーバから揮発性メモリにダウンロードして格納し、更新対象のプログラムにおける暗号化されている部分を復号し、そののち、揮発性メモリに格納されている更新対象のプログラムによって不揮発性メモリ内のプログラムを書き換える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プログラムに基づいて動作するプロセッサと不揮発性メモリと揮発性メモリとタッチスクリーンとを備えたコンピュータ機器として構成されてオンライン決済を実行する決済端末におけるプログラムのダウンロード方法であって、
前記決済端末の電源投入時に、前記タッチスクリーンに対する特定の操作が実行されたか否かを判定する判定工程と、
前記特定の操作が実行されたと判定したときに、プログラムサーバからメモリデータ書き換え用プログラムを前記揮発性メモリにダウンロードするダウンロード工程と、
前記ダウンロード工程ののち、前記プロセッサに前記メモリデータ書き換え用プログラムを実行させることにより、少なくとも一部が暗号化された更新対象のプログラムを前記プログラムサーバから前記揮発性メモリにダウンロードして格納し、前記更新対象のプログラムにおいて暗号化されている部分を復号し、そののち、前記揮発性メモリに格納されている前記更新対象のプログラムによって前記不揮発性メモリ内のプログラムを書き換える更新工程と、
を有するダウンロード方法。
【請求項2】
前記判定工程において前記特定の操作が実行されていないと判定したときに、前記プロセッサが前記不揮発性メモリ内のプログラムに基づいて前記決済端末を通常起動させる、請求項1に記載のダウンロード方法。
【請求項3】
前記決済端末は前記通常起動したのちに決済サーバと通信して前記オンライン決済を実行する、請求項2に記載のダウンロード方法。
【請求項4】
前記決済端末が接続するネットワークにおいて前記プログラムサーバと前記決済サーバとが独立して設けられている、請求項3に記載のダウンロード方法。
【請求項5】
前記電源投入時に、前記プロセッサに内蔵される不揮発性記憶部に格納されている第1ブートローダが起動されて前記第1ブートローダは前記不揮発性メモリに格納されている第2ブートローダを起動し、
前記判定工程及び前記ダウンロード工程は前記第2ブートローダによって実行される、請求項1または2に記載のダウンロード方法。
【請求項6】
前記更新工程において、前記更新対象のプログラムが複数の書き換えデータに分割されて1回分の書き換えデータを前記揮発性メモリにダウンロードして格納し、格納された前記1回分の書き換えデータによって前記不揮発性メモリ内の前記プログラムを書き換えることを、前記更新対象のプログラムの全体によって前記不揮発性メモリ内の前記プログラムが書き換えられるまで繰り返す、請求項1または2に記載のダウンロード方法。
【請求項7】
前記更新工程の完了後に前記決済端末をシャットダウンまたは再起動させる、請求項1または2に記載のダウンロード方法。
【請求項8】
決済サーバに接続してオンライン決済を行う決済端末であって、
プログラムに基づいて動作するプロセッサと、
前記プロセッサに接続する不揮発性メモリ、揮発性メモリ及びタッチスクリーンと、
を有し、
前記不揮発性メモリは、前記決済端末の電源投入後に前記プロセッサが実行するブートローダと、前記オンライン決済の実行のために必要なプログラムとを格納し、
前記ブートローダは、前記プロセッサに、前記タッチスクリーンに対する特定の操作が実行されたか否かを判定する判定処理と、前記特定の操作が実行されたと判定したときにプログラムサーバからメモリデータ書き換え用プログラムを前記揮発性メモリにダウンロードするダウンロード処理と、前記メモリデータ書き換え用プログラムを起動する起動処理と、を実行させ、
前記メモリデータ書き換え用プログラムは、前記プロセッサに、少なくとも一部が暗号化された更新対象のプログラムを前記プログラムサーバから前記揮発性メモリにダウンロードして格納する処理と、前記更新対象のプログラムにおいて暗号化されている部分を復号する処理と、前記揮発性メモリに格納されている前記更新対象のプログラムによって前記不揮発性メモリ内の前記プログラムを書き換える処理とを実行させる、決済端末。
【請求項9】
前記ブートローダは、前記判定処理において前記特定の操作が実行されていないと判定したときに、前記プロセッサに、前記不揮発性メモリ内の前記オンライン決済の実行のために必要な前記プログラムを通常起動させる、請求項8に記載の決済端末。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オンライン決済などに使用される決済端末に関し、特に、決済端末へのプログラムのダウンロード方法と、そのようなダウンロード方法を実行可能である決済端末とに関する。
【背景技術】
【0002】
店舗などの販売場所においてオンライン決済を行うために、ネットワークを介して決済サーバに接続する決済端末が使用される。決済端末は、例えば、入力を行うためのタッチスクリーンを備えたいわゆる組み込み型コンピュータ機器として構成される。オンライン決済ではクレジットカードやプリペイドカード、二次元コードなどの認証媒体が使用されることが多いから、決済端末は、認証媒体からデータを読み出すリーダ部を備えていてもよく、さらに、タッチスクリーンとは独立して設けられたディスプレイなどを備えていてもよい。決済端末では、コンピュータとして機能するための最低限の構成、すなわち、プログラムに基づいて動作するCPU(中央処理ユニット)などのプロセッサと、RAM(ランダムアクセスメモリ)などの揮発性メモリと、ROM(読み出し専用メモリ)あるいはフラッシュメモリなどの不揮発性メモリとがモジュール基板に実装され、このモジュール基板がメイン基板に取り付けられる構成となっていることが一般的である。メイン基板には、ネットワークやタッチスクリーンなどとの接続のためのI/O(入出力)インタフェースなどが設けられる。
【0003】
決済端末はコンピュータ機器であるから、それを動作させるための例えばファームウエアやOS(オペレーティングシステム)などのコンピュータプログラムが必要であり、それらのプログラムは不揮発性メモリに書き込まれる。機能の改善などのために、決済端末に既に書き込まれているプログラムを新バージョンのプログラムに書き換えできることが望まれている。しかしながら、セキュリティ確保の観点から決済端末ではメイン基板からモジュール基板を取り外せない構造となってることが多く、新バージョンのプログラムを不揮発性メモリに直接書き込むことは難しい。また、コンピュータ機器としての決済端末に設けられるメモリ、特に揮発性メモリの容量は小さく、ネットワーク経由でプログラムの更新を行うために対象のプログラムをいったん揮発性メモリに格納しようとしても、揮発性メモリにはプログラム全体を格納することができないことがある。このような課題を解決するものとして特許文献1は、ファームウエアに基づいて動作するコンピュータ機器において、CPUなどのプロセッサを起動する起動プログラムとサーバ接続用の通信プログラムとを含む起動用ファームウエアを記憶した第1ROMと、サーバからダウンロードしたデータを一時記憶するRAMと、そのコンピュータ機器の動作を制御する制御用ファームウエアを記憶する第2ROMとを設け、第2ROMに記憶された制御用ファームウエアの消去と書き込みを行うためのプログラムと新バージョンの制御用ファームウエアとをサーバからダウンロードすることを開示している。また特許文献1は、制御用ファームウエアのダウンロードに際し、制御用ファームウエアを分割してダウンロードしてRAMに格納するとともにRAMから第2ROMへの書込みを並行して実行し、これにより、RAMの容量よりも大きなサイズの制御用ファームウエアを第2ROMに書き込めるようにしている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された技術は、RAMなどの揮発性メモリの容量が小さいときにプログラムの更新を可能にする技術であるが、これを決済端末に適用した場合、セキュリティ確保の点で向上の余地がある。
【0006】
本発明の目的は、メモリ容量、特に揮発性メモリの容量が小さい決済端末にプログラムをダウンロードするときに適用できて、十分なセキュリティを備えるダウンロード方法と、そのようなタウンロード方法を実行可能な決済端末とを提供することにある。
【課題を解決するための手段】
【0007】
一態様のダウンロード方法は、プログラムに基づいて動作するプロセッサと不揮発性メモリと揮発性メモリとタッチスクリーンとを備えたコンピュータ機器として構成されてオンライン決済を実行する決済端末におけるプログラムのダウンロード方法であって、決済端末の電源投入時に、タッチスクリーンに対する特定の操作が実行されたか否かを判定する判定工程と、特定の操作が実行されたと判定したときに、プログラムサーバからメモリデータ書き換え用プログラムを揮発性メモリにダウンロードするダウンロード工程と、ダウンロード工程ののち、プロセッサにメモリデータ書き換え用プログラムを実行させることにより、少なくとも一部が暗号化された更新対象のプログラムをプログラムサーバから揮発性メモリにダウンロードして格納し、更新対象のプログラムにおいて暗号化されている部分を復号し、そののち、揮発性メモリに格納されている更新対象のプログラムによって不揮発性メモリ内のプログラムを書き換える更新工程と、を有する。
【0008】
一態様のダウンロード方法では、更新対象のプログラムの少なくとも一部を暗号化するとともに、復号処理も含めて決済端末におけるプログラムの書き換え処理を行うためのメモリデータ書き換え用プログラム自体もダウンロード対象として決済端末における通常動作時にはメモリデータ書き換え用プログラムに少なくとも一部が決済端末中には存在しないようにすることにより、更新対象のプログラムの不正な解析や、不正なプログラムによる不揮発性メモリ内のプログラムデータの書き換えを抑制することができ、決済端末内のプログラムを更新するときのセキュリティを高めることができる。また、決済端末の電源投入時にタッチスクリーンに対する特定の操作が実行されたときにのみ更新処理を実行するので、この点でもセキュリティを向上させることができる。
【0009】
一態様のダウンロード方法では、判定工程において特定の操作が実行されていないと判定したときに、プロセッサが不揮発性メモリ内のプログラムに基づいて決済端末を通常起動させることが好ましい。このように構成すれば、電源投入時に特定の操作を実行するかどうかで通常起動と更新処理の実行とを選択でき、決済端末の保守性が向上する。また、通常起動したときは、決済端末は通常起動したのちに決済サーバと通信してオンライン決済を実行するように構成することによって、決済端末の操作性が向上する。決済端末が接続するネットワークにおいては、プログラムサーバと決済サーバとが独立して設けられていてもよい。これらのサーバを独立して設けることにより、プログラムサーバについては決済端末の製造事業者が運用し、決済サーバについては決済事業者が運用するといったサーバ運用主体の分離を行うことができる。
【0010】
一態様のダウンロード方法では、電源投入時に、プロセッサに内蔵された不揮発性記憶部に格納されている第1ブートローダが起動されて第1ブートローダが不揮発性メモリに格納されている第2ブートローダを起動し、判定工程及びダウンロード工程は第2ブートローダによって実行されるように構成することができる。このように構成することにより、通常動作用のプログラムの起動も含めてブートロータによって複雑な処理を行うことが可能になり、判定工程やダウンロード工程を実行するためのプログラムにおけるプログラムサイズの制限が緩和される。
【0011】
一態様のダウンロード方法では、更新工程において、更新対象のプログラムが複数の書き換えデータに分割されて1回分の書き換えデータを揮発性メモリにダウンロードして格納し、格納された1回分の書き換えデータによって不揮発性メモリ内のプログラムを書き換えることを、更新対象のプログラムの全体によって不揮発性メモリ内のプログラムが書き換えられるまで繰り返すことができる。このような構成を採用することによって、更新対象のプログラムのサイズに比べて揮発性メモリの容量が小さいときであっても、更新処理を実行することが可能になる。
【0012】
一態様のダウンロード方法では、更新工程の完了後に決済端末をシャットダウンまたは再起動させることができる。このように構成することにより、更新後のプログラムによって決済端末が確実に動作するようになるとともに、揮発性メモリに格納されていたメモリデータ書き換え用プログラムが確実に消去されるので、セキュリティが向上する。
【0013】
一態様の決済端末は、決済サーバに接続してオンライン決済を行う決済端末であって、プログラムに基づいて動作するプロセッサと、プロセッサに接続する不揮発性メモリ、揮発性メモリ及びタッチスクリーンと、を有し、不揮発性メモリは、決済端末の電源投入後にプロセッサが実行するブートローダと、オンライン決済の実行のために必要なプログラムとを格納し、ブートローダは、プロセッサに、タッチスクリーンに対する特定の操作が実行されたか否かを判定する判定処理と、特定の操作が実行されたと判定したときにプログラムサーバからメモリデータ書き換え用プログラムを揮発性メモリにダウンロードするダウンロード処理と、メモリデータ書き換え用プログラムを起動する起動処理と、を実行させ、メモリデータ書き換え用プログラムは、プロセッサに、少なくとも一部が暗号化された更新対象のプログラムをプログラムサーバから揮発性メモリにダウンロードして格納する処理と、更新対象のプログラムにおいて暗号化されている部分を復号する処理と、揮発性メモリに格納されている更新対象のプログラムによって不揮発性メモリ内のプログラムを書き換える処理とを実行させる。
【0014】
一態様の決済端末では、更新対象のプログラムの少なくとも一部を暗号化するとともに、復号処理も含めて決済端末におけるプログラムの書き換え処理を行うためのメモリデータ書き換え用プログラム自体もダウンロード対象として決済端末における通常動作時にはメモリデータ書き換え用プログラムに少なくとも一部が決済端末中には存在しないようにすることにより、更新対象のプログラムの不正な解析や、不正なプログラムによる不揮発性メモリ内のプログラムデータの書き換えを抑制することができ、決済端末内のプログラムを更新するときのセキュリティを高めることができる。また、決済端末の電源投入時であって通常動作のプログラムが起動する前にタッチスクリーンに対する特定の操作が実行されたときにのみ更新処理を実行するので、この点でもセキュリティを向上させることができる。
【0015】
一態様の決済端末では、ブートローダは、判定処理において特定の操作が実行されていないと判定したときに、プロセッサに、不揮発性メモリ内のプログラムを通常起動させることが好ましい。このように構成すれば、電源投入時に特定の操作を実行するかどうかで通常起動と更新処理の実行とを選択でき、決済端末の保守性が向上する。
【発明の効果】
【0016】
本発明によれば、メモリ容量、特に揮発性メモリの容量が小さい決済端末においても。ファームウエアやOSなどのその決済端末に格納されるプログラムを、十分なセキュリティを保ちつつオンラインで更新できるようになる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施の一形態の決済端末を示すブロック図である。
【
図2】決済端末の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
次に、本発明の実施の形態について、図面を参照して説明する。
図1は、本発明の実施の一形態の決済端末の構成を示すブロック図である。
図1に示す決済端末10は、ネットワーク30を介して決済サーバ31と接続してオンライン決済を実行するために用いられるものであり、入力のために利用者の指などによって操作されるタッチスクリーン12と、タッチスクリーン12とは独立に設けられて利用者に対して情報の提示を行うディスプレイ13と、認証媒体からデータを読み出すリーダ部14と、を備えている。認証媒体は、例えば、クレジットカードやプリペイドカード、二次元コードなどである。認証媒体がクレジットカードやプリペイドカードなどのカード媒体であるときは、そのカード媒体が磁気カードであるかICカードであるかに応じて、リーダ部14は磁気カードリーダあるいはICカードリーダとして構成される。認証媒体がQRコード(登録商標)などの二次元コードであるときは、リーダ部14は、二次元コードを読み取るカメラとして構成される。非接触型の近距離通信を行うスマートフォンやスマートウォッチなどを認証媒体として使用することもでき、そのような認証媒体が使用されるときは、リーダ部14としてはそのような認証媒体に適合したものが使用される。もちろんリーダ部14は、複数種類の認証媒体に対応できるように構成されていることが好ましい。
【0019】
決済端末10の本体の内部には、メイン基板15が設けられており、メイン基板15には、I/Oインタフェース16が設けられるとともに、モジュール基板20が取り付けられている。決済端末10はコンピュータ機器であるから、モジュール基板20には、コンピュータ機器として機能するための最低限の構成、すなわち、CPU21、不揮発性メモリ22、及び、RAMなどによって構成されてCPU21に接続する主記憶装置として機能する揮発性メモリ23が設けられている。CPU21は、プログラムに基づいて動作するプロセッサであり、CPU21の代わりにマイクロプロセッサやMPU(マイクロ処理ユニット)などが用いられてもよい。不揮発性メモリ22は、書き換え可能なROMやフラッシュメモリによって構成され、決済端末10を動作させるためのファームウエアやOS、各種のアプリケーションプログラムなども不揮発性メモリ22に格納される。不揮発性メモリ22は、コンピュータ機器としての決済端末における外部記憶装置としても機能する。モジュール基板20においてCPU21、不揮発性メモリ22及び揮発性メモリ23は、内部バス24を介して相互に接続している。CPU21は、1チップ構成のものであって、CPUあるいはマイクロプロセッサなどにおいて一般的に設けられる演算部25のほかに、ごく小容量の不揮発性の記憶領域である不揮発性記憶部26を備えている。
【0020】
モジュール基板20は、メイン基板15に対して接続部27を介して電気的に接続し、これにより、モジュール基板20の内部バス24もメイン基板15上のi/Oインタフェース16に電気的に接続する。I/Oインタフェース16は、タッチスクリーン12、ディスプレイ13及びリーダ部14に対するインタフェースを構成するとともに、ネットワーク30に対するネットワークインタフェースとしても機能する。接続部27には1対のコネクタを使用してメイン基板15からモジュール基板20を取り外し可能にすることもできるが、決済端末10におけるセキュリティの向上のために、接続部27においてモジュール基板20をメイン基板15にはんだ付けし、両者が容易には分離されないようにすることが好ましい。
【0021】
次に、決済端末10の動作、特に電源投入時の動作について説明する。決済端末10は、不揮発性メモリ22に格納されているファームウエアやOSをCPU21が実行することによって動作するが、電源投入時に直ぐにファームウエアやOSを実行することはできず、ファームウエアやOSを実行させるための環境を整えたのちにファームウエアやOSの実行を開始する必要がある。そのために、ブートローダと呼ばれるプログラムが用意されてCPU21はまずブートローダを実行する。
図1に示した決済端末10では、ブートローダは、CPU21の不揮発性記憶部26に格納された第1ブートローダと、不揮発性メモリ22に格納された第2ブートローダの2つに分割されている。第1ブートローダは、電源オンによりCPU21が立ち上がったときやCPU21がリセットされたときにまず実行されて、各メモリの初期化などの最低限の処理を実行した後に、第2ブートローダを起動する。第2ブートローダを実行することによりCPU21は、決済端末10の環境設定などを行った後にファームウエアやOSを起動する。本実施形態の決済端末10では、不揮発性メモリ22に格納されているファームウエアやOSなどのプログラムをファームウエアやOSの起動前にオンラインで更新可能としている。そのため、第2ブートローダには、ファームウエアやOSのオンラインでの更新を行うためのプログラムコードも含まれている。ファームウエアやOSの起動前にファームウエアやOSなどのプログラムをオンラインで更新することを更新処理と呼び、決済端末10の処理モードのうち更新処理を実行するモードのことを更新モードと呼ぶ。
【0022】
図2は、決済端末10の動作を示すフローチャートである。決済端末10の電源が投入されると、まずステップ101において、CPU21内の不揮発性記憶部26に格納された第1ブートローダが起動する。第1ブートローダを実行することによりCPU21は、ステップ102においてメモリの初期化を行ったのち、ステップ103において第2ブートローダを起動する。ステップ102のメモリの初期化では、CPU21のメモリ空間内の特定のアドレスに不揮発性メモリ22及び揮発性メモリ23が割り当てられるとともに、電源投入により不定となっていた揮発性メモリ23の内容がクリアされる。
【0023】
ステップ103において第2ブートローダが起動すると、第2ブートローダを実行することによりCPU21は、ステップ104において、決済端末10に対して更新モードに移行するための操作が行われたか否かを判定する。更新モードに移行するための操作は、例えば、タッチスクリーン12に対する操作であり、決済端末10においてタッチスクリーン12に対しては通常行われないような操作であってあらかじめ定められている操作である。一例として、電源投入直後にタッチスクリーン12上で利用者が
図3において破線で示す軌跡に沿ってその指を移動させたときに、更新モードに移行する操作が行われたと判断することができる。あるいは、電源投入時にタッチスクリーン12に対して押圧などの特定の操作が行われているときも、更新モードに移行する操作が行われたと判断することができる。更新モードに移行するための操作が行われたときは。第2ブートローダに基づいてCPU21は、ステップ105において、ネットワーク30上のプログラムサーバ32に通信してメモリデータ書き換え用のプログラムをダウンロードし、そのプログラムを起動し、第2ブートローダとしての処理を終了する。その結果、次にCPU21は、ステップ106において後述する更新処理を実行し、その後、ステップ107において、決済端末10の電源をオフにする処理を実行する。これにより、決済端末10は電源断の状態となって一連の処理が終了する。
【0024】
ステップ104において更新モードに移行する操作が行われていないときは、第2ブートローダが所定に処理を終了した後に、ステップ111において、不揮発性メモリ22内のファームウエアあるいはOSにより決済端末10が通常通りに起動し、決済端末10は、ネットワーク30を介して決済サーバ31との間で決済用のデータを送受信できる状態となる。この状態ではCPU21は、ステップ112に示すように、決済端末10としての通常の決済処理を実行し、ステップ113において、利用者によって電源断(すなわちシャットダウン)が指示されたか否かを判定する。電源断が指示されていないときは、ステップ112に示す決済処理が繰り返される。一方、ステップ113において電源断が指示されているときは、CPU21は、ステップ107に移行して決済端末10の電源をオフにする処理を実行する。
【0025】
次に、更新処理について詳しく説明する。本実施形態において更新対象となるプログラムは、不揮発性メモリ22に格納されるプログラムのうち、第2ブートローダを除くものである。更新対象となるプログラムのサイズは、揮発性メモリ23の容量よりも大きくてプログラムサーバ32からの1回のダウンロードでは揮発性メモリ23には格納できないことがある。そこで本実施形態では、揮発性メモリ23に格納できるサイズとなるように更新対象となるプログラムを小サイズの複数のプログラムデータに分割して決済端末10にダウンロードする。更新対象のプログラムを分割して得られる小サイズのプログラムデータのことを書き換えデータと呼ぶ。そして更新処理では。1回分の書き換えデータをプログラムサーバ32からダウンロードして揮発性メモリ23に格納しこの格納された書き換えデータで不揮発性メモリ22を書き換えることを繰り返すことで、不揮発性メモリ22に格納されている更新対象のプログラムの全体が、新バージョンのプログラムで書き換えられるようにしている。また決済端末10としてセキュリティを確保する必要があることから、更新対象となるプログラムを暗号化し、暗号化されたプログラムが決済端末10にダウンロードされるようにする。プログラムの暗号化や暗号化されたプログラムの復号には演算時間がかかり、プログラムの更新処理の高速化の妨げとなるから、ダウンロードされるプログラムの全体ではなく一部を暗号化してもよい。更新対象のプログラムが上述したように複数の書き換えデータに分割されているのであれば、例えば、暗号化された書き換えデータと暗号化されていない書き換えデータとが交互にダウンロードされるようにして、全体としては更新対象のプログラムの約50%の部分が暗号化されてダウンロードされるようにしてもよい。
【0026】
このような本実施形態での更新処理を実現するために、更新処理に先立って決済端末10にダウンロードされるメモリデータ書き換え用プログラムは、プログラムサーバ32から書き換えデータを揮発性メモリ23にダウンロードして格納し、揮発性メモリ23に格納された書き換えデータを不揮発性メモリ22に転送して書き込むプログラム部分と、暗号化されていてかつ揮発性メモリに格納されている書き換えデータを復号するプログラム部分とから構成されている。そして、このようなメモリデータ書き換え用プログラムは、プログラムサーバ32から揮発性メモリ23にダウンロードされて揮発性メモリ23上に展開している状態でCPU21によって実行される。
【0027】
図4は、更新処理を示すフローチャートである。第2ブートローダによってメモリデータ書き換え用プログラムが揮発性メモリ23にダウンロードされると、ステップ121においてこのメモリデータ書き換え用プログラムが起動する。メモリデータ書き換え用プログラムを実行することによってCPU21は、例えばそのプログラムにおいて既に規定されているIPアドレスなどのネットワークアドレスを用いて、ステップ122においてプログラムサーバ32に接続する。そしてCPU21は、ステップ123において、1回分の書き換えデータをプログラムサーバ32から受信して揮発性メモリ23に格納し、書き換えデータが暗号化されているものであればステップ124においてその書き換えデータの復号を行う。その後、ステップ125において、CPU21は、揮発性メモリ23上の書き換えデータを不揮発性メモリ22に転送して不揮発性メモリ22内のプログラムを書き換える。そしてCPU21は、ステップ126において、更新対象のプログラムの全データの受信が完了したか否かを判定し、未受信であってダウンロードされてない書き換えデータがあるときは、次の書き換えデータに対して同様の処理を行うために、ステップ123から処理を繰り返す。一方、ステップ126において全ての書き換えデータを受信したと判定したときは、CPU21は、ステップ127において、プログラムサーバ32との通信を切断し、メモリデータ書き換え用プログラムの悪用を避けるために、ステップ128において揮発性メモリ23に格納されているメモリデータ書き換え用プログラムを消去して更新処理を終了させる。更新処理が終了すれば、
図2に示したように、CPU21は、ステップ107において決済端末10をシャットダウンさせる処理を実行する。なお更新処理ののちに決済端末10をシャットダウンさせるときは、電源断に引き続いて電源投入を行う再起動を行ってもよい。
【0028】
以上説明した更新処理において、メモリデータ書き換え用プログラムは揮発性メモリ23上にしか存在せず、かつ更新処理後はステップ107において電源断とするので、ステップ128を実行することなく更新処理後の電源断によってメモリデータ書き換え用プログラムが消去される構成としてもよい。プログラムを暗号化した状態で不揮発性メモリ22に格納し、そのプログラムを実行する時点で復号を行うする運用としたときは、メモリデータ書き換え用プログラムのうちの復号に関するプログラム部分を消去せずに揮発性メモリ23に常駐させたり不揮発性メモリ22に格納したりすることができる。
【0029】
本実施形態において、プログラムサーバ32は、例えば、ネットワーク上で動作するNFS(Network File System)で用いられるサーバとして構成することができる。
図1に示したものでは、ネットワーク30に決済サーバ31とプログラムサーバ32とが別々に設けられているが、決済サーバ31とプログラムサーバ32とを単一のサーバに集約することともできる。しかしながら、決済サーバ31は決済事業者が運営するのが一般的であってネットワーク上に複数存在する可能性があり、一方で、プログラムサーバ32が提供するプログラムは各決済端末10の機種に固有のものであることが想定されて決済端末10の製造事業者が運営に関わっていることが必要であるから、決済サーバ31とプログラムサーバ32とを別個に設けることが好ましい。
【0030】
以上説明した本実施形態の決済端末10では、セキュリティを保ちつつ、かつ決済端末10でのメモリ容量の制約を受けることなく、そのファームウエアやOSといったプログラムの更新を行うことができる。
【符号の説明】
【0031】
10…決済端末、12…タッチスクリーン、13…ディスプレイ、14…リーダ部、15…メイン基板、16…I/Oインタフェース、20…モジュール基板、21…CPU、22…不揮発性メモリ、23…揮発性メモリ、24…内部バス、25…演算部、26…不揮発性記憶部、27…接続部、30…ネットワーク。31…決済サーバ、32…プログラムサーバ。