JP5190800B2 - プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム - Google Patents

プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム Download PDF

Info

Publication number
JP5190800B2
JP5190800B2 JP2008501772A JP2008501772A JP5190800B2 JP 5190800 B2 JP5190800 B2 JP 5190800B2 JP 2008501772 A JP2008501772 A JP 2008501772A JP 2008501772 A JP2008501772 A JP 2008501772A JP 5190800 B2 JP5190800 B2 JP 5190800B2
Authority
JP
Japan
Prior art keywords
program
security
domain information
security domain
execution control
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
JP2008501772A
Other languages
English (en)
Other versions
JPWO2007097439A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008501772A priority Critical patent/JP5190800B2/ja
Publication of JPWO2007097439A1 publication Critical patent/JPWO2007097439A1/ja
Application granted granted Critical
Publication of JP5190800B2 publication Critical patent/JP5190800B2/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

本発明は、プログラムの実行制御システム、実行制御方法、及び実行制御用コンピュータプログラムに関し、特に、携帯端末などの情報通信端末に格納されているシステム及びデータを保護しながらアプリケーションプログラム等の実行を可能とする実行制御システム、実行制御方法、及び実行制御用プログラムに関する。
携帯端末などの情報通信端末が、有線または無線のネットワークを介して外部からアプリケーションプログラムやデバイスドライバ或いはライブラリなどを取り込む場合、取り込んだプログラムの悪意ある動作等から、情報通信端末内に保持してあるデータに不正にアクセスされたり、端末のシステムの安定した動作が阻害されたりする虞がある。そのため、プログラムなどの配布元を確認したり、プログラムが配信途中で改竄されていないかどうかを検証したり、プログラムが通信端末のシステム及び資源へアクセスする際に制限をする実行制御技術が必要である。この種の実効制御技術は、通信端末に外部メモリカードを装着してアプリケーションプログラムなどを取り込む場合にも必要となる。
従来のアプリケーションプログラムの実行制御手法について簡単に説明する。
文献1には、Linux(登録商標)のセキュリティを強化するSELinux(Security−EnhancedLinux)についての説明がある。このSELinuxを通信端末やコンピュータ端末に導入すると、SELinuxモジュールがLinuxカーネルに組み込まれ、セキュリティ・ポリシー・ファイル(設定ファイル)とSELinux拡張コマンドが追加される。セキュリティ管理者は、SELinux拡張コマンドを実行してセキュリティ・ポリシー・ファイルを参照し或いはその内容を変更してSELinuxの管理作業を行なうようにしている。
文献2には、JVM(Java Virtual Machine)上で動作するクラスファイル(CPUアーキテクチャ非依存の中間コード)のセキュリティを強化するJavaセキュリティについての説明がある。このJavaセキュリティをもつJVMを導入した通信端末やコンピュータ端末では、クラスファイル実行時のセキュリティポリシが設定可能である。複数のクラスファイルをまとめた、証明書付のJARファイルをJVMにロードする際にセキュリティポリシが適用され、セキュリティを確保している。
文献3に記載されている実行制御システムによれば、API(Application Program Interface)を高レベルAPIと低レベルAPIとで構成し、信頼判断手段と安全度評価手段とを備えている。高レベルAPIは自分を呼び出したアプリケーションプログラムが証明書をもっているか否かを判断し、証明書を持っていて、その証明書が正しい場合は、低レベルAPIを呼び出して要求した機能を実行する。この低レベルAPIを呼び出す許可に際しては、証明書内のコード作成者情報と許可する機能との対応を記したテーブルが用いられる。或いは、証明書自身に許可する機能そのものを記す場合もある。一方、証明書がない場合、或いはその証明書が正しくない場合には、要求された機能を実行する際の安全度評価を行なっている。機能を実行しても安全だと評価された場合、低レベルAPIの呼び出しを行う。
文献4に記載されている実行制御システムによれば、認証モジュールに設けたTRM(Tamper Resistant Module)部は、アプリケーションプログラムの認証のための情報を耐タンパ領域に保持する。この情報を用いて、端末ダウンロード部にダウンロードされたアプリケーションプログラムの認証を行い、アプリケーションプログラムの出所の確認や改竄の有無の検証を行う。認証済みのアプリケーションプログラムに対してのみ、端末のローカルリソースの利用を許可することにより、不正なアプリケーションプログラムによるローカルリソースの利用を防止できる。
文献5に記載の実行制御システムによれば、アプリケーションプログラムの起動を検知し、起動されたアプリケーションプログラムからのリソース利用要求を一時保留し、起動されたアプリケーションプログラムが正規のものであるか否かを検証する。検証の結果が正規のプログラムと判断された場合にのみ一時保留した処理要求を許可するようにしている。
文献6は、ネットワーク等を介して信頼性のないソースから入手したソフトウエアを安全に実行するための制御システムを開示している。この文献6によれば、署名入り内容から署名部分を抽出し、抽出した署名に基づいて、内容に関連した信認証明と内容を使用するためのリソース要件とを抽出する。更に、信認証明を使用して署名入り内容の信頼性と完全性を確認し、この信頼性と完全性の何れかに疑いがある場合には補正動作をするようにしている。
文献7は、通信網を介してコンテンツ提供者からソフトウエアを購入する際、購入の度にコンテンツ提供者に対して事前の手続を不要とするコンテンツ提供手法を開示している。即ち、ソフトウエア毎に「コンテンツ提供を受けるためのアクセス条件」を予め定めておき、利用者がソフトウエアの記録媒体を購入した後、コンテンツ提供を受けるためにコンテンツ提供者(コンテンツサーバ)に最初にアクセスしたとき、購入したソフトウエアに予め付与されているソフト種別と最初のアクセス時に提示した識別IDとから、上述のアクセス条件に合致するかを判定し、合致している場合にのみコンテンツ提供を行うようにしている。
文献1 「SELinux徹底ガイド」(中村雄一、水上友宏、上野修一著、日経BP社、2004年3月、24頁〜41頁及び87頁〜89頁)
文献2 「Java2プラットフォームセキュリティ」(リー・ゴーン=著、島田秋雄+波多浩昭+川上貴=訳、株式会社ピアソン・エデュケーション、41頁〜48頁)(Javaは登録商標)
文献3 特開2002−351563号公報
文献4 特開2003−223235号公報
文献5 特開2003−108253号公報
文献6 特開平10−91427号公報
文献7 特開2002−41366号公報
文献1では、アプリケーションプログラムを新たに追加する場合、追加しようとするアプリケーションプログラムに応じてセキュリティポリシデータベースを更新する必要がある。しかしながら、セキュリティ設定に過不足や漏れがないことを保証する正しいセキュリティポリシデータベースの構築は難易度が高いのが通常であり、セキュリティ設定管理を厳格に行う装置ではアプリケーションプログラムを新たに追加することが困難であり、したがって、セキュリティポリシデータベースの更新後も所定のセキュリティを保持することが非常に難しいという問題がある。
文献2は、CPUアーキテクチャ非依存のJVM上でのセキュリティ確保を目的とした技術である。JVMは通信端末やコンピュータ端末上のOS(Operating System)上に搭載され、OSから見れば1つのアプリケーションである。よって、JVM上のセキュリティ通信端末やコンピュータ端末上で動作するすべてのプログラムのセキュリティを確保できない。例えば、JVM上で動作するクラスファイルは、OSのシステムコールなどを呼び出すネイティブメソッド呼び出し機能を備えているが、そのネイティブメソッドを呼び出すと、JVM上のセキュリティの適用範囲外となる。また、クラスファイルは、JAR(JavaArchive)ファイルとしてJVMに配布される。このJARファイルは、複数クラスファイルを含み、それらクラスファイルの素性を証明する証明書を含んでもよい。しかし、JARファイルを展開しもクラスファイルに証明書は添付されないので、展開されたクラスファイルの各々を他の場所に移動させると、その素性に応じたセキュリティは確保されない。
文献3によるセキュリティ強化では、高レベルAPIが実行しているアプリケーションプログラムと同一空間に存在するため、信頼性判断手段及び安全度評価手段とアクセスを許可する機能との対応を記したテーブルの情報、或いは、コード作成者と許可する機能との対応を記したテーブルの情報が詐称される虞がある。
文献4による実行制御では、個々のアプリケーションプログラムについてアプリケーションプログラムが利用するリソース情報が必要であり、限られたリソース(メモリ)しか持たない携帯電話などでは、リソース確保のために端末の製造コストが上がる虞があり、或いは、製造コストを上げないようにすればリソース不足となる問題がある。
文献5による実効制御では、アプリケーションプログラムの改竄検知のためのハッシュ値を管理するモジュールが存在しているので管理が大変であり、業務アプリケーションプログラムと同一プロセス空間でフィルタモジュールが稼動するために詐称されやすいという問題がある。
文献6に記載された制御システムを、例えば、携帯電話のような機器に応用する場合、携帯電話の製造者或いは機種ごとに使用制限をしたい機能/リソースが異なることがある。携帯電話のようにメモリが限られている端末機器においては、内容ごとにリソース要件を異ならせると、内容の数が多くなるとメモリ消費に問題がでる可能性がある。
文献7に記載のアクセス制御では、コンテンツ提供を受けようとする際には必ずコンテンツサーバと通信を行う必要があり、従って、通信が不可能な場合にはコンテンツの提供を受けることができないという問題がある。
本発明の目的は、厳密にセキュリティ設定管理がなされている装置であっても、セキュリティポリシデータベースを更新することなくプログラムの追加を行うことができるプログラムの実行制御手法を提供することにある。
本発明の他の目的は、セキュリティの考慮がなされていないプログラムを実行しても安全なプログラムの実行制御手法を提供することにある。
本発明の更に他の目的は、端末内のセキュリティを確保する仕組みが容易に詐称されないプログラムの実行制御手法を提供することである。
本発明の更に他の目的は、プログラムの実行にあたり、必要最低限のリソース(メモリ)のみでセキュリティ確保が可能なプログラムの実行制御手法を提供することである。
本発明の更に他の目的は、プログラムを実行するシステム内のリソースへのアクセス許可をプログラムの製作者が決定するのではなく、携帯端末に格納してあるシステムが許可することを可能とするプログラムの実行制御手法を提供することである。
請求項1に記載の発明は、コンピュータ上で動作するプログラム毎にセキュリティポリシデータを参照し、プログラムが利用できる機能を制限するプログラムの実行制御システ
ムであって、プログラムに関連付けられたセキュリティドメインを決定する第1の手段と、決定したセキュリティドメインとセキュリティポリシデータとに基づいてセキュリティドメインで規定されている制限内でのみそのプログラムを正常に動作させる第2の手段とを有することを特徴とするプログラムの実行制御システムである。
請求項2に記載の発明は、第1及び第2の手段の一部あるいはすべてをOS内の手段として有することを特徴とする請求項1に記載のプログラムの実行制御システムである。
請求項3に記載の発明は、コンピュータ上で動作するプログラム毎にセキュリティポリシデータを参照し、プログラムが利用できる機能を制限するプログラムの実行制御システムであって、プログラムに関連付けられたセキュリティドメインを決定する第1の手段と、決定したセキュリティドメインの情報をセキュリティポリシデータで規定されている複数の機能アクセス種別の何れかに関連付けてアクセス制御を設定する第2の手段とを有することを特徴とするプログラムの実行制御システムである。
請求項4に記載の発明は、前記第1及び第2の手段の一部あるいはすべてをOS内の手段として有することを特徴とする請求項3に記載のプログラムの実行制御システムである。
請求項5に記載の発明は、プログラムにデジタル署名又はデジタル証明書が添付されているかどうかを検証する検証手段を更に有することを特徴とする請求項3または請求項4に記載のプログラムの実行制御システムである。
請求項6に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティドメインを取得することにより行なわれる請求項5に記載のプログラムの実行制御システムである。
請求項7に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されている証明書或いは署名を検証することにより行なわれる請求項5に記載のプログラムの実行制御システムである。
請求項8に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティポリシデータ内で使用される識別子を取得することにより行なわれる請求項5に記載のプログラムの実行制御システムである。
請求項9に記載の発明は、複数のプログラムからなるパッケージに添付されたセキュリティドメイン情報を取出す機能と、取出したセキュリティドメイン情報を前記パッケージに含まれる複数のプログラムの夫々に添付する機能を有する手段を更に有することを特徴とする請求項3に記載のプログラムの実行制御システムである。
請求項10に記載の発明は、前記パッケージにデジタル署名又はデジタル証明書が添付されているかどうかを検証する手段を更に有することを特徴とする請求項9に記載のプログラムの実行制御システムである。
請求項11に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティドメインを取得することにより行なわれる請求項10に記載のプログラムの実行制御システムである。
請求項12に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されている証明書或いは署名を検証することにより行なわれる請求項10に記載のプログラムの実行制御システムである。
請求項13に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティポリシデータ内で使用される識別子を取得することにより行なわれる請求項10に記載のプログラムの実行制御システムである。
請求項14に記載の発明は、コンピュータ上で動作するプログラム毎にセキュリティポリシデータを参照し、プログラムが利用できる機能を制限するプログラムの実行制御方法であって、プログラムに関連付けられたセキュリティドメインを決定する第1の工程と、決定したセキュリティドメインとセキュリティポリシデータとに基づいてセキュリティドメインで規定されている制限内でのみそのプログラムを正常に動作させる第2の工程とを有することを特徴とするプログラムの実行制御方法である。
請求項15に記載の発明は、前記第1及び第2の工程の一部あるいはすべてをOS内で実施される工程として有することを特徴とする請求項14に記載のプログラムの実行制御システムである。
請求項16に記載の発明は、コンピュータ上で動作するプログラム毎にセキュリティポリシデータを参照し、プログラムが利用できる機能を制限するプログラムの実行制御方法であって、プログラムに関連付けられたセキュリティドメインを決定する第1の工程と、決定したセキュリティドメインの情報をセキュリティポリシデータで規定されている複数の機能アクセス種別の何れかに関連付ける第2の工程とを有することを特徴とするプログラムの実行制御方法である。
請求項17に記載の発明は、前記第1及び第2の工程の一部あるいはすべてをOS内で実施される工程として有することを特徴とする請求項16に記載のプログラムの実行制御システムである。
請求項18に記載の発明は、プログラムにデジタル署名又はデジタル証明書が添付されているかどうかを検証する工程を更に有することを特徴とする請求項16または請求項17に記載のプログラムの実行制御方法である。
請求項19に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティドメインを取得することにより行なわれる請求項18に記載のプログラムの実行制御方法である。
請求項20に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されている証明書或いは署名を検証することにより行なわれる請求項18に記載のプログラムの実行制御方法である。
請求項21に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティポリシデータ内で使用される識別子を取得することにより行なわれる請求項18に記載のプログラムの実行制御方法である。
請求項22に記載の発明は、複数のプログラムからなるパッケージに添付されたセキュリティドメイン情報を取出す工程と、取出したセキュリティドメイン情報を前記パッケージに含まれる複数のプログラムの夫々に添付する工程とを更に有することを特徴とする請求項16に記載のプログラムの実行制御方法である。
請求項23に記載の発明は、前記パッケージにデジタル署名又はデジタル証明書が添付されているかどうかを検証する工程を更に有することを特徴とする請求項22に記載のプログラムの実行制御方法。
請求項24に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティドメインを取得することにより行なわれる請求項23に記載のプログラムの実行制御方法である。
請求項25に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されている証明書或いは署名を検証することにより行なわれる請求項23に記載のプログラムの実行制御方法である。
請求項26に記載の発明は、セキュリティドメインの決定は、プログラムに予め付加されているセキュリティポリシデータ内で使用される識別子を取得することにより行なわれる請求項23に記載のプログラムの実行制御方法である。
請求項27に記載の発明は、請求項14乃至26のいずれかに記載のプログラムの実行制御方法を実現するためのコンピュータプログラムである。
請求項28に記載の発明は、請求項1乃至13のいずれかに記載の実行制御システム上で動作するプログラムに対してその実行制御システム上でセキュリティドメインを決定する際に必要な情報を添付する手段を有することを特徴とするプログラム配信サーバである。
請求項29に記載の発明は、請求項9乃至13のいずれかに記載の実行制御システム上で動作するプログラムを複数含むパッケージに対し、その実行制御システム上でセキュリティドメインを決定する際に必要な情報を添付する手段を有することを特徴とするプログラム配信サーバである。
請求項30に記載の発明は、請求項14乃至21のいずれかに記載の実行制御方法により動作するプログラムに対し、その実行制御方法によってセキュリティドメインを決定する際に必要な情報を添付する工程を有することを特徴とするプログラム配信方法である。
請求項31に記載の発明は、請求項22乃至26のいずれかに記載の実行制御方法により動作するプログラムを複数含むパッケージに対し、その実行制御方法によってセキュリティドメインを決定する際に必要な情報を添付する工程を有することを特徴とするプログラム配信方法である。
請求項32に記載の発明は、請求項30または32に記載のプログラム配信方法を実現するためのコンピュータプログラムである。
第1に、プログラムを情報通信端末に追加する際に、端末内に予め用意されているセキュリティポリシデータベースを更新する必要がないため、セキュリティポリデータベースの複雑な再構築の作業が不要となる効果がある。その理由は、追加しようとするプログラムに添付されているセキュリティドメイン情報に基づいてセキュリティポリシデータベース内のアクセス制御ルールを決定し、そのルールをプログラムに関連付けるためである。
第2に、セキュリティが考慮されていないプログラムを実行したとしても、情報通信端末内で不正な動作やアクセスなどを排除できるという効果がある。その理由は、プログラムを実行する際にその実行可能ファイルにセキュリティドメイン情報を添付するためである。その結果、プログラムを実行する場合、そのセキュリティドメイン情報により得られるプログラムの素性に基づいて端末内部の複数の機能毎にアクセスを制御できる。また、OS(Operating System)レベルで「機能アクセスの制御手段」を実現しているので、OS自体に備わっている既存のシステムコールインタフェースによりプログラムを動作させることができる。従って、プログラム自体に改造を加える必要がないという効果もある。さらに、本発明をOS上で実施するようにすれば、OSレベルでセキュリティを確保するので、そのOSを搭載した機器上のすべてのプログラムに対してセキュリティを確保できるという効果もある。
第3に、プログラム実行時のアドレス空間(プロセス)外でセキュリティを確保しているので、容易に詐称されないという効果がある。その理由は、セキュリティ確保を目的とした「機能アクセスの制御手段」を、上述のように、OSレベルで実現しているためである。
第4に、プログラムを実行するにあたり、必要最低限のリソースのみで安全に実行できる効果がある。その理由は、プログラム毎に異なるアクセス制御などを行なうのではなく、セキュリティドメイン情報ごとの制御情報を予め端末内に保持しておき、プログラムにはセキュリティドメイン情報のみ添付し、そのプログラムを通信端末上で実行する際には、そのセキュリティドメイン情報に対応する制御情報を適用してアクセス制御などを実現しているためである。このため、端末内の制御情報は、セキュリティドメイン情報の数だけ予め用意しておくだけでよい。
第5に、通信端末内のセキュリティを確保するにあたり、いかなるプログラムについても、端末自身がそのプログラムの素性により適切なアクセス制御を実施することができるという効果がある。その理由は、プログラムの製作者が、そのプログラムが使用しようとするリソース情報をプログラムに添付するのではなく、所属するセキュリティドメイン情報をプログラムに添付し、そのプログラムを端末上で実行する際には、そのセキュリティドメイン情報に対応する制御情報を適用してアクセス制御を実現しているためである。さらに、そのセキュリティドメイン情報は、改竄されてないことを保証するためデジタル署名またはデジタル証明書を使用している。
図1は、第1の実施の形態を説明するためのブロック図
図2は、第1の実施の形態を説明するためのプログラム配信サーバのブロック図
図3は、第1の実施の形態で使用されるセキュリティポリシデータベースの内容例を示す図
図4は、第1の実施の形態で使用されるアプリケーションプログラムなどのファイル構造を簡単に示す図
図5は、第1の実施の形態で使用されるセキュリティドメイン種別とセキュリティIDとの関係を示す図
図6は、第1の実施の形態の動作を説明するためのフローチャート
図7は、第2の実施の形態を説明するためのブロック図
図8は、第2の実施の形態を説明するためのプログラム配信サーバのブロック図
図9は、第2の実施の形態の動作を説明するためのフローチャート
図10は、第3の実施の形態を説明するためのブロック図
図11は、第4の実施の形態を説明するためのブロック図
図12は、第4の実施の形態の動作を説明するためのフローチャート
図13は、第5の実施の形態を説明するためのブロック図
図14は、第6の実施の形態を説明するためのプログラム配信サーバのブロック図
図15は、第6の実施の形態を説明するためのブロック図
図16は、第7の実施の形態を説明するためのブロック図
図17は、本発明に係る実施例を説明するためのセキュリティポリシデータベースの内容例を示す図
10:携帯端末、12:プログラム配信サーバ、101、201:CPU、102、202:RAM、103、203:ROM、104、204:HDD、105、205:外部メモリ、106、206:出力装置、107、207:入力装置、108、208:通信装置、109:アプリケーション取得手段、110:ユーザデータ、111:ライブラリ、112:アプリケーションプログラム、113:デバイスドライバ、114:OS処理手段、115:実行制御処理手段、116:ドメイン情報取出/添付手段、116b:ドメイン情報取出/ID添付手段、117:署名検証/添付手段、1151:制御手段、118、1152:セキュリティドメイン情報取得手段、1152b:セキュリティID取得手段、1153:検証手段、119、1154:アクセス制御設定手段、1155:アクセス制御手段、1156:セキュリティポリシデータベース、209:ドメイン埋め込み手段、210:証明書あるいは署名添付手段、211:パッケージ作成手段、212:ドメイン情報セキュリティID変換手段
本明細書で説明する実施の形態では、移動体通信などに使用される携帯端末を例に挙げて説明する。しかし、本発明は、携帯端末への応用に限定されるものではなく、アプリケーションプログラムなどを外部から取り込んで使用する種々の情報関連機器に応用可能である。
本発明に係る第1の実施の形態を図1〜図6を参照して説明する。
第1の実施の形態は、図1に示すように、大きく分けて、携帯端末10とプログラム配信サーバ12とから構成され、これらは有線或いは無線ネットワークを介して接続している。
携帯端末10は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、HDD(Hard Disk Drive)104、外部メモリ105、出力装置106、入力装置107、通信装置108、プログラム取得手段109、ユーザデータ110、ライブラリ111、アプリケーションプログラム112、デバイスドライバ113、OS(Operating System)処理手段114、実行制御処理手段115などを備えている。
実行制御処理手段115は、制御手段1151、セキュリティドメイン情報取得手段1152、検証手段1153、アクセス制御設定手段1154、アクセス制御手段1155、セキュリティポリシデータベース1156等から構成されている。
図1に示すように、携帯端末10のユーザ空間では、プログラム取得手段109、ユーザデータ110、ライブラリ111、アプリケーションプログラム112が動作し、一方、携帯端末10のカーネル空間では、OS処理手段114、デバイスドライバ113、実行制御処理手段115が動作する。
ユーザデータ110、ライブラリ111、アプリケーションプログラム112は、実際には、夫々、携帯端末10に取り込まれたユーザデータ、ライブラリ、アプリケーションプログラムを指すが、本明細書では説明を簡単にするため、携帯端末10に取り込まれる前のユーザデータ、ライブラリ、アプリケーションプログラムについても、夫々、参照番号110、111、112を付す場合がある。
また、アプリケーションプログラム112は、JVM(Java Virtual Machine)上で動作する中間コードではなく、CPU101が直接解釈可能な実行コードを含んでいる。
上述の手段及び装置の動作について説明する。
CPU101は、携帯端末10内の手段及び装置の制御、プログラムの実行の制御、演算処理などに使用される。RAM102は、携帯端末10内の手段及び装置を制御するプログラムの実行時に一時的に使用される記憶領域である。なお、RAM102は実行コードそのものを一時的に記憶する場合もある。ROM103は、読出しのみが可能な記憶装置であり、上述の手段及び装置を制御するプログラムの実行コード及びデータなどを記憶し、記憶されている実行コードおよびデータは携帯端末10の電源OFFによっても消滅しない。
HDD104は、RAM102に比べて読書きの速度は遅いが、記憶容量が大きいという特徴があり、携帯端末10の電源をOFFにしても記憶されている実行コードおよびデータは消滅しない。外部メモリ105は、携帯端末10に着脱可能な読書き可能な記憶装置であり、アプリケーションプログラム112、ライブラリ111、ユーザデータ110、およびデバイスドライバ113などの実行コードやデータ等を記憶させることができ、携帯端末10に装着することにより、携帯端末10に、プログラム、実行コード、データなどを追加することができる。
出力装置106は、携帯端末10が処理した結果をディスプレイに表示したり、音声で出力する装置である。入力装置107は、例えば、キー(ボタン)を備え、携帯端末10に新たな処理の実行を指示するために使用される。
通信装置108は、携帯端末10の外部と通信し、アプリケーションプログラム112、ライブラリ111、ユーザデータ110、デバイスドライバ113などのデータや実行コードを携帯端末10に取り込む際に使用される。即ち、プログラム取得手段109は、通信装置108を介して、プログラム配信サーバ12からアプリケーションプログラム等を携帯端末10内に取得する。尚、上述したように、着脱可能な外部メモリ105からもアプリケーションプログラム等を取得可能である。
OS処理手段114は、OS(例えばHDD104に格納されている)を用いて処理を行う手段であり、アプリケーションプログラム112が呼び出すシステムコールの処理を行うと共に、このシステムコール処理中に制御手段1151を呼び出す。
制御手段1151は、実行制御処理手段115の他の構成手段1152〜1155を制御してアプリケーションプログラム112の実行制御を行う。尚、アプリケーションプログラム112と同様に、ライブラリ111の実行制御も行なう場合もあるが、説明を簡単にするため、アプリケーションプログラム112の実行制御を中心にして説明する。
セキュリティドメイン情報取得手段1152は、アプリケーションプログラム112に関連付けられたセキュリティドメイン情報を取得し、検証手段1153は、アプリケーションプログラム112に添付されたデジタル署名(又はデジタル証明書)の検証処理を行う。アクセス制御設定手段1154は、セキュリティドメイン情報取得手段1152が取得したセキュリティドメイン情報に基づいて「取得したアプリケーションプログラム」に適応されるセキュリティポリシを決定し、決定したセキュリティポリシをアプリケーションプログラム112に設定する。アクセス制御手段1155は、アプリケーションプログラム112が携帯端末10の機能にアクセスする際のアクセス制限を行うものであり、アクセス制御についてのセキュリティポリシは、セキュリティポリシデータベース1156に保持されている。尚、図1に示したHDD104は必須の装置ではなく、更に、図1では表示装置、電源等の本発明の実施に直接関係のない装置の図示を省略している。
図2にプログラム配信サーバ12の構成の一例を示す。プログラム配信サーバ12は、少なくとも、CPU201、RAM202、ROM203、HDD204、外部メモリ205、出力装置206、入力装置207、通信装置208、ドメイン埋込手段209、証明書或いは署名添付手段210から構成されている。図2の装置或いは手段201〜208の機能は、図1の携帯端末10の101〜108と同じなので説明を省略する。
ドメイン埋込手段209は、HDD204などに格納されている送信予定のアプリケーションプログラムにセキュリティドメイン情報を埋め込む機能を有する。一方、証明書或いは署名添付手段210は、セキュリティドメイン情報が埋め込まれたアプリケーションプログラムについて、携帯端末10上での改竄チェックを容易にするためにハッシュ関数などを用いてハッシュ値を求めてその値を含んだ署名或いは証明書を添付する。
次に、第1の実施の形態の動作を、図1〜図6を参照して詳細に説明する。
まず、プログラム配信サーバ12が携帯端末10に配布するアプリケーションプログラムを準備するまでの動作を説明する。アプリケーションプログラムを通信装置208或いは外部メモリ205からプログラム配信サーバ12の内部に入力し、例えばHDD204等に格納する。このとき、アプリケーションプログラムが所属するセキュリティドメイン情報も入力する。ドメイン埋込手段209は、入力されたアプリケーションプログラムにドメイン情報を添付し、次いで、証明書或いは署名添付手段210がセキュリティドメイン情報が埋め込まれたアプリケーションプログラムのハッシュ値を求め、その値を含んだ署名或いは証明書を添付する。その後、アプリケーションプログラムは、通信装置208を介して携帯端末10に送信されるか、或いは、脱着可能な外部メモリ205に格納される。
尚、アプリケーションプログラムファイルにドメインを埋め込む機能はプログラム配信サーバ12ではなく他のサーバで実現し、ドメインを埋め込んだファイルをプログラム配信サーバ12に置くようにしてもよい。つまり、プログラム配信サーバ12で上述のすべての処理を行うのでなく、いくつかのサーバで処理を分担するようにしてもよい。
図3は、図1のセキュリティポリシデータベース1156の構成例を簡単に示す図である。
携帯端末10に格納されているアプリケーションプログラム112は、図3に示す複数のセキュリティIDのいずれかに関連付けられ、そのセキュリティIDで一意に識別されるアクセス制御ルール(セキュリティコンテキスト)により許可された機能(例えばA〜Eの全部又は一部)にアクセス可能である。ここでいう機能とは、後述する本実施の形態のように本発明が携帯端末に応用される場合には、図17に示すように、「電話をかける」、「通話料金制御」、「サウンド機能」、「通信する」、「画面を使う」等の機能を指す。
図3を参照すると、例えば、アプリケーションプログラム112がセキュリティIDの3に関連付けられた場合、そのアプリケーションプログラム112は、機能Cと機能Eのみにアクセス可能であり、機能A、機能B、機能Dについてはアクセス禁止であることを示している。
図4は、図1のアプリケーションプログラム112、ライブラリ111、およびデバイスドライバ113夫々のファイルのデータ構成例を簡単に示した図であり、図示の例では、実行コード、セキュリティドメイン情報、デジタル署名から成る。
図4に示すファイルのデータ構成例がアプリケーションプログラム112のものとすると、図4に示すように、このアプリケーションプログラム112は、実行コード、セキュリティドメイン情報、デジタル署名で構成されていてもよいし、実行コード及びセキュリティドメイン情報のみで構成されていてもよいし、或いは、実行コードだけであってもよい。ライブラリ111及びデバイスドライバ113の夫々についても同様である。
実行コードは、CPU101によって実行される命令コードであり、セキュリティドメイン情報は、アプリケーションプログラムの所属するセキュリティドメイン情報である。デジタル署名は、実行コードとセュリティドメイン情報とをデジタル署名したものであり、このデジタル署名は暗号化されていてもよい。このデジタル署名を添付することで、ネットワークを介した配信途上でのアプリケーションプログラム等のファイル改竄を検出することが可能である。デジタル署名自体は公知であり、アプリケーションプログラム配布者が、例えば、SHA−1(Secure Hash Algorithm 1)等のハッシュ関数を用いてハッシュ値を生成して署名データを作成する手法が広く使われている。
なお、ファイル内での実行コード、セキュリティドメイン情報、デジタル署名の配列順番は図4に限定されないことは勿論であり、要は、これらの実行コード、セキュリティドメイン情報およびデジタル署名が取り込んだアプリケーションプログラム等に含まれていればよい。なお、デジタル署名の代わりにデジタル証明書が添付されていても良く、この場合、このデジタル証明書の中にセキュリティドメイン情報が含まれていても良い。デジタル証明書の形式としては、例えばITU(International Telecommunication Union)X.509で規定された形式が広く利用されている。デジタル証明書によってそこに記載されたセキュリティドメイン情報は信頼できる公的認証機関によって保証されていることになる。
アプリケーションプログラム112が、図4に示すように、デジタル署名を含む場合には、このデジタル署名が正しく検証されれば、配布者、実行コード、実行コードが所属するセキュリティドメイン情報は正しく承認されているとしてよいので、携帯端末10(図
1)上で安全に実行可能である。デジタル署名の代わりにデジタル証明書が添付されている場合も同様である。しかしながら、図1に示す携帯端末10では、実行コードのみの場合(図4においてセキュリティドメイン情報及びデジタル署名を含まない場合)のように信頼できない(信頼性に疑問のある)アプリケーションプログラムであっても実行させることは可能である。
図5は、アプリケーションプログラム112に含まれるセキュリティドメイン情報の種別と、セキュリティポリシデータベース1156内のアクセス制御ルールを決めるセキュリティID(図3参照)との関連を示す図である。図4に示すデータは、図1のアクセス制御設定手段1154に保持されている。なお、図5に示す例では、アプリケーションプログラムがセキュリティドメイン情報を含まないで実行コードのみを有する場合には、セキュリティドメイン情報種別は「信頼できないベンダ」に分類されてセキュリティIDは4となる。
以下、本実施の形態の動作を、アプリケーションプログラムを例にとって、図6のフローチャートを用いて説明する。
図6のフローチャートで説明する動作の前提として、信頼できるアプリケーションプログラムの作成者又は配布者は、送信しようとするアプリケーションプログラムにセキュリティドメイン情報とデジタル署名(或いはデジタル証明書)を添付し、そのアプリケーションプログラムをプログラム配信サーバ12(図1及び図2)に置くものとする。或いは、上述の作成者又は配布者は、アプリケーションプログラムをプログラム配信サーバ12に置く代わりに、そのアプリケーションプログラムを外部メモリ105(例えばSD(Secure Digital)カードなど)に記録してもよい。
ステップS600において、携帯端末10は、プログラム配信サーバ12に置かれたアプリケーションプログラムを、アプリケーション取得手段109により携帯端末10内部に取り込む(或いは、外部メモリ105を携帯端末10に装着して記録されているアプリケーションプログラムを携帯端末10に取り込む場合もある)。
上述の場合は、携帯端末10に配信されるアプリケーションプログラムは、セキュリティドメイン情報及びデジタル署名を含んでいるが、これに限らず、セキュリティドメイン情報及びデジタル署名を含まない「信頼できないアプリケーションプログラム」も上述と同様に携帯端末10に取り込まれる場合もある。
なお、ライブラリおよびデバイスドライバについても、上述のアプリケーションプログラムの場合と同様に携帯端末10に取り込まれる(図1では取り込まれたライブラリおよびデバイスドライバを夫々111及び113で示している)。
携帯端末10が取り込んだアプリケーションプログラム(図1において112で示す)を起動する場合、OS処理手段114に起動を依頼する(ステップS602)。
続いて、ステップS604において、取り込んだアプリケーションプログラム112からセキュリティドメイン情報が取り出せたかどうかの判断を行う。セキュリティドメイン情報を取り出すためには、OS処理手段114がアプリケーションプログラム112の起動を処理する途中で制御手段1151を呼び出し、この制御処理手段1151によりドメイン情報取得手段1152が呼び出される。ドメイン情報取得手段1152は、アプリケーションプログラム112を構成するファイル(図4参照)を解析し、アプリケーションプログラム112にセキュリティドメイン情報が存在すればそれを取り出す。
セキュリティドメイン情報が取り出せない場合にはステップS606に進み、このステップにおいて、そのアプリケーションプログラム112は信頼できないと判断し、アクセス制御設定手段1154を呼び出す。この場合、アクセス制御設定手段1154は、セキュリティドメイン種別を「信頼できないベンダ」と判断してセキュリティIDを4とし、ステップS608に進む。一方、ステップS604において、セキュリティドメイン情報が取り出せた場合には直接ステップS608に行く。
ステップS608において、検証手段1153はアプリケーションプログラム112からデジタル署名(又はデジタル証明書)を取り出し、デジタル署名(又はデジタル証明書)が正しいものであるかどうかを検証する。なお、デジタル署名(又はデジタル証明書)が存在しない場合にはステップS610に進む。
デジタル署名が添付されていた場合は、署名された秘密鍵と対をなす公開鍵(予め携帯端末10の内部に格納されている)により署名検証を行う。また、このデジタル署名が暗号化されていれば復号を行った後に署名検証を行う。署名時に使用された秘密鍵がセキュリティドメイン情報ごとに異なる場合は、署名検証に使用する公開鍵もセキュリティドメイン情報ごとに異なることになる。一方、デジタル署名の代わりにデジタル証明書が添付されていた場合はデジタル証明書の検証を行う。検証の結果、デジタル署名(又はデジタル証明書)が正しいものであればステップS610に進む。
ステップS608において、デジタル署名(又はデジタル証明書)が正しくないと判断された場合には、取り込んだアプリケーションプログラム112は改竄されている可能性があるので、アプリケーション112の起動処理を中止する(ステップS609)。
ステップS610において、セキュリティIDが未だ決定されていないと判断された場合にはステップS612に進み、セキュリティIDが既に決定されていれば(即ちステップS606での処理が行なわれていれば)ステップS614に進む。ステップS612では、アクセス制御設定手段1154を呼び出してアクセス制御設定を行う。この場合、セキュリティドメイン情報があるので、そのセキュリティドメイン情報からセキュリティドメイン情報種別を判断し、図5に示した表を参照して、そのセキュリティドメイン情報種別に対応するセキュリティIDを決定する。
ステップS614において、アプリケーションプログラムのプロセスとセキュリティIDとを関連付ける。即ち、アプリケーションプログラム112は、携帯端末10上ではプロセスとして動作し、そのプロセスに対して決定したセキュリティIDを関連付ける。例えば、プロセスを管理するプロセス管理データがOS内に存在していれば、このプロセス管理データにセキュリティIDを格納することで関連付けを行うことができる。
実現方法としてはプロセス管理データにセキュリティIDを直接設定してもよいし、アプリケーションプログラム112の実行コードがプロセスにマッピングされる前であれば、アプリケーションプログラム112に関するアクセス制御手段1155が管理するセキュリティ情報に、実行コードがマッピングされた際に、そのプロセスの管理データに該当するセキュリティIDを格納するようにアプリケーション112に関するセキュリティ情報を書き換えておいてもよい。この場合、セキュリティ情報には、該当するセキュリティIDそのものではなく、該当するセキュリティIDを導くための仮IDが設定されてもよい。
即ち、図5で示されるテーブルのセキュリティIDの部分が仮IDとなり、仮IDとセキュリティIDとの関連付けを示すテーブルを、セキュリティポリシデータベース1156に設定しておく。アプリケーションプログラム112のプロセスが生成されると、仮IDから該当するセキュリティIDが決定され、そのセキュリティIDをプロセスの管理デ
ータに格納する。なお、仮IDからセキュリティIDを決定するための情報は、必要であればセキュリティポリシデータベース1156にあらかじめ設定しておく。SELinuxを代表としたよく知られたアクセス制御を可能とするアクセス制御手段1155は、プロセス起動時、実行コードがプロセスにマッピングされる際にセキュリティIDをプロセスの管理データに設定しており、既存技術として存在している。
或いは、制御手段1151にプロセスIDとセキュリティIDを関連付けるデータを作成して保存しておいてもよい。更に、アプリケーションプログラム112であるファイルを一意に識別可能なファイルID、或いはファイルパスとセキュリティIDを関連付けるデータを作成して保存しておいてもよい。
アプリケーションプログラム112に基づいて携帯端末10で生成されるプロセスとセキュリティIDとを関連付けることでアクセス制御設定処理は完了する。その後、アプリケーションプログラム112の起動が続行されて携帯端末上でプロセスとして実行される(ステップS616)。
図6は、アプリケーションプログラム112にセキュリティドメイン情報がデジタル署名(又はデジタル証明書)とは別に添付されていた場合の動作を説明するフローチャートである。もし、デジタル署名の代わりにデジタル証明書が添付されており、セキュリティドメイン情報がデジタル証明書の中に含まれている場合は、ステップS604でのセキュリティドメイン情報取得についての判断を、ステップS608のデジタル証明書の検証の後に行うようにすればよい。
アプリケーションプログラム112から生成されたプロセスは、実行コードに従った処理を行う。実行コードによる携帯端末10内の各種資源へのアクセスはOSを介して行われる。つまり、図1に即して言えば、実行コードは、OS処理手段114を経由して各種資源にアクセスする。この際、OS処理手段114は、制御手段1151を呼び出し、更に、アクセス制御手段1155を呼び出す。これらの呼び出しの際にプロセスID或いはプロセスの実行コードを示すアプリケーションプログラムであるファイルのIDとセキュリティIDを関連付けたデータ(テーブル)が存在すれば、制御手段1151は、呼び出したプロセスのプロセスIDとそれに関連付けられたセキュリティIDとを獲得し、アクセス制御手段1155を呼び出す。
或いは、上述したように、プロセス管理データにセキュリティIDが存在すれば、アクセス制御手段1155は、そのプロセス自身のプロセス管理データからそのセキュリティIDを獲得する。プロセスに関するセキュリティIDが判明すると、アクセス制御手段1155は、セキュリティポリシデータベース1156を参照し、そのプロセスがアクセスしようとしている機能について、アクセス制御ルールがアクセスを許可しているか或いは禁止しているかを判断する。アクセス制御手段1155は、アクセスが許可されていれば許可を示すデータを、制御手段1151を経由してOS処理手段114に渡し、そのプロセスはアクセスしようとしていた機能にアクセスする。一方、アクセスが禁止されていれば、アクセス制御手段1155は、禁止を示すデータを、制御手段1151を経由してOS処理手段114に渡し、OS処理手段114は、そのプロセスに対してエラーを戻す。
図3に示したセキュリティデータベースを用いて具体例を挙げれば、アプリケーションプログラム112の或るプロセスのセキュリティIDが3と判断されれば、そのプロセスは機能A,B,及びDに対してアクセス禁止となる。
上述した第1の実施の形態の効果について説明する。
本実施の形態によれば、携帯端末10に取り込んだアプリケーションプログラム112
に添付されているセキュリティドメイン情報から、アプリケーションプログラム112が携帯端末10の複数の機能夫々について利用可能かどうかを決定するセキュリティIDを求めることができる。即ち、アプリケーションプログラム112から取り出したセキュリティドメイン情報に基づいてセキュリティポリシデータベース1156を参照し、このデータベースに予め格納してあるセキュリティID(アクセス制御ルール)を一意に求めることができる。セキュリティポリシデータベース1156は参照されるだけなので、セキュリティポリシデータベース1156を更新することなくアプリケーションプログラム112を追加し且つ実行することができる。従って、長時間を要する複雑なセキュリティポリシデータベースの再構築作業を行わずに済むという効果があり、更に、データデータの更新が不要なので、データ更新による誤ったセキュリティポリシデータの混入という危険を避けることができる。
更に、本実施の形態によれば、携帯端末10は外部からアプリケーションプログラム112を安全に取り込むことができる。その理由は、セキュリティドメイン情報およびデジタル署名またはデジタル証明書がアプリケーションプログラム112となるファイルごとに添付されており、かつ、そのファイルをアプリケーションとして起動する際にセキュリティドメイン情報およびデジタル署名またはデジタル証明書による改竄チェックが実施されるからである。
したがって、携帯端末10上のアプリケーションプログラム112が外部の想定外のサーバと通信して、悪意あるアプリケーションプログラムを受信し、携帯端末10上に格納したとしても、アプリケーション起動時にOSレベルでデジタル署名あるいはデジタル証明書の検証を実施するので安全は確保される。
更にまた、本実施の形態によれば、アプリケーションプログラム112が携帯端末10に取得された後に、アプリケーションプログラム112が携帯端末上で第三者によって改竄された場合もその改竄を検知することができる。その理由は、セキュリティドメイン情報およびデジタル署名(またはデジタル証明書)がアプリケーションプログラム112となるファイルごとに添付されており、且つ、そのファイルがアプリケーションとして起動する毎にセキュリティドメイン情報およびデジタル署名(またはデジタル証明書)を用いて改竄チェックが実施されるからである。
更にまた、本実施の形態によれば、あるアプリケーションプログラム112から別のアプリケーションプログラムを、セキュリティを意識することなく安全に起動させることができる。その理由は、ドメイン情報取得手段、検証手段、アクセス制御設定手段、アクセス制御手段がOS機能の一部として存在し、アプリケーション起動時に必ず呼び出されるOS処理手段(システムコール)からそれらすべての手段が呼び出され、起動されるアプリケーションプログラムの配布者に応じた実行環境を作成するからである。
次に本発明に係る第2の実施の形態を図7〜図9を参照して説明する。
図7及び図8に第2の実施の形態の構成例を示す。図7に示した構成例は、図1に示した第1の実施の形態の構成例にドメイン情報取出/添付手段116と署名検証/添付手段117とを追加したものであり、その他の部分は図1の構成と同様である。第2の実施の形態では、第1の実施の形態と異なり、複数のアプリケーションプログラムから成るアプリケーションパッケージを外部から取り込んでいる。
ドメイン情報取出/添付手段116は、アプリケーションパッケージからセキュリティドメイン情報を取り出す機能の他に、アプリケーションパッケージを複数のアプリケーションプログラムに展開して夫々にセキュリティドメイン情報を添付する機能を有する。
アプリケーションパッケージにはアプリケーションパッケージ毎にセキュリティドメイン情報とデジタル署名(又はデジタル証明書)とが添付されているが、アプリケーションパッケージに含まれる複数のアプリケーションプログラムの夫々には、セキュリティドメイン情報及びデジタル署名(又はデジタル証明書)の両方或いは一方が添付されていない場合がある。このアプリケーションパッケージには、アプリケーションプログラムの他にユーザデータ及び/又はライブラリ、ドライバが含まれていてもよい。ライブラリとドライバには、アプリケーションプログラムの場合と同様にセキュリティドメイン情報とデジタル署名(又はデジタル証明書)が添付されてもよい。
署名検証/添付手段117は、アプリケーションパッケージに添付されているデジタル署名或いはデジタル証明書を検証する機能の他に、パッケージを展開して取り出したアプリケーションプログラムの夫々にデジタル署名を添付する(埋め込む)機能を持つ。
アプリケーションパッケージは、アプリケーションプログラムの作成者又は配布者によりプログラム配信サーバ12に置かれ、携帯端末10のアプリケーションプログラム取得手段109により取り込まれる(ダウンロードされる)。或いは、第1の実施の形態で説明したように、アプリケーションパッケージを記憶させた外部メモリ105(例えばSDカードなど)を携帯端末10に装着し、アプリケーションプログラム取得手段109により携帯端末10に取り込むことも可能である。
図7に示したプログラム配信サーバ12の機能の構成の一例を図8に示す。
図8を第1の実施の形態で説明した図2と比較すると、図8には、パッケージ作成手段211が追加されている。このパッケージ作成手段211は、複数のアプリケーションプログラムを1つのパッケージとしてまとめる機能を有する。ドメイン埋込手段209は、第1の実施の形態と異なり、アプリケーションパッケージにセキュリティドメイン情報を添付する機能を有する。しかし、ドメイン埋込手段209は、この機能のほかに、アプリケーションパッケージを構成するアプリケーションプログラムの夫々にもセキュリティドメイン情報を添付する機能を有するようにしてもよい。一方、証明書或いは署名添付手段210は、アプリケーションパッケージにデジタル署名(又はデジタル証明書)を添付する機能を有する。しかし、上述の場合と同じように、この証明書或いは署名添付手段210は、アプリケーションパッケージを構成するアプリケーションプログラムの夫々にもデジタル署名(又はデジタル証明書)を添付する機能を有するようにしてもよい。
プログラム配信サーバ12に、複数のアプリケーションプログラム含むアプリケーションパッケージとセキュリティドメイン情報が入力された場合にはパッケージ作成手段211は使用されず、ドメイン埋込手段209および証明書或いは署名添付手段210が、セキュリティドメイン情報およびデジタル署名(又はデジタル証明書)を添付したアプリケーションパッケージを作成する。
プログラム配信サーバ12に、複数のアプリケーションプログラムとセキュリティドメイン情報が入力された場合、必要であればドメイン埋込手段209でアプリケーションプログラムにセキュリティドメイン情報を埋め込み、必要であればそのアプリケーションプログラムに証明書あるいは署名添付手段210によりデジタル署名(又はデジタル証明書)を添付する。
なお、アプリケーションプログラムには必ずしもセキュリティドメイン情報、デジタル署名(又はデジタル証明書)を添付されなくてもよく、その場合は、アプリケーションプログラムに関して、プログラム配信サーバ12では何も処理しない。次に複数のアプリケーションプログラムを含むアプリケーションパッケージをパッケージ作成手段211で作成する。そのアプリケーションパッケージにもセキュリティドメイン情報をドメイン埋め込み手段209で添付する。そして、証明書あるいは署名添付手段210によりデジタル署名(又はデジタル証明書)を添付する。もし、デジタル証明書内にセキュリティドメイ
ン情報も含む場合は、ドメイン埋め込み手段209がアプリケーションパッケージにセキュリティドメイン情報を添付する必要はない。
なお、上述したドメインを埋め込む機能、証明書あるいは署名を添付する機能はプログラム配信サーバ12ではなく他のサーバで実現し、ドメインおよび証明書或いは署名を埋め込んだアプリケーションプログラムおよびアプリケーションパッケージをプログラム配信サーバ12に置くようにしてもよい。つまり、プログラム配信サーバl2で上述のすべての処理を行うのでなく複数のサーバで処理を分担するようにしてもよい。
図9は、図7及び図8に示した第2の実施の形態において、携帯端末10に取り込んだアプリケーションパッケージに含まれるアプリケーションプログラムの起動準備が完了するまでの処理を説明するためのフローチャートである。このフローチャートでの動作の前に、携帯端末10のプログラム取得手段109は、プログラムパッケージを取り込んでいるものとする。
ステップS900において、プログラム取得手段109は、ドメイン情報取出/添付手段116を呼び出し、この手段116においてアプリケーションパッケージに添付されているセキュリティドメイン情報を取り出す処理が行なわれる。ステップS902において、ドメイン情報取出/添付手段116はセキュリティドメイン情報が取り出せたかどうかの判定を行ない、判定結果を呼出元のプログラム取得手段109に通知する。セキュリティドメイン情報が取り出されていればステップS904に進む。取り出されていなければ、ステップS906において、プログラム取得手段109は、ドメイン情報取出/添付手段116を呼び出してパッケージを展開し、展開された複数のアプリケーションプログラムを取得してフローを終了する。
ステップS904において、プログラム取得手段109は、署名検証/添付手段117を呼び出し、この手段117においてアプリケーションパッケージにデジタル署名又はデジタル証明書が添付されているかの検証が行なわれ、署名検証/添付手段117はその検証結果をプログラム取得手段109に通知する。尚、デジタル署名又はデジタル証明書が暗号化されていれば復号を行なう。
次のステップS908に示すように、デジタル署名又はデジタル証明書が添付されていなければ図9のフローを終了し、デジタル署名又はデジタル証明書が添付されていればステップS910に進む。このステップS910において、プログラム取得手段109は、ドメイン情報取出/添付手段116を呼び出し、この手段116によりパッケージを展開して複数のアプリケーションプログラムを取り出す。
ステップS912において、プログラム取得手段109は、ドメイン情報取出/添付手段116を呼び出し、夫々のアプリケーションプログラムにセキュリティドメイン情報を添付する。
最後に、ステップS914において、プログラム取得手段109は、署名検証/添付手段117を呼び出し、セキュリティドメイン情報が添付されたアプリケーションプログラムをデジタル署名する(デジタル署名を添付する)。この場合、携帯端末10内で秘密鍵と公開鍵とを作成しておき、秘密鍵を使用してデジタル署名を行い、アプリケーションプログラムの起動時に署名検証するために公開鍵を検証手段1153に通知しておく。本ステップS914では、デジタル署名の代わりにデジタル証明書を添付してもよい。
アプリケーションパッケージ内にライブラリ及びデバイスドライバがあれば、これらについても上述の処理が施される。
複数のアプリケーションプログラムの夫々(図7において112で示す)を起動する際の動作は第1の実施の形態と同様である。
図9のフローチャートでは、外部から取り込んだアプリケーションパッケージにデジタル署名又はデジタル証明書とは別にセキュリティドメイン情報が添付されている場合を説明したが、セキュリティドメイン情報がデジタル証明書に含まれている場合は、ステップS902とステップS908の順番を逆にする必要がある。
第2の実施の形態によれば、複数のアプリケーションプログラムをアプリケーションパッケージとして配布することが可能である。したがって、携帯端末10は一度に複数のアプリケーションパッケージを取り込むことができるのでデータ通信量を削減できるという効果がある。また、アプリケーションパッケージ展開後の個々のアプリケーションプログラムには、アプリケーションパッケージに添付されていたセキュリティドメイン情報を添付するため、アプリケーションプログラム(ステップS908或いはS914を経たアプリケーションプログラムを図7では参照番号112で示す)の起動時の素性確認が容易である。更に、デジタル署名されるため、携帯端末10内においてアプリケーションパッケージ展開された後のアプリケーションプログラムが改竄された場合でも容易にその改竄が検知できる。
アプリケーションパッケージの形態として、アプリケーションパッケージおよびそれに含まれるアプリケーションプログラムの両方にセキュリティドメイン情報と署名あるいは証明書が添付されていることも考えられる。その場合、図9のステップS912をスキップするか、或いは、アプリケーションパッケージに添付されていたセキュリティドメイン情報でアプリケーションプログラムのセキュリティドメイン情報を上書きすることで対応可能である。
第3の実施の形態について図10を参照して説明する。
上述したように、第1及び第2の実施の形態では、プログラムに付加されているセキュリティドメイン情報を記述したデータを取り出し、取り出したデータに基づいてセキュリティドメインを決定或いは判別している。
これに対し、第3の実施の形態では、携帯端末10に取り込まれるプログラムには、ドメイン情報の代わりに、デジタル証明書或いはデジタル署名が付加されている。第3の実施の形態によれば、プログラムからこの証明書或いは署名を取得し(取り出し)、取得した証明書或いは署名を検証し、検証に成功した証明書或いは公開鍵の種別によってドメインを決定するようにしている。
即ち、図10に即して説明すれば、プログラムに付加されている証明書或いは署名は、「証明書或いは署名取得手段」1152bにおいて取得され(取り出され)、検証手段1153bにおいて、携帯端末内に保持され且つ複数のドメインの夫々に関連付けられたルート証明書(親証明書)又は公開鍵を順次使用してドメインの検証が行なわれる。検証が成功(正常終了)したときに使用されたルート証明書(親証明書)又は公開鍵に関連付けられているドメインが、検証対象となったプログラムのセキュリティドメインと決定される。
第3の実施の形態の変形例として、上述の第2の実施の形態と同様、パッケージに証明書或いは署名を付加するようにしてもよい。この変形例の動作は、上述の第2及び第3の実施の形態の説明から容易に理解できるので詳細な説明は省略する。
上述した第1乃至第3の実施の形態では、セキュリティドメインに応じて携帯端末内の資源へのプログラムのアクセス制限を行っている。しかし、本発明は、セキュリティドメインに応じた様々な制限(例えば、使用可能な資源の制限)を取り込んだプログラムに課すようにすることも可能である。即ち、プログラムに関連したセキュリティドメインを決定した後に、そのドメインで規定されている制限内でのみ、そのプログラムを正常に動作させるようにすることも可能である。
第4の実施の形態を図11及び図12を参照して説明する。
上述した第1〜第3の実施の形態では、カーネル空間(OS)においてセキュリティドメイン情報をアプリケーションプログラムから取り出し、取り出したセキュリティドメイン情報に対応するセキュリティIDを設定している。
これに対し、第4の実施の形態では、図11に示すように、図1においてカーネル空間に設けていたセキュリティドメイン情報取得手段1152及びアクセス制御設定手段1154をユーザ空間に移し、ユーザ空間において、夫々、セキュリティドメイン情報取得手段118及びアクセス制御設定手段119として動作させている。即ち、セキュリティドメイン情報取得手段118は、ユーザ空間において、第1の実施の形態の図1のセキュリティドメイン取得手段1152と同様に機能し、アクセス制御設定手段119は、ユーザ空間において、第1の実施の形態の図1のアクセス制御手段設定手段1154と同様に機能する。
図11のアクセス制御手段1155は、ユーザ空間からアプリケーションプログラム112のセキュリティID設定に関する操作を可能とする機能を有している。このアクセス制御手段1155へのユーザ空間からのアクセスは、アクセス制御設定手段119からのみとなるアクセス制御をセキュリティポリシデータベース1156に予め設定しておく。
以下、本実施の形態の動作を、アプリケーションプログラムを例にとって、図12のフローチャートを用いて説明する。
図12のフローチャートを用いて説明する動作の前提として、信頼できるアプリケーションプログラムの作成者又は配布者は、送信しようとするアプリケーションプログラムにセキュリティドメイン情報とデジタル署名(或いはデジタル証明書)を添付し、そのアプリケーションプログラムをプログラム配信サーバ12(図11)に置くものとする。或いは、上述の作成者又は配布者は、アプリケーションプログラムをプログラム配信サーバ12に置く代わりに、そのアプリケーションプログラムを外部メモリ105(例えばSD(Secure Digital)カードなど)に記録してもよい。
ステップS1200において、携帯端末10は、プログラム配信サーバ12に置かれたアプリケーションプログラムを、アプリケーション取得手段109により携帯端末10の内部に取り込む(或いは、外部メモリ105を携帯端末10に装着して記録されているアプリケーションプログラムを携帯端末10に取り込む)。
上述の場合は、携帯端末10に配信されるアプリケーションプログラムは、セキュリティドメイン情報及びデジタル署名を含んでいるが、これに限らず、セキュリティドメイン情報及びデジタル署名を含まない「信頼できないアプリケーションプログラム」も上述と同様に携帯端末10に取り込まれる場合もある。
なお、ライブラリおよびデバイスドライバも、上述のアプリケーションプログラムの場合と同様に携帯端末10に取り込むことができる(図11では取り込まれたライブラリおよびデバイスドライバを夫々111及び113で示している)。
携帯端末10が取り込んだアプリケーションプログラム(図11において112で示す)を起動する場合、先ず、ステップS1202において、取り込んだアプリケーションプログラム112からセキュリティドメイン情報が取り出せたかどうかの判断を行う。セキュリティドメイン情報を取り出すためには、セキュリティドメイン情報取得手段118が呼び出される。セキュリティドメイン情報取得手段118は、アプリケーションプログラム112を構成するファイル(例えば図4参照)を解析し、アプリケーションプログラム112にセキュリティドメイン情報が存在すればそれを取り出す。
セキュリティドメイン情報が取り出せない場合にはステップS1204に進み、このステップにおいて、そのアプリケーションプログラム112は信頼できないと判断され、アクセス制御設定手段119を呼び出す。この場合、アクセス制御設定手段119は、セキュリティドメイン種別を「信頼できないベンダ」と判断してセキュリティIDを4とし、ステップS1208に進む。一方、ステップS1202において、セキュリティドメイン情報が取り出せた場合には直接ステップS1206に進む。
ステップS1206では、アクセス制御設定手段119を呼び出してセキュリティドメイン情報からセキュリティドメイン情報種別を判断し、例えば図5に示した表を参照して、そのセキュリティドメイン情報種別に対応するセキュリティIDを決定する。
ステップS1208において、アプリケーションプログラム112とセキュリティIDとを関連付ける。即ち、アプリケーションプログラム112は、携帯端末10上ではプロセスとして動作し、そのプロセスに対して決定したセキュリティIDを関連付ける。本ステップでは、まだプロセスとして生成されていないので、プロセス生成時に関連付け可能となる設定を行う。例えば、アプリケーションプログラム112に関するアクセス制御手段1155が管理するセキュリティ情報に、アプリケーションプログラム112の実行コードがメモリにマッピング(ロード)された際に、そのプロセスの管理データに該当するセキュリティIDを格納するようにアプリケーション112に関するセキュリティ情報を書き換えておいてもよい。
この場合、セキュリティ情報には、該当するセキュリティIDそのものではなく、該当するセキュリティIDを導くための仮IDが設定されてもよい。この場合、図5で示したテーブルのセキュリティIDの部分が仮IDとなり、仮IDとセキュリティIDとの関連付けを示すテーブルは、セキュリティポリシーデータベース1156に設定しておくことになる。
アプリケーションプログラム112のプロセスが生成されると、仮IDから該当するセキュリティIDが決定され、そのセキュリティIDをプロセスの管理データに格納する。なお、仮IDからセキュリティIDを決定するための情報は、必要であればセキュリティポリシデータベース1156にあらかじめ設定しておく必要がある。SELinuxを代表とする周知のアクセス制御を可能とするアクセス制御手段1155は、プロセス起動時、実行コードがプロセスにマッピングされる際にセキュリティIDをプロセスの管理データに設定しており、既存技術として存在している。
ステップS1210において、アプリケーションプログラム112を起動する場合、OS処理手段114にアプリケーションプログラム112の起動を依頼する。
ステップS1212において、検証手段1153はアプリケーションプログラム112からデジタル署名(又はデジタル証明書)を取り出し、デジタル署名(又はデジタル証明書)が正しいものであるかどうかを検証する。なお、デジタル署名(又はデジタル証明書)が存在しない場合にはステップS1214に進む。
デジタル署名が添付されていた場合は、署名された秘密鍵と対をなす公開鍵(予め携帯端末10の内部に格納されている)により署名検証を行う。また、このデジタル署名が暗号化されていれば復号を行った後に署名検証を行う。署名時に使用された秘密鍵がセキュリティドメイン情報ごとに異なる場合は、署名検証に使用する公開鍵もセキュリティドメイン情報ごとに異なることになる。一方、デジタル署名の代わりにデジタル証明書が添付されていた場合はデジタル証明書の検証を行う。検証の結果、デジタル署名(又はデジタル証明書)が正しいものであればステップS1214に進む。
ステップS1212において、デジタル署名(又はデジタル証明書)が正しくないと判断された場合には、取り込んだアプリケーションプログラム112は改竄されている可能性があるので、アプリケーション112の起動処理を中止する(ステップS1216)。
最後に、アプリケーションプログラム112の起動処理が完了し、携帯端末10上でプロセスとして実行される(ステップS1214)。
なお、ステップS1202からステップS1208の処理を行わないで、ステップS1210からアプリケーションプログラム112の起動処理をした場合、図5に示す「信頼できないべンダ」で実行されるように、生成されるプロセスのデフォルトのセキュリティIDが4となるように予めセキュリティポリシデータベース1156に設定しておく。
また、プログラム配信サーバ12から獲得しない(即ち、予め携帯端末10に存在する)アプリケーションプログラムに関しても該当するセキュリティIDが割り当てられるように、セキュリティIDを予めセキュリティポリシデータベース1156に設定しておく。
上述したように、図12は、アプリケーションプログラム112にセキュリティドメイン情報がデジタル署名(又はデジタル証明書)とは別に添付されている場合のフローチャートである。もし、デジタル署名の代わりにデジタル証明書が添付されており、セキュリティドメイン情報がデジタル証明書の中に含まれている場合は、ステップS1202でのセキュリティドメイン情報取得についての判断の前に、ステップS1212のデジタル証明書の検証と同様な処理を追加し、そのデジタル証明書検証後にセキュリティドメイン情報を取り出せばよい。この場合、図11の検証手段1153に証明書検証を依頼するか、検証手段1153と同じ機能をユーザ空間に用意することで可能である。
アプリケーションプログラム112から生成されたプロセスは、実行コードに従った処理を行うが、その時のアクセス制御は上述した第1、第2及び第3の実施の形態と同じである。
上述した第4の実施の形態の構成および動作は、第1の実施の形態の構成および動作に対応させたものであるが、第3の実施の形態で示した「セキュリティドメイン情報が添付されていないアプリケーションプログラム」についても、同じ構成および動作で実現可能である。
第5の実施の形態を図13を参照して説明する。
第5の実施の形態は、第4の実施の形態(図11)のユーザ空間にドメイン情報取出/添付手段116と署名検証/添付手段117とを追加したものである。このドメイン情報取出/添付手段116および署名検証/添付手段117は、第2の実施の形態で説明したものと同一である。図13のドメイン情報取出/添付手段116および署名検証/添付手段117以外の構成は、第4の実施の形態(図11)と同じである。
第5の形態を用いてソフトウェアパッケージを展開する動作は、第2の実施の形態のステップS900〜S914(図9)と同じである。また、第5の形態のアプリケーションプログラム112を起動する動作は、第4の実施の形態で説明したステップS1200〜S1216(図12)と同じである。
なお、上述した第5の形態の構成および動作は、第2の実施の形態に対応させたものであるが、第3の実施の形態で示した「セキュリティドメイン情報を添付されていないアプリケーションプログラム」についても同じ構成および動作で実現可能である。
第6の実施の形態について図14および図15を参照して説明する。
第1から第5までの実施の形態では、アプリケーションプログラムおよびアプリケーションパッケージの両方またはいずれかにセキュリティドメイン情報を埋め込んでいた。第6の実施の形態では、セキュリティドメイン情報を埋め込む代わりに、セキュリティIDを埋め込む。
図14は、第1の実施の形態のプログラム配信サーバ12(図2)にセキュリティIDを埋め込む機能を追加したプログラム配信サーバ(同じ参照番号12で示す)の構成図である。第6の実施の形態を示す図14を、第1の実施の形態のプログラム配信サーバ12の構成を示す図2と比較すると、図14では図2に示したドメイン埋め込み手段209が削除され、新たにセキュリティID埋め込み手段211とドメイン情報セキュリティID変換手段212とが追加されている。
セキュリティID埋め込み手段211は、セキュリティIDをアプリケーションプログラムに埋め込む機能を有している。ドメイン情報セキュリティID変換手段212は、図5に示すテーブルを保持しており、プログラム配信サーバ12に入力されるセキュリティドメイン情報をセキュリティIDに変換する機能を有している。なお、プログラム配信サーバ12への入力がドメイン情報ではなく、セキュリティIDの場合、ドメイン情報セキュリティID変換手段212は何もしない。
図14のその他の機能については、第1の実施の形態と同じ機能である。図14に関連する携帯端末の構成例を図15に示す。図15を、第1の実施の形態を示した図1と比較すると、図1のセキュリティドメイン情報取得手段1152が、セキュリティID取得手段1152cとなり、第6の実施の形態では、セキュリティドメイン情報を取得するのではなく、セキュリティIDを取得するようになっている。また、図5に示すテーブルは、図15の携帯端末10では不要である。
アプリケーションプログラムにセキュリティドメイン情報ではなくセキュリティIDを埋め込んだ場合の携帯端末10の動作と、第1の実施の形態の動作(図5)との相違について述べる。図6のステップS604およびS606のセキュリティドメイン取り出しについては、第6の実施の形態では、セキュリティIDが取り出されることになる。更に、図6のステップS612における「セキュリティドメイン種別を判定してセキュリティIDを決定する処理」は不要となる。
第6の実施の形態では、第1の実施の形態にセキュリティドメイン情報の代わりにセキュリティIDを埋め込む手法を説明したが、この手法は、第2から第5までの実施の形態にも適応可能である。
第7の実施の形態について図16を参照して説明する。
第1から第5までの実施の形態では、アプリケーションプログラムおよびアプリケーションパッケージの両方または何れかにセキュリティドメイン情報を埋め込み、一方、第6の実施の形態では、アプリケーションプログラムおよびアプリケーションパッケージの両方または何れかにセキュリティドメイン情報の代わりにセキュリティIDを埋め込むようにしていた。
第7の実施の形態では、第2の実施の形態で示した、アプリケーションパッケージまたはその中に含まれるアプリケーションプログラムにはセキュリティドメイン情報を埋め込み、アプリケーションパッケージを展開する際にアプリケーションプログラムに、セキュリティIDを埋め込んでいる。
図16は、第2の実施の形態にアプリケーションパッケージを展開する際にアプリケーションプログラムに、セキュリティIDを埋め込む仕組みを追加した構成を示す図である。
図16を、第2の実施の形態に係る図7と比較すると、図16では、図7のドメイン情報取出/添付手段116がドメイン情報取得/ID添付手段116bとなっている。
ドメイン情報取出/ID添付手段116bは、セキュリティドメイン情報を取得後、セキュリティIDをアプリケーションプログラム112に添付する。また、この処理を行うため、図5に示すテーブルはドメイン情報取出/ID添付手段116bが管理するようにする。或いは、図5に示すテーブルをドメイン情報取出/ID添付手段116bから参照可能な場所に置くようにしてもよい。
アプリケーションプログラムにセキュリティドメイン情報ではなくセキュリティIDを埋め込む第7の実施の形態による携帯端末10上の動作を、第2の実施の形態によるアプリケーションパッケージの展開動作(図9のフローチャート)と対比して説明すると、第7の実施の形態によれば、ステップS912では、ドメイン情報取出/ID添付手段116bがアプリケーションパッケージに添付されていたセキュリティドメイン情報をもとにして図5に示したテーブルからセキュリティIDを求め、アプリケーションプログラム112の夫々にそのセキュリティIDを埋め込む。更に、ステップS914では、セキュリティIDを埋め込まれたアプリケーションプログラム112をデジタル署名する。
第6の実施の形態のアプリケーションプログラムを実行する動作は、第2の実施の形態と同じである。
実施例を用いて更に本発明を説明する。
図1のアプリケーションプログラム112に添付されたセキュリティドメイン情報を用いて、セキュリティポリシデータベース1156に格納されているアクセス制御ルールがアプリケーションプログラム112にどのように適用されるかを具体的に説明する。
図17は、本発明の実施例に用いるセキュリティポリシデータベース1156の具体的な構成の一例を示す図であり、移動体通信システムの携帯端末に適用した場合のセキュリティポリシデータを示している。
セキュリティポリシデータベース1156には、アクセス制御ルールとして、Operator、Manufacturer、Trusted、Untrustedの各コンテキスト毎に各機能の利用について可否が設定されている。
例えば、セキュリティIDが1のOperatorコンテキストで動作するアプリケーションプログラムは、「電話をかける」、「通話料金制御」、「サウンド機能」、「通信する」、「画面を使う」の機能の利用が可能である。
一方、セキュリティIDが2のManufacturerコンテキストで動作するアプリケーションプログラムは、「電話をかける」、「サウンド機能」、「画面を使う」の機能の利用が可能であり、「通話料金制御」及び「通信する」の機能は利用不可である。
更に、セキュリティIDが3のTrustedコンテキストで動作するアプリケーションプログラムは、「サウンド機能」及び「画面を使う」夫々の機能は利用できるが、「電話をかける」、「通話料金制御」、「通信する」の機能は利用できない。
更に、セキュリティIDが4のUntrustedコンテキストで動作するアプリケーションプログラムは、「画面を使う」機能のみの利用が可能であり、「電話をかける」、「サウンド機能」、「通話料金制御」、「通信する」の機能については利用できない。
このように、本実施例を移動体通信システムの携帯端末に適用し、セキュリティポリシデータベース1156に上記のようなセキュリティポリシデータを設定することで、非公認(例えば上述のUntrustedコンテキストの場合)のアプリケーションプログラムによる不正動作(例えば、特定の電話番号への通話、特定サイトへのアクセス等)を禁止することができる。
以上、本発明を移動体通信等に使用される携帯端末に応用した場合について説明したが、これに限らず、外部からアプリケーションプログラムを取り込んで使用する種々の移動及び固定の情報関連機器に応用可能である。

