図面 (/)

技術 アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム

出願人 株式会社アクセル
発明者 客野一樹
出願日 2017年4月11日 (3年7ヶ月経過) 出願番号 2017-078356
公開日 2018年11月15日 (2年0ヶ月経過) 公開番号 2018-180854
状態 未査定
技術分野 記憶装置の機密保護 暗号化・復号化装置及び秘密通信
主要キーワード C言語 アプリケーションプロバイダー 電子署名アルゴリズム USBドングル 使用地域 特定ソフトウェア ユーザー端末機 ソフトウェアメーカー
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年11月15日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (9)

課題

ドングル紙面等の非デジタル情報媒体を介すことなく、電子通信のみのやりとりでも、高度なセキュリティ担保する。

解決手段

開発者装置2は、ライセンスサーバ3からのプロダクトファイルPFに基づき、暗号化前アプリケーションAPを暗号化して顧客装置1に送る。ライセンスサーバ3は、顧客からの要求に応じて、ライセンスファイルLF発行する。ライセンスファイルLFには、プロダクト名、顧客名、又は顧客名及び有効期限難読化された共通鍵電子署名の各情報が含まれている。難読化された共通鍵は、元の共通鍵を、顧客名及び有効期限の情報に基づいて変換することにより得る。電子署名は、顧客名及び有効期限に基づく。顧客装置1におけるアプリケーション実行時に、電子署名が検証されて顧客名及び有効期限の改ざんを判定する。また、顧客名及び有効期限が改ざんされていなければ、正しい元の共通鍵を復元できる。

概要

背景

例えばセキュリティーソフトウェア文書編集ソフトウェア等の各種アプリケーションソフトウェアは、かつては個別に店舗販売されていたが、インターネットの普及とその通信速度及び容量等の向上に伴い、ネットを介してダウンロードされて提供されることが主流となってきた。しかしながら、購買したソフトウェアが特定の装置のみで利用されることを担保するために、プロダクトキー等の購買したソフトウェアに1対1に対応した固有情報が与えられることについては変わらない。すなわち、その固有情報が、利用装置接続可能な特定のハードウェア(典型的にはUSB(USBドングル))で提供されている。

また、昨今のように、各種アプリケーションソフトウェアがダウンロードされて提供される場合には、購買されたアプリケーショングレードや使用できる期間等の使用条件をいわゆるライセンス情報として提供して、柔軟性のあるアプリケーションの提供が可能になってきた。

関連する技術として、特許文献1がある。当該文献においては、パッケージソフトウェアと、ライセンス情報とその電子署名からなるライセンスファイルとがネットを介して、ソフトウェアメーカーからユーザーに提供され、一方、ライセンス情報が格納されたUSBドングルで提供されている。そして、電子署名に基づいて、ネットを介して提供されたライセンス情報とUSBドングル内のライセンス情報を照合し、認証が成立すれば、当該ユーザーは、提供されたパッケージソフトウェアをライセンス情報が示す範囲内で使用することが可能となる。ここで、特に、特許文献1においては、ライセンス情報がXMLで記述されることと、そのライセンス情報に電子署名が付されることが特徴となっている(特許文献1参照)。

また、関連する他の技術として、特許文献2がある。当該文献においては、ハードウェアとして、ソフトウェア提供サーバ(130)、ユーザー端末機(110)、及びドングル形態のトークン(120)が記述され、ユーザーが正式に特定ソフトウェア購入した場合にはトークン(120)が提供され、ユーザーは、そのトークン(120)を自己端末機(110)に接続した状態で、サーバ(130)から当該ソフトウェアをダウンロードする。その際、サーバ(130)は、ユーザー端末機(110)にトークン(120)が接続されているか否かを検証し、接続されている場合には、自身とトークン(120)との間で相互認証されるか否かを確認する。相互認証が確認された場合には、サーバ(130)は、当該ソフトウェアの使用を許可するためのセキュレットを暗号化してトークン(120)に転送する。

そして、ユーザーが購入したソフトウェアをユーザー端末機(110)にて使用する際には、まず、ユーザー端末機(110)が、購入したソフトウェアを駆動するためのセキュレットが、接続されたトークン(120)内に存在するか否かを確認する。そして、存在する場合、ユーザー端末機(110)は、トークン(120)に、セキュレットを実行させるための実行命令を転送する。実行命令を受け取ったトークン(120)は、該当するセキュレットをメモリに読み込んできて実行し、その実行結果をユーザー端末機(110)に返送する。ユーザー端末機(110)に実行結果が返されると、ユーザー端末機(110)は、当該ソフトウェアの実行を開始する(特許文献2参照)。

概要

ドングルや紙面等の非デジタル情報媒体を介すことなく、電子通信のみのやりとりでも、高度なセキュリティを担保する。開発者装置2は、ライセンスサーバ3からのプロダクトファイルPFに基づき、暗号化前アプリケーションAPを暗号化して顧客装置1に送る。ライセンスサーバ3は、顧客からの要求に応じて、ライセンスファイルLF発行する。ライセンスファイルLFには、プロダクト名、顧客名、又は顧客名及び有効期限難読化された共通鍵、電子署名の各情報が含まれている。難読化された共通鍵は、元の共通鍵を、顧客名及び有効期限の情報に基づいて変換することにより得る。電子署名は、顧客名及び有効期限に基づく。顧客装置1におけるアプリケーション実行時に、電子署名が検証されて顧客名及び有効期限の改ざんを判定する。また、顧客名及び有効期限が改ざんされていなければ、正しい元の共通鍵を復元できる。

目的

本発明は上述のような事情から為されたものであり、本発明の目的は、ドングルや紙面等の非デジタル情報媒体を介すことなく、電子通信のみのやりとりでも、高度なセキュリティが担保できるアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

顧客が自己の装置で使用するアプリケーションソフトウェアをその開発者から取得して利用する際のアプリケーションソフトウェアの提供及び認証方法であって、前記開発者は、前記顧客からの要求に応じ、任意の共通鍵に基づき暗号化した前記アプリケーションソフトウェアを、ネットワークを介して前記顧客に送信し、ライセンスサーバが作成した、前記アプリケーションソフトウェアに係るライセンスの情報には、顧客名、又は顧客名及び有効期限の情報が含められ、前記開発者は、前記ライセンスの情報を、前記ネットワークを介して前記顧客に送信することを特徴とするアプリケーションソフトウェアの提供及び認証方法。

請求項2

前記開発者は、前記ライセンスの情報に、前記任意の共通鍵に対して、少なくとも前記顧客名の情報を施して変換させて得られた難読化された共通鍵の情報を含ませ、前記顧客の装置に送られた暗号化されたアプリケーションソフトウェアの実行時には、前記ライセンスの情報に含まれた前記難読化された共通鍵に対して、前記難読化された共通鍵を得るための処理とは逆の処理を施して、元の共通鍵を復元し、その元の共通鍵で前記暗号化されたアプリケーションソフトウェアを復号化することを特徴とする請求項1に記載のアプリケーションソフトウェアの提供及び認証方法。

請求項3

前記開発者は、前記ライセンスの情報に、少なくとも前記顧客名の情報に基づく電子署名を含ませ、前記顧客の装置に送られた暗号化されたアプリケーションソフトウェアは、前記電子署名に基づき、その真正が判定されることを特徴とする請求項1又は2に記載のアプリケーションソフトウェアの提供及び認証方法。

請求項4

前記ライセンスの情報に前記有効期限の情報が含められているときにおいて、前記ライセンスの情報に含まれた有効期限を満たすか否かの判定による前記顧客の装置に送られた前記暗号化されたアプリケーションソフトウェアの真正の判定は、前記ネットワークとオフラインの場合には、前記顧客の装置自身時刻を参照することにより行われ、一方、オンラインの場合には、前記ライセンスサーバの時刻を参照して行われることを特徴とする請求項1から3のいずれか一つに記載のアプリケーションソフトウェアの提供及び認証方法。

請求項5

前記ライセンスサーバは、前記ライセンスの情報を作成するたびに、その情報をテーブルとして自己に保存しておくことを特徴とする請求項1から4のいずれか一つに記載のアプリケーションソフトウェアの提供及び認証方法。

請求項6

前記ネットワークとオンラインの場合、前記ライセンスサーバは、前記顧客の装置から、前記アプリケーションソフトウェアの使用頻度及び使用地域の情報を取得することを特徴とする請求項1から5のいずれか一つに記載のアプリケーションソフトウェアの提供及び認証方法。

請求項7

1つのアプリケーションソフトウェアに、選択可能な複数の機能レベルが設定できる場合、前記開発者は、外からの指定に基づき機能レベルの自動設定が可能な1つのアプリケーションを各顧客に配布し、アプリケーションプログラムが実行時に顧客に応じてその機能レベルの自動設定を行うことを特徴とする請求項1から6のいずれか一つに記載のアプリケーションソフトウェアの提供及び認証方法。

請求項8

前記アプリケーションプログラムは、前記機能レベルの情報を前記ライセンスの情報から取得することを特徴とする請求項7に記載のアプリケーションソフトウェアの提供及び認証方法。

請求項9

顧客の有する顧客装置と、顧客の要求に係るアプリケーションソフトウェアを任意の共通鍵で暗号化してその暗号化されたアプリケーションソフトウェアを前記顧客装置にネットワークを介して送信する開発者装置と、前記顧客の要求に係るアプリケーションソフトウェアに対応したライセンスの情報を作成するライセンスサーバと、を備えたアプリケーションソフトウェアの提供及び認証システムであって、前記ライセンスサーバにより作成された前記ライセンスの情報には、顧客名、又は顧客名及び有効期限の情報が含められ、前記開発者装置は、前記ライセンスの情報を、前記ネットワークを介して前記顧客装置に送信することを特徴とするアプリケーションソフトウェアの提供及び認証システム。

技術分野

0001

本発明は、アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムに関し、特に、ドングル紙面等の非デジタル情報媒体を介さないアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムに関する。

背景技術

0002

例えばセキュリティーソフトウェア文書編集ソフトウェア等の各種アプリケーションソフトウェアは、かつては個別に店舗販売されていたが、インターネットの普及とその通信速度及び容量等の向上に伴い、ネットを介してダウンロードされて提供されることが主流となってきた。しかしながら、購買したソフトウェアが特定の装置のみで利用されることを担保するために、プロダクトキー等の購買したソフトウェアに1対1に対応した固有情報が与えられることについては変わらない。すなわち、その固有情報が、利用装置接続可能な特定のハードウェア(典型的にはUSB(USBドングル))で提供されている。

0003

また、昨今のように、各種アプリケーションソフトウェアがダウンロードされて提供される場合には、購買されたアプリケーショングレードや使用できる期間等の使用条件をいわゆるライセンス情報として提供して、柔軟性のあるアプリケーションの提供が可能になってきた。

0004

関連する技術として、特許文献1がある。当該文献においては、パッケージソフトウェアと、ライセンス情報とその電子署名からなるライセンスファイルとがネットを介して、ソフトウェアメーカーからユーザーに提供され、一方、ライセンス情報が格納されたUSBドングルで提供されている。そして、電子署名に基づいて、ネットを介して提供されたライセンス情報とUSBドングル内のライセンス情報を照合し、認証が成立すれば、当該ユーザーは、提供されたパッケージソフトウェアをライセンス情報が示す範囲内で使用することが可能となる。ここで、特に、特許文献1においては、ライセンス情報がXMLで記述されることと、そのライセンス情報に電子署名が付されることが特徴となっている(特許文献1参照)。

0005

また、関連する他の技術として、特許文献2がある。当該文献においては、ハードウェアとして、ソフトウェア提供サーバ(130)、ユーザー端末機(110)、及びドングル形態のトークン(120)が記述され、ユーザーが正式に特定ソフトウェア購入した場合にはトークン(120)が提供され、ユーザーは、そのトークン(120)を自己端末機(110)に接続した状態で、サーバ(130)から当該ソフトウェアをダウンロードする。その際、サーバ(130)は、ユーザー端末機(110)にトークン(120)が接続されているか否かを検証し、接続されている場合には、自身とトークン(120)との間で相互認証されるか否かを確認する。相互認証が確認された場合には、サーバ(130)は、当該ソフトウェアの使用を許可するためのセキュレットを暗号化してトークン(120)に転送する。

0006

そして、ユーザーが購入したソフトウェアをユーザー端末機(110)にて使用する際には、まず、ユーザー端末機(110)が、購入したソフトウェアを駆動するためのセキュレットが、接続されたトークン(120)内に存在するか否かを確認する。そして、存在する場合、ユーザー端末機(110)は、トークン(120)に、セキュレットを実行させるための実行命令を転送する。実行命令を受け取ったトークン(120)は、該当するセキュレットをメモリに読み込んできて実行し、その実行結果をユーザー端末機(110)に返送する。ユーザー端末機(110)に実行結果が返されると、ユーザー端末機(110)は、当該ソフトウェアの実行を開始する(特許文献2参照)。

先行技術

0007

特開2009−146279号公報
特表2012−514277号公報

発明が解決しようとする課題

0008

しかしながら、従来技術のアプリケーションソフトウェアの提供の手続きにおいては、ドングルや紙面等の非デジタル情報媒体をその一部に介しているのが実情である。

0009

本発明は上述のような事情から為されたものであり、本発明の目的は、ドングルや紙面等の非デジタル情報媒体を介すことなく、電子通信のみのやりとりでも、高度なセキュリティが担保できるアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムを提供することにある。

課題を解決するための手段

0010

上記目的を達成するため、本発明のアプリケーションソフトウェアの提供及び認証方法は、顧客が自己の装置で使用するアプリケーションソフトウェアをその開発者から取得して利用する際のアプリケーションソフトウェアの提供及び認証方法であって、前記開発者は、前記顧客からの要求に応じ、任意の共通鍵に基づき暗号化した前記アプリケーションソフトウェアを、ネットワークを介して前記顧客に送信し、ライセンスサーバが作成した、前記アプリケーションソフトウェアに係るライセンスの情報には、顧客名、又は顧客名及び有効期限の情報が含められ、前記開発者は、前記ライセンスの情報を、前記ネットワークを介して前記顧客に送信することを要旨とする。

0011

特に、前記開発者は、前記ライセンスの情報に、前記任意の共通鍵に対して、少なくとも前記顧客名の情報を施して変換させて得られた難読化された共通鍵の情報を含ませ、前記顧客の装置に送られた暗号化されたアプリケーションソフトウェアの実行時には、前記ライセンスの情報に含まれた前記難読化された共通鍵に対して、前記難読化された共通鍵を得るための処理とは逆の処理を施して、元の共通鍵を復元し、その元の共通鍵で前記暗号化されたアプリケーションソフトウェアを復号化する。

0012

また、前記開発者は、前記ライセンスの情報に、少なくとも前記顧客名の情報に基づく電子署名を含ませ、前記顧客の装置に送られた暗号化されたアプリケーションソフトウェアは、前記電子署名に基づき、その真正が判定されることが好適である。

0013

また、前記ライセンスの情報に前記有効期限の情報が含められているときにおいて、前記ライセンスの情報に含まれた有効期限を満たすか否かの判定による前記顧客の装置に送られた前記暗号化されたアプリケーションソフトウェアの真正の判定は、前記ネットワークとオフラインの場合には、前記顧客の装置自身時刻を参照することにより行われ、一方、オンラインの場合には、前記ライセンスサーバの時刻を参照して行われることが好適である。

0014

一方、前記ライセンスサーバは、前記ライセンスの情報を作成するたびに、その情報をテーブルとして自己に保存しておくと利点がある。

0015

前記ネットワークとオンラインの場合、前記ライセンスサーバは、前記顧客の装置から、前記アプリケーションソフトウェアの使用頻度及び使用地域の情報を取得するようにすると有益である。

0016

また、1つのアプリケーションソフトウェアに、選択可能な複数の機能レベルが設定できる場合、前記開発者は、外からの指定に基づき機能レベルの自動設定が可能な1つのアプリケーションを各顧客に配布し、アプリケーションプログラムが実行時に顧客に応じてその機能レベルの自動設定を行うことも特徴である。そのとき、前記アプリケーションプログラムは、前記機能レベルの情報を前記ライセンスの情報から取得することが典型的である。

0017

また、上記目的を達成するため、本発明のアプリケーションソフトウェアの提供及び認証システムは、顧客の有する顧客装置と、顧客の要求に係るアプリケーションソフトウェアを任意の共通鍵で暗号化してその暗号化されたアプリケーションソフトウェアを前記顧客装置にネットワークを介して送信する開発者装置と、前記顧客の要求に係るアプリケーションソフトウェアに対応したライセンスの情報を作成するライセンスサーバと、を備えたアプリケーションソフトウェアの提供及び認証システムであって、前記ライセンスサーバにより作成された前記ライセンスの情報には、顧客名、又は顧客名及び有効期限の情報を含められ、前記開発者装置は、前記ライセンスの情報を、前記ネットワークを介して前記顧客装置に送信することを要旨とする。

発明の効果

0018

本発明のアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムによれば、ライセンスの情報に、少なくとも顧客名の情報を含ませているので、ドングルや紙面等の非デジタル情報媒体を介すことなく、電子通信のみのやりとりでも、高度なセキュリティが担保できる。

0019

特に、ライセンスの情報に、アプリケーションソフトウェアを暗号化するための任意の共通鍵に対して、少なくとも顧客名の情報を施して変換させて得られた難読化された共通鍵の情報を含ませるようにしたので、ライセンスの情報の顧客名が、悪意のある第三者に書き変えられた場合、その難読化された共通鍵の情報に基づき、元の共通鍵を得ようとしても真正な共通鍵は得られないので、暗号化されたアプリケーションソフトウェアの復号化には成功しない。

0020

また、顧客の装置に送られた暗号化されたアプリケーションソフトウェアの実行時には、その認証に、ネットワークとのオンライン又はオフラインに応じた融通性のある処理を行うことができる。

図面の簡単な説明

0021

本発明のアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムの実施の形態における顧客装置1、開発者装置2、及びライセンスサーバ3の相互間の手順の流れを示す図である。
開発者装置2を所有する開発者が、ライセンスサーバ3及び開発者装置2に予め行っておく処理を説明するための図である。
ライセンスサーバ3で作成されるプロダクトテーブルの例を示す図である。
プロダクトファイルPFを受信した開発者装置2が、当該プロダクトファイルPFに基づいて行う処理を説明するための図である。
ライセンスサーバ3で作成されるライセンステーブルの例を示す図である。
顧客装置1における、暗号化後アプリケーションEAPの実行について説明するための図である。
顧客装置1における、暗号化後アプリケーションEAPの実行について説明するための図である。
本発明の実施の形態の前提たる技術的環境を示す図である。

実施例

0022

以下、図面を参照して、本発明の実施の形態について詳細に説明する。
本発明の実施の形態においては、アプリケーションソフトウェアを提供する者(アプリケーションプロバイダー)を「開発者」、アプリケーションソフトウェアの提供を受ける者を「顧客」と称することとするが、これらは典型的な呼称なだけであって、これらの呼称に本発明が限定を受けることはない。

0023

図8を参照して、本発明の実施の形態における技術的環境としては、顧客の操作する顧客装置1と、開発者が操作する開発者装置2と、ライセンスサーバ3とは、典型的には、インターネット4を介して相互に接続されている。なお、「ライセンスサーバ」という名称も、典型例であって、本発明を限定するものではない。本発明を解釈するにあたっては、その機能で判断するべきものである。

0024

顧客装置1、開発者装置2、及びライセンスサーバ3は、例えば、コンピュータ装置であり、制御装置(processor)、主記憶装置(RAM:Random Access Memory)、補助記憶装置ハードディスクフラッシュメモリ等)、入出力装置キーボードマウス表示装置等)、通信装置読取り装置等で構成される。顧客装置1、開発者装置2、及びライセンスサーバ3では、各種プログラムが、主記憶装置に展開されつつ、制御装置により処理される。また、各々の通信装置は、顧客装置1、開発者装置2、及びライセンスサーバ3を、他の装置と通信可能に接続させる。更に、顧客装置1、開発者装置2、及びライセンスサーバ3の各制御装置に、各種処理を実行させるプログラムは、外部記録媒体、例えば、SDメモリカード(SD Memory Card)、FD(Floppy Disk)、CD(Compact Disk)、DVD(Digital Versatile Disk)、BD(Blu-ray Disk:登録商標)、及びフラッシュメモリ等を介して、上記補助記憶媒体に格納される。

0025

図1は、本発明のアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムの実施の形態における顧客装置1、開発者装置2、及びライセンスサーバ3の相互間の手順の流れを示す図である。なお、当該図面において、上から下に向けて時系列となっている。図2は、開発者装置2を所有する開発者が、ライセンスサーバ3及び開発者装置2に予め行っておく処理を説明するための図である。

0026

まず、図2を参照し、開発者が、ライセンスサーバ3及び開発者装置2に予め行っておく処理を説明する。開発者は、ライセンスサーバ3に対しては、アプリケーションソフトウェアを共通鍵暗号化方式で暗号化するための共通鍵を難読化するためのアルゴリズムと、そのアルゴリズムに基づくプログラムを配布しておく。また、開発者は、開発者装置2に対しては、暗号化ツール(開発者装置2内では暗号化ツール21)を配布しておく。この暗号化ツールは、任意のアプリケーションソフトウェアを暗号化するためのプログラムと、復号化用ダイナミックリンクライブラリLLとを含んでおり、その復号化用ダイナミックリンクライブラリDLLは、上述の共通鍵を難読化するためのアルゴリズムと、暗号化後のアプリケーションソフトウェアを復号化するためのプログラムとからなっている。

0027

次に、図1を参照して、顧客が任意のアプリケーションソフトウェアを開発者から購入する手順を説明する。そこで、まず、顧客は、購入したいアプリケーションソフトウェアの開発者に対して、自己の顧客装置1により、少なくとも製品(プロダクト)名を指定して購入希望の旨(購入要求)を伝達する。顧客からの当該購入要求は開発者装置2に受け付けられ、次に、その開発者装置2は、そのプロダクト名を指定しつつ、ライセンスサーバ3に対して、プロダクトファイルPFを要求する。それに応答して、ライセンスサーバ3は、開発者装置2に対してプロダクトファイルPFを送信する。そのプロダクトファイルPFには、指定されたプロダクト名と、テキスト表示された任意の共通鍵が含まれる。この共通鍵は、上述のように、アプリケーションソフトウェアを共通鍵暗号化方式で暗号化するときに使用する鍵である。プロダクトファイルPFの例を下に示す。
--- product file ---
プロダクト名: PRODUCT0
共通鍵: 30DF54B681E2E94D4C21E3EC73459039EBCF379F19FED05CEA
B1CFB1A6CDAD9F
なお、プロダクトファイルPFは、顧客に配布するわけではなく開発者のみが使用するため、共通鍵としてこのように生の値をそのまま送ってもよいが、ライセンスサーバ3への不正アクセスを考慮して、公開鍵暗号化方式により難読化しておくことが好ましい。

0028

