JP4173449B2 - プログラム難読化システム及びプログラム難読化方法 - Google Patents

プログラム難読化システム及びプログラム難読化方法 Download PDF

Info

Publication number
JP4173449B2
JP4173449B2 JP2004007298A JP2004007298A JP4173449B2 JP 4173449 B2 JP4173449 B2 JP 4173449B2 JP 2004007298 A JP2004007298 A JP 2004007298A JP 2004007298 A JP2004007298 A JP 2004007298A JP 4173449 B2 JP4173449 B2 JP 4173449B2
Authority
JP
Japan
Prior art keywords
terminal
program
regular
message
communication message
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
JP2004007298A
Other languages
English (en)
Other versions
JP2005202608A (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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2004007298A priority Critical patent/JP4173449B2/ja
Publication of JP2005202608A publication Critical patent/JP2005202608A/ja
Application granted granted Critical
Publication of JP4173449B2 publication Critical patent/JP4173449B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、コンピュータプログラムの難読化システム及び難読化方法に関する。
近年、コンピュータを利用した様々なサービスが提供されている。このサービス提供システムにおいて、サービス提供者はユーザに対して当該サービスを利用するためのプログラムを提供する。そして、ユーザは受け取ったプログラムをコンピュータ上で実行することにより、当該サービスを受けることができる。また、そのサービス提供者からユーザに提供されるプログラムに対して、何らかの秘密情報(例えば暗号化用の鍵)を隠蔽することが考えられる。このような場合、プログラムを変形することによって、攻撃者が当該プログラムを理解しにくいようにすることが行われている。この技術は一般に難読化技術と称されている。そして、その難読化技術は、プログラムの解析を困難にする用途にも使用される。
従来の難読化技術としては、プログラム内にダミーコードを挿入するものが知られている。或いは、プログラムに対して、プログラム内で呼び出される関数へのポインタ変数を新たに複数個設けるとともに、該関数ポインタ変数のいずれかに関数のアドレスを代入する命令文を複数個挿入し、関数ポインタ変数の値に応じて関数を呼び出すように変換するものが知られている(例えば、特許文献1参照)。
特開2003−337629号公報
しかし、上述した従来の難読化技術では、プログラム単体で動作することを前提としているために静的解析や動的解析に対して脆弱であり、攻撃者によるプログラム解析を防ぐ上で十分とはいえないという問題がある。
本発明は、このような事情を考慮してなされたもので、その目的は、正規の通信メッセージを取得することができない場合にはプログラム内の正規の命令群を特定することができないようにすることにより、攻撃者によるプログラム解析を防止することができるプログラム難読化システム及びプログラム難読化方法を提供することにある。
上記の課題を解決するために、本発明に係るプログラム難読化システムは、各々のユーザに対して提供されるユーザ個別プログラムに専用の命令実行条件を含む通信メッセージを正規のユーザ端末へ通信回線を介して供給する通信メッセージ供給装置を備え、前記ユーザ個別プログラムは、一機能をコンピュータに実現させる正規の命令群とこの正規の命令群に類似したダミー命令群とを含み、さらに、ユーザ端末を介して通信メッセージを受信する機能と、この受信された通信メッセージに基づいて、前記正規の命令群又は前記ダミー命令群のいずれか予め定められた一方を実行対象に選択する機能とをコンピュータに実現させることを特徴としている。
本発明に係るプログラム難読化方法は、各々のユーザに対してユーザ個別プログラムを提供し、前記ユーザに提供されたユーザ個別プログラムに専用の命令実行条件を含む通信メッセージを正規のユーザ端末へ通信回線を介して供給し、前記ユーザ個別プログラムは、一機能をコンピュータに実現させる正規の命令群とこの正規の命令群に類似したダミー命令群とを含み、さらに、ユーザ端末を介して通信メッセージを受信する機能と、この受信された通信メッセージに基づいて、前記正規の命令群又は前記ダミー命令群のいずれか予め定められた一方を実行対象に選択する機能とをコンピュータに実現させることを特徴としている。
本発明によれば、各々のユーザに対して提供されるユーザ個別プログラムが通信メッセージに基づいて正規の命令群又はダミー命令群のいずれか予め定められた一方を実行対象に選択するものであり、ユーザ個別プログラムに専用の命令実行条件を含む通信メッセージは正規のユーザ端末へ供給される。これにより、正規の通信メッセージを取得することができない場合にはユーザ個別プログラム内の正規の処理を特定することができない。この結果として、攻撃者によるプログラム解析を防止することができるという効果が得られる。
以下、図面を参照し、本発明の一実施形態について説明する。
図1は、本発明の一実施形態に係るプログラム難読化システムの構成を示すブロック図である。図1において、通信メッセージ供給サーバ1(通信メッセージ供給装置)は、通信回線を介して携帯電話端末2a、クライアントPC2b(以下、特に区別しないときは「クライアント端末2」と称する)と接続される。
各クライアント端末2には、各々のユーザに個別のクライアントプログラム3a、3b(以下、特に区別しないときは「クライアントプログラム3」と称する)がインストールされている。通信メッセージ供給サーバ1は、携帯電話端末2a、クライアントPC2bに対して、それぞれのクライアントプログラム3に専用の通信メッセージ4a、4b(以下、特に区別しないときは「通信メッセージ4」と称する)を通信回線を介して供給する。
図2は、図1に示す通信メッセージ供給サーバ1の構成を示すブロック図である。図2において、通信部11は通信ネットワークに接続されており、該通信ネットワークを介してクライアント端末2との間でデータを送受信する。認証部12は、当該サーバ1に対して通信接続を要求した端末の正当性を認証する。メッセージ送信処理部13は、認証部12により正規のクライアント端末2であると認証された端末に対して、該当する通信メッセージ4を送信する。クライアントデータベース14は、正規のクライアント端末2に関する情報(端末識別情報等)、各クライアント端末2にインストールされているクライアントプログラム3に関する情報(プログラム識別情報等)、及び各クライアントプログラム3毎に専用の通信メッセージ4を予め格納している。
次に、図3を参照して、通信メッセージ供給サーバ1の動作を説明する。
先ず、通信メッセージ供給サーバ1の通信部11が端末からの通信接続要求を受信する(ステップS1)。次いで、認証部12が、当該端末の正当性を検証するために、クライアントデータベース14を参照する。そして、クライアントデータベース14に登録されている場合には、当該通信接続要求元の端末を正規のクライアント端末2であると判断する(ステップS2)。次いで、メッセージ送信処理部13が、正規のクライアント端末2に対して、該当する通信メッセージ4をクライアントデータベース14から取得して送信する(ステップS3)。
次に、図4を参照して、クライアントプログラム3について説明する。
クライアントプログラム3は、サービス提供者によりユーザに対して予め提供される。ユーザはこのクライアントプログラム3により当該サービス提供者によるサービスを受けることができる。そのクライアントプログラム3は、ユーザ共通のオリジナルプログラムが難読化されたものであり、ユーザ毎に個別のプログラムとなっている。
図4において、オリジナルプログラム100は難読化前のものである。この実施例では、オリジナルプログラム100は、正規の処理1、2、3がステップS101、S102、S103の順で順番に実行される構造である。各正規の処理1、2、3は、それぞれ一機能をコンピュータに実現させる命令群から構成される。そして、オリジナルプログラム100は難読化作業によりユーザ個別のクライアントプログラム3に変形される。この難読化作業は、コンピュータ処理により自動的に行うことができる。
図4に示されるように、クライアントプログラム3には、オリジナルプログラム100に対して、メッセージ受信処理(ステップS31)と、実行対象選択処理(ステップS32−1〜3)と、ダミー処理1、2、3(ステップS301、S302、S303)とが追加されている。
メッセージ受信処理は、端末を介して通信メッセージを受信する機能をコンピュータに実現させる命令群から構成される。
実行対象選択処理は、メッセージ受信処理により受信された通信メッセージに基づいて、正規の処理又はダミー処理のいずれか予め定められた一方を実行対象に選択する機能をコンピュータに実現させる命令群から構成される。実行対象選択処理は、正規の処理とダミー処理の組合せ単位で設けられる。図4の実施例では、正規の処理1、2、3とダミー処理1、2、3の各組合せに対して、各々対応する実行対象選択処理が設けられている。これら実行対象選択処理において、正規の処理又はダミー処理のいずれを実行対象に選択するかについての条件分岐の真偽設定は、難読化作業時に、各ユーザ毎に変更して行われる。
ダミー処理1、2、3は、それぞれ正規の処理1、2、3に含まれる正規の命令群に類似した命令群(ダミー命令群)から構成される。例えば、ダミー処理1のダミー命令群は、正規の処理1の正規の命令群に非常に似たものとして作成される。これにより、ダミー処理1と正規の処理1とは、単に両者を比べただけではいずれが正規のものであるのかが見分けが付かないものとなる。具体的な例を挙げると、例えば、正規の処理がある値に1を加算するものであった場合に、ダミー処理ではある値に2を加算するようにする。これら2つの処理は、プログラム上どちらももっともらしい処理となっているために、見分けが付かない。
上記した通信メッセージ供給サーバ1から供給される正規の通信メッセージ4には、当該ユーザに提供されたクライアントプログラム3に専用の命令実行条件が含まれている。すなわち、通信メッセージ4に含まれる命令実行条件は、該当するクライアントプログラム3の実行対象選択処理内容に予め適合するように設定されている。そして、各実行対象選択処理により、正規の通信メッセージ4に含まれる命令実行条件に従って実行対象処理が選択された場合にのみ、正規の処理1、2、3が実行される。
図4の実施例においては、ステップS32−1の実行対象選択処理ではその命令実行条件が0ならば正規の処理1が選択され、ステップS32−2ではその命令実行条件が1ならば正規の処理2が選択され、ステップS32−3ではその命令実行条件が1ならば正規の処理3が選択される。そして、正規の通信メッセージ4には、ステップS32−1〜3の各々に対応する命令実行条件として、ステップS32−1は0、ステップS32−2は1、ステップS32−3は1が含まれる。これにより、通信メッセージ供給サーバ1から正規の通信メッセージ4が取得されれば、オリジナルプログラム100と同様に、正規の処理1、2、3がステップS101、S102、S103の順で順番に実行される。
しかし、通信メッセージ供給サーバ1から正規の通信メッセージ4を取得することができなければ正規の処理かダミー処理のいずれかが実行されるが、この実行された処理が正規のものであるのかダミーであるのかは、両者が非常に類似しているために判別することができない。
上述したように本実施形態によれば、通信メッセージ供給サーバ1から正規の通信メッセージを取得することができない場合にはクライアントプログラム3内の正規の処理を特定することができない。これにより、攻撃者によるプログラム解析を防止することができる。また、クライアントプログラムを保護することができるので、より安全なサービス提供システムの構築を行うことができる。
なお、本発明は、携帯電話端末上で動作するプログラムや、その他の通信ネットワークに接続されるPC等の機器上で動作するプログラムなどに対して広く適用することが可能である。
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
本発明の一実施形態に係るプログラム難読化システムの構成を示すブロック図である。 図1に示す通信メッセージ供給サーバ1の構成を示すブロック図である。 図2に示す通信メッセージ供給サーバ1の処理フローを示す図である。 本発明に係るクライアントプログラム3の構成を説明するための図である。
符号の説明
1…通信メッセージ供給サーバ(通信メッセージ供給装置)、2a…携帯電話端末(ユーザ端末)、2b…クライアントPC(ユーザ端末)、3a,3b…クライアントプログラム(ユーザ個別プログラム)、4a,4b…通信メッセージ、11…通信部、12…認証部、13…メッセージ送信処理部、14…クライアントデータベース。

Claims (2)

  1. 正規の処理から構成されるオリジナルプログラムに対してメッセージ受信処理と実行対象選択処理とダミー処理とを追加し、ユーザ個別のクライアントプログラムを作成するクライアントプログラム作成手段と、
    正規の端末の識別情報、各端末にインストールされているクライアントプログラムの識別情報及びクライアントプログラム毎に専用の通信メッセージを格納するデータベースと、
    前記データベースに基づいて端末の正当性を検証する認証手段と、
    前記認証された正規の端末に対して、該当する通信メッセージを前記データベースから取得して送信するメッセージ送信手段と、
    サーバが備え、
    前記メッセージ受信処理と前記実行対象選択処理と前記ダミー処理は端末で行われるものであり、
    前記メッセージ受信処理は、端末通信メッセージを受信するものであり、
    前記実行対象選択処理は、前記メッセージ受信処理により受信された通信メッセージ中の設定値に従って、正規の処理又はダミー処理のいずれかに分岐するものであり、
    前記ダミー処理は、正規の処理を構成する命令群に類似した命令群から構成されるものであり、
    前記クライアントプログラム毎に専用の通信メッセージは、クライアントプログラム中の実行対象選択処理に対して正規の処理に分岐させる設定値を含むものである、
    ことを特徴とするプログラム難読化システム。
  2. サーバが、正規の処理から構成されるオリジナルプログラムに対してメッセージ受信処理と実行対象選択処理とダミー処理とを追加し、ユーザ個別のクライアントプログラムを作成するクライアントプログラム作成過程と、
    サーバが、正規の端末の識別情報、各端末にインストールされているクライアントプログラムの識別情報及びクライアントプログラム毎に専用の通信メッセージを格納するデータベースに基づいて、端末の正当性を検証する認証過程と、
    サーバが、前記認証された正規の端末に対して、該当する通信メッセージを前記データベースから取得して送信するメッセージ送信過程と、
    を含み、
    前記メッセージ受信処理と前記実行対象選択処理と前記ダミー処理は端末で行われるものであり、
    前記メッセージ受信処理は、端末通信メッセージを受信するものであり、
    前記実行対象選択処理は、前記メッセージ受信処理により受信された通信メッセージ中の設定値に従って、正規の処理又はダミー処理のいずれかに分岐するものであり、
    前記ダミー処理は、正規の処理を構成する命令群に類似した命令群から構成されるものであり、
    前記クライアントプログラム毎に専用の通信メッセージは、クライアントプログラム中の実行対象選択処理に対して正規の処理に分岐させる設定値を含むものである、
    ことを特徴とするプログラム難読化方法。
JP2004007298A 2004-01-14 2004-01-14 プログラム難読化システム及びプログラム難読化方法 Expired - Fee Related JP4173449B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004007298A JP4173449B2 (ja) 2004-01-14 2004-01-14 プログラム難読化システム及びプログラム難読化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004007298A JP4173449B2 (ja) 2004-01-14 2004-01-14 プログラム難読化システム及びプログラム難読化方法

Publications (2)

Publication Number Publication Date
JP2005202608A JP2005202608A (ja) 2005-07-28
JP4173449B2 true JP4173449B2 (ja) 2008-10-29

Family

ID=34820987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004007298A Expired - Fee Related JP4173449B2 (ja) 2004-01-14 2004-01-14 プログラム難読化システム及びプログラム難読化方法

Country Status (1)

Country Link
JP (1) JP4173449B2 (ja)

Also Published As

Publication number Publication date
JP2005202608A (ja) 2005-07-28

Similar Documents

Publication Publication Date Title
US10223520B2 (en) System and method for integrating two-factor authentication in a device
CN101258505B (zh) 安全的软件更新
CN105376216B (zh) 一种远程访问方法、代理服务器及客户端
US9100403B2 (en) Apparatus and methods for providing authorized device access
US10445487B2 (en) Methods and apparatus for authentication of joint account login
JP4685876B2 (ja) 複数の信用証明認証プロトコルを提供するシステム及び方法
US9628282B2 (en) Universal anonymous cross-site authentication
JP4507623B2 (ja) ネットワーク接続システム
RU2512118C2 (ru) Протокол привязки устройства к станции
KR101744747B1 (ko) 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법
CN112019493A (zh) 身份认证方法、身份认证装置、计算机设备和介质
KR101210260B1 (ko) 통합센터를 이용한 유심칩기반 모바일 오티피 인증장치 및 인증방법
CN103647746A (zh) 用户登录的方法、设备及***
US20200196143A1 (en) Public key-based service authentication method and system
JP2011175394A (ja) シングル・サインオン・システムを構成するウェブ・サーバならびにその動作制御方法およびその動作制御プログラム
KR102279582B1 (ko) 회의 제공 장치 및 상기 장치에서의 접속 단말 변경 방법
CN103036852B (zh) 一种实现网络登录的方法以及装置
CN113949566B (zh) 资源访问方法、装置、电子设备和介质
US20210135874A1 (en) Systems and methods for out-of-band authenticity verification of mobile applications
JP7157549B2 (ja) モバイルベース設備サービスシステム、およびその作動方法
JP4998314B2 (ja) 通信制御方法および通信制御プログラム
JP4173449B2 (ja) プログラム難読化システム及びプログラム難読化方法
CN110457959B (zh) 一种基于Trust应用的信息传输方法及装置
CN111245600B (zh) 基于区块链技术的鉴权认证方法和***
JP2008233965A (ja) 携帯端末装置とそのプログラム、及び、改竄防止システムと改竄防止方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070501

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071010

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080516

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4173449

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140822

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees