(57)【要約】【課題】  ＩＳＶの技術およびノウハウの流出を防ぎつつ、ソースレベルの第３者機関による検証をより短時間で行う手段を提供する。【解決手段】  ＡＰ検証システム１０は、ネットワーク１３０を介して接続されたＡＰ開発元１２および検証機関２４からなる。使用ＡＰＩ抽出機能５０はソースコード１８で使用されるＡＰＩ名が抽出される。暗号化機能５２はソースコード１８を暗号化する。使用ＡＰＩ集合５８、暗号化済みソースコード６０はＡＰ送信機能５６により検証機関２４に送信される。検証機関２４の使用ＡＰＩ正当性チェック機能６６では、使用ＡＰＩの正当性を検証する。使用ＡＰＩが正当である場合、デジタル署名機能７２は、暗号化済みソースコード６０にデジタル署名を行う。暗号化されデジタル署名がなされた検証済みソースコード７８は、検証済みＡＰＩ送信機能７６によりＡＰ開発元１２に返信される。【選択図】  図２
2006293417.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラム送信装置とアプリケーションプログラム検証装置とがネットワークに接続されて構成されたアプリケーションプログラム検証システムであって、
前記アプリケーションプログラム送信装置は、
アプリケーションプログラムのソースコードで使用されるアプリケーションプログラムインターフェースに関する情報を抽出する使用アプリケーションプログラムインターフェース抽出手段と、
前記アプリケーションプログラムのソースコードを暗号化する暗号化手段と、
前記抽出されたアプリケーションプログラムインターフェースに関する情報と、前記暗号化されたソースコードとを、前記ネットワークを介して前記アプリケーションプログラム検証装置に送信するアプリケーションプログラム送信手段と、
を備え、
前記アプリケーションプログラム検証装置は、
前記送信されたアプリケーションプログラムインターフェースに関する情報の検証を行う検証手段と、
前記アプリケーションプログラムインターフェースに関する情報の検証を行われたソースコードにデジタル署名を行うデジタル署名手段と、
前記デジタル署名をされたソースコードを前記ネットワークに送信する検証済みアプリケーションプログラム送信手段と、
を備える、
アプリケーションプログラム検証システム。
【請求項２】
互いにネットワークに接続されたアプリケーションプログラム送信装置とアプリケーションプログラム検証装置とを用意するステップと、
前記アプリケーションプログラム送信装置において、
アプリケーションプログラムのソースコードで使用されるアプリケーションプログラムインターフェースに関する情報を抽出し、かつ前記アプリケーションプログラムのソースコードを暗号化するステップと、
前記抽出されたアプリケーションプログラムインターフェースに関する情報と、前記暗号化されたソースコードとを、前記ネットワークを介して前記アプリケーションプログラム検証装置に送信するステップと、
前記アプリケーションプログラム検証装置において、
前記送信されたアプリケーションプログラムインターフェースに関する情報の検証を行うステップと、
前記アプリケーションプログラムインターフェースに関する情報の検証を行われたソースコードにデジタル署名を行うステップと、
前記デジタル署名をされたソースコードを前記ネットワークに送信するステップと、
を含むアプリケーションプログラム検証方法。
【請求項３】
アプリケーションプログラム検証装置にネットワークを介して接続されたアプリケーションプログラム送信装置において実行可能なコンピュータプログラムであって、
アプリケーションプログラムのソースコードで使用されるアプリケーションプログラムインターフェースに関する情報を抽出し、かつ前記アプリケーションプログラムのソースコードを暗号化するステップと、
前記抽出されたアプリケーションプログラムインターフェースに関する情報と、前記暗号化されたソースコードとを、前記ネットワークを介して前記アプリケーションプログラム検証装置に送信するステップと、
を前記アプリケーションプログラム送信装置に実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
携帯電話端末上にダウンロードして実行するアフターマーケットのアプリケーションプログラム（以下、ＡＰ（Application Program）あるいはアプリと呼ぶことがある）として、現在、国内ではＪａｖａ（登録商標）技術を用いたサービスが一般的である。一方、携帯電話のプラットフォーム化が進みつつあり、今後は実行速度や提供できる機能の面で優れたＣ言語、C＋＋等で記述されたネイティブアプリケーションが流通し始めている。ネイティブアプリケーションは、速度、機能面でＪａｖａに比べて優位である反面、セキュリティ面での課題も多く、不正なＡＰの実行による悪影響が生じる可能性もある。そのため、携帯電話端末上でＡＰをダウンロードして実行する際に、不正なＡＰが流通しないための仕組みが検討されている。
【０００３】
例えば、ＡＰ開発者（ＩＳＶ：Independent Software Vendor）にＡＰのソースコードを提示させ、不正な処理を行っていない事を確認したものに、検証済みである旨の証明を与える仕組みがある（特許文献１参照）。
【０００４】
あるいは、ＡＰ開発者にＡＰのバイナリコードを提示させ、テストハウスでブラックボックステストを行い、問題ないものを流通用のサーバに登録できる仕組みも考えられる。
【特許文献１】特開２００２−１４０１２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に示されたようなソースコードをＩＳＶに開示させる方法は、ＩＳＶにとって自社の技術をテストハウスにみられてしまうことになり、それを嫌って市場参入を見送るＩＳＶもある。
【０００６】
一方、バイナリコードをテストする方法は、ソースレベルの検証に比べて検証の完全性に欠ける。それを補うために検証を充実させると、検証工数が増大し、検証に時間がかかってしまう。そのため、ＩＳＶがＡＰの開発を完了してから市場投入までの期間が延び、ＩＳＶがビジネスチャンスを逃す可能性もあることが懸念されている。
【０００７】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、ＩＳＶの技術およびノウハウの流出を防ぎつつ、ソースレベルの第３者機関による検証をより短時間で行う手段を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、アプリケーションプログラム送信装置（以下、ＡＰ送信装置）とアプリケーションプログラム検証装置（以下、ＡＰ検証装置）とがネットワークに接続されて構成されたアプリケーションプログラム検証システム（以下、ＡＰ検証システム）であって、ＡＰ送信装置は、ＡＰのソースコードで使用されるアプリケーションプログラムインターフェース（以下、ＡＰＩ（Application Program Interface）と呼ぶことがある）に関する情報を抽出する使用アプリケーションプログラムインターフェース抽出手段（以下、使用ＡＰＩ抽出手段）と、ＡＰのソースコードを暗号化する暗号化手段と、抽出されたＡＰＩに関する情報と、暗号化されたソースコードとを、ネットワークを介してＡＰ検証装置に送信するアプリケーションプログラム送信手段（以下、ＡＰ送信手段）と、を備え、ＡＰ検証装置は、送信されたＡＰＩに関する情報の検証を行う検証手段と、ＡＰＩに関する情報の検証を行われたソースコードにデジタル署名を行うデジタル署名手段と、デジタル署名をされたソースコードをネットワークに送信する検証済みアプリケーションプログラム送信手段（以下、検証済みＡＰ送信手段）と、を備えることを特徴とする。
【０００９】
この構成によれば、ＡＰ送信装置の使用ＡＰＩ抽出手段がソースコードで使用されるＡＰＩに関する情報を抽出し、ＡＰ送信手段がこれをＡＰ検証装置に送信するので、ＡＰ検証装置では使用されたＡＰＩに関する情報を受信できる。また、ＡＰ送信装置の暗号化手段がソースコードを暗号化し、ＡＰ送信手段がこれをＡＰ検証装置に送信するので、ＡＰ検証装置では暗号化されたソースコードを受信することになり、ＩＳＶの技術およびノウハウの流出を防ぐことができる。さらに、ＡＰ検証装置の検出手段が送信されたＡＰＩに関する情報の検証を行うので、ソースレベルの検証を短時間で行うことができる。加えて、ＡＰ検証装置のデジタル署名手段がＡＰＩに関する情報の検証を行われたソースコードにデジタル署名を行い、検証済みＡＰ送信手段がデジタル署名をされたソースコードをネットワークに送信するので、検証をなされデジタル署名をされたソースコードをネットワーク上に流通させることができる。
【００１０】
また、本発明の別の態様によれば、互いにネットワークに接続されたＡＰ送信装置とＡＰ検証装置とを用意するステップと、ＡＰ送信装置において、ＡＰのソースコードで使用されるＡＰＩに関する情報を抽出し、かつＡＰのソースコードを暗号化するステップと、抽出されたＡＰＩに関する情報と、暗号化されたソースコードとを、ネットワークを介してＡＰ検証装置に送信するステップと、ＡＰ検証装置において、送信されたＡＰＩに関する情報の検証を行うステップと、ＡＰＩに関する情報の検証を行われたソースコードにデジタル署名を行うステップと、デジタル署名をされたソースコードをネットワークに送信するステップと、を含むアプリケーションプログラム検証方法（以下、ＡＰ検証方法）が提供される。
【００１１】
さらに、本発明の別の態様によれば、ＡＰ検証装置にネットワークを介して接続されたＡＰ送信装置において実行可能なコンピュータプログラムであって、ＡＰのソースコードで使用されるＡＰＩに関する情報を抽出し、かつＡＰのソースコードを暗号化するステップと、抽出されたＡＰＩに関する情報と、暗号化されたソースコードとを、ネットワークを介してＡＰ検証装置に送信するステップと、をＡＰ送信装置に実行させるコンピュータプログラムが提供される。
【発明の効果】
【００１２】
本発明によるＡＰ検証システム、ＡＰ検証方法およびコンピュータプログラムによれば、ＩＳＶの技術およびノウハウの流出を防ぎつつ、ソースレベルの第３者機関による検証をより短時間で行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態に係るＡＰ検証システムについて添付図面を参照して説明する。なお、図面の説明において、同一または相当要素には同一の符号を付し、重複する説明は省略する。
【００１４】
まず、本実施形態に係るＡＰ検証システムによる検証済みＡＰの配信の概略について説明する。図１は、本発明の第１実施形態に係るＡＰ検証システムを用いて検証済みＡＰを配信する態様を示す図である。本実施形態のＡＰ検証システム１０は、ＡＰ開発元１２（ＡＰ送信装置）と、検証機関２４（ＡＰ検証装置）とがネットワーク１３０を介して接続されて構成されている。ＡＰ開発元１２では、ＡＰ開発者１４がＳＤＫ（Software Development Kit）１６を用いてＡＰを開発する。開発されたＡＰのソースコード１８は、後述するように提出データ生成ツール２０（コンピュータプログラム）によって開発元署名２２を付された提出データとされて、検証機関２４にネットワーク１３０を介して送信される。
【００１５】
検証機関２４では、提出データを受信データ記憶部２６に蓄積する。次に後述するように、蓄積された提出データをソース解析ツール２８によって解析し、その正当性を検証する。解析にはＡ社コード３０、Ｂ社コード３２というように、開発元ごとに異なったデータを用い、開発元署名２２をベースに解析対象を変更する。すなわち、開発元署名２２に関連付けられたチェックポリシにより、開発元ごとに異なる種類の解析を行うものとすることができる。
【００１６】
解析の結果、問題があるとされた場合は、その詳細が記されたエラーレポート３４がネットワーク１３０を介してＡＰ開発元１２に返送される。一方、問題がないとされた場合は、そのソースコード１８等が検証済みＡＰ記憶部３６に記憶される。そして、ソースコード１８、開発元署名２２および検証合格署名３８を含む検証済みデータがネットワーク１３０に送信される。
【００１７】
ネットワーク１３０に送信された検証済みデータは、ネットワーク１３０の一端に接続されたコンピュータ上で動作する検証済みアプリ生成ツール４０により、バイナリ４２、開発元署名２２および検証合格署名３８を含むデータとされる。そして、アプリ配信サーバ４４により、バイナリ４２、開発元署名２２および検証合格署名３８を含むデータが、携帯電話機４６にダウンロードされる。
【００１８】
以下、本実施形態のＡＰ検証システムについてさらに詳細に説明する。図２は、本発明の第１実施形態に係るＡＰ検証システムの構成を示す図である。本実施形態に係るＡＰ検証システム１０は、物理的にはネットワーク１３０を介して接続されたＡＰ開発元１２および検証機関２４におけるコンピュータ装置として構成されている。ＡＰ開発元１２において提出データ生成ツール２０を実行し、検証機関２４においてソース解析ツール２８を実行することにより、図示する諸機能が発揮されるようになっている。なお、図２の例では、検証済みデータはＡＰ開発元１２に返信されるようになっており、ＡＰ開発元１２では、検証済みアプリ生成ツール４０を実行することにより、検証済みアプリ９４が得られるようになっている。
【００１９】
提出データ生成ツール２０を実行すると、ＡＰ開発元１２は、使用ＡＰＩ抽出機能５０（使用ＡＰＩ抽出手段）、暗号化機能５２（暗号化手段）、真正性証明機能５４およびＡＰ送信機能５６（ＡＰ送信手段）を備えるようになる。使用ＡＰＩ抽出機能５０はソースコード１８で使用されるＡＰＩに関する情報を抽出する。本実施形態では、ソースコード１８より使用されるＡＰＩ名が抽出される。
【００２０】
図４は本発明の第１実施形態において検証するソースコードを示す図であり、図５は本発明の第１実施形態において使用ＡＰＩを抽出し、使用ＡＰＩを検証する例を示す図である。本実施形態のＡＰ検証システムにおいては、図４に示すようなソースコード１８から、使用ＡＰＩ抽出機能５０によって、図５に示すような使用ＡＰＩ集合５８が抽出される。
【００２１】
図２に戻り、暗号化機能５２はソースコード１８を暗号鍵Ａ：４８により暗号化して、暗号化済みソースコード６０を生成する。暗号化は、ＤＥＳ（Data Encryption Standard）等の対象鍵暗号化方式により行うことができる。また、真正性証明機能５４においては、使用ＡＰＩ集合５８と暗号化済みソースコード６０とから、真正性証明データ６２を生成する。この真正性証明データ６２は、例えば、使用ＡＰＩ集合５８と暗号化済みソースコード６０とをハッシュ関数により計算したハッシュ値とすることができる。使用ＡＰＩ集合５８、暗号化済みソースコード６０および真正性証明データ６２は、ＡＰ送信機能５６により、ネットワーク１３０を介して検証機関２４に送信される。
【００２２】
図２に示すように、検証機関２４ではソース解析ツール２８を実行することにより、使用ＡＰＩ正当性チェック機能６６（検証手段）、エラーレポート作成機能６８、真正性確認機能７０、デジタル署名機能７２（デジタル署名手段）、検証済みＡＰ送信機能７６（検証済みＡＰ送信手段）を備えるようになる。使用ＡＰＩ正当性チェック機能６６では、使用ＡＰＩ集合５８と使用許可ＡＰＩ集合６４とを照合して、使用ＡＰＩの正当性を検証する。
【００２３】
例えば、図５に示すような使用ＡＰＩ集合５８と使用許可ＡＰＩ集合６４とが使用ＡＰＩ正当性チェック機能６６により照合されたとすると、メソッドの“Ｆｏｒｍａｔ”“Ｗｒｉｔｅ”は使用許可ＡＰＩ集合６４にはないため、正当ではないと判断される。この場合には、エラーレポート作成機能６８により、その旨を示したエラーレポート３４が作成される。一方、使用ＡＰＩ集合５８での使用ＡＰＩの全てが使用許可ＡＰＩ集合６４に含まれている場合は、真正性確認機能７０においてＡＰ開発元１２からのデータが真正であると判断されたことを条件として、デジタル署名機能７２は、暗号化済みソースコード６０に秘密鍵Ｂ：７４によってデジタル署名を行う。デジタル署名は、ＲＳＡ等の非対称暗号鍵方式により行うことができる。
【００２４】
真正性確認機能７０では、ＡＰ開発元１２から送信されてきた使用ＡＰＩ集合５８と暗号化済みソースコード６０とをハッシュ関数により計算したハッシュ値と、真正性証明データ６２のハッシュ値とを照合することにより、送信されてきたデータに改竄がないことを確認することができる。
【００２５】
暗号鍵Ａ：４８により暗号化され秘密鍵Ｂ：７４によりデジタル署名がなされた検証済みソースコード７８は、検証済みＡＰＩ送信機能７６により、不図示のネットワークを介して、ＡＰ開発元１２に返信される。
【００２６】
図２に示すように、ＡＰ開発元１２では、検証済みアプリ生成ツール４０を実行することにより、署名確認機能８４、復号化機能８６、バイナリ生成機能８８、証明書付与機能９０を備えるようになる。署名確認機能８４では、公開鍵Ｂ：８０により秘密鍵Ｂ：７４を復号してデジタル署名を確認する。これにより、デジタル署名が改竄されたものではなく、かつ検証機関２４によりなされたものであることが証明される。復号化機能８６は復号鍵Ａ：８２により暗号鍵Ａ：４８によって暗号化されたソースコードを復号する。バイナリ生成機能８８は、復号化されたソースコードよりバイナリを生成する。証明書付与機能９０は、検証済みアプリ生成ツール４０に予め格納された証明書９２をバイナリに付与して、検証済みアプリ９４が生成される。
【００２７】
以下、本実施形態のＡＰ検証システムの作用・効果について説明する。図７および８は従来のＡＰ検証システムを用いて検証済みＡＰを配信する態様を示す図である。
【００２８】
図７に示すような暗号化されていないソースコードを人的リソースによりソース解析作業２８を行う場合には、テスタ、コード閲覧者による情報漏洩のリスクがある。また、テスタによる検証のため、検証時間も長くなる。検証の緻密さについては、ソースコードレベルでの検証が可能ではあるが、検証の緻密さはテスタのスキルに依存するという欠点がある。
【００２９】
図８に示すようなバイナリを用いたブラックボックステストの場合は、バイナリ提示のみで検証が済むため、ソースコードとテスタとの接点が発生せず、ノウハウ保護の観点では優れている。しかし、ブラックボックステストのため、検証の網羅性確保に多くの工程数が必要となり、検証時間が長くなる。またブラックボックステストのため、検証の網羅性に限界がある。
【００３０】
一方、本実施形態においては、ＡＰ開発元に暗号化されたソースコードを提出させるため、ＩＳＶのノウハウを保護することができる。また、抽出されたＡＰＩを検証するため、検証時間を短くできる。さらに、抽出されたＡＰＩを検証するため、ソースコードレベルでの検証が可能であり、ツールによる自動検証のため、テスタのスキルに依存することもない。加えて、検証からバイナリ生成、アプリ配信サーバへの登録までを自動化可能であるため、ミスの発生や不正行為に対する堅牢性が高く、テスト環境の公平性を担保できる。
【００３１】
図３は、本発明の第２実施形態に係るＡＰ検証システムの構成を示す図である。本実施形態では、検証済みアプリ生成ツール４０の証明書付与機能９０は、検証済みアプリ生成ツール４０に予め格納された証明書ではなく、検証機関２４から暗号化されて送信された証明書９６を付与する点が、第１実施形態とは異なっている。検証機関２４において、証明書９６は暗号鍵Ｃ：９８によって暗号化されてＡＰ開発元１２に送信される。ＡＰ開発元１２では、検証済みアプリ生成ツール４０の中で復号鍵Ｃ：１００により暗号化済み証明書９６は復号されて、検証済みアプリ９４に付与される。
【００３２】
この態様では、証明書が検証機関から暗号化されて供給されるため、証明書自体が流出するリスクを低減することができる。また、検証レベルおよび内容に応じて個別の証明書を発行し、証明書の使い分けが可能になる。
【００３３】
図６は、本発明の第３実施形態に係るＡＰ検証システムにおいて検証する使用ＡＰＩの検証対象を示す図である。本実施形態では、複数のチェック機能群１０２，１０４，１０６において、複数種類の対象について検証を行う点が第１および第２実施形態と異なっている。チェック機能群１０２では、第１および第２実施形態と同様に、ＡＰ開発元１２の提出データ生成ツール２０は、使用ＡＰＩ抽出機能５０により使用ＡＰＩ集合５８を抽出し、検証機関２４では使用ＡＰＩ正当性チェック機能６６により使用を許可された以外のＡＰＩを呼び出していないか確認する。
【００３４】
チェック機能群１０４では、ＡＰ開発元１２の提出データ生成ツール２０は、ＡＰＩ呼出順抽出機能１０８によりＡＰＩ呼出順序リスト１１２を抽出し、検証機関２４ではシーケンスチェック機能１１８によりＡＰＩ呼出順序リスト１１２とシーケンス規約１１６とを照合して、ＡＰＩ呼出順序がシーケンス規定を満たしているかどうか確認する。チェック機能群１０６では、ＡＰ開発元１２の提出データ生成ツール２０は、ＡＰＩ呼出パラメータ抽出機能１１０によりＡＰＩ呼出時パラメータリスト１１４を抽出し、検証機関２４ではＡＰＩ呼出時パラメータチェック機能１１２によりＡＰＩ呼出時パラメータリスト１１４とＡＰＩ使用規約１２０（ＡＰＩ仕様）とを照合して、ＡＰＩ呼出時のパラメータが規定範囲内にあるかどうかを確認する。例えば、上限値あるいは下限値のある引数の静的チェック、ｖｏｉｄ引数のパラメータ型制限チェックを行う。この態様では、種々のチェック機能群を設けることにより、ＡＰについてより多岐にわたる検証を行うことができる。
【００３５】
尚、本発明のＡＰ検証システム、ＡＰ検証方法およびコンピュータプログラムは、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００３６】
【図１】本発明の第１実施形態に係るＡＰ検証システムを用いて検証済みＡＰを配信する態様を示す図である。
【図２】本発明の第１実施形態に係るＡＰ検証システムの構成を示す図である。
【図３】本発明の第２実施形態に係るＡＰ検証システムの構成を示す図である。
【図４】本発明の第１実施形態において検証するソースコードを示す図である。
【図５】本発明の第１実施形態において使用ＡＰＩを抽出し、使用ＡＰＩを検証する例を示す図である。
【図６】本発明の第３実施形態に係るＡＰ検証システムにおいて検証する使用ＡＰＩの検証対象を示す図である。
【図７】従来のＡＰ検証システムを用いて検証済みＡＰを配信する態様を示す図である。
【図８】従来のＡＰ検証システムを用いて検証済みＡＰを配信する態様を示す図である。
【符号の説明】
【００３７】
１０…ＡＰ検証システム、１２…ＡＰ開発元、１８…ソースコード、２０…提出データ生成ツール、２４…検証機関、２８…ソース解析ツール、３４…エラーレポート、３８…検証合格署名、４０…検証済みアプリ生成ツール、４２…バイナリ、５０…使用ＡＰＩ抽出機能、５２…暗号化機能、５４…真正性証明機能、５６…ＡＰ送信機能、５８…使用ＡＰＩ集合、６０…暗号化済みソースコード、６２…真正性証明データ、６４…使用許可ＡＰＩ集合、６６…使用ＡＰＩ正当性チェック機能、６８…エラーレポート作成機能、７０…真正性確認機能、７２…デジタル署名機能、７６…検証済みＡＰ送信機能、７８…検証済みソースコード、８４…署名確認機能、８６…複合化機能、８８…バイナリ生成機能、９０…証明書付与機能、９２…予め格納された証明書、９４…検証済みＡＰ、９６…暗号化済み証明書、１３０…ネットワーク
【図１】
2006293417.tif 000003
【図２】
2006293417.tif 000004
【図３】
2006293417.tif 000005
【図４】
2006293417.tif 000006
【図５】
2006293417.tif 000007
【図６】
2006293417.tif 000008
【図７】
2006293417.tif 000009
【図８】
2006293417.tif 000010