(57)【要約】【課題】  均等な発行率で短い桁数の認証コードを発行する。【解決手段】  連携制御装置（１３２）は、ユーザ機器（１１０）からの認証コード要求に対し、指定桁数に対する一定時間内の発行済み認証コード数を算出し、発行可能な認証コード数に対する発行済み認証コード数の割合を示す発行率を算出し、発行率を発行率閾値と比較する。連携制御装置（１３２）は、発行率が前記発行率閾値以上の場合に、認証コードの桁数を増加して、発行済み認証コード数及び発行率の算出並びに発行率と発行率閾値の比較を再実行する。連携制御装置（１３２）は、発行率が発行率閾値未満の場合に、認証コードを発行する。【選択図】  図１
2014219890.tif 000002
【特許請求の範囲】
【請求項１】
一定時間内の発行済み認証コード数を算出する手段と、
表現可能な認証コード数に対する前記発行済み認証コード数の割合を示す発行率を算出する手段と、
前記発行率を発行率閾値と比較する比較手段と、
前記発行率が前記発行率閾値と等しいか大きい場合に、前記認証コードの桁数を増加して、前記発行済み認証コード数及び前記発行率の算出並びに前記比較手段による比較を再実行する再実行手段と、
前記発行率が前記発行率閾値より小さい場合に、認証コードを発行する発行手段
とを具備することを特徴とする認証コード発行装置。
【請求項２】
前記再実行手段は、前記認証コードの桁数の増加の結果、前記認証コードの許容桁数を超える場合に、前記認証コードの桁数を初期値に戻し且つ前記発行率閾値を増加して、前記発行済み認証コード数及び前記発行率の算出並びに前記比較手段による比較を再実行することを特徴とする請求項１に記載の認証コード発行装置。
【請求項３】
前記再実行手段は、前記認証コードに使用可能な文字種を増やして、前記発行済み認証コード数及び前記発行率の算出並びに前記比較手段による比較を再実行することを特徴とする請求項１又は２に記載の認証コード発行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証コード発行装置に関し、より具体的には、複数機器間の連携又はサービスと機器の連携のための認証コードを発行する認証コード発行装置に関する。
【背景技術】
【０００２】
サーバによるサービス、例えば、Ｗｅｂサービスの利用を特定のユーザ又は機器に許可又は限定したい場合、そのユーザ又は機器を認証する必要がある。そのような認証手続きでは、例えば、予めそのユーザ又は機器に割り当てられた認証コードを入力する方法と、サーバ側又はコード生成器により動的に生成される認証コードをユーザ又は機器側で入力する方法がある。
【０００３】
また、サービスと当該サービスを利用する機器との連携の観点では、サービス提供装置とサービス利用機器をペアリングして相互に認証し、以後の利用を容易にする構成も知られている。
【０００４】
認証コードは、或る程度ランダムに発生され、使い回される場合でもあっても、直近の一定時間内に発生した認証コードとは一致しないことが望ましく、そのためには桁数を多くするのが有益である。他方、桁数が多くなると入力ミスの可能性が高くなるので、手入力のためには、桁数は必要な範囲で短いのが望ましい。
【０００５】
特許文献１には、少ない桁数でも重複した発行を防ぐために、発行率が一定になるように発行コードの桁数を増加させることが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１９４６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
十分な大きさのディスプレイを有しない機器がネットワークを介してサーバ等に接続することが増えてきており、そのような機器では、同時に表示できる桁数が制約されるし、視認性が悪いものでは誤入力を招きやすい。
【０００８】
本発明は、このような不都合を解消し、均等な発行率で短い桁数の認証コードを発行する認証コード発行装置を提示することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る認証コード発行装置は、一定時間内の発行済み認証コード数を算出する手段と、発行可能な認証コード数に対する前記発行済み認証コード数の割合を示す発行率を算出する手段と、前記発行率を発行率閾値と比較する比較手段と、前記発行率が前記発行率閾値と等しいか大きい場合に、前記認証コードの桁数を増加して、前記発行済み認証コード数及び前記発行率の算出並びに前記比較手段による比較を再実行する再実行手段と、前記発行率が前記発行率閾値より小さい場合に、認証コードを発行する発行手段とを具備することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、均等な発行率を指向しつつ、少ない桁数の認証コードを発行できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例の概略構成ブロック図である。
【図２】機器連携装置を実現するコンピュータ装置の概略構成ブロック図である。
【図３】認証コード生成に使用するテーブル構成例である。
【図４】認証コード生成の動作フローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施例を詳細に説明する。
【実施例１】
【００１３】
図１は、本発明の一実施例の概略構成ブロック図を示す。互いに連携した動作を希望するユーザ機器１１０，１２０と、ユーザ機器１１０，１２０間の動作連携を管理する機器連携装置１３０が、ネットワーク１４０に接続する。ユーザ機器１１０，１２０の連携関係として、例えば、ユーザ機器１１０はユーザ機器１２０に対して情報を発信する発信機器であり、ユーザ機器１２０はユーザ機器１１０が発信する情報を受信し応答する応答機器であるとする。機器連携装置１３０は、ユーザ機器１１０，１２０間の連携のための認証コードを生成する認証コード発行装置として機能し、認証後の連携関係を管理する。
【００１４】
ユーザ機器１１０は、専用アプリケーションをインストールされた機器、例えば通信機能を有するカメラであり、ＣＰＵ１１２、表示部１１４及び操作部１１６を具備する。ＣＰＵ１１２上で専用アプリケーションが動作する。ユーザ機器１１０はまた、ＨＴＴＰ等のプロトコルを用いてネットワーク１４０を介して機器連携装置１３０にアクセスできる。具体的には、ユーザ機器１１０は、ＸＭＬ等の記述言語で記述された情報を機器連携装置１３０に送信でき、ＨＴＭＬやＸＭＬ等の記述言語で記述された情報を機器連携装置１３０から取得できる。ユーザ機器１１０は、受信した情報を表示部１１４に表示する。ユーザ機器１１０のユーザ１１８は、表示部１１４に表示される情報及びメッセージに応じた情報を、操作部１１６を使ってユーザ機器１１０に入力できる。
【００１５】
ユーザ機器１２０は、ネットワーク１４０を介してユーザ機器１１０との間で標準プロトコルで情報を転送できる、パーソナルコンピュータ又はスマートフォン等の情報機器からなる。ユーザ機器１２０は、ＣＰＵ１２２、表示部１２４及び操作部１２６を具備する。ＣＰＵ１２２上では、ユーザ機器１１０との間の連係動作のためのサービスプログラムが動作する。ユーザ機器１２０もユーザ機器１１０と同様に、ＸＭＬ等で記述された情報を機器連携装置１３０に送信でき、ＨＴＭＬやＸＭＬ等で記述された情報を機器連携装置１３０から取得できる。ユーザ機器１２０は、受信した情報を表示部１２４に表示する。ユーザ機器１２０のユーザ１２８は、表示部１２４に表示される情報及びメッセージに応じた情報を、操作部１２６を使ってユーザ機器１２０に入力できる。
【００１６】
ユーザ機器１１０，１２０間の連携動作のための登録又はペアリングは、以下のようにして実行される。
【００１７】
ユーザ機器１１０は、機器連携装置１３０にアクセスして、ユーザ機器１２０との間のペアリングのための認証コードの発行を機器連携装置１３０に要求する。この要求信号には、ユーザ機器１１０の識別情報、例えば、ＭＡＣアドレスが付加される。機器連携装置１３０は、後述する方法で、互いに対となる認証コードと確認番号を発生し、ユーザ機器１１０に送信する。
【００１８】
ユーザ機器１１０は、機器連携装置１３０から通知された認証コードを表示部１１４に表示すると、確認番号を所定期間記憶する。ユーザ機器１１０は更に、ユーザ機器１２０のユーザ１２８から通知されるであろう確認番号の入力を促すメッセージを表示部１１４に表示する。ユーザ機器１１０のユーザ１１８は、表示部１１４に表示される認証コードを読み取り、電話又は電子メール等の通信手段でその認証コードをユーザ機器１２０のユーザ１２８に通知する。
【００１９】
ユーザ機器１２０のユーザ１２８は、ユーザ機器１１０のユーザ１１８から認証コードを通知されると、通知された認証コードを操作部１２６によりユーザ機器１２０に入力する。ユーザ機器１２０は、入力された認証コードに対する確認番号の要求信号を機器連携装置１３０に送信する。この確認番号要求信号は、入力された認証コードと、ユーザ機器１２０の識別情報、例えばＭＡＣアドレスを含む。
【００２０】
機器連携装置１３０は、ユーザ機器１２０からの認証コードに対応する確認番号（認証コードの生成時に対で生成したもの）をユーザ機器１２０に返信する。
【００２１】
ユーザ機器１２０は、機器連携装置１３０から送信された確認番号を表示部１２４に表示する。ユーザ機器１２０のユーザ１２８は、表示部１２４に表示される確認番号を電話又は電子メール等の通信手段でユーザ機器１１０のユーザ１１８に通知する。
【００２２】
確認番号を通知された、ユーザ機器１１０のユーザ１１８は、操作部１１６により、通知された確認番号をユーザ機器１１０に入力する。ユーザ機器１１０は、入力された確認番号を、先に機器連携装置１３０から認証コードと対に送信された確認番号と照合し、一致するか否かを確認する。一致する場合、ユーザ機器１１０は、照合一致を機器連携装置１３０に通知する。機器連携装置１３０は、ユーザ機器１１０からの照合一致の通知により、ユーザ機器１１０，１２０を連係動作の対象として登録する。ユーザ機器１１０は、確認番号と認証コードの照合結果を表示部１１４に表示する。この照合により、ユーザ１１８は、ユーザ１２８、惹いてはユーザ機器１２０との連携の可否を判断できる。
【００２３】
ユーザ機器１２０は、Ｗｅｂベースその他の方式に基づき、ユーザ機器１１０に特定のサービスを提供するサーバであってもよい。
【００２４】
機器連携装置１３０は、連携制御装置１３２、連携データ保存装置１３４及び情報データベース１３６からなる。連携制御装置１３２は、外部機器、ここではユーザ機器１１０，１２０との通信を制御し、認証コード及び確認番号を生成し、連係動作関係を管理する。認証コード要求信号と確認番号要求信号には、それぞれの要求元（ユーザ機器１１０，１２０）の識別情報が付加されているので、機器連携装置１３０は、認証コードと確認番号により互いに連携用に登録されるユーザ機器を識別できる。連携制御装置１３２は、ユーザ機器１１０からの照合一致の通知に従い、これらの識別情報により、連携関係が成立したユーザ機器（ここでは、ユーザ機器１１０，１２０）同士の関係を連携データ保存装置１３４に保存する。情報データベース１３６には、発行済み認証コードとその発行日に関する情報が格納されており、連携制御装置１３２は、情報データベース１３６を参照し、過去に遡る所定時間内に発行した認証コードとは異なる認証コードを発行する。
【００２５】
図２は、機器連携装置１３０を実現するコンピュータ装置の概略構成ブロック図を示す。図２に示す装置は、表示部２０１、ＶＲＡＭ２０２、ＢＭＵ２０３、キーボード２０４、ＰＤ２０５、ＣＰＵ２０６、ＲＯＭ２０７、ＲＡＭ２０８、ＨＤＤ２０９、フレキシブルディスクドライブ（ＦＤＤ）２１０、ネットワークＩ／Ｆ２１１、バス２１２を有する。
【００２６】
表示部２０１には、例えば機器連携装置の管理を行う、アイコン、メッセージ、メニューその他のユーザインタフェース情報が表示される。ＶＲＡＭ２０２には、表示部２０１に表示するための画像が描画される。このＶＲＡＭ２０２に格納される画像データは、所定の規定に従って表示部２０１に転送され、これにより表示部２０１に画像が表示される。
【００２７】
ＢＭＵ（ビットムーブユニット）２０３は、例えば、メモリ間（例えば、ＶＲＡＭ２０２と他のメモリとの間）のデータ転送と、メモリと各Ｉ／Ｏデバイス（例えば、ネットワークＩ／Ｆ２１１）との間のデータ転送を制御する。
【００２８】
キーボード２０４は、文字等を入力するための各種キーを有する。
【００２９】
ＰＤ（ポインティングデバイス）２０５は、例えば、表示部２０１に表示されたアイコン、メニューその他のコンテンツを指示またはオブジェクトのドラッグドロップのために使用される。
【００３０】
ＣＰＵ２０６は、ＲＯＭ２０７、ＨＤＤ２０９又はＦＤＤ２１０のディスクに格納されたＯＳや後述する連携を行うプログラム等の制御プログラムに基づいて、各デバイスを制御する。ＲＯＭ２０７は、各種制御プログラムやデータを保存する。ＲＡＭ２０８は、ＣＰＵ２０６のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。
【００３１】
ＨＤＤ２０９は、情報処理装置内で実行される各制御プログラムや一時保管したデータ等のデータを格納する。
【００３２】
ネットワークＩ／Ｆ２１１は、他の情報処理装置やプリンタ等とネットワークを介して通信を行う。
【００３３】
バス２１２は、アドレスバス、データバス及びコントロールバスを含む。
【００３４】
ＣＰＵ２０６に対する制御プログラムの提供は、ＲＯＭ２０７、ＨＤＤ２０９、ＦＤＤ２１０のディスクから行うこともできるし、ネットワークＩ／Ｆ２１１を介してネットワーク経由で他の情報処理装置等から行うこともできる。
【００３５】
図３は、機器連携装置１３０が発生する認証コードの管理方法を示す。図３に例示するようなテーブルが、情報データベース１３６に格納されている。
【００３６】
図３（ａ）は、認証コードを１つのテーブルで管理する場合のテーブル例を示す。３０１は、発行した認証コード文字列である。３０２は、発行したときのプレフィックス文字数である。３０３は、発行したときの発行日時である。
【００３７】
図３（ｂ）は、認証コードをプレフィックスとサフィックスの２つのテーブルで管理する場合のテーブル例を示す。３０４は、発行した認証コードのプレフィックス文字列である。３０５は、発行した認証コードのサフィックス識別子である。３０６は、プレフィックス文字列３０４に関連付けされているサフィックス識別子である。３０７は、発行した認証コードのサフィックス文字列である。
３０８は、発行日時である。
【００３８】
図３（ａ）に示す例では、あるプレフィックス文字列の発行済みのサフィックス数を求める場合に、プレフィックス文字数３０２の文字数が同じである認証コード文字列を検索する必要があるので、検索性が良くない。しかし、認証コード文字列３０１に一意制約の設定を行うことで、プレフィックス文字列に「ａ０」のようにサフィックスに利用する文字が含まれていても一意性を保つことが容易となる。
【００３９】
図３（ｂ）に示す例では、あるプレフィックス文字列３０４に対して発行済みのサフィックス数は、サフィックス識別子が同じものをカウントするだけで良く、検索性が良い。しかし、プレフィックス文字列が「ａ０」のようにサフィックスに利用する文字を含む場合、プレフィックス文字列をサフィックスに利用する文字と分解してサフィックス文字列と共に一意性を保つように管理する必要がある。
【００４０】
図４は、機器連携装置１３０の動作フローチャートを示す。機器連携装置１３０（の連携制御装置１３２）は、認証コード文字列を発行するためのサフィックス文字数をこのフローに従って決定する。
【００４１】
ステップＳ４０１で、連携制御装置１３２は、サフィックス文字数を求めるための変数の初期値を設定する。本実施例では、サフィックス文字数（変数）を２文字からとし、発行率閾値（変数）を２０％からと、認証コードの発行文字数（変数）は１７文字までとしている。認証コード文字列にチェックデジットを付加する場合、予めチェックデジットの文字数を引いた文字数を発行文字数とする。
【００４２】
ステップＳ４０２で、連携制御装置１３２は、プレフィックスとサフィックス文字数で再利用できない件数を情報データベース１３６から検索する。
【００４３】
図３（ａ）に示す例では、連携制御装置１３２は、指定されているプレフィックスの文字数とサフィックス文字数（変数）の合計以下の文字数の認証コード文字列３０１を求める。なお、連携制御装置１３２は、指定されているプレフィックスの文字数とサフィックス文字数（変数）の合計と同じ文字数の認証コード文字列３０１を求めてもよい。
【００４４】
次に、連携制御装置１３２は、プレフィックス文字数３０２で指定される文字数までが指定されているプレフィックスと同じ文字数のものに絞り込み、さらに発行日時３０３が現在日時から一定時間以内の過去の時間で絞り込む。この絞り込みを行った結果が、最終的に、ステップＳ４０２の検索結果の件数となる。
【００４５】
図３（ｂ）に示す例では、連携制御装置１３２は先ず、指定されているプレフィックスの文字列の後ろからサフィックスに利用する文字を除く。次に、連携制御装置１３２は、求めた文字列でプレフィックス文字列３０４が同じ文字列の示すサフィックス識別子３０５を持つサフィックス識別子３０６を求める。その後、連携制御装置１３２は、サフィックス文字列３０７の文字数がサフィックス文字数（変数）以下の文字数で絞り込みを行う。なお、サフィックス文字列３０７の文字数がサフィックス文字数（変数）と同じ文字数であるという条件で絞り込みを行ってもよい。連携制御装置１３２は、さらに、発行日時３０８が現在日時から一定時間以内の過去の時間で絞り込む。これらの絞り込みを行った結果が、最終的に、ステップＳ４０２の検索結果の件数となり、一定時間内の発行済み認証コード数を示す。
【００４６】
ステップＳ４０３で、連携制御装置１３２は、先ず、サフィックス文字数で表現できる空間での件数、すなわち表現可能な認証コード数を求める。本実施例ではサフィックスに数字のみを使うものとし、１０のべき乗でサフィックス文字数（変数）を決定している。なお、サフィックスを数字以外で表現する場合には、基数（ここでは、１０）をそれにあわせて変更するのは当然である。連携制御装置１３２は、表現可能な認証コード数に対する一定時間内の発行済み認証コード数（ステップＳ４０２で求めた件数）の割合を示す発行率を算出する。本実施例では、発行率を％で表記しているが、小数点のままであってもよい。
【００４７】
ステップＳ４０４で、連携制御装置１３２は、ステップＳ４０３で求めた発行率を発行率閾値（変数）と比較する。発行率が発行率閾値（変数）未満の場合、連携制御装置１３２はステップＳ４１０に進み、発行率が発行率閾値（変数）以上の場合、ステップＳ４０５に進む。
【００４８】
ステップＳ４０５で、連携制御装置１３２は、サフィックス文字数（変数）をインクリメントする。こうすることで、認証コードの桁数が増加し、表現できる空間が広がるので、発行率を上げずに認証コードを発行できるようになる。
【００４９】
ステップＳ４０６で、機器連携装置１３０は、プレフィックスの文字数と変数サフィックス文字数（変数）の合計を発行文字数（変数）と比較する。プレフィックスの文字数とサフィックス文字数（変数）の合計が発行文字数（変数）より等しいか小さい場合、連携制御装置１３２はステップＳ４０２に戻り、Ｓ４０２〜Ｓ４０５を再実行する。プレフィックスの文字数とサフィックス文字数（変数）の合計が発行文字数（変数）より大きい場合、すなわち許容桁数を超える場合、連携制御装置１３２は、ステップＳ４０７に進む。
【００５０】
ステップＳ４０７で、連携制御装置１３２は、サフィックス文字数（変数）をステップＳ４０１で設定した初期値に戻し、発行率閾値（変数）を上げる。図４では、サフィックス文字数を２文字に戻し、発行率閾値を＋１０％としている。プレフィックスの文字数とサフィックス文字数（変数）の合計文字数が変数発行文字数になっても、発行率を調整することで認証コードの発行が可能になる。
【００５１】
ステップＳ４０８で、連携制御装置１３２は、発行率閾値（変数）が１００％以内かどうかを調べる。連携制御装置１３２は、発行率閾値（変数）が１００％以内の場合、ステップＳ４０２に戻り、変数発行率閾値が１００％より大きい場合、ステップＳ４０９に進む。
【００５２】
ステップＳ４０９で、連携制御装置１３２は、表現できる空間全てが使われているので、認証コードを発行せずに終了する。この段階で、サフィックスに使用可能な文字種を増やし、例えば数字のみでなく英数字を可能にして表現できる空間を広げてもよい。利用可能になった文字での認証コードの発行に進むことになる。
【００５３】
ステップＳ４１０で、連携制御装置１３２は、求めたサフィックス文字数（変数）で認証コードを発行し、処理を終了する。チェックデジットを認証コードに含ませる場合、認証コード発行処理（Ｓ４１０）においてチェックデジットを付加すればよい。
【００５４】
実際に発行する認証コードは、乱数により生成するが、その他の方法を使っても良い。プレフィックスは空文字でもよく、プレフィックス文字の内容に制限されない。
【００５５】
上記実施例では、サフィックスの文字数を上限まで使って発行率の調整を行ったが、サフィックスの文字数と発行率を交互に調整しても良い。
【００５６】
本実施例では、制限された文字数の中で認証コードを適切な分布で生成することができる。
【００５７】
以上、本発明をその好適な実施例に基づいて詳述してきたが、本発明はこれら特定の実施例に限られるものではなく、発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施例の一部を適宜組み合わせてもよい。
【００５８】
また、上述の実施例の機能を実現するソフトウエアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。
【００５９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給ないしインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【００６０】
その場合、プログラムの機能を有している限り、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００６１】
プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光／光磁気記憶媒体、不揮発性の半導体メモリでもよい。
【００６２】
プログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータがコンピュータプログラムをダウンロードして実行するような方法も考えられる。
【図１】
2014219890.tif 000003
【図２】
2014219890.tif 000004
【図３】
2014219890.tif 000005
【図４】
2014219890.tif 000006