なお、図1図2、及び図8においては、説明の便宜上、一のライセンスサーバに対して開発者が一として記載されているが、無論現実には、一のライセンスサーバ3に対して、1つ又は複数のアプリケーションソフトウェアを開発する開発者が複数存在することは言うまでもない。かかる技術的環境においては、ライセンスサーバ3は、新たな開発者からプロダクトファイルPFの要求があってプロダクトファイルPFを返信するごとに、図3に示すようなテーブルを作成して管理しておくことが好適である。

0029

図4は、プロダクトファイルPFを受信した開発者装置2が、当該プロダクトファイルPFに基づいて行う処理を説明するための図である。
開発者装置2には、図1に示すように、暗号化前アプリケーションAPが格納されているが、図2を参照して説明したように、開発者から予め暗号化ツール21が配布格納されている。そこで、まず、暗号化前アプリケーションAPについて説明すると、暗号化前アプリケーションAPは、図4(b)に示すように、暗号化前プログラム、リソース、及びエントリーポイントからなり、エントリーポイントが、プログラムの始点を指し示している

0030

図4(a)を参照して、プロダクトファイルPFを受信した開発者装置2は、その暗号化ツール21により、プロダクト名により指定された暗号化前アプリケーションAPを、プロダクトファイルPFに含まれる共通鍵を使用して暗号化処理する。この暗号化されたアプリケーションを(暗号化後アプリケーションEAP)は、復号化用ダイナミックリンクライブラリDLLと共に出力される。同図(c)は、暗号化後アプリケーションEAPを説明するための図である。同図に示すように、暗号化後アプリケーションEAPは、暗号化前アプリケーションAPの構成に対してスタブプログラムが加わる構成となっており、エントリーポイントがスタブプログラムの始点を指し示し、スタブプログラムがアプリケーションプログラムの始点を指し示すようになっている。また、スタブプログラムが復号化用ダイナミックリンクライブラリDLLを呼び出す構成となっている。

0031

このように、アプリケーションソフトウェアは暗号化されて顧客に提供されるため、バイナリデータに対してなされるような書き換えやその解析によるハッキングを防止することができる。なお、採用される共通鍵暗号化方式としては、AES(Advanced Encryption Standard)が典型であるが、その他の共通鍵暗号化方式でもよい。

0032

図1戻り、開発者装置2において生成された暗号化後アプリケーションEAPと復号化用ダイナミックリンクライブラリDLLとは、購入要求に係る顧客の顧客装置1に配布される。

0033

次に、顧客装置1に暗号化後アプリケーションEAP及び復号化用ダイナミックリンクライブラリDLLを受け取った顧客は、その顧客装置1により、有効期限を指定しつつ、開発者に対して、暗号化後アプリケーションEAPを復号するためのライセンスを要求する。開発者装置2に当該顧客からライセンス要求を受け取った開発者は、その開発者装置2により、顧客名、プロダクト名、及び有効期限を指定しつつ、ライセンスサーバ3に対してライセンスファイル(ライセンスの情報)要求を行う。

0034

開発者装置2からライセンスファイル要求を受け取ったライセンスサーバ3は、開発者装置2に対してライセンスファイルLFを送信する。そのライセンスファイルLFには、プロダクト名、有効期限、顧客名、難読化された共通鍵、及び電子署名が含まれる。ライセンスサーバ3からライセンスファイルLFを受け取った開発者装置2は、そのライセンスファイルLFを顧客装置1にメール等で送信する。このとき、メール等の通信で送れる理由は、以下説明する難読化された共通鍵や電子署名を備えたからである。なお、顧客名と有効期限の両方を含ませるのではなく、顧客名の情報のみでもよい。

0035

まず、難読化された共通鍵について説明する。ライセンスファイルPFは顧客に配布されるため、共通鍵は秘匿される必要がある。また、顧客名や有効期限が第三者により故意に書き換えられたよう場合には、アプリケーションの暗号化の解除を不能にする必要がある。従って、本発明の実施の形態においては、ライセンスファイルLFに含ませる共通鍵を、生のテキストデータではなく、それに対して特定の処理を施すことにより、難読化する。その特定の処理(図2で説明した、共通鍵を難読化するためのアルゴリズム)としては、難読化前の共通鍵と、顧客名とのデータ間、又は、難読化前の共通鍵と、顧客名及び有効期限とのデータ間で排他的論理和(EXclusive OR)をとり、そのあとSBOX(substitution box)などのルックアップテーブルを通したり、順番入れ替えたりする。なお、排他的論理和ではなく、それらのバイト値加減算でもよい。また、難読化前の共通鍵を別の共通鍵で暗号化してもよい。そのときには、その別の共通鍵は、復号化用ダイナミックリンクライブラリDLLに含ませて顧客装置1に送っておくことができる。また、難読化前の共通鍵を開発者装置2に固有秘密鍵で暗号化し、対応する公開鍵をもって顧客装置1で復号化させるようにしてもよい。そのときにも、その公開鍵は、復号化用ダイナミックリンクライブラリDLLに含ませて送ることができる。

0036

次に、電子署名について説明する。ここでの電子署名は、顧客名と有効期限の情報に基づくものである。従って、かかる電子署名により、顧客名と有効期限の情報の改ざんを検出することができる。電子署名の具体的作成においては、顧客名と有効期限の情報をSBOXなどのルックアップテーブルやSHA(Secure Hash Algorithm)などのハッシュ関数に通し、ライセンスファイルLFに記載されている値との一致をとることで行える。また、RSAやDSA(Digital Signature Algorithm)などの一般的な電子署名アルゴリズムを使用してもよい。

0037

通信途中等で不正にライセンスファイルLFを取得した者が、その顧客名を書き変えてアプリケーションソフトウェアを使用しようとした場合、上述のように、顧客名及び有効期限についての電子署名を採用したので、後述の認証の際に、認証されない。また、上述のように、共通鍵に対して、少なくとも顧客名の情報を組み入れて、難読化(書き変え)をしているので、ライセンスファイルLF内の顧客名の情報が書き変えられた場合、その書き変えられた情報に基づいて元の共通鍵を復元しようとしても、正しい共通鍵は復元できないので、暗号化後アプリケーションEAPの復号化は不可能となる。

0038

ライセンスファイルLFの例を下に示す。
--- license file ---
プロダクト名: PRODUCT0
有効期限: 2016/12/31
顧客名: AB** Corporation
難読化された共通鍵: 374E7EB28CFE0F38B0E174913A2D3277260BC5A9B1035
C098B39FF4C9C17B30C
電子署名: 7912A040D1CE675FCC0977D4968A24ECDC4F236A8FD8
C55618830FD3ADA1E938E38CBC3D5CB7581743316FC9C
BC75AD4711A67DD372FBA952E8830E147B4534

0039

なお、ライセンスサーバ3は、開発者からライセンスファイルLFの要求を受けるごとに、図5に示すように、顧客とライセンスファイルLFとの対応関係をテーブルとして確保しておくことが好適である。ここで、テーブル内の“利用停止フラグ”は、後述する認証の際に、送られてきたプロダクト名及び顧客名の情報に基づき、対応するアプリケーションソフトウェアの暗号化を解除してもよいか否かを示す情報である。なお、難読化された共通鍵及び電子署名の項目は、ライセンスの再発行が想定されないのであれば、省略できる。

0040

次に、顧客が開発者から購入した、暗号化されたアプリケーションソフトウェアの、顧客装置1における実行について説明する。なお、顧客は、暗号化後アプリケーションEAPが格納された顧客装置1内のフォルダと同じフォルダにライセンスファイルLFを格納しておくことで、その暗号化後アプリケーションEAPを復号化して実行することができる、という構成にしておくことが好適である。

0041

図6及び図7は、顧客装置1における、暗号化後アプリケーションEAPの実行について説明するための図である。図6(a)は、図4(c)に示した構成に、ライセンスファイルLFを加えて、実行時の説明のために書き変えた図である。図6(b)及び図7は、それぞれ、スタブプログラム及復号化用ダイナミックリンクライブラリDLLの処理手順を示すフローチャートである。

0042

暗号化後アプリケーションEAPに対して起動が掛かると、まず、エントリーポイントで指し示されたスタブプログラムが走り始める。図6(b)を参照して、スタブプログラムは、復号化用ダイナミックリンクライブラリDLLを呼び出す(ステップS11)。図7を参照して、呼び出された復号化用ダイナミックリンクライブラリDLLは(ステップS21において肯定判定)、ライセンスファイルLFの認証を行う(ステップS22)。

0043

具体的には、ライセンスファイルLFに含まれる電子署名に基づき、顧客名と有効期限の正当性(真正)を判定する。電子署名作成後に、ライセンスファイルLFの顧客名又は有効期限が改ざんされた場合には、電子署名の判定が否定される。加えて、ネットワークとオンラインで接続されている場合には、ライセンスサーバ3に対して、ライセンスファイルLFの有効性を問い合わせる。ライセンスサーバ3は、自身のライセンステーブル内の“利用停止フラグ”のON/OFFをみることにより、返答を行う。また、有効期限内か否かの判定においては、ネットワークとオフラインの場合には、オフラインでも可能なように、顧客装置1自身の時刻を参照することにより有効性を判定する。一方、オンラインの場合には、ライセンスサーバ3の時刻を参照して行うことにより、より強固な正当性の判定を実現する。また、開発者が顧客の不正な使用を検出できる手段として、オンラインの場合には、当該アプリケーションソフトウェアの使用状況や使用地域をライセンスサーバ3に通知するようにする。

0044

ステップS22におけるライセンスファイルLFの認証の結果、認証が否定的であった場合(ステップS23において否定判定)には、エラー処理を介して、暗号化後アプリケーションEAPの復号化が許可されない旨が通知される(ステップS24)。一方、認証が肯定的であった場合(ステップS23において肯定判定)には、復号化用ダイナミックリンクライブラリDLLは、ライセンスファイルLFから難読化された共通鍵を読み出し、難読化の処理と逆の処理をその難読化された共通鍵に施すことにより、元の共通鍵を復元する(ステップS25)。復号化用ダイナミックリンクライブラリDLLは、その復元した元の共通鍵を用いて、暗号化後アプリケーションEAPを復号化する(ステップS26)。ここで、難読化の処理のアルゴリズムは第三者には不明であるので、ライセンスファイルLF内の難読化された共通鍵の情報が不正に搾取されても、元の共通鍵を復元することは困難である。また、その難読化の処理には、正規の顧客名及び有効期限の情報が組み込まれているので、その後、ライセンスファイルLFのそれらの情報が書き変えられても、上記復号化の段階で復号できないか、又は復号化できても復号化後のアプリケーションは正常に動作しない。なお、電子署名が付されている場合には、その認証が成功すれば、顧客名及び有効期限の情報は不正に書き変えられていないと判定でき、上述の難読化された共通鍵の復元処理においても、元の共通鍵が復元できると考えられるが、何らかの理由で、電子署名の判定を通過してしまった場合に、このように二重に判定することにより、ライセンスファイルLF内の情報の保護が強固となる。

0045

図6(b)のスタブプログラムの処理に戻り、復号化用ダイナミックリンクライブラリDLLによる復号化処理が終了すると(ステップS12において肯定判定)、スタブプログラムは、制御を復号化されたプログラムの先頭ジャンプさせることにより、アプリケーションソフトウェアを実行させる(ステップS13)。

0046

なお、1つのアプリケーションに、選択可能な複数の機能レベルが設定できる場合、顧客が購入要求時に指定した機能レベルで当該アプリケーションの機能を予め限定したものを、顧客に配布するようにしてもよいが、外からの指定に基づき機能レベルの自動設定が可能な1つのアプリケーションを各顧客に配布し、アプリケーションプログラムが実行時に顧客に応じてその機能レベルの自動設定を行うようにしてもよい。そのときには、顧客は、購入要求時又はライセンス要求時にその機能レベルの情報も提供し、ライセンスサーバ3は、ライセンスファイルLFにその機能レベルの情報も加えておき、アプリケーションプログラムは、復号化用ダイナミックリンクライブラリDLLを介してその情報を取得したり、又はAPI(Application Programing Interface)経由で取得したりすることもできる。

0047

なお、上述のように暗号化後プログラムの復号化処理を復号化用ダイナミックリンクライブラリDLLに行わせたのは、C言語で開発できるという利点があるためである。スタブプログラムによっても可能ではあるが、C言語を使用できないためその分メンテナンスコストは上がってしまう。

0048

なお、上述の実施の形態においては、暗号化されたアプリケーションソフトウェアは、ネットワークを介して開発者から顧客に渡されているが、CD等の媒体を介してもよい。

0049

以上のように、アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムにおける実施形態によれば、ライセンスの情報に、少なくとも顧客名の情報を含ませているので、ドングルや紙面等の非デジタル情報媒体を介すことなく、電子通信のみのやりとりでも、高度なセキュリティが担保できる。

0050

特に、ライセンスファイルLFに、アプリケーションソフトウェアを暗号化するための共通鍵に対して、少なくとも顧客名の情報を施して変換させて得られた難読化された共通鍵の情報を含ませるようにしたので、ライセンスファイルLFの顧客名が、悪意のある第三者に書き変えられた場合、その難読化された共通鍵の情報に基づき、元の共通鍵を得ようとしても真正な共通鍵は得られないので、暗号化されたアプリケーションソフトウェアの復号化には成功しない。

0051

また、顧客装置1に送られた暗号化されたアプリケーションソフトウェアの実行時には、その認証に、ネットワーク4とのオンライン又はオフラインに応じた融通性のある処理を行うことができる。

0052

本発明のアプリケーションソフトウェアの提供及び認証方法並びにそのためのシステムは、例えば、任意の者が自身のパーソナルコンピュータで使用したい各種アプリケーションソフトウェアをその開発者のホームページ販売サイトから入手する場合の技術である。

0053

1顧客装置
2開発者装置
21暗号化ツール
3ライセンスサーバ
4インターネット
PFプロダクトファイル
LFライセンスファイル
AP暗号化前アプリケーション
EAP暗号化後アプリケーション
DLL復号化用ダイナミックリンクライブラリ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