(57)【要約】【課題】暗号化通信に必要となるデータをネットワーク経由でプリンタに安全にダウンロードできるようにする。【解決手段】外部機器と通信可能なプリンタであって、所定のコマンドを実行することで、前記プリンタに関する所定の処理を実行する処理実行手段と、処理実行手段が実行するコマンドのうち外部機器からデータを取得するコマンドを無効化する無効化手段と、所定のコード情報に基づく認証結果が成功か否か判定する判定手段と、判定手段による所定のコード情報に基づく認証結果が成功である場合、所定時間の間、上記コマンドを有効化する有効化手段と、を備えたプリンタである。【選択図】図４
2020042586.tif 000002
【特許請求の範囲】
【請求項１】
外部機器と通信可能なプリンタであって、
所定のコマンドを実行することで、前記プリンタに関する所定の処理を実行する処理実行手段と、
前記処理実行手段が実行するコマンドのうち外部機器からデータを取得する第１コマンドを無効化する無効化手段と、
所定のコード情報に基づく認証結果が成功か否か判定する判定手段と、
前記判定手段による認証結果が成功である場合、所定時間の間、前記第１コマンドを有効化する有効化手段と、
を備えたプリンタ。
【請求項２】
前記コード情報としてワンタイムパスワードを生成する生成手段と、
前記認証結果として、前記生成手段によって生成された前記ワンタイムパスワードの認証結果を取得する認証結果取得手段と、を備えた、
請求項１に記載されたプリンタ。
【請求項３】
前記外部機器から前記コード情報を取得するコード情報取得手段、を備え、
前記有効化手段は、前記コード情報取得手段によって取得された前記コード情報の認証結果が成功である場合に、前記外部機器からの前記第１コマンドを有効化する、
請求項１に記載されたプリンタ。
【請求項４】
操作入力に基づいて通信ポートを有効または無効に設定する設定手段、を備えた、
請求項１から３のいずれか１項に記載されたプリンタ。
【請求項５】
前記データは、暗号化通信を行うために必要となるデータである、
請求項１から４のいずれか１項に記載されたプリンタ。
【請求項６】
プリンタと情報処理装置との間の通信方法であって、
前記プリンタに関する所定の処理を実行するためのコマンドのうち外部機器からデータを取得する第１コマンドを無効化し、
所定のコード情報に基づく認証結果が成功か否か判定し、
前記認証結果が成功である場合、所定時間の間、前記第１コマンドを有効化する、
通信方法。
【請求項７】
外部機器と通信可能なプリンタにおいて、コンピュータに、
所定のコマンドを実行することで、前記プリンタに関する所定の処理を実行する処理実行手段と、
前記処理実行手段が実行するコマンドのうち外部機器からデータを取得する第１コマンドを無効化する無効化手段と、
所定のコード情報に基づく認証結果が成功か否か判定する判定手段と、
前記判定手段による認証結果が成功である場合、所定時間の間、前記第１コマンドを有効化する有効化手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、通信方法、および、プログラムに関する。
【背景技術】
【０００２】
従来、プリンタの印刷処理に関するセキュリティを向上させるために、印刷要求を行うクライアント端末とプリンタとの間の通信を暗号化することが知られている。例えば特許文献１に記載された印刷システムでは、プリンタは公開鍵証明書とこれに対応する秘密鍵とを保有し、ドキュメントサーバもしくはユーザクライアントからの要求に応じて公開鍵証明書に基づくプリンタ認証を行う、とされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２５９１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来のシステムにおいて、プリンタに記録される公開鍵証明書および秘密鍵等の暗号化通信に必要となるデータは、適時に更新することが通信のセキュリティを維持する上で好ましい。このとき、利便性の観点から、暗号化通信に必要となるデータをネットワーク経由でプリンタにダウンロードできるようにすることがもとめられる。
【０００５】
そこで、本発明は、暗号化通信に必要となるデータをネットワーク経由でプリンタに安全にダウンロードできるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明のある態様は、外部機器と通信可能なプリンタであって、所定のコマンドを実行することで、前記プリンタに関する所定の処理を実行する処理実行手段と、前記処理実行手段が実行するコマンドのうち外部機器からデータを取得する第１コマンドを無効化する無効化手段と、所定のコード情報に基づく認証結果が成功か否か判定する判定手段と、前記判定手段による所定のコード情報に基づく認証結果が成功である場合、所定時間の間、前記第１コマンドを有効化する有効化手段と、を備えたプリンタである。
【発明の効果】
【０００７】
本発明のある態様によれば、暗号化通信に必要となるデータをネットワーク経由でプリンタに安全にダウンロードできる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の印字システムの概略構成を示す図である。
【図２】実施形態の印字システムのブロック図である。
【図３】実施形態の印字システムにおいてプリンタが印字を行うときの動作を示すシーケンスチャートである。
【図４】実施形態の印字システムにおいてプリンタがサーバ証明書と秘密鍵の更新を行うときの動作を示すシーケンスチャートである。
【図５】実施形態のプリンタがサーバ証明書と秘密鍵を暗号化するときの暗号鍵の生成処理を示すフローチャートである。
【図６】実施形態のプリンタがサーバ証明書と秘密鍵を暗号化するときの暗号鍵の生成処理を模式的に示す図である。
【図７】実施形態のプリンタがサーバ証明書と秘密鍵の暗号化処理を示すフローチャートである。
【図８】実施形態のプリンタがサーバ証明書と秘密鍵の暗号化処理を示す模式的に示す図である。
【図９】実施形態の変形例に係るプリンタがサーバ証明書と秘密鍵の更新を行うときの別の方法を説明する図である。
【図１０】実施形態の変形例に係る印字システムにおいてプリンタがサーバ証明書と秘密鍵の更新を行うときの動作を示すシーケンスチャートである。
【発明を実施するための形態】
【０００９】
（１）印字システムの概要
以下、本実施形態の印字システム１について図１を参照して説明する。図１は、本実施形態の印字システム１の概略構成を示す図である。
図１に示すように、本実施形態の印字システム１は、プリンタ２、サーバ３、および、情報処理装置５を備える。プリンタ２とサーバ３はネットワークＮＷ１を介して通信可能であり、プリンタ２と情報処理装置５はネットワークＮＷ２を介して通信可能である。プリンタ２は、例えば図示しないルータと有線で接続され、当該ルータ経由でサーバ３または情報処理装置５と通信を行う。なお、プリンタ２は、図示しないルータと無線で接続されていてもよい。
プリンタ２は例えばラベルプリンタである。サーバ３は、プリンタ２がラベルに印字すべき印字内容を決定し、当該印字内容を示す印字データをプリンタ２に送信する。プリンタ２は、サーバ３から受信した印字データに基づいて印字を行う。プリンタ２とサーバ３の間の通信は、セキュリティのため後述するように、例えばＴＬＳ（Transport Layer Security）１．２等に従った暗号化通信により行われる。ＴＬＳ１．２を実現するために、プリンタ２は、ＴＬＳ１．２に従った通信のソケットサーバとして機能する場合のサーバ証明書と、秘密鍵とを保持している。
【００１０】
サーバ証明書と秘密鍵（以下、総称して「証明書ファイル」という場合がある。）は、プリンタ２内に暗号化されずに保存されていたならば、悪意のある第三者によって証明書ファイルがプリンタ２から抜き取られ、当該証明書ファイルを用いてサーバ３に不正にアクセスされる虞がある。そこで、本実施形態の印字システム１では、プリンタ２は、証明書ファイルを暗号化して保存する。具体的な証明書ファイルの暗号化方法および保存方法については後述する。
【００１１】
また、証明書ファイルは、安全性を高める観点から適時更新されることが好ましい。証明書ファイルの更新の一態様として、情報処理装置５からプリンタ２にダウンロードすることによりプリンタ２内の証明書ファイルの更新が行われる。なお、図１では、プリンタ２とサーバ３の間のネットワークＮＷ１と、プリンタ２と情報処理装置５の間のネットワークＮＷ２とをそれぞれ異なるネットワークとする場合について例示しているが、その限りではない。プリンタ２、サーバ３および情報処理装置５は、共通のネットワークに接続されていてもよい。
図１に示すように、プリンタ２がネットワークＮＷ１とネットワークＮＷ２とに接続する場合には、プリンタ２にＬＡＮカードが２枚設置されているか、または、サーバ３と情報処理装置５に同時に接続しないように構成する。サーバ３と情報処理装置５と同時に接続する場合には、外部からプリンタ２にアクセスするためのルータ（図示せず）を設置する。
【００１２】
証明書ファイルをプリンタ２にダウンロードするときには、悪意ある第三者により証明書ファイルを盗み取られ、あるいは書き換えられることがないように、安全なダウンロードを可能にする仕組みが必要である。当該仕組みについては後述する。
【００１３】
（２）実施形態の印字システムの内部構成
次に、実施形態の印字システム１の内部構成について、図２を参照して説明する。図２は、実施形態の印字システム１のブロック図である。
図２に示すように、プリンタ２は、制御部２１、ストレージ２２、操作入力部２３、表示部２４、モータ駆動部２５、ヘッド駆動部２６、カッタ駆動部２７、および、通信部２８を備える。プリンタ２には、例えば帯状の連続紙を巻回したロール紙が収容されている。プリンタ２は、当該ロール紙から連続紙を引き出して印字を行い、連続紙を所定長に切断することでラベルを発行する。なお、プリンタ２は、裏面に粘着層が設けられたラベル連続体を所定長に切断することでラベル（ライナーレスラベル）を発行してもよいし、台紙上に複数枚のラベルが仮着した連続紙をラベル単位で切断することでラベルを発行してもよい。
【００１４】
制御部２１は主として、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、およびＲＡＭ（Random Access Memory）を備える。制御部２１のＣＰＵは、プリンタ２の起動時にＲＯＭに記憶されている各種プログラムを読み出して実行し、各部を制御する。各種プログラムには、ファームウェアが含まれる。ＲＡＭはＣＰＵのワークエリアとして機能し、各種データが一時的に記憶される。制御部２１は、通信部２８と協働してサーバ３との間で、例えばＴＬＳ１．２の通信プロトコル等を実行するための各種の処理を行う。
【００１５】
制御部２１は、ＣＰＵがプログラムを実行することによって、本実施形態において、処理実行手段、無効化手段、判定手段、有効化手段、生成手段、および、認証結果取得手段として機能する。
具体的には、以下のとおりである。
制御部２１は、所定のコマンドを実行することで、プリンタ２に関する所定の処理を実行する処理実行手段として機能する。例えば、制御部２１は、外部機器からプリンタ２に関するコマンドを取得すると、取得したコマンドに応じて、プリンタ２の設定変更や、プリンタ２の状態や動作等を制御する処理を実行する。
制御部２１は、プリンタ２に関する所定の処理を実行するためのコマンドのうち、例えば情報処理装置５からデータを取得するコマンド（第１コマンドの例）を無効化する無効化手段として機能する。本実施形態のプリンタ２では安全のために、起動時において、外部機器からプリンタ２の動作を制御するための制御コマンドの少なくとも一部が無効化される。無効化される制御コマンドには、データを外部機器から取得する（ダウンロードする）制御コマンドが含まれる。
制御部２１は、所定のコード情報に基づく認証結果が成功か否か判定する判定手段として機能する。制御部２１は、判定手段により認証結果が成功であると判定した場合、所定時間の間、情報処理装置５等の外部機器からデータを取得するコマンドを有効化する有効化手段として機能する。つまり、外部機器からプリンタ２にデータをダウンロードする制御コマンドは、起動時には無効化されているが、所定のコード情報に基づく認証結果が成功である場合に限り、所定時間の間だけ有効化される。その所定時間の間に、情報処理装置５から更新のためにサーバ証明書と秘密鍵をダウンロードすることが可能となる。
【００１６】
後述するが、プリンタ２にデータをダウンロードする制御コマンドを有効化するための認証は、例えば、ワンタイムパスワード（コード情報の一例）を利用することができる。その場合、プリンタ２の制御部２１は、ワンタイムパスワードを予め決められた方法で生成する生成手段として機能する。
ワンタイムパスワードによる認証は認証サーバ（後述する）によって行われ、当該認証サーバによる認証結果を制御部２１が通信部２８を介して取得する。すなわち、制御部２１は、ワンタイムパスワードの認証結果を取得する認証結果取得手段として機能する。
【００１７】
制御部２１は、ＣＰＵがプログラムを実行することによって、本実施形態において、鍵生成手段、暗号化手段、埋込手段、復号手段、および、削除手段として機能する。これらの各手段は、情報処理装置５からダウンロードしたサーバ証明書と秘密鍵を暗号化し、あるいは起動直後にサーバ証明書と秘密鍵を復号するときに実現される。
具体的には、以下のとおりである。
制御部２１は、乱数データ（ランダムデータの一例）とプリンタ２に対応付けられたデータ（プリンタ２に固有の固有データ等）に基づき暗号鍵を生成する鍵生成手段として機能する。乱数データは、好ましくは、プリンタ２の常駐ファイルに埋め込まれた状態で保存される。なお、常駐ファイルとは、例えば、システムファイル、フォントファイル、あるいは常駐アプリケーションプログラムで使用されるファイル等、プリンタ２から削除することが想定されていないファイルである。常駐ファイルへの乱数データの埋め込みは、第三者からプリンタ２に不正なアクセスを受けたときに、暗号化されているサーバ証明書と秘密鍵を容易に復号されることを防止するために行われる。
制御部２１は、鍵生成手段によって生成された暗号鍵を用いてサーバ証明書と秘密鍵を暗号化し、暗号化されたサーバ証明書と秘密鍵を生成する暗号化手段として機能する。暗号化されたサーバ証明書と秘密鍵は、暗号化データの一例である。
制御部２１は、暗号化されたサーバ証明書と秘密鍵をプリンタ２の常駐ファイルに埋め込む埋込手段として機能する。常駐ファイルへのサーバ証明書と秘密鍵の埋め込みは、第三者からプリンタ２に不正なアクセスを受けたときに、サーバ証明書と秘密鍵がプリンタ２から抜き取られることを防止するために行われる。
【００１８】
本実施形態では、プリンタ２が起動したときに、サーバ３との暗号化通信のために、サーバ証明書と秘密鍵を復号する処理を行う。このとき、制御部２１は、常駐ファイルから乱数データを抽出し、当該乱数データに基づいて、暗号化されたサーバ証明書と秘密鍵を復号する復号手段として機能する。
制御部２１は、暗号化されたサーバ証明書と秘密鍵が生成された後、暗号化されていないサーバ証明書と秘密鍵を削除する削除手段として機能する。
【００１９】
ストレージ２２は、例えばＳＳＤ（Solid State Drive）等の記憶装置であり、上記常駐ファイルを格納するとともに、印字データを基に印字するに際して必要となる印字フォーマットデータ等を格納する。
【００２０】
操作入力部２３は、ユーザによって操作される操作ボタンやスイッチ等の入力装置を含む。表示部２４は、操作入力部２３より入力されたデータ等を表示パネルに表示するための表示駆動回路を含む。表示パネルは、例えばタッチパネル入力回路を有し、タッチパネルによる操作入力を受け入れるように構成することが好ましい。
【００２１】
モータ駆動部２５は、プラテンローラ（図示せず）の回転を制御するモータを駆動することによって、連続紙を搬送させる。搬送量および搬送方向は、制御部２１からの指令に基づく。
制御部２１は、サーバ３から暗号化された印字データを受信すると、当該印字データを復号する。次いで制御部２１は、ラベルに印字すべき描画データを生成し、描画データのライン毎のデータであるラインデータを順次、ヘッド駆動部２６に送る。
ヘッド駆動部２６は、当該ラインデータに基づき、サーマルヘッド（図示せず）の各発熱素子に選択的に電流を流す。電流により発熱した発熱素子がプラテンローラによって搬送された連続紙に押し当てられると、発熱素子に押し当てられた連続紙の部分が発色することで連続紙に情報が印字される。カッタ駆動部２７はカッタ（図示せず）を駆動して、制御部２１による制御の下、連続紙のうち印字が行われた部分を切断する。切断によって得られたラベルは、順次、プリンタ２から排出される。
【００２２】
通信部２８は、サーバ３と通信を行うための通信インタフェースである。通信部２８は、例えばＴＬＳ１．２等に従ってサーバ３との間で暗号化通信を行う。
【００２３】
図２に示すように、サーバ３は、制御部３１と、ストレージ３２と、通信部３３とを備える。
制御部３１はマイクロコントローラを主体として構成され、サーバ３全体の制御を行う。例えば、制御部３１は、通信部３３と協働してプリンタ２との間で例えばＴＬＳ１．２等の通信プロトコルを実行するための各種の処理を行う。
ストレージ３２は、例えばＨＤＤ(Hard Disk Drive)等の大容量記憶装置であり、各種の印字データが格納されている。制御部３１は、印字データを生成し、あるいは印字データを外部機器から取得してストレージ３２に記録する。
制御部３１は、プリンタ２との間の通信のセッションが確立すると、ストレージ３２から印字データを読み出してプリンタ２に送信する。このとき、制御部３１は、印字データをプリンタ２との間で決定されたセッション鍵（共通鍵）を使用して暗号化してから、印字データをプリンタ２に送信する。
通信部３３は、プリンタ２と通信を行うための通信インタフェースである。通信部３３は、例えばＴＬＳ１．２等に従ってプリンタ２との間で暗号化通信を行う。
【００２４】
図２に示すように、情報処理装置５は、制御部５１、ストレージ５２、操作入力部５３、表示部５４、および、通信部５５を備える。
制御部５１はマイクロコントローラを主体として構成され、情報処理装置５全体の制御を行う。ストレージ５２は、例えばＳＳＤ等の記憶装置であり、認証局から取得したプリンタ２のサーバ証明書と秘密鍵を格納する。
制御部５１は、プリンタ２においてサーバ証明書と秘密鍵の更新を行うときに、サーバ証明書と秘密鍵の送信に先立って、プリンタ２に対して所定の制御コマンドを、通信部５５を介してプリンタ２に送信する。サーバ証明書と秘密鍵を送信するときには、制御部５１は、サーバ証明書と秘密鍵をストレージ５２から読み出す。
通信部５５は、プリンタ２と通信を行うための通信インタフェースである。
【００２５】
（３）実施形態のプリンタ２が印字を行うときの動作
次に、サーバ３とプリンタ２の通信によってプリンタ２が印字を行うときの動作について、図３を参照して説明する。図３は、本実施形態の印字システム１においてプリンタ２が印字を行うときの動作を示すシーケンスチャートである。
【００２６】
図３において先ず、プリンタ２は起動すると（ステップＳ２）、サーバ３との通信に備えて証明書ファイル（サーバ証明書および秘密鍵）の復号を行う（ステップＳ４）。後述するように、本実施形態のプリンタ２では、サーバ証明書および秘密鍵がそれぞれ暗号化された状態で、プリンタ２の常駐ファイルに含まれている。また、サーバ証明書および秘密鍵を復号する暗号鍵を生成するための乱数データが、プリンタ２の常駐ファイルに含まれている。そこで、プリンタ２の制御部２１は、乱数データを常駐ファイルから抽出し、抽出した乱数データやプリンタ２に対応付けられたデータ（プリンタ２に固有の固有データ等）を基に暗号鍵を生成する。次いでプリンタ２の制御部２１は、常駐ファイルから暗号化されたサーバ証明書および秘密鍵を抽出し、抽出したサーバ証明書および秘密鍵を、生成した暗号鍵で復号する。
【００２７】
ステップＳ６のネゴシエーションは、通信相手の認証、および、暗号とハッシュ関数を処理するためのアルゴリズムの決定のために行われる。ＴＬＳ１．２におけるネゴシエーションの処理は、ＩＥＴＦ（Internet Engineering Task Force）によって規格化されているが、概ね以下の手順を含む。
(i) サーバ３がプリンタ２に通信の開始の通知を行う。当該通知には、プロトコルのバージョン（ＴＬＳ１．２）と、サーバ３が利用可能な暗号化方式およびデータ圧縮方式のアルゴリズムの一覧と、後に共通鍵の算出に使用される乱数と、を含む。
(ii) プリンタ２が、使用する暗号化方式およびデータ圧縮方式のアルゴリズムと、サーバ証明書とをサーバ３に通知する。
(iii) サーバ３が乱数を生成し、生成した乱数（プリマスタシークレット）をプリンタ２から受信したサーバ証明書に含まれる公開鍵で暗号化する。サーバ３は、暗号化したプリマスタシークレットをプリンタ２に送信する。当該プリマスタシークレットは、プリンタ２が保持する秘密鍵で復号可能であるため、プリマスタシークレットがサーバ３とプリンタ２で共有化される。
(iv) サーバ３とプリンタ２がそれぞれ、(i)で共有化された乱数と、(iii)で共有化されたプリマスタシークレットとを基に、マスタシークレットを生成する。さらに、サーバ３とプリンタ２は、それぞれ、同一の方法でマスタシークレットから共通鍵（セッション鍵）を生成する。
【００２８】
ネゴシエーションが完了した後は、サーバ３による印字データの暗号化（ステップＳ８）、および、プリンタ２によって受信された印字データの復号（ステップＳ１０，Ｓ１２）は、ネゴシエーションにおいて共有化された共通鍵（セッション鍵）を用いて行われる。プリンタ２は、復号した印字データを基に印字処理を実行する（ステップＳ１４）。
ステップＳ８〜Ｓ１４の処理は、サーバ３の印字要求に応じて繰り返し行われる。
【００２９】
（４）実施形態のプリンタ２が証明書ファイルを更新するときの動作
次に、プリンタ２が証明書ファイルを更新するときの動作について、図４を参照して説明する。図４は、本実施形態の印字システム１においてプリンタがサーバ証明書と秘密鍵の更新を行うときの動作を示すシーケンスチャートである。
【００３０】
（４−１）全体的な動作
図４に示す動作は、プリンタ２がサーバ証明書と秘密鍵を更新のために情報処理装置５からダウンロードし、当該サーバ証明書と秘密鍵をプリンタ２内で暗号化する処理を示している。図４に示す動作は、例えば、ユーザによる更新指示の操作に基づいて行われる。
なお、図４において、認証サーバ７は、プリンタ２から送信されるワンタイムパスワードに基づいて認証処理を行うサーバである。
【００３１】
本実施形態のプリンタ２は、起動時に外部機器からデータを取得する制御コマンドを無効化している。その後、プリンタ２は、情報処理装置５からサーバ証明書と秘密鍵を安全にダウンロードすることを可能にするために、所定の認証が成功した場合に限り、所定時間の間、データを取得する制御コマンドを有効にする。図４に示す例では、所定の認証とは、ワンタイムパスワードを利用した認証処理である。
【００３２】
先ずプリンタ２のユーザは、自身が所持するワンタイムパスワードのためのハードウェアトークン（「ドングル」ともいう。）を使用してワンタイムパスワードを生成する。次いでプリンタ２は、ユーザによる操作入力部２３に対する操作入力に基づいてワンタイムパスワードの入力を受け付ける（ステップＳ２１）。なお、ワンタイムパスワードの生成に際して、ハードウェアトークンと同じ機能を有するソフトウェアを携帯端末やウェブブラウザ上で実行するソフトウェアトークンを利用することもできる。
プリンタ２は、入力されたワンタイムパスワードを認証サーバ７に送信する（ステップＳ２２）。認証サーバ７は、プリンタ２から受信したワンタイムパスワードに基づいて認証処理を実行する（ステップＳ２３）。
【００３３】
ステップＳ２３におけるワンタイムパスワードに基づく具体的な認証方法については限定せず、適用可能な様々な方法を採ることができる。
例えば、時刻同期型のワンタイムパスワードが適用される場合には、ハードウェアトークンは、操作されたときの現在時刻に基づいて所定のアルゴリズムでワンタイムパスワードを生成する。プリンタ２からワンタイムパスワードを受信した認証サーバ７もまた、現在時刻（受信した時刻）に基づいて、ハードウェアトークンと同一のアルゴリズムでワンタイムパスワードを生成する。両者のワンタイムパスワードが一致する場合に認証ＯＫと判断され、一致しない場合には認証ＮＧと判断される。
また、数学的アルゴリズムを用いるワンタイムパスワードが適用される場合には、ハードウェアトークンは、数学的アルゴリズムによって生成された複数のパスワードを順に使用する。認証サーバもまた、ハードウェアトークンと同一の数学的アルゴリズムによって生成された複数のパスワードを順に使用して認証処理を行う。この場合も、両者のワンタイムパスワードが一致する場合に認証ＯＫと判断され、一致しない場合には認証ＮＧと判断される。
あるいは、チャレンジ&レスポンス方式の認証方法を採ることもできる。
【００３４】
認証サーバ７は、ワンタイムパスワードに基づく認証結果（認証ＯＫまたは認証ＮＧ）をプリンタ２に返す（ステップＳ２４）。ステップＳ２４で受信した認証結果が認証ＮＧ（認証失敗）である場合には（ステップＳ２８：ＮＯ）、プリンタ２は何もしない。そのため、プリンタ２は、その後に情報処理装置５からデータをダウンロードにより取得する制御コマンド（以下、適宜「ＤＬコマンド」という。）を受信した場合でも情報処理装置５からデータをダウンロードすることができない。ＤＬコマンドは、第１コマンドの一例である。
【００３５】
ステップＳ２４で受信した認証結果が認証ＯＫ（認証成功）である場合には（ステップＳ２８：ＹＥＳ）、プリンタ２は、ＤＬコマンドを所定時間、有効化する（ステップＳ３０）。この所定時間の間に、例えば情報処理装置５等からプリンタ２にＤＬコマンドが送信された場合（ステップＳ３２）、プリンタ２は、情報処理装置５からサーバ証明書と秘密鍵をダウンロードすることが可能となる（ステップＳ３３）。サーバ証明書と秘密鍵のダウンロードが正常に完了した場合に、プリンタ２は情報処理装置５にＡＣＫメッセージを送信する（ステップＳ３４）。
【００３６】
プリンタ２は、情報処理装置５からサーバ証明書と秘密鍵を正常に受信すると、第三者から不正にアクセスされることがないように、受信したサーバ証明書と秘密鍵を暗号化する。サーバ証明書と秘密鍵の暗号化は、暗号化に必要となる暗号鍵を生成する処理（ステップＳ４０）と、生成した暗号鍵でサーバ証明書と秘密鍵を暗号化する処理（ステップＳ５０）とによって行われる。
ステップＳ４０およびステップＳ５０は、プリンタ２の制御部２１によって行われる処理である。
【００３７】
（４−２）暗号鍵の生成処理
ステップＳ４０の暗号鍵の生成処理について、より詳細に図５および図６を参照して説明する。図５は、本実施形態のプリンタ２がサーバ証明書と秘密鍵を暗号化するときの暗号鍵の生成処理を示すフローチャートである。図６は、本実施形態のプリンタ２がサーバ証明書と秘密鍵を暗号化するときの暗号鍵の生成処理を模式的に示す図であり、図５の対応するステップの符号を付してある。
【００３８】
プリンタ２の制御部２１は、先ず乱数データＤ０を生成する（ステップＳ４１）。乱数データＤ０は、サーバ証明書と秘密鍵を更新する度に生成される。次いで制御部２１は、生成した乱数データＤ０を常駐ファイルＲ０に埋め込むことにより偽装する（ステップＳ４２）。常駐ファイルＲ０は、例えばシステムファイル、フォントファイル、あるいは常駐アプリケーションプログラムで使用されるファイル等である。制御部２１は、後述するサーバ証明書と秘密鍵の復号のために、乱数データＤ０を含む常駐ファイルＲ０をストレージ２２に記録する。乱数データＤ０を常駐ファイルＲ０に埋め込んで保存しておくことで、仮に第三者が不正にプリンタ２にアクセスした場合に乱数データＤ０が外部に漏洩する可能性を低下させることができる。
【００３９】
次に制御部２１は、常駐ファイルＲ０に含まれる乱数データＤ０と、プリンタ２に対応付けられたデータ（プリンタ２に固有の固有データ等）とに基づいて、乱数データＤ１を生成する（ステップＳ４３）。プリンタ２に対応付けられたデータは、プリンタに一意に割り当てられたデータであることが好ましいが、異なるプリンタで重複して割り当てられる可能性が比較的低いデータであってもよい。前者の例は、プリンタ２のシリアル番号、製造番号、その他プリンタ２を識別する識別情報などであり、後者の例は、プリンタの製造ロット番号、発注番号、棚卸し管理番号などである。
プリンタ２に対応付けられたデータを暗号鍵の生成過程で使用することで、あるプリンタの暗号鍵が仮に漏洩した場合であっても他のプリンタの暗号鍵が同様にして漏洩してしまう状況を避けることができる。
【００４０】
次いで制御部２１は、乱数データＤ１に対して所定のハッシュ関数による演算を行い、暗号鍵Ｋ１を生成する（ステップＳ４４）。
【００４１】
（４−３）サーバ証明書と秘密鍵の暗号化処理
ステップＳ５０のサーバ証明書と秘密鍵の暗号化処理について、より詳細に図７および図８を参照して説明する。図７は、本実施形態のプリンタ２がサーバ証明書と秘密鍵の暗号化処理を示すフローチャートである。図８は、本実施形態のプリンタ２がサーバ証明書と秘密鍵の暗号化処理を示す模式的に示す図であり、図７の対応するステップの符号を付してある。
【００４２】
プリンタ２の制御部２１は、情報処理装置５から受信したサーバ証明書および秘密鍵に対して、上記ステップＳ４４で生成された暗号鍵Ｋ１を用いて暗号化を行う（ステップＳ５１）。暗号化方法は、特に限定するものではないが、例えばＡＥＳ（Advanced Encryption Standard）２５６である。なお、鍵長は２５６ビットでなくてもよい。図８では、暗号化されたサーバ証明書および秘密鍵が、それぞれ暗号化データＥ１およびＥ２に相当する。
【００４３】
次いで制御部２１は、暗号化Ｅ１，Ｅ２をそれぞれ、プリンタ２の常駐ファイルＲ１，Ｒ２に埋め込む処理を行う（ステップＳ５２）。暗号鍵Ｋ１を得る過程で乱数データＤ０が埋め込まれた常駐ファイルＲ０（図５のステップＳ４２参照）、および、常駐ファイルＲ１，Ｒ２は同一ファイルでもよいが、各常駐ファイルに埋め込まれたデータが同時に漏洩することを防止する観点から、別々のファイルとすることが好ましい。
暗号化Ｅ１，Ｅ２を常駐ファイルＲ１，Ｒ２に埋め込んで偽装した後は、第三者から取得されることがないように、制御部２１は、暗号化されていないサーバ証明書および秘密鍵を削除する（ステップＳ５３）。
【００４４】
上述したように、本実施形態のプリンタ２では、所定の認証が成功した場合に限り、所定時間の間、情報処理装置５からデータを取得する制御コマンドを有効にする。そのため、サーバ証明書と秘密鍵の更新時に、情報処理装置５から新たなサーバ証明書と秘密鍵を安全にダウンロードすることが可能となる。
上述したように、本実施形態のプリンタ２では、サーバ証明書と秘密鍵の暗号化処理を行うための暗号鍵をプリンタ２に対応付けられたデータに基づいて作成する。そのため、仮に他のプリンタの暗号鍵が漏洩した場合であってもプリンタ２の暗号鍵が同様にして漏洩してしまう状況を避けることができることから、サーバ証明書と秘密鍵を安全に保管することが可能となる。
上記暗号鍵を生成するための乱数データと、暗号化されたサーバ証明書および秘密鍵とは、プリンタ２の常駐ファイルに埋め込まれることによって偽装される。そのため、悪意のある第三者がプリンタ２にアクセスした場合に、乱数データ、あるいは暗号化されたサーバ証明書および秘密鍵をプリンタ２内から見つけ出すことが困難となる。
【００４５】
（５）変形例
以下、上述した本実施形態の印字システム１の変形例について説明する。
【００４６】
（５−１）変形例１
証明書ファイルの更新は、プリンタ２に対するユーザの操作入力に基づいて能動的に行われてもよい。この証明書ファイルの更新方法について図９を参照して説明する。図９は、プリンタ２がサーバ証明書と秘密鍵の更新を行うときの別の方法を説明する図である。
【００４７】
図９は、プリンタ２の表示部２４の表示画面の遷移を示している。画面Ｇ１は、プリンタ２に設けられている通信関連の複数の項目の選択肢を示している。ユーザが証明書ファイルの更新を行う場合には、画面Ｇ１において「証明書」の項目を選択する。
画面Ｇ１において「証明書」の項目が選択されると画面Ｇ２が表示される。画面Ｇ２および画面Ｇ３は、取得先ＦＴＰサーバを設定するための画面である。画面Ｇ２において「取得先ＦＴＰサーバ」の項目を選択し、続けて画面Ｇ３においてＦＴＰサーバのＩＰアドレスを入力し、「ＯＫ」ボタンを操作すると、画面Ｇ２が再度表示される。次いで、画面Ｇ２において「証明書管理」の項目を選択する操作を行うと、画面Ｇ４が表示される。
画面Ｇ４には、「証明書の更新」と表示される項目ＩＭ１と、「証明書の削除」と表示される項目ＩＭ２とが含まれる。ここで、項目ＩＭ１が選択された状態で「ＯＫ」ボタンを操作すると、プリンタ２の制御部２１は、通信部２８を介して、画面Ｇ３において設定されたＦＴＰサーバに対して証明書ファイルの更新要求メッセージを送信し、ＦＴＰサーバから証明書ファイルを受信する。受信した後の処理は、図４と同様に、制御部２１は、ステップＳ４０，Ｓ５０の処理を実行する。
本変形例によれば、プリンタ２に対するユーザの操作入力に基づいて能動的に、証明書ファイルの更新を行うことができる。
【００４８】
なお、図９の画面Ｇ４において項目ＩＭ２が選択された状態で「ＯＫ」ボタンを操作すると、プリンタ２の制御部２１は、暗号化された証明書ファイルを削除する。この場合、制御部２１は、常駐ファイルに埋め込まれている暗号化されたサーバ証明書と暗号鍵を取り出してから、サーバ証明書と暗号鍵を削除する。つまり、制御部２１は、所定の操作入力に基づいて暗号化データとしてのサーバ証明書と暗号鍵を削除する第２削除手段として機能する。
暗号化された証明書ファイルをユーザによって能動的に削除することによって、プリンタ２が、暗号化通信を行う必要がなくなった場合に、サーバ証明書と暗号鍵がプリンタ２から流出してしまうことを防止することができる。
【００４９】
（５−２）変形例２
上述した実施形態では、図４を参照して、所定時間の間、データを取得する制御コマンド（ＤＬコマンド）を有効にするために、ワンタイムパスワードを利用した認証処理を行う例について説明した。以下では、別の認証処理を行う例について図１０を参照して説明する。図１０は、実施形態の変形例に係る印字システムにおいてプリンタ２がサーバ証明書と秘密鍵の更新を行うときの動作を示すシーケンスチャートである。
【００５０】
図１０のシーケンスチャートにおいて図４と異なる点は、情報処理装置５から所定のパスコード（コード情報の一例）をプリンタ２に送信し、プリンタ２が当該パスコードの認証処理を行うことになる。情報処理装置５からプリンタ２に送信されるパスコードは、プリンタ２において認証可能なコードである限り、如何なるコードであってもよい。例えば、上記パスコードは、プリンタ２のプロビジョニング時に設定するパスコードとすることができる。本変形例では、制御部２１は、ＣＰＵがプログラムを実行することによって、情報処理装置５からコード情報としてのパスコードを取得するコード情報取得手段として機能する。
【００５１】
プリンタ２の制御部２１は、ステップＳ２６で受信したパスコードと、予め設定されているパスコードとが一致する場合に認証ＯＫと判断し、一致しない場合には認証ＮＧと判断する（ステップＳ２８）。ステップＳ３０以降の処理は、図４に示した処理と同じである。
本変形例では、上記実施形態と同様に、所定の認証が成功した場合に限り、所定時間の間、情報処理装置５からデータを取得する制御コマンドを有効にするため、情報処理装置５からサーバ証明書と秘密鍵を安全にダウンロードすることが可能となる。また、プリンタ２は、サーバ証明書と秘密鍵の送信元から認証処理の基礎となるコード情報を取得して認証するため、上記所定時間の間においても、送信元の装置ごとに制御コマンドの有効／無効を判断することが可能となる。
【００５２】
（５−３）変形例３
上述した実施形態において、プリンタ２の通信ポートをソフトウェアによって有効または無効に設定することができるようにしてもよい。その場合、プリンタ２の制御部２１は、操作入力に基づいて通信ポートを有効または無効に設定する設定手段として機能してもよい。プリンタ２が複数の通信ポートを備える場合には、各通信ポートを個別に有効または無効に設定できるようにすることが好ましい。ユーザの使用状況に応じて少なくとも一部の通信ポートを無効に設定することによって、第三者からの悪意のあるプリンタ２に対するアクセスを遮断する可能性を高めることが可能となる。
通信ポートの有効または無効の設定は、図９の画面Ｇ１において操作することにより行うことができるようにしてもよい。例えば、画面Ｇ１の「データポート」の項目を選択することで、データポートを有効にするか無効にするか設定できる。
【００５３】
なお、上記実施形態および変形例において、印字処理の安全性をさらに高めるために、印字完了後には、サーバ３から受信してストレージ２２に格納されている印字データ、および、当該印字データを基に作成した描画データを削除することが好ましい。
【００５４】
以上、本発明の一実施形態について詳細に説明したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。
例えば、上述した実施形態では、プリンタによって外部機器から取得するデータ（取得対象データ）および暗号化対象データがサーバ証明書と秘密鍵である場合について説明したが、その限りではない。取得対象データおよび暗号化対象データは如何なるデータであってもよい。
上述した実施形態では、サーバ３と情報処理装置５をそれぞれ別個に設けた例を示したが、その限りではない。サーバ３が情報処理装置５の機能を備えていてもよい。
【符号の説明】
【００５５】
１…印字システム
２…プリンタ
２１…制御部
２２…ストレージ
２３…操作入力部
２４…表示部
２５…モータ制御部
２６…ヘッド駆動部
２７…カッタ制御部
２８…通信部
３…サーバ
３１…制御部
３２…ストレージ
３３…通信部
５…情報処理装置
５１…制御部
５２…ストレージ
５３…操作入力部
５４…表示部
５５…通信部
ＮＷ１，ＮＷ２…ネットワーク
Ｇ１〜Ｇ４…画面
【図１】
2020042586.tif 000003
【図２】
2020042586.tif 000004
【図３】
2020042586.tif 000005
【図４】
2020042586.tif 000006
【図５】
2020042586.tif 000007
【図６】
2020042586.tif 000008
【図７】
2020042586.tif 000009
【図８】
2020042586.tif 000010
【図９】
2020042586.tif 000011
【図１０】
2020042586.tif 000012