JP4727278B2 - アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム - Google Patents

アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム Download PDF

Info

Publication number
JP4727278B2
JP4727278B2 JP2005108885A JP2005108885A JP4727278B2 JP 4727278 B2 JP4727278 B2 JP 4727278B2 JP 2005108885 A JP2005108885 A JP 2005108885A JP 2005108885 A JP2005108885 A JP 2005108885A JP 4727278 B2 JP4727278 B2 JP 4727278B2
Authority
JP
Japan
Prior art keywords
application program
verification
source code
program interface
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005108885A
Other languages
English (en)
Other versions
JP2006293417A (ja
Inventor
裕己 山本
朋興 浮穴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2005108885A priority Critical patent/JP4727278B2/ja
Priority to US11/396,451 priority patent/US8332823B2/en
Priority to CNB2006100732128A priority patent/CN100418096C/zh
Priority to KR1020060031007A priority patent/KR100826466B1/ko
Priority to EP06251927.7A priority patent/EP1710724B1/en
Publication of JP2006293417A publication Critical patent/JP2006293417A/ja
Application granted granted Critical
Publication of JP4727278B2 publication Critical patent/JP4727278B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

本発明は、アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラムに関する。
携帯電話端末上にダウンロードして実行するアフターマーケットのアプリケーションプログラム(以下、AP(Application Program)あるいはアプリと呼ぶことがある)として、現在、国内ではJava(登録商標)技術を用いたサービスが一般的である。一方、携帯電話のプラットフォーム化が進みつつあり、今後は実行速度や提供できる機能の面で優れたC言語、C++等で記述されたネイティブアプリケーションが流通し始めている。ネイティブアプリケーションは、速度、機能面でJavaに比べて優位である反面、セキュリティ面での課題も多く、不正なAPの実行による悪影響が生じる可能性もある。そのため、携帯電話端末上でAPをダウンロードして実行する際に、不正なAPが流通しないための仕組みが検討されている。
例えば、AP開発者(ISV:Independent Software Vendor)にAPのソースコードを提示させ、不正な処理を行っていない事を確認したものに、検証済みである旨の証明を与える仕組みがある(特許文献1参照)。
あるいは、AP開発者にAPのバイナリコードを提示させ、テストハウスでブラックボックステストを行い、問題ないものを流通用のサーバに登録できる仕組みも考えられる。
特開2002−140126号公報
しかしながら、上記特許文献1に示されたようなソースコードをISVに開示させる方法は、ISVにとって自社の技術をテストハウスにみられてしまうことになり、それを嫌って市場参入を見送るISVもある。
一方、バイナリコードをテストする方法は、ソースレベルの検証に比べて検証の完全性に欠ける。それを補うために検証を充実させると、検証工数が増大し、検証に時間がかかってしまう。そのため、ISVがAPの開発を完了してから市場投入までの期間が延び、ISVがビジネスチャンスを逃す可能性もあることが懸念されている。
本発明は、かかる事情に鑑みてなされたものであり、その目的は、ISVの技術およびノウハウの流出を防ぎつつ、ソースレベルの第3者機関による検証をより短時間で行う手段を提供することにある。
本発明は、アプリケーションプログラム送信装置(以下、AP送信装置)とアプリケーションプログラム検証装置(以下、AP検証装置)とがネットワークに接続されて構成されたアプリケーションプログラム検証システム(以下、AP検証システム)であって、AP送信装置は、APのソースコードで使用されるアプリケーションプログラムインターフェース(以下、API(Application Program Interface)と呼ぶことがある)に関する情報を抽出する使用アプリケーションプログラムインターフェース抽出手段(以下、使用API抽出手段)と、APのソースコードを暗号化する暗号化手段と、抽出されたAPIに関する情報と、暗号化されたソースコードとを、ネットワークを介してAP検証装置に送信するアプリケーションプログラム送信手段(以下、AP送信手段)と、を備え、AP検証装置は、送信されたAPIに関する情報の検証を行う検証手段と、APIに関する情報の検証を行われたソースコードにデジタル署名を行うデジタル署名手段と、デジタル署名をされたソースコードをネットワークに送信する検証済みアプリケーションプログラム送信手段(以下、検証済みAP送信手段)と、を備えることを特徴とする。
この構成によれば、AP送信装置の使用API抽出手段がソースコードで使用されるAPIに関する情報を抽出し、AP送信手段がこれをAP検証装置に送信するので、AP検証装置では使用されたAPIに関する情報を受信できる。また、AP送信装置の暗号化手段がソースコードを暗号化し、AP送信手段がこれをAP検証装置に送信するので、AP検証装置では暗号化されたソースコードを受信することになり、ISVの技術およびノウハウの流出を防ぐことができる。さらに、AP検証装置の検出手段が送信されたAPIに関する情報の検証を行うので、ソースレベルの検証を短時間で行うことができる。加えて、AP検証装置のデジタル署名手段がAPIに関する情報の検証を行われたソースコードにデジタル署名を行い、検証済みAP送信手段がデジタル署名をされたソースコードをネットワークに送信するので、検証をなされデジタル署名をされたソースコードをネットワーク上に流通させることができる。
また、本発明の別の態様によれば、互いにネットワークに接続されたAP送信装置とAP検証装置とを用意するステップと、AP送信装置において、APのソースコードで使用されるAPIに関する情報を抽出し、かつAPのソースコードを暗号化するステップと、抽出されたAPIに関する情報と、暗号化されたソースコードとを、ネットワークを介してAP検証装置に送信するステップと、AP検証装置において、送信されたAPIに関する情報の検証を行うステップと、APIに関する情報の検証を行われたソースコードにデジタル署名を行うステップと、デジタル署名をされたソースコードをネットワークに送信するステップと、を含むアプリケーションプログラム検証方法(以下、AP検証方法)が提供される。
さらに、本発明の別の態様によれば、AP検証装置にネットワークを介して接続されたAP送信装置において実行可能なコンピュータプログラムであって、APのソースコードで使用されるAPIに関する情報を抽出し、かつAPのソースコードを暗号化するステップと、抽出されたAPIに関する情報と、暗号化されたソースコードとを、ネットワークを介してAP検証装置に送信するステップと、をAP送信装置に実行させるコンピュータプログラムが提供される。
本発明によるAP検証システム、AP検証方法およびコンピュータプログラムによれば、ISVの技術およびノウハウの流出を防ぎつつ、ソースレベルの第3者機関による検証をより短時間で行うことができる。
以下、本発明の実施の形態に係るAP検証システムについて添付図面を参照して説明する。なお、図面の説明において、同一または相当要素には同一の符号を付し、重複する説明は省略する。
まず、本実施形態に係るAP検証システムによる検証済みAPの配信の概略について説明する。図1は、本発明の第1実施形態に係るAP検証システムを用いて検証済みAPを配信する態様を示す図である。本実施形態のAP検証システム10は、AP開発元12(AP送信装置)と、検証機関24(AP検証装置)とがネットワーク130を介して接続されて構成されている。AP開発元12では、AP開発者14がSDK(Software Development Kit)16を用いてAPを開発する。開発されたAPのソースコード18は、後述するように提出データ生成ツール20(コンピュータプログラム)によって開発元署名22を付された提出データとされて、検証機関24にネットワーク130を介して送信される。
検証機関24では、提出データを受信データ記憶部26に蓄積する。次に後述するように、蓄積された提出データをソース解析ツール28によって解析し、その正当性を検証する。解析にはA社コード30、B社コード32というように、開発元ごとに異なったデータを用い、開発元署名22をベースに解析対象を変更する。すなわち、開発元署名22に関連付けられたチェックポリシにより、開発元ごとに異なる種類の解析を行うものとすることができる。
解析の結果、問題があるとされた場合は、その詳細が記されたエラーレポート34がネットワーク130を介してAP開発元12に返送される。一方、問題がないとされた場合は、そのソースコード18等が検証済みAP記憶部36に記憶される。そして、ソースコード18、開発元署名22および検証合格署名38を含む検証済みデータがネットワーク130に送信される。
ネットワーク130に送信された検証済みデータは、ネットワーク130の一端に接続されたコンピュータ上で動作する検証済みアプリ生成ツール40により、バイナリ42、開発元署名22および検証合格署名38を含むデータとされる。そして、アプリ配信サーバ44により、バイナリ42、開発元署名22および検証合格署名38を含むデータが、携帯電話機46にダウンロードされる。
以下、本実施形態のAP検証システムについてさらに詳細に説明する。図2は、本発明の第1実施形態に係るAP検証システムの構成を示す図である。本実施形態に係るAP検証システム10は、物理的にはネットワーク130を介して接続されたAP開発元12および検証機関24におけるコンピュータ装置として構成されている。AP開発元12において提出データ生成ツール20を実行し、検証機関24においてソース解析ツール28を実行することにより、図示する諸機能が発揮されるようになっている。なお、図2の例では、検証済みデータはAP開発元12に返信されるようになっており、AP開発元12では、検証済みアプリ生成ツール40を実行することにより、検証済みアプリ94が得られるようになっている。
提出データ生成ツール20を実行すると、AP開発元12は、使用API抽出機能50(使用API抽出手段)、暗号化機能52(暗号化手段)、真正性証明機能54およびAP送信機能56(AP送信手段)を備えるようになる。使用API抽出機能50はソースコード18で使用されるAPIに関する情報を抽出する。本実施形態では、ソースコード18より使用されるAPI名が抽出される。
図4は本発明の第1実施形態において検証するソースコードを示す図であり、図5は本発明の第1実施形態において使用APIを抽出し、使用APIを検証する例を示す図である。本実施形態のAP検証システムにおいては、図4に示すようなソースコード18から、使用API抽出機能50によって、図5に示すような使用API集合58が抽出される。
図2に戻り、暗号化機能52はソースコード18を暗号鍵A:48により暗号化して、暗号化済みソースコード60を生成する。暗号化は、DES(Data Encryption Standard)等の対象鍵暗号化方式により行うことができる。また、真正性証明機能54においては、使用API集合58と暗号化済みソースコード60とから、真正性証明データ62を生成する。この真正性証明データ62は、例えば、使用API集合58と暗号化済みソースコード60とをハッシュ関数により計算したハッシュ値とすることができる。使用API集合58、暗号化済みソースコード60および真正性証明データ62は、AP送信機能56により、ネットワーク130を介して検証機関24に送信される。
図2に示すように、検証機関24ではソース解析ツール28を実行することにより、使用API正当性チェック機能66(検証手段)、エラーレポート作成機能68、真正性確認機能70、デジタル署名機能72(デジタル署名手段)、検証済みAP送信機能76(検証済みAP送信手段)を備えるようになる。使用API正当性チェック機能66では、使用API集合58と使用許可API集合64とを照合して、使用APIの正当性を検証する。
例えば、図5に示すような使用API集合58と使用許可API集合64とが使用API正当性チェック機能66により照合されたとすると、メソッドの“Format”“Write”は使用許可API集合64にはないため、正当ではないと判断される。この場合には、エラーレポート作成機能68により、その旨を示したエラーレポート34が作成される。一方、使用API集合58での使用APIの全てが使用許可API集合64に含まれている場合は、真正性確認機能70においてAP開発元12からのデータが真正であると判断されたことを条件として、デジタル署名機能72は、暗号化済みソースコード60に秘密鍵B:74によってデジタル署名を行う。デジタル署名は、RSA等の非対称暗号鍵方式により行うことができる。
真正性確認機能70では、AP開発元12から送信されてきた使用API集合58と暗号化済みソースコード60とをハッシュ関数により計算したハッシュ値と、真正性証明データ62のハッシュ値とを照合することにより、送信されてきたデータに改竄がないことを確認することができる。
暗号鍵A:48により暗号化され秘密鍵B:74によりデジタル署名がなされた検証済みソースコード78は、検証済みAPI送信機能76により、不図示のネットワークを介して、AP開発元12に返信される。
図2に示すように、AP開発元12では、検証済みアプリ生成ツール40を実行することにより、署名確認機能84、復号化機能86、バイナリ生成機能88、証明書付与機能90を備えるようになる。署名確認機能84では、公開鍵B:80により秘密鍵B:74を復号してデジタル署名を確認する。これにより、デジタル署名が改竄されたものではなく、かつ検証機関24によりなされたものであることが証明される。復号化機能86は復号鍵A:82により暗号鍵A:48によって暗号化されたソースコードを復号する。バイナリ生成機能88は、復号化されたソースコードよりバイナリを生成する。証明書付与機能90は、検証済みアプリ生成ツール40に予め格納された証明書92をバイナリに付与して、検証済みアプリ94が生成される。
以下、本実施形態のAP検証システムの作用・効果について説明する。図7および8は従来のAP検証システムを用いて検証済みAPを配信する態様を示す図である。
図7に示すような暗号化されていないソースコードを人的リソースによりソース解析作業28を行う場合には、テスタ、コード閲覧者による情報漏洩のリスクがある。また、テスタによる検証のため、検証時間も長くなる。検証の緻密さについては、ソースコードレベルでの検証が可能ではあるが、検証の緻密さはテスタのスキルに依存するという欠点がある。
図8に示すようなバイナリを用いたブラックボックステストの場合は、バイナリ提示のみで検証が済むため、ソースコードとテスタとの接点が発生せず、ノウハウ保護の観点では優れている。しかし、ブラックボックステストのため、検証の網羅性確保に多くの工程数が必要となり、検証時間が長くなる。またブラックボックステストのため、検証の網羅性に限界がある。
一方、本実施形態においては、AP開発元に暗号化されたソースコードを提出させるため、ISVのノウハウを保護することができる。また、抽出されたAPIを検証するため、検証時間を短くできる。さらに、抽出されたAPIを検証するため、ソースコードレベルでの検証が可能であり、ツールによる自動検証のため、テスタのスキルに依存することもない。加えて、検証からバイナリ生成、アプリ配信サーバへの登録までを自動化可能であるため、ミスの発生や不正行為に対する堅牢性が高く、テスト環境の公平性を担保できる。
図3は、本発明の第2実施形態に係るAP検証システムの構成を示す図である。本実施形態では、検証済みアプリ生成ツール40の証明書付与機能90は、検証済みアプリ生成ツール40に予め格納された証明書ではなく、検証機関24から暗号化されて送信された証明書96を付与する点が、第1実施形態とは異なっている。検証機関24において、証明書96は暗号鍵C:98によって暗号化されてAP開発元12に送信される。AP開発元12では、検証済みアプリ生成ツール40の中で復号鍵C:100により暗号化済み証明書96は復号されて、検証済みアプリ94に付与される。
この態様では、証明書が検証機関から暗号化されて供給されるため、証明書自体が流出するリスクを低減することができる。また、検証レベルおよび内容に応じて個別の証明書を発行し、証明書の使い分けが可能になる。
図6は、本発明の第3実施形態に係るAP検証システムにおいて検証する使用APIの検証対象を示す図である。本実施形態では、複数のチェック機能群102,104,106において、複数種類の対象について検証を行う点が第1および第2実施形態と異なっている。チェック機能群102では、第1および第2実施形態と同様に、AP開発元12の提出データ生成ツール20は、使用API抽出機能50により使用API集合58を抽出し、検証機関24では使用API正当性チェック機能66により使用を許可された以外のAPIを呼び出していないか確認する。
チェック機能群104では、AP開発元12の提出データ生成ツール20は、API呼出順抽出機能108によりAPI呼出順序リスト112を抽出し、検証機関24ではシーケンスチェック機能118によりAPI呼出順序リスト112とシーケンス規約116とを照合して、API呼出順序がシーケンス規定を満たしているかどうか確認する。チェック機能群106では、AP開発元12の提出データ生成ツール20は、API呼出パラメータ抽出機能110によりAPI呼出時パラメータリスト114を抽出し、検証機関24ではAPI呼出時パラメータチェック機能112によりAPI呼出時パラメータリスト114とAPI使用規約120(API仕様)とを照合して、API呼出時のパラメータが規定範囲内にあるかどうかを確認する。例えば、上限値あるいは下限値のある引数の静的チェック、void引数のパラメータ型制限チェックを行う。この態様では、種々のチェック機能群を設けることにより、APについてより多岐にわたる検証を行うことができる。
尚、本発明のAP検証システム、AP検証方法およびコンピュータプログラムは、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
本発明の第1実施形態に係るAP検証システムを用いて検証済みAPを配信する態様を示す図である。 本発明の第1実施形態に係るAP検証システムの構成を示す図である。 本発明の第2実施形態に係るAP検証システムの構成を示す図である。 本発明の第1実施形態において検証するソースコードを示す図である。 本発明の第1実施形態において使用APIを抽出し、使用APIを検証する例を示す図である。 本発明の第3実施形態に係るAP検証システムにおいて検証する使用APIの検証対象を示す図である。 従来のAP検証システムを用いて検証済みAPを配信する態様を示す図である。 従来のAP検証システムを用いて検証済みAPを配信する態様を示す図である。
符号の説明
10…AP検証システム、12…AP開発元、18…ソースコード、20…提出データ生成ツール、24…検証機関、28…ソース解析ツール、34…エラーレポート、38…検証合格署名、40…検証済みアプリ生成ツール、42…バイナリ、50…使用API抽出機能、52…暗号化機能、54…真正性証明機能、56…AP送信機能、58…使用API集合、60…暗号化済みソースコード、62…真正性証明データ、64…使用許可API集合、66…使用API正当性チェック機能、68…エラーレポート作成機能、70…真正性確認機能、72…デジタル署名機能、76…検証済みAP送信機能、78…検証済みソースコード、84…署名確認機能、86…複合化機能、88…バイナリ生成機能、90…証明書付与機能、92…予め格納された証明書、94…検証済みAP、96…暗号化済み証明書、130…ネットワーク

Claims (5)

  1. アプリケーションプログラム送信装置とアプリケーションプログラム検証装置とがネットワークに接続されて構成されたアプリケーションプログラム検証システムであって、
    前記アプリケーションプログラム送信装置は、
    アプリケーションプログラムのソースコードで使用されるアプリケーションプログラムインターフェースに関する情報として、前記ソースコードで使用される前記アプリケーションプラグラムインターフェース、前記アプリケーションプログラムインターフェースの呼出順序、及び前記アプリケーションプログラムインターフェースの呼出時のパラメータを抽出する使用アプリケーションプログラムインターフェース抽出手段と、
    前記アプリケーションプログラムのソースコードを暗号化する暗号化手段と、
    前記抽出されたアプリケーションプログラムインターフェースに関する情報と、前記暗号化されたソースコードとを、前記ネットワークを介して前記アプリケーションプログラム検証装置に送信するアプリケーションプログラム送信手段と、
    を備え、
    前記アプリケーションプログラム検証装置は、
    前記送信された前記アプリケーションプログラムインターフェースに関する情報の検証として、前記ソースコードで使用される前記アプリケーションプラグラムインターフェースの正当性の検証、前記アプリケーションプログラムインターフェースの呼出順序がシーケンス規定を満たしているか否かの検証、及び前記アプリケーションプログラムインターフェースの呼出時のパラメータが規定範囲内にあるか否かの検証を行う検証手段と、
    前記アプリケーションプログラムインターフェースに関する情報の検証行われた前記暗号化されたソースコードにデジタル署名を行うデジタル署名手段と、
    前記デジタル署名をされたソースコードを前記アプリケーションプログラム送信装置に送信する検証済みアプリケーションプログラム送信手段と、
    を備える、アプリケーションプログラム検証システム。
  2. 前記アプリケーションプログラム検証装置の前記検証手段は、前記アプリケーションプログラム送信装置ごとに関連付けられたチェックポリシにより、前記アプリケーションプログラム送信装置ごとに異なる種類の検証を行なう、請求項1に記載のアプリケーションプログラム検証システム。
  3. 互いにネットワークに接続されたアプリケーションプログラム送信装置とアプリケーションプログラム検証装置とを用意するステップと、
    前記アプリケーションプログラム送信装置において、
    アプリケーションプログラムのソースコードで使用されるアプリケーションプログラムインターフェースに関する情報として、前記ソースコードで使用される前記アプリケーションプラグラムインターフェース、前記アプリケーションプログラムインターフェースの呼出順序、及び前記アプリケーションプログラムインターフェースの呼出時のパラメータを抽出し、かつ前記アプリケーションプログラムのソースコードを暗号化するステップと、
    前記抽出されたアプリケーションプログラムインターフェースに関する情報と、前記暗号化されたソースコードとを、前記ネットワークを介して前記アプリケーションプログラム検証装置に送信するステップと、
    前記アプリケーションプログラム検証装置において、
    前記送信されたアプリケーションプログラムインターフェースに関する情報の検証として、前記ソースコードで使用される前記アプリケーションプラグラムインターフェースの正当性の検証、前記アプリケーションプログラムインターフェースの呼出順序がシーケンス規定を満たしているか否かの検証、及び前記アプリケーションプログラムインターフェースの呼出時のパラメータが規定範囲内にあるか否かの検証を行うステップと、
    前記アプリケーションプログラムインターフェースに関する情報の検証行われた前記暗号化されたソースコードにデジタル署名を行うステップと、
    前記デジタル署名をされたソースコードを前記アプリケーションプログラム送信装置に送信するステップと、を含むアプリケーションプログラム検証方法。
  4. 前記送信されたアプリケーションプログラムインターフェースに関する情報の検証として、前記ソースコードで使用される前記アプリケーションプラグラムインターフェースの正当性の検証、前記アプリケーションプログラムインターフェースの呼出順序がシーケンス規定を満たしているか否かの検証、及び前記アプリケーションプログラムインターフェースの呼出時のパラメータが規定範囲内にあるか否かの検証を行うステップでは、前記アプリケーションプログラム送信装置ごとに関連付けられたチェックポリシにより、前記アプリケーションプログラム送信装置ごとに異なる種類の検証を行なう、請求項3に記載のアプリケーションプログラム検証方法。
  5. アプリケーションプログラム検証装置にネットワークを介して接続されたアプリケーションプログラム送信装置において実行可能なコンピュータプログラムであって、
    アプリケーションプログラムのソースコードで使用されるアプリケーションプログラムインターフェースに関する情報として、前記ソースコードで使用される前記アプリケーションプラグラムインターフェース、前記アプリケーションプログラムインターフェースの呼出順序、及び前記アプリケーションプログラムインターフェースの呼出時のパラメータを抽出し、かつ前記アプリケーションプログラムのソースコードを暗号化するステップと、
    前記抽出されたアプリケーションプログラムインターフェースに関する情報と、前記暗号化されたソースコードとを、前記ネットワークを介して前記アプリケーションプログラム検証装置に送信するステップと、を前記アプリケーションプログラム送信装置に実行させるコンピュータプログラム。
JP2005108885A 2005-04-05 2005-04-05 アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム Expired - Fee Related JP4727278B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005108885A JP4727278B2 (ja) 2005-04-05 2005-04-05 アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
US11/396,451 US8332823B2 (en) 2005-04-05 2006-04-04 Application program verification system, application program verification method and computer program
CNB2006100732128A CN100418096C (zh) 2005-04-05 2006-04-05 应用程序验证***和应用程序验证方法
KR1020060031007A KR100826466B1 (ko) 2005-04-05 2006-04-05 애플리케이션 프로그램 검증 시스템, 애플리케이션프로그램 검증방법 및 컴퓨터 프로그램
EP06251927.7A EP1710724B1 (en) 2005-04-05 2006-04-05 Application program verification system, application program verification method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005108885A JP4727278B2 (ja) 2005-04-05 2005-04-05 アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2006293417A JP2006293417A (ja) 2006-10-26
JP4727278B2 true JP4727278B2 (ja) 2011-07-20

Family

ID=36693867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005108885A Expired - Fee Related JP4727278B2 (ja) 2005-04-05 2005-04-05 アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US8332823B2 (ja)
EP (1) EP1710724B1 (ja)
JP (1) JP4727278B2 (ja)
KR (1) KR100826466B1 (ja)
CN (1) CN100418096C (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092107A1 (en) * 2006-09-27 2008-04-17 Mcwilliam Joshua Software Development and Sales Life-Cycle Services
US8074205B2 (en) * 2007-04-18 2011-12-06 Microsoft Corporation Binary verification service
US8997054B2 (en) * 2007-11-30 2015-03-31 Red Hat, Inc. Software application certification service
US8621591B2 (en) * 2010-10-19 2013-12-31 Symantec Corporation Software signing certificate reputation model
KR101295644B1 (ko) * 2011-11-11 2013-09-16 한국전자통신연구원 스마트폰 앱 검증 시스템 및 그 방법
CN103514000B (zh) * 2012-06-26 2015-09-16 腾讯科技(深圳)有限公司 浏览器插件安装方法和装置
US8843887B2 (en) * 2012-08-31 2014-09-23 Oracle International Corporation Fast dispatch predicate for overloaded functions with generic type hierarchies that lack contravariance
CN103823665B (zh) * 2012-11-19 2017-02-22 ***通信集团公司 一种sdk活跃度分析方法、网络服务器及***
JP5863689B2 (ja) * 2013-02-28 2016-02-17 京セラドキュメントソリューションズ株式会社 不正使用防止機能付き共有ライブラリ
US9805202B2 (en) * 2013-11-13 2017-10-31 Evident.io, Inc. Automated SDK ingestion
CN103914329B (zh) * 2014-03-20 2017-05-10 北京京东尚科信息技术有限公司 编译程序的方法和装置
CN104035874B (zh) * 2014-06-30 2017-11-07 深圳数字电视国家工程实验室股份有限公司 一种软件程序检测方法、装置及***
US9841972B2 (en) 2014-12-17 2017-12-12 Cisco Technology, Inc. Securing secret information in source code verification and at runtime
US9921941B2 (en) * 2015-04-10 2018-03-20 Siemens Aktiengesellschaft Verification and validation of third party PLC code
CN106156609B (zh) * 2015-04-21 2020-08-04 宇龙计算机通信科技(深圳)有限公司 应用程序的认证、安装方法、装置及终端
US9471285B1 (en) * 2015-07-09 2016-10-18 Synopsys, Inc. Identifying software components in a software codebase
JP6531564B2 (ja) 2015-08-26 2019-06-19 富士ゼロックス株式会社 情報処理システム
CN108259413B (zh) 2016-12-28 2021-06-01 华为技术有限公司 一种获取证书、鉴权的方法及网络设备
US10061921B1 (en) * 2017-02-13 2018-08-28 Trend Micro Incorporated Methods and systems for detecting computer security threats
JP6660911B2 (ja) * 2017-03-30 2020-03-11 Kddi株式会社 信頼性判定装置、信頼性判定システムおよびソースコード共有システム
JP6730235B2 (ja) * 2017-08-31 2020-07-29 株式会社日立製作所 アプリケーション稼働監視装置および監視方法
RU2697951C2 (ru) 2018-02-06 2019-08-21 Акционерное общество "Лаборатория Касперского" Система и способ прекращения работы функционально ограниченного приложения, взаимосвязанного с веб-сайтом, запускаемого без установки
KR102229879B1 (ko) * 2019-03-25 2021-03-19 (주)블록체인글로벌 소스코드관리방법, 이를 수행하는 소스코드관리서버, 및 이를 이용한 소스코드개발방법
JP7272156B2 (ja) * 2019-07-16 2023-05-12 富士電機株式会社 情報処理装置、情報処理方法
CN113126996B (zh) * 2019-12-31 2023-10-20 华控清交信息科技(北京)有限公司 代码审核的方法、装置及***
CN114285584B (zh) * 2021-12-22 2024-01-16 北京正奇盾数据安全技术有限公司 一种加密算法实验***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0444176A (ja) * 1990-06-11 1992-02-13 Mitsubishi Electric Corp ソフトウエア開発支援ツール
JPH05334125A (ja) * 1992-06-03 1993-12-17 Toshiba Corp ソフトウエアの仕様検証方法
JPH10320234A (ja) * 1997-05-21 1998-12-04 Hitachi Ltd ソフトウェアの自動テスト方法
JP2001109644A (ja) * 1999-10-07 2001-04-20 Fujitsu Ltd プログラム検証方法及び装置
JP2001273169A (ja) * 2000-03-24 2001-10-05 Toshiba Corp プログラムテスト仕様書生成装置
JP2003337630A (ja) * 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2004133793A (ja) * 2002-10-11 2004-04-30 Dainippon Printing Co Ltd 動作解析装置、プログラム開発システム及び動作解析プログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724425A (en) 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5692047A (en) * 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
US6067575A (en) 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
GB2359908B (en) * 2000-03-04 2004-09-15 Motorola Inc Communication system architecture and method of controlling data download to subscriber equipment
US6766353B1 (en) * 2000-07-11 2004-07-20 Motorola, Inc. Method for authenticating a JAVA archive (JAR) for portable devices
KR20020009994A (ko) * 2000-07-28 2002-02-02 신형인 내구 성능이 향상된 공기입 타이어
DE60115072T3 (de) * 2000-09-21 2010-04-01 Research In Motion Ltd., Waterloo System und verfahren zum unterschreiben eines software-kodes
JP4067757B2 (ja) 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
EP1340167A2 (en) * 2000-11-28 2003-09-03 4thPass Inc. Method and system for maintaining and distributing wireless applications
US20020067833A1 (en) * 2000-12-05 2002-06-06 Han Ching-Chih (Jason) Method and apparatus for providing conditional access to the source code of a program
DE10108487A1 (de) * 2001-02-22 2002-09-12 Giesecke & Devrient Gmbh Verfahren und System zur verteilten Erstellung eines Programms für einen programmierbaren, tragbaren Datenträger
US7099663B2 (en) * 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
KR100443621B1 (ko) * 2002-02-25 2004-08-09 주식회사 마크애니 개인용 컴퓨터 기반의 고유 아이디를 이용한 휴대용 정보단말기의 어플리케이션의 인증방법과 이를 이용한 시스템
CN1653783B (zh) * 2002-03-20 2010-06-16 捷讯研究有限公司 移动轻量密码目录访问的***和方法
US7822495B2 (en) * 2002-04-15 2010-10-26 Fisher-Rosemount Systems, Inc. Custom function blocks for use with process control systems
US20030212639A1 (en) * 2002-05-06 2003-11-13 Cronce Paul A. Method and system for providing secure authoring services for protected software
US7272830B2 (en) * 2003-01-16 2007-09-18 Sun Microsystems, Inc. Ordering program data for loading on a device
US7165246B2 (en) * 2003-01-16 2007-01-16 Sun Microsystems, Inc. Optimized representation of data type information in program verification
EP1565867A1 (en) * 2003-02-21 2005-08-24 Matsushita Electric Industrial Co., Ltd. Software-management system, recording medium, and information-processing device
FR2864654B1 (fr) * 2003-12-30 2007-02-23 Trusted Logic Procede de determination de caracteristiques operationnelles d'un programme
US7434217B2 (en) * 2004-04-06 2008-10-07 Scenera Technologies, Llc Method and system for distributing a software application to a specified recipient
GB2413407B (en) * 2004-04-22 2007-11-07 Ibm Method and system for software or data distribution
CN1311341C (zh) * 2004-05-10 2007-04-18 杭州斯达康通讯有限公司 将计算机数据下载至手机时进行数字签名的方法
US7685596B1 (en) * 2004-09-01 2010-03-23 The Mathworks, Inc. Deploying and distributing of applications and software components
US8156488B2 (en) * 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
US7730455B2 (en) * 2004-11-08 2010-06-01 Ntt Docomo, Inc. Method and apparatus for enforcing safety properties of computer programs by generating and solving constraints
US20060161968A1 (en) * 2004-12-21 2006-07-20 Nintendo Co., Ltd. Method and apparatus for secure delivery and evaluation of prototype software over a network
EP1754335B1 (en) * 2005-06-24 2009-10-28 Research In Motion Limited System and method for associating message addresses with certificates

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0444176A (ja) * 1990-06-11 1992-02-13 Mitsubishi Electric Corp ソフトウエア開発支援ツール
JPH05334125A (ja) * 1992-06-03 1993-12-17 Toshiba Corp ソフトウエアの仕様検証方法
JPH10320234A (ja) * 1997-05-21 1998-12-04 Hitachi Ltd ソフトウェアの自動テスト方法
JP2001109644A (ja) * 1999-10-07 2001-04-20 Fujitsu Ltd プログラム検証方法及び装置
JP2001273169A (ja) * 2000-03-24 2001-10-05 Toshiba Corp プログラムテスト仕様書生成装置
JP2003337630A (ja) * 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2004133793A (ja) * 2002-10-11 2004-04-30 Dainippon Printing Co Ltd 動作解析装置、プログラム開発システム及び動作解析プログラム

Also Published As

Publication number Publication date
CN100418096C (zh) 2008-09-10
US8332823B2 (en) 2012-12-11
CN1848129A (zh) 2006-10-18
EP1710724A2 (en) 2006-10-11
EP1710724A3 (en) 2012-03-28
US20060236114A1 (en) 2006-10-19
KR20060107344A (ko) 2006-10-13
JP2006293417A (ja) 2006-10-26
KR100826466B1 (ko) 2008-05-02
EP1710724B1 (en) 2013-07-17

Similar Documents

Publication Publication Date Title
JP4727278B2 (ja) アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
US7797545B2 (en) System and method for registering entities for code signing services
CN103685138B (zh) 移动互联网上的Android平台应用软件的认证方法和***
Six Application Security for the Android Platform: Processes, Permissions, and Other Safeguards
CN101194229B (zh) 更新数据指令的方法和设备
CA2561608C (en) System and method for registering entities for code signing services
CN105659559A (zh) 验证远程服务器的安全性
US20070074031A1 (en) System and method for providing code signing services
US20080168562A1 (en) Secure Processing Device and Secure Processing System
CN106529218B (zh) 一种应用校验方法和装置
CN110290102A (zh) 基于应用的业务安全***及方法
CN106055936B (zh) 可执行程序数据包加密/解密方法及装置
CN111200589A (zh) 一种联盟链的数据保护方法及***
CN104992082B (zh) 软件授权方法、装置及电子设备
EP1862937A1 (en) Secure processing device and secure processing system
CN109660353A (zh) 一种应用程序安装方法及装置
US20070074032A1 (en) Remote hash generation in a system and method for providing code signing services
JP2014078964A (ja) 署名方法および装置
US20100211772A1 (en) Collaborative Reconciliation of Application Trustworthiness
EP1785901B1 (en) Secure License Key Method and System
CN112887340B (zh) 密码重置方法、装置、业务管理终端及存储介质
WO2020088323A1 (zh) 一种能力开放方法及装置
JP4295684B2 (ja) プログラム製作装置
CN101222334B (zh) 一种采用图片干扰的密码令牌安全认证方法
KR101642267B1 (ko) 앱 위변조 방지시스템 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110412

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110413

R150 Certificate of patent or registration of utility model

Ref document number: 4727278

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees