電子メモリ改竄防止システム
【課題】セルラ電話のような電子装置内のメモリに対するいたずらを防止する。
【解決手段】メモリ及び処理手段を有する電子装置が論理を含み、この論理は装置のメモリ内容に片方向ハッシュ計算を遂行するために使用され、それによって、このような内容の監査ハッシュ値、又はシグネチャが導出される。監査ハッシュ値は、真正メモリ内容から導出された認証された有効ハッシュ値と比較される。監査ハッシュ値と有効ハッシュ値との間の相違がメモリ改竄を示すことができる。電子装置メモリ内容を、そのメモリ内容にアクセスを許される前に認証されるデータ転送装置によって更新することができる。データ転送装置認証は、公開鍵/秘密鍵暗号化方式の使用に係わる。データ転送装置が電子装置とインタフェースしかつメモリ・アクセスをリクエストするとき、データ転送装置を認証するプロセスが開始される。
【解決手段】メモリ及び処理手段を有する電子装置が論理を含み、この論理は装置のメモリ内容に片方向ハッシュ計算を遂行するために使用され、それによって、このような内容の監査ハッシュ値、又はシグネチャが導出される。監査ハッシュ値は、真正メモリ内容から導出された認証された有効ハッシュ値と比較される。監査ハッシュ値と有効ハッシュ値との間の相違がメモリ改竄を示すことができる。電子装置メモリ内容を、そのメモリ内容にアクセスを許される前に認証されるデータ転送装置によって更新することができる。データ転送装置認証は、公開鍵/秘密鍵暗号化方式の使用に係わる。データ転送装置が電子装置とインタフェースしかつメモリ・アクセスをリクエストするとき、データ転送装置を認証するプロセスが開始される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子メモリ操作、特に、電子装置内の安全が望まれるメモリ内容の無許可操作を防止する方法及び装置に関する。
【背景技術】
【0002】
本明細書に開示される発明は、安全な又は好適には不変の状態に維持されるべきメモリ内容を有するあらゆる電子装置に関する。このような要件は、セルラ電話メモリの詐欺(fraudulent)操作を防止するような安全理由によって、又は航空機制御又は医療機器動作のような臨界応用での電子装置動作の保全性を維持する目的のために必要とされると云ってよい。本明細書に開示しかつ説明するように、本発明の模範的態様を、セルラ電話内の1つ以上の電子メモリの安全を保証するシステム及び方法についての説明の中で述べる。本明細書でまた説明するのは、電子メモリにアクセスすることを許される前に認証プロセスを受けるデータ転送装置を使用することによって、電子装置内の1つ以上の電子メモリへのアクセス及びメモリの操作を許すシステムである。後者のシステムもまた、セルラ電話応用についての説明の中で述べる。たとえ本明細書に開示された本発明の模範的実施例を安全セルラ電話メモリ及びセルラ電話内のメモリ内容を安全にアクセスし及び変更する手段についての説明の中で述べたとしても、当業者が容易に承知するように、本発明に従うシステムは、その内容が不変に維持されるべき又はその内容が許可された手段によってのみアクセスされるべき1つ以上のメモリを有するあらゆる電子システムに応用することができる。したがって、本発明の範囲を、本明細書で扱う模範的実施例によって限定するのではなく、本明細書に添付された請求の範囲及びそれの等価事項によって限定することを意図する。
【0003】
米国では、セルラ電話詐欺に因る損失が1995年に6億ドルと見積もられた。これに反応して、製造業者、サービス提供業者、連邦通信委員会(Federal Communications Commission;FCC)及び業界取り引き団体がこのような詐欺と戦ういくつもの技術を調査してきている。米国で行われたセルラ電話詐欺の大部分は、セルラ電話が通信を確立するために備えなければならないセルラ電話の電子シリアル番号(electronic serial number; ESN)を変更するメモリ操作のいくつかの手口に係わる。したがって、FCCによる規則としての考えの下で、1つの詐欺防止技術は、セルラ電話製造業者に、全てのマイクロプロセッサ・コード及びESNを変更不可能にするように要求することである。本発明を組み込むシステムが取り組むセルラ電気通信動作環境及び関連した問題を解説するに当たって助けとなるために基本的セルラ通信について或る背景を下に与える。
【0004】
セルラ通信システムの簡単化レイアウトを図1に示す。移動体電話M1〜M10がセルラ基地局B1〜B10と無線信号を受信することによって公衆交換網(public switched network)の固定部分と通信する。セルラ基地局B1〜B2は、移動交換センタ(MobileSwitching Center ; MSC)を経由して公衆交換網と接続される。各基地局B1〜B10は、相当する領域、つまり、「セル」 C1〜C10内に信号を送信する。図1に示したように、基地局の理想的な配置は、それらのセルが、重なり合う量を最小限にして、移動電話通信が普通その中で起こるエリア(例えば、都市エリア)を実質的にカバーするように組織される。
【0005】
利用者が或る1つのセル内で移動体電話を起動させると、移動体電話はその移動体電話の存在を表示する信号をそのセルの基地局へ送信する。移動体電話は、各基地局によって連続的に監視されている指定されたセットアップ・チャネルに、その移動体電話のESNを含むことがある信号を送信する。基地局が移動体電話の信号を受信すると、基地局はそのセル内の移動体電話の存在を登録する。このプロセスは、移動体電話が他のセル内へ移動する際にそれが適当に登録されるように、連続的に繰り返される。
【0006】
移動体電話番号がダイヤルされると、電話会社の電話局がその番号を移動体電話として認識しかつその呼をMSCへ転送する。MSCは、ダイヤルされた移動体電話番号及び現在登録情報に基づいて或る決まったいくつかの基地局へページング・メッセージを送る。これらの基地局の1つ以上がそのセットアップ・チャネル上でページを送信する。ダイヤルされた移動体電話は、セットアップ・チャネル上のその識別情報を認識し、かつ基地局ページに応答する。移動体電話はまた、割り当てられた音声チャネルに同調するようにとの命令に従い、次いで呼び出し信号を開始する。移動体利用者が通信を終端させるとき、信号確認音が基地局へ送信され、両側が音声チャネルを解放する。
【0007】
上に述べた動作で、移動体電話は固定網に持久的に接続されないで、代わりに、いわゆる「エア・インタフェース(air interface)」 を通して基地局と通信する。これは、もちろん、利用者が通信システムに物理的にリンクされる制約を伴わずに容易に移動体電話を輸送することができるから、セルラ通信システムの柔軟性を与える。しかしながら、この同じ特徴がまた、セルラ電話システムを通じて送信される情報の安全を保証することに関して困難を生じる。
【0008】
例えば、普通の有線電話システムでは、電話局交換機は、電話機が物理的に付属している通信線路によるその電話機の使用について課金される特定加入者を識別することができる。それゆえ、加入者のアカウントを詐欺により使用するには、典型的に、その加入者線路へ物理的接続を行うことを必要とする。これが、詐欺をたくらむ利用者に発見の危険を存在させる。
【0009】
他方、セルラ電気通信システムはエア・インタフェースを通じて通信するから、これらのシステムは詐欺をたくらむ利用者にこのような接続問題を課さない。保護システムが欠如しているので、詐欺による利用者は、通信を確立しかつ維持するために種々の時間に移動体電話によって網へ送信される他の加入者の電子シリアル番号(ESN)にアクセスすることによってその加入者のアカウントを使用することができる。標準セルラ接続を確立するに当たって、2つの識別コードが移動体電話によってシステムへ送信される。これらは、移動体識別番号(Mobile Identification Number;MIN)及びESNである。
【0010】
MINは、加入者を識別するのに対して、ESNはその加入者によって使用される実際ハードウェアを識別する。したがって、加入者が新機器を購入することによって、特定ESNに対応するMINは、時間が経つにつれて変化し得ると予想される。MINが10桁の登録簿(directory)電話番号であるのに対して、ESNは移動体電話を固有的に識別する32ビット2進番号である。ESNは、典型的に、移動体電話製造業者によってセットされる。
【0011】
例えば、アドバンスト・モビール・ホーン・システム(Advanced Mobile Phone System;AMPS)で通信を設定する(setting up) に当たって利用される慣例の認証方法は、図2に描いた流れ図によって示される。この方法に従って、ブロック200で、基地局は、移動体電話からのESN及びMINの両方を受信する。これらの認証コードは、これが移動体電話から受信されることを表示するために、ESNm及びMINmで指定される。次に、ブロック202で、基地局は、システム・メモリからMINmに対応するESNsysを検索する。次いで、ブロック204で、ESNsys がESNmと比較される。もしこれら2つのシリアル番号が同じであるならば、流れ図はブロック206へ進み、かつシステム・アクセスが許される。そうでなければ、システム・アクセスは、ブロック208で否定される。
【0012】
このシステムの1つの欠点は、エア・インタフェース上で又は他の発信源から盗聴することによって、有効MIN/ESNを組み合わせることが詐欺による利用者にとって比較的簡単であることである。もし移動体電話から受信されたMIN及びESNがシステム・メモリに記憶されたものに相当するならば、この従来のシステムによるアクセスは有効であると推定されるから、詐欺アクセスにとって必要な情報の全ては、電子盗聴によって得ることができる。
詐欺による使用を防止する他の技術が提案されている。例えば、特許文献1は、サービス通信事業者(service carrier)との専用通信端末に識別番号を登録する方法を説明している。特許文献2は、携帯電話内の番号割り当てモジュールの違法設定を防止する携帯電話機用番号割り当てモジュール設定システムを説明している。
【0013】
欧州GSM規格(移動体通信用グローバル・システム(Global System for Mobile Communication ; GSM ))、来国TIA/EIA/IS−136、 及び日本パーソナル・ディジタル・セルラ規格無線通信システムの下で動作するシステムでは、盗聴から生じる詐欺はチャレンジ・レスポンス(challenge−response)方法によって防止される。チャレンジ・レスポンス方法に従って、各移動体電話は、その移動体電話及び網内のデータベースの両方に記憶されている固有の秘密鍵と関連している。システムに固有であるアルゴリズムが各移動体電話及び所望の網ノードに記憶される。呼が設定されると、認証がリクエストされ、それによって網がチャレンジ(乱数)を移動体電話へ送る。受信したチャレンジ及び記億した秘密鍵に基づいて、移動体電話は、そのアルゴリズムを使用して応答を計算し、その応答を網へ送信する。同時に、網は「同じチャレンジ及び網記憶秘密鍵に基づいて「期待」応答を計算する。次いで、網は移動体電話の計算した応答を受信し、移動体電話の計算した応答を網の計算した応答と比較する。もし不一致が起こるならば、適当な行動を取ることになる、例えば、アクセスが否定されるか又は警告フラグがセットされる。移動無線システムで基地局と移動体電話との間で認証検査を実施する方法は、p・デント(P.Dent)他の特許文献3に記載されている。
【0014】
AMPSのような、慣例のアナログ・システムでは、ほとんどの詐欺が、有効MIN/ESN対を獲得しかつセルラ電話をリプロルグラムするためにこの対を使用することによって有効加入者を「偽造(clone)」する詐欺による利用者によって行なわれる。もっと精巧な偽造の構成では、セルラ電話のソフトウェアがいくつかのMIN/ESN対を「タンブリング(tambling)」 と呼ばれる実践に使用することができるように、このソフトウェアがリプログラムされる。タンブリング・ルーチンを用いてプログラムされたセルラ電話は、呼を開始するために、ランダムにスクロールしてMIN/ESN対を選択する。サービス提供業者又は加入者によって詐欺が識別されるにつれて、そのMIN/ESN対は無効とされる。発呼を企図しているとき無効MIN/ESN対に遭遇すると、タンブリング・ルーチンは、単にそのMIN/ESN対を取り消しかつ有効MIN/ESN対が発見されるまでスクローリングを続ける。セルラ電話内へプログラムされたこのMIN/ESN対の全てが無効化された後、電話利用者は典型的に、そのセルラ電話内へプログラムされたMIN/ESN対の新しい組を有するように偽造者(cloner)に報いる。
【0015】
ほとんどのセルラ詐欺は、成る程度のメモリ操作に係わる。これを図3を参照して説明するが、この図は従来のセルラ電話メモリ及びプロセッサ構成を示す。
【0016】
コントローラ300が、メモリ・バス308を使用して、ROM又はフラッシュ・メモリ320、EEPROM310、及びランダム・アクセス・メモリ(RAM)330と通信する。プログラムラ・メモリ320は不揮発性読み出し書き込みメモリであり、これはセルラ電話の全般動作に使用されるコードの大部分を記憶するために使用される。EEPROM310はMIN/ESN対314と316、及び利用者プロファイル情報312(例えば、スピード・ダイヤリング番号)を記憶するために使用され、及びRAMは読み出し書き込みスクラッチパッドに使用される。偽造者は、使用する情報を収集するためにメモリとコントローラ300との間でメッセージを監視し、フラッシュ・メモリ320又はEEPROM310に記憶された情報を迂回する又は改変することを知っている。
【0017】
電話詐欺の最も普通の方法は、ESNを変えるための、電話サービスや修繕を意図する試験命令の不法使用であった。しかしながら、より最近開発された電話はこのようないたずらには対抗性があって、この手の攻撃を有効に除去している。したがって、偽造者は、より精巧な方法による攻撃に訴えてきた。
【0018】
1つのこのようなテクニックは、ESN314を含む元のEEPROM310を除去してかつそれを置換することに係わる。その除去に続いて、そのEEPROMを研究してその内容を解読する(dechiper)。 次いで、解読した内容を使用して置換EEPROMをプログラムして、有効利用者アカウントからESN/MIN対を着服する。このテクニックは、偽造者が一度に1つのESNを変えようと望むだけならば偽造者にとって魅力的であるかもしれない。しかし、この技術は、手数がかかり過ぎかつ未熟な偽造者は極めて慎重でない限りプリント配線を損傷するかもしれない。
【0019】
偽造の精巧さにおける大きなステップは、電話マイクロプロセッサ・プログラム・コードを分析しかつそのコードの1つ以上の区分を書き換えて詐欺識別情報(ESN/MIN対)をセルラ基地局へ送信することに係わる。これは、しばしば、電話ハードウェア設計の逆エンジニアリングに係わり、埋め込まれたソフトウェア設計のかなりの理解を必要とする。しかしながら、この方法の明白な利点は、いったん改変が完了すると、電話を所望するだけ頻繁に新識別情報を用いてリプログラムできることである。
【0020】
ほとんどの精巧な攻撃は、上に述べたセルラ電話のマイクロプロセッサ・コードの変更をハードウェア改変と組み合わせる。この技術の一例は、セルラ電話を最初に同調させるときのブートアップ・プロセス中にのみ実行する従来のメモリ妥当検証ルーチンによる検出を回避するために、いわゆる「シャドウ・メモリ」を使用する。ブートアップ・プロセスは、コントローラ300に含まれたブート・コード304の小部分に従って実行される(図3参照)。 ブートアップ・プロセスは、セルラ電話をサービス条件に入れるように構成しかつマイクロプロセッサ301内のプログラム・カウンタをフラッシュ・メモリ320内の適当な位置へセットする。このプロセスが完了すると、コントローラ300はLED318(又は他の等価な信号)を点灯して利用者にその電話が使用中であることを表示する。偽造者は、下に更に詳細に説明するように、フラッシュ・メモリ320内の正規動作コードの実行を破壊するためにコントローラ300とLED318との間の接続306を監視することができる。
【0021】
典型的最新セルラ電話に含まれたフラッシュ・メモリ320は、512Kのアドレス指定可能容量を有する。偽造者は、フラッシュ・メモリ320を除去し、かつ、元のフラッシュ・メモリの内容を1024Kシャドウ・メモリ322の初めの512K内へ複写した後、元のフラッシュ・メモリ320を1024Kシャドウ・メモリで置換することもできる。ブートアップ中、プログラム・メモリへのどのアクセスもフラッシュ・メモリ320の初めの512Kに成功裡に向けられる。次いで、偽造者は、将来の全てのプログラム・メモリ・アクセスをシャドウ・メモリ322へスイッチさせるために、ブート・プロセスが完了したことを表示する(LED信号306のような)電話内で利用可能な信号を監視することもできる。その後、セルラ電話は、シャドウ・メモリ322内にある命令に従って動作し、このメモリをタンブリング・ルーチン・コード及び相当するMIN/ESN対を含むようにプログラムすることができる。
【0022】
メモリいたずらを防止するために種々の企図がなされてきた。例えば、特許文献4は、移動体無線電話内のメモリ領域へのアクセスがROMから取り出されたCPU命令によってのみ許される安全技術を説明している。特許文献5は、或る種の事象の生起の際にメモリが書き込まれるのを防ぐシステムを説明している。詐欺による使用及び/又はいたずらを防止する他のシステムが特許文献6に記載されており、これはセルラ電話プログラミングに対する無許可アクセス及びいたずらを妨げるセルラ電話用遠隔アクセシング・システムを説明しおり、及び特許文献7はプログラム又はデータの完全性を検査することを説明しており、この検査では携帯物体の処理回路によって計算されたシグネチャが元のメッセージ・シグネチャと比較される。
【0023】
ほとんどのセルラ詐欺が或る程度のメモリ操作に基づいている理由から、連邦通信委員会(FCC)は、セルラ電話詐欺のこの態様に対する解決を現在考え中である。この解決は、第22.219章に示されたFCC規則案に組み込まれている。現在書かれているように、第22.919章は、移動体電話の動作ソフトウェアが変更可能であることを禁止し、ESNが工場セットされて、いかなる方法でも変更、転送、除去又は操作されることが不可能であるように要求し、かつ移動体送信機が、もし製造業者を含むなんらかの者がセルラ電話のESN、システム論理、又はファームウェアを除去、いたずら、又は変化させようと企図するならば、動作不可能となることを要求する。
【0024】
消費者の立場からは、現在の製造業者又はその工場が許可したサービス代理人の現在のセルラ電話をプログラムする能力は、適正に動作しないセルラ電話の置換を容易にしている。例えば、もし加入者のセルラ電話が適正に動作しないならば、その加入者は工場が許可した代理人から新装置を得かつそれを旧装置のものと同じ電子的な「個性(personality)」 を含むようにプログラムしてもらうことができる。セルラ電話の電子個性は、ESNだけでなく、利用者プロファイル及び個人及び/又は業務電話番号のような加入者によってその装置にプログラムされるかなりの量の情報もまた含む。修繕/置換プログラム及びセルラ電話にESNの変更及び他のメモリの変更を敏速かつ容易に加える技術は、欠陥端末によって自分達の加入者に不便をかけたくないセルラ・サービス提供業者達の主張で開発されてきた。
【0025】
FCC第22.219章の下で、上に述べた状況にある加入者は、もしその旧移動体装置に欠陥があるならば、新装置を得ることが依然できることになる。しかしながら、新たな固定ESNが新装置と関連することになる理由から、新ESN情報がセルラ通信事業者(cellular carrier) へ通信されねばならず、通信事業者はそれを自分達のデータ・ベースにプログラムしなければならないことになる。この結果、長い時間中その加入者はサービスを受けられないことになる。加入者はまた、そのセルラ電話をなんらかの個人又は業務電話番号で以てプログラムしなければならないことになる。第22.919章に関する遥かに顕著な問題は、セルラ・サービス提供業者が自分達の加入者のセルラ電話をプログラム又はリプログラムすることによってシステム・アップグレードを加入者に施すこれらサービス提供業者の能力に第22.919章が与える逆影響である。
【0026】
第22.919章が、セルラ産業のシステムをアップグレードする能力へ実際に与える影響は、次のように言い表される。例えば、TIA/EIA/IS−136規格に指定されたようなディジタル制御チャネルの使用は、セルラ通信事業者に簡易文字メッセージ(short messaging) サービスのような新しい拡張サービスを提供可能とする。もし通信事業者、製造業者、又は許可された代理店がセルラ電話のソフトウェア又はファームウェアに変化を加えることを許されるならば、このようなサービスを端末のソフトウェア・アップグレードを通じて加入者に敏速にかつ効率的に利用可能とすることができる。第22.919章(その現在の形で)の下では、製造業者も、製造業者の許可したサービス代理人も、セルラ通信事業者も、このようなソフトウェア変化を加えることはできないことになる。通信事業者が加入者にシステム増強を提供することができる唯一の道は、加入者に新セルラ電話を購入するように要求することである。
【0027】
加入者ばかりでなく製造業界への第22.919章の影響を改善するために、FCCは、この規則が1995年1月1日後に初期型式承認(initial type acceptance) の申請が提出されたセルラ電話に適用されることになると声明した。事実、FCCは、1995年1月1日より前に提出された型式承認に対する申請に基づいて、現在動作中の2000万のセルラ電話ばかりでなく1995年1月1日後にサービスに入った数100万のセルラ電話をこの規則から適用免除してきている。電子情報を不法目的のために操作することができる非常に多くのセルラ装置が市場に出回っている事実は、第22.919章が詐欺問題に極めて小さな影響しか与えないことを示唆している。ESNを用いて不法にいたずらすることによる詐欺に巻き込まれるこれらの対象物(entity)は、第22.919章制約を受けない数100万の端末を使用することによって引き続き詐欺に巻き込まれるおそれがある。
【0028】
上述から承知できるように、安全メモリを有するセルラ電話を用意することが極めて望まれる。セルラ電話へのいたずらに対しこれらの電話を対抗性があるように改良する解決策は、現在、ないように思われる。更に、許可されたアクセスのみを保証するような方法で電子装置メモリに更新を施す方法及び装置はないように思われる。
【先行技術文献】
【特許文献】
【0029】
【特許文献1】米国特許第5,386,486号明細書
【特許文献2】欧州特許出願公開第0 583 100号明細書
【特許文献3】米国特許第5,282,250号明細書
【特許文献4】国際公開第91/09484号パンフレット
【特許文献5】仏国特許発明第2 681 965号明細書
【特許文献6】米国特許第5,046,082号明細書
【特許文献7】米国特許第5,442,645号明細書
【発明の開示】
【発明が解決しようとする課題】
【0030】
セルラ電話メモリいたずら、及び全般的に電子装置メモリいたずらを防止する慣例の方法及び提案された解決のこれら及び他の欠点、及び限界が本発明によって克服され、本発明の模範的実施例が電子メモリ内容を無許可アクセス及び操作から保護する。
【課題を解決するための手段】
【0031】
本発明の一態様によれば、安全は、電子装置内の電子メモリ内容がいたずらされていないことを確かめるためにそれらの内容を周期的に監査することによって達成される。この監査は、このような内容の監査ハッシュ値、又は監査シグネチャを導出するために電子メモリの選択された内容にハッシュ計算を遂行することに係わる。監査ハッシュ値は、真正メモリ内容から先に導出された有効ハッシュ値と比較される。有効ハッシュ値は、好適には、暗号化された形で電子メモリ内へ記憶され、かつ比較目的にのみ復号される。監査ハッシュ値と有効ハッシュ値との間の不一致はメモリいたずらを表示することでき、したがって、その電子メモリを含む電子装置を動作不能させることができるか、又は警告表示を行うことができる。
【0032】
本発明の他の態様によれば、(セルラ電話のESNを含む) セルラ電話メモリに含まれた内容のような電子メモリ内容を、そのメモリ内容にアクセスを許される前に、認証されているデータ転送装置によって更新することができる。データ転送装置認証は、公開鍵/秘密鍵認証方式の使用に係わる。データ転送装置が電子装置とインタフェースしかつアクセスをリクエストするとき、電子装置はデータ転送装置を認証するプロセスを開始する。これは、一連のメッセージを電子装置とデータ転送装置との間で交換することに係わることができる。公開鍵は、暗号化されたメッセージを復号するために使用される電子装置内に維持されるか、又はデータ転送装置内に維持された安全秘密鍵で以て「署名(signed)」 される。特に、データ転送装置が電子装置をプログラムするようにリクエストするとき、認証プロセスが開始される。電子装置は、データ転送装置へチャレンジメッセージを送ることによって応答する。チャレンジメッセージは、データ転送装置内に維持された秘密鍵を使用してディジタル・シグネチャで署名される。署名されたチャレンジメッセージは電子装置へ送り返され、電子装置はこのメッセージを公開鍵を使用して認証する。いったん認証されると、データ転送装置は、電子装置内の特権命令及び能力にアクセスすることを許される。
【0033】
電子メモリの何らかのリプログラミングに続いて、電子装置は新(有効)ハッシュ値を導出するハッシュ計算を改変されたメモリ内容において遂行する。新ハッシュ値が、秘密鍵によるディジタル・シグネチャのためにデータ転送装置へ返される。署名された新ハッシュ値が記憶されるためにデータ転送装置へ返される。電子装置が後続メモリ監査を遂行するとき、結果のハッシュ値が新有効ハッシュ値と比較される。
【0034】
本発明の上述の及び他の目的、特徴及び利点が、添付図面と関連したこの説明を読むとき更に容易に理解される。
【図面の簡単な説明】
【0035】
【図1】セルラ通信システムの理想的レイアウトを示す線図である。
【図2】セルラ呼を設定する慣例のセルラ認証方法を示す流れ図である。
【図3】慣例のセルラ電話プロセッサ及びメモリ構成を示すブロック図である。
【図4】本発明の模範的実施例に従うセルラ電話プロセッサ及びメモリ構成を示すブロック図である。
【図5】本発明の実施例に従う模範的セルラ電話立ち上げプロセスを示す流れ図である。
【図6】本発明に従う模範的周期的メモリ妥当検証プロセスを示す流れ図である。
【図7】本発明の実施例に従う模範的データ転送装置を示すブロック図である。
【図8】本発明の実施例に従ってデータ転送装置を認証する模範的プロセスを示す流れ図である。
【図9】本発明の実施例に従って初期ESNをセルラ・メモリ内へ入力する模範的プロセスを示す流れ図である。
【図10】本発明に従って確立されたESNをリプログラムする模範的プロセスを示す流れ図である。
【図11】本発明の模範的実施例に従って保護されたメモリ構成を示すブロック図である。
【図12】本発明の実施例に従う模範的セルラ電話プログラマを示すブロック図である。
【発明を実施するための形態】
【0036】
本発明に従う装置及び方法に係わる模範的電子メモリが、セルラ電話応用についての文脈の中で下に開示される。下に説明される例は、単に、本発明を組み込む理想的応用を解説するために与えられる。
【0037】
図4で、コントローラ400がセルラ電話(例えば、図12の参照符号1204を参照)を制御する。コントローラ400は、フラッシュ・プログラム・メモリ420、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)
410、及びランダム・アクセス・メモリ(RAM)408と連携して動作する。コントローラ400は、マイクロプロセッサ402及び内部読み出し専用メモリ(IROM)403を含む。IROM403は、ブート・コード404、ハッシュ・コード405、認証コード409、及び公開暗号化鍵406を含む。コントローラ400はまた、保護スタティック・ランダム・アクセス・メモリ(PSRAM)407、割り込みコントローラ421、及び選択されたメモリ内容へのマイクロプロセッサ402による周期的ハッシュ計算を開始させるめのハードウェアに基づくタイマ401を含む。EEPROM410は、利用者プロファイル・データ412、ESN414、MIN416、及び署名された/署名されていない有効ハッシュ値対418を含む。セルラ電話の全般動作に係わる命令コードがフラッシュ・プログラム・メモリ420に含まれる。RAMメモリ408は、正規セルラ電話呼処理の部分である動作のためのスクラッチパッドとして使用される。感応性データ、ハッシュ値計算及び認証プロセスに係わる動作は、好適には、PSRAM407と連携して実施される。コントローラ400は、メモリ・バス424を経由して、フラッシュ・プログラム・メモリ420、RAM408、及びEEPROM410と通信する。
【0038】
本発明の模範的実施例による、図4に示されたシステムに対する電話電源投入及びメモリ妥当検証のプロセスを図5に示す。セルラ電話がターン・オンされた後、コントローラを初期化するために、IROM403内のブート・コード404がマイクロプロセッサ402によって実行される(ブロック500)。フラッシュ・プログラム・メモリ420の選択された内容及びEEPROM410に記憶されたESN値414に監査ハッシュ値計算を遂行するために、IROM403内に含まれたハッシュ・コード405がランされる(ブロック502)。次いで、コントローラは、EEPROM410に記憶された署名されたハッシュ値対418を認証する(ブロック504) 。これは、署名された有効ハッシュ値を公開鍵406で以て処理し、次いでその結果を署名されていないハッシュ値と比較することによって署名された有効ハッシュ値を認証することを伴うことがある。認証されたハッシュ値が、次いで、PSRAM407に記憶される(ブロック506) 。ブロック502で導出された監査ハッシュ値が、次いで、ブロック504で導出された認証されたハッシュ値と比較される(ブロック508) 。もしこれら2つのハッシュ値が一致するならば、マイクロプロセッサ・プログラム・カウンタがフラッシュ・メモリ420内の適当な位置にセットされ、かつ周期的ハッシュ計算プロセスが使用可能とされ(ブロック510) 、その後、セルラ電話は正規動作を開始する(ブロック512)。もしハッシュ値がブロック508で一致しないならば、このシステムは無限ループに置かれ(ブロック514) 、そうでなければ、使用禁止される。上述のプロセスは偽造者が改変したプログラムをフラッシュ・メモリに代入する又は改変したESNをEEPROM410へ代入するのをどちらも防止する。これは、そのようにしようとするとハッシュ値の不一致を起こし、それによって電話を動作不能にすることになるからである。
【0039】
正規動作の開始に続いてシャドウ・メモリ422を有効フラッシュ・メモリ420に代入するのを防止するために、周期的ハッシュ値処理を遂行するのが好適である。正規電話動作中、周期的ハッシュ値計算がタイマの期限切れ又はその他のシステム事象に応答して行われる。図4に示された模範的実施例では、周期的ハッシュ計算は、ハードウェア・ベース・タイマ401の期限切れに応答して開始され、このタイマはマスク不可能割り込み(non−maskable interrupt;NMI) を発生させる。NMIは、ソフトウェア・プロセスによって「マスク」出力することができないハードウェア向きプロセスである。したがって、偽造者は、NMIを無視するように設計されるシャドウ・コードを構成することができない。正規(regular)割り込みもまたハードウェア割り込みであって、これはマイクロプロセッサ資源にアクセスを取るために正規セルラ電話事象からの他の正規割り込みと競争しなけれなればならない。正規割り込みは、それがサービスをリクエストする最高優先権割り込みになるとき、肯定応答されかつ処理される。
【0040】
完全なハッシュ値計算は正規(normal)電話動作によって容認され得るよりも長くかかることがあるから、時間間隔(例えば、数秒)にわたって分散したいくつかのセグメントで断片式に処理を遂行するのが好適である。本発明の他の態様に従って、ハードウェア・ベース・タイマは、ハッシュ値計算のセグメントを遂行するために2つのステップを呼び起こす。第一に、マスク不可能割り込み(NMI)がマイクロプロセッサに周期的ハッシュ計算に含まれる予定の次のフラッシュ・メモリ又はEEPROMメモリ位置の内容を直ちに検索させ、かつそれをPSRAMに記憶させる。NMIは、短い、最高優先権の割り込みの種類のものであって、これはNMIが起こるとき活性であることがあるマイクロプフロセッサ・タスクにほとんど無視できる影響しか与えない。これは、ハッシュ計算による検出を免れるように偽造ソフトウェアが行動を起こし得ないことを保証する。第二に、低優先権標準割り込みがハードウェア・ベース・タイマ410によってまた発生され、この割り込みはNMIルーチンによって先に捕獲されたメモリ・バイトに基づいてハッシュ値計算の現在セグメントを完了するサービスをリクエストする。このタスクは、ハードウェア・タイマが期限切れしかつ電話を使用禁止する前に、正規呼処理タスクのために必要とされるに従って、所定最長時間(T)だけ延期されてよい。最長時間(T)は、どれかの正当呼処理を完了するために、ハッシュ計算セグメントを仕上げるために、及びハードウェア・タイマをそれが期限切れになる前にそのカウントダウン・サイクルの開始にリセットするために、適当であるように選択される。ハッシュ値計算のセグメントを周期的に完了するために2つの型式の割り込みを使用する戦略は、システム応答のいかなる劣化も回避する一方、安全検査がシャドウ・メモリ内に在駐する偽造ソフトウェアによって迂回され得ないことを保証する。
【0041】
本発明に従う模範的周期的ハッシュ値計算を示す流れ図を図6に示す。この図を参照すると、ハードウェア・タイマ401内のT1カウンタが期限切れすると(ブロック602)、ブロック604でNMI及び正規割り込みの両方が起こる。いったんNMIがマイクロプロセッサの制御を得ると(ブロック604)、このシステムは短い時間間隔中、正規割り込みを使用禁止するか又は待ち行列させ、この時間間隔中、ハッシュ計算に必要とされるフラッシュ・メモリ内又はEEPROMメモリ内の次のバイトがPSRAM内へ複写される(ブロック606)。
【0042】
次いで、制御は、NMIが起こったとき実行するタスクへ復帰する(ブロック608) 。正規条件の下で、短い時間間隔内に、ハードウェアに基づくタイマ401からの正規割り込みも供給され(ブロック610) 、かつハッシュ計算のセグメントがPSRAMに先に記憶されたメモリ・バイトに基づいて完了される(ブロック616) 。もしハッシュ値計算が未だ完了しないならば、ハードウェア・ベース・タイマ(T1及びT2)401がそれらの初期値にリセットされ(ブロック624) 、かつタイマT1の次の期限切れまで正規電話動作が続く(ブロック600) 。正規割り込みが供給される(ブロック610)前にもし万−タイマT2が期限切れする(ブロック612)ならば、電話は使用禁止される(ブロック614) 。(正規割り込みが正しく供給されない限り)タイマT2のデフォールト期限切れは、偽造者が周期的ハッシュ計算を使用禁止とするのを防止する。
【0043】
監査ハッシュ値計算が完了する(ブロック618)まで、ハッシュ値のこの周期的断片状計算は続く。先に認証されたハッシュ値が、次いで、PSRAMから取り出されてかつ監査ハッシュ値と比較される(ブロック620) 。もし一致すれば、ハードウェア・ベース・タイマ401がリセットされ(ブロック624)かつ電話は正規に動作し続ける(ブロック600) 。もし不一致であるならば、このシステムは、例えば、マイクロプロセッサ402を停止条件に置くことによって使用禁止される(ブロック622)。
【0044】
ハッシュ計算を好適には遂行されるセルラ電話メモリの選択された内容は、フラッシュ・メモリ420からの内容及びEEPROM414内のESNを含む。
【0045】
これは、偽造者がフラッシュ・メモリ又はEEPROMのどちらかを物理的に除去しかつそれらをセルラ通信事業者を詐欺するように設計された改変ESN及び/又はプログラム・コードを含むリプログラムされた装置で以て置換するのを防止する。選択されたメモリ内容及び使用されたハッシュ値が、そのハッシュ値計算に含まれたメモリのたとえ1ビットの改変によっても電話を動作不能にさせることが好適である。
【0046】
本発明の他の態様に従って、セルラ電話をデータ転送装置を使用して安全な方法でプログラムすることができる。本発明に従う模範的データ転送装置を図7に示す。コントローラ400の参照番号、その内容、及び関係したメモリは、図4のものと同じである。模範的データ転送装置750が安全マイクロプロセッサ752を含み、このマイクロプロセッサは秘密暗号化鍵754を含み、この鍵はコントローラ400内のIPROM403内の公開暗号化鍵406に相当する。安全マイクロプロセッサ752は、インタフェース758を経由してセルラ電話コントローラ400と通信する。インタフェース758は、RS−232リンクのような有線直列接続、無線赤外線インタフェース、又はセルラ電話の主アンテナ(図示してない)又はセルラ電話内の他のアンテナのようなRFインタフェースであってよい。
【0047】
データ転送装置750によるセルラ電話メモリへのアクセスは、厳格な認証プロセスが完了した後に限り許される。更に明細に述べるならば、コントローラ400(及び関係したメモリ構成要素)は、データ転送装置750がその真正を保証するためにチャレンジ・レスポンスプロセスを受けた後に限りデータをダウンロードする目的のためにアクセスすることができる。図8は、本発明の模範的実施例に従ってデータ転送装置750を認証する模範的プロセスを示す。第1ステップ(ブロック800)として、電話は、好適には、図5に関して先に説明した詐欺防止プロセスを使用して、動作条件にもたられる。インタフェースが確立された後、安全プロセッサ752がプログラミング・リクエスト・メッセージを、安全マイクロプロセッサ752によって発生された乱数(Rand1)と一緒に、コントローラ400へ送る(ブロック802) 。応答して、コントローラ400は、乱数チャレンジコード(Rand2)を安全マイクロプロセッサ752へ送る(ブロック804) 。次いで、安全マイクロプロセッサ752は、Rand1、Rand2及び秘密鍵754に基づいてチャレンジ応答を発生する(ブロック806)。
【0048】
次いで、チャレンジ応答がコントローラ400へ返される(ブロック808) 。チャレンジ応答は、Rand1、Rand2、及び公開鍵406を使用してコントローラ400によって処理される(ブロック810) 。処理されたチャレンジ応答は、次いで、その値をRand2と比較されることによって認証される(ブロック812) 。もしチャレンジ応答が(例えば、Rand2)が適正に復号するならば、データ転送装置の認証が妥当検証されかつ電話はプログラミング・モードへ入る(ブロック814) 。その後、データ転送装置750は、セルラ電話内の種種のメモリにアクセスする及び/又は新フラッシュ・メモリ420内容をダウンロードすることができる。
【0049】
もしチャレンジ応答が有効でないならば、故障カウントが増分される(ブロック816) 。故障カウントは、それが所定数(最大カウント)に到達したかどうかを見るために検査される(ブロック818) 。故障カウントは、データ転送装置750が雑音性媒体を通じてコントローラ400と通信中であるかもしれないことを考慮に入れる。どんな結果の送信誤りも認証故障を生じると云ってよい。それゆえ、セルラ電話をプログランミング・モードに置く2回以上の機会をデータ転送装置750に与えるのが好適である。本発明の模範的実施例では、50の最大カウントが適当であると判定された。もし最大数に達しなかったならば、認証故障が起こったことを表示するメッセージがデータ転送装置750へ送られる(ブロック822) 。このような表示を受信すると、認証プロセスがブロック802で再開始する。もし所定数の企図に達したならば、電話は動作不能条件に置かれかつ電話が許可されたサービスへ復帰しなくてはならないことを利用者に示すメッセージを表示することができる。
【0050】
データ転送装置750がなんらかのESNリプログラミング又はフラッシュ・メモリ420へダウンロードすることを完了した後、電話内のコントローラ400は新ハッシュ計算を開始し、この計算は、例えば、フラッシュ・メモリ420の改訂内容及びESN414を含む。結果のハッシュ値が、秘密鍵754を使用するディジタル・シグネチャのためにデータ転送装置750へ送られる。次いで、署名されたハッシュ値が、同じハッシュ値の署名されていないものと一緒に、EEPROM410に記憶されるめにコントローラ400へ返される。
【0051】
ESNを本発明に従ってリプログラムすることができるが、しかし安全理由から、ESNプログラミングは、好適には、認可された工場代理人ではなく、工場レベルで行われる。ESNのプログラミングは、2つの状況で起こり得る。すなわち、製造中の初期ESNプログラミング、及び現存するESNのリプログラミング。初期ESNは、図7のそれに類似のデータ転送装置を使用してプログラムすることができる。初期ESNプログラミング・プロセスを図9に関して下に説明する。
【0052】
第1ステップ(ブロック900)として、電話を動作状態にする(図5参照)。この電話とのインタフェースの確立に続いて、安全プロセッサ752がESNプログラミング・リクエスト・メッセージを、乱数(Rand1)と一緒に、コントローラ400へ送る(ブロック902) 。コントローラ400は、新たに製造された電話の場合の常として電話内のESNが全てゼロであるかどうか判定する検査を遂行する(ブロック906) 。もしESNが全てゼロでないならば、ESNプログラミング・モード・リクエストは否定される(ブロック906) 。もしESNが全てゼロであるならば、図8のステップ804から820で設定されたのと実質的に類似したチャレンジ・レスポンスプロセスが開始される(ブロック908)。
【0053】
データ転送装置750の成功認証に続いて、新ESNをEEPROM410内へダウンロードすることができる。
【0054】
データ転送装置750がESNをEEPROM410内へダウンロードするのを完了した後、コントローラ400は、新ESN414を含む新ハッシュ計算を開始する。結果のハッシュ値が、秘密鍵754を使用するディジタル・シグネチャのためにデータ転送装置750へ送られる。次いで、署名されたハッシュ値418が、EEPROM410に記憶されるために、同じハッシュ値の署名されていないものと一緒に、コントローラ400へ返される。
【0055】
現存するESNをまた、本発明を組み込むシステム内でリプログラムすることができる。ESNリプログラミングは、好適には、工場でのみ行われ、地方の許可された工場代理人によっては行われない。電話内へ先にプログラムされたESNを変える目的のためにこの電話内へロードされてある、工場でのみ利用可能な1組のマイクロプロセッサ命令を利用することによって、安全が追加される。このプロセスは図7に示したものと類似のデータ転送装置を使用して実施することができ、これを図10に関して以下に説明する。
【0056】
第1ステップ(1000)として、電話を、図8に示したプロセスに従って正規プログラミング・モードにする。工場データ転送装置750はESNリプログラミング・コード756を含み、このコードは、ESNリプログラミングを容易にするために、セルラ電話のPSRAM407内へダウンロードすることができる。システムをプログラミング・モードにしたなら、ESNリプログラミング・コード756がPSRAM407内へダウンロードされる(ブロック1002)。ESNリプログラミング・コード756を実行するに当たって、コントローラ400は、現存するESNをゼロにし(ブロック1004) 、かつESNリプログラミング・プロセスを開始する(ブロック1006)。
【0057】
データ転送装置750が新ESNをEEPROM410に入力するのを完了した後、コントローラ400は新ハッシュ計算を開始し、この計算は新ESN414を含む(ブロック1008) 。結果のハッシュ値が、秘密鍵754を使用するディジタル・シグネチャのためにデータ転送装置750へ送られる(ブロック1010) 。次いで、署名されたハッシュ値418が、EEPROM410に記憶されるために、同じハッシュ値の署名されていないものと一緒に、コントローラ400へ返される(ブロック1012)。
【0058】
本発明の模範的実施例でのハッシュ値計算及びディジタル・シグネチャは、片方向ハッシュ化関数及び秘密鍵/公開鍵認証方式を使用して実施される。片方向ハッシュ関数は、セルラ電話内のメモリ内容を表すハッシュ値を導出するために使用される。公開鍵/秘密鍵方式は、EEPROMに記憶された有効ハッシュ値の安全を確保しかつセルラ電話内のメモリを操作しようと企図するデータ転送装置又はプログラマを認証するために使用される。片方向ハッシュ化は、当業者に知られており、かつ、例えば、ムーア(Moore)の米国特許第5,343,527号に説明されている。
【0059】
片方向ハッシュ関数は、順方向に計算するのが容易であるが、逆方向に計算するのが困難な関数である。片方向ハッシュ関数H(M)は任意長入力Mに演算し、この入力は、本発明の模範的実施例では、選択された電子メモリ内容で構成される。Mに遂行されたハッシュ関数は、固定長ハッシュ値hを生じる(式1参照)。
【0060】
h=H(M) 式1
任意長入力を取りかつ固定長の出力を生じることができる多くの関数があるが、しかし片方向ハッシュ関数は次の追加特徴を有する。すなわち、Mが与えられると、hを計算するのが容易である。hが与えられても、Mを計算するのが困難である。及び、Mが与えられると、H(M)=H(M')のような他のメッセージM'を見付けるのが困難である。
【0061】
片方向ハッシュに対する基本的な攻撃は、次のようである。すなわち、メモリ内容(ハッシュ化内容)のハッシュ値が与えられると、偽造者は、H(M)=H(M') のような、メモリ内容M'の他の組を作成しようと努めるであろう。もし偽造者がこれを行うのに成功したとしたならば、この片方向ハッシュ関数の安全をひそかに崩すであろう。片方向ハッシュ関数の目的は、Mに固有のシグネチャ、つまり、指紋を用意することである。本発明では、安全片方向ハッシュ関数は、監査ハッシュ値を用意するためにセルラ電話メモリの選択された内容について遂行される。監査ハッシュ値は、メモリからの真正であると知られている選択されたメモリ内容に基づいて片方向ハッシュ関数を遂行することによって、先に発生された有効ハッシュ値と比較される。
【0062】
好適実施例では、MD5のようなメッセージ・ダイジェスト・アルゴリズムが、安全片方向ハッシュ計算に使用される。MD5アルゴリズムは、入力メッセージのNビット・ハッシュ、つまり、メッセージ・ダイジェスト(すなわち、選択されたメモリ内容)を発生する。MD5アルゴリズムは、選択された内容中の単一ビットに変化を生じると統計的にそのハッシュ値ビットの半分に変化を生じさせるという点で、非常に敏感である。MD5アルゴリズムはまた、その速度及び簡単性のために知られている。速度は、セルラ電話のマイクロプロセッサに課せられた時間要求が通常のシステム・プロセスと許容不能に干渉するほどに大きいものであってはならないという点で、重要な考慮すべき問題である。
【0063】
MD5アルゴリズムはまた、このアルゴリズムを増分式に遂行することができ、それによってハッシュ・プロセスの割り込みを許し、その結果、ハッシュ化を再び始める前に通常のマイクロプロセッサのタスクに取り組むことができるという理由で適している。更に、MD5アルゴリズムは、従来のマイクロプロセッサ・アーキテクチャに使用されるのにも充分適している。本発明の実施例に従って使用することができる他の片方向ハッシュ・アルゴリズムには、次のものがあるが、これらに限られるわけではない。すなわち、Snerfu、H−Hash、MD2、MD4、Secure Hash Algorithm(SHA) 、及びHAVALである。当業者ならば、片方向ハッシュ・プロセスを実行するようにマイクロプロセッサを容易にプログラムすることができる。
【0064】
公開鍵アルゴリズムは2つの鍵を使用し、1つは公に利用可能であり、1つは私的に(秘密を)保つものでメッセージ暗号化及び復号、メッセージ認証、及びディジタル・シグネチャのようなタスク用である。これらの鍵は、異なる目標を達成するために異なる方法で使用することができる。例えば、もし目的がメッセージを秘密に維持することであるならば、受信者だけがメッセージを復号できるように受信者が秘密鍵を安全に維持するべきである。このような場合、暗号化鍵は、公に知られかつ特定の潜在受信者と関連していることが知られ得る。送信者はこのプロセスで情報の安全を保証され得るけれども、受信者は送信者の真正を保証され得ない。もし一対の鍵のうちの秘密鍵が送信者によって暗号化用に秘密に維持されるならば、対応する公開鍵を持つどの受信者も、安全の保証はないものの、送信者の真正を保証され得る。本発明に従ってデータ転送装置を認証することに利用されるのは、後者の方式である。
【0065】
公開鍵アルゴリズムは数学的トラップドア関数に基づいて演算し、この関数は公開鍵から秘密鍵を演算することを計算上実行不可能にする。周知のRSA(Rivest、Shamir、and Adlemen (リヴェスト、シャミア、エイドルマン) )アルゴリズムの場合、2つの大きな素数の積を因数分解するのが困難であることに基づいている。鍵選択は、2つの大きな素数p及びqの選択で始まり、これらは互いに乗じられて、大きな数nを生じる。
【0066】
n=pq 式2
次いで、暗号化鍵eは、eと(p-1)(q-1) とが相対的に素数であるようにランダムに選択される。最後にユークリッドのアルゴリズムを使用して、復号鍵dが次のように計算される。
【0067】
F=(p−1)(q−1) 式3
ed=1(modF) 式4
数e及びnは公開鍵であり、数dは秘密鍵である。式5がRSA暗号化プロセスを与え、及び式6が復号化プロセスを与える。
【0068】
C=Me(modn) 式5
M=Cd(modn) 式6
因数nを求める能力のある敵は、式3を使用して係数Fを決定し、次いで、公開鍵eが与えられるならば、式4から秘密鍵dを決定することができるかもしれない。それにもかかわらず、上に注意したように、nは、普通、非常に大きいからこのような因数分解を実行不可能にする。RSAアルゴリズムについての更に詳細は、リヴェスト他の米国特許第4,405,829号に見ることができる。
【0069】
本発明の好適実施例では、フィアット・シャミア(Fiat−Shamir;FS)アルゴリズム又はその傍系が利用される(米国特許第4,748,668号が参考になり、この特許の内容は言及することによってその内容が本明細書に全面的に組み込まれている) 。FSアルゴリズムは認証及びディジタル・シグネチャ方式を実現するために適しており、この方式は典型的セルラ電話の限定された計算能力に充分適している。
【0070】
FSアルゴリズムは、このアルゴリズムがnを法とする平方余剰(νi)の逆数を見付けることが困難であることに基づいて因数を使用すると云う点で、RSAのような、先の方式と異なっている。更に明細に述べると、FS方式は、好適には、長さで512ビットから1064ビットまでの2つの大きな素数の積である数nを選択することに係わる。公開鍵(ν):ν1,ν2,…νk,及び秘密鍵(s):s1,s2,…sk,はsi=sqrt(1/-νi)mod nのように発生される。上掲の式についての文脈の中で逆数(1/-νi)mod nを見付ける困難が素数nの因数を見付ける困難と等価であることを示すことができる。安全性を犠牲することなく、このアルゴリズムは他の方式よりも遥かに敏速に実行する。事実、FS方式は、必要な認証計算を完了するために通常要するモジュラ乗算の1%から4%をFS計算が必要とするに過ぎないと云う点でRSA方式よりも性能的に優れていることが判っている。これは、同じタスクを遂行するためにRSA方式を使用するよりも2桁まで高い速度で署名されたハッシュ値を認証することに相当する。したがって、データ転送装置認証及び周期的監査ハッシュ値比較をRSA方式よりもFS方式を使用してかなり速く遂行することができる。工場レベルでセルラ電話メモリ又はその他の電子メモリを大量にプログラムするとき、FSアルゴリズムの使用は記憶する有効ハッシュ値のディジタル・シグネチャをより敏速に発生することによって生産時間を短縮する。応用することができるアルゴリズムには、次に限られるわけではないが、ELGAMAL、DSA、及びフィージ・フィアット・シャミア(Fiege−Fiat−Shamir)がある。
【0071】
本発明の他の態様によれば、セルラ電話内のコントローラ・ハードウェアは、偽造者が安全メモリの内容を判定すること、あるいは先に説明した安全方式を迂回することを防止する安全特徴を有する。図11は、コントローラ・ハードウェア、外部メモリ、及びメモリ/アドレス・バス構造の細部を示す。チップ選択論理1122及び安全論理1124を除いて、コントローラ内の構成要素の機能及び動作は、図4について説明したのと同じである。チップ選択論理1122は、マイクロプロセッサ・アドレス・バス1102に接続されたメモリ構成要素及びハードウェア装置に対してハードウェア選択信号を供給するためにバス1102上のアドレスをデコードする。例えば、IROMメモリ403に割り当てられるアドレスがアドレス・バス1102上に現れる時はいつでも、IROMチップ選択(CS)が使用可能にされる。
【0072】
安全論理1124は、IROMメモリ403以外のメモリ装置に記憶されたマイクロプロセッサ命令コードを使用してPSRAM407の内容にアクセスする又はハードウェア・ベース・タイマ401をリセットする企図を検出するように機能する。例えば、PSRAM407内のメモリ位置の目標アドレスを用いてのフラッシュ・メモリ402に置かれた読み出し又は書き込み命令は、違法動作として検出されることになる。どんな違法アクセス企図もマイクロプロセッサを停止状態に入らせ、停止状態はセルラ電話が正規動作を回復するために電話の完全な電源リセットを必要とする。
【0073】
安全論理は、次の論理式を実現することである。すなわち、
論理式1 S=↑Supvr・B
論理式2 Halt=notS・(A+C)
【0074】
ここで、
S = 安全モード、
↑Supvr= マイクロプロセッサの監視モードへの遷移、
A = PSRAMメモリに対するチップ選択信号、
B = IROMメモリに対するチップ選択信号、
C = ハードウェア・タイマに対するチップ選択信号、
Halt= マイクロプロセッサへのハードウェア制御入力であって、マイクロプロセッサを無際限ループに入れる、又は電源が除かれかつ電話に再印加されるまで待機させる。
【0075】
上の論理式1は次のことを述べる。すなわち、マイクロプロセッサが監視モードへ遷移し(↑Supvr)、それと同時にIROM403が活性である(・B)とき常に安全モード(S)がセットされる。論理式2は次のことを述ベる。すなわち、もしコントローラ400が安全モードになく(notS)かつPSRAM407選択又はハードウェア・タイマ・チップ選択のどちらかが活性である(・ (A+C))ならば、マイクロプロセッサ停止入力が活性化される。この論理は、PSRAM407への適法アクセス及びハードウェア・タイマ401へのリセット命令が、好適には、IROM403に記憶されたコードに由来するから、先に説明したハッシュ値比較及び認証プロセスによって提供される安全処置の迂回を有効に防止する。
【0076】
IROMメモリ403に置かれた全ての適法コード(ブート・コード、アッシュ・コード、公開鍵コード、及び認証コード)が、好適には、命令によって括弧に入れられ、これが安全モードをルーチンの開始にセットさせ及びそのルーチンを去るときクリアさせる。本発明の好適実施例では、ソフトウェア割り込み命令(最近のマイクロプロセッサでは普通利用可能である)がIROM403内各ルーチンの開始に置かれて、マイクロプロセッサ402を監視モードへスイッチしかつマイクロプロセッサ・ハードウェア信号SPVRを活性になるようにさせる。IROM403チップ選択信号はそのとき活性であるから、安全モードSがセットされる。そのソフトウェア・ルーチンの終わりで復帰命令を実行して、安全モードを取り消す。
【0077】
本発明の他の態様によれば、データ転送装置は工場供給安全装置を含み、この装置は汎用コンピュータとの組み合わせで使用することができる。安全装置1200は、標準コネクタ1206を経由してPC1202の入力出力ポートに取り付けられる。PC1202上の第2ポートは、RS−232、ケーブル、又は赤外線リンクのような第2標準コネクタ1208と連携して使用され、セルラ電話1204とインタフェースする。図8に示したプロセスは、セルラ電話リプログラミング・プロセスを実施するために図12に示した構成を使用して遂行することができる。標準PC及び安全装置1200を有する許可された工場サービス代理人は、電話をリプログラムする装備を有する。
【0078】
本発明の他の実施例によれば、現存するセルラ電話は、内部プリント配線板カードアッセンブリにアクセスすることによらない攻撃に対して安全であるフィールド・プログラミング能力を備えることができる。この保護レベルは、外部電話コネクタを通してアクセス可能な試験命令を使用して電話内のメモリ内容を改変する偽造攻撃の最も普通の方法に対して非常に効果的である。これは、フィールド・プログラミング命令にアクセスを容認するのに先立ち、図8で説明したデータ転送装置(DTD)認証手順を使用するように現在のセルラ電話をアップグレードすることによって行うことができる。認証ソフトウェア・コード及び公開鍵の両方を現存するフラッシュ・メモリに記憶し、このようにして現在の慣例設計nに対する何らの変化も回避する。
【0079】
本発明の模範的応用を、セルラ電話内の電子メモリの安全を保証しかつプログラムするに当たって応用される片方向ハッシュ化及び鍵暗号化システムの説明の中で述べた。しかしながら、当業者が容易に承知しかつ認めるように、メモリ内容のシグネチャを導出するためのいかなる適当な機能、計算、アルゴリズム、方法、及びシステムも本発明に従って応用することができる。また、本発明を特定の実施例を参照して説明した。しかしながら、当業者に容易に明らかなように、上に説明した好適実施例以外の特殊な形で本発明を具体化することが可能である。例えば、本発明をその精神に反することなくいかなる電子メモリ及び/又は電子メモリ・プログラミング又はアクセス装置で具体化することも可能である。
【0080】
更に、本発明をディジタル信号プロセッサ、特定用途向けプロセッサ、又はいかなる他の類似のプロセッサ、又は電子メモリ向けシステムにも応用しかつ実施することがきる。したがって、本明細書に説明した好適実施例は、単に解説のためであって、いずれにしても限定的に考えてはならない。本発明の範囲は、前述の説明によってではなく、添付の請求の範囲によって与えられ、請求の範囲に入る全ての変形実施例及び等価実施例は請求の範囲に包含されることを意図する。
【技術分野】
【0001】
本発明は、電子メモリ操作、特に、電子装置内の安全が望まれるメモリ内容の無許可操作を防止する方法及び装置に関する。
【背景技術】
【0002】
本明細書に開示される発明は、安全な又は好適には不変の状態に維持されるべきメモリ内容を有するあらゆる電子装置に関する。このような要件は、セルラ電話メモリの詐欺(fraudulent)操作を防止するような安全理由によって、又は航空機制御又は医療機器動作のような臨界応用での電子装置動作の保全性を維持する目的のために必要とされると云ってよい。本明細書に開示しかつ説明するように、本発明の模範的態様を、セルラ電話内の1つ以上の電子メモリの安全を保証するシステム及び方法についての説明の中で述べる。本明細書でまた説明するのは、電子メモリにアクセスすることを許される前に認証プロセスを受けるデータ転送装置を使用することによって、電子装置内の1つ以上の電子メモリへのアクセス及びメモリの操作を許すシステムである。後者のシステムもまた、セルラ電話応用についての説明の中で述べる。たとえ本明細書に開示された本発明の模範的実施例を安全セルラ電話メモリ及びセルラ電話内のメモリ内容を安全にアクセスし及び変更する手段についての説明の中で述べたとしても、当業者が容易に承知するように、本発明に従うシステムは、その内容が不変に維持されるべき又はその内容が許可された手段によってのみアクセスされるべき1つ以上のメモリを有するあらゆる電子システムに応用することができる。したがって、本発明の範囲を、本明細書で扱う模範的実施例によって限定するのではなく、本明細書に添付された請求の範囲及びそれの等価事項によって限定することを意図する。
【0003】
米国では、セルラ電話詐欺に因る損失が1995年に6億ドルと見積もられた。これに反応して、製造業者、サービス提供業者、連邦通信委員会(Federal Communications Commission;FCC)及び業界取り引き団体がこのような詐欺と戦ういくつもの技術を調査してきている。米国で行われたセルラ電話詐欺の大部分は、セルラ電話が通信を確立するために備えなければならないセルラ電話の電子シリアル番号(electronic serial number; ESN)を変更するメモリ操作のいくつかの手口に係わる。したがって、FCCによる規則としての考えの下で、1つの詐欺防止技術は、セルラ電話製造業者に、全てのマイクロプロセッサ・コード及びESNを変更不可能にするように要求することである。本発明を組み込むシステムが取り組むセルラ電気通信動作環境及び関連した問題を解説するに当たって助けとなるために基本的セルラ通信について或る背景を下に与える。
【0004】
セルラ通信システムの簡単化レイアウトを図1に示す。移動体電話M1〜M10がセルラ基地局B1〜B10と無線信号を受信することによって公衆交換網(public switched network)の固定部分と通信する。セルラ基地局B1〜B2は、移動交換センタ(MobileSwitching Center ; MSC)を経由して公衆交換網と接続される。各基地局B1〜B10は、相当する領域、つまり、「セル」 C1〜C10内に信号を送信する。図1に示したように、基地局の理想的な配置は、それらのセルが、重なり合う量を最小限にして、移動電話通信が普通その中で起こるエリア(例えば、都市エリア)を実質的にカバーするように組織される。
【0005】
利用者が或る1つのセル内で移動体電話を起動させると、移動体電話はその移動体電話の存在を表示する信号をそのセルの基地局へ送信する。移動体電話は、各基地局によって連続的に監視されている指定されたセットアップ・チャネルに、その移動体電話のESNを含むことがある信号を送信する。基地局が移動体電話の信号を受信すると、基地局はそのセル内の移動体電話の存在を登録する。このプロセスは、移動体電話が他のセル内へ移動する際にそれが適当に登録されるように、連続的に繰り返される。
【0006】
移動体電話番号がダイヤルされると、電話会社の電話局がその番号を移動体電話として認識しかつその呼をMSCへ転送する。MSCは、ダイヤルされた移動体電話番号及び現在登録情報に基づいて或る決まったいくつかの基地局へページング・メッセージを送る。これらの基地局の1つ以上がそのセットアップ・チャネル上でページを送信する。ダイヤルされた移動体電話は、セットアップ・チャネル上のその識別情報を認識し、かつ基地局ページに応答する。移動体電話はまた、割り当てられた音声チャネルに同調するようにとの命令に従い、次いで呼び出し信号を開始する。移動体利用者が通信を終端させるとき、信号確認音が基地局へ送信され、両側が音声チャネルを解放する。
【0007】
上に述べた動作で、移動体電話は固定網に持久的に接続されないで、代わりに、いわゆる「エア・インタフェース(air interface)」 を通して基地局と通信する。これは、もちろん、利用者が通信システムに物理的にリンクされる制約を伴わずに容易に移動体電話を輸送することができるから、セルラ通信システムの柔軟性を与える。しかしながら、この同じ特徴がまた、セルラ電話システムを通じて送信される情報の安全を保証することに関して困難を生じる。
【0008】
例えば、普通の有線電話システムでは、電話局交換機は、電話機が物理的に付属している通信線路によるその電話機の使用について課金される特定加入者を識別することができる。それゆえ、加入者のアカウントを詐欺により使用するには、典型的に、その加入者線路へ物理的接続を行うことを必要とする。これが、詐欺をたくらむ利用者に発見の危険を存在させる。
【0009】
他方、セルラ電気通信システムはエア・インタフェースを通じて通信するから、これらのシステムは詐欺をたくらむ利用者にこのような接続問題を課さない。保護システムが欠如しているので、詐欺による利用者は、通信を確立しかつ維持するために種々の時間に移動体電話によって網へ送信される他の加入者の電子シリアル番号(ESN)にアクセスすることによってその加入者のアカウントを使用することができる。標準セルラ接続を確立するに当たって、2つの識別コードが移動体電話によってシステムへ送信される。これらは、移動体識別番号(Mobile Identification Number;MIN)及びESNである。
【0010】
MINは、加入者を識別するのに対して、ESNはその加入者によって使用される実際ハードウェアを識別する。したがって、加入者が新機器を購入することによって、特定ESNに対応するMINは、時間が経つにつれて変化し得ると予想される。MINが10桁の登録簿(directory)電話番号であるのに対して、ESNは移動体電話を固有的に識別する32ビット2進番号である。ESNは、典型的に、移動体電話製造業者によってセットされる。
【0011】
例えば、アドバンスト・モビール・ホーン・システム(Advanced Mobile Phone System;AMPS)で通信を設定する(setting up) に当たって利用される慣例の認証方法は、図2に描いた流れ図によって示される。この方法に従って、ブロック200で、基地局は、移動体電話からのESN及びMINの両方を受信する。これらの認証コードは、これが移動体電話から受信されることを表示するために、ESNm及びMINmで指定される。次に、ブロック202で、基地局は、システム・メモリからMINmに対応するESNsysを検索する。次いで、ブロック204で、ESNsys がESNmと比較される。もしこれら2つのシリアル番号が同じであるならば、流れ図はブロック206へ進み、かつシステム・アクセスが許される。そうでなければ、システム・アクセスは、ブロック208で否定される。
【0012】
このシステムの1つの欠点は、エア・インタフェース上で又は他の発信源から盗聴することによって、有効MIN/ESNを組み合わせることが詐欺による利用者にとって比較的簡単であることである。もし移動体電話から受信されたMIN及びESNがシステム・メモリに記憶されたものに相当するならば、この従来のシステムによるアクセスは有効であると推定されるから、詐欺アクセスにとって必要な情報の全ては、電子盗聴によって得ることができる。
詐欺による使用を防止する他の技術が提案されている。例えば、特許文献1は、サービス通信事業者(service carrier)との専用通信端末に識別番号を登録する方法を説明している。特許文献2は、携帯電話内の番号割り当てモジュールの違法設定を防止する携帯電話機用番号割り当てモジュール設定システムを説明している。
【0013】
欧州GSM規格(移動体通信用グローバル・システム(Global System for Mobile Communication ; GSM ))、来国TIA/EIA/IS−136、 及び日本パーソナル・ディジタル・セルラ規格無線通信システムの下で動作するシステムでは、盗聴から生じる詐欺はチャレンジ・レスポンス(challenge−response)方法によって防止される。チャレンジ・レスポンス方法に従って、各移動体電話は、その移動体電話及び網内のデータベースの両方に記憶されている固有の秘密鍵と関連している。システムに固有であるアルゴリズムが各移動体電話及び所望の網ノードに記憶される。呼が設定されると、認証がリクエストされ、それによって網がチャレンジ(乱数)を移動体電話へ送る。受信したチャレンジ及び記億した秘密鍵に基づいて、移動体電話は、そのアルゴリズムを使用して応答を計算し、その応答を網へ送信する。同時に、網は「同じチャレンジ及び網記憶秘密鍵に基づいて「期待」応答を計算する。次いで、網は移動体電話の計算した応答を受信し、移動体電話の計算した応答を網の計算した応答と比較する。もし不一致が起こるならば、適当な行動を取ることになる、例えば、アクセスが否定されるか又は警告フラグがセットされる。移動無線システムで基地局と移動体電話との間で認証検査を実施する方法は、p・デント(P.Dent)他の特許文献3に記載されている。
【0014】
AMPSのような、慣例のアナログ・システムでは、ほとんどの詐欺が、有効MIN/ESN対を獲得しかつセルラ電話をリプロルグラムするためにこの対を使用することによって有効加入者を「偽造(clone)」する詐欺による利用者によって行なわれる。もっと精巧な偽造の構成では、セルラ電話のソフトウェアがいくつかのMIN/ESN対を「タンブリング(tambling)」 と呼ばれる実践に使用することができるように、このソフトウェアがリプログラムされる。タンブリング・ルーチンを用いてプログラムされたセルラ電話は、呼を開始するために、ランダムにスクロールしてMIN/ESN対を選択する。サービス提供業者又は加入者によって詐欺が識別されるにつれて、そのMIN/ESN対は無効とされる。発呼を企図しているとき無効MIN/ESN対に遭遇すると、タンブリング・ルーチンは、単にそのMIN/ESN対を取り消しかつ有効MIN/ESN対が発見されるまでスクローリングを続ける。セルラ電話内へプログラムされたこのMIN/ESN対の全てが無効化された後、電話利用者は典型的に、そのセルラ電話内へプログラムされたMIN/ESN対の新しい組を有するように偽造者(cloner)に報いる。
【0015】
ほとんどのセルラ詐欺は、成る程度のメモリ操作に係わる。これを図3を参照して説明するが、この図は従来のセルラ電話メモリ及びプロセッサ構成を示す。
【0016】
コントローラ300が、メモリ・バス308を使用して、ROM又はフラッシュ・メモリ320、EEPROM310、及びランダム・アクセス・メモリ(RAM)330と通信する。プログラムラ・メモリ320は不揮発性読み出し書き込みメモリであり、これはセルラ電話の全般動作に使用されるコードの大部分を記憶するために使用される。EEPROM310はMIN/ESN対314と316、及び利用者プロファイル情報312(例えば、スピード・ダイヤリング番号)を記憶するために使用され、及びRAMは読み出し書き込みスクラッチパッドに使用される。偽造者は、使用する情報を収集するためにメモリとコントローラ300との間でメッセージを監視し、フラッシュ・メモリ320又はEEPROM310に記憶された情報を迂回する又は改変することを知っている。
【0017】
電話詐欺の最も普通の方法は、ESNを変えるための、電話サービスや修繕を意図する試験命令の不法使用であった。しかしながら、より最近開発された電話はこのようないたずらには対抗性があって、この手の攻撃を有効に除去している。したがって、偽造者は、より精巧な方法による攻撃に訴えてきた。
【0018】
1つのこのようなテクニックは、ESN314を含む元のEEPROM310を除去してかつそれを置換することに係わる。その除去に続いて、そのEEPROMを研究してその内容を解読する(dechiper)。 次いで、解読した内容を使用して置換EEPROMをプログラムして、有効利用者アカウントからESN/MIN対を着服する。このテクニックは、偽造者が一度に1つのESNを変えようと望むだけならば偽造者にとって魅力的であるかもしれない。しかし、この技術は、手数がかかり過ぎかつ未熟な偽造者は極めて慎重でない限りプリント配線を損傷するかもしれない。
【0019】
偽造の精巧さにおける大きなステップは、電話マイクロプロセッサ・プログラム・コードを分析しかつそのコードの1つ以上の区分を書き換えて詐欺識別情報(ESN/MIN対)をセルラ基地局へ送信することに係わる。これは、しばしば、電話ハードウェア設計の逆エンジニアリングに係わり、埋め込まれたソフトウェア設計のかなりの理解を必要とする。しかしながら、この方法の明白な利点は、いったん改変が完了すると、電話を所望するだけ頻繁に新識別情報を用いてリプログラムできることである。
【0020】
ほとんどの精巧な攻撃は、上に述べたセルラ電話のマイクロプロセッサ・コードの変更をハードウェア改変と組み合わせる。この技術の一例は、セルラ電話を最初に同調させるときのブートアップ・プロセス中にのみ実行する従来のメモリ妥当検証ルーチンによる検出を回避するために、いわゆる「シャドウ・メモリ」を使用する。ブートアップ・プロセスは、コントローラ300に含まれたブート・コード304の小部分に従って実行される(図3参照)。 ブートアップ・プロセスは、セルラ電話をサービス条件に入れるように構成しかつマイクロプロセッサ301内のプログラム・カウンタをフラッシュ・メモリ320内の適当な位置へセットする。このプロセスが完了すると、コントローラ300はLED318(又は他の等価な信号)を点灯して利用者にその電話が使用中であることを表示する。偽造者は、下に更に詳細に説明するように、フラッシュ・メモリ320内の正規動作コードの実行を破壊するためにコントローラ300とLED318との間の接続306を監視することができる。
【0021】
典型的最新セルラ電話に含まれたフラッシュ・メモリ320は、512Kのアドレス指定可能容量を有する。偽造者は、フラッシュ・メモリ320を除去し、かつ、元のフラッシュ・メモリの内容を1024Kシャドウ・メモリ322の初めの512K内へ複写した後、元のフラッシュ・メモリ320を1024Kシャドウ・メモリで置換することもできる。ブートアップ中、プログラム・メモリへのどのアクセスもフラッシュ・メモリ320の初めの512Kに成功裡に向けられる。次いで、偽造者は、将来の全てのプログラム・メモリ・アクセスをシャドウ・メモリ322へスイッチさせるために、ブート・プロセスが完了したことを表示する(LED信号306のような)電話内で利用可能な信号を監視することもできる。その後、セルラ電話は、シャドウ・メモリ322内にある命令に従って動作し、このメモリをタンブリング・ルーチン・コード及び相当するMIN/ESN対を含むようにプログラムすることができる。
【0022】
メモリいたずらを防止するために種々の企図がなされてきた。例えば、特許文献4は、移動体無線電話内のメモリ領域へのアクセスがROMから取り出されたCPU命令によってのみ許される安全技術を説明している。特許文献5は、或る種の事象の生起の際にメモリが書き込まれるのを防ぐシステムを説明している。詐欺による使用及び/又はいたずらを防止する他のシステムが特許文献6に記載されており、これはセルラ電話プログラミングに対する無許可アクセス及びいたずらを妨げるセルラ電話用遠隔アクセシング・システムを説明しおり、及び特許文献7はプログラム又はデータの完全性を検査することを説明しており、この検査では携帯物体の処理回路によって計算されたシグネチャが元のメッセージ・シグネチャと比較される。
【0023】
ほとんどのセルラ詐欺が或る程度のメモリ操作に基づいている理由から、連邦通信委員会(FCC)は、セルラ電話詐欺のこの態様に対する解決を現在考え中である。この解決は、第22.219章に示されたFCC規則案に組み込まれている。現在書かれているように、第22.919章は、移動体電話の動作ソフトウェアが変更可能であることを禁止し、ESNが工場セットされて、いかなる方法でも変更、転送、除去又は操作されることが不可能であるように要求し、かつ移動体送信機が、もし製造業者を含むなんらかの者がセルラ電話のESN、システム論理、又はファームウェアを除去、いたずら、又は変化させようと企図するならば、動作不可能となることを要求する。
【0024】
消費者の立場からは、現在の製造業者又はその工場が許可したサービス代理人の現在のセルラ電話をプログラムする能力は、適正に動作しないセルラ電話の置換を容易にしている。例えば、もし加入者のセルラ電話が適正に動作しないならば、その加入者は工場が許可した代理人から新装置を得かつそれを旧装置のものと同じ電子的な「個性(personality)」 を含むようにプログラムしてもらうことができる。セルラ電話の電子個性は、ESNだけでなく、利用者プロファイル及び個人及び/又は業務電話番号のような加入者によってその装置にプログラムされるかなりの量の情報もまた含む。修繕/置換プログラム及びセルラ電話にESNの変更及び他のメモリの変更を敏速かつ容易に加える技術は、欠陥端末によって自分達の加入者に不便をかけたくないセルラ・サービス提供業者達の主張で開発されてきた。
【0025】
FCC第22.219章の下で、上に述べた状況にある加入者は、もしその旧移動体装置に欠陥があるならば、新装置を得ることが依然できることになる。しかしながら、新たな固定ESNが新装置と関連することになる理由から、新ESN情報がセルラ通信事業者(cellular carrier) へ通信されねばならず、通信事業者はそれを自分達のデータ・ベースにプログラムしなければならないことになる。この結果、長い時間中その加入者はサービスを受けられないことになる。加入者はまた、そのセルラ電話をなんらかの個人又は業務電話番号で以てプログラムしなければならないことになる。第22.919章に関する遥かに顕著な問題は、セルラ・サービス提供業者が自分達の加入者のセルラ電話をプログラム又はリプログラムすることによってシステム・アップグレードを加入者に施すこれらサービス提供業者の能力に第22.919章が与える逆影響である。
【0026】
第22.919章が、セルラ産業のシステムをアップグレードする能力へ実際に与える影響は、次のように言い表される。例えば、TIA/EIA/IS−136規格に指定されたようなディジタル制御チャネルの使用は、セルラ通信事業者に簡易文字メッセージ(short messaging) サービスのような新しい拡張サービスを提供可能とする。もし通信事業者、製造業者、又は許可された代理店がセルラ電話のソフトウェア又はファームウェアに変化を加えることを許されるならば、このようなサービスを端末のソフトウェア・アップグレードを通じて加入者に敏速にかつ効率的に利用可能とすることができる。第22.919章(その現在の形で)の下では、製造業者も、製造業者の許可したサービス代理人も、セルラ通信事業者も、このようなソフトウェア変化を加えることはできないことになる。通信事業者が加入者にシステム増強を提供することができる唯一の道は、加入者に新セルラ電話を購入するように要求することである。
【0027】
加入者ばかりでなく製造業界への第22.919章の影響を改善するために、FCCは、この規則が1995年1月1日後に初期型式承認(initial type acceptance) の申請が提出されたセルラ電話に適用されることになると声明した。事実、FCCは、1995年1月1日より前に提出された型式承認に対する申請に基づいて、現在動作中の2000万のセルラ電話ばかりでなく1995年1月1日後にサービスに入った数100万のセルラ電話をこの規則から適用免除してきている。電子情報を不法目的のために操作することができる非常に多くのセルラ装置が市場に出回っている事実は、第22.919章が詐欺問題に極めて小さな影響しか与えないことを示唆している。ESNを用いて不法にいたずらすることによる詐欺に巻き込まれるこれらの対象物(entity)は、第22.919章制約を受けない数100万の端末を使用することによって引き続き詐欺に巻き込まれるおそれがある。
【0028】
上述から承知できるように、安全メモリを有するセルラ電話を用意することが極めて望まれる。セルラ電話へのいたずらに対しこれらの電話を対抗性があるように改良する解決策は、現在、ないように思われる。更に、許可されたアクセスのみを保証するような方法で電子装置メモリに更新を施す方法及び装置はないように思われる。
【先行技術文献】
【特許文献】
【0029】
【特許文献1】米国特許第5,386,486号明細書
【特許文献2】欧州特許出願公開第0 583 100号明細書
【特許文献3】米国特許第5,282,250号明細書
【特許文献4】国際公開第91/09484号パンフレット
【特許文献5】仏国特許発明第2 681 965号明細書
【特許文献6】米国特許第5,046,082号明細書
【特許文献7】米国特許第5,442,645号明細書
【発明の開示】
【発明が解決しようとする課題】
【0030】
セルラ電話メモリいたずら、及び全般的に電子装置メモリいたずらを防止する慣例の方法及び提案された解決のこれら及び他の欠点、及び限界が本発明によって克服され、本発明の模範的実施例が電子メモリ内容を無許可アクセス及び操作から保護する。
【課題を解決するための手段】
【0031】
本発明の一態様によれば、安全は、電子装置内の電子メモリ内容がいたずらされていないことを確かめるためにそれらの内容を周期的に監査することによって達成される。この監査は、このような内容の監査ハッシュ値、又は監査シグネチャを導出するために電子メモリの選択された内容にハッシュ計算を遂行することに係わる。監査ハッシュ値は、真正メモリ内容から先に導出された有効ハッシュ値と比較される。有効ハッシュ値は、好適には、暗号化された形で電子メモリ内へ記憶され、かつ比較目的にのみ復号される。監査ハッシュ値と有効ハッシュ値との間の不一致はメモリいたずらを表示することでき、したがって、その電子メモリを含む電子装置を動作不能させることができるか、又は警告表示を行うことができる。
【0032】
本発明の他の態様によれば、(セルラ電話のESNを含む) セルラ電話メモリに含まれた内容のような電子メモリ内容を、そのメモリ内容にアクセスを許される前に、認証されているデータ転送装置によって更新することができる。データ転送装置認証は、公開鍵/秘密鍵認証方式の使用に係わる。データ転送装置が電子装置とインタフェースしかつアクセスをリクエストするとき、電子装置はデータ転送装置を認証するプロセスを開始する。これは、一連のメッセージを電子装置とデータ転送装置との間で交換することに係わることができる。公開鍵は、暗号化されたメッセージを復号するために使用される電子装置内に維持されるか、又はデータ転送装置内に維持された安全秘密鍵で以て「署名(signed)」 される。特に、データ転送装置が電子装置をプログラムするようにリクエストするとき、認証プロセスが開始される。電子装置は、データ転送装置へチャレンジメッセージを送ることによって応答する。チャレンジメッセージは、データ転送装置内に維持された秘密鍵を使用してディジタル・シグネチャで署名される。署名されたチャレンジメッセージは電子装置へ送り返され、電子装置はこのメッセージを公開鍵を使用して認証する。いったん認証されると、データ転送装置は、電子装置内の特権命令及び能力にアクセスすることを許される。
【0033】
電子メモリの何らかのリプログラミングに続いて、電子装置は新(有効)ハッシュ値を導出するハッシュ計算を改変されたメモリ内容において遂行する。新ハッシュ値が、秘密鍵によるディジタル・シグネチャのためにデータ転送装置へ返される。署名された新ハッシュ値が記憶されるためにデータ転送装置へ返される。電子装置が後続メモリ監査を遂行するとき、結果のハッシュ値が新有効ハッシュ値と比較される。
【0034】
本発明の上述の及び他の目的、特徴及び利点が、添付図面と関連したこの説明を読むとき更に容易に理解される。
【図面の簡単な説明】
【0035】
【図1】セルラ通信システムの理想的レイアウトを示す線図である。
【図2】セルラ呼を設定する慣例のセルラ認証方法を示す流れ図である。
【図3】慣例のセルラ電話プロセッサ及びメモリ構成を示すブロック図である。
【図4】本発明の模範的実施例に従うセルラ電話プロセッサ及びメモリ構成を示すブロック図である。
【図5】本発明の実施例に従う模範的セルラ電話立ち上げプロセスを示す流れ図である。
【図6】本発明に従う模範的周期的メモリ妥当検証プロセスを示す流れ図である。
【図7】本発明の実施例に従う模範的データ転送装置を示すブロック図である。
【図8】本発明の実施例に従ってデータ転送装置を認証する模範的プロセスを示す流れ図である。
【図9】本発明の実施例に従って初期ESNをセルラ・メモリ内へ入力する模範的プロセスを示す流れ図である。
【図10】本発明に従って確立されたESNをリプログラムする模範的プロセスを示す流れ図である。
【図11】本発明の模範的実施例に従って保護されたメモリ構成を示すブロック図である。
【図12】本発明の実施例に従う模範的セルラ電話プログラマを示すブロック図である。
【発明を実施するための形態】
【0036】
本発明に従う装置及び方法に係わる模範的電子メモリが、セルラ電話応用についての文脈の中で下に開示される。下に説明される例は、単に、本発明を組み込む理想的応用を解説するために与えられる。
【0037】
図4で、コントローラ400がセルラ電話(例えば、図12の参照符号1204を参照)を制御する。コントローラ400は、フラッシュ・プログラム・メモリ420、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)
410、及びランダム・アクセス・メモリ(RAM)408と連携して動作する。コントローラ400は、マイクロプロセッサ402及び内部読み出し専用メモリ(IROM)403を含む。IROM403は、ブート・コード404、ハッシュ・コード405、認証コード409、及び公開暗号化鍵406を含む。コントローラ400はまた、保護スタティック・ランダム・アクセス・メモリ(PSRAM)407、割り込みコントローラ421、及び選択されたメモリ内容へのマイクロプロセッサ402による周期的ハッシュ計算を開始させるめのハードウェアに基づくタイマ401を含む。EEPROM410は、利用者プロファイル・データ412、ESN414、MIN416、及び署名された/署名されていない有効ハッシュ値対418を含む。セルラ電話の全般動作に係わる命令コードがフラッシュ・プログラム・メモリ420に含まれる。RAMメモリ408は、正規セルラ電話呼処理の部分である動作のためのスクラッチパッドとして使用される。感応性データ、ハッシュ値計算及び認証プロセスに係わる動作は、好適には、PSRAM407と連携して実施される。コントローラ400は、メモリ・バス424を経由して、フラッシュ・プログラム・メモリ420、RAM408、及びEEPROM410と通信する。
【0038】
本発明の模範的実施例による、図4に示されたシステムに対する電話電源投入及びメモリ妥当検証のプロセスを図5に示す。セルラ電話がターン・オンされた後、コントローラを初期化するために、IROM403内のブート・コード404がマイクロプロセッサ402によって実行される(ブロック500)。フラッシュ・プログラム・メモリ420の選択された内容及びEEPROM410に記憶されたESN値414に監査ハッシュ値計算を遂行するために、IROM403内に含まれたハッシュ・コード405がランされる(ブロック502)。次いで、コントローラは、EEPROM410に記憶された署名されたハッシュ値対418を認証する(ブロック504) 。これは、署名された有効ハッシュ値を公開鍵406で以て処理し、次いでその結果を署名されていないハッシュ値と比較することによって署名された有効ハッシュ値を認証することを伴うことがある。認証されたハッシュ値が、次いで、PSRAM407に記憶される(ブロック506) 。ブロック502で導出された監査ハッシュ値が、次いで、ブロック504で導出された認証されたハッシュ値と比較される(ブロック508) 。もしこれら2つのハッシュ値が一致するならば、マイクロプロセッサ・プログラム・カウンタがフラッシュ・メモリ420内の適当な位置にセットされ、かつ周期的ハッシュ計算プロセスが使用可能とされ(ブロック510) 、その後、セルラ電話は正規動作を開始する(ブロック512)。もしハッシュ値がブロック508で一致しないならば、このシステムは無限ループに置かれ(ブロック514) 、そうでなければ、使用禁止される。上述のプロセスは偽造者が改変したプログラムをフラッシュ・メモリに代入する又は改変したESNをEEPROM410へ代入するのをどちらも防止する。これは、そのようにしようとするとハッシュ値の不一致を起こし、それによって電話を動作不能にすることになるからである。
【0039】
正規動作の開始に続いてシャドウ・メモリ422を有効フラッシュ・メモリ420に代入するのを防止するために、周期的ハッシュ値処理を遂行するのが好適である。正規電話動作中、周期的ハッシュ値計算がタイマの期限切れ又はその他のシステム事象に応答して行われる。図4に示された模範的実施例では、周期的ハッシュ計算は、ハードウェア・ベース・タイマ401の期限切れに応答して開始され、このタイマはマスク不可能割り込み(non−maskable interrupt;NMI) を発生させる。NMIは、ソフトウェア・プロセスによって「マスク」出力することができないハードウェア向きプロセスである。したがって、偽造者は、NMIを無視するように設計されるシャドウ・コードを構成することができない。正規(regular)割り込みもまたハードウェア割り込みであって、これはマイクロプロセッサ資源にアクセスを取るために正規セルラ電話事象からの他の正規割り込みと競争しなけれなればならない。正規割り込みは、それがサービスをリクエストする最高優先権割り込みになるとき、肯定応答されかつ処理される。
【0040】
完全なハッシュ値計算は正規(normal)電話動作によって容認され得るよりも長くかかることがあるから、時間間隔(例えば、数秒)にわたって分散したいくつかのセグメントで断片式に処理を遂行するのが好適である。本発明の他の態様に従って、ハードウェア・ベース・タイマは、ハッシュ値計算のセグメントを遂行するために2つのステップを呼び起こす。第一に、マスク不可能割り込み(NMI)がマイクロプロセッサに周期的ハッシュ計算に含まれる予定の次のフラッシュ・メモリ又はEEPROMメモリ位置の内容を直ちに検索させ、かつそれをPSRAMに記憶させる。NMIは、短い、最高優先権の割り込みの種類のものであって、これはNMIが起こるとき活性であることがあるマイクロプフロセッサ・タスクにほとんど無視できる影響しか与えない。これは、ハッシュ計算による検出を免れるように偽造ソフトウェアが行動を起こし得ないことを保証する。第二に、低優先権標準割り込みがハードウェア・ベース・タイマ410によってまた発生され、この割り込みはNMIルーチンによって先に捕獲されたメモリ・バイトに基づいてハッシュ値計算の現在セグメントを完了するサービスをリクエストする。このタスクは、ハードウェア・タイマが期限切れしかつ電話を使用禁止する前に、正規呼処理タスクのために必要とされるに従って、所定最長時間(T)だけ延期されてよい。最長時間(T)は、どれかの正当呼処理を完了するために、ハッシュ計算セグメントを仕上げるために、及びハードウェア・タイマをそれが期限切れになる前にそのカウントダウン・サイクルの開始にリセットするために、適当であるように選択される。ハッシュ値計算のセグメントを周期的に完了するために2つの型式の割り込みを使用する戦略は、システム応答のいかなる劣化も回避する一方、安全検査がシャドウ・メモリ内に在駐する偽造ソフトウェアによって迂回され得ないことを保証する。
【0041】
本発明に従う模範的周期的ハッシュ値計算を示す流れ図を図6に示す。この図を参照すると、ハードウェア・タイマ401内のT1カウンタが期限切れすると(ブロック602)、ブロック604でNMI及び正規割り込みの両方が起こる。いったんNMIがマイクロプロセッサの制御を得ると(ブロック604)、このシステムは短い時間間隔中、正規割り込みを使用禁止するか又は待ち行列させ、この時間間隔中、ハッシュ計算に必要とされるフラッシュ・メモリ内又はEEPROMメモリ内の次のバイトがPSRAM内へ複写される(ブロック606)。
【0042】
次いで、制御は、NMIが起こったとき実行するタスクへ復帰する(ブロック608) 。正規条件の下で、短い時間間隔内に、ハードウェアに基づくタイマ401からの正規割り込みも供給され(ブロック610) 、かつハッシュ計算のセグメントがPSRAMに先に記憶されたメモリ・バイトに基づいて完了される(ブロック616) 。もしハッシュ値計算が未だ完了しないならば、ハードウェア・ベース・タイマ(T1及びT2)401がそれらの初期値にリセットされ(ブロック624) 、かつタイマT1の次の期限切れまで正規電話動作が続く(ブロック600) 。正規割り込みが供給される(ブロック610)前にもし万−タイマT2が期限切れする(ブロック612)ならば、電話は使用禁止される(ブロック614) 。(正規割り込みが正しく供給されない限り)タイマT2のデフォールト期限切れは、偽造者が周期的ハッシュ計算を使用禁止とするのを防止する。
【0043】
監査ハッシュ値計算が完了する(ブロック618)まで、ハッシュ値のこの周期的断片状計算は続く。先に認証されたハッシュ値が、次いで、PSRAMから取り出されてかつ監査ハッシュ値と比較される(ブロック620) 。もし一致すれば、ハードウェア・ベース・タイマ401がリセットされ(ブロック624)かつ電話は正規に動作し続ける(ブロック600) 。もし不一致であるならば、このシステムは、例えば、マイクロプロセッサ402を停止条件に置くことによって使用禁止される(ブロック622)。
【0044】
ハッシュ計算を好適には遂行されるセルラ電話メモリの選択された内容は、フラッシュ・メモリ420からの内容及びEEPROM414内のESNを含む。
【0045】
これは、偽造者がフラッシュ・メモリ又はEEPROMのどちらかを物理的に除去しかつそれらをセルラ通信事業者を詐欺するように設計された改変ESN及び/又はプログラム・コードを含むリプログラムされた装置で以て置換するのを防止する。選択されたメモリ内容及び使用されたハッシュ値が、そのハッシュ値計算に含まれたメモリのたとえ1ビットの改変によっても電話を動作不能にさせることが好適である。
【0046】
本発明の他の態様に従って、セルラ電話をデータ転送装置を使用して安全な方法でプログラムすることができる。本発明に従う模範的データ転送装置を図7に示す。コントローラ400の参照番号、その内容、及び関係したメモリは、図4のものと同じである。模範的データ転送装置750が安全マイクロプロセッサ752を含み、このマイクロプロセッサは秘密暗号化鍵754を含み、この鍵はコントローラ400内のIPROM403内の公開暗号化鍵406に相当する。安全マイクロプロセッサ752は、インタフェース758を経由してセルラ電話コントローラ400と通信する。インタフェース758は、RS−232リンクのような有線直列接続、無線赤外線インタフェース、又はセルラ電話の主アンテナ(図示してない)又はセルラ電話内の他のアンテナのようなRFインタフェースであってよい。
【0047】
データ転送装置750によるセルラ電話メモリへのアクセスは、厳格な認証プロセスが完了した後に限り許される。更に明細に述べるならば、コントローラ400(及び関係したメモリ構成要素)は、データ転送装置750がその真正を保証するためにチャレンジ・レスポンスプロセスを受けた後に限りデータをダウンロードする目的のためにアクセスすることができる。図8は、本発明の模範的実施例に従ってデータ転送装置750を認証する模範的プロセスを示す。第1ステップ(ブロック800)として、電話は、好適には、図5に関して先に説明した詐欺防止プロセスを使用して、動作条件にもたられる。インタフェースが確立された後、安全プロセッサ752がプログラミング・リクエスト・メッセージを、安全マイクロプロセッサ752によって発生された乱数(Rand1)と一緒に、コントローラ400へ送る(ブロック802) 。応答して、コントローラ400は、乱数チャレンジコード(Rand2)を安全マイクロプロセッサ752へ送る(ブロック804) 。次いで、安全マイクロプロセッサ752は、Rand1、Rand2及び秘密鍵754に基づいてチャレンジ応答を発生する(ブロック806)。
【0048】
次いで、チャレンジ応答がコントローラ400へ返される(ブロック808) 。チャレンジ応答は、Rand1、Rand2、及び公開鍵406を使用してコントローラ400によって処理される(ブロック810) 。処理されたチャレンジ応答は、次いで、その値をRand2と比較されることによって認証される(ブロック812) 。もしチャレンジ応答が(例えば、Rand2)が適正に復号するならば、データ転送装置の認証が妥当検証されかつ電話はプログラミング・モードへ入る(ブロック814) 。その後、データ転送装置750は、セルラ電話内の種種のメモリにアクセスする及び/又は新フラッシュ・メモリ420内容をダウンロードすることができる。
【0049】
もしチャレンジ応答が有効でないならば、故障カウントが増分される(ブロック816) 。故障カウントは、それが所定数(最大カウント)に到達したかどうかを見るために検査される(ブロック818) 。故障カウントは、データ転送装置750が雑音性媒体を通じてコントローラ400と通信中であるかもしれないことを考慮に入れる。どんな結果の送信誤りも認証故障を生じると云ってよい。それゆえ、セルラ電話をプログランミング・モードに置く2回以上の機会をデータ転送装置750に与えるのが好適である。本発明の模範的実施例では、50の最大カウントが適当であると判定された。もし最大数に達しなかったならば、認証故障が起こったことを表示するメッセージがデータ転送装置750へ送られる(ブロック822) 。このような表示を受信すると、認証プロセスがブロック802で再開始する。もし所定数の企図に達したならば、電話は動作不能条件に置かれかつ電話が許可されたサービスへ復帰しなくてはならないことを利用者に示すメッセージを表示することができる。
【0050】
データ転送装置750がなんらかのESNリプログラミング又はフラッシュ・メモリ420へダウンロードすることを完了した後、電話内のコントローラ400は新ハッシュ計算を開始し、この計算は、例えば、フラッシュ・メモリ420の改訂内容及びESN414を含む。結果のハッシュ値が、秘密鍵754を使用するディジタル・シグネチャのためにデータ転送装置750へ送られる。次いで、署名されたハッシュ値が、同じハッシュ値の署名されていないものと一緒に、EEPROM410に記憶されるめにコントローラ400へ返される。
【0051】
ESNを本発明に従ってリプログラムすることができるが、しかし安全理由から、ESNプログラミングは、好適には、認可された工場代理人ではなく、工場レベルで行われる。ESNのプログラミングは、2つの状況で起こり得る。すなわち、製造中の初期ESNプログラミング、及び現存するESNのリプログラミング。初期ESNは、図7のそれに類似のデータ転送装置を使用してプログラムすることができる。初期ESNプログラミング・プロセスを図9に関して下に説明する。
【0052】
第1ステップ(ブロック900)として、電話を動作状態にする(図5参照)。この電話とのインタフェースの確立に続いて、安全プロセッサ752がESNプログラミング・リクエスト・メッセージを、乱数(Rand1)と一緒に、コントローラ400へ送る(ブロック902) 。コントローラ400は、新たに製造された電話の場合の常として電話内のESNが全てゼロであるかどうか判定する検査を遂行する(ブロック906) 。もしESNが全てゼロでないならば、ESNプログラミング・モード・リクエストは否定される(ブロック906) 。もしESNが全てゼロであるならば、図8のステップ804から820で設定されたのと実質的に類似したチャレンジ・レスポンスプロセスが開始される(ブロック908)。
【0053】
データ転送装置750の成功認証に続いて、新ESNをEEPROM410内へダウンロードすることができる。
【0054】
データ転送装置750がESNをEEPROM410内へダウンロードするのを完了した後、コントローラ400は、新ESN414を含む新ハッシュ計算を開始する。結果のハッシュ値が、秘密鍵754を使用するディジタル・シグネチャのためにデータ転送装置750へ送られる。次いで、署名されたハッシュ値418が、EEPROM410に記憶されるために、同じハッシュ値の署名されていないものと一緒に、コントローラ400へ返される。
【0055】
現存するESNをまた、本発明を組み込むシステム内でリプログラムすることができる。ESNリプログラミングは、好適には、工場でのみ行われ、地方の許可された工場代理人によっては行われない。電話内へ先にプログラムされたESNを変える目的のためにこの電話内へロードされてある、工場でのみ利用可能な1組のマイクロプロセッサ命令を利用することによって、安全が追加される。このプロセスは図7に示したものと類似のデータ転送装置を使用して実施することができ、これを図10に関して以下に説明する。
【0056】
第1ステップ(1000)として、電話を、図8に示したプロセスに従って正規プログラミング・モードにする。工場データ転送装置750はESNリプログラミング・コード756を含み、このコードは、ESNリプログラミングを容易にするために、セルラ電話のPSRAM407内へダウンロードすることができる。システムをプログラミング・モードにしたなら、ESNリプログラミング・コード756がPSRAM407内へダウンロードされる(ブロック1002)。ESNリプログラミング・コード756を実行するに当たって、コントローラ400は、現存するESNをゼロにし(ブロック1004) 、かつESNリプログラミング・プロセスを開始する(ブロック1006)。
【0057】
データ転送装置750が新ESNをEEPROM410に入力するのを完了した後、コントローラ400は新ハッシュ計算を開始し、この計算は新ESN414を含む(ブロック1008) 。結果のハッシュ値が、秘密鍵754を使用するディジタル・シグネチャのためにデータ転送装置750へ送られる(ブロック1010) 。次いで、署名されたハッシュ値418が、EEPROM410に記憶されるために、同じハッシュ値の署名されていないものと一緒に、コントローラ400へ返される(ブロック1012)。
【0058】
本発明の模範的実施例でのハッシュ値計算及びディジタル・シグネチャは、片方向ハッシュ化関数及び秘密鍵/公開鍵認証方式を使用して実施される。片方向ハッシュ関数は、セルラ電話内のメモリ内容を表すハッシュ値を導出するために使用される。公開鍵/秘密鍵方式は、EEPROMに記憶された有効ハッシュ値の安全を確保しかつセルラ電話内のメモリを操作しようと企図するデータ転送装置又はプログラマを認証するために使用される。片方向ハッシュ化は、当業者に知られており、かつ、例えば、ムーア(Moore)の米国特許第5,343,527号に説明されている。
【0059】
片方向ハッシュ関数は、順方向に計算するのが容易であるが、逆方向に計算するのが困難な関数である。片方向ハッシュ関数H(M)は任意長入力Mに演算し、この入力は、本発明の模範的実施例では、選択された電子メモリ内容で構成される。Mに遂行されたハッシュ関数は、固定長ハッシュ値hを生じる(式1参照)。
【0060】
h=H(M) 式1
任意長入力を取りかつ固定長の出力を生じることができる多くの関数があるが、しかし片方向ハッシュ関数は次の追加特徴を有する。すなわち、Mが与えられると、hを計算するのが容易である。hが与えられても、Mを計算するのが困難である。及び、Mが与えられると、H(M)=H(M')のような他のメッセージM'を見付けるのが困難である。
【0061】
片方向ハッシュに対する基本的な攻撃は、次のようである。すなわち、メモリ内容(ハッシュ化内容)のハッシュ値が与えられると、偽造者は、H(M)=H(M') のような、メモリ内容M'の他の組を作成しようと努めるであろう。もし偽造者がこれを行うのに成功したとしたならば、この片方向ハッシュ関数の安全をひそかに崩すであろう。片方向ハッシュ関数の目的は、Mに固有のシグネチャ、つまり、指紋を用意することである。本発明では、安全片方向ハッシュ関数は、監査ハッシュ値を用意するためにセルラ電話メモリの選択された内容について遂行される。監査ハッシュ値は、メモリからの真正であると知られている選択されたメモリ内容に基づいて片方向ハッシュ関数を遂行することによって、先に発生された有効ハッシュ値と比較される。
【0062】
好適実施例では、MD5のようなメッセージ・ダイジェスト・アルゴリズムが、安全片方向ハッシュ計算に使用される。MD5アルゴリズムは、入力メッセージのNビット・ハッシュ、つまり、メッセージ・ダイジェスト(すなわち、選択されたメモリ内容)を発生する。MD5アルゴリズムは、選択された内容中の単一ビットに変化を生じると統計的にそのハッシュ値ビットの半分に変化を生じさせるという点で、非常に敏感である。MD5アルゴリズムはまた、その速度及び簡単性のために知られている。速度は、セルラ電話のマイクロプロセッサに課せられた時間要求が通常のシステム・プロセスと許容不能に干渉するほどに大きいものであってはならないという点で、重要な考慮すべき問題である。
【0063】
MD5アルゴリズムはまた、このアルゴリズムを増分式に遂行することができ、それによってハッシュ・プロセスの割り込みを許し、その結果、ハッシュ化を再び始める前に通常のマイクロプロセッサのタスクに取り組むことができるという理由で適している。更に、MD5アルゴリズムは、従来のマイクロプロセッサ・アーキテクチャに使用されるのにも充分適している。本発明の実施例に従って使用することができる他の片方向ハッシュ・アルゴリズムには、次のものがあるが、これらに限られるわけではない。すなわち、Snerfu、H−Hash、MD2、MD4、Secure Hash Algorithm(SHA) 、及びHAVALである。当業者ならば、片方向ハッシュ・プロセスを実行するようにマイクロプロセッサを容易にプログラムすることができる。
【0064】
公開鍵アルゴリズムは2つの鍵を使用し、1つは公に利用可能であり、1つは私的に(秘密を)保つものでメッセージ暗号化及び復号、メッセージ認証、及びディジタル・シグネチャのようなタスク用である。これらの鍵は、異なる目標を達成するために異なる方法で使用することができる。例えば、もし目的がメッセージを秘密に維持することであるならば、受信者だけがメッセージを復号できるように受信者が秘密鍵を安全に維持するべきである。このような場合、暗号化鍵は、公に知られかつ特定の潜在受信者と関連していることが知られ得る。送信者はこのプロセスで情報の安全を保証され得るけれども、受信者は送信者の真正を保証され得ない。もし一対の鍵のうちの秘密鍵が送信者によって暗号化用に秘密に維持されるならば、対応する公開鍵を持つどの受信者も、安全の保証はないものの、送信者の真正を保証され得る。本発明に従ってデータ転送装置を認証することに利用されるのは、後者の方式である。
【0065】
公開鍵アルゴリズムは数学的トラップドア関数に基づいて演算し、この関数は公開鍵から秘密鍵を演算することを計算上実行不可能にする。周知のRSA(Rivest、Shamir、and Adlemen (リヴェスト、シャミア、エイドルマン) )アルゴリズムの場合、2つの大きな素数の積を因数分解するのが困難であることに基づいている。鍵選択は、2つの大きな素数p及びqの選択で始まり、これらは互いに乗じられて、大きな数nを生じる。
【0066】
n=pq 式2
次いで、暗号化鍵eは、eと(p-1)(q-1) とが相対的に素数であるようにランダムに選択される。最後にユークリッドのアルゴリズムを使用して、復号鍵dが次のように計算される。
【0067】
F=(p−1)(q−1) 式3
ed=1(modF) 式4
数e及びnは公開鍵であり、数dは秘密鍵である。式5がRSA暗号化プロセスを与え、及び式6が復号化プロセスを与える。
【0068】
C=Me(modn) 式5
M=Cd(modn) 式6
因数nを求める能力のある敵は、式3を使用して係数Fを決定し、次いで、公開鍵eが与えられるならば、式4から秘密鍵dを決定することができるかもしれない。それにもかかわらず、上に注意したように、nは、普通、非常に大きいからこのような因数分解を実行不可能にする。RSAアルゴリズムについての更に詳細は、リヴェスト他の米国特許第4,405,829号に見ることができる。
【0069】
本発明の好適実施例では、フィアット・シャミア(Fiat−Shamir;FS)アルゴリズム又はその傍系が利用される(米国特許第4,748,668号が参考になり、この特許の内容は言及することによってその内容が本明細書に全面的に組み込まれている) 。FSアルゴリズムは認証及びディジタル・シグネチャ方式を実現するために適しており、この方式は典型的セルラ電話の限定された計算能力に充分適している。
【0070】
FSアルゴリズムは、このアルゴリズムがnを法とする平方余剰(νi)の逆数を見付けることが困難であることに基づいて因数を使用すると云う点で、RSAのような、先の方式と異なっている。更に明細に述べると、FS方式は、好適には、長さで512ビットから1064ビットまでの2つの大きな素数の積である数nを選択することに係わる。公開鍵(ν):ν1,ν2,…νk,及び秘密鍵(s):s1,s2,…sk,はsi=sqrt(1/-νi)mod nのように発生される。上掲の式についての文脈の中で逆数(1/-νi)mod nを見付ける困難が素数nの因数を見付ける困難と等価であることを示すことができる。安全性を犠牲することなく、このアルゴリズムは他の方式よりも遥かに敏速に実行する。事実、FS方式は、必要な認証計算を完了するために通常要するモジュラ乗算の1%から4%をFS計算が必要とするに過ぎないと云う点でRSA方式よりも性能的に優れていることが判っている。これは、同じタスクを遂行するためにRSA方式を使用するよりも2桁まで高い速度で署名されたハッシュ値を認証することに相当する。したがって、データ転送装置認証及び周期的監査ハッシュ値比較をRSA方式よりもFS方式を使用してかなり速く遂行することができる。工場レベルでセルラ電話メモリ又はその他の電子メモリを大量にプログラムするとき、FSアルゴリズムの使用は記憶する有効ハッシュ値のディジタル・シグネチャをより敏速に発生することによって生産時間を短縮する。応用することができるアルゴリズムには、次に限られるわけではないが、ELGAMAL、DSA、及びフィージ・フィアット・シャミア(Fiege−Fiat−Shamir)がある。
【0071】
本発明の他の態様によれば、セルラ電話内のコントローラ・ハードウェアは、偽造者が安全メモリの内容を判定すること、あるいは先に説明した安全方式を迂回することを防止する安全特徴を有する。図11は、コントローラ・ハードウェア、外部メモリ、及びメモリ/アドレス・バス構造の細部を示す。チップ選択論理1122及び安全論理1124を除いて、コントローラ内の構成要素の機能及び動作は、図4について説明したのと同じである。チップ選択論理1122は、マイクロプロセッサ・アドレス・バス1102に接続されたメモリ構成要素及びハードウェア装置に対してハードウェア選択信号を供給するためにバス1102上のアドレスをデコードする。例えば、IROMメモリ403に割り当てられるアドレスがアドレス・バス1102上に現れる時はいつでも、IROMチップ選択(CS)が使用可能にされる。
【0072】
安全論理1124は、IROMメモリ403以外のメモリ装置に記憶されたマイクロプロセッサ命令コードを使用してPSRAM407の内容にアクセスする又はハードウェア・ベース・タイマ401をリセットする企図を検出するように機能する。例えば、PSRAM407内のメモリ位置の目標アドレスを用いてのフラッシュ・メモリ402に置かれた読み出し又は書き込み命令は、違法動作として検出されることになる。どんな違法アクセス企図もマイクロプロセッサを停止状態に入らせ、停止状態はセルラ電話が正規動作を回復するために電話の完全な電源リセットを必要とする。
【0073】
安全論理は、次の論理式を実現することである。すなわち、
論理式1 S=↑Supvr・B
論理式2 Halt=notS・(A+C)
【0074】
ここで、
S = 安全モード、
↑Supvr= マイクロプロセッサの監視モードへの遷移、
A = PSRAMメモリに対するチップ選択信号、
B = IROMメモリに対するチップ選択信号、
C = ハードウェア・タイマに対するチップ選択信号、
Halt= マイクロプロセッサへのハードウェア制御入力であって、マイクロプロセッサを無際限ループに入れる、又は電源が除かれかつ電話に再印加されるまで待機させる。
【0075】
上の論理式1は次のことを述べる。すなわち、マイクロプロセッサが監視モードへ遷移し(↑Supvr)、それと同時にIROM403が活性である(・B)とき常に安全モード(S)がセットされる。論理式2は次のことを述ベる。すなわち、もしコントローラ400が安全モードになく(notS)かつPSRAM407選択又はハードウェア・タイマ・チップ選択のどちらかが活性である(・ (A+C))ならば、マイクロプロセッサ停止入力が活性化される。この論理は、PSRAM407への適法アクセス及びハードウェア・タイマ401へのリセット命令が、好適には、IROM403に記憶されたコードに由来するから、先に説明したハッシュ値比較及び認証プロセスによって提供される安全処置の迂回を有効に防止する。
【0076】
IROMメモリ403に置かれた全ての適法コード(ブート・コード、アッシュ・コード、公開鍵コード、及び認証コード)が、好適には、命令によって括弧に入れられ、これが安全モードをルーチンの開始にセットさせ及びそのルーチンを去るときクリアさせる。本発明の好適実施例では、ソフトウェア割り込み命令(最近のマイクロプロセッサでは普通利用可能である)がIROM403内各ルーチンの開始に置かれて、マイクロプロセッサ402を監視モードへスイッチしかつマイクロプロセッサ・ハードウェア信号SPVRを活性になるようにさせる。IROM403チップ選択信号はそのとき活性であるから、安全モードSがセットされる。そのソフトウェア・ルーチンの終わりで復帰命令を実行して、安全モードを取り消す。
【0077】
本発明の他の態様によれば、データ転送装置は工場供給安全装置を含み、この装置は汎用コンピュータとの組み合わせで使用することができる。安全装置1200は、標準コネクタ1206を経由してPC1202の入力出力ポートに取り付けられる。PC1202上の第2ポートは、RS−232、ケーブル、又は赤外線リンクのような第2標準コネクタ1208と連携して使用され、セルラ電話1204とインタフェースする。図8に示したプロセスは、セルラ電話リプログラミング・プロセスを実施するために図12に示した構成を使用して遂行することができる。標準PC及び安全装置1200を有する許可された工場サービス代理人は、電話をリプログラムする装備を有する。
【0078】
本発明の他の実施例によれば、現存するセルラ電話は、内部プリント配線板カードアッセンブリにアクセスすることによらない攻撃に対して安全であるフィールド・プログラミング能力を備えることができる。この保護レベルは、外部電話コネクタを通してアクセス可能な試験命令を使用して電話内のメモリ内容を改変する偽造攻撃の最も普通の方法に対して非常に効果的である。これは、フィールド・プログラミング命令にアクセスを容認するのに先立ち、図8で説明したデータ転送装置(DTD)認証手順を使用するように現在のセルラ電話をアップグレードすることによって行うことができる。認証ソフトウェア・コード及び公開鍵の両方を現存するフラッシュ・メモリに記憶し、このようにして現在の慣例設計nに対する何らの変化も回避する。
【0079】
本発明の模範的応用を、セルラ電話内の電子メモリの安全を保証しかつプログラムするに当たって応用される片方向ハッシュ化及び鍵暗号化システムの説明の中で述べた。しかしながら、当業者が容易に承知しかつ認めるように、メモリ内容のシグネチャを導出するためのいかなる適当な機能、計算、アルゴリズム、方法、及びシステムも本発明に従って応用することができる。また、本発明を特定の実施例を参照して説明した。しかしながら、当業者に容易に明らかなように、上に説明した好適実施例以外の特殊な形で本発明を具体化することが可能である。例えば、本発明をその精神に反することなくいかなる電子メモリ及び/又は電子メモリ・プログラミング又はアクセス装置で具体化することも可能である。
【0080】
更に、本発明をディジタル信号プロセッサ、特定用途向けプロセッサ、又はいかなる他の類似のプロセッサ、又は電子メモリ向けシステムにも応用しかつ実施することがきる。したがって、本明細書に説明した好適実施例は、単に解説のためであって、いずれにしても限定的に考えてはならない。本発明の範囲は、前述の説明によってではなく、添付の請求の範囲によって与えられ、請求の範囲に入る全ての変形実施例及び等価実施例は請求の範囲に包含されることを意図する。
【特許請求の範囲】
【請求項1】
メモリ・プログラミング能力を有する電子装置への無許可アクセスを防止するシステムであって、
データ転送装置(750)からのアクセス・リクエスト・メッセージに応答してチャレンジ・レスポンス認証プロセスを開始させるマイクロプロセッサ(402)を含み、
前記データ転送装置(750)が、秘密暗号化鍵を使用してチャレンジ応答メッセージを署名する手段と、前記電子装置へ前記署名されたチャレンジ応答メッセージを送信する手段とを含み、
前記電子装置が、前記秘密鍵に対応する公開鍵を使用して前記署名されたチャレンジ応答メッセージを認証する手段と、前記チャレンジ応答メッセージが前記認証によって有効と認定されない場合に前記データ転送装置(750)を拒否する手段とを更に含む、システム。
【請求項2】
請求項1記載のシステムであって、前記電子装置がセルラー電話である、システム。
【請求項3】
請求項2記載のシステムであって、
第1ポートと第2ポートとを有する汎用コンピュータをさらに含み、
前記データ転送装置(750)が前記第1ポートへの取り付けられ、
前記セルラー電話が前記第2ポートへの取り付けられ、
前記セルラー電話が、前記データ転送装置(750)から受信した前記セルラー電話をプログラムするリクエストに応答してチャレンジを返す手段を含み、前記チャレンジが前記データ転送装置(750)によって署名され、かつ、認証のために前記セルラ−電話に返され、
前記セルラー電話において、前記署名されたチャレンジの認証により、前記チャレンジが復元されればデータ転送装置(750)は真正であって、前記セルラ−電話はプログラミング・モードに移行する、システム。
【請求項4】
メモリ・プログラミング能力を有する電子装置への無許可アクセスを防止する方法であって、
前記電子装置(400)が、データ転送装置(750)からのアクセス・リクエスト・メッセージに応答してチャレンジメッセージを送信するステップと、
前記データ転送装置(750)が、秘密暗号化鍵を使用して前記データ転送装置(750)内で前記チャレンジメッセージを署名するステップと、
前記データ転送装置(750)が、前記電子装置(400)に前記署名されたチャレンジメッセージを送信するステップと、
前記電子装置(400)が、公開鍵を使用して前記電子装置(400)内で前記署名されたメッセージを認証するステップであって、前記公開鍵が前記秘密暗号化鍵に対応する前記認証するステップと、
前記電子装置(400)が、もし前記チャレンジメッセージが、前記認証するステップにおいて有効と認定されないならば、前記データ転送装置(750)を拒否するステップと、を含む方法。
【請求項5】
請求項4記載の方法あって、前記電子装置(400)がセルラー電話である、方法。
【請求項6】
請求項4記載の方法あって、前記署名されたチャレンジメッセーシが前記チャレンジメッセージの部分に依存するチャレンジ応答メッセージであり、
前記方法が、前記電子装置(400)が、前記署名されたチャレンジ応答メッセージが前記データ転送装置(750)が真正であることを示す場合に、認証のプログラミング・モードに移行するステップを更に含む方法。
【請求項7】
データ転送装置(750)による無許可のアクセスを防止するための、プログラミング能力を有する電子装置であって、
前記電子装置への無許可アクセスを防止するマイクロプロセッサ(402)を含み、
前記電子装置が、
前記データ転送装置(750)からの前記電子装置へアクセスするリクエストに応答して、前記データ転送装置(750)へチャレンジメッセージを発行する手段と、
前記データ転送装置(750)が、秘密暗号化鍵を使用して前記チャレンジメッセージを署名して、前記電子装置へ前記署名されたチャレンジメッセージを送信した場合に、前記電子装置において前記秘密鍵に対応する公開鍵を使用して前記署名されたチャレンジメッセージを認証する手段と、
前記チャレンジメッセージが前記認証によって有効と認定されない場合に、前記データ転送装置(750)を拒否する手段と
を更に含む、電子装置。
【請求項8】
請求項7記載の電子装置あって、前記電子装置がセルラー電話であり、前記データ転送装置(750)がプログラマである、電子装置。
【請求項9】
電子装置のメモリへの無許可のアクセスを防止するシステムであって、
マイクロプロセッサ(402)と、
命令コードを含む読み出し専用メモリ(403)と、
保護されたランダム・アクセス・メモリ(407)と
前記保護されたランダム・アクセス・メモリ(407)へアクセスする企図を検出し、前記読み出し専用メモリ(403)に記憶された前記命令コードの実行に基づくアクセスを、該アクセスが認証された場合に許可し、かつ、前記アクセスが認証されない場合に、前記マイクロプロセッサ(402)の動作を停止させて、係るアクセスを防止する安全論理(1124)と、
を含むシステム。
【請求項10】
請求項9記載のシステムであって、ハードウェアに基づくタイマ(401)を更に含み、
前記安全論理(1124)が、前記読み出し専用メモリ(403)に記憶された前記命令コードの実行に基づく前記ハードウェア・ベース・タイマ(401)への認証されたアクセスを許可し、認証されないアクセスを防止する、システム。
【請求項11】
請求項9記載のシステムにおいて、前記システムが監視モードにある場合にのみ、前記安全論理(1124)が、前記読み出し専用メモリ(403)に記憶された前記命令コードの実行に基づいて前記保護されたランダム・アクセス・メモリ(407)へアクセスする、システム。
【請求項12】
請求項9記載のシステムであって、セルラー電話におけるメモリアクセスを防止するシステム。
【請求項1】
メモリ・プログラミング能力を有する電子装置への無許可アクセスを防止するシステムであって、
データ転送装置(750)からのアクセス・リクエスト・メッセージに応答してチャレンジ・レスポンス認証プロセスを開始させるマイクロプロセッサ(402)を含み、
前記データ転送装置(750)が、秘密暗号化鍵を使用してチャレンジ応答メッセージを署名する手段と、前記電子装置へ前記署名されたチャレンジ応答メッセージを送信する手段とを含み、
前記電子装置が、前記秘密鍵に対応する公開鍵を使用して前記署名されたチャレンジ応答メッセージを認証する手段と、前記チャレンジ応答メッセージが前記認証によって有効と認定されない場合に前記データ転送装置(750)を拒否する手段とを更に含む、システム。
【請求項2】
請求項1記載のシステムであって、前記電子装置がセルラー電話である、システム。
【請求項3】
請求項2記載のシステムであって、
第1ポートと第2ポートとを有する汎用コンピュータをさらに含み、
前記データ転送装置(750)が前記第1ポートへの取り付けられ、
前記セルラー電話が前記第2ポートへの取り付けられ、
前記セルラー電話が、前記データ転送装置(750)から受信した前記セルラー電話をプログラムするリクエストに応答してチャレンジを返す手段を含み、前記チャレンジが前記データ転送装置(750)によって署名され、かつ、認証のために前記セルラ−電話に返され、
前記セルラー電話において、前記署名されたチャレンジの認証により、前記チャレンジが復元されればデータ転送装置(750)は真正であって、前記セルラ−電話はプログラミング・モードに移行する、システム。
【請求項4】
メモリ・プログラミング能力を有する電子装置への無許可アクセスを防止する方法であって、
前記電子装置(400)が、データ転送装置(750)からのアクセス・リクエスト・メッセージに応答してチャレンジメッセージを送信するステップと、
前記データ転送装置(750)が、秘密暗号化鍵を使用して前記データ転送装置(750)内で前記チャレンジメッセージを署名するステップと、
前記データ転送装置(750)が、前記電子装置(400)に前記署名されたチャレンジメッセージを送信するステップと、
前記電子装置(400)が、公開鍵を使用して前記電子装置(400)内で前記署名されたメッセージを認証するステップであって、前記公開鍵が前記秘密暗号化鍵に対応する前記認証するステップと、
前記電子装置(400)が、もし前記チャレンジメッセージが、前記認証するステップにおいて有効と認定されないならば、前記データ転送装置(750)を拒否するステップと、を含む方法。
【請求項5】
請求項4記載の方法あって、前記電子装置(400)がセルラー電話である、方法。
【請求項6】
請求項4記載の方法あって、前記署名されたチャレンジメッセーシが前記チャレンジメッセージの部分に依存するチャレンジ応答メッセージであり、
前記方法が、前記電子装置(400)が、前記署名されたチャレンジ応答メッセージが前記データ転送装置(750)が真正であることを示す場合に、認証のプログラミング・モードに移行するステップを更に含む方法。
【請求項7】
データ転送装置(750)による無許可のアクセスを防止するための、プログラミング能力を有する電子装置であって、
前記電子装置への無許可アクセスを防止するマイクロプロセッサ(402)を含み、
前記電子装置が、
前記データ転送装置(750)からの前記電子装置へアクセスするリクエストに応答して、前記データ転送装置(750)へチャレンジメッセージを発行する手段と、
前記データ転送装置(750)が、秘密暗号化鍵を使用して前記チャレンジメッセージを署名して、前記電子装置へ前記署名されたチャレンジメッセージを送信した場合に、前記電子装置において前記秘密鍵に対応する公開鍵を使用して前記署名されたチャレンジメッセージを認証する手段と、
前記チャレンジメッセージが前記認証によって有効と認定されない場合に、前記データ転送装置(750)を拒否する手段と
を更に含む、電子装置。
【請求項8】
請求項7記載の電子装置あって、前記電子装置がセルラー電話であり、前記データ転送装置(750)がプログラマである、電子装置。
【請求項9】
電子装置のメモリへの無許可のアクセスを防止するシステムであって、
マイクロプロセッサ(402)と、
命令コードを含む読み出し専用メモリ(403)と、
保護されたランダム・アクセス・メモリ(407)と
前記保護されたランダム・アクセス・メモリ(407)へアクセスする企図を検出し、前記読み出し専用メモリ(403)に記憶された前記命令コードの実行に基づくアクセスを、該アクセスが認証された場合に許可し、かつ、前記アクセスが認証されない場合に、前記マイクロプロセッサ(402)の動作を停止させて、係るアクセスを防止する安全論理(1124)と、
を含むシステム。
【請求項10】
請求項9記載のシステムであって、ハードウェアに基づくタイマ(401)を更に含み、
前記安全論理(1124)が、前記読み出し専用メモリ(403)に記憶された前記命令コードの実行に基づく前記ハードウェア・ベース・タイマ(401)への認証されたアクセスを許可し、認証されないアクセスを防止する、システム。
【請求項11】
請求項9記載のシステムにおいて、前記システムが監視モードにある場合にのみ、前記安全論理(1124)が、前記読み出し専用メモリ(403)に記憶された前記命令コードの実行に基づいて前記保護されたランダム・アクセス・メモリ(407)へアクセスする、システム。
【請求項12】
請求項9記載のシステムであって、セルラー電話におけるメモリアクセスを防止するシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−170841(P2011−170841A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2011−7295(P2011−7295)
【出願日】平成23年1月17日(2011.1.17)
【分割の表示】特願2007−107618(P2007−107618)の分割
【原出願日】平成9年9月5日(1997.9.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(502086784)エリクソン インコーポレイテッド (20)
【氏名又は名称原語表記】ERICSSON INC.
【住所又は居所原語表記】6300 Legacy Drive,Plano,Texas 75024,U.S.A.
【Fターム(参考)】
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願日】平成23年1月17日(2011.1.17)
【分割の表示】特願2007−107618(P2007−107618)の分割
【原出願日】平成9年9月5日(1997.9.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(502086784)エリクソン インコーポレイテッド (20)
【氏名又は名称原語表記】ERICSSON INC.
【住所又は居所原語表記】6300 Legacy Drive,Plano,Texas 75024,U.S.A.
【Fターム(参考)】
[ Back to top ]