(57)【特許請求の範囲】
【請求項１】
ネットワークを介してソフトウェア配信サーバから利用者端末に配信されたソフトウェアの使用の可否を認証コードによって認証する認証処理方法において、
前記ソフトウェア配信サーバは、それぞれが認証コードの一部として、認証コードの中から選択すべき文字列を規定しており、かつ、前記選択すべき文字列が互いに異なる複数のパターンの中から、一のパターンを選択する第１のステップと、
前記ソフトウェア配信サーバは、前記一のパターンと、前記一のパターンに応じた文字列を入力とした所定の演算式と、前記演算式による演算の結果と比較するための所定の期待値とを含む認証プログラムを、配信対象となるソフトウェアに組込む第２のステップと、
前記ソフトウェア配信サーバは、前記認証プログラムが組込まれた前記ソフトウェアを前記利用者端末にネットワークを介して配信する第３のステップと、
前記利用者端末は、前記利用者端末の利用者に対して、前記利用者に一意に付与された認証コードの入力を促す第４のステップと、
前記利用者端末は、前記認証プログラムにおける前記一のパターンにしたがって、前記利用者によって入力された認証コードの一部である文字列を選択し、前記認証プログラムにおける前記所定の演算式にしたがって、前記選択された文字列を入力とした演算を行うとともに、前記演算の結果を前記認証プログラムにおける前記所定の期待値と比較することにより、前記利用者に対する前記ソフトウェアの使用の可否を判断する第５のステップと
を有することを特徴とする認証処理方法。
【請求項２】
前記第１のステップは、前記ソフトウェアのバージョンアップのタイミングにおいて、前記ソフトウェア配信サーバが、前記選択すべき文字列が互いに異なる複数のパターンのうち、前記一のパターンとは異なる他の一のパターンを新たに選択するステップを含み、
前記第２のステップは、前記ソフトウェア配信サーバが、前記他の一のパターンと、前記他の一のパターンに応じた文字列を入力とした所定の演算式と、前記演算式による演算の結果と比較するための所定の期待値とを含む前記認証プログラムを、バージョンアップするためのプログラムであるバージョンアップ情報に組込むステップを含み、
前記第３のステップは、前記ソフトウェア配信サーバが、前記認証プログラムが組込まれた前記バージョンアップ情報を前記利用者端末にネットワークを介して配信するステップを含むことを特徴とする請求項１に記載された認証処理方法。
【請求項３】
前記第２のステップは、前記利用者端末からの配信要求に応じて、ソフトウェアデータベースより、前記配信対象となるソフトウェアを検索するステップを含むことを特徴とする請求項１または２に記載された認証処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介してソフトウェア配信サーバから利用者端末に配信されたソフトウェアの使用の可否を認証コードによって認証する認証処理方法に関する。
【０００２】
【従来の技術】
近年、インターネットの普及と共に、ソフトウェアを有償で配信するサービスが行われている。この際、ソフトウェアが不正に利用されないように、利用者ＩＤおよびパスワード（認証コード）により利用者を認証して、ソフトウェアの利用を許可する認証プログラムを組込んだソフトウェアが配信されている。
【０００３】
【発明が解決しようとする課題】
上述したように、ソフトウェアに組込んでいる認証プログラムを、悪意のある者が、リバースエンジニアリング等のプログラム解析技術を用いて、該認証プログラムで認証される認証コードを解析し、不正にソフトウェアを使用するという問題があった。また、その対策として、頻繁に認証コードを変更すると、正規の利用者の負担になるという問題があった。
【０００４】
本発明は、上述した事情を考慮してなされたもので、正規の利用者において認証コードを変更することなく、認証プログラムで認証に用いる文字列を変更できる認証処理方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
この発明は、上述した課題を解決すべくなされたもので、本発明による認証プログラムは、利用者を認証コードにより認証する認証プログラムであって、認証コードの一部の文字列を用いて認証を行う処理をコンピュータへ実行させるための認証プログラムである。
【０００６】
これにより、認証コードの一部の文字列を用いて認証を行う認証プログラムを、不正の目的で解析されても、該解析で判明する文字列は認証コードの一部であり、一度の解析により認証コードの全てを解析されてしまうことはない。
【０００７】
また、本発明による認証プログラムにおいては、上記認証を行う処理は、文字列を用いた所定の演算式を演算し、該演算の結果により認証を行うことを特徴とする。
これにより、不正目的で認証プログラムを解析する解析行為への対策として、より複雑な演算による認証を行なうことができる。
【０００８】
また、本発明による認証プログラムにおいては、上記認証コードの一部から成る、複数のパターンの文字列を生成する処理を更に有し、認証を行う処理は、複数のパターンの文字列の一つを用いて認証を行うことを特徴とする。
これにより、認証に用いる文字列を複数パターン用意するので、該文字列を変更する際に、予め用意したパターンから選択することができる。
【０００９】
また、本発明による認証プログラム生成システムにおいては、認証コードにより利用者の認証を行う認証プログラムを生成する認証プログラム生成システムであって、認証コードの一部の文字列を用いて認証を行う認証プログラムを生成する認証プログラム生成手段と、定期的または任意のタイミングで、認証に用いる文字列を、認証コードの異なる一部の文字列へ変更する認証文字列変更手段とを具備することを特徴とする。
【００１０】
これにより、認証コードの一部の文字列を用いて認証を行う認証プログラムを、不正の目的で解析されても、該解析で判明する文字列は認証コードの一部である。そこで、利用者へ入力させる認証コードを変更すること無く、認証文字列変更手段が、認証に用いる文字列を、認証コードの異なる一部の文字列へ変更することで、不正の目的で解析された文字列を用いたなりすましを防ぐ認証プログラムを生成することができる。
【００１１】
また、本発明による認証プログラム生成システムにおいては、上記認証プログラム生成手段は、文字列を用いた所定の演算式を演算し、該演算の結果により認証を行う認証プログラムを生成することを特徴とする。
【００１２】
また、本発明による認証プログラム生成システムにおいては、上記認証プログラム生成手段は、認証コードの一部から成る、複数のパターンの文字列を生成し、複数のパターンの文字列の一つを用いて認証を行う認証プログラムを生成することを特徴とする。
【００１３】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明する。ただし、以下の実施の形態は特許請求の範囲に記載された発明を限定するものではなく、また実施の形態の中で説明されている特徴の組み合わせのすべてが発明の解決手段に必要であるとは限らない。
【００１４】
まず、本発明の一実施形態における認証プログラム生成システムの構成について図を用いて説明する。
図１は、本発明の一実施形態による認証プログラム生成システムの全体構成を示すブロック図である。この図において符号１０は、ネットワーク１１に接続可能な利用者端末Ａ、利用者端末Ｂ、利用者端末Ｃ、…（以下、利用者端末１０とする）である。１２は、認証プログラムが付加された種々のソフトウェアを、ネットワーク１１を介して利用者端末１０へ配信するソフトウェア配信サーバである。
【００１５】
次に、ソフトウェア配信サーバ１２の内部構成について説明する。
符号２１は、ソフトウェア配信サーバ１２内のデータの制御を行う制御部である。２２は、ネットワーク１１を介して利用者端末１０からの配信要求を受信し、ソフトウェアや該ソフトウェアのバージョンアップ情報を配信するソフトウェア配信処理部である。２３は、配信用のソフトウェアや該ソフトウェアのバージョンアップ情報が格納されるソフトウェアデータベース２３ａと、該ソフトウェアに付加する正規利用者を認証するための認証プログラムを格納する認証プログラムデータベース２３ｂとを具備するデータベースである。
【００１６】
２４は、利用者に一意に付与される利用者ＩＤおよびパスワード（認証コード）の一部から成る文字列の複数のパターンを生成し、その複数のパターンから一つの文字列を用いて所定の演算式を演算し、該演算の結果により認証を行う認証プログラムを生成する認証プログラム生成部である。２５は、ソフトウェアのバージョンアップ時に、認証に用いる文字列を、利用者ＩＤおよびパスワードの異なる一部の文字列へ変更する認証文字列変更処理部である。２６は、認証プログラム生成部２４が生成した認証プログラムを、配信するソフトウェアへ組み込む認証プログラム組込み処理部である。
【００１７】
ここで、上述した認証プログラム生成部２４が生成する認証プログラムについて具体例を挙げて説明する。利用者ＩＤおよびパスワードが
利用者ＩＤ：ＡＢＣＤＥＦＧ
パスワード：１２３４５６７８
であり、認証プログラム生成部２４が利用者ＩＤおよびパスワードの一部から成る文字列を複数パターン生成したものが以下の４パターンであるとする。
”ＢＤＥＦ”、”１３５８”
”ＡＣＥＦ”、”２４６７”
”ＡＤＦＧ”、”４５７８”
”ＢＣＦＧ”、”１３５６”
【００１８】
上記の４パターンの内から一組を用いて（”ＢＤＥＦ”、”１３５８”とする）、認証プログラムは、該一組の文字列を左から順に所定の数値へ変換し、所定の演算子＊で演算する。ここで、例えば演算子＊を積の演算子とし、Ｂを１、Ｄを２、Ｅを８、Ｆを３、１を６６６、３を２２２、５を１１１、８を３３３へ変換すると、以下の演算結果を得られる。
Ｂ＊１＝６６６、Ｄ＊３＝４４４、Ｅ＊５＝８８８、Ｆ＊８＝９９９
尚、＊は演算子に限らず演算式など、演算する文字列の組み合わせ毎に一意の値が算出されるものでよい。また、利用者ＩＤで使用され得る文字とパスワードで使用され得る文字は全て、演算するための各々に対応する数値へ変換される。
認証プログラムは、以上の４つの演算結果が期待値どうりであれば、利用者を正規利用者と認証する。
【００１９】
また、認証文字列変更処理部２５は、ソフトウェアのバージョンアップ時に、認証に用いる文字列を、上記で認証プログラムが使用した”ＢＤＥＦ”、”１３５８”と異なる３つのパターンの文字列より一つを選ぶことで変更を行う。
【００２０】
尚、上記に示した図１の各処理部は専用のハードウェアにより実現されるものであってもよく、また、各処理部はメモリおよびＣＰＵ（中央演算装置）により構成され、各処理部の機能を実現する為のプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
また、上記メモリは、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、ＣＤ−ＲＯＭ等の読み出しのみが可能な記録媒体、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性のメモリ、あるいはこれらの組み合わせによるコンピュータ読み取り、書き込み可能な記録媒体より構成されるものとする。
【００２１】
次に、上述したソフトウェア配信サーバ１２が利用者端末１０へ配信するソフトウェアに組込まれる、認証プログラム生成部２４が生成した認証プログラムの、利用者端末１０における動作について図２を用いて説明する。
図２は、本発明の一実施形態における認証プログラムの動作を示すフロー図である。利用者が利用者端末１０にて、ソフトウェア配信サーバ１２より配信されたソフトウェアをインストールする際または、インストール後に使用する際に、認証プログラムが起動される。
【００２２】
まず、認証プログラムは、利用者へ利用者ＩＤおよびパスワードの入力を促す（ステップＳ２１）。ここで、利用者より利用者ＩＤ：ＡＢＣＤＥＦＧおよびパスワード：１２３４５６７８が入力されると、認証プログラムは、入力された利用者ＩＤおよびパスワードの所定の文字列を選択する（ステップＳ２２）。上述した”ＢＤＥＦ”、”１３５８”の例を用いると、利用者ＩＤの左から２、４、５、６番目の文字から成る文字列とパスワードの左から１、３、５、８番目の文字から成る文字列を選択したことになる。次に、認証プログラムは、利用者ＩＤから選択した文字とパスワードから選択した文字とで所定の演算を行う（ステップＳ２３）。上述した例では、Ｂ＊１＝６６６、Ｄ＊３＝４４４、Ｅ＊５＝８８８、Ｆ＊８＝９９９の演算結果を算出する。次に、認証プログラムは、演算結果と期待値を比較する（ステップＳ２４）。
【００２３】
比較の結果、演算結果と期待値が一致すれば認証ＯＫであり（ステップＳ２５のＹＥＳ）、認証プログラムは、利用者へソフトウェアの使用を許可する（ステップＳ２６）。また、比較の結果、演算結果と期待値が一致しなければ認証ＮＧであり（ステップＳ２５のＮＯ）、認証プログラムは、利用者へソフトウェアの使用を許可しない（ステップＳ２７）。
尚、図示していないが、認証ＮＧの場合（ステップＳ２５のＮＯ）、利用者ＩＤまたはパスワードの入力ミスを考慮して、所定の回数の間は、ステップＳ２１へ戻ってもよい。
【００２４】
以上により、認証プログラムは、利用者ＩＤおよびパスワードの一部から成る文字列を用いて認証を行う。これにより、不正に認証プログラムを解析し、パスワードを取得しようとしても、不正者が取得できるのは一部の文字列のみである。よって、認証プログラムをパスワードの異なる一部から成る文字列を用いて認証するように変更することで、不正に取得されたパスワードによる不正使用を防ぐことができる。更に、利用者にとっては、パスワードを変更する煩わしさが無い。また、単に一部の文字列を用いて認証するだけでなく、上述したように、文字列を用いて演算を行い、その演算結果を認証に用いることで、より解読されにくい認証プログラムとなる。
【００２５】
次に、ソフトウェアをバージョンアップする場合の処理について、図を用いて説明する。
図３は、本発明の一実施形態におけるソフトウェアをバージョンアップする際のソフトウェア配信サーバ１２の動作を示すフロー図である。まず、利用者端末１０より、ソフトウェア配信要求がソフトウェア配信サーバ１２へ送信される（ステップＳ１）。ソフトウェア配信サーバ１２において、ソフトウェア配信処理部２２が該ソフトウェア配信要求を受信し、ソフトウェアデータベース２３ａより要求のあったソフトウェアを検索する（ステップＳ２）。次に、認証プログラム生成部２４は、該ソフトウェアを使用する際に正規利用者の認証を行う認証プログラムを生成する（ステップＳ３）。
【００２６】
尚、ここでは、ソフトウェア配信サーバ１２が利用者へ利用者ＩＤ：ＡＢＣＤＥＦＧ、パスワード：１２３４５６７８を付与し、それを基に、認証プログラム生成部２４は、上述した４パターンの文字列を作成し、該４パターンの一つ”ＢＤＥＦ”、”１３５８”の文字列を用いて認証を行う認証プログラムを生成したとする。また、他の３パターンの文字列を用いて認証する認証プログラムは認証プログラムデータベース２３ｂへ格納される。
【００２７】
次に、認証プログラム組込み処理部２６は、認証プログラム生成部２４が生成した認証プログラムをソフトウェア配信処理部２２が検索したソフトウェアへ組込む（ステップＳ４）。ソフトウェア配信処理部２２は、認証プログラムが組み込まれたソフトウェアおよび認証情報（利用者ＩＤ、パスワード）を利用者へ送信する（ステップＳ５）。尚、認証情報の送信は、よりセキュリティを高めるため、暗号化による送信を行っても良く、または、紙に印刷して郵送してもよい。以上により、利用者は所望のソフトウェアをソフトウェア配信サーバ１２よりダウンロードし、利用者端末１０へインストールして、使用することが出来る（ステップＳ６）。
【００２８】
ここで、上述した利用者のダウンロードしたソフトウェアがバージョンアップされた場合において、利用者が該ソフトウェアのバージョンアップ情報（バージョンアップするためのプログラム）の配信をソフトウェア配信サーバ１２へ要求する（ステップＳ１０）。該要求をソフトウェア配信サーバ１２が受信し、ソフトウェア配信処理部２２が、該バージョンアップ情報をソフトウェアデータベース２３ａより検索する。次に、認証文字列変更処理部２５は、該利用者に送信した認証プログラムとは他のパターンの文字列を用いる認証プログラムを、認証プログラムデータベース２３ｂより検索する（ステップＳ１１）。
【００２９】
次に、認証プログラム組込み処理部２６は、認証文字列変更処理部２５の検索した認証プログラムを、ソフトウェア配信処理部２２が検索したバージョンアップ情報へ組み込む（ステップＳ１２）。次に、ソフトウェア配信処理部２２は、ステップＳ１１で検索された認証プログラムを含むバージョンアップ情報を配信する（ステップＳ１３）。以上により、利用者は所望のバージョンアップ情報をソフトウェア配信サーバ１２よりダウンロードし、利用者端末１０へインストールし、バージョンアップしたソフトウェアを使用することが出来る（ステップＳ１４）。
【００３０】
尚、上述した実施形態では、認証文字列変更処理部２５による認証プログラムで用いる文字列の変更は、ソフトウェアのバージョンアップ時に行っているが、この限りではなく、定期的に行ったり、他の機会に適時行ってもよい。
【００３１】
以上により、ソフトウェアを配信する事業者は、バージョンアップ後のソフトウェアが不正に利用されるのを防ぐため、バージョンアップの度に利用者へパスワードの変更を強要することなく、パスワードの一部から成る認証用の文字列を変更することで不正に利用されることを防ぐことができる。
【００３２】
尚、配信するソフトウェアに実行回数や使用期間の制限を設ける場合に、該制限を行なう起動制限プログラムを暗号化することで、その後、ソフトウェアをバージョンアップする度に新たな認証プログラムを付加した場合、該認証プログラムを解析するのをより困難にすることができる。また、複数のソフトウェアを配信する場合は、該複数のソフトウェアをまとめて認証プログラムで管理してもよい。また、認証プログラムが備える演算処理機能を他の認証プログラムと共有してもよい。
【００３３】
また、図１における各種処理を行う処理部の機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」とは、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００３４】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００３６】
【発明の効果】
以上説明したように本発明による認証プログラムは、利用者を認証コードにより認証する認証プログラムであって、認証コードの一部の文字列を用いて認証を行う処理をコンピュータへ実行させるための認証プログラムであるので、認証コードの一部の文字列を用いて認証を行う認証プログラムを、不正の目的で解析されても、該解析で判明する文字列は認証コードの一部であり、一度の解析により認証コードの全てを解析されてしまうことはない。これにより、認証コードを変更することなく、認証に用いる文字列を変更することができ、利用者へ認証コードを変更することによる負担をかけないようにすることができる。
【００３７】
また、本発明による認証プログラムにおいては、上記認証を行う処理は、文字列を用いた所定の演算式を演算し、該演算の結果により認証を行うので、不正目的で認証プログラムを解析する解析行為への対策として、より複雑な演算による認証を行なうことができる。また、上記解析行為に対抗するためにある種々の演算方法を利用して認証を行なうことができる。
【００３８】
また、本発明による認証プログラムにおいては、上記認証コードの一部から成る、複数のパターンの文字列を生成する処理を更に有し、認証を行う処理は、複数のパターンの文字列の一つを用いて認証を行うので、認証に用いる文字列を複数パターン用意するので、該文字列を変更する際に、予め用意したパターンから選択することができる。これにより、認証用の文字列の変更の度に新たに認証プログラムを生成する必要がなく、処理が簡便になる。
【００３９】
また、本発明による認証プログラム生成システムにおいては、認証コードにより利用者の認証を行う認証プログラムを生成する認証プログラム生成システムであって、認証コードの一部の文字列を用いて認証を行う認証プログラムを生成する認証プログラム生成手段と、定期的または任意のタイミングで、認証に用いる文字列を、認証コードの異なる一部の文字列へ変更する認証文字列変更手段とを具備するので、認証コードの一部の文字列を用いて認証を行う認証プログラムを、不正の目的で解析されても、該解析で判明する文字列は認証コードの一部であり、利用者へ入力させる認証コードを変更すること無く、認証文字列変更手段が、認証に用いる文字列を、認証コードの異なる一部の文字列へ変更することで、不正の目的で解析された文字列を用いたなりすましを防ぐ認証プログラムを生成することができる。
【００４０】
これにより、利用者へ認証コードの変更による負担を強いることなく、頻繁に認証用の文字列を変更することが可能となり、認証プログラムを解析されたことによる不正ななりすましを、より確実に防ぐことができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態による認証プログラム生成システムの全体構成を示すブロック図である。
【図２】  図２は、本発明の一実施形態における認証プログラムの動作を示すフロー図である。
【図３】  図３は、本発明の一実施形態におけるソフトウェアをバージョンアップする際のソフトウェア配信サーバ１２の動作を示すフロー図である。
【符号の説明】
１０    利用者端末Ａ、利用者端末Ｂ、利用者端末Ｃ、…（利用者端末１０）
１１    ネットワーク
１２    ソフトウェア配信サーバ
２１    制御部
２２    ソフトウェア配信処理部
２３    データベース
２３ａ  ソフトウェアデータベース
２３ｂ  認証プログラムデータベース
２４    認証プログラム生成部
２５    認証文字列変更処理部
２６    認証プログラム組込み処理部
【図１】
0003650744.tif 000002
【図２】
0003650744.tif 000003
【図３】
0003650744.tif 000004