Claims (15)

  1. コンピュータ上で動作するプログラム毎にセキュリティポリシデータを参照することにより、プログラムが利用できる機能を制限するプログラムの実行制御システムであって、
    前記プログラムに関連付けられたセキュリティドメイン情報を取得するセキュリティドメイン情報取得手段と、
    前記セキュリティドメイン情報に基づいて前記セキュリティドメイン情報の種別を判断し、前記セキュリティポリシデータを参照して当該セキュリティドメイン情報種別に対応するセキュリティIDを決定し、前記プログラムのプロセスと前記セキュリティIDを関連付けるアクセス制御設定手段と、
    前記セキュリティIDに対応付けられているアクセス制御ルールに基づいて、前記プログラムが利用できる機能を制限するアクセス制御手段とを備え、
    前記セキュリティドメイン情報取得手段、前記アクセス制御設定手段、前記アクセス制御手段の一部あるいはすべてをOS内の手段として有する
    ことを特徴とするプログラムの実行制御システム。
  2. 前記プログラムにデジタル署名又はデジタル証明書が添付されているかどうかを検証する検証手段を備えることを特徴とする請求項1に記載のプログラムの実行制御システム。
  3. 前記前記プログラムにデジタル署名又はデジタル証明書が添付されていない場合、前記プログラムの起動処理を終了することを特徴とする請求項2に記載のプログラムの実行制御システム。
  4. 前記前記プログラムにデジタル署名又はデジタル証明書が添付されている場合、前記検証手段が、前記デジタル署名又はデジタル証明書が正しいか否かを検証し、
    前記デジタル署名又はデジタル証明書が正しくない場合、前記プログラムの起動処理を終了することを特徴とする請求項2又は請求項3に記載のプログラムの実行制御システム。
  5. 複数のプログラムからなるパッケージに添付されたセキュリティドメイン情報を取出す機能と、前記パッケージを展開して取り出された複数のプログラムの夫々に、前記取出したセキュリティドメイン情報を添付する機能とを有するドメイン情報取出添付手段を備えることを特徴とする請求項1から請求項4の何れか1項に記載のプログラムの実行制御システム。
  6. 前記パッケージにデジタル署名又はデジタル証明書が添付されているかどうかを検証する機能と、前記ドメイン情報取出添付手段により前記セキュリティドメイン情報が添付されたプログラムにデジタル署名を添付する機能とを有する署名検証添付手段を備えることを特徴とする請求項5に記載のプログラムの実行制御システム。
  7. 前記ドメイン情報取出添付手段が、
    前記パッケージにデジタル署名又はデジタル証明書が添付されてた場合に、前記パッケージを展開して取り出された複数のプログラムの夫々に、前記取出したセキュリティドメイン情報を添付する
    ことを特徴とする請求項6に記載のプログラムの実行制御システム。
  8. コンピュータ上で動作するプログラム毎にセキュリティポリシデータを参照することにより、プログラムが利用できる機能を制限するプログラムの実行制御方法であって、
    前記プログラムに関連付けられた前記セキュリティドメイン情報を取得するセキュリティドメイン情報取得ステップと、
    前記セキュリティドメイン情報に基づいて前記セキュリティドメイン情報の種別を判断し、前記セキュリティポリシデータを参照して当該セキュリティドメイン情報種別に対応するセキュリティIDを決定し、前記プログラムのプロセスと前記セキュリティIDを関連付けるアクセス制御設定ステップと、
    前記セキュリティIDに対応付けられているアクセス制御ルールに基づいて、前記プログラムが利用できる機能を制限するアクセス制御ステップとを有し、
    前記セキュリティドメイン情報取得ステップ、前記アクセス制御設定ステップ、前記アクセス制御ステップの一部あるいはすべてがOS内で実施されることを特徴とするプログラムの実行制御方法。
  9. 前記プログラムにデジタル署名又はデジタル証明書が添付されているかどうかを検証する検証ステップを有することを特徴とする請求項8に記載のプログラムの実行制御方法。
  10. 前記前記プログラムにデジタル署名又はデジタル証明書が添付されていない場合、前記プログラムの起動処理を終了することを特徴とする請求項9に記載のプログラムの実行制御方法。
  11. 前記前記プログラムにデジタル署名又はデジタル証明書が添付されている場合、前記検証ステップで、前記デジタル署名又はデジタル証明書が正しいか否かを検証し、
    前記デジタル署名又はデジタル証明書が正しくない場合、前記プログラムの起動処理を終了することを特徴とする請求項9又は請求項10に記載のプログラムの実行制御方法。
  12. 複数のプログラムからなるパッケージに添付されたセキュリティドメイン情報を取出すステップと、前記パッケージを展開して取り出された複数のプログラムの夫々に、前記取出したセキュリティドメイン情報を添付するステップとを含むドメイン情報取出添付ステップを有することを特徴とする請求項8から請求項11の何れか1項に記載のプログラムの実行制御方法。
  13. 前記パッケージにデジタル署名又はデジタル証明書が添付されているかどうかを検証するステップと、前記ドメイン情報取出添付ステップにおいて前記セキュリティドメイン情報が添付されたプログラムにデジタル署名を添付するステップとを含む署名検証添付ステップを有することを特徴とする請求項12に記載のプログラムの実行制御方法。
  14. 前記ドメイン情報取出添付ステップで、
    前記パッケージにデジタル署名又はデジタル証明書が添付されてた場合に、前記パッケージを展開して取り出された複数のプログラムの夫々に、前記取出したセキュリティドメイン情報を添付する
    ことを特徴とする請求項13に記載のプログラムの実行制御方法。
  15. 請求項8乃至14のいずれかに記載のプログラムの実行制御方法を実現するためのコンピュータプログラム。
JP2008501772A 2006-02-21 2007-02-19 プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム Expired - Fee Related JP5190800B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008501772A JP5190800B2 (ja) 2006-02-21 2007-02-19 プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006044053 2006-02-21
JP2006044053 2006-02-21
JP2008501772A JP5190800B2 (ja) 2006-02-21 2007-02-19 プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム
PCT/JP2007/053451 WO2007097439A1 (ja) 2006-02-21 2007-02-19 プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム

Publications (2)

Publication Number Publication Date
JPWO2007097439A1 JPWO2007097439A1 (ja) 2009-07-16
JP5190800B2 true JP5190800B2 (ja) 2013-04-24

Family

ID=38437474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008501772A Expired - Fee Related JP5190800B2 (ja) 2006-02-21 2007-02-19 プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム

Country Status (4)

Country Link
US (1) US20100229242A1 (ja)
EP (1) EP1998269A4 (ja)
JP (1) JP5190800B2 (ja)
WO (1) WO2007097439A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8205217B2 (en) * 2007-09-29 2012-06-19 Symantec Corporation Methods and systems for configuring a specific-use computing system limited to executing predetermined and pre-approved application programs
US20100122079A1 (en) * 2007-10-02 2010-05-13 Panasonic Corporation Copyright protection system, reproduction apparatus and method
JP5126495B2 (ja) * 2007-11-01 2013-01-23 日本電気株式会社 安全度評価と連動するセキュリティの方針設定装置、そのプログラムおよびその方法
EP2250604B1 (en) * 2008-03-04 2017-12-27 Apple Inc. System and method of authorizing execution of software code based on at least one installed profile
JP2010092376A (ja) * 2008-10-10 2010-04-22 Softbank Mobile Corp 情報処理装置、情報処理方法及び情報処理プログラム
US8301903B2 (en) * 2009-02-27 2012-10-30 Research In Motion Limited Low-level code signing mechanism
EP2224370B1 (en) 2009-02-27 2016-04-13 BlackBerry Limited Low-level code signing mechanism
US10514940B2 (en) * 2010-03-17 2019-12-24 Microsoft Technology Licensing, Llc Virtual application package reconstruction
KR20140043068A (ko) * 2011-02-17 2014-04-08 타세라, 아이엔씨. 애플리케이션 증명을 위한 시스템 및 방법
WO2012157698A1 (ja) * 2011-05-18 2012-11-22 日本放送協会 受信装置、プログラム及び受信方法
JP5965722B2 (ja) * 2011-05-19 2016-08-10 日本放送協会 受信機
JP5965723B2 (ja) * 2011-05-19 2016-08-10 日本放送協会 受信機
WO2012157767A1 (ja) * 2011-05-19 2012-11-22 日本放送協会 受信機および受信方法
JP5575071B2 (ja) * 2011-08-26 2014-08-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US9881151B2 (en) * 2011-08-31 2018-01-30 Lenovo (Singapore) Pte. Ltd. Providing selective system privileges on an information handling device
US20130061316A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
WO2013038871A1 (ja) * 2011-09-16 2013-03-21 Necカシオモバイルコミュニケーションズ株式会社 電子機器及びセキュリティ制御方法
CN102404706B (zh) * 2011-11-24 2014-08-13 中兴通讯股份有限公司 一种管理资费安全的方法及移动终端
EP2787725A4 (en) * 2011-11-30 2015-07-01 Japan Broadcasting Corp RECEIVING DEVICE, PROGRAM AND RECEPTION PROCEDURES
CN103220662B (zh) 2012-01-20 2016-01-20 腾讯科技(深圳)有限公司 一种应用程序的处理方法和移动终端
US8966574B2 (en) 2012-02-03 2015-02-24 Apple Inc. Centralized operation management
JP5924159B2 (ja) * 2012-06-29 2016-05-25 大日本印刷株式会社 情報処理装置
JP2013008397A (ja) * 2012-10-09 2013-01-10 Fujitsu Ltd 制御プログラム、方法および機器
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US20140189880A1 (en) * 2012-12-31 2014-07-03 Gemalto Sa System and method for administrating access control rules on a secure element
CN104537281A (zh) * 2013-07-17 2015-04-22 马维尔国际贸易有限公司 用于移动应用保护的***和方法
JP6531564B2 (ja) * 2015-08-26 2019-06-19 富士ゼロックス株式会社 情報処理システム
US10262156B1 (en) * 2016-04-29 2019-04-16 Wells Fargo Bank, N.A. Real-time feature level software security
US11449640B1 (en) * 2016-04-29 2022-09-20 Wells Fargo Bank, N.A. Real-time feature level software security
CN108259413B (zh) * 2016-12-28 2021-06-01 华为技术有限公司 一种获取证书、鉴权的方法及网络设备
TWI692689B (zh) 2017-12-28 2020-05-01 慧榮科技股份有限公司 記憶卡控制器、記憶卡、使用於記憶卡控制器的方法以及連接至記憶卡的電子裝置
CN112257059B (zh) * 2020-10-12 2023-03-28 麒麟软件有限公司 一种动态可信文件执行控制方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091427A (ja) * 1996-06-11 1998-04-10 Internatl Business Mach Corp <Ibm> 署名入り内容の使用の安全を保証する方法及びシステム
JPH10254783A (ja) * 1997-01-09 1998-09-25 Sun Microsyst Inc システムリソースへのソフトウェアアクセスを制御する方法及び装置
JPH11282672A (ja) * 1998-03-31 1999-10-15 Hitachi Software Eng Co Ltd オンラインプログラム転送方法およびオンラインプログラム実行システム
JP2002351563A (ja) * 2001-05-30 2002-12-06 Canon Inc 情報処理装置、情報処理方法およびプログラム
JP2003202929A (ja) * 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5757915A (en) * 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6157821A (en) * 1997-10-23 2000-12-05 Ericsson Inc. Voltage step up for a low voltage frequency synthesizer architecture
US6859879B2 (en) * 2000-05-26 2005-02-22 International Business Machine Corporation Method and system for secure pervasive access
JP2002041366A (ja) 2000-07-28 2002-02-08 Kddi Corp コンテンツ提供方法、コンテンツ提供システム及びコンテンツ提供プログラムを記録した記録媒体
DE60142991D1 (de) * 2000-09-21 2010-10-14 Research In Motion Ltd System und verfahren zum unterschreiben eines software-kodes
JP4023654B2 (ja) 2001-09-28 2007-12-19 日立ソフトウエアエンジニアリング株式会社 アプリケーションの監視方法およびプログラム
JP4145118B2 (ja) 2001-11-26 2008-09-03 松下電器産業株式会社 アプリケーション認証システム
EP1595199A2 (en) * 2003-02-21 2005-11-16 Research In Motion Limited System and method of multiple-level control of electronic devices
JP3965400B2 (ja) 2004-08-04 2007-08-29 オリンパス株式会社 圧縮成形木材の製造方法
US9313214B2 (en) * 2004-08-06 2016-04-12 Google Technology Holdings LLC Enhanced security using service provider authentication
JP2008541248A (ja) * 2005-05-13 2008-11-20 クリプトミル テクノロジーズ リミティド コンテンツ暗号化ファイアウォールシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091427A (ja) * 1996-06-11 1998-04-10 Internatl Business Mach Corp <Ibm> 署名入り内容の使用の安全を保証する方法及びシステム
JPH10254783A (ja) * 1997-01-09 1998-09-25 Sun Microsyst Inc システムリソースへのソフトウェアアクセスを制御する方法及び装置
JPH11282672A (ja) * 1998-03-31 1999-10-15 Hitachi Software Eng Co Ltd オンラインプログラム転送方法およびオンラインプログラム実行システム
JP2002351563A (ja) * 2001-05-30 2002-12-06 Canon Inc 情報処理装置、情報処理方法およびプログラム
JP2003202929A (ja) * 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム

Also Published As

Publication number Publication date
EP1998269A4 (en) 2012-02-29
US20100229242A1 (en) 2010-09-09
WO2007097439A1 (ja) 2007-08-30
JPWO2007097439A1 (ja) 2009-07-16
EP1998269A1 (en) 2008-12-03

Similar Documents

Publication Publication Date Title
JP5190800B2 (ja) プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム
US11126754B2 (en) Personalized and cryptographically secure access control in operating systems
JP5061908B2 (ja) プログラム実行制御方法および装置ならびに実行制御プログラム
US8375458B2 (en) System and method for authenticating code executing on computer system
EP0843249B1 (en) Dynamic classes of service for an international cryptography framework
US8171301B2 (en) Method and system for integrated securing and managing of virtual machines and virtual appliances
US8239958B2 (en) Confirmation method of software and apparatus for executing software
WO2011138852A1 (ja) 情報処理装置、情報処理方法、及びプログラム配信システム
US20030221115A1 (en) Data protection system
JP4844102B2 (ja) サブプログラム及びそのサブプログラムを実行する情報処理装置
JP2017021434A (ja) 情報処理装置及びその制御方法
JP2010510574A (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
JPH10171648A (ja) アプリケーションを認証する装置
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
US20080172556A1 (en) Information processing apparatus and program
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
KR100458515B1 (ko) 무선 인터넷을 통한 이동 단말용 응용프로그램 설치시스템 및 그 방법
JP4655613B2 (ja) プログラム実行装置及びプログラム実行方法
JP3888273B2 (ja) 外部プログラムの動作制御方法、動作制御プログラム、動作制御装置、及び、動作制御プログラム提供装置
JP2005050322A (ja) 電子捺印装置
CN118171262A (zh) 用于安全启动的镜像数据组织方法及装置、电子设备
CN117667121A (zh) 一种文件***资源预置方法及装置
CN115577371A (zh) 固件处理方法、装置及平台
JP2008146294A (ja) ファイル実行制御装置、ファイル実行制御方法及びプログラム
CN112860306A (zh) 文件生成方法和装置、文件运行方法和装置、电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121210

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: 20130107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130120

R150 Certificate of patent or registration of utility model

Ref document number: 5190800

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: 20160208

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees