セキュアテレメトリックリンク
通信プロトコルを使用して、データプライバシー、メッセージの完全性、メッセージの新しさ、及びユーザ認証を、特に、ボディエリアネットワークの埋め込み可能医療デバイスへのテレメトリックトラフィック、及び、ボディエリアネットワークの埋め込み可能医療デバイスからのテレメトリックトラフィックに提供する。暗号化、メッセージの完全性、及びメッセージの新しさは、デバイス識別番号及び疑似乱数から導出されたトークンのようなノンス及びエフェメラルセッションキーの使用を通じて提供される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ通信設定においてセキュア通信を提供することに関し、特に、埋め込み可能医療デバイスと外部デバイス管理ハードウェアとの間のテレメトリーにおけるセキュリティ、埋め込み可能医療デバイスと他の埋め込み可能医療デバイスとの間のテレメトリーにおけるセキュリティ、及び外部医療デバイスと他の外部医療デバイスとの間のテレメトリーにおけるセキュリティの提供においてセキュアな通信を提供することに関する。
【背景技術】
【0002】
埋め込み可能医療デバイス(「IMD」)に関する技術の改良、特に、電力貯蔵、保全、及び小型化の分野におけるIMDに関する技術の改良によって、現代の埋め込み可能医療デバイスには無線電気通信機能を装備することが可能になっている。このような通信の利益には、たとえばバッテリー寿命の残量、発生した治療イベント数、又は特定の患者の健康データといった情報を送信するようにIMDに要求する能力、及び、治療法、治療頻度等を変更する命令をデバイスへ送信する能力が含まれる。これらの通信のすべては、患者の健康及び治療成果を最大にするすべての関係者側の必要性によって動機付けられており、この成功の判断基準の一環として、IMDを患者から除去しなければならない状況又は患者に関する何らかの侵襲的な処置が必要となる状況を回避するという要望によっても後押しされている。何らかの外科的又は侵襲的な処置に伴う危険に付随するものは、適用可能な標準治療(standard of care)に従ってこのような処置が行われるとき、このような処置に関連付けられるコストである。
【0003】
IMDを患者内に残している間、IMDと通信する利益を利用する際に、無線通信が、理想的には適しており、現在まで、IMDがその埋め込まれた状態にある間にIMDと情報を定期的に交換する唯一の実用的な方法である。したがって、通信が、IMD若しくは管理デバイスへ又はIMD若しくは管理デバイスから送信されているか否かにかかわらず、さらに、(たとえば、更新された命令がIMDへ送信されることとは対照的に)測定値が送信されているか否かにかかわらず、IMD管理のために電気通信を使用することには、IMDへの通信及びIMDからの通信、或いは、体外(すなわち、埋め込まれていない)IMD管理デバイス間の通信(本明細書では、交互に「テレメトリー」と総称する)が含まれ得る。
【0004】
テレメトリー、特にIMDテレメトリーは、病状又は他の健康状態の治療をより便利且つ効果的にすることができるが、テレメトリーを使用することによって、第三者がこのようなデバイスの管理に干渉できないように保証することが重要である。たとえば、盗聴のみであっても、たとえば医療保険のプライバシー及び説明責任に関する法律(「HIPAA」)といった特定のデータプライバシー制度のもとで保護され得る患者データを危険にさらすおそれがある。さらに危ういことには、管理デバイスから医療デバイスへのテレメトリー通信が干渉を受ける場合、意図されていた重要な療法が、埋め込みデバイスをホスティング(hosting)している患者に対して施されないおそれがあり、その結果、おそらく、治療効果は準最適なものになる。悪意のある第三者が、通信をインターセプトして、その通信を、デバイスへの偽の命令に置き換えた場合、又は、正当な命令であってもそれを繰り返して、正しくない療法若しくは過度の療法を埋め込み物に施させた場合には、埋め込み物のホストに対して悪影響を与えるおそれがある。
【0005】
現在まで、IMDテレメトリーの用途に適したほとんどの一般的な無線通信プロトコルは、方向性を有するプロトコルではなく、「ブロードキャスト」のプロトコルである。したがって、IMDがテレメトリー信号の範囲内にある(又は、通信がIMDから開始されたときは、受信デバイスがIMDの範囲内にある)場合、その信号へのアクセスが介護人及び/又は患者によって意図されたものであろうとなかろうと、その信号の範囲内にあるいずれの受信デバイスも、その信号にアクセスできると一般に想定することができる。
【0006】
IMDを伴う多くのテレメトリートランザクションの距離範囲が短いことによって、或る程度、或る種の物理レイヤ認証は達成されている。換言すれば、認可されていない関係者が送信デバイスの非常に近くにいなければならないことから、盗聴者(又は盗聴者のツール)の物理的な存在は、このような情報を正当に送信又は受信する関係者に視覚的にはっきりと見えることになるので、IMDに関係する通信へのほとんどの不正アクセスは実現不可能である。しかしながら、テレメトリーの適用の範囲は絶えず拡大しており、或る段階で、たとえば、患者が医師待合室に腰掛けている間、対象とする受信デバイスが完全に別の部屋にあっても、IMDにインターロゲートすることが考えられ得る。IMDと外部ハードウェアとの間の通信に必要な距離が大きくなるにつれて、侵入者又は盗聴者が、通信信号の受信、通信信号への干渉、さらには通信信号の操作を行う機会も多くなる。
【0007】
また、メッセージが「新鮮」であることも重要である。すなわち、メッセージが、近時において一度しか送信されていないことも重要である。たとえば、療法が適用されているにもかかわらず、患者の生理的状態の変化がないことを偽って示す診断センサからのデータの複製通信の結果、療法が過度になるか、又は付帯リスクを有する他の不要な医療介入が行われるおそれがある。メッセージプライバシー(すなわち、暗号化)に加えて、真のデータセキュリティには、メッセージの完全性及びメッセージの新しさ(message freshness)の双方も必要とされる。3つのすべてがなければ、悪意のある第三者によって悪用されるおそれのある隙間が存在するか、又はさらには、悪意がなくてもエラーを許容するおそれのある隙間が存在する。もちろん、このような悪用が起こり得るか否かは、特に設計の立場から関連はない。テレメトリーのセキュリティは、検討されているインターセプトのシナリオから生じる問題の実際の可能性に関係なく、あらゆる盗聴又はインターセプトを防止するように保証されるべきである。
【発明の概要】
【発明が解決しようとする課題】
【0008】
テレメトリーセキュリティに対するこれまでの手法は、たとえば、サーバベースの認証及びストレージを伴っていた。このように、永久的なキー情報が、機器上に記憶されることはなかった。しかしながら、この手法では、24時間利用可能なサーバへのセキュアな通信チャネルが必要とされる。また、この手法では、臨床医は、ボディエリアネットワーク(BAN)デバイス又はノードを管理するよりも前に、サーバシステムに対して認証を受ける必要がある。
【0009】
代替的に、バイオメトリックトークン(キーフォブ(key fob)等)が、IMDサポート機器をIMDに対して認証するのに使用されてきた。しかしながら、この手法によって認証キー(バイオメトリックキー及びIMDキーの双方)が喪失されやすく、トークンも、IMD管理を行うために提示する患者によって忘れられる可能性があり、これによって、不都合なことに、ケアの延期が必要となりがちである。パスワードによって増強されたトークンも、同様に、喪失されやすく、ノンコンプライアンス(トークンを予約に持ってこない、又は、認証情報を忘れる)を受けやすく、同様に、喪失又は盗難にあった場合に、危険にさらされやすかった。
【課題を解決するための手段】
【0010】
本発明は、特にIMD及び他の医療デバイスの管理に良く適したテレメトリー通信のセキュアシステムを提供する。IMDへの通信及びIMDからの通信、並びに、外部デバイスへの通信及び外部デバイスからの通信を保護するシステムが提供される。このシステムは、通信ノードへの通信及び通信ノードからの通信、特にIMDへの通信及びIMDからの通信が正当なものであることを保証するために、1つ又は複数の認証方法と共に、暗号化のシステムを実施する。特定の実施の形態では、たとえば、データ暗号化及びキー管理の厳格な手法によって、正当性が保証され、好ましくは、認証は、認証カード又はトークンを保持することに加えて、少なくとも1つのモダリティを使用してセキュアにされる。
【0011】
特定の実施の形態では、本発明は、近接性に依存した「バックドア」を提供する。当該バックドアは、特定の患者の医療デバイスのネットワーク内のノード間又はモジュール間の通信を可能にするのに通常必要とされる認証情報なしで任意のIMDへのアクセス及びその管理を可能にすることができる。医療デバイスのネットワークは、「ボディエリアネットワーク」又は「BAN」と呼ばれる。また、本発明は、いくつかの実施の形態では、認証が、認証情報を実際に送信する(もちろん、認証情報が危険にさらされやすくなるおそれがある)ことなく実行されるという点で、厳密認証、すなわち、同一性のゼロ知識証明も提供する。
【0012】
患者及び認可された介護人に反する興味又は動機を有する、認可されていない第三者は、盗聴者の素性、ロケーション、又は動機にかかわらず、本明細書では、「攻撃者」と総称される。攻撃者は、通信を実際に混乱させることなく単に盗聴することを望む場合もあるし、場合によっては患者に関する保護されている健康情報を取得することを望む場合もあるし、BANノード製造者に独自のBANノードの振る舞いの態様を知りたい場合もある。これらの目的のために、本発明の実施の形態は、暗号の使用を通じてメッセージプライバシー(すなわち、暗号化)を提供する。
【0013】
十分な電気通信能力及び計算能力を有する攻撃者は、BANのノード間のすべての通信をインターセプトして制御し、BANのノード間のメッセージの削除、変更、複製、又は別の変更のいずれかを行うことができる場合があることも考えられ得る。本発明の実施の形態は、たとえばIMDへの命令及びIMDによって診断ノードに提供される情報が正当なものであることを保証するメッセージ認証プロトコルの使用を通じて、メッセージの完全性(すなわち、メッセージ認証)を提供する。同様に、新しく生成されたセッションキー及びトークンベースのシステムを通じて、又は、本発明の代替的な実施の形態ではタイムスタンプの使用を通じて、メッセージの新しさを保証することもできる。本発明は、特定の実施の形態では、メッセージの完全性(送信されたメッセージが、それらのメッセージが対象とする受信者によって、変更されていない状態で受信される)及びメッセージの新しさ(メッセージが、タイムリーに受信され、且つ、攻撃者によって送信された、前に送信されたメッセージのコピーではない)という補助的な要請に基づいて、メッセージが、秘密キーを有しない者からセキュアに維持されることを可能にする。
【0014】
本発明の実施の形態によって与えられる保護にもかかわらず、通信の保護は、好ましくは、最適な患者ケアという全体的な原則によって動機づけられ、且つ、必要な場合には、その全体的な原則を補助する。したがって、本発明の特定の実施の形態は、特定の緊急事態又は他の強制的な状況において、健康への不利な影響を防ぐために、緊急事態介護人がデバイスに対して自身を認証する時間又は証明書を有するか否かにかかわらず、この実施態様の特定のセキュリティの機能を迂回するデバイスに対して、「バックドア」によるデバイスとの通信を許可することができる。
【0015】
本発明の実施の形態によるセキュリティメカニズム及びプロトコルは、セキュリティサービスがセットアップされて、通信デバイスのうちの少なくとも1つに関して(迂回されるのではなく)有効にされていることを必要とし、ブロック暗号の一実施態様の使用をさらに必要とする場合がある。他の実施の形態では、本発明を実施するBANのすべての通信デバイスは、同一のボディエリアネットワークキーKBANを共有し、新しい各テレメトリーセッションの開始時に新しいセッションキーKsesを協同して生成する。最初に、このようなデバイス識別情報交換が、通信セッションをオープンするために必要とされるセキュアにされていない交換を介して行われる。着信するパケット及び発信するパケットの双方のパケット長は、好ましくは、セッションの継続時間の間固定され、指定された長さに合致しないパケットは、好ましくは、ネットワークの物理レイヤにおいて拒絶される。
【図面の簡単な説明】
【0016】
【図1】本発明の実施形態によるボディエリアネットワークの一般的なネットワークトポロジを示す図である。
【図2】本発明の実施形態によるネットワークノード間のネットワークキーのセキュアな送信のプロトコルを示す図である。
【図3】ネットワークキー送信プロトコルの一代替的な実施形態を示す図である。
【図4】本発明の一実施形態による2つの体外デバイスを有するボディエリアネットワークのトポグラフィを示す図である。
【図5】本発明によるネットワークキー伝播プロトコルの一代替的な実施形態を示す図である。
【図6】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図7】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図8】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図9】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図10】本発明の実施形態によるセッションキーの生成のデータフロー図である。
【図11】本発明の実施形態によるメッセージのCTRモードの暗号化及び解読のデータフローを示す図である。
【図12】本発明の実施形態によるノンスレジスタのデータ構造を示す図である。
【図13】本発明の一実施形態によるテレメトリーパケットのデータ構造を示す図である。
【図14】本発明の一実施形態によるメッセージの暗号化/解読及び認証のデータフローを示す図である。
【図15】本発明の一実施形態による概略的なハードウェアアーキテクチャを示す図である。
【図16】本発明の一実施形態の緊急事態アクセスプロトコルのネットワークトポグラフィを示す図である。
【図17】本発明の一実施形態による緊急事態アクセスプロトコルの疑似プロトコル及びデータフローを示す図である。
【図18】セキュアにされたウェイクアップパケットのグラフィカル表現を示す図である。
【図19】セキュアにされたウェイクアップパケットのMACの生成を示すブロック図である。
【図20】セキュアにされたウェイクアップパケットを送受信するプロセスのフローチャートである。
【図21】セキュアにされたウェイクアップパケットを送受信するプロセスのフローチャートである。
【発明を実施するための形態】
【0017】
本発明による無線ネットワークの一セキュリティ実施様態の実施形態は、さまざまな層のセキュリティ又はさまざまな度合いの多要素認証を実施することができる。本明細書で検討されるこれらのセキュリティの層は、たとえば、通常、入出力ファシリティ(たとえば、ポート)、1つ又は複数の中央処理装置(チップ等)、及び複数のメモリロケーションを有するスマートカード、すなわち小さなプラスチックカード又はフォブによって実施することができる。スマートカード技術は、「ユーザが有する物(something the user has)」レベルのセキュリティとして、単独で機能することによるか、又は、たとえば「ユーザが知っている物(something the user knows)」(すなわち、パスワード)若しくは「ユーザである物(something the user is)」(すなわち、ユーザに関連付けられたバイオメトリックパラメータ)と結び付けられた多要素認証のコンポーネントとして機能することによるかのいずれかで、セキュリティを実施するのに使用することができる。本発明に従って実施されるようなカードは、好ましくは、時に「プロセッサカード」又は「マイクロプロセッサ多機能カード」と呼ばれるタイプのメモリ、少なくとも1つのプロセッサ、及びデータ処理機能を有する。これらのカードは、好ましくは、国際標準化機構の、電気接点を有する集積回路カード(Integrated Circuit Cards with Electrical Contact)の標準規格ISO7816で指定されたタイプのものとすることができ、この仮定は、本明細書の代表的な実施形態に関してなされる。特定の実施形態では、特定の患者認証は、スマートカードデバイスを介して管理されるが、しかしながら、IMDのデバイスキーは、好ましくは、暗号化されていない形ではスマートカード上に記憶されない。
【0018】
本発明のいくつかの実施形態は、本明細書で、テレメトリー通信のタイムライン、すなわち、テレメトリー通信の「新しさ」として知られているものの確証を提供する。たとえば、一度正当に規制することができる治療法(therapeutic modality)は、悪意のある第三者によって繰り返し可能なものであってはならない。第三者が、単なる暗号化のみに基づいた通信を盗聴できる場合、その第三者は、その命令を反復して繰り返すことができる。悪意のある第三者が、たとえIMDへのメッセージの内容を知らない場合であっても、第三者は、このメッセージを繰り返すことが患者のためにならないことを合理的に予測することができる。第三者は、十分な試行錯誤によって、メッセージの内容を完全に無視してでも危険な影響を実施するおそれがある。したがって、本発明の実施形態は、メッセージの新しさを保証してこのような攻撃を防止するシステムも達成する。本明細書では、「暗号化された」及び「セキュアにされた」という用語は、一般に同義ではないことが理解されよう。暗号化されたメッセージは、プライバシー(すなわち、機密性)のみが保証されているメッセージである。セキュアにされたメッセージは、プライバシー、完全性、新しさ、及び同一性が保証されているメッセージである。この後者の概念は、ユーザ認証(メッセージが、それを明らかに送信した人(又はノード)から実際に来たものである)及びメッセージ認証(メッセージが、送信者によって送信された形態を有し、且つ、正当な送信者によって意図された時刻にのみに送信されたものであり、それ以外の時に送信されていないもの)の双方の認証の概念を組み込んでいる。
【0019】
本明細書では、通信を送信又は受信するノード(すなわち、医療デバイスの文脈では、埋め込まれたデバイス若しくは外部のデバイス、センサ、プログラマ、モニタ、又はBAN内の他の器具)を暗号学の慣習に従って「アリス(Alice)」又は「ボブ(Bob)」と呼ぶ場合がある。デバイスのユーザ又は患者について明示的に述べていない限り(たとえば、アリスの患者又は「ホスト」、すなわち、アリスデバイスを埋め込まれている患者)、アリス又はボブはデバイス又はノードを指す。また、特定の実施形態では、スマートカードが、信頼される第三者認証局に通常関連付けられているいくつかの機能を実行でき、カードの保持者による(たとえば、保持者のパスワード及びバイオメトリック認証による)認証時に、カードが、システム内の信頼される関係者とみなされ、カードの保持者のIMDに対応するIMDキーを保持するという点で、スマートカード(スマートカードリーダ/ライタに挿入されている時のスマートカードを含む)という用語を使用する。システムの認可されたアドミニストレータ又はユーザがメッセージの送信又は受信を可能にすることを意図していない第三者(又は、このような人物の制御下にあるデバイス)は、一般に、「攻撃者」と呼ばれる。また、暗号学と一致して、ビット単位の排他的論理和演算(すなわち、ビット単位のモジュロ2加算)については、シンボル
【0020】
【数1】
又は「XOR」を使用し、連結については、シンボル|又は‖を使用する。本明細書ではしばしば、ソフトウェア又はハードウェアが、感覚のあるエージェントであることを示唆しているように思われるよう、特定のソフトウェアプロセス又はハードウェアコンポーネントは、特定の情報を「知っている」、「要求する」、「予測する」、若しくは「送信する」、又は、特定の機能若しくはアクティビティを実行する(たとえば「計算する」)として説明される。このような擬人化した言及は、問題となっているハードウェア又はソフトウェアが意識、動機、又は知性(人工的又はそれ以外)を有することを示すか又は暗に意味することを意図するものではなく、これらの表現は、一般に、人間であろうが、又は他のハードウェア若しくはソフトウェアのプロセス若しくはコンポーネントであろうが、それによってプログラミング又は命令された通りにソフトウェア又はハードウェアが自動的に挙動することを示すのに使用されることが、当業者には理解されよう。たとえば、特定の値を「予測する」と言われるソフトウェアプロセスは、規則に従わない引数がエラーハンドリングコードによって処理される、特定の変数タイプ又は値であるように指定された引数を有するソフトウェア関数を指す場合がある。
【0021】
図1は、本発明の実施形態によるボディエリアネットワークのトポグラフィを示している。プログラマ「ボブ」110及びIMD「アリス」115から成る一例示のボディエリアネットワーク(BAN)100が示されている。これらの2つのノード、アリス及びボブは、非セキュアチャネル120を介して非セキュアテレメトリーセッション117をすでに確立している。プログラマ110は、認証デバイス130との(たとえば、有線接続125を介した)セキュア通信用に接続されている。認証デバイス130は、ここでは、バイオメトリック入力窓135を有するスマートカードリーダ/ライタである。これらの実施形態によれば、本明細書でより十分に説明するように、各場合において、患者によって携行されてIMD管理で使用されるスマートカードに基づき、セキュリティの増大する順に、以下の情報を認証データとして使用することができる。
【0022】
本発明の典型的な実施形態では、最低でも、デバイスの患者(又は、適用可能な場合には、他の認可されたアドミニストレータ)が、KdevA(デバイス115用のキー)、IDA(デバイス115用の識別番号)として注記される情報を含むスマートカード140(患者が有する物)を提示する。さらなるセキュリティは、患者のスマートカード140にパスワードKPW150を加えたもの、すなわち、本明細書でE(KdevA;KPW)、IDAとして注記されるものを使用することによって提供することができる。パスワードKPW150(患者が有する物であり、且つ、患者が知っている物)も、スマートカード素子145上に記憶されている。E(KdevA;KPW)は、すなわち、デバイスキーKdevAがパスワードKPW(すなわち「パスワードキー」)によって暗号化されたものである。ここで、E(x;y)は、キー「y」を使用して「x」をセキュアにするのに使用される暗号化の関数を示し、別の言い方をすれば、特定の暗号文=E(平文;キー)を示す。特定の実施形態では、ユーザの認証は、患者のスマートカード140又は非電子的な情報カードに、パスワードKPW150を加え、バイオメトリックスキャンKbio、すなわち「バイオメトリックキー」155(患者が有する物であり、知っている物であり、且つ、患者である物)を加えたもの、すなわち、本明細書でE(E(KdevA;KPW);KbiО)、IDAとして注記されるもの、によって実行される。
【0023】
図1に示すように、アリスの患者(図示せず)には、スマートカードデバイス140が提供されている。スマートカードデバイス140は、メモリ、ファームウェア、ローカルストレージ、及び/又は組み合わせ素子145を含む。アリスの患者は、スマートカード140をパスワード150及び患者のバイオメトリック特徴で初期化している。患者のバイオメトリック特徴は、ここでは、指紋155である。
【0024】
本発明の特定の実施形態では、スマートカード140、又は、スマートカードリーダ130若しくはオンボードプログラマノード110に取って代わる或るインターフェースとインターフェースするUSB/Firewire(登録商標)キーフォブを利用して、本明細書のセキュリティ方式の態様を実施することができる。特定の実施形態では、このようなスマートカード又はキーフォブは、すでに実施され且つスマートカード140又はキーフォブに実装された、特定の暗号及びメッセージ認証コード(MAC)、たとえばチップハードウェアに実施された暗号及びメッセージ認証コード(MAC)、又は代替的に、ROM又はフラッシュメモリに記憶されている暗号及びメッセージ認証コード(MAC)を有し、これらは、スマートカード又はキーフォブ上の素子145として抽象的に示されている。
【0025】
IMDを含むBANをセットアップ又は初期化して、上述したプロトコルに従ってBANキーを伝播するときに、まず、患者は、自身のIMDの認証マテリアル(たとえば、スマートカード140)をブリッジデバイス110に提供する。このスマートカード140は、たとえば、IMD115と共に発行する(且つ、術後に患者に与える)こともできるし、前もって存在する患者のスマートカードデバイス140上に必要な情報を入力することもできる。特定の実施形態では、患者は、自身のスマートカード140を(ここでは、インターフェースデバイス130を介して)ブリッジデバイス110内に挿入した後、自身のパーソナルパスワードKpw150をブリッジデバイス110内に入力するように促され(プログラマ110に実装されて存在するGUIを介して、又は、適切な別個のインターフェースを介して、理想的には、患者自身のパーソナルメモリから入力される)、さらに、指紋155又は網膜スキャン等、患者の一意のバイオメトリック識別子から導出された値であるバイオメトリックキーKbioを提示する。ブリッジデバイス110は、好ましくは、Kpw150及び/又はKbio155をしばらくの間記憶することなく、スマートカードリーダ130を介してパーソナルパスワードKpw150及びバイオメトリックキーKbio155をスマートカード140に引き渡す。スマートカード140は、Kpw150及びKbio155を使用して、KdevA170を解読することができる(すなわち、スマートカードは、Kpw150及びKbio155を使用して、KdevA170を求めることができる)。特定の実施形態では、認証が完了するまで、暗号化されていないKdevA170が、当初、スマートカード140のRAM若しくは他のメモリ又はストレージ素子145に存在する場合がある。認証が行われると、好ましくは、KdevA170は、その後、削除され、KdevA170の暗号化された形態に置き換えられる。代替的に、スマートカード140の代わりに非電子的な認証マテリアルを、IMDのKdevAがテキスト又はバーコードの形態で印刷された非電子的カードの形態でブリッジデバイス110に提供することができる。IMDのKdevAは、BANによって、図3のプロトコルに従い伝播される。
【0026】
本発明のこの実施形態のキー配信プロトコルは、IMDからブリッジデバイスへの現在のBANキーのセキュア無線配信、及びブリッジデバイスからIMDへの現在のBANキーのセキュア無線配信を、もっぱら患者のBAN内において提供する。このプロトコルは、さらに、BANキーそのものだけでなく、送信者及び受信者の認証及び検証も実行する。その上、本発明は、スマートカード140が通信に利用可能であることが必要条件であるために、攻撃者が、攻撃者のBAN内へデバイスを組み入れたり、BANキーの配信中にデバイスになりすましたり、配信プロセスそのものを盗聴したり、以前の通信の複製に基づいて反復攻撃を企てたりすることも防止する。好ましくは、KdevAキーは、ブリッジデバイス110上ではなく、スマートカード140上にセキュアに留まる。したがって、たとえブリッジデバイス110が攻撃者に盗まれた場合であっても、攻撃者は、デバイスキーKdevAを知ることは決してない。本明細書で一般にKdevX(KdevA170等)として示されるデバイスキーは、好ましくは、アリス115等の埋め込みデバイスに関しては工場でプログラミングされ、ブリッジデバイス110、スマートローカルデバイス、及びダムローカル(dumb-local)デバイスに関しても同様に工場でプログラミングすることができる。これらの後者のデバイスは、外部でラベル付けされたKdevを有することもできるし、必要に応じて生成されて割り当てられた乱数Kdevを有することもできる。ダムローカルデバイスの限界のために(特に、ダムローカルデバイスがヒューマンインターフェースを有しないという点で)、このようなデバイスは、好ましくは、工場で割り当てられて外部でラベル付けされたKdevXを有する。代替的に、本明細書で説明する、工場で割り当てられる実施態様又は工場でプログラミングされる実施態様のいずれも、通常の「ファームウェアアップグレード」手順を介したフラッシュメモリの更新に付随して供給されるKdevX又は類似の情報を代わりに有することができる。本明細書では、異なるキー値及び他の変数を指定するのに、次の省略形が使用される。KdevXは、Xの名称を有する指定されたノードの秘密デバイスキーである。KBANは、現在のBANセッションキーである。IDXは、デバイスIDである。ここで、Xは、指定されたノードの名称である。
【0027】
本発明の代表的な実施形態におけるさまざまなプライバシー及びメッセージの完全性の機能を実施するのに適したセキュリティ方式は、次世代暗号化標準(「AES」)である。AESは、Rinjdaelと類似しているが、固定のブロックサイズ及びキーサイズを有し、米国連邦政府及び通信業界によって一般に使用される標準である。AESは、本明細書でさらに説明するように、構成CTR+CBC−MACで適切に使用することができる。
【0028】
BANキーは、特定のキーの実施形態では、体内デバイス、特にIMD115等の埋め込み物から、BAN100の他の体外「ブリッジ」デバイス110へセキュアに通信される。また、BANキーは、BAN100のブリッジデバイス110から埋め込み物115へもセキュアに通信されるべきである。本発明の実施形態によれば、2つの体外デバイス110間の通信又は体内デバイス115と体外デバイス110との間の通信を提供する基礎となる通信セッション120が存在する。この通信セッション120は、セキュアにされていない場合がある。セキュア通信(このようなセキュリティは、暗号化だけでなく完全性及び新しさの確証も含む)は、埋め込まれたデバイス115によって保持された認証マテリアルによって提供される。埋め込みデバイス115は、BANキーをブリッジデバイス110へ配信する。ブリッジデバイス110は、適切な認証マテリアル160と、乱数生成ファシリティ165等のプロセスとを所有する。埋め込まれたデバイス115は、適切な認証マテリアル160とプロセスとを所有するブリッジデバイス110からBANキーを受信することもできる。本発明の実施形態によれば、以下のプロトコルによって、本発明のセキュリティプロトコルを使用できるブリッジデバイスへのBANキーのセキュアな無線配信が可能になる。
【0029】
図2は、本発明の特定の実施形態によるネットワークノード間のネットワークキーのセキュアな送信のプロトコルを示している。図2に示すように、埋め込みアリス115は、ボブ110がBANキーを確立又は取得することを望むことをアリス115に示す「BANキーを配信する(deliver BAN-key)」セッション要求210をブリッジデバイスのボブ110から受信する。アリス115及びボブ110は、最初に、テレメトリック通信セッション215を開始しなければならない。このテレメトリック通信セッションでは、アリス115は、新しく生成された乱数QAをボブ110に提供する。次に、アリス115の人間のアドミニストレータ(たとえば、アリスデバイス115が埋め込まれた患者)は、スマートカードリーダを通じて電子認証マテリアル(EAM)、たとえばスマートカード140をボブ110に提示しなければならない。この認証マテリアルは、通常、スマートカード140又はUSB/IEEE1394(「Firewire(登録商標)」)フォブの形態を取り、図1のアリスのデバイスキー170(オプションとして暗号化されている)KdevA、175、アリスのID番号IDA、及び使用されるブロック暗号(たとえば、128ビットAES)を実施できるオンボードマイクロプロセッサを含むものである。EAM140上に存在するKdevA170のコピーも暗号化される場合、アリスの人間のオペレータは、PIN又はパスワード入力及びオプションのバイオメトリックデータ155等、デバイスキー170を解読するのに必要な秘密情報も、たとえばキーパッド入力(図示せず)を介してボブ110に手動で与えるべきである。これらのステップが完了すると、ボブ110は、メッセージ220を準備してEAM140へ配信する。メッセージ220は、次のもの、すなわち、電子認証マテリアル140上に存在するKdevA170のコピーを解読するのに必要なQA、IDA、IDB、及び(必要に応じて)秘密情報225(PW150及びバイオメトリックデータ155)を含む。この即座のトランザクションに続いて、ボブ110は、好ましくは、PW150のあらゆるローカルな記録及びあらゆるバイオメトリック情報155を削除する。EAM140は、以下で詳細に説明するように、その組み込まれたマイクロプロセッサ180を使用して、2つの128ビット乱数Q1及びQ2を生成する。次に、EAM140は、キー入力としてKdevA170を使用し、ノンスとしてQAを使用して、アリス115への、ブロック暗号でセキュアにされたメッセージ230を準備する。このセキュアにされたメッセージ230は、暗号化されたペイロードとしてIDA、IDB、Q1、及びQ2を含む。次に、EAM140は、このセキュアにされたメッセージ230を、Q1及びQ2の「セキュアにされていない」(すなわち、平文)コピーと共にボブ110へ渡す。次に、ボブ110は、EAM140からアリス115への配達人として機能して、EAM140のセキュアにされたメッセージ230をメッセージ235としてアリスへ送信し、Q1及びQ2のセキュアにされていないコピーを一時的に記憶する。アリス115が、ボブのテレメトリー送信235を経由してEAMのメッセージ230を受信すると、アリス115は、メッセージ235を即座に解読し、自身のID175が正確であることを検証し、次いで、ボブのID(図1の182)を検証する。アリスが受信したメッセージ235が、その完全性チェックに合格した場合、メッセージ235がKdevA170及びQAを使用してセキュアにされたものであるという理由で、メッセージ235は真正なもの(ボブ110を介してアリスの患者のEAM140からのもの)及び新鮮なものの双方であるということが、アリス115に保証される。
【0030】
アリス115が、BANキーをボブ110へ配信する場合、アリス115は、Q1及び
【0031】
【数2】
から成るセキュアにされていないメッセージ240を準備して、ボブ110へ送信することができる。ここで、KBANは、現在のBAN100のキーである。ボブ110は、アリスのメッセージ240を受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証し、自身のローカルなQ2を、受信された
【0032】
【数3】
とXORし、その結果はKBANになる。
【0033】
他方、アリス115が、ボブ110からBANキーを受信する場合、アリス115は、Q1から成る、セキュアにされていないメッセージ245を準備してボブ110へ送信することができる。ボブ110は、アリスのメッセージ245を受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証する。次に、ボブ110は、
【0034】
【数4】
を含む、セキュアにされていないメッセージ250を準備してアリス115へ送信することができる。アリス115は、ボブのメッセージ250を受信すると、自身のローカルなQ2を、受信されたメッセージ250の
【0035】
【数5】
とXORし、その結果はKBANになる。
【0036】
図3は、図1及び図2のEAM140以外の認証アイテムを使用する、ボディエリアネットワークキー送信プロトコルの代替的な一実施形態を示している。この実施形態によれば、あまり高度でない非電子的認証マテリアルを使用するあまりセキュアでないプロトコルが次のように進行し得る。すなわち、プロトコル300のこの実施形態によれば、ボブ110は、すでに述べたように「BANキーを配信する」セッション要求210を開始することができ、埋め込み物115であるアリスは、「BANキーを配信する」セッション要求210を、ボブ110であるブリッジデバイスから受信する。アリス115及びボブ110は、最初に、テレメトリック通信セッション215を開始しなければならない。このテレメトリック通信セッションでは、アリス115は、新しく生成された乱数QAをボブ110に提供する。次に、アリス115の人間のアドミニストレータ(たとえば、アリスデバイスが埋め込まれた患者)は、310において、KdevA170及びIDA175から成る非電子的な認証マテリアルをボブ110に提示することができる。この認証マテリアルは、たとえば、英数字文字で又はバーコードとして認証カード上に印刷して、光学式スキャナリーダデバイスで読み出すことができる。この光学式スキャナリーダデバイスは、たとえば、ボブの内部のもの又はボブに不可欠なものとすることができるか、又は代替的に、ボブと信号通信する(たとえば、ボブとネットワーク接続された)別個のデバイスとすることができる。代替的に、認証マテリアルは、人間のアドミニストレータが、GUIを介して又はキーパッドに認証マテリアルをタイプ入力することによって、ブリッジデバイスのボブ110内へ手動で直接入力することもできる。次に、ボブ110は、(本明細書で説明したように、又は他の手段によって)自身のブロック暗号を使用して、上述したような2つの128ビット乱数Q1及びQ2を生成する。次に、ボブ110は、キー入力としてKdevA170を使用し、ノンスとしてQAを使用して、アリス115への、ブロック暗号でセキュアにされたメッセージ235を準備する。このセキュアにされたメッセージ235は、IDA175、IDB182、Q1、及びQ2を含む。次に、ボブ110は、このセキュアにされたメッセージ235をアリス115へ送信し、Q1及びQ2のセキュアにされていないコピーを一時的に記憶する。アリス115が、ボブのメッセージ235を受信すると、アリス115は、そのメッセージを即座に解読し、自身のID175が正確であることを検証し、次いで、ボブのID182を検証する。アリスが受信したメッセージ235が、その完全性チェックに合格した場合、メッセージ235がKdevA175及びQAを使用してセキュアにされたものであるという理由で、メッセージ235は真正なもの(すなわち、ボブ110からのもの)及び新鮮なものの双方であるということが、アリス115に保証される。他のBANキーの生成及び送信は、上述したように行われる。
【0037】
アリス115が、BANキーをボブ110へ配信する場合、アリス115は、Q1及び
【0038】
【数6】
から成るセキュアにされていないメッセージ240を準備して、ボブ110へ送信することができる。ここで、KBANは、現在のBAN100のキーである。ボブ110は、アリスのメッセージ240を受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証し、自身のローカルなQ2を、受信された
【0039】
【数7】
とXORし、その結果はKBANになる。他方、アリス115が、ボブ110からBANキーを受信することを望む場合、アリス115は、Q1から成る、セキュアにされていないメッセージを準備してボブ110へ送信することができる。ボブ110は、アリスのメッセージを受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証する。次に、ボブ110は、
【0040】
【数8】
を含む、セキュアにされていないメッセージを準備してアリスへ送信する。アリスは、ボブのメッセージを受信すると、自身のローカルなQ2を、受信された
【0041】
【数9】
とXORし、その結果はKBANになる。
【0042】
本発明の実施形態は、送受信機モジュールが属するデバイスのクラスに依存して、製造者が、そのモジュールを少なくとも4つの永久的な状態のうちの1つにすることができるシステムを提供する。これらのクラスは、一般に、(1)埋め込みデバイス(IMD)、(2)ブリッジデバイス、(3)スマートローカルデバイス、及び(4)ダムローカルデバイスとしてカテゴリー化することができる。スマートローカルデバイスは、ユーザ入力用のファシリティ(たとえば、外部の薬ポンプ、外部の血糖計コントローラ、及び埋め込みコントローラ)を含む広範囲のグラフィカルユーザインターフェース(GUI)を有するデバイスである。ブリッジデバイスは、広範囲のGUI及びユーザ入力を有し、さらに、埋め込みデバイス(たとえば、医師プログラマ、並びに、より機能豊富で強力な埋め込みコントローラ及びホームモニタ)に対して自身を認証することができる。ダムローカルデバイスは、GUIもユーザ入力も有しないデバイスである。ただし、或る限られたユーザディスプレイが存在する場合がある。ダムローカルデバイスには、キーフォブ、外部の血糖計、コムリンク、並びに特定の限られた能力の患者コントローラ及びホームモニタが含まれ得る。
【0043】
BANのさまざまなノードを構成するデバイスのタイプにかかわらず、これらのデバイスが、必要な最小の計算資源とセキュアに通信するために、すべてのデバイスは、好ましくは、BANキーKBANを共有する。たとえば、本発明によれば、ブリッジデバイス及び/又はスマートローカルデバイスは、セッション単位で、他のブリッジデバイス、スマートローカルデバイス、ダムローカルデバイス、及び埋め込まれたデバイスへ正当なBANキーを配信することができ、具体的には、埋め込みデバイスは、BANの認可されたブリッジデバイス(たとえば、プログラマ機器)へ現在のBANキーをセキュアに配信するか、又は、認可されたブリッジデバイス(たとえば、プログラマ機器)から現在のBANキーをセキュアに受信する。本発明の特定の実施形態では、BANキーの配信中のデバイスなりすまし、BANキー配信の盗聴、及び/又は反射攻撃(すなわち、実質的なメッセージの内容の部分的な理解若しくは推測のみを含むか、又は、そのような理解も含まない、盗聴された通信の単なる繰り返し)を防止するか又は妨げるキー配信プロトコルが使用される。体外(すなわち、身体の外部)のBANデバイスは、IMDの秘密デバイスキーを決して受信しないので、プログラマ等の患者のBANのデバイスは、IMDの一意のデバイスキーを知ることは決してなく、一意のデバイスキーは、常に秘密の状態に維持されて、通信されず、たとえ、そのIMDのBANで使用される体外機器が喪失又は盗難されても、存在するセッション認証情報は使用されていないものとなり、IMDの秘密キーは、体外機器上に決して記憶されていないので、IMDは危険にさらされない。BANキーは、好ましくは、BANの体外デバイス(たとえば、ブリッジデバイス及びスマートローカルデバイス)からBANの他の体外デバイス(たとえば、ブリッジデバイス、スマートローカルデバイス、及びダムローカルデバイス)へセキュアに通信される。これを行うために、本発明の特定の実施形態では、基礎となる無線通信方法の標準的なハンドシェイク、セッション要求、又は他のあらかじめ確立されたプロトコルに従って、セキュアにされていないテレメトリーセッションが確立される。BANキーを受信するデバイスは、人間によって管理されている場合、BANキーを配信するデバイスを操作する人間がBANキー受信者の認証を検証できるようにするために、その人間に、受信デバイスのデバイスキーKdev及び受信デバイスのID番号を視覚的に提供できなければならない。特にデバイスキーKdevは、好ましくは、最初のデバイスが通過するすべてのデバイスから一意であるわけではない場合でも、少なくともBANに組み込まれる他のデバイスに対して一意である。また、特定の実施形態では、スマートローカルデバイス及びブリッジデバイスは、自身に提供されているかも知れないBANキーを、BANの他の適任のデバイス(すべてのダムローカルデバイス及び/又は他のスマートローカルデバイス及び/又は他のブリッジデバイス)へセキュアに配信するのに使用される。本発明の代表的な実施形態によれば、BANキーは、BANの無線接続機能を介してセキュアに提供される。
【0044】
図4は、本発明の一実施形態による2つの体外デバイスを有するボディエリアネットワーク400を示している。この実施形態では、前の例のようなIMDではなく、スマートローカルデバイス415又はブリッジデバイス420等の体外デバイスへBANキーを配信する体外デバイス(アリス)410が、BANキー配信要求を開始することができる。前のBANキー伝播の例と同様に、テレメトリック通信セッションが、非セキュアチャネル120を介して(たとえば、ハンドシェイク又は他のあらかじめ確立された互換性のあるセッションプロトコルによって)、BANキーを受信するデバイス(ボブ)110と確立され、ボブ110は、(ボブデバイス110のメモリ、ストレージ、又は他のハードウェア若しくはソフトウェアの素子435に実装されたRNGファシリティによって生成される)新しく生成された乱数QBを、メッセージ425を介してアリス410へ送信する必要がある。アリス410及びボブ110が、本発明に従って、非セキュアチャネル120を介して別の方法でテレメトリーセッションを確立すると、アリス410(又は、BANキー交換セッションを管理する人間)は、ボブのデバイスキーKdevB430を視覚的に獲得することできる(且つ、GUI又は他の入力を介してアリス410に入力することができる)。デバイスキーKdevB430は、たとえば、ボブの外装に貼付されたラベルに印刷することもできるし、ボブの電子GUI上に表示することもでき、また、図4に抽象的に示すオンボードメモリ又はローカルストレージ素子435にも記憶される。アリス及びボブは、通常、テレメトリーセッションの最初の時点でID(IDA及びIDB)を交換し、通信445及び450を介してそれらの各IDを他の関係者に提供する。ほとんどの場合に、アリス410は、ボブ110のポーリング又はインターロゲートを行い、メッセージ445を介してボブの識別番号(IDB)440を取得することもできる。
【0045】
アリスは、IDB440及びKdevB430を獲得すると、オンボードメモリ又はセキュアストレージ455に記憶されているIDA(アリスのID番号)及びBANキーにアクセスすることができ、IDA、IDB及び現在のBANキーKBANを含むメッセージ460を準備して、ボブへ送信することができる。IDA、IDB及び現在のBANキーKBANはすべて、(以下で説明するように、ブロック暗号へのノンス入力としてのQBと共に)ブロック暗号へのキー入力としてボブのデバイスキーKdevB430を使用してセキュアにされる。ボブ110は、アリスの送信460を受信すると、KdevB430を使用してアリスのメッセージ460を解読して検証し、受信されたIDA、IDB、及びKBANをログ記録する。次に、ボブは、IDA、IDBを含むメッセージ465を準備して、アリス410へ送信する。IDA、IDBはすべて、KBAN及びQB+1(すなわち、QBをインクリメントしたもの)でセキュアにされる。アリス410は、ボブのメッセージ465を受信して解読/検証すると、自身が受信したIDが、自身が送信したIDと一致することを検証する。
【0046】
ダムローカルデバイス470の場合、デバイスキーKdevXは、好ましくは、「工場において」ランダム又は任意に選ぶことができ、デバイス470内のファームウェア(又は、代替的にフラッシュメモリ)435に永久的にプログラミングすることができる。ダムローカルデバイス470は、本明細書で定義されるように、一般に、有効なGUIを有しないので、Kdev430は、好ましくは、デバイス470の外装、デバイス470の文書、又はデバイスそのものに貼付されるべきラベルに印刷され、開始後に除去される。これとは対照的に、スマートローカルデバイス415及びブリッジデバイス420は、本明細書で定義されるように、GUIを有し、それによって、自身のデバイスキー430を(ダムローカルデバイスと同様に)外部ラベルを経由して利用可能にすることもできるし、デバイスのGUIを通じて利用可能にすることもできる。Kdevは、攻撃者が、認可されていないBANからテレメトリーノードデバイスにアクセスするために知る必要がある唯一の情報であるので、Kdevをできるだけ秘密の状態に維持することが重要である。スマートローカルデバイス415及びブリッジデバイス420の場合、デバイスキーKdevがオンボードメモリ/ストレージ435又は455にのみ記憶され、もっぱらデバイスのGUIを経由して利用可能であり、デバイスのGUIとの対話が必要とされる場合に、デバイスの外側に印刷されることとは対照的に、Kdevは、明らかに、よりセキュアである。
【0047】
KdevB430等のデバイスキーは、好ましくは、(フラッシュメモリ435内を含む)ダムローカルデバイス470内にハードプログラミングされる一方、スマートローカルデバイス415及びブリッジデバイス420については、デバイスキーはハードプログラミングされる必要はない。したがって、本発明の特定の実施形態では、スマートローカルデバイス415及びブリッジデバイス420のデバイスキーのプライバシーは、デバイスキーが必要とされるごとに、デバイスキーがランダムに生成される場合に最大にすることができる。デバイスキーの新しく生成された乱数を使用し、それによって、GUIを経由してデバイスキーを観察可能にすることを必要とすることによって、新しいデバイスキーが生成されるごとに、可能なデバイスキーの確率分布が(疑似乱数ジェネレータの一様性まで)効果的に一様になるという点で、スマートローカルデバイス415及びブリッジデバイス420に、ハイジャック(すなわち、認可されてない使用又はアクセス)からの特別な免疫が提供される。これは、デバイスキー430を推測しようとしている攻撃者475が、新しいデバイスキー430が生成されるごとに、自身の検索を最初からやり直す必要があることを意味する。したがって、本発明の特定の実施形態では、新しく生成された乱数が、スマートローカルデバイス415及びブリッジデバイス420のデバイスキーを生成するのに使用される。すべてのメッセージ、すなわち、BANキーによるキー付き(keyed)メッセージ及びデバイスキーによるキー付きメッセージをセキュアにするのにブロック暗号を使用することができる。たとえば、過度のオーバーヘッドなしで強力なセキュリティを与えるブロック暗号は、128ビットAESとすることができる。デバイスキーが、ブロック暗号の長さよりも短い場合、ブロック暗号の引数の長さに達するために必要とされる回数だけ、デバイスキーを繰り返して、それ自体に連結することができる。
【0048】
図5は、図4のネットワークキー伝播プロトコルを疑似プロトコル表記で示している。このプロトコルは、BANキーが、BAN400の体外デバイス(ブリッジデバイス420及びスマートローカルデバイス415)からBAN400の他の体外デバイス(ブリッジデバイス420、スマートローカルデバイス415、及びダムローカルデバイス470のいずれか)へどのようにセキュアに通信されるのかを記述している。BANキーを受信するデバイス、この場合、ボブ110は、ブリッジデバイス、スマートローカルデバイス、ダムローカルデバイス等の体外デバイスへBANキーを配信するデバイス(この場合、アリス410)を操作する人間に、受信デバイス110のデバイスキーKdev430及び受信デバイスのID番号440を視覚的に提供できなければならない。最初に、ボブ110は、「BANキーを配信する」セッション要求210をアリス410から受信する。アリス410及びボブ110は、最初に、図4のメッセージ425と同様に、ボブ110が新しく生成された乱数QBをアリス410に提供するテレメトリック通信セッション215を開始しなければならない。本発明の特定の実施形態によれば、スマートローカルデバイス415及びブリッジデバイス420は、BANキーを有する場合に、BAN400の他の適任のデバイス(すべてのダムローカルデバイス470及び/又は他のスマートローカルデバイス415及び/又は他のブリッジデバイス420)へBANキーをセキュアに配信することを担当する。したがって、以下のプロトコルは、適任のBAN400のデバイスへのBANキーのセキュアな無線配信を可能にするのに適切である。
【0049】
図5に示すように、BANキーを配信するデバイス(アリス410)によって開始される「BANキーを配信する」セッション要求210は、まず、BANキーを受信するデバイス(ボブ110)とのセキュアにされていない通信セッション215を確立することから成る。アリス410及びボブ110がテレメトリーセッションを確立すると、ボブ110も、アリス410に、新たに生成された64ビット疑似乱数QBをメッセージ215を介して送信する必要がある。
【0050】
スマートローカルデバイス415及びブリッジデバイス420のファームウェアが、着信する「BANキー配信」コマンド210を拒否する場合には、人間のユーザが、スマートローカルデバイス415又はブリッジデバイス420を「新しいBANキーを受理する」モードにしない限り、デバイスハイジャックを防止するさらなる極めて強力な方法を実現することができる。新しいBANキーの受理に人間の介入を必要とすることは、専用の物理ボタン又はスイッチをダムローカルデバイス470に追加することによってダムローカルデバイス470において実施することができる。
【0051】
スマートローカルデバイス415及びブリッジデバイス420のファームウェア435、455が、着信する「BANキー配信」コマンドを拒否する場合には、デバイスに接近した人間のユーザが、スマートローカルデバイス又はブリッジデバイスを「新しいBANキーを受理する」モードにしない限り、デバイスハイジャックを防止するさらなる極めて強力な方法を実現することができる。新しいBANキーの受理に人間の介入を必要とするこのアイデアは、物理ボタン又はスイッチ(埋め込まれた「リセット」ボタン等)をダムローカルデバイス470に追加することによってダムローカルデバイス470においても実現することができる。新しいBANキーを受理するのに人間との対話を必要とすることは、実際に、(攻撃者がデバイスとの物理的な接触を達成しないという条件で)起こり得るあらゆるデバイスハイジャックを排除するが、本明細書で説明するように、BANキー配信プロトコルに対する他の攻撃は可能であり、本発明の他の実施形態によって対処される。
【0052】
図4及び図5のBANキー配信プロトコルの最後のステップにおいて、ボブ110は、KBANでセキュアにされたメッセージ465をアリス410へ送信することができ、したがって、キー配信プロトコルが成功したことを確認する。この確認信号は、アプリケーションレイヤに渡すことができ、次いで、視覚信号及び/又は音響信号の形態で「配信成功」通知として人間のユーザへ通信することができる。
【0053】
本発明のブリッジデバイス420及びスマートローカルデバイス415は、特定の実施形態では、BANキーをリセットすることができ、それによって、以下で説明するように、セッションキーもリセットすることができる。たとえば、患者又は医師の命令で、ブリッジデバイス420及びスマートローカルデバイス415は、受信機のデバイスID及びデバイスキーを使用することによって、BANキーをローカルデバイス415、470及び/又は他のブリッジデバイス420へ配信することができる。本発明の特定の実施形態では、埋め込まれたデバイス又はブリッジデバイス420がBANに存在するか否かにかかわらず、スマートローカルデバイス415は、BANキーを生成することができる。一般に、BANキーを更新する必要がある唯一の時は、BANキーを有するデバイスが喪失又は盗難された時である。本発明による特定の実施形態では、現在の攻撃者の処理能力に基づくと、BANキーは、危険にさらされることを回避するために約数百年に1度の頻度でしか更新する必要がない。
【0054】
ネットワーキング資源の制約条件のために、本発明の特定の実施形態では、共通の秘密キーが、特定のボディエリアネットワーク(BAN)のすべてのデバイスによって共有される。このBANキーKBANは、BAN内のすべての通信をセキュアにするのに使用される。BAN内では、テレメトリーセッションを次のように確立することができる。すなわち、テレメトリーセッションを開始するいずれかのデバイスのコマンド時に、共有されたBANキーが、現在のテレメトリーセッションで通信することを望むすべてのBANメンバーによって与えられる、新しく生成されて共有される乱数と共に、セッションキーKsesにされる。このセッションキーKsesは、テレメトリーセッションの継続時間の間、BANで通信されるすべてのメッセージをセキュアにするのに使用される。テレメトリーセッションがクローズされると、現在のセッションキーは廃棄される。
【0055】
ノード間の通信セッションをオープンするために、最初に、たとえば、ハンドシェイク、セッション要求/受理、又は他のセッション開始プロトコルによって、セキュアにされていない交換が通信デバイス間で行われる。好ましくは、着信するパケット長及び発信するパケット長は固定であり、その上、本発明による特定の実施形態では、物理レイヤハードウェアが、これらのパケット長を予測するようにセットアップされる。したがって、それよりも短いパケット又は長いパケットを「不良」とフラグ付けして拒絶することができる。使用される、関連のある暗号のインスタンスが利用可能でなければならない。本発明と共に使用するためのさまざまな適切な暗号化標準の1つは、FIPS承認の128ビットAESブロック暗号(FIPS PUB 197)である。暗号化は、AESの「カウンタモード」(CTRモード)で適切に行うことができる。メッセージの新しさは、トークンのようなノンス(すなわち、使い捨ての疑似乱数)の使用を通じてチェックすることができる。また、特定の実施形態では、たとえば、AESの「暗号ブロック連鎖メッセージ認証コードモード」(CBC−MACモード)の使用によって、メッセージの完全性が維持される。本発明のテレメトリーセキュリティシステムでは、本明細書で論述するように、疑似乱数をその時々に生成しなければならない。乱数は、コンピュータ生成された数を指すとき、技術的に正確に言えば、コンピュータ生成された数が実際には決定的であるという点で、(真の乱数とは対照的に)いわゆる疑似乱数を指すことができる。しかしながら、疑似乱数は、全体関数(overall function)が、可観測にするために全体的に確率的プロセスとして振舞うように、好ましくは、十分に複雑な若しくは多様な状態又は補助関数から導出される。この数の実際の値は重要ではなく、特定の実施形態では、数は、暗号の種、メッセージ認証関数の種、さらには、別の疑似乱数生成の種として使用できることが理解されよう。数の実際の値は、疑似乱数の関数については重要ではないので、数の値は、任意であると言うことができる。任意とは、本明細書では、一般に「偶然」と同義であることが意図されている。一般に、本発明が、疑似乱数の使用をどこで必要としようとも、その機能は、たとえば、代替的な疑似乱数ジェネレータ、又は、本発明の代替的な実施形態によるハードウェア生成された乱数に置き換えることができる。特定の実施形態では、上述したFIPS承認のAESブロック暗号仕様は、ANSI X9.31仕様(付録A.2.4)に基づくNIST推奨の疑似乱数ジェネレータ(PRNG)を実施したものを提供する。これは、本発明の典型的な実施形態に適している。ANSI X.9.31 PRNG仕様のこの特定の実施形態は、AESブロック暗号(FIPS PUB 197)を使用する。このタイプの実施形態は、一時に128ビットのPRNG疑似乱数を生成する。
【0056】
図6〜図9は、本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図を示している。図6は、本発明の実施形態による、図9の乱数ジェネレータの最初のステップのデータフロー図を示している。特定の実施形態では、128ビット疑似乱数(PRN)の生成は、ANSI X9.31で指定されているように、AESブロック暗号を使用して実施され、過度のオーバーヘッドなく、予測される攻撃者の処理能力の観点から十分なセキュリティ及びプライバシーを提供する。初期事項として、128ビット乱数KR610及びR0が、PRNGに利用可能である。PRNGキーであるKR610は、変化せず、128ビットレジスタを経由してブロック暗号620のkey_i入力615に常にロードされる。R0は、PRNGが128ビット乱数を生成するごとに、新しい現在のPRN(R1,R2,…)で更新されるPRNGの秘密ランダム初期化ベクトル(secret and random initialization vector)である。KR610及び現在のRの双方は、新しいいずれの疑似乱数の生成にも必要とされるので、メモリ又はセキュアローカルストレージに記憶することができる。
【0057】
この実施形態では、あらゆる(i+1)番目のPRNの生成は、次のように進行する。すなわち、図6に示すように、ブロック暗号620(この例では、128ビットAES)が、キー入力615としてKR610を使用してノンス625を暗号化するのに使用される。ノンス625は、たとえば、そのノードの現在のリアルタイムクロック値から構成することができ、128ビットレジスタを経由してブロック暗号620の128ビットdata_i入力630にロードすることができる。(リアルタイムクロックが、128ビットよりも長い場合には、リアルタイムクロックの最下位128ビットを使用することができる。)リアルタイムクロックが128ビットよりも短い場合には、0の個数にリアルタイムクロックのビット数を加えたものが128に等しくなるように、ノンス625の最上位ビットを0でパッディングすることができる。リアルタイムクロックが、ノンス625を生成するのに使用されようとされまいと、ブロック暗号620から出力される中間値data_o635は、本明細書では、V1640と呼ばれる場合がある。
【0058】
図7は、本発明による疑似乱数ジェネレータの一実施形態における図6のステップに続くステップを示している。図7に示すように、中間値V1640は、現在のR710(最初の乱数の場合はR0であり、(i+1)番目の乱数の場合はRiである)とXORされる。次に、この128ビット値
【0059】
【数10】
625をブロック暗号620で暗号化することができる。具体的には、KR610を、たとえば128ビットレジスタからブロック暗号620のkey_i入力615にロードすることができる。それに続いて、
【0060】
【数11】
625を、別の128ビットレジスタを経由してブロック暗号620のdata_i入力630にロードすることができる。中間値V2720は、ブロック暗号620のdata_o出力635である。
【0061】
図8は、本発明による疑似乱数ジェネレータの一実施形態における図7のステップに続くステップを示している。この実施形態では、128ビット中間値V1640及びV2720が、互いにXORされ、ブロック暗号620で暗号化される。具体的には、KR610が、128ビットレジスタを経由してブロック暗号620のkey_i入力615にロードされる。
【0062】
【数12】
625の結果は、別の128ビットレジスタを経由してブロック暗号620のdata_i630入力にロードされる。ブロック暗号620の出力data_o635は、新しいPRN Ri+1810を含む。さらなる128ビットPRNが必要とされる場合には、新しいノンス625(たとえば、現在のリアルタイムクロックデータ)を使用し、且つ、新しく更新されたPRN Ri+1810を使用して、RNGプロセスを繰り返すことができる。さらなる乱数が必要とされない場合、Ri+1は、今後のセッションにおける今後のPRNの生成に備えてメモリに記憶される。PRNGキーKR610は、メモリ又はセキュアローカルストレージに記憶することができる。
【0063】
要約すれば、RPNGキーの生成は、好ましくは、図9に示すように、次のように進行する。ブロック暗号が、関数E(data_i;key_i)=data_oによって表され、ここで、Eが、関数への関連のある引数並びにdata_i630及びkey_i615(i≧0を有する)を有するAES関数620を表す場合、アルゴリズムは、ブロック暗号を通る3つのステップのネストされた処理又は反復的な処理に従って要約することができる。すなわち、
ステップ1.V1640=E(ノンス625;KR610)
ステップ2.
【0064】
【数13】
ステップ3.
【0065】
【数14】
である。上記ステップの3つすべてを結合することによって、
【0066】
【数15】
が与えられる。
【0067】
本発明の特定の実施形態では、PRN生成には、128ビットAESブロック暗号620及びモジュロ2加算機能の使用、ブロック暗号をバッファリングする3つの128ビットレジスタ、リアルタイムクロック又は別のノンス625のソースへのアクセス、並びに2つの128ビットの数Ri710及びKR610のストレージ空間が割り当てられる。これらのうち、Ri及びKRのストレージ空間は、本発明の他の態様及び機能には利用可能でない場合がある。好ましくは、2つの128ビット乱数は、たとえば製造の際に、本発明のモジュールの実施態様に「インストール」することができる。これらの乱数のうちの一方(KR610)は、永久的なものとすることができ、他方R0710は、好ましくは、新しい疑似乱数が生成されるごとに、更新することができる。
【0068】
本発明によるセキュアテレメトリーセッションは、好ましくは、1つ又は複数の通信デバイスがセキュアセッションを要求するといつでも開始される。セキュア通信セッションのセットアップは、2ステップのプロセスである。この2ステップのプロセスによって、すべての通信デバイスには、同じセッションキーKsesが提供される。ステップ1において、すべての通信デバイスは、Rxと呼ばれる事前に生成された疑似乱数、たとえば64ビット乱数、を交代でアナウンスする。ここで、「x」は、異なるデバイスをインデックスする。上述し且つ図6〜図9に示したように、特定の実施形態では、疑似乱数が次のセキュアセッションに直ちに利用可能であるように、疑似乱数は、前のセキュア通信セッションの終了時に生成される。これらの疑似乱数の生成は、好ましくは、本明細書の開示に従って行うことができるが、疑似乱数又はハードウェア生成された乱数を生成する他の方法を本発明に従って代用することもできる。
【0069】
事前に生成された乱数のアナウンスに続いて、次のステップは、セキュアセッションの確立を提供し、すべての通信デバイスが共通のセッションキー(Kses)を計算することを必要とする。この共通のセッションキーは、その後、セキュアセッションの継続時間の間、データトラフィックをセキュアにするのに使用される。Ksesは、独立に計算されるが、ブロック暗号等の暗号を使用して各デバイスによって全く同一に計算される。128ビットAESブロック暗号は、本発明の典型的な実施形態に適している。
【0070】
図10は、本発明の実施形態によるセッションキーの生成のデータフロー図である。共通セッションキーは、事前に確立されたBANキーKBAN及び通信ノードの乱数のすべて{R1,R2,R3…}から導出することができる。特定の実施形態では、Ksesは、ブロック暗号620への「キー入力」615内にKBANをロードし且つブロック暗号620の「データイン」630内にデバイスの乱数1010をロードすることによって計算することができる。これは、本発明の特定の実施形態では、ファームウェア制御によって成し遂げることができる。具体的には、最初の2つのデバイスの64ビット乱数が連結されて128ビットの数にされる。次に、この128ビットの数が、ブロック暗号620の「データイン」630にロードされる。セキュアセッションを確立することを望むデバイスが2つしか存在しない場合、ブロック暗号620の128ビット出力635が、セッションキーKsesとなる。単一のセッション内でセキュアに通信することを望むデバイスが3つ以上存在する場合、再びブロック暗号620の「データイン」630を入力して上述したように処理される前に、ブロック暗号620の出力635が、続いて、次の2つのデバイス1020の連結された128ビット(2×64ビット)乱数にXORされる(すなわち、モジュロ2加算される)。暗号(ここでは、128ビットAES)のXOR導出値635への適用は、好ましくは、デバイスの乱数のすべてを通過するのに必要な回数だけ繰り返される。ここで、ブロック暗号620の最終出力635は、Kses1030である。セキュアセッションに含まれるデバイスが奇数個存在する場合、128ビット連結の「空」のスロットを64個の0で満たすことができる。セキュア通信セッションの終了時に、エフェメラル(ephemeral)Kses1030を「削除」することができ、新しい各セキュアテレメトリーセッションが提供されると、その開始時に、新しいセッションキー1030が計算される。
【0071】
説明したように、特定の実施形態で情報をセキュアにすることは、たとえばカウンタ(CTR)モードで使用されるブロック暗号が使用されることを含めて、暗号に基づくことができる。このように、ブロック暗号は、キー付き疑似乱数キーストリームを生成するという点で、ストリームに適用することができる(又は、受信側ノードにおいて、平文を生成して解読を行うために暗号文に対して適用することができる)。このキー付き疑似乱数キーストリームは、その後、暗号化文を生成するために平文に対してXORされる。図11は、本発明の実施形態によるメッセージのCTRモードの暗号及び解読のデータフローを示している。図示するように、共有セッションキー1030は、128ビットレジスタを経由してブロック暗号620のkey_i入力615にロードされ、セッションキー1030は、(上述したように、セキュアセッションの開始時に計算された後)メモリ又はストレージからレジスタにロードすることができる。128ビットノンス(すなわち、1回だけ使用される数)1110は、別の128ビットレジスタを経由して、ブロック暗号620のdata_i入力630にロードされる。
【0072】
図12は、本発明の実施形態によるノンスレジスタのデータ構造を示している。この実施形態では、図12に示すように、128ビットノンス1110の最上位8バイト1210が、実際には、8バイトのアップカウンタ1210である一方、そのカウンタの下位側の6バイト1215は、インスティゲーティングデバイス(instigating device)の乱数Rx1220の最下位6バイト[すなわち、ビット47〜ビット0]で開始される。乱数Rx1220は、図10のセッションキー1030の生成に貢献されたものであることが理解されよう。本発明によるテレメトリーパケットが、セキュアセッションで受信又は送信されるごとに、カウンタ1210の値がインクリメントされる。(8バイトカウンタ1220のすぐ下の)次のノンスバイト1225は、図12のビット「m」1230であるモードビット1230を含む。本明細書で説明するように、このビットは、ノンスがCTRモード暗号化/解読に使用されているときは、論理0に設定することができ、ノンスがメッセージの完全性に使用されているときは、モードビットは論理1に設定される。モードビットの下の7ビットフィールドであるブロック番号フィールド1240は、あらゆるパケットの開始時に論理0000000にリセットされ、そのパケット内の暗号化/解読に使用されるキーストリームマテリアルの各128ビットブロックの生成時にインクリメントされる。たとえば、各テレメトリーパケットが、暗号化/解読に300ビットのキーストリームマテリアルを必要とした場合、キーストリームの最初の128ビットは、0000000を使用して生成され、2番目の128ビットは、0000001を使用して生成され、3番目の128ビットは、0000010を使用して生成される(1つずつインクリメントされる。キーストリームマテリアルの300ビットがパケットごとに必要とされる例では、キーストリームマテリアルの最後の128ビットのうちの44ビットのみが必要とされることに留意する)。128ビットノンス1110の残りの7バイト(最下位7バイト1240)は、好ましくは、永久的に論理0に設定することができる。
【0073】
反射攻撃を防止することを助ける同期されたタイムスタンプではなく、又は、このタイムスタンプに加えて、本発明の特定の実施形態では、あらゆるセキュアテレメトリックセッションの開始時に新しいセッションキーKses1030を計算することによって、メッセージの新しさ及びユーザ認証が提供される。この新しいセッションキー1030は、セキュアセッションの参加者のそれぞれによって生成された乱数の貢献度(contribution)の関数である。しかしながら、セッション内の反射攻撃について、さらなる新しさのメカニズムを提供することができる。この場合、セキュアセッションのデバイスは、セッションノンスの自身のローカルコピーにおけるカウンタを、その現在の値よりも小さな値にリセットすることを決して可能にすべきでない。テレメトリー通信セッションが中断されるか、又は、他の或る理由から、基礎となる通信プロトコル内で「リセット」若しくは再同期する必要がある場合、セキュアセッションのデバイスが再同期するために、現在のセッションノンスはアナウンスされることが必要な場合がある。攻撃者は、おそらく、他のセッション参加者のノンスを前の値にリセットし、それによって、攻撃者が、前のノンス値を使用した古いメッセージを反射できるように試みることによって、このような状況の悪用を企てている可能性がある。このように、セッションノンスは、かなりのネットワークトークンとして機能する。ノンスカウンタが増加のみ行う場合、264個を超えるパケットが単一のセキュアセッションで通信されることはないという条件で、過去のセッション内メッセージは、以前のノンスを有するので、古いメッセージは、決して正当なノンスを有しない。なお、264個を超えるパケットが単一のセキュアセッションで通信されることは、起こりそうもないことである。
【0074】
図11に示すように、本発明の実施形態では、暗号化及び解読は、好ましくは、ブロック暗号620の128ビット出力バスdata_o635と、暗号化用のペイロード平文から取られた128ビットデータブロック1115、及び、解読用のペイロード暗号文から取られた128ビットデータブロック1115との間でビット単位のモジュロ2加算(XOR)を実行することによって行われる。本発明の特定の実施形態では、パケットヘッダは暗号化されない。
【0075】
図13は、本発明の一実施形態によるテレメトリーパケット1300のデータ構造を示している。128ビットメッセージブロック1115のそれぞれは、ブロック暗号620の異なる出力635とXOR1120を行うことができる。たとえば、図13のメッセージブロックm11310は、キーストリームブロック(すなわち、ブロック暗号620のdata_oバス635を残した128ビットブロック)s1とXORされ、メッセージブロックm2(パケットの次の128ビット1320)は、s2とXORされる。他のメッセージブロックについても同様にXORされる。前述したように、異なるノンス1110は、各キーストリームブロック635の生成で使用される。特定の実施形態では、同じノンス1110が、同じセッション内で2回使用されることは決してない。したがって、8バイトノンスカウンタ1210が、その最大値(0xhFFFFFFFFFFFFFFFF)に達すると、セキュアセッションを終了することができ、新しいセッションキーが一括して計算される。この実施形態では、単一のセッションキーを使用して通信できるテレメトリーパケットの個数は、264個(インスティゲータ(instigator)の乱数の最下位6バイトが0xh000000000000である場合に対応する)から264−248個(インスティゲータの乱数の最下位6バイトが0xhFFFFFFFFFFFFの場合に対応する)である。10進数では、これらの数は、それぞれ1.84467×1019及び1.84464×1019であり、したがって、実際にこれらのパケット数に決して達する可能性がないことが理解されよう。
【0076】
たとえばTDMA構造といったセキュアにされたネットワークでは、好ましくは、デバイスは、非送信の期間中にセキュアな通信を維持するために、そのデバイスが、自身に割り当てられた窓の期間中に実際にブロードキャストするか否かにかかわらず、自身のノンスカウンタをインクリメントする。この非送信の時間の間、デバイスは、エネルギーを保存するために自身の無線の電源を切ることができる。電源投入時に、デバイスは、セッションノンスの経過を追跡してきており、依然として、後に電源投入することができ、セキュアに通信することができる。代替的に、テレメトリーネットワークセッションの「マスタ」又は「ビーコン」は、ネットワークセッション内で新しい「ラウンド」を開始するごとに、現在のノンスカウンタをセキュアにせずにブロードキャストすることができる。
【0077】
本発明の特定の実施形態では、MACは、各テレメトリーパケットについて計算され、各テレメトリーパケットにアペンドされる。また、本発明の特定の実施形態では、1つのパケットサイズ及びパケット構造が使用される。このようなパケット構造の1つの可能な実施形態が、図13に示されている。図示するように、本発明によるパケット1300は、42ビット(5.25バイト)ヘッダ1310、30バイトペイロード1315、及び3バイトMAC1320から構成することができる。
【0078】
本発明の特定の実施形態では、ブロック暗号(たとえば、128ビットAES)をCBC−MACモードで使用して、メッセージの平文のキー付きハッシュ値(メッセージ認証コード、すなわちMAC)を生成することができる。このキー付きハッシュ値は、図13に示すように、1320において、送信時にそのメッセージ1315の暗号化された形態にアペンドされる。これらのパケット1300及びそれにアペンドされたMAC1320を受信すると、受信機は、パケットペイロード1315を解読し、それらの解読されたパケットに関するMACを計算し、受信機は受信されたペイロード1315から導出した、計算されたMAC値を、本パケット1300にアペンドされて受信されたMAC値1320と比較する。これらのMACが一致した場合、パケット1300は受理される。当然、MACが矛盾した場合、パケット1300は廃棄又は再要求される。MAC1320が、本発明に従って計算され、各パケット1315にアペンドされる場合、従来技術のテレメトリーシステムにおけるパケットごとのCRCの代わりにMAC1320を使用することができる。本明細書でさまざまに詳述したように、特定のパケットがセキュアにされずに送信される限りにおいて、付加的に、(CRCのような)キー付きでない(unkeyed)完全性チェックメカニズムを適用することができる。この完全性チェックは、ハードウェアCRCの使用を通じて実現することもできるし、代替的に、公に知られたキー及びノンスを有するCBC−MACを使用することによって(たとえば、双方について0x00000000000000000000000000000000を使用することによって)実現することもできる。
【0079】
MAC1320を使用するこの実施形態では、パケットペイロード1315(すなわち、暗号化されるパケットの部分)の長さは30バイトである(したがって、1ビットのみのノンスレジスタブロック番号フィールド1235を必要とする)が、ノンスレジスタブロック番号フィールド1235は、同じノンスレジスタ構造1110を使用して、4096バイトと同じ長さのより長いパケットペイロードの使用を可能にすることができる将来のテレメトリー方式に備えて7ビットに固定することができる。
【0080】
図14に示す本発明の代表的な一実施形態によるCBC−MAC生成/検証アルゴリズムでは、最初に、共有セッションキー1030(CTRモード暗号化/解読に使用されるものと同じもの)が、128ビットレジスタ1430を経由してブロック暗号620のkey_i入力615にロードされる。ブロック暗号620のdata_i入力615には、ノンスの97ビットの最上位ビット(必要に応じて、ブロック番号フィールドをトランケートする)と最大で最初の31ビットまでの平文パケットのビット(通常はヘッダ情報から成る)とを連結したもの1435をロードすることができる。ノンスレジスタ1110のモードビット1230は、論理1に設定することができる。典型的な実施形態では、CBC−MACアルゴリズムがMAC生成に使用されているのかMAC検証に使用されているのかにかかわらず、CBC−MAC処理は、各パケットの解読された形態(すなわち、メッセージ平文)に対して行われる。この実施形態では、したがって、受信されたパケットは、それらのパケットのMACが検証可能になる前に、解読されなければならない。
【0081】
図14の最初のブロック暗号620の出力(data_o)635は、1435における97ビットノンスに連結された平文に続く次の128ビットとビット単位でXORすることができる。次に、このXORの結果は、第2のブロック暗号1440の入力630にロードされる。次に、第2のブロック暗号1440の出力635は、パケット1300の1315からのパケット平文の最後の128ビット(必要に応じて0がパッディングされる)とXORされ、次いで、第3のブロック暗号1445によって処理される。この実施形態では、パケットヘッダ及びパケットペイロードのビット合計が287ビット以下であるので、MACが、第3のブロックの128ビット出力(data_o)であることから、CBC−MACのラウンドはそれ以上必要とされない。MACが、本発明の代替的な一実施形態に従って、より長いパケットに対して必要とされる場合、出力をXORしてさらなるブロック暗号620に通すことによって、さらなる平文ブロックを処理することができる。一般に、m個のブロックの平文について、m回のXOR/ブロック暗号ラウンド630が必要とされる。ここで、最後のブロック暗号のdata_o出力635がMAC1450となる。図14には、3つのブロック暗号コア620、1440、1445が示されているが、特定の実施形態では、1つのコアしか実際にハードウェアで実施されず、実際には、XOR出力は、第1のブロック暗号620のdata_i入力630へ送られることに留意されたい。図14に示す3つのコア620、1440、1445は、CBC−MACアルゴリズムを例示するようにのみ意図されている。
【0082】
図14に示すように、本発明の特定の実施形態では、CBC−MAC出力1450の最下位24ビット(ビット23〜ビット0)のみが、処理されたパケット1300の最後にMAC1320としてアペンドされる。これによって、CBC−MAC関数(この場合、128ビット)の基礎となる暗号強度は危険にさらされない。
【0083】
セキュアにされたセッションに参加する各デバイスは、好ましくは、あらゆるパケット1330の送信時及び受信時に自身の各セッションノンスカウンタ1210をインクリメントする。このように、一時にセキュアセッションの1つのデバイスしか送信していないので、ノンスインクリメントは、プロキシトークンとして機能し、したがって、複数のデバイスを同時に送信できないことが確実にされる。特定の実施形態では、テレメトリーパケットは比較的長いので、ノードは、特定の状況で、BANグループの中でノンス同期を場合によっては喪失する可能性がある。基礎となる通信プロトコルによってサポートされる場合、本発明の特定の実施形態では、デバイスは、自身の現在の平文ノンスをフレームヘッダに定期的に含めて、ノンス同期チェックを提供することができる。典型的な実施形態では、ノンス同期は、一般に、現在のノンス1110をNACKパケットに常に含めることによって回復することもできるし、基礎となる通信プロトコルに存在するネイティブ回復技法が何であってもそれを通じて回復することもできる。好ましくは、本明細書でさらに説明するように、すべてのデバイスは、a)セッションノンスのデバイスのコピー内のカウンタが、デバイスがメンテナンスメッセージで受信するあらゆるノンスと少なくとも同程度の大きさであるべきであるというルール、及び、b)ノンスカウンタが0xhFFFFFFFFFFFFFFFFに達すると、新しいセッションキーを計算しなければならないというルール、に従い、ノンスは、2回使用されることはなく、したがって、メッセージの新しさが保証される。
【0084】
好ましくは、暗号化/解読は、ヘッダ1310ではなく、テレメトリーパケットペイロード1315に適用されるべきである。本発明のこの実施形態は、攻撃者に利用可能な既知の平文及び必要とされるキーストリームの長さの双方を最小にする傾向がある。さらに、これによって、パケットヘッダ1310が物理レイヤハードウェアを通じて伝播している間に、キーストリームマテリアルを計算してバッファリングするブロック暗号時間が与えられる。本発明の特定の実施形態では、単一のブロック暗号コア620(たとえば、AESブロック暗号)は、暗号化関数及びMAC関数の双方を実施するのに使用されるが、これは、好ましくは、ランタイムにブロックごとにCTRモードをCBC−MACモードと交互に用いるのではなく、最初に、パケット全体のペイロードデータ1315の分量について、CRTモードを使用して十分なキーストリームマテリアルを生成して記憶することによって行われる。暗号化/解読された128ビットブロックが利用可能になると、CBC−MACモードを使用して、引き続きMACが生成/検証される。図15は、本発明の一実施形態によるパケット(32バイト以下のペイロード)のCTRモード及びCBC−MACモードのAESベースの混合使用について提案されたハードウェアレイアウトを示している。
【0085】
一般に、本発明によるノードの一ハードウェア実施態様は、128ビットAESブロック暗号の1つのインスタンス(及び対応する専用の128ビットレジスタ)と、128ビットBANキー用のキープアライブストレージ又は不揮発性ストレージとを必要とする。セッションノンスは、セッションキー(Rx)へのインスティゲーティングデバイスの乱数の貢献のみから成るので、セキュアにされたネットワークのすべてのデバイスは、さらなる送信を行う必要なく、セッションノンスを知っている。図15に示すように、単一のブロック暗号620を使用して、data_i入力630に対する(入力1510を介した)キーストリーム又は(入力1515を介した)CBC−MAC入力のいずれかが処理される。ブロック暗号620の出力635であるレジスタ1515は、平文1525とXORされて、平文データ1525が暗号化される。
【0086】
本発明の特定の実施形態では、(セッションをオープンし、乱数を共有するのに使用されるパケットのように)パケットをセキュアにせずに通信する必要がある限りにおいて、キー付きでない完全性チェックが依然として使用される。この完全性チェックは、たとえば、ハードウェアCRCの使用を通じて実施することもできるし、(双方について0x00000000000000000000000000000000のような)おそらく、公に知られた秘密キー及びノンスを有するCBC−MACを使用することによって実施することもできる。
【0087】
キーストリームマテリアルが生成され、第1のキーストリームレジスタ1510及び第2のキーストリームレジスタ1515にそれぞれ記憶される。第2のキーストリーム1515レジスタのキーストリームマテリアルが使い切られると、第1のキーストリームレジスタ1510が、キーストリームレジスタ1515に並行してロードされる。第1の平文ブロックは、レジスタ1520に記憶され、(第1のキーストリームレジスタ1510のキーストリームマテリアルが、第2のキーストリームレジスタ1515に移されると)ブロック暗号処理620に続く結果の第1のMACブロックが、第1のキーストリームレジスタ1510に記憶される。第1のMACブロックは、1525からの平文の第2のブロックとXORされ、ブロック暗号620に通される。次に、最後のMAC1530の最下位24ビットが、図13の暗号化されたデータ1315にアペンドされる。
【0088】
本発明による無線テレメトリーシステムでは、本明細書で開示したように、通常、体内デバイスと体外デバイスとの間の通信セッションを完全に無線で開始、実行、及びクローズすることができる。したがって、論述したように、認可されていない且つ/又は悪意のある関係者が、埋め込まれたデバイス又はBANの他のノードと通信することを防止することが重要である。しかしながら、実際には、認可されていない体外デバイス(医師プログラマ器具、緊急対応機器等)及びそのユーザ(これらのユーザは、埋め込み物の秘密キーにアクセスできないという意味で認可されていないが、患者のBANにアクセスする患者の明白な又は暗黙の同意又は指示を有する)が、それにもかかわらず、埋め込まれたデバイスと通信することが必要な状況が発生し得ることが理解されよう。このような状況は、たとえば、埋め込み物自体によって引き起こされていようがいまいが、患者が危機的な事象、さらには、命に関わる生理学的事象を受けている緊急の状況で発生し得る。たとえば、患者は、おそらく意識不明であり、識別マテリアルを有しない場合がある。また、上記プロトコルによる認証が禁止されているか又は実現不可能である過度の不便さのために、上述したような本発明の態様におけるフル認証が実現可能でない状況も発生し得る。たとえば、患者は、医師と会うための予約で大きな距離を移動してきた場合があるが、到着した時に、自身のスマートカード、又は、体外ノードが埋め込み物と通信できるようにするのに必要な他のマテリアルを忘れてきた又は置き忘れてきたことに気付く場合もあるし、患者は、自身の認証パスワードを忘れてしまっている場合もある。これらの状況では、「バックドア」、すなわち、IMD BANノードとインターフェースする方法(しかし、代表的な実施形態では、ノードの秘密デバイスキーKdevを導出することなく)が、限られた原則で、本発明によるシステムのセキュリティプロトコルを迂回する方法でノードへの正当なアクセスを可能にすることができる。したがって、患者の予約を再スケジューリングする不便さが回避され、又は、真の緊急の状況では、患者への重要なケアが可能になる。
【0089】
本発明の一実施形態では、たとえば或る距離にわたって、たとえば無線プロトコルとして、無線で動作する便利なバックドアメカニズムを提供することができる。一方、本発明の特定の実施形態では、バックドアは、無線ではなく、バックドアをオープンできる機器は、幅広く利用可能な場合がある(したがって、攻撃者が獲得することが容易である)。したがって、特定の実施形態におけるバックドアは、キーを共有するすべてのノードデバイスのセキュリティが、理由が何であれ、バックドアキーの相対的な機密性を危険にさらす動機を有する攻撃者によってノードデバイスの獲得時に取り返しのつかないほど危険にさらされるような方法では実施されない。したがって、無線バックドアが実施される本発明の特定の実施形態では、好ましくは、埋め込み物又はノード(たとえば、アリス115)全体の限られた量の機能しか、バックドアキーの通信時に動作可能ではない。たとえば、無線バックドアが利用可能である特定の実施態様では、無線バックドアを使用して、埋め込み物をそれぞれの静止(すなわち「スタンバイ」)モードにのみすることができる。より具体的には、たとえば、ペースメーカは、60bpmモードに入ることができる一方、埋め込み可能な除細動器又はニューラルシミュレータ又は薬ポンプは、無線バックドアによって療法一時停止モードにすることができる。
【0090】
図16を参照して、本発明の特定の実施形態では、「物理的」バックドア1610、すなわち、無線通信チャネル120を使用しないアクセス方法、が提供される。これらの実施形態では、バックドアアクセスを求めるデバイス110と、アクセスされるノード115及び/又はその患者(埋め込められたデバイスの場合)との間の物理的な接触(又は近接近)によってのみ、認証なしのBANノード115へのアクセスが行われる。これは、特定のBANノード115では、ホール効果センサ又は磁気リードスイッチ等の近接場磁気センサの使用によって実施することができる。好ましくは、このセンサ1610は、通信チャネルそれ自体をもたらさず、(上記で説明したように)本発明の実施形態によって必要とされる認証要件なしで、モジュールを、機器が埋め込み物(複数可)又は他のノードと通信できるオープンモードにすることのみのために使用される。代替的に、バックドアは、磁気テレメトリー等の近い範囲のテレメトリーの手段を開始することができ、このテレメトリーでは、接近することによって、通信チャネルの使用が実際に可能になる。
【0091】
また、特定の実施形態では、緊急機器110が通信セッションをクローズすると、バックドア1610はクローズする。すなわち、オープン通信チャネルがクローズされ、デバイス115へさらに通信するには、たとえば本明細書で提供したような適用可能な認証情報が必要とされるか、又は代替的に、別のバックドア通信セッションの確立が必要とされる。このバックドアの使用の効果は、無線ルータ等の無線ネットワーク器具の埋め込まれたリセットボタンと比較することができる。リセットによって、リモートの第三者が無線ルータの態様を変更することが可能になるが、この状態は、デバイスにおける物理的な動作なしでは提供されない。デバイスへのこの物理的なアクセスは、デバイス又はノードに対する変更を管理する管理認証の代理として行われる。
【0092】
バックドアは、KBANをBANの他のデバイスへ配信する目的で、IMDからそのKBANを抽出する好ましい手段としても使用することができる。また、バックドアは、IMDがエフェメラルKBAN(KBANとして一時的に使用されるローカルに生成された乱数)を送信することを要求するのにも使用することができる。このエフェメラルKBANは、そのテレメトリーセッションの継続時間の間にのみ有効である。バックドアアクセスの結果、KBAN又はエフェメラルKBANの無線送信が可能になる実施態様では、エフェメラルKBANを回復するのに必要なクレデンシャルに関して、IMDがKBANを送信するために、追加されたクレデンシャルが必要とされる場合がある。このようなクレデンシャルは、たとえば10秒といった延長された時間期間の間近接スイッチを起動することを含むことができる。ここで、エフェメラルKBANの回復は、同じ近接スイッチの起動の時に3秒間だけ認可することができる。
【0093】
IMD115に対するバックドア1610は、次のように具現化することができる。最初に、アリス115及びボブ110は、メッセージ1615及び1620を介してID(IDA、IDB)を交換することによって非セキュアチャネル120による通信セッションをオープンする。次に、ボブ110は、非セキュアチャネル120を介して、アリス115のバックドア回路部1610に電源を投入するようにアリス115に依頼する。このバックドア回路部1610は、通常ならば電源オフされ、たとえば磁石を接近させることのような、いずれの外部事象にも応答しない。たとえば、オフの時、バックドアは、「ロックされている」と言われる場合がある。バックドア回路部1610がオンになり、したがって、バックドア1610が「ロック解除」されると、ボブ110は、上述したように、磁気スイッチ又はホール効果センサ等の手段によってアリスのバックドアを物理的にオープンすることができる。好ましくは、バックドア1610が、所定のタイムアウト前に物理的にオープンされない場合、アリス115は、自身のバックドア回路部1610の電源を自動的に切り、バックドア1610を再ロックして、ホスト患者に接近することが攻撃者に可能である場合に攻撃を回避する。
【0094】
バックドア1610のオープンに続いて、アリス115は、自身のRF送信電力を削減し(それによって、信号の有効な送信範囲を削減し)、次いで、メッセージ1630によってボブ110へKBAN1625を送信する。アリス115は、この送信を行うと直ちに、自身のバックドア回路部1610の電源を切る。代表的な実施形態では、BANキーの要求は、バックドアプロトコルの開始に暗に示されているので、ボブ110によるBANキーの要求は必要ではない。
【0095】
図17は、図16の実施形態による緊急事態アクセスプロトコルの疑似プロトコル及びデータフローを示している。図17に示すように、ブリッジデバイス110は、バックドアセッション要求1710によってBANキーを取得することができる。バックドアセッション要求1710に続いて、2つのノードは、215において、セキュアにされていないテレメトリーセッションを確立する。次に、ブリッジデバイス110は、バックドア回路部1610に電源が投入されることを要求することができる(1715)。これに応答して、IMD115は、1720において、自身のバックドア回路部1610に電源を投入し、1725において、バックドア回路部1610に電源が投入されたことをブリッジデバイス110に確認する。次に、ブリッジデバイス110は、磁気スイッチ、ホール効果センサ、又は、バックドア1610を備える他の接近に基づくスイッチを接近させることによって、電源が投入されたバックドア1610を起動することができる。これは、1730によって示されている。
【0096】
バックドア1610がオープンすると(1730)、IMD115は、1735に示すように、バックドアが接近ノード110によってオープンされたことに気付き、その後、1625において、非セキュアテレメトリーチャネル120によってBANキーを送信する。特定の実施形態では、ブリッジデバイス110は、1730において、BANキーの受信の確認を送信することができるが、典型的な実施形態では、IMD115は、BANキーを送信するとバックドア1610の電源を直ちに切り、バックドアのオープンの別の要求1715が要求される。
【0097】
BAN内の所与のデバイス又はノードが、上記セキュリティパラメータに従って十分にセキュアなテレメトリーセッションを開始することなく別のノードへデータを送信することが好都合であるさまざまな状況が存在する。たとえば、BANは、セキュアな双方向リンクを確立できない送信のみのタイプのセンサである1つ又は複数のノードを含む場合がある。患者アクティベータ(patient activator)のような他のデバイスは、直ちに効果を与えることができるデータを送信することができる。したがって、本発明の実施形態は、データを含むウェイクアップパケットをセキュアにすること、及び、限られた量のセキュアなその後の通信を提供する。この文脈において、十分にセキュアなプロトコルは、一般的なセキュリティの確立と呼ばれ、あまり煩わしくないプロトコルは、ウェイクアップセキュリティ等と呼ばれる。
【0098】
図18は、BAN内の認可されたデバイス(たとえば、アリス115)によって生成されたようなセキュアにされたウェイクアップパケット2000をブロックの形態で示す図である。ウェイクアップパケット2000は、特にアリス115のID、パケットを受信するノードのID等のような、図示しない他のデータも含むことができる。簡潔に言えば、ウェイクアップパケットは、4バイトの暗号化されていないデータ2010、3バイトのMAC2020、及び3バイトのMCTR2030を含む。MCTRは、特定のデバイスに関連付けられた3バイトのメッセージカウンタ値である。このメッセージカウンタ値は、BANの各デバイス内に記憶され、その特定のデバイスが新しいセキュアなウェイクアップパケットを作成するごとにインクリメントされる。BAN内の各デバイスは、ネットワーク内のあらゆるデバイスのオンメモリに常にMCTRの値を維持する。新しいデバイスがBANに追加された場合、MCTRのすべての値がリセットされる。MCTR値は、ウェイクアップパケット2000では暗号化されない。BANの各デバイスは、MCTR値を維持することに加えて、目的とする受信者(複数可)として各デバイスを識別するのに使用される1バイト値であるレセプタビットマップも含む。
【0099】
MCTRの値の追跡と共にMAC2020の生成によって、セキュリティがプロトコルに提供される。認可された受信デバイス(たとえば、ボブ110)は、受信時に、MCR値2030を評価する。メッセージは、適切でない場合には無視される。適切である場合には、MCAは次に復号される。データ2010は、認証された場合には利用され、認証されない場合には、データは無視される。一実施形態では、ACK/NACKメッセージ以外のそれ以上の交換は可能ではない。別の実施形態では、ウェイクアップパケットが認証されると、各ノードは、一般的なセキュリティの開始を必要とすることなく、限られた量のデータ(たとえば、1フレーム)の送信を可能にされる。
【0100】
図19は、AESブロック暗号2090を実行することによる(及び、先に図示して説明したような)MAC2020の生成を示している。AESブロック暗号2090の「ノンス」レジスタには、データセット2045がロードされる。データセット2045は、送信者のID(IDsender)を最上位6バイトとして含み、送信者の現在のMCTR値(MCTRsender)を次の3バイトとして含む。次の4バイトは、送信されるデータであり、最後のバイトは、目的とする受信者(複数可)を示すレセプタビットマップである。BANキー2100も、AESブロック暗号2090に入力される。AESブロック暗号2090の結果の出力2110から、最下位3バイトのデータが、MCA2020として指定される。
【0101】
図20は、セキュアウェイクアップパケットを生成及び送信するためのプロセスのフローチャートである。この例では、「アリス」115は、「ボブ」110へデータパケットを通信することを意図している。アリス115は、4バイトのデータ(たとえば、アリスのセンサデータ、患者アクティベータのコマンド等)を生成又は獲得する(2200)。アリス115は、MCTRの現在の値をメモリから読み出し(2210)、図19に関して説明したようにAESブロック暗号2090をポピュレートする(2220)。MACが取得され、アリス115は、4バイトのデータ、MAC、及びMCTR値を含むウェイクアップパケット2000を構成する(2240)。好ましくは、BAN内の各デバイスは、許容可能な送信時間を指定している。アリス115は、適切な時間窓の期間中、構成されたメッセージを送信する(2250)。新しいセキュアウェイクアップメッセージが構成された時、アリス115は、MCTRをインクリメントする(2260)。
【0102】
メッセージが適切に受信されたと仮定すると、アリス115は、受信者からACKメッセージを受信することができる(2270)。ACKメッセージが、予測されるが受信されない場合、又は、他のエラーが発生した場合、アリス115は、新しいMACを生成せず、且つ、MCTRをインクリメントせずに同じメッセージを再送することができる(2250)。ACKがアリス115によって受信されると、ネイティブモードセッションが確立される(2280)。一実施形態では、これは、単に、アリスがデータの送信及び(適切な場合に)ACKメッセージの受信に成功したという点で、セッションが終了される(2290)ことを意味する。代替的な一構成では、ネイティブモードセッションを確立する(2280)ことによって、セッションに携わるBANの各デバイスは、たとえば1フレームといった限られた量のデータを送信することが可能になる。したがって、破線で示すように、アリス115は、さらなるフレームデータを送信する(2300)。ネイティブセッションの各デバイスは、送信することが可能になり、したがって、アリス115は、BANの別のデバイスからデータのフレームを受信することができる(2310)。ACK/NACKメッセージが可能になり(2320)、セッションは、その後、終了される。
【0103】
このように、ウェイクアップパケットがセキュアにされ、少量のデータが、一般的なセキュリティを確立せずに送信可能である。大量のデータを送信する必要がある場合、前述したように、一般的なセキュリティプロトコルが実施される。
【0104】
図21は、たとえばボブ110といった受信ノードが、可能性のあるセキュアにされたウェイクアップメッセージの受信時に用いるプロセスのフローチャートである。ボブ110は、メッセージを受信し(2400)、送信者を識別する(2410)。これは、たとえばアリス115への送信用に割り当てられたネットワークタイムスロットに基づいて行うこともできるし、他の識別手段に基づいて行うこともできる。いずれの場合も、ボブ110は、それが、その称するところ、メッセージを送信したアリス115であること、及び、ボブ110が目的とする受信者であることを識別する。ボブ110は、送信されたメッセージからMCTR値を抽出し(2420)、ボブ110がアリス115についてメモリに記憶しているMCTR値と比較する(2430)。ステップ2440において、受信されたMCTR値が、ボブ110がアリスについて記憶している値よりも小さい場合、メッセージは無視される(2450)。MCTR値が、記憶されている値よりも大きい場合、ボブ110は、受信されたMCTRが正しいと一時的に仮定し(2460)、受信された値の利用に進む。同様に、受信されたMCTR値が、記憶されている値に等しい場合、ボブ110は次のステップに進む。
【0105】
いずれの場合も、受信されたMCTRを利用して、アリス115と同じ方法で、AESブロック暗号2090によってMACが計算される。ボブ110によって計算されたMAC値は、ボブ110によって受信されたMAC値と比較される(2480)。これらのMAC値が一致しない場合、メッセージは無視される(2490)。これらのMAC値が一致する場合、ボブ110は、ネイティブモードに入り(2500)、それに従ってデータを受理する(2510)。ボブ110は、アリス115に関連したMCTR値を更新する(2515)。この結果、増分値が、アリス115によって送信されたMCTR値の有効に加えられる。オプションとして、ボブ110は、ACK/NACKメッセージをセキュアにして送信することができる(2520)。セッションは、その後、終了される(2530)。
【0106】
代替的な一実施形態では、ネイティブモードに入った(2500)各ノードは、さらなるデータのフレームを送信することができる。したがって、ボブ110は、さらなる量のデータをアリス115へ送信することができ(2540)、同様に、アリス115は、さらなるデータのフレームを送信することができる(2550)。セッションキーは、セッション間の新しさを保証するために、MAC出力の一部によって定められる。各ノードは、適切なACK/NACKメッセージ2520を送信することが可能になり、セッションは、その後、終了される(2530)。AES_out2110、BANキー2100がKsesの代わりに利用され、ノンスカウンタの最下位3バイトがMCTR値で開始され、次に最上位2バイトがMCTR値の最下位2バイトを利用し、最上位バイトが0で開始される点を除いて、パケット及びフレームは、一般的なセキュリティに関して、前述したようにセキュアにされる。
【0107】
送信前に、オプションとして、ユーザデータの4バイトにデータプライバシー(暗号化)を適用することができる。暗号化及びその後の解読は、(ちょうどネイティブモード通信について行われるように)これらの4バイトのユーザバイトを4バイトのキーストリームとXORすることによって実現することができる。4バイトのキーストリームは、2110の未使用バイトから得ることもできるし、アリス及びボブの双方に知られている異なるノンス値を使用したブロック暗号の別の実行から得ることもできる。
【0108】
本発明のさまざまな実施形態を説明してきたが、これらのさまざまな実施形態は、例示であって限定することを意図するものではない。開示された主題の複数の部分は、本発明の精神及び範囲内にあり、明示的に述べられていない実施形態において組み合わせることができる。
【技術分野】
【0001】
本発明は、データ通信設定においてセキュア通信を提供することに関し、特に、埋め込み可能医療デバイスと外部デバイス管理ハードウェアとの間のテレメトリーにおけるセキュリティ、埋め込み可能医療デバイスと他の埋め込み可能医療デバイスとの間のテレメトリーにおけるセキュリティ、及び外部医療デバイスと他の外部医療デバイスとの間のテレメトリーにおけるセキュリティの提供においてセキュアな通信を提供することに関する。
【背景技術】
【0002】
埋め込み可能医療デバイス(「IMD」)に関する技術の改良、特に、電力貯蔵、保全、及び小型化の分野におけるIMDに関する技術の改良によって、現代の埋め込み可能医療デバイスには無線電気通信機能を装備することが可能になっている。このような通信の利益には、たとえばバッテリー寿命の残量、発生した治療イベント数、又は特定の患者の健康データといった情報を送信するようにIMDに要求する能力、及び、治療法、治療頻度等を変更する命令をデバイスへ送信する能力が含まれる。これらの通信のすべては、患者の健康及び治療成果を最大にするすべての関係者側の必要性によって動機付けられており、この成功の判断基準の一環として、IMDを患者から除去しなければならない状況又は患者に関する何らかの侵襲的な処置が必要となる状況を回避するという要望によっても後押しされている。何らかの外科的又は侵襲的な処置に伴う危険に付随するものは、適用可能な標準治療(standard of care)に従ってこのような処置が行われるとき、このような処置に関連付けられるコストである。
【0003】
IMDを患者内に残している間、IMDと通信する利益を利用する際に、無線通信が、理想的には適しており、現在まで、IMDがその埋め込まれた状態にある間にIMDと情報を定期的に交換する唯一の実用的な方法である。したがって、通信が、IMD若しくは管理デバイスへ又はIMD若しくは管理デバイスから送信されているか否かにかかわらず、さらに、(たとえば、更新された命令がIMDへ送信されることとは対照的に)測定値が送信されているか否かにかかわらず、IMD管理のために電気通信を使用することには、IMDへの通信及びIMDからの通信、或いは、体外(すなわち、埋め込まれていない)IMD管理デバイス間の通信(本明細書では、交互に「テレメトリー」と総称する)が含まれ得る。
【0004】
テレメトリー、特にIMDテレメトリーは、病状又は他の健康状態の治療をより便利且つ効果的にすることができるが、テレメトリーを使用することによって、第三者がこのようなデバイスの管理に干渉できないように保証することが重要である。たとえば、盗聴のみであっても、たとえば医療保険のプライバシー及び説明責任に関する法律(「HIPAA」)といった特定のデータプライバシー制度のもとで保護され得る患者データを危険にさらすおそれがある。さらに危ういことには、管理デバイスから医療デバイスへのテレメトリー通信が干渉を受ける場合、意図されていた重要な療法が、埋め込みデバイスをホスティング(hosting)している患者に対して施されないおそれがあり、その結果、おそらく、治療効果は準最適なものになる。悪意のある第三者が、通信をインターセプトして、その通信を、デバイスへの偽の命令に置き換えた場合、又は、正当な命令であってもそれを繰り返して、正しくない療法若しくは過度の療法を埋め込み物に施させた場合には、埋め込み物のホストに対して悪影響を与えるおそれがある。
【0005】
現在まで、IMDテレメトリーの用途に適したほとんどの一般的な無線通信プロトコルは、方向性を有するプロトコルではなく、「ブロードキャスト」のプロトコルである。したがって、IMDがテレメトリー信号の範囲内にある(又は、通信がIMDから開始されたときは、受信デバイスがIMDの範囲内にある)場合、その信号へのアクセスが介護人及び/又は患者によって意図されたものであろうとなかろうと、その信号の範囲内にあるいずれの受信デバイスも、その信号にアクセスできると一般に想定することができる。
【0006】
IMDを伴う多くのテレメトリートランザクションの距離範囲が短いことによって、或る程度、或る種の物理レイヤ認証は達成されている。換言すれば、認可されていない関係者が送信デバイスの非常に近くにいなければならないことから、盗聴者(又は盗聴者のツール)の物理的な存在は、このような情報を正当に送信又は受信する関係者に視覚的にはっきりと見えることになるので、IMDに関係する通信へのほとんどの不正アクセスは実現不可能である。しかしながら、テレメトリーの適用の範囲は絶えず拡大しており、或る段階で、たとえば、患者が医師待合室に腰掛けている間、対象とする受信デバイスが完全に別の部屋にあっても、IMDにインターロゲートすることが考えられ得る。IMDと外部ハードウェアとの間の通信に必要な距離が大きくなるにつれて、侵入者又は盗聴者が、通信信号の受信、通信信号への干渉、さらには通信信号の操作を行う機会も多くなる。
【0007】
また、メッセージが「新鮮」であることも重要である。すなわち、メッセージが、近時において一度しか送信されていないことも重要である。たとえば、療法が適用されているにもかかわらず、患者の生理的状態の変化がないことを偽って示す診断センサからのデータの複製通信の結果、療法が過度になるか、又は付帯リスクを有する他の不要な医療介入が行われるおそれがある。メッセージプライバシー(すなわち、暗号化)に加えて、真のデータセキュリティには、メッセージの完全性及びメッセージの新しさ(message freshness)の双方も必要とされる。3つのすべてがなければ、悪意のある第三者によって悪用されるおそれのある隙間が存在するか、又はさらには、悪意がなくてもエラーを許容するおそれのある隙間が存在する。もちろん、このような悪用が起こり得るか否かは、特に設計の立場から関連はない。テレメトリーのセキュリティは、検討されているインターセプトのシナリオから生じる問題の実際の可能性に関係なく、あらゆる盗聴又はインターセプトを防止するように保証されるべきである。
【発明の概要】
【発明が解決しようとする課題】
【0008】
テレメトリーセキュリティに対するこれまでの手法は、たとえば、サーバベースの認証及びストレージを伴っていた。このように、永久的なキー情報が、機器上に記憶されることはなかった。しかしながら、この手法では、24時間利用可能なサーバへのセキュアな通信チャネルが必要とされる。また、この手法では、臨床医は、ボディエリアネットワーク(BAN)デバイス又はノードを管理するよりも前に、サーバシステムに対して認証を受ける必要がある。
【0009】
代替的に、バイオメトリックトークン(キーフォブ(key fob)等)が、IMDサポート機器をIMDに対して認証するのに使用されてきた。しかしながら、この手法によって認証キー(バイオメトリックキー及びIMDキーの双方)が喪失されやすく、トークンも、IMD管理を行うために提示する患者によって忘れられる可能性があり、これによって、不都合なことに、ケアの延期が必要となりがちである。パスワードによって増強されたトークンも、同様に、喪失されやすく、ノンコンプライアンス(トークンを予約に持ってこない、又は、認証情報を忘れる)を受けやすく、同様に、喪失又は盗難にあった場合に、危険にさらされやすかった。
【課題を解決するための手段】
【0010】
本発明は、特にIMD及び他の医療デバイスの管理に良く適したテレメトリー通信のセキュアシステムを提供する。IMDへの通信及びIMDからの通信、並びに、外部デバイスへの通信及び外部デバイスからの通信を保護するシステムが提供される。このシステムは、通信ノードへの通信及び通信ノードからの通信、特にIMDへの通信及びIMDからの通信が正当なものであることを保証するために、1つ又は複数の認証方法と共に、暗号化のシステムを実施する。特定の実施の形態では、たとえば、データ暗号化及びキー管理の厳格な手法によって、正当性が保証され、好ましくは、認証は、認証カード又はトークンを保持することに加えて、少なくとも1つのモダリティを使用してセキュアにされる。
【0011】
特定の実施の形態では、本発明は、近接性に依存した「バックドア」を提供する。当該バックドアは、特定の患者の医療デバイスのネットワーク内のノード間又はモジュール間の通信を可能にするのに通常必要とされる認証情報なしで任意のIMDへのアクセス及びその管理を可能にすることができる。医療デバイスのネットワークは、「ボディエリアネットワーク」又は「BAN」と呼ばれる。また、本発明は、いくつかの実施の形態では、認証が、認証情報を実際に送信する(もちろん、認証情報が危険にさらされやすくなるおそれがある)ことなく実行されるという点で、厳密認証、すなわち、同一性のゼロ知識証明も提供する。
【0012】
患者及び認可された介護人に反する興味又は動機を有する、認可されていない第三者は、盗聴者の素性、ロケーション、又は動機にかかわらず、本明細書では、「攻撃者」と総称される。攻撃者は、通信を実際に混乱させることなく単に盗聴することを望む場合もあるし、場合によっては患者に関する保護されている健康情報を取得することを望む場合もあるし、BANノード製造者に独自のBANノードの振る舞いの態様を知りたい場合もある。これらの目的のために、本発明の実施の形態は、暗号の使用を通じてメッセージプライバシー(すなわち、暗号化)を提供する。
【0013】
十分な電気通信能力及び計算能力を有する攻撃者は、BANのノード間のすべての通信をインターセプトして制御し、BANのノード間のメッセージの削除、変更、複製、又は別の変更のいずれかを行うことができる場合があることも考えられ得る。本発明の実施の形態は、たとえばIMDへの命令及びIMDによって診断ノードに提供される情報が正当なものであることを保証するメッセージ認証プロトコルの使用を通じて、メッセージの完全性(すなわち、メッセージ認証)を提供する。同様に、新しく生成されたセッションキー及びトークンベースのシステムを通じて、又は、本発明の代替的な実施の形態ではタイムスタンプの使用を通じて、メッセージの新しさを保証することもできる。本発明は、特定の実施の形態では、メッセージの完全性(送信されたメッセージが、それらのメッセージが対象とする受信者によって、変更されていない状態で受信される)及びメッセージの新しさ(メッセージが、タイムリーに受信され、且つ、攻撃者によって送信された、前に送信されたメッセージのコピーではない)という補助的な要請に基づいて、メッセージが、秘密キーを有しない者からセキュアに維持されることを可能にする。
【0014】
本発明の実施の形態によって与えられる保護にもかかわらず、通信の保護は、好ましくは、最適な患者ケアという全体的な原則によって動機づけられ、且つ、必要な場合には、その全体的な原則を補助する。したがって、本発明の特定の実施の形態は、特定の緊急事態又は他の強制的な状況において、健康への不利な影響を防ぐために、緊急事態介護人がデバイスに対して自身を認証する時間又は証明書を有するか否かにかかわらず、この実施態様の特定のセキュリティの機能を迂回するデバイスに対して、「バックドア」によるデバイスとの通信を許可することができる。
【0015】
本発明の実施の形態によるセキュリティメカニズム及びプロトコルは、セキュリティサービスがセットアップされて、通信デバイスのうちの少なくとも1つに関して(迂回されるのではなく)有効にされていることを必要とし、ブロック暗号の一実施態様の使用をさらに必要とする場合がある。他の実施の形態では、本発明を実施するBANのすべての通信デバイスは、同一のボディエリアネットワークキーKBANを共有し、新しい各テレメトリーセッションの開始時に新しいセッションキーKsesを協同して生成する。最初に、このようなデバイス識別情報交換が、通信セッションをオープンするために必要とされるセキュアにされていない交換を介して行われる。着信するパケット及び発信するパケットの双方のパケット長は、好ましくは、セッションの継続時間の間固定され、指定された長さに合致しないパケットは、好ましくは、ネットワークの物理レイヤにおいて拒絶される。
【図面の簡単な説明】
【0016】
【図1】本発明の実施形態によるボディエリアネットワークの一般的なネットワークトポロジを示す図である。
【図2】本発明の実施形態によるネットワークノード間のネットワークキーのセキュアな送信のプロトコルを示す図である。
【図3】ネットワークキー送信プロトコルの一代替的な実施形態を示す図である。
【図4】本発明の一実施形態による2つの体外デバイスを有するボディエリアネットワークのトポグラフィを示す図である。
【図5】本発明によるネットワークキー伝播プロトコルの一代替的な実施形態を示す図である。
【図6】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図7】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図8】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図9】本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図である。
【図10】本発明の実施形態によるセッションキーの生成のデータフロー図である。
【図11】本発明の実施形態によるメッセージのCTRモードの暗号化及び解読のデータフローを示す図である。
【図12】本発明の実施形態によるノンスレジスタのデータ構造を示す図である。
【図13】本発明の一実施形態によるテレメトリーパケットのデータ構造を示す図である。
【図14】本発明の一実施形態によるメッセージの暗号化/解読及び認証のデータフローを示す図である。
【図15】本発明の一実施形態による概略的なハードウェアアーキテクチャを示す図である。
【図16】本発明の一実施形態の緊急事態アクセスプロトコルのネットワークトポグラフィを示す図である。
【図17】本発明の一実施形態による緊急事態アクセスプロトコルの疑似プロトコル及びデータフローを示す図である。
【図18】セキュアにされたウェイクアップパケットのグラフィカル表現を示す図である。
【図19】セキュアにされたウェイクアップパケットのMACの生成を示すブロック図である。
【図20】セキュアにされたウェイクアップパケットを送受信するプロセスのフローチャートである。
【図21】セキュアにされたウェイクアップパケットを送受信するプロセスのフローチャートである。
【発明を実施するための形態】
【0017】
本発明による無線ネットワークの一セキュリティ実施様態の実施形態は、さまざまな層のセキュリティ又はさまざまな度合いの多要素認証を実施することができる。本明細書で検討されるこれらのセキュリティの層は、たとえば、通常、入出力ファシリティ(たとえば、ポート)、1つ又は複数の中央処理装置(チップ等)、及び複数のメモリロケーションを有するスマートカード、すなわち小さなプラスチックカード又はフォブによって実施することができる。スマートカード技術は、「ユーザが有する物(something the user has)」レベルのセキュリティとして、単独で機能することによるか、又は、たとえば「ユーザが知っている物(something the user knows)」(すなわち、パスワード)若しくは「ユーザである物(something the user is)」(すなわち、ユーザに関連付けられたバイオメトリックパラメータ)と結び付けられた多要素認証のコンポーネントとして機能することによるかのいずれかで、セキュリティを実施するのに使用することができる。本発明に従って実施されるようなカードは、好ましくは、時に「プロセッサカード」又は「マイクロプロセッサ多機能カード」と呼ばれるタイプのメモリ、少なくとも1つのプロセッサ、及びデータ処理機能を有する。これらのカードは、好ましくは、国際標準化機構の、電気接点を有する集積回路カード(Integrated Circuit Cards with Electrical Contact)の標準規格ISO7816で指定されたタイプのものとすることができ、この仮定は、本明細書の代表的な実施形態に関してなされる。特定の実施形態では、特定の患者認証は、スマートカードデバイスを介して管理されるが、しかしながら、IMDのデバイスキーは、好ましくは、暗号化されていない形ではスマートカード上に記憶されない。
【0018】
本発明のいくつかの実施形態は、本明細書で、テレメトリー通信のタイムライン、すなわち、テレメトリー通信の「新しさ」として知られているものの確証を提供する。たとえば、一度正当に規制することができる治療法(therapeutic modality)は、悪意のある第三者によって繰り返し可能なものであってはならない。第三者が、単なる暗号化のみに基づいた通信を盗聴できる場合、その第三者は、その命令を反復して繰り返すことができる。悪意のある第三者が、たとえIMDへのメッセージの内容を知らない場合であっても、第三者は、このメッセージを繰り返すことが患者のためにならないことを合理的に予測することができる。第三者は、十分な試行錯誤によって、メッセージの内容を完全に無視してでも危険な影響を実施するおそれがある。したがって、本発明の実施形態は、メッセージの新しさを保証してこのような攻撃を防止するシステムも達成する。本明細書では、「暗号化された」及び「セキュアにされた」という用語は、一般に同義ではないことが理解されよう。暗号化されたメッセージは、プライバシー(すなわち、機密性)のみが保証されているメッセージである。セキュアにされたメッセージは、プライバシー、完全性、新しさ、及び同一性が保証されているメッセージである。この後者の概念は、ユーザ認証(メッセージが、それを明らかに送信した人(又はノード)から実際に来たものである)及びメッセージ認証(メッセージが、送信者によって送信された形態を有し、且つ、正当な送信者によって意図された時刻にのみに送信されたものであり、それ以外の時に送信されていないもの)の双方の認証の概念を組み込んでいる。
【0019】
本明細書では、通信を送信又は受信するノード(すなわち、医療デバイスの文脈では、埋め込まれたデバイス若しくは外部のデバイス、センサ、プログラマ、モニタ、又はBAN内の他の器具)を暗号学の慣習に従って「アリス(Alice)」又は「ボブ(Bob)」と呼ぶ場合がある。デバイスのユーザ又は患者について明示的に述べていない限り(たとえば、アリスの患者又は「ホスト」、すなわち、アリスデバイスを埋め込まれている患者)、アリス又はボブはデバイス又はノードを指す。また、特定の実施形態では、スマートカードが、信頼される第三者認証局に通常関連付けられているいくつかの機能を実行でき、カードの保持者による(たとえば、保持者のパスワード及びバイオメトリック認証による)認証時に、カードが、システム内の信頼される関係者とみなされ、カードの保持者のIMDに対応するIMDキーを保持するという点で、スマートカード(スマートカードリーダ/ライタに挿入されている時のスマートカードを含む)という用語を使用する。システムの認可されたアドミニストレータ又はユーザがメッセージの送信又は受信を可能にすることを意図していない第三者(又は、このような人物の制御下にあるデバイス)は、一般に、「攻撃者」と呼ばれる。また、暗号学と一致して、ビット単位の排他的論理和演算(すなわち、ビット単位のモジュロ2加算)については、シンボル
【0020】
【数1】
又は「XOR」を使用し、連結については、シンボル|又は‖を使用する。本明細書ではしばしば、ソフトウェア又はハードウェアが、感覚のあるエージェントであることを示唆しているように思われるよう、特定のソフトウェアプロセス又はハードウェアコンポーネントは、特定の情報を「知っている」、「要求する」、「予測する」、若しくは「送信する」、又は、特定の機能若しくはアクティビティを実行する(たとえば「計算する」)として説明される。このような擬人化した言及は、問題となっているハードウェア又はソフトウェアが意識、動機、又は知性(人工的又はそれ以外)を有することを示すか又は暗に意味することを意図するものではなく、これらの表現は、一般に、人間であろうが、又は他のハードウェア若しくはソフトウェアのプロセス若しくはコンポーネントであろうが、それによってプログラミング又は命令された通りにソフトウェア又はハードウェアが自動的に挙動することを示すのに使用されることが、当業者には理解されよう。たとえば、特定の値を「予測する」と言われるソフトウェアプロセスは、規則に従わない引数がエラーハンドリングコードによって処理される、特定の変数タイプ又は値であるように指定された引数を有するソフトウェア関数を指す場合がある。
【0021】
図1は、本発明の実施形態によるボディエリアネットワークのトポグラフィを示している。プログラマ「ボブ」110及びIMD「アリス」115から成る一例示のボディエリアネットワーク(BAN)100が示されている。これらの2つのノード、アリス及びボブは、非セキュアチャネル120を介して非セキュアテレメトリーセッション117をすでに確立している。プログラマ110は、認証デバイス130との(たとえば、有線接続125を介した)セキュア通信用に接続されている。認証デバイス130は、ここでは、バイオメトリック入力窓135を有するスマートカードリーダ/ライタである。これらの実施形態によれば、本明細書でより十分に説明するように、各場合において、患者によって携行されてIMD管理で使用されるスマートカードに基づき、セキュリティの増大する順に、以下の情報を認証データとして使用することができる。
【0022】
本発明の典型的な実施形態では、最低でも、デバイスの患者(又は、適用可能な場合には、他の認可されたアドミニストレータ)が、KdevA(デバイス115用のキー)、IDA(デバイス115用の識別番号)として注記される情報を含むスマートカード140(患者が有する物)を提示する。さらなるセキュリティは、患者のスマートカード140にパスワードKPW150を加えたもの、すなわち、本明細書でE(KdevA;KPW)、IDAとして注記されるものを使用することによって提供することができる。パスワードKPW150(患者が有する物であり、且つ、患者が知っている物)も、スマートカード素子145上に記憶されている。E(KdevA;KPW)は、すなわち、デバイスキーKdevAがパスワードKPW(すなわち「パスワードキー」)によって暗号化されたものである。ここで、E(x;y)は、キー「y」を使用して「x」をセキュアにするのに使用される暗号化の関数を示し、別の言い方をすれば、特定の暗号文=E(平文;キー)を示す。特定の実施形態では、ユーザの認証は、患者のスマートカード140又は非電子的な情報カードに、パスワードKPW150を加え、バイオメトリックスキャンKbio、すなわち「バイオメトリックキー」155(患者が有する物であり、知っている物であり、且つ、患者である物)を加えたもの、すなわち、本明細書でE(E(KdevA;KPW);KbiО)、IDAとして注記されるもの、によって実行される。
【0023】
図1に示すように、アリスの患者(図示せず)には、スマートカードデバイス140が提供されている。スマートカードデバイス140は、メモリ、ファームウェア、ローカルストレージ、及び/又は組み合わせ素子145を含む。アリスの患者は、スマートカード140をパスワード150及び患者のバイオメトリック特徴で初期化している。患者のバイオメトリック特徴は、ここでは、指紋155である。
【0024】
本発明の特定の実施形態では、スマートカード140、又は、スマートカードリーダ130若しくはオンボードプログラマノード110に取って代わる或るインターフェースとインターフェースするUSB/Firewire(登録商標)キーフォブを利用して、本明細書のセキュリティ方式の態様を実施することができる。特定の実施形態では、このようなスマートカード又はキーフォブは、すでに実施され且つスマートカード140又はキーフォブに実装された、特定の暗号及びメッセージ認証コード(MAC)、たとえばチップハードウェアに実施された暗号及びメッセージ認証コード(MAC)、又は代替的に、ROM又はフラッシュメモリに記憶されている暗号及びメッセージ認証コード(MAC)を有し、これらは、スマートカード又はキーフォブ上の素子145として抽象的に示されている。
【0025】
IMDを含むBANをセットアップ又は初期化して、上述したプロトコルに従ってBANキーを伝播するときに、まず、患者は、自身のIMDの認証マテリアル(たとえば、スマートカード140)をブリッジデバイス110に提供する。このスマートカード140は、たとえば、IMD115と共に発行する(且つ、術後に患者に与える)こともできるし、前もって存在する患者のスマートカードデバイス140上に必要な情報を入力することもできる。特定の実施形態では、患者は、自身のスマートカード140を(ここでは、インターフェースデバイス130を介して)ブリッジデバイス110内に挿入した後、自身のパーソナルパスワードKpw150をブリッジデバイス110内に入力するように促され(プログラマ110に実装されて存在するGUIを介して、又は、適切な別個のインターフェースを介して、理想的には、患者自身のパーソナルメモリから入力される)、さらに、指紋155又は網膜スキャン等、患者の一意のバイオメトリック識別子から導出された値であるバイオメトリックキーKbioを提示する。ブリッジデバイス110は、好ましくは、Kpw150及び/又はKbio155をしばらくの間記憶することなく、スマートカードリーダ130を介してパーソナルパスワードKpw150及びバイオメトリックキーKbio155をスマートカード140に引き渡す。スマートカード140は、Kpw150及びKbio155を使用して、KdevA170を解読することができる(すなわち、スマートカードは、Kpw150及びKbio155を使用して、KdevA170を求めることができる)。特定の実施形態では、認証が完了するまで、暗号化されていないKdevA170が、当初、スマートカード140のRAM若しくは他のメモリ又はストレージ素子145に存在する場合がある。認証が行われると、好ましくは、KdevA170は、その後、削除され、KdevA170の暗号化された形態に置き換えられる。代替的に、スマートカード140の代わりに非電子的な認証マテリアルを、IMDのKdevAがテキスト又はバーコードの形態で印刷された非電子的カードの形態でブリッジデバイス110に提供することができる。IMDのKdevAは、BANによって、図3のプロトコルに従い伝播される。
【0026】
本発明のこの実施形態のキー配信プロトコルは、IMDからブリッジデバイスへの現在のBANキーのセキュア無線配信、及びブリッジデバイスからIMDへの現在のBANキーのセキュア無線配信を、もっぱら患者のBAN内において提供する。このプロトコルは、さらに、BANキーそのものだけでなく、送信者及び受信者の認証及び検証も実行する。その上、本発明は、スマートカード140が通信に利用可能であることが必要条件であるために、攻撃者が、攻撃者のBAN内へデバイスを組み入れたり、BANキーの配信中にデバイスになりすましたり、配信プロセスそのものを盗聴したり、以前の通信の複製に基づいて反復攻撃を企てたりすることも防止する。好ましくは、KdevAキーは、ブリッジデバイス110上ではなく、スマートカード140上にセキュアに留まる。したがって、たとえブリッジデバイス110が攻撃者に盗まれた場合であっても、攻撃者は、デバイスキーKdevAを知ることは決してない。本明細書で一般にKdevX(KdevA170等)として示されるデバイスキーは、好ましくは、アリス115等の埋め込みデバイスに関しては工場でプログラミングされ、ブリッジデバイス110、スマートローカルデバイス、及びダムローカル(dumb-local)デバイスに関しても同様に工場でプログラミングすることができる。これらの後者のデバイスは、外部でラベル付けされたKdevを有することもできるし、必要に応じて生成されて割り当てられた乱数Kdevを有することもできる。ダムローカルデバイスの限界のために(特に、ダムローカルデバイスがヒューマンインターフェースを有しないという点で)、このようなデバイスは、好ましくは、工場で割り当てられて外部でラベル付けされたKdevXを有する。代替的に、本明細書で説明する、工場で割り当てられる実施態様又は工場でプログラミングされる実施態様のいずれも、通常の「ファームウェアアップグレード」手順を介したフラッシュメモリの更新に付随して供給されるKdevX又は類似の情報を代わりに有することができる。本明細書では、異なるキー値及び他の変数を指定するのに、次の省略形が使用される。KdevXは、Xの名称を有する指定されたノードの秘密デバイスキーである。KBANは、現在のBANセッションキーである。IDXは、デバイスIDである。ここで、Xは、指定されたノードの名称である。
【0027】
本発明の代表的な実施形態におけるさまざまなプライバシー及びメッセージの完全性の機能を実施するのに適したセキュリティ方式は、次世代暗号化標準(「AES」)である。AESは、Rinjdaelと類似しているが、固定のブロックサイズ及びキーサイズを有し、米国連邦政府及び通信業界によって一般に使用される標準である。AESは、本明細書でさらに説明するように、構成CTR+CBC−MACで適切に使用することができる。
【0028】
BANキーは、特定のキーの実施形態では、体内デバイス、特にIMD115等の埋め込み物から、BAN100の他の体外「ブリッジ」デバイス110へセキュアに通信される。また、BANキーは、BAN100のブリッジデバイス110から埋め込み物115へもセキュアに通信されるべきである。本発明の実施形態によれば、2つの体外デバイス110間の通信又は体内デバイス115と体外デバイス110との間の通信を提供する基礎となる通信セッション120が存在する。この通信セッション120は、セキュアにされていない場合がある。セキュア通信(このようなセキュリティは、暗号化だけでなく完全性及び新しさの確証も含む)は、埋め込まれたデバイス115によって保持された認証マテリアルによって提供される。埋め込みデバイス115は、BANキーをブリッジデバイス110へ配信する。ブリッジデバイス110は、適切な認証マテリアル160と、乱数生成ファシリティ165等のプロセスとを所有する。埋め込まれたデバイス115は、適切な認証マテリアル160とプロセスとを所有するブリッジデバイス110からBANキーを受信することもできる。本発明の実施形態によれば、以下のプロトコルによって、本発明のセキュリティプロトコルを使用できるブリッジデバイスへのBANキーのセキュアな無線配信が可能になる。
【0029】
図2は、本発明の特定の実施形態によるネットワークノード間のネットワークキーのセキュアな送信のプロトコルを示している。図2に示すように、埋め込みアリス115は、ボブ110がBANキーを確立又は取得することを望むことをアリス115に示す「BANキーを配信する(deliver BAN-key)」セッション要求210をブリッジデバイスのボブ110から受信する。アリス115及びボブ110は、最初に、テレメトリック通信セッション215を開始しなければならない。このテレメトリック通信セッションでは、アリス115は、新しく生成された乱数QAをボブ110に提供する。次に、アリス115の人間のアドミニストレータ(たとえば、アリスデバイス115が埋め込まれた患者)は、スマートカードリーダを通じて電子認証マテリアル(EAM)、たとえばスマートカード140をボブ110に提示しなければならない。この認証マテリアルは、通常、スマートカード140又はUSB/IEEE1394(「Firewire(登録商標)」)フォブの形態を取り、図1のアリスのデバイスキー170(オプションとして暗号化されている)KdevA、175、アリスのID番号IDA、及び使用されるブロック暗号(たとえば、128ビットAES)を実施できるオンボードマイクロプロセッサを含むものである。EAM140上に存在するKdevA170のコピーも暗号化される場合、アリスの人間のオペレータは、PIN又はパスワード入力及びオプションのバイオメトリックデータ155等、デバイスキー170を解読するのに必要な秘密情報も、たとえばキーパッド入力(図示せず)を介してボブ110に手動で与えるべきである。これらのステップが完了すると、ボブ110は、メッセージ220を準備してEAM140へ配信する。メッセージ220は、次のもの、すなわち、電子認証マテリアル140上に存在するKdevA170のコピーを解読するのに必要なQA、IDA、IDB、及び(必要に応じて)秘密情報225(PW150及びバイオメトリックデータ155)を含む。この即座のトランザクションに続いて、ボブ110は、好ましくは、PW150のあらゆるローカルな記録及びあらゆるバイオメトリック情報155を削除する。EAM140は、以下で詳細に説明するように、その組み込まれたマイクロプロセッサ180を使用して、2つの128ビット乱数Q1及びQ2を生成する。次に、EAM140は、キー入力としてKdevA170を使用し、ノンスとしてQAを使用して、アリス115への、ブロック暗号でセキュアにされたメッセージ230を準備する。このセキュアにされたメッセージ230は、暗号化されたペイロードとしてIDA、IDB、Q1、及びQ2を含む。次に、EAM140は、このセキュアにされたメッセージ230を、Q1及びQ2の「セキュアにされていない」(すなわち、平文)コピーと共にボブ110へ渡す。次に、ボブ110は、EAM140からアリス115への配達人として機能して、EAM140のセキュアにされたメッセージ230をメッセージ235としてアリスへ送信し、Q1及びQ2のセキュアにされていないコピーを一時的に記憶する。アリス115が、ボブのテレメトリー送信235を経由してEAMのメッセージ230を受信すると、アリス115は、メッセージ235を即座に解読し、自身のID175が正確であることを検証し、次いで、ボブのID(図1の182)を検証する。アリスが受信したメッセージ235が、その完全性チェックに合格した場合、メッセージ235がKdevA170及びQAを使用してセキュアにされたものであるという理由で、メッセージ235は真正なもの(ボブ110を介してアリスの患者のEAM140からのもの)及び新鮮なものの双方であるということが、アリス115に保証される。
【0030】
アリス115が、BANキーをボブ110へ配信する場合、アリス115は、Q1及び
【0031】
【数2】
から成るセキュアにされていないメッセージ240を準備して、ボブ110へ送信することができる。ここで、KBANは、現在のBAN100のキーである。ボブ110は、アリスのメッセージ240を受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証し、自身のローカルなQ2を、受信された
【0032】
【数3】
とXORし、その結果はKBANになる。
【0033】
他方、アリス115が、ボブ110からBANキーを受信する場合、アリス115は、Q1から成る、セキュアにされていないメッセージ245を準備してボブ110へ送信することができる。ボブ110は、アリスのメッセージ245を受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証する。次に、ボブ110は、
【0034】
【数4】
を含む、セキュアにされていないメッセージ250を準備してアリス115へ送信することができる。アリス115は、ボブのメッセージ250を受信すると、自身のローカルなQ2を、受信されたメッセージ250の
【0035】
【数5】
とXORし、その結果はKBANになる。
【0036】
図3は、図1及び図2のEAM140以外の認証アイテムを使用する、ボディエリアネットワークキー送信プロトコルの代替的な一実施形態を示している。この実施形態によれば、あまり高度でない非電子的認証マテリアルを使用するあまりセキュアでないプロトコルが次のように進行し得る。すなわち、プロトコル300のこの実施形態によれば、ボブ110は、すでに述べたように「BANキーを配信する」セッション要求210を開始することができ、埋め込み物115であるアリスは、「BANキーを配信する」セッション要求210を、ボブ110であるブリッジデバイスから受信する。アリス115及びボブ110は、最初に、テレメトリック通信セッション215を開始しなければならない。このテレメトリック通信セッションでは、アリス115は、新しく生成された乱数QAをボブ110に提供する。次に、アリス115の人間のアドミニストレータ(たとえば、アリスデバイスが埋め込まれた患者)は、310において、KdevA170及びIDA175から成る非電子的な認証マテリアルをボブ110に提示することができる。この認証マテリアルは、たとえば、英数字文字で又はバーコードとして認証カード上に印刷して、光学式スキャナリーダデバイスで読み出すことができる。この光学式スキャナリーダデバイスは、たとえば、ボブの内部のもの又はボブに不可欠なものとすることができるか、又は代替的に、ボブと信号通信する(たとえば、ボブとネットワーク接続された)別個のデバイスとすることができる。代替的に、認証マテリアルは、人間のアドミニストレータが、GUIを介して又はキーパッドに認証マテリアルをタイプ入力することによって、ブリッジデバイスのボブ110内へ手動で直接入力することもできる。次に、ボブ110は、(本明細書で説明したように、又は他の手段によって)自身のブロック暗号を使用して、上述したような2つの128ビット乱数Q1及びQ2を生成する。次に、ボブ110は、キー入力としてKdevA170を使用し、ノンスとしてQAを使用して、アリス115への、ブロック暗号でセキュアにされたメッセージ235を準備する。このセキュアにされたメッセージ235は、IDA175、IDB182、Q1、及びQ2を含む。次に、ボブ110は、このセキュアにされたメッセージ235をアリス115へ送信し、Q1及びQ2のセキュアにされていないコピーを一時的に記憶する。アリス115が、ボブのメッセージ235を受信すると、アリス115は、そのメッセージを即座に解読し、自身のID175が正確であることを検証し、次いで、ボブのID182を検証する。アリスが受信したメッセージ235が、その完全性チェックに合格した場合、メッセージ235がKdevA175及びQAを使用してセキュアにされたものであるという理由で、メッセージ235は真正なもの(すなわち、ボブ110からのもの)及び新鮮なものの双方であるということが、アリス115に保証される。他のBANキーの生成及び送信は、上述したように行われる。
【0037】
アリス115が、BANキーをボブ110へ配信する場合、アリス115は、Q1及び
【0038】
【数6】
から成るセキュアにされていないメッセージ240を準備して、ボブ110へ送信することができる。ここで、KBANは、現在のBAN100のキーである。ボブ110は、アリスのメッセージ240を受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証し、自身のローカルなQ2を、受信された
【0039】
【数7】
とXORし、その結果はKBANになる。他方、アリス115が、ボブ110からBANキーを受信することを望む場合、アリス115は、Q1から成る、セキュアにされていないメッセージを準備してボブ110へ送信することができる。ボブ110は、アリスのメッセージを受信すると、自身のローカルなQ1が、アリスが送信したQ1と一致する(それによって、アリス115がEAM140の「所有者」であること、すなわち、EAM140がアリスの秘密デバイスキーKdevA170に対応することがボブ110に保証される)ことを検証する。次に、ボブ110は、
【0040】
【数8】
を含む、セキュアにされていないメッセージを準備してアリスへ送信する。アリスは、ボブのメッセージを受信すると、自身のローカルなQ2を、受信された
【0041】
【数9】
とXORし、その結果はKBANになる。
【0042】
本発明の実施形態は、送受信機モジュールが属するデバイスのクラスに依存して、製造者が、そのモジュールを少なくとも4つの永久的な状態のうちの1つにすることができるシステムを提供する。これらのクラスは、一般に、(1)埋め込みデバイス(IMD)、(2)ブリッジデバイス、(3)スマートローカルデバイス、及び(4)ダムローカルデバイスとしてカテゴリー化することができる。スマートローカルデバイスは、ユーザ入力用のファシリティ(たとえば、外部の薬ポンプ、外部の血糖計コントローラ、及び埋め込みコントローラ)を含む広範囲のグラフィカルユーザインターフェース(GUI)を有するデバイスである。ブリッジデバイスは、広範囲のGUI及びユーザ入力を有し、さらに、埋め込みデバイス(たとえば、医師プログラマ、並びに、より機能豊富で強力な埋め込みコントローラ及びホームモニタ)に対して自身を認証することができる。ダムローカルデバイスは、GUIもユーザ入力も有しないデバイスである。ただし、或る限られたユーザディスプレイが存在する場合がある。ダムローカルデバイスには、キーフォブ、外部の血糖計、コムリンク、並びに特定の限られた能力の患者コントローラ及びホームモニタが含まれ得る。
【0043】
BANのさまざまなノードを構成するデバイスのタイプにかかわらず、これらのデバイスが、必要な最小の計算資源とセキュアに通信するために、すべてのデバイスは、好ましくは、BANキーKBANを共有する。たとえば、本発明によれば、ブリッジデバイス及び/又はスマートローカルデバイスは、セッション単位で、他のブリッジデバイス、スマートローカルデバイス、ダムローカルデバイス、及び埋め込まれたデバイスへ正当なBANキーを配信することができ、具体的には、埋め込みデバイスは、BANの認可されたブリッジデバイス(たとえば、プログラマ機器)へ現在のBANキーをセキュアに配信するか、又は、認可されたブリッジデバイス(たとえば、プログラマ機器)から現在のBANキーをセキュアに受信する。本発明の特定の実施形態では、BANキーの配信中のデバイスなりすまし、BANキー配信の盗聴、及び/又は反射攻撃(すなわち、実質的なメッセージの内容の部分的な理解若しくは推測のみを含むか、又は、そのような理解も含まない、盗聴された通信の単なる繰り返し)を防止するか又は妨げるキー配信プロトコルが使用される。体外(すなわち、身体の外部)のBANデバイスは、IMDの秘密デバイスキーを決して受信しないので、プログラマ等の患者のBANのデバイスは、IMDの一意のデバイスキーを知ることは決してなく、一意のデバイスキーは、常に秘密の状態に維持されて、通信されず、たとえ、そのIMDのBANで使用される体外機器が喪失又は盗難されても、存在するセッション認証情報は使用されていないものとなり、IMDの秘密キーは、体外機器上に決して記憶されていないので、IMDは危険にさらされない。BANキーは、好ましくは、BANの体外デバイス(たとえば、ブリッジデバイス及びスマートローカルデバイス)からBANの他の体外デバイス(たとえば、ブリッジデバイス、スマートローカルデバイス、及びダムローカルデバイス)へセキュアに通信される。これを行うために、本発明の特定の実施形態では、基礎となる無線通信方法の標準的なハンドシェイク、セッション要求、又は他のあらかじめ確立されたプロトコルに従って、セキュアにされていないテレメトリーセッションが確立される。BANキーを受信するデバイスは、人間によって管理されている場合、BANキーを配信するデバイスを操作する人間がBANキー受信者の認証を検証できるようにするために、その人間に、受信デバイスのデバイスキーKdev及び受信デバイスのID番号を視覚的に提供できなければならない。特にデバイスキーKdevは、好ましくは、最初のデバイスが通過するすべてのデバイスから一意であるわけではない場合でも、少なくともBANに組み込まれる他のデバイスに対して一意である。また、特定の実施形態では、スマートローカルデバイス及びブリッジデバイスは、自身に提供されているかも知れないBANキーを、BANの他の適任のデバイス(すべてのダムローカルデバイス及び/又は他のスマートローカルデバイス及び/又は他のブリッジデバイス)へセキュアに配信するのに使用される。本発明の代表的な実施形態によれば、BANキーは、BANの無線接続機能を介してセキュアに提供される。
【0044】
図4は、本発明の一実施形態による2つの体外デバイスを有するボディエリアネットワーク400を示している。この実施形態では、前の例のようなIMDではなく、スマートローカルデバイス415又はブリッジデバイス420等の体外デバイスへBANキーを配信する体外デバイス(アリス)410が、BANキー配信要求を開始することができる。前のBANキー伝播の例と同様に、テレメトリック通信セッションが、非セキュアチャネル120を介して(たとえば、ハンドシェイク又は他のあらかじめ確立された互換性のあるセッションプロトコルによって)、BANキーを受信するデバイス(ボブ)110と確立され、ボブ110は、(ボブデバイス110のメモリ、ストレージ、又は他のハードウェア若しくはソフトウェアの素子435に実装されたRNGファシリティによって生成される)新しく生成された乱数QBを、メッセージ425を介してアリス410へ送信する必要がある。アリス410及びボブ110が、本発明に従って、非セキュアチャネル120を介して別の方法でテレメトリーセッションを確立すると、アリス410(又は、BANキー交換セッションを管理する人間)は、ボブのデバイスキーKdevB430を視覚的に獲得することできる(且つ、GUI又は他の入力を介してアリス410に入力することができる)。デバイスキーKdevB430は、たとえば、ボブの外装に貼付されたラベルに印刷することもできるし、ボブの電子GUI上に表示することもでき、また、図4に抽象的に示すオンボードメモリ又はローカルストレージ素子435にも記憶される。アリス及びボブは、通常、テレメトリーセッションの最初の時点でID(IDA及びIDB)を交換し、通信445及び450を介してそれらの各IDを他の関係者に提供する。ほとんどの場合に、アリス410は、ボブ110のポーリング又はインターロゲートを行い、メッセージ445を介してボブの識別番号(IDB)440を取得することもできる。
【0045】
アリスは、IDB440及びKdevB430を獲得すると、オンボードメモリ又はセキュアストレージ455に記憶されているIDA(アリスのID番号)及びBANキーにアクセスすることができ、IDA、IDB及び現在のBANキーKBANを含むメッセージ460を準備して、ボブへ送信することができる。IDA、IDB及び現在のBANキーKBANはすべて、(以下で説明するように、ブロック暗号へのノンス入力としてのQBと共に)ブロック暗号へのキー入力としてボブのデバイスキーKdevB430を使用してセキュアにされる。ボブ110は、アリスの送信460を受信すると、KdevB430を使用してアリスのメッセージ460を解読して検証し、受信されたIDA、IDB、及びKBANをログ記録する。次に、ボブは、IDA、IDBを含むメッセージ465を準備して、アリス410へ送信する。IDA、IDBはすべて、KBAN及びQB+1(すなわち、QBをインクリメントしたもの)でセキュアにされる。アリス410は、ボブのメッセージ465を受信して解読/検証すると、自身が受信したIDが、自身が送信したIDと一致することを検証する。
【0046】
ダムローカルデバイス470の場合、デバイスキーKdevXは、好ましくは、「工場において」ランダム又は任意に選ぶことができ、デバイス470内のファームウェア(又は、代替的にフラッシュメモリ)435に永久的にプログラミングすることができる。ダムローカルデバイス470は、本明細書で定義されるように、一般に、有効なGUIを有しないので、Kdev430は、好ましくは、デバイス470の外装、デバイス470の文書、又はデバイスそのものに貼付されるべきラベルに印刷され、開始後に除去される。これとは対照的に、スマートローカルデバイス415及びブリッジデバイス420は、本明細書で定義されるように、GUIを有し、それによって、自身のデバイスキー430を(ダムローカルデバイスと同様に)外部ラベルを経由して利用可能にすることもできるし、デバイスのGUIを通じて利用可能にすることもできる。Kdevは、攻撃者が、認可されていないBANからテレメトリーノードデバイスにアクセスするために知る必要がある唯一の情報であるので、Kdevをできるだけ秘密の状態に維持することが重要である。スマートローカルデバイス415及びブリッジデバイス420の場合、デバイスキーKdevがオンボードメモリ/ストレージ435又は455にのみ記憶され、もっぱらデバイスのGUIを経由して利用可能であり、デバイスのGUIとの対話が必要とされる場合に、デバイスの外側に印刷されることとは対照的に、Kdevは、明らかに、よりセキュアである。
【0047】
KdevB430等のデバイスキーは、好ましくは、(フラッシュメモリ435内を含む)ダムローカルデバイス470内にハードプログラミングされる一方、スマートローカルデバイス415及びブリッジデバイス420については、デバイスキーはハードプログラミングされる必要はない。したがって、本発明の特定の実施形態では、スマートローカルデバイス415及びブリッジデバイス420のデバイスキーのプライバシーは、デバイスキーが必要とされるごとに、デバイスキーがランダムに生成される場合に最大にすることができる。デバイスキーの新しく生成された乱数を使用し、それによって、GUIを経由してデバイスキーを観察可能にすることを必要とすることによって、新しいデバイスキーが生成されるごとに、可能なデバイスキーの確率分布が(疑似乱数ジェネレータの一様性まで)効果的に一様になるという点で、スマートローカルデバイス415及びブリッジデバイス420に、ハイジャック(すなわち、認可されてない使用又はアクセス)からの特別な免疫が提供される。これは、デバイスキー430を推測しようとしている攻撃者475が、新しいデバイスキー430が生成されるごとに、自身の検索を最初からやり直す必要があることを意味する。したがって、本発明の特定の実施形態では、新しく生成された乱数が、スマートローカルデバイス415及びブリッジデバイス420のデバイスキーを生成するのに使用される。すべてのメッセージ、すなわち、BANキーによるキー付き(keyed)メッセージ及びデバイスキーによるキー付きメッセージをセキュアにするのにブロック暗号を使用することができる。たとえば、過度のオーバーヘッドなしで強力なセキュリティを与えるブロック暗号は、128ビットAESとすることができる。デバイスキーが、ブロック暗号の長さよりも短い場合、ブロック暗号の引数の長さに達するために必要とされる回数だけ、デバイスキーを繰り返して、それ自体に連結することができる。
【0048】
図5は、図4のネットワークキー伝播プロトコルを疑似プロトコル表記で示している。このプロトコルは、BANキーが、BAN400の体外デバイス(ブリッジデバイス420及びスマートローカルデバイス415)からBAN400の他の体外デバイス(ブリッジデバイス420、スマートローカルデバイス415、及びダムローカルデバイス470のいずれか)へどのようにセキュアに通信されるのかを記述している。BANキーを受信するデバイス、この場合、ボブ110は、ブリッジデバイス、スマートローカルデバイス、ダムローカルデバイス等の体外デバイスへBANキーを配信するデバイス(この場合、アリス410)を操作する人間に、受信デバイス110のデバイスキーKdev430及び受信デバイスのID番号440を視覚的に提供できなければならない。最初に、ボブ110は、「BANキーを配信する」セッション要求210をアリス410から受信する。アリス410及びボブ110は、最初に、図4のメッセージ425と同様に、ボブ110が新しく生成された乱数QBをアリス410に提供するテレメトリック通信セッション215を開始しなければならない。本発明の特定の実施形態によれば、スマートローカルデバイス415及びブリッジデバイス420は、BANキーを有する場合に、BAN400の他の適任のデバイス(すべてのダムローカルデバイス470及び/又は他のスマートローカルデバイス415及び/又は他のブリッジデバイス420)へBANキーをセキュアに配信することを担当する。したがって、以下のプロトコルは、適任のBAN400のデバイスへのBANキーのセキュアな無線配信を可能にするのに適切である。
【0049】
図5に示すように、BANキーを配信するデバイス(アリス410)によって開始される「BANキーを配信する」セッション要求210は、まず、BANキーを受信するデバイス(ボブ110)とのセキュアにされていない通信セッション215を確立することから成る。アリス410及びボブ110がテレメトリーセッションを確立すると、ボブ110も、アリス410に、新たに生成された64ビット疑似乱数QBをメッセージ215を介して送信する必要がある。
【0050】
スマートローカルデバイス415及びブリッジデバイス420のファームウェアが、着信する「BANキー配信」コマンド210を拒否する場合には、人間のユーザが、スマートローカルデバイス415又はブリッジデバイス420を「新しいBANキーを受理する」モードにしない限り、デバイスハイジャックを防止するさらなる極めて強力な方法を実現することができる。新しいBANキーの受理に人間の介入を必要とすることは、専用の物理ボタン又はスイッチをダムローカルデバイス470に追加することによってダムローカルデバイス470において実施することができる。
【0051】
スマートローカルデバイス415及びブリッジデバイス420のファームウェア435、455が、着信する「BANキー配信」コマンドを拒否する場合には、デバイスに接近した人間のユーザが、スマートローカルデバイス又はブリッジデバイスを「新しいBANキーを受理する」モードにしない限り、デバイスハイジャックを防止するさらなる極めて強力な方法を実現することができる。新しいBANキーの受理に人間の介入を必要とするこのアイデアは、物理ボタン又はスイッチ(埋め込まれた「リセット」ボタン等)をダムローカルデバイス470に追加することによってダムローカルデバイス470においても実現することができる。新しいBANキーを受理するのに人間との対話を必要とすることは、実際に、(攻撃者がデバイスとの物理的な接触を達成しないという条件で)起こり得るあらゆるデバイスハイジャックを排除するが、本明細書で説明するように、BANキー配信プロトコルに対する他の攻撃は可能であり、本発明の他の実施形態によって対処される。
【0052】
図4及び図5のBANキー配信プロトコルの最後のステップにおいて、ボブ110は、KBANでセキュアにされたメッセージ465をアリス410へ送信することができ、したがって、キー配信プロトコルが成功したことを確認する。この確認信号は、アプリケーションレイヤに渡すことができ、次いで、視覚信号及び/又は音響信号の形態で「配信成功」通知として人間のユーザへ通信することができる。
【0053】
本発明のブリッジデバイス420及びスマートローカルデバイス415は、特定の実施形態では、BANキーをリセットすることができ、それによって、以下で説明するように、セッションキーもリセットすることができる。たとえば、患者又は医師の命令で、ブリッジデバイス420及びスマートローカルデバイス415は、受信機のデバイスID及びデバイスキーを使用することによって、BANキーをローカルデバイス415、470及び/又は他のブリッジデバイス420へ配信することができる。本発明の特定の実施形態では、埋め込まれたデバイス又はブリッジデバイス420がBANに存在するか否かにかかわらず、スマートローカルデバイス415は、BANキーを生成することができる。一般に、BANキーを更新する必要がある唯一の時は、BANキーを有するデバイスが喪失又は盗難された時である。本発明による特定の実施形態では、現在の攻撃者の処理能力に基づくと、BANキーは、危険にさらされることを回避するために約数百年に1度の頻度でしか更新する必要がない。
【0054】
ネットワーキング資源の制約条件のために、本発明の特定の実施形態では、共通の秘密キーが、特定のボディエリアネットワーク(BAN)のすべてのデバイスによって共有される。このBANキーKBANは、BAN内のすべての通信をセキュアにするのに使用される。BAN内では、テレメトリーセッションを次のように確立することができる。すなわち、テレメトリーセッションを開始するいずれかのデバイスのコマンド時に、共有されたBANキーが、現在のテレメトリーセッションで通信することを望むすべてのBANメンバーによって与えられる、新しく生成されて共有される乱数と共に、セッションキーKsesにされる。このセッションキーKsesは、テレメトリーセッションの継続時間の間、BANで通信されるすべてのメッセージをセキュアにするのに使用される。テレメトリーセッションがクローズされると、現在のセッションキーは廃棄される。
【0055】
ノード間の通信セッションをオープンするために、最初に、たとえば、ハンドシェイク、セッション要求/受理、又は他のセッション開始プロトコルによって、セキュアにされていない交換が通信デバイス間で行われる。好ましくは、着信するパケット長及び発信するパケット長は固定であり、その上、本発明による特定の実施形態では、物理レイヤハードウェアが、これらのパケット長を予測するようにセットアップされる。したがって、それよりも短いパケット又は長いパケットを「不良」とフラグ付けして拒絶することができる。使用される、関連のある暗号のインスタンスが利用可能でなければならない。本発明と共に使用するためのさまざまな適切な暗号化標準の1つは、FIPS承認の128ビットAESブロック暗号(FIPS PUB 197)である。暗号化は、AESの「カウンタモード」(CTRモード)で適切に行うことができる。メッセージの新しさは、トークンのようなノンス(すなわち、使い捨ての疑似乱数)の使用を通じてチェックすることができる。また、特定の実施形態では、たとえば、AESの「暗号ブロック連鎖メッセージ認証コードモード」(CBC−MACモード)の使用によって、メッセージの完全性が維持される。本発明のテレメトリーセキュリティシステムでは、本明細書で論述するように、疑似乱数をその時々に生成しなければならない。乱数は、コンピュータ生成された数を指すとき、技術的に正確に言えば、コンピュータ生成された数が実際には決定的であるという点で、(真の乱数とは対照的に)いわゆる疑似乱数を指すことができる。しかしながら、疑似乱数は、全体関数(overall function)が、可観測にするために全体的に確率的プロセスとして振舞うように、好ましくは、十分に複雑な若しくは多様な状態又は補助関数から導出される。この数の実際の値は重要ではなく、特定の実施形態では、数は、暗号の種、メッセージ認証関数の種、さらには、別の疑似乱数生成の種として使用できることが理解されよう。数の実際の値は、疑似乱数の関数については重要ではないので、数の値は、任意であると言うことができる。任意とは、本明細書では、一般に「偶然」と同義であることが意図されている。一般に、本発明が、疑似乱数の使用をどこで必要としようとも、その機能は、たとえば、代替的な疑似乱数ジェネレータ、又は、本発明の代替的な実施形態によるハードウェア生成された乱数に置き換えることができる。特定の実施形態では、上述したFIPS承認のAESブロック暗号仕様は、ANSI X9.31仕様(付録A.2.4)に基づくNIST推奨の疑似乱数ジェネレータ(PRNG)を実施したものを提供する。これは、本発明の典型的な実施形態に適している。ANSI X.9.31 PRNG仕様のこの特定の実施形態は、AESブロック暗号(FIPS PUB 197)を使用する。このタイプの実施形態は、一時に128ビットのPRNG疑似乱数を生成する。
【0056】
図6〜図9は、本発明の特定の実施形態による疑似乱数ジェネレータの機能のデータフロー図を示している。図6は、本発明の実施形態による、図9の乱数ジェネレータの最初のステップのデータフロー図を示している。特定の実施形態では、128ビット疑似乱数(PRN)の生成は、ANSI X9.31で指定されているように、AESブロック暗号を使用して実施され、過度のオーバーヘッドなく、予測される攻撃者の処理能力の観点から十分なセキュリティ及びプライバシーを提供する。初期事項として、128ビット乱数KR610及びR0が、PRNGに利用可能である。PRNGキーであるKR610は、変化せず、128ビットレジスタを経由してブロック暗号620のkey_i入力615に常にロードされる。R0は、PRNGが128ビット乱数を生成するごとに、新しい現在のPRN(R1,R2,…)で更新されるPRNGの秘密ランダム初期化ベクトル(secret and random initialization vector)である。KR610及び現在のRの双方は、新しいいずれの疑似乱数の生成にも必要とされるので、メモリ又はセキュアローカルストレージに記憶することができる。
【0057】
この実施形態では、あらゆる(i+1)番目のPRNの生成は、次のように進行する。すなわち、図6に示すように、ブロック暗号620(この例では、128ビットAES)が、キー入力615としてKR610を使用してノンス625を暗号化するのに使用される。ノンス625は、たとえば、そのノードの現在のリアルタイムクロック値から構成することができ、128ビットレジスタを経由してブロック暗号620の128ビットdata_i入力630にロードすることができる。(リアルタイムクロックが、128ビットよりも長い場合には、リアルタイムクロックの最下位128ビットを使用することができる。)リアルタイムクロックが128ビットよりも短い場合には、0の個数にリアルタイムクロックのビット数を加えたものが128に等しくなるように、ノンス625の最上位ビットを0でパッディングすることができる。リアルタイムクロックが、ノンス625を生成するのに使用されようとされまいと、ブロック暗号620から出力される中間値data_o635は、本明細書では、V1640と呼ばれる場合がある。
【0058】
図7は、本発明による疑似乱数ジェネレータの一実施形態における図6のステップに続くステップを示している。図7に示すように、中間値V1640は、現在のR710(最初の乱数の場合はR0であり、(i+1)番目の乱数の場合はRiである)とXORされる。次に、この128ビット値
【0059】
【数10】
625をブロック暗号620で暗号化することができる。具体的には、KR610を、たとえば128ビットレジスタからブロック暗号620のkey_i入力615にロードすることができる。それに続いて、
【0060】
【数11】
625を、別の128ビットレジスタを経由してブロック暗号620のdata_i入力630にロードすることができる。中間値V2720は、ブロック暗号620のdata_o出力635である。
【0061】
図8は、本発明による疑似乱数ジェネレータの一実施形態における図7のステップに続くステップを示している。この実施形態では、128ビット中間値V1640及びV2720が、互いにXORされ、ブロック暗号620で暗号化される。具体的には、KR610が、128ビットレジスタを経由してブロック暗号620のkey_i入力615にロードされる。
【0062】
【数12】
625の結果は、別の128ビットレジスタを経由してブロック暗号620のdata_i630入力にロードされる。ブロック暗号620の出力data_o635は、新しいPRN Ri+1810を含む。さらなる128ビットPRNが必要とされる場合には、新しいノンス625(たとえば、現在のリアルタイムクロックデータ)を使用し、且つ、新しく更新されたPRN Ri+1810を使用して、RNGプロセスを繰り返すことができる。さらなる乱数が必要とされない場合、Ri+1は、今後のセッションにおける今後のPRNの生成に備えてメモリに記憶される。PRNGキーKR610は、メモリ又はセキュアローカルストレージに記憶することができる。
【0063】
要約すれば、RPNGキーの生成は、好ましくは、図9に示すように、次のように進行する。ブロック暗号が、関数E(data_i;key_i)=data_oによって表され、ここで、Eが、関数への関連のある引数並びにdata_i630及びkey_i615(i≧0を有する)を有するAES関数620を表す場合、アルゴリズムは、ブロック暗号を通る3つのステップのネストされた処理又は反復的な処理に従って要約することができる。すなわち、
ステップ1.V1640=E(ノンス625;KR610)
ステップ2.
【0064】
【数13】
ステップ3.
【0065】
【数14】
である。上記ステップの3つすべてを結合することによって、
【0066】
【数15】
が与えられる。
【0067】
本発明の特定の実施形態では、PRN生成には、128ビットAESブロック暗号620及びモジュロ2加算機能の使用、ブロック暗号をバッファリングする3つの128ビットレジスタ、リアルタイムクロック又は別のノンス625のソースへのアクセス、並びに2つの128ビットの数Ri710及びKR610のストレージ空間が割り当てられる。これらのうち、Ri及びKRのストレージ空間は、本発明の他の態様及び機能には利用可能でない場合がある。好ましくは、2つの128ビット乱数は、たとえば製造の際に、本発明のモジュールの実施態様に「インストール」することができる。これらの乱数のうちの一方(KR610)は、永久的なものとすることができ、他方R0710は、好ましくは、新しい疑似乱数が生成されるごとに、更新することができる。
【0068】
本発明によるセキュアテレメトリーセッションは、好ましくは、1つ又は複数の通信デバイスがセキュアセッションを要求するといつでも開始される。セキュア通信セッションのセットアップは、2ステップのプロセスである。この2ステップのプロセスによって、すべての通信デバイスには、同じセッションキーKsesが提供される。ステップ1において、すべての通信デバイスは、Rxと呼ばれる事前に生成された疑似乱数、たとえば64ビット乱数、を交代でアナウンスする。ここで、「x」は、異なるデバイスをインデックスする。上述し且つ図6〜図9に示したように、特定の実施形態では、疑似乱数が次のセキュアセッションに直ちに利用可能であるように、疑似乱数は、前のセキュア通信セッションの終了時に生成される。これらの疑似乱数の生成は、好ましくは、本明細書の開示に従って行うことができるが、疑似乱数又はハードウェア生成された乱数を生成する他の方法を本発明に従って代用することもできる。
【0069】
事前に生成された乱数のアナウンスに続いて、次のステップは、セキュアセッションの確立を提供し、すべての通信デバイスが共通のセッションキー(Kses)を計算することを必要とする。この共通のセッションキーは、その後、セキュアセッションの継続時間の間、データトラフィックをセキュアにするのに使用される。Ksesは、独立に計算されるが、ブロック暗号等の暗号を使用して各デバイスによって全く同一に計算される。128ビットAESブロック暗号は、本発明の典型的な実施形態に適している。
【0070】
図10は、本発明の実施形態によるセッションキーの生成のデータフロー図である。共通セッションキーは、事前に確立されたBANキーKBAN及び通信ノードの乱数のすべて{R1,R2,R3…}から導出することができる。特定の実施形態では、Ksesは、ブロック暗号620への「キー入力」615内にKBANをロードし且つブロック暗号620の「データイン」630内にデバイスの乱数1010をロードすることによって計算することができる。これは、本発明の特定の実施形態では、ファームウェア制御によって成し遂げることができる。具体的には、最初の2つのデバイスの64ビット乱数が連結されて128ビットの数にされる。次に、この128ビットの数が、ブロック暗号620の「データイン」630にロードされる。セキュアセッションを確立することを望むデバイスが2つしか存在しない場合、ブロック暗号620の128ビット出力635が、セッションキーKsesとなる。単一のセッション内でセキュアに通信することを望むデバイスが3つ以上存在する場合、再びブロック暗号620の「データイン」630を入力して上述したように処理される前に、ブロック暗号620の出力635が、続いて、次の2つのデバイス1020の連結された128ビット(2×64ビット)乱数にXORされる(すなわち、モジュロ2加算される)。暗号(ここでは、128ビットAES)のXOR導出値635への適用は、好ましくは、デバイスの乱数のすべてを通過するのに必要な回数だけ繰り返される。ここで、ブロック暗号620の最終出力635は、Kses1030である。セキュアセッションに含まれるデバイスが奇数個存在する場合、128ビット連結の「空」のスロットを64個の0で満たすことができる。セキュア通信セッションの終了時に、エフェメラル(ephemeral)Kses1030を「削除」することができ、新しい各セキュアテレメトリーセッションが提供されると、その開始時に、新しいセッションキー1030が計算される。
【0071】
説明したように、特定の実施形態で情報をセキュアにすることは、たとえばカウンタ(CTR)モードで使用されるブロック暗号が使用されることを含めて、暗号に基づくことができる。このように、ブロック暗号は、キー付き疑似乱数キーストリームを生成するという点で、ストリームに適用することができる(又は、受信側ノードにおいて、平文を生成して解読を行うために暗号文に対して適用することができる)。このキー付き疑似乱数キーストリームは、その後、暗号化文を生成するために平文に対してXORされる。図11は、本発明の実施形態によるメッセージのCTRモードの暗号及び解読のデータフローを示している。図示するように、共有セッションキー1030は、128ビットレジスタを経由してブロック暗号620のkey_i入力615にロードされ、セッションキー1030は、(上述したように、セキュアセッションの開始時に計算された後)メモリ又はストレージからレジスタにロードすることができる。128ビットノンス(すなわち、1回だけ使用される数)1110は、別の128ビットレジスタを経由して、ブロック暗号620のdata_i入力630にロードされる。
【0072】
図12は、本発明の実施形態によるノンスレジスタのデータ構造を示している。この実施形態では、図12に示すように、128ビットノンス1110の最上位8バイト1210が、実際には、8バイトのアップカウンタ1210である一方、そのカウンタの下位側の6バイト1215は、インスティゲーティングデバイス(instigating device)の乱数Rx1220の最下位6バイト[すなわち、ビット47〜ビット0]で開始される。乱数Rx1220は、図10のセッションキー1030の生成に貢献されたものであることが理解されよう。本発明によるテレメトリーパケットが、セキュアセッションで受信又は送信されるごとに、カウンタ1210の値がインクリメントされる。(8バイトカウンタ1220のすぐ下の)次のノンスバイト1225は、図12のビット「m」1230であるモードビット1230を含む。本明細書で説明するように、このビットは、ノンスがCTRモード暗号化/解読に使用されているときは、論理0に設定することができ、ノンスがメッセージの完全性に使用されているときは、モードビットは論理1に設定される。モードビットの下の7ビットフィールドであるブロック番号フィールド1240は、あらゆるパケットの開始時に論理0000000にリセットされ、そのパケット内の暗号化/解読に使用されるキーストリームマテリアルの各128ビットブロックの生成時にインクリメントされる。たとえば、各テレメトリーパケットが、暗号化/解読に300ビットのキーストリームマテリアルを必要とした場合、キーストリームの最初の128ビットは、0000000を使用して生成され、2番目の128ビットは、0000001を使用して生成され、3番目の128ビットは、0000010を使用して生成される(1つずつインクリメントされる。キーストリームマテリアルの300ビットがパケットごとに必要とされる例では、キーストリームマテリアルの最後の128ビットのうちの44ビットのみが必要とされることに留意する)。128ビットノンス1110の残りの7バイト(最下位7バイト1240)は、好ましくは、永久的に論理0に設定することができる。
【0073】
反射攻撃を防止することを助ける同期されたタイムスタンプではなく、又は、このタイムスタンプに加えて、本発明の特定の実施形態では、あらゆるセキュアテレメトリックセッションの開始時に新しいセッションキーKses1030を計算することによって、メッセージの新しさ及びユーザ認証が提供される。この新しいセッションキー1030は、セキュアセッションの参加者のそれぞれによって生成された乱数の貢献度(contribution)の関数である。しかしながら、セッション内の反射攻撃について、さらなる新しさのメカニズムを提供することができる。この場合、セキュアセッションのデバイスは、セッションノンスの自身のローカルコピーにおけるカウンタを、その現在の値よりも小さな値にリセットすることを決して可能にすべきでない。テレメトリー通信セッションが中断されるか、又は、他の或る理由から、基礎となる通信プロトコル内で「リセット」若しくは再同期する必要がある場合、セキュアセッションのデバイスが再同期するために、現在のセッションノンスはアナウンスされることが必要な場合がある。攻撃者は、おそらく、他のセッション参加者のノンスを前の値にリセットし、それによって、攻撃者が、前のノンス値を使用した古いメッセージを反射できるように試みることによって、このような状況の悪用を企てている可能性がある。このように、セッションノンスは、かなりのネットワークトークンとして機能する。ノンスカウンタが増加のみ行う場合、264個を超えるパケットが単一のセキュアセッションで通信されることはないという条件で、過去のセッション内メッセージは、以前のノンスを有するので、古いメッセージは、決して正当なノンスを有しない。なお、264個を超えるパケットが単一のセキュアセッションで通信されることは、起こりそうもないことである。
【0074】
図11に示すように、本発明の実施形態では、暗号化及び解読は、好ましくは、ブロック暗号620の128ビット出力バスdata_o635と、暗号化用のペイロード平文から取られた128ビットデータブロック1115、及び、解読用のペイロード暗号文から取られた128ビットデータブロック1115との間でビット単位のモジュロ2加算(XOR)を実行することによって行われる。本発明の特定の実施形態では、パケットヘッダは暗号化されない。
【0075】
図13は、本発明の一実施形態によるテレメトリーパケット1300のデータ構造を示している。128ビットメッセージブロック1115のそれぞれは、ブロック暗号620の異なる出力635とXOR1120を行うことができる。たとえば、図13のメッセージブロックm11310は、キーストリームブロック(すなわち、ブロック暗号620のdata_oバス635を残した128ビットブロック)s1とXORされ、メッセージブロックm2(パケットの次の128ビット1320)は、s2とXORされる。他のメッセージブロックについても同様にXORされる。前述したように、異なるノンス1110は、各キーストリームブロック635の生成で使用される。特定の実施形態では、同じノンス1110が、同じセッション内で2回使用されることは決してない。したがって、8バイトノンスカウンタ1210が、その最大値(0xhFFFFFFFFFFFFFFFF)に達すると、セキュアセッションを終了することができ、新しいセッションキーが一括して計算される。この実施形態では、単一のセッションキーを使用して通信できるテレメトリーパケットの個数は、264個(インスティゲータ(instigator)の乱数の最下位6バイトが0xh000000000000である場合に対応する)から264−248個(インスティゲータの乱数の最下位6バイトが0xhFFFFFFFFFFFFの場合に対応する)である。10進数では、これらの数は、それぞれ1.84467×1019及び1.84464×1019であり、したがって、実際にこれらのパケット数に決して達する可能性がないことが理解されよう。
【0076】
たとえばTDMA構造といったセキュアにされたネットワークでは、好ましくは、デバイスは、非送信の期間中にセキュアな通信を維持するために、そのデバイスが、自身に割り当てられた窓の期間中に実際にブロードキャストするか否かにかかわらず、自身のノンスカウンタをインクリメントする。この非送信の時間の間、デバイスは、エネルギーを保存するために自身の無線の電源を切ることができる。電源投入時に、デバイスは、セッションノンスの経過を追跡してきており、依然として、後に電源投入することができ、セキュアに通信することができる。代替的に、テレメトリーネットワークセッションの「マスタ」又は「ビーコン」は、ネットワークセッション内で新しい「ラウンド」を開始するごとに、現在のノンスカウンタをセキュアにせずにブロードキャストすることができる。
【0077】
本発明の特定の実施形態では、MACは、各テレメトリーパケットについて計算され、各テレメトリーパケットにアペンドされる。また、本発明の特定の実施形態では、1つのパケットサイズ及びパケット構造が使用される。このようなパケット構造の1つの可能な実施形態が、図13に示されている。図示するように、本発明によるパケット1300は、42ビット(5.25バイト)ヘッダ1310、30バイトペイロード1315、及び3バイトMAC1320から構成することができる。
【0078】
本発明の特定の実施形態では、ブロック暗号(たとえば、128ビットAES)をCBC−MACモードで使用して、メッセージの平文のキー付きハッシュ値(メッセージ認証コード、すなわちMAC)を生成することができる。このキー付きハッシュ値は、図13に示すように、1320において、送信時にそのメッセージ1315の暗号化された形態にアペンドされる。これらのパケット1300及びそれにアペンドされたMAC1320を受信すると、受信機は、パケットペイロード1315を解読し、それらの解読されたパケットに関するMACを計算し、受信機は受信されたペイロード1315から導出した、計算されたMAC値を、本パケット1300にアペンドされて受信されたMAC値1320と比較する。これらのMACが一致した場合、パケット1300は受理される。当然、MACが矛盾した場合、パケット1300は廃棄又は再要求される。MAC1320が、本発明に従って計算され、各パケット1315にアペンドされる場合、従来技術のテレメトリーシステムにおけるパケットごとのCRCの代わりにMAC1320を使用することができる。本明細書でさまざまに詳述したように、特定のパケットがセキュアにされずに送信される限りにおいて、付加的に、(CRCのような)キー付きでない(unkeyed)完全性チェックメカニズムを適用することができる。この完全性チェックは、ハードウェアCRCの使用を通じて実現することもできるし、代替的に、公に知られたキー及びノンスを有するCBC−MACを使用することによって(たとえば、双方について0x00000000000000000000000000000000を使用することによって)実現することもできる。
【0079】
MAC1320を使用するこの実施形態では、パケットペイロード1315(すなわち、暗号化されるパケットの部分)の長さは30バイトである(したがって、1ビットのみのノンスレジスタブロック番号フィールド1235を必要とする)が、ノンスレジスタブロック番号フィールド1235は、同じノンスレジスタ構造1110を使用して、4096バイトと同じ長さのより長いパケットペイロードの使用を可能にすることができる将来のテレメトリー方式に備えて7ビットに固定することができる。
【0080】
図14に示す本発明の代表的な一実施形態によるCBC−MAC生成/検証アルゴリズムでは、最初に、共有セッションキー1030(CTRモード暗号化/解読に使用されるものと同じもの)が、128ビットレジスタ1430を経由してブロック暗号620のkey_i入力615にロードされる。ブロック暗号620のdata_i入力615には、ノンスの97ビットの最上位ビット(必要に応じて、ブロック番号フィールドをトランケートする)と最大で最初の31ビットまでの平文パケットのビット(通常はヘッダ情報から成る)とを連結したもの1435をロードすることができる。ノンスレジスタ1110のモードビット1230は、論理1に設定することができる。典型的な実施形態では、CBC−MACアルゴリズムがMAC生成に使用されているのかMAC検証に使用されているのかにかかわらず、CBC−MAC処理は、各パケットの解読された形態(すなわち、メッセージ平文)に対して行われる。この実施形態では、したがって、受信されたパケットは、それらのパケットのMACが検証可能になる前に、解読されなければならない。
【0081】
図14の最初のブロック暗号620の出力(data_o)635は、1435における97ビットノンスに連結された平文に続く次の128ビットとビット単位でXORすることができる。次に、このXORの結果は、第2のブロック暗号1440の入力630にロードされる。次に、第2のブロック暗号1440の出力635は、パケット1300の1315からのパケット平文の最後の128ビット(必要に応じて0がパッディングされる)とXORされ、次いで、第3のブロック暗号1445によって処理される。この実施形態では、パケットヘッダ及びパケットペイロードのビット合計が287ビット以下であるので、MACが、第3のブロックの128ビット出力(data_o)であることから、CBC−MACのラウンドはそれ以上必要とされない。MACが、本発明の代替的な一実施形態に従って、より長いパケットに対して必要とされる場合、出力をXORしてさらなるブロック暗号620に通すことによって、さらなる平文ブロックを処理することができる。一般に、m個のブロックの平文について、m回のXOR/ブロック暗号ラウンド630が必要とされる。ここで、最後のブロック暗号のdata_o出力635がMAC1450となる。図14には、3つのブロック暗号コア620、1440、1445が示されているが、特定の実施形態では、1つのコアしか実際にハードウェアで実施されず、実際には、XOR出力は、第1のブロック暗号620のdata_i入力630へ送られることに留意されたい。図14に示す3つのコア620、1440、1445は、CBC−MACアルゴリズムを例示するようにのみ意図されている。
【0082】
図14に示すように、本発明の特定の実施形態では、CBC−MAC出力1450の最下位24ビット(ビット23〜ビット0)のみが、処理されたパケット1300の最後にMAC1320としてアペンドされる。これによって、CBC−MAC関数(この場合、128ビット)の基礎となる暗号強度は危険にさらされない。
【0083】
セキュアにされたセッションに参加する各デバイスは、好ましくは、あらゆるパケット1330の送信時及び受信時に自身の各セッションノンスカウンタ1210をインクリメントする。このように、一時にセキュアセッションの1つのデバイスしか送信していないので、ノンスインクリメントは、プロキシトークンとして機能し、したがって、複数のデバイスを同時に送信できないことが確実にされる。特定の実施形態では、テレメトリーパケットは比較的長いので、ノードは、特定の状況で、BANグループの中でノンス同期を場合によっては喪失する可能性がある。基礎となる通信プロトコルによってサポートされる場合、本発明の特定の実施形態では、デバイスは、自身の現在の平文ノンスをフレームヘッダに定期的に含めて、ノンス同期チェックを提供することができる。典型的な実施形態では、ノンス同期は、一般に、現在のノンス1110をNACKパケットに常に含めることによって回復することもできるし、基礎となる通信プロトコルに存在するネイティブ回復技法が何であってもそれを通じて回復することもできる。好ましくは、本明細書でさらに説明するように、すべてのデバイスは、a)セッションノンスのデバイスのコピー内のカウンタが、デバイスがメンテナンスメッセージで受信するあらゆるノンスと少なくとも同程度の大きさであるべきであるというルール、及び、b)ノンスカウンタが0xhFFFFFFFFFFFFFFFFに達すると、新しいセッションキーを計算しなければならないというルール、に従い、ノンスは、2回使用されることはなく、したがって、メッセージの新しさが保証される。
【0084】
好ましくは、暗号化/解読は、ヘッダ1310ではなく、テレメトリーパケットペイロード1315に適用されるべきである。本発明のこの実施形態は、攻撃者に利用可能な既知の平文及び必要とされるキーストリームの長さの双方を最小にする傾向がある。さらに、これによって、パケットヘッダ1310が物理レイヤハードウェアを通じて伝播している間に、キーストリームマテリアルを計算してバッファリングするブロック暗号時間が与えられる。本発明の特定の実施形態では、単一のブロック暗号コア620(たとえば、AESブロック暗号)は、暗号化関数及びMAC関数の双方を実施するのに使用されるが、これは、好ましくは、ランタイムにブロックごとにCTRモードをCBC−MACモードと交互に用いるのではなく、最初に、パケット全体のペイロードデータ1315の分量について、CRTモードを使用して十分なキーストリームマテリアルを生成して記憶することによって行われる。暗号化/解読された128ビットブロックが利用可能になると、CBC−MACモードを使用して、引き続きMACが生成/検証される。図15は、本発明の一実施形態によるパケット(32バイト以下のペイロード)のCTRモード及びCBC−MACモードのAESベースの混合使用について提案されたハードウェアレイアウトを示している。
【0085】
一般に、本発明によるノードの一ハードウェア実施態様は、128ビットAESブロック暗号の1つのインスタンス(及び対応する専用の128ビットレジスタ)と、128ビットBANキー用のキープアライブストレージ又は不揮発性ストレージとを必要とする。セッションノンスは、セッションキー(Rx)へのインスティゲーティングデバイスの乱数の貢献のみから成るので、セキュアにされたネットワークのすべてのデバイスは、さらなる送信を行う必要なく、セッションノンスを知っている。図15に示すように、単一のブロック暗号620を使用して、data_i入力630に対する(入力1510を介した)キーストリーム又は(入力1515を介した)CBC−MAC入力のいずれかが処理される。ブロック暗号620の出力635であるレジスタ1515は、平文1525とXORされて、平文データ1525が暗号化される。
【0086】
本発明の特定の実施形態では、(セッションをオープンし、乱数を共有するのに使用されるパケットのように)パケットをセキュアにせずに通信する必要がある限りにおいて、キー付きでない完全性チェックが依然として使用される。この完全性チェックは、たとえば、ハードウェアCRCの使用を通じて実施することもできるし、(双方について0x00000000000000000000000000000000のような)おそらく、公に知られた秘密キー及びノンスを有するCBC−MACを使用することによって実施することもできる。
【0087】
キーストリームマテリアルが生成され、第1のキーストリームレジスタ1510及び第2のキーストリームレジスタ1515にそれぞれ記憶される。第2のキーストリーム1515レジスタのキーストリームマテリアルが使い切られると、第1のキーストリームレジスタ1510が、キーストリームレジスタ1515に並行してロードされる。第1の平文ブロックは、レジスタ1520に記憶され、(第1のキーストリームレジスタ1510のキーストリームマテリアルが、第2のキーストリームレジスタ1515に移されると)ブロック暗号処理620に続く結果の第1のMACブロックが、第1のキーストリームレジスタ1510に記憶される。第1のMACブロックは、1525からの平文の第2のブロックとXORされ、ブロック暗号620に通される。次に、最後のMAC1530の最下位24ビットが、図13の暗号化されたデータ1315にアペンドされる。
【0088】
本発明による無線テレメトリーシステムでは、本明細書で開示したように、通常、体内デバイスと体外デバイスとの間の通信セッションを完全に無線で開始、実行、及びクローズすることができる。したがって、論述したように、認可されていない且つ/又は悪意のある関係者が、埋め込まれたデバイス又はBANの他のノードと通信することを防止することが重要である。しかしながら、実際には、認可されていない体外デバイス(医師プログラマ器具、緊急対応機器等)及びそのユーザ(これらのユーザは、埋め込み物の秘密キーにアクセスできないという意味で認可されていないが、患者のBANにアクセスする患者の明白な又は暗黙の同意又は指示を有する)が、それにもかかわらず、埋め込まれたデバイスと通信することが必要な状況が発生し得ることが理解されよう。このような状況は、たとえば、埋め込み物自体によって引き起こされていようがいまいが、患者が危機的な事象、さらには、命に関わる生理学的事象を受けている緊急の状況で発生し得る。たとえば、患者は、おそらく意識不明であり、識別マテリアルを有しない場合がある。また、上記プロトコルによる認証が禁止されているか又は実現不可能である過度の不便さのために、上述したような本発明の態様におけるフル認証が実現可能でない状況も発生し得る。たとえば、患者は、医師と会うための予約で大きな距離を移動してきた場合があるが、到着した時に、自身のスマートカード、又は、体外ノードが埋め込み物と通信できるようにするのに必要な他のマテリアルを忘れてきた又は置き忘れてきたことに気付く場合もあるし、患者は、自身の認証パスワードを忘れてしまっている場合もある。これらの状況では、「バックドア」、すなわち、IMD BANノードとインターフェースする方法(しかし、代表的な実施形態では、ノードの秘密デバイスキーKdevを導出することなく)が、限られた原則で、本発明によるシステムのセキュリティプロトコルを迂回する方法でノードへの正当なアクセスを可能にすることができる。したがって、患者の予約を再スケジューリングする不便さが回避され、又は、真の緊急の状況では、患者への重要なケアが可能になる。
【0089】
本発明の一実施形態では、たとえば或る距離にわたって、たとえば無線プロトコルとして、無線で動作する便利なバックドアメカニズムを提供することができる。一方、本発明の特定の実施形態では、バックドアは、無線ではなく、バックドアをオープンできる機器は、幅広く利用可能な場合がある(したがって、攻撃者が獲得することが容易である)。したがって、特定の実施形態におけるバックドアは、キーを共有するすべてのノードデバイスのセキュリティが、理由が何であれ、バックドアキーの相対的な機密性を危険にさらす動機を有する攻撃者によってノードデバイスの獲得時に取り返しのつかないほど危険にさらされるような方法では実施されない。したがって、無線バックドアが実施される本発明の特定の実施形態では、好ましくは、埋め込み物又はノード(たとえば、アリス115)全体の限られた量の機能しか、バックドアキーの通信時に動作可能ではない。たとえば、無線バックドアが利用可能である特定の実施態様では、無線バックドアを使用して、埋め込み物をそれぞれの静止(すなわち「スタンバイ」)モードにのみすることができる。より具体的には、たとえば、ペースメーカは、60bpmモードに入ることができる一方、埋め込み可能な除細動器又はニューラルシミュレータ又は薬ポンプは、無線バックドアによって療法一時停止モードにすることができる。
【0090】
図16を参照して、本発明の特定の実施形態では、「物理的」バックドア1610、すなわち、無線通信チャネル120を使用しないアクセス方法、が提供される。これらの実施形態では、バックドアアクセスを求めるデバイス110と、アクセスされるノード115及び/又はその患者(埋め込められたデバイスの場合)との間の物理的な接触(又は近接近)によってのみ、認証なしのBANノード115へのアクセスが行われる。これは、特定のBANノード115では、ホール効果センサ又は磁気リードスイッチ等の近接場磁気センサの使用によって実施することができる。好ましくは、このセンサ1610は、通信チャネルそれ自体をもたらさず、(上記で説明したように)本発明の実施形態によって必要とされる認証要件なしで、モジュールを、機器が埋め込み物(複数可)又は他のノードと通信できるオープンモードにすることのみのために使用される。代替的に、バックドアは、磁気テレメトリー等の近い範囲のテレメトリーの手段を開始することができ、このテレメトリーでは、接近することによって、通信チャネルの使用が実際に可能になる。
【0091】
また、特定の実施形態では、緊急機器110が通信セッションをクローズすると、バックドア1610はクローズする。すなわち、オープン通信チャネルがクローズされ、デバイス115へさらに通信するには、たとえば本明細書で提供したような適用可能な認証情報が必要とされるか、又は代替的に、別のバックドア通信セッションの確立が必要とされる。このバックドアの使用の効果は、無線ルータ等の無線ネットワーク器具の埋め込まれたリセットボタンと比較することができる。リセットによって、リモートの第三者が無線ルータの態様を変更することが可能になるが、この状態は、デバイスにおける物理的な動作なしでは提供されない。デバイスへのこの物理的なアクセスは、デバイス又はノードに対する変更を管理する管理認証の代理として行われる。
【0092】
バックドアは、KBANをBANの他のデバイスへ配信する目的で、IMDからそのKBANを抽出する好ましい手段としても使用することができる。また、バックドアは、IMDがエフェメラルKBAN(KBANとして一時的に使用されるローカルに生成された乱数)を送信することを要求するのにも使用することができる。このエフェメラルKBANは、そのテレメトリーセッションの継続時間の間にのみ有効である。バックドアアクセスの結果、KBAN又はエフェメラルKBANの無線送信が可能になる実施態様では、エフェメラルKBANを回復するのに必要なクレデンシャルに関して、IMDがKBANを送信するために、追加されたクレデンシャルが必要とされる場合がある。このようなクレデンシャルは、たとえば10秒といった延長された時間期間の間近接スイッチを起動することを含むことができる。ここで、エフェメラルKBANの回復は、同じ近接スイッチの起動の時に3秒間だけ認可することができる。
【0093】
IMD115に対するバックドア1610は、次のように具現化することができる。最初に、アリス115及びボブ110は、メッセージ1615及び1620を介してID(IDA、IDB)を交換することによって非セキュアチャネル120による通信セッションをオープンする。次に、ボブ110は、非セキュアチャネル120を介して、アリス115のバックドア回路部1610に電源を投入するようにアリス115に依頼する。このバックドア回路部1610は、通常ならば電源オフされ、たとえば磁石を接近させることのような、いずれの外部事象にも応答しない。たとえば、オフの時、バックドアは、「ロックされている」と言われる場合がある。バックドア回路部1610がオンになり、したがって、バックドア1610が「ロック解除」されると、ボブ110は、上述したように、磁気スイッチ又はホール効果センサ等の手段によってアリスのバックドアを物理的にオープンすることができる。好ましくは、バックドア1610が、所定のタイムアウト前に物理的にオープンされない場合、アリス115は、自身のバックドア回路部1610の電源を自動的に切り、バックドア1610を再ロックして、ホスト患者に接近することが攻撃者に可能である場合に攻撃を回避する。
【0094】
バックドア1610のオープンに続いて、アリス115は、自身のRF送信電力を削減し(それによって、信号の有効な送信範囲を削減し)、次いで、メッセージ1630によってボブ110へKBAN1625を送信する。アリス115は、この送信を行うと直ちに、自身のバックドア回路部1610の電源を切る。代表的な実施形態では、BANキーの要求は、バックドアプロトコルの開始に暗に示されているので、ボブ110によるBANキーの要求は必要ではない。
【0095】
図17は、図16の実施形態による緊急事態アクセスプロトコルの疑似プロトコル及びデータフローを示している。図17に示すように、ブリッジデバイス110は、バックドアセッション要求1710によってBANキーを取得することができる。バックドアセッション要求1710に続いて、2つのノードは、215において、セキュアにされていないテレメトリーセッションを確立する。次に、ブリッジデバイス110は、バックドア回路部1610に電源が投入されることを要求することができる(1715)。これに応答して、IMD115は、1720において、自身のバックドア回路部1610に電源を投入し、1725において、バックドア回路部1610に電源が投入されたことをブリッジデバイス110に確認する。次に、ブリッジデバイス110は、磁気スイッチ、ホール効果センサ、又は、バックドア1610を備える他の接近に基づくスイッチを接近させることによって、電源が投入されたバックドア1610を起動することができる。これは、1730によって示されている。
【0096】
バックドア1610がオープンすると(1730)、IMD115は、1735に示すように、バックドアが接近ノード110によってオープンされたことに気付き、その後、1625において、非セキュアテレメトリーチャネル120によってBANキーを送信する。特定の実施形態では、ブリッジデバイス110は、1730において、BANキーの受信の確認を送信することができるが、典型的な実施形態では、IMD115は、BANキーを送信するとバックドア1610の電源を直ちに切り、バックドアのオープンの別の要求1715が要求される。
【0097】
BAN内の所与のデバイス又はノードが、上記セキュリティパラメータに従って十分にセキュアなテレメトリーセッションを開始することなく別のノードへデータを送信することが好都合であるさまざまな状況が存在する。たとえば、BANは、セキュアな双方向リンクを確立できない送信のみのタイプのセンサである1つ又は複数のノードを含む場合がある。患者アクティベータ(patient activator)のような他のデバイスは、直ちに効果を与えることができるデータを送信することができる。したがって、本発明の実施形態は、データを含むウェイクアップパケットをセキュアにすること、及び、限られた量のセキュアなその後の通信を提供する。この文脈において、十分にセキュアなプロトコルは、一般的なセキュリティの確立と呼ばれ、あまり煩わしくないプロトコルは、ウェイクアップセキュリティ等と呼ばれる。
【0098】
図18は、BAN内の認可されたデバイス(たとえば、アリス115)によって生成されたようなセキュアにされたウェイクアップパケット2000をブロックの形態で示す図である。ウェイクアップパケット2000は、特にアリス115のID、パケットを受信するノードのID等のような、図示しない他のデータも含むことができる。簡潔に言えば、ウェイクアップパケットは、4バイトの暗号化されていないデータ2010、3バイトのMAC2020、及び3バイトのMCTR2030を含む。MCTRは、特定のデバイスに関連付けられた3バイトのメッセージカウンタ値である。このメッセージカウンタ値は、BANの各デバイス内に記憶され、その特定のデバイスが新しいセキュアなウェイクアップパケットを作成するごとにインクリメントされる。BAN内の各デバイスは、ネットワーク内のあらゆるデバイスのオンメモリに常にMCTRの値を維持する。新しいデバイスがBANに追加された場合、MCTRのすべての値がリセットされる。MCTR値は、ウェイクアップパケット2000では暗号化されない。BANの各デバイスは、MCTR値を維持することに加えて、目的とする受信者(複数可)として各デバイスを識別するのに使用される1バイト値であるレセプタビットマップも含む。
【0099】
MCTRの値の追跡と共にMAC2020の生成によって、セキュリティがプロトコルに提供される。認可された受信デバイス(たとえば、ボブ110)は、受信時に、MCR値2030を評価する。メッセージは、適切でない場合には無視される。適切である場合には、MCAは次に復号される。データ2010は、認証された場合には利用され、認証されない場合には、データは無視される。一実施形態では、ACK/NACKメッセージ以外のそれ以上の交換は可能ではない。別の実施形態では、ウェイクアップパケットが認証されると、各ノードは、一般的なセキュリティの開始を必要とすることなく、限られた量のデータ(たとえば、1フレーム)の送信を可能にされる。
【0100】
図19は、AESブロック暗号2090を実行することによる(及び、先に図示して説明したような)MAC2020の生成を示している。AESブロック暗号2090の「ノンス」レジスタには、データセット2045がロードされる。データセット2045は、送信者のID(IDsender)を最上位6バイトとして含み、送信者の現在のMCTR値(MCTRsender)を次の3バイトとして含む。次の4バイトは、送信されるデータであり、最後のバイトは、目的とする受信者(複数可)を示すレセプタビットマップである。BANキー2100も、AESブロック暗号2090に入力される。AESブロック暗号2090の結果の出力2110から、最下位3バイトのデータが、MCA2020として指定される。
【0101】
図20は、セキュアウェイクアップパケットを生成及び送信するためのプロセスのフローチャートである。この例では、「アリス」115は、「ボブ」110へデータパケットを通信することを意図している。アリス115は、4バイトのデータ(たとえば、アリスのセンサデータ、患者アクティベータのコマンド等)を生成又は獲得する(2200)。アリス115は、MCTRの現在の値をメモリから読み出し(2210)、図19に関して説明したようにAESブロック暗号2090をポピュレートする(2220)。MACが取得され、アリス115は、4バイトのデータ、MAC、及びMCTR値を含むウェイクアップパケット2000を構成する(2240)。好ましくは、BAN内の各デバイスは、許容可能な送信時間を指定している。アリス115は、適切な時間窓の期間中、構成されたメッセージを送信する(2250)。新しいセキュアウェイクアップメッセージが構成された時、アリス115は、MCTRをインクリメントする(2260)。
【0102】
メッセージが適切に受信されたと仮定すると、アリス115は、受信者からACKメッセージを受信することができる(2270)。ACKメッセージが、予測されるが受信されない場合、又は、他のエラーが発生した場合、アリス115は、新しいMACを生成せず、且つ、MCTRをインクリメントせずに同じメッセージを再送することができる(2250)。ACKがアリス115によって受信されると、ネイティブモードセッションが確立される(2280)。一実施形態では、これは、単に、アリスがデータの送信及び(適切な場合に)ACKメッセージの受信に成功したという点で、セッションが終了される(2290)ことを意味する。代替的な一構成では、ネイティブモードセッションを確立する(2280)ことによって、セッションに携わるBANの各デバイスは、たとえば1フレームといった限られた量のデータを送信することが可能になる。したがって、破線で示すように、アリス115は、さらなるフレームデータを送信する(2300)。ネイティブセッションの各デバイスは、送信することが可能になり、したがって、アリス115は、BANの別のデバイスからデータのフレームを受信することができる(2310)。ACK/NACKメッセージが可能になり(2320)、セッションは、その後、終了される。
【0103】
このように、ウェイクアップパケットがセキュアにされ、少量のデータが、一般的なセキュリティを確立せずに送信可能である。大量のデータを送信する必要がある場合、前述したように、一般的なセキュリティプロトコルが実施される。
【0104】
図21は、たとえばボブ110といった受信ノードが、可能性のあるセキュアにされたウェイクアップメッセージの受信時に用いるプロセスのフローチャートである。ボブ110は、メッセージを受信し(2400)、送信者を識別する(2410)。これは、たとえばアリス115への送信用に割り当てられたネットワークタイムスロットに基づいて行うこともできるし、他の識別手段に基づいて行うこともできる。いずれの場合も、ボブ110は、それが、その称するところ、メッセージを送信したアリス115であること、及び、ボブ110が目的とする受信者であることを識別する。ボブ110は、送信されたメッセージからMCTR値を抽出し(2420)、ボブ110がアリス115についてメモリに記憶しているMCTR値と比較する(2430)。ステップ2440において、受信されたMCTR値が、ボブ110がアリスについて記憶している値よりも小さい場合、メッセージは無視される(2450)。MCTR値が、記憶されている値よりも大きい場合、ボブ110は、受信されたMCTRが正しいと一時的に仮定し(2460)、受信された値の利用に進む。同様に、受信されたMCTR値が、記憶されている値に等しい場合、ボブ110は次のステップに進む。
【0105】
いずれの場合も、受信されたMCTRを利用して、アリス115と同じ方法で、AESブロック暗号2090によってMACが計算される。ボブ110によって計算されたMAC値は、ボブ110によって受信されたMAC値と比較される(2480)。これらのMAC値が一致しない場合、メッセージは無視される(2490)。これらのMAC値が一致する場合、ボブ110は、ネイティブモードに入り(2500)、それに従ってデータを受理する(2510)。ボブ110は、アリス115に関連したMCTR値を更新する(2515)。この結果、増分値が、アリス115によって送信されたMCTR値の有効に加えられる。オプションとして、ボブ110は、ACK/NACKメッセージをセキュアにして送信することができる(2520)。セッションは、その後、終了される(2530)。
【0106】
代替的な一実施形態では、ネイティブモードに入った(2500)各ノードは、さらなるデータのフレームを送信することができる。したがって、ボブ110は、さらなる量のデータをアリス115へ送信することができ(2540)、同様に、アリス115は、さらなるデータのフレームを送信することができる(2550)。セッションキーは、セッション間の新しさを保証するために、MAC出力の一部によって定められる。各ノードは、適切なACK/NACKメッセージ2520を送信することが可能になり、セッションは、その後、終了される(2530)。AES_out2110、BANキー2100がKsesの代わりに利用され、ノンスカウンタの最下位3バイトがMCTR値で開始され、次に最上位2バイトがMCTR値の最下位2バイトを利用し、最上位バイトが0で開始される点を除いて、パケット及びフレームは、一般的なセキュリティに関して、前述したようにセキュアにされる。
【0107】
送信前に、オプションとして、ユーザデータの4バイトにデータプライバシー(暗号化)を適用することができる。暗号化及びその後の解読は、(ちょうどネイティブモード通信について行われるように)これらの4バイトのユーザバイトを4バイトのキーストリームとXORすることによって実現することができる。4バイトのキーストリームは、2110の未使用バイトから得ることもできるし、アリス及びボブの双方に知られている異なるノンス値を使用したブロック暗号の別の実行から得ることもできる。
【0108】
本発明のさまざまな実施形態を説明してきたが、これらのさまざまな実施形態は、例示であって限定することを意図するものではない。開示された主題の複数の部分は、本発明の精神及び範囲内にあり、明示的に述べられていない実施形態において組み合わせることができる。
【特許請求の範囲】
【請求項1】
少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、前記第1のノードから前記第2のノードへセキュアにされている(secured)テレメトリーウェイクアップパケット(wake-up packet)で使用可能データを送信する方法であって、該方法は、
前記第1のノード内で所定のプロトコルを使用してメッセージ認証コードを生成するステップと、
前記第1のノードによって作成された(authored)ウェイクアップ送信の数を示す現在のカウンタ値を前記第1のノードのメモリから取得するステップと、
前記第2のノードの識別情報(identification)を求める(determining)ステップと、
前記メッセージ認証コード、前記現在のカウンタ値、及び所定の量の使用可能データを含む、前記第2のノード用の送信可能なウェイクアップメッセージを構成(composing)するステップと、
前記ウェイクアップメッセージを送信するステップと、
を含む、方法。
【請求項2】
前記メッセージ認証コードは、128ビットブロック暗号で生成される、請求項1に記載の方法。
【請求項3】
前記方法認証コードを生成することは、
前記第1のノードを示す識別子(identifier)を、前記ブロック暗号(block cipher)の入力レジスタに入力すること、
前記現在のカウンタ値を前記入力レジスタに入力すること、
前記使用可能データ(actionable data)を前記入力レジスタに入力すること、
前記第2のノードを示すレセプタ識別情報値(receptor identification value)を前記入力レジスタに入力すること、
前記ブロック暗号にネットワークキーを証明する(proving)こと、及び
少なくとも一部が前記方法認証コードを形成する、出力値を前記ブロック暗号から生成すること、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記第2のノードから肯定応答(acknowledgement)メッセージを受信することをさらに含む、請求項1に記載の方法。
【請求項5】
使用可能データを含む前記ウェイクアップメッセージの送信の成功によって、ネイティブモードテレメトリーセッションが開始し、それによって、前記ネイティブモードにあるいずれのノードも、前記ウェイクアップパケットを受信するとACK/NACKメッセージを送信することができる、請求項1に記載の方法。
【請求項6】
さらなるデータ交換を一切許可することなく(without permitting)、前記ネイティブモードセッションを終了することをさらに含む、請求項5に記載の方法。
【請求項7】
前記ネイティブモードセッションに携わる(engaged in)各ノードが、所定の、及び、各ノードがACK/NACKメッセージを送信できる、単一のデータパケットを送信することを可能にすること、及び
さらなるデータ交換を可能にすることなく、前記ネイティブモードセッションを終了すること、
をさらに含む、請求項5に記載の方法。
【請求項8】
前記第2のノードにおいて前記ウェイクメッセージを受信すること、
前記ウェイクアップメッセージの送信者を識別すること、
前記ウェイクアップメッセージから前記現在のカウンタ値を抽出すること、
前記現在のカウンタ値を、前記第2のノードのメモリ内に記憶されている第1のノードのカウンタ値と比較すること、
メッセージの有効性を評価する第1のメカニズムとして前記比較を利用すること、
前記ウェイクアップメッセージから前記メッセージ認証コードを抽出すること、
前記第2のノードによってアクセス可能な第1のノードのデータをブロック暗号で利用して、第1のノードのメッセージ認証コードを計算すること、
メッセージの有効性を評価する第2のメカニズムとして、前記第1のノードのメッセージ認証コードを、前記ウェイクアップメッセージから抽出された前記メッセージ認証コードと比較すること、及び
前記第1のメカニズム及び前記第2のメカニズムの双方がメッセージの有効性を示している場合に、前記ウェイクアップメッセージから前記使用可能データを受け入れること、
をさらに含む、請求項1に記載の方法。
【請求項9】
メッセージの有効性を評価する前記第1のメカニズムは、
前記現在のカウンタ値が、前記第2のノードの前記メモリに記憶されている前記第1のノードのカウンタ値よりも小さい場合には、前記ウェイクアップメッセージを無視すること、
前記第1のノードのカウンタ値が前記現在のカウンタ値に等しい場合には、前記第2のメカニズムに進む(advancing)と共に、前記第1のノードのカウンタ値を利用(utilizing)すること、及び
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きい場合には、前記第2のメカニズムに進むと共に、前記現在のカウンタ値を利用すること、
をさらに含む、請求項8に記載の方法。
【請求項10】
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きく、且つ、前記第2のメカニズムがメッセージの有効性を示している場合には、前記第2のノードの前記メモリにおいて、前記第1のノードのカウンタ値を前記現在のカウンタ値に置き換えることをさらに含む、請求項9に記載の方法。
【請求項11】
前記第2のメカニズムがメッセージの有効性を示している場合には、前記第2のデバイスの前記メモリにおいて、前記第1のノードのカウンタ値をインクリメントすることをさらに含む、請求項9に記載の方法。
【請求項12】
前記第2のメカニズムがメッセージの有効性を示している場合には、ネイティブモードテレメトリーセッションに入ることをさらに含み、前記第2のノードは、ACKメッセージの送信を許可される、請求項9に記載の方法。
【請求項13】
さらなるデータ交換を許可することなく、前記テレメトリーセッションを終了することをさらに含む、請求項12に記載の方法。
【請求項14】
前記ネイティブテレメトリーモードにおいて各ノードからの単一のさらなるデータ送信の受信を可能にすること、前記第2のノードからの単一のデータ送信の送信を許可すること、及び、前記ネイティブテレメトリーモードの終了よりも前にACK/NACKメッセージを送受信することをさらに含む、請求項12に記載の方法。
【請求項15】
少なくとも第1のノード及び第2のノードを有する電気通信ネットワークであって、前記第1のノードから前記第2のノードへセキュアにされているテレメトリーウェイクアップパケットで使用可能データを送信することを含み、
前記第1のノード内で所定のプロトコルを使用してメッセージ認証コードを生成する手段と、
前記第1のノードによって作成されたウェイクアップ送信の数を示す現在のカウンタ値を前記第1のノードのメモリから取得する手段と、
前記第2のノードの識別情報を求める手段と、
前記メッセージ認証コード、前記現在のカウンタ値、及び所定の量の使用可能データを含む、前記第2のノード用の送信可能なウェイクアップメッセージを構成する手段と、
前記ウェイクアップメッセージを送信する手段と、
を備える、ネットワーク。
【請求項16】
前記方法認証コードを生成することは、
前記第1のノードを示す識別子を、前記ブロック暗号の入力レジスタに入力する手段と、
前記現在のカウンタ値を前記入力レジスタに入力する手段と、
前記使用可能データを前記入力レジスタに入力する手段と、
前記第2のノードを示すレセプタ識別情報値を前記入力レジスタに入力する手段と、
前記ブロック暗号にネットワークキーを証明する手段と、
少なくとも一部が前記方法認証コードを形成する、出力値を前記ブロック暗号から生成する手段と、
をさらに備える、請求項15に記載のネットワーク。
【請求項17】
前記ウェイクアップメッセージの受信に成功するとネイティブモードテレメトリーセッションを開始する手段と、
前記ネイティブモードセッションに携わる各ノードが、所定の、及び、各ノードがACK/NACKメッセージを送信できる、単一のデータパケットを送信することを許可する手段と、
さらなるデータ交換を一切許可することなく、前記ネイティブモードセッションを終了する手段と、
をさらに備える、請求項16に記載のネットワーク。
【請求項18】
前記第2のノードにおいて前記ウェイクメッセージを受信する手段と、
前記ウェイクアップメッセージの送信者を識別する手段と、
前記ウェイクアップメッセージから前記現在のカウンタ値を抽出する手段と、
前記現在のカウンタ値を、前記第2のノードのメモリ内に記憶されている第1のノードのカウンタ値と比較する手段と、
メッセージの有効性を評価する第1のメカニズムとして前記比較を利用する手段と、
前記ウェイクアップメッセージから前記メッセージ認証コードを抽出する手段と、
前記第2のノードによってアクセス可能な第1のノードのデータをブロック暗号で利用して、第1のノードのメッセージ認証コードを計算する手段と、
メッセージの有効性を評価する第2のメカニズムとして、前記第1のノードのメッセージ認証コードを、前記ウェイクアップメッセージから抽出された前記メッセージ認証コードと比較する手段と、
前記第1のメカニズム及び前記第2のメカニズムの双方がメッセージの有効性を示している場合に、前記ウェイクアップメッセージから前記使用可能データを受け入れる手段と、
をさらに備える、請求項15に記載のネットワーク。
【請求項19】
メッセージの有効性を評価する前記第1のメカニズムは、
前記現在のカウンタ値が、前記第2のノードの前記メモリに記憶されている前記第1のノードのカウンタ値よりも小さい場合には、前記ウェイクアップメッセージを無視する手段と、
前記第1のノードのカウンタ値が前記現在のカウンタ値に等しい場合には、前記第2のメカニズムに進むと共に、前記第1のノードのカウンタ値を利用する手段と、
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きい場合には、前記第2のメカニズムに進むと共に、前記現在のカウンタ値を利用する手段と、
をさらに備える、請求項18に記載のネットワーク。
【請求項20】
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きく、且つ、前記第2のメカニズムがメッセージの有効性を示している場合には、前記第2のノードの前記メモリにおいて、前記第1のノードのカウンタ値を前記現在のカウンタ値に置き換える手段をさらに含む、請求項19に記載のネットワーク。
【請求項21】
相互に通信する少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、通信セッション中に前記少なくとも第1のノードと第2のノードとの間の少なくとも1つの通信をセキュアにする方法であって、
前記ネットワーク内において各ノードに一意の識別子を各ノードに割り当てるステップと、
前記ネットワーク内において各ノードに一意のデバイスキーを各ノードに割り当てるステップと、
ネットワークキーを前記ネットワークに割り当てるステップと、
前記少なくとも第1のノードと第2のノードとの間に通信セッションを確立するステップと、
前記ネットワークキーを少なくとも前記第2のノードに提供するステップと、
前記第2のノードの識別子を前記第1のノードに提供するステップと、
認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップと、
前記第1のノードの識別子及び前記第2のノードの識別子を含む第1の通信を準備するステップと、
前記第2のノードのデバイスキーで前記第1の通信をセキュアにするステップと、
前記第1の通信を前記第2のノードへ送信するステップと、
前記第2のノードにおいて、前記第2のノードのデバイスキーを使用して前記第1の通信を解読するステップと、
前記第2のノードのデバイスキーが前記第1の通信をセキュアにするのに使用されたことの検証を条件として、前記第1のノードに前記ネットワークキーを提供するステップと、
前記ネットワークキーを使用して、前記少なくとも第1のノードと第2のノードとの間の第2の通信をセキュアにするステップと、
を含む、方法。
【請求項22】
認可されていない発見を受けにくい方法による前記第2のノードのデバイスキーの前記第1のノードへの提供は、物理トークンからの前記デバイスキーの入力によって行われる、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項23】
前記認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップは、
前記第2のノードのデバイスキーを物理トークン上に配置するステップと、
前記物理トークンから前記第1のノードへ前記第2のノードのデバイスキーを転送するステップと、
を含む、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項24】
前記認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップにおいて、前記第2のノードのデバイスキーは、前記物理トークン上に記憶され、前記物理トークンから前記第1のノードへ前記第2のノードのデバイスキーを転送するステップは、電子的に行われる、請求項23に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項25】
前記物理トークンから前記第1のノードへ前記第2のノードのデバイスキーを電子的に転送する前記ステップは、前記第1のノードが前記デバイスキーを暗号化された形態で提供される方法で行われる、請求項24に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項26】
前記物理トークンは、少なくとも1つのプロセッサを含むキーフォブである、請求項23に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項27】
前記第1の通信をセキュアにするステップは、前記キーフォブの前記少なくとも1つのプロセッサによって実行される、請求項26に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項28】
前記物理トークンはスマートカードである、請求項23に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項29】
前記第1の通信をセキュアにするステップは、前記スマートカードによって実行される、請求項28に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項30】
前記第2のノードのデバイスキーは、認証情報によって暗号化されて、前記スマートカード上に記憶される、請求項29に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項31】
前記認証情報は、パスワード文字の文字列を含む、請求項30に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項32】
前記認証情報は、バイオメトリックパラメータを含む、請求項30に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項33】
前記ネットワークは、医療データサービスネットワークを含む、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項34】
前記少なくとも第1のノード及び第2のノードのうちの少なくとも1つは、埋め込み可能医療デバイスを含む、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項35】
相互に通信する少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、通信セッション中に前記少なくとも第1のノードと第2のノードとの間の少なくとも1つの通信をセキュアにする方法であって、
前記ネットワーク内において各ノードに一意の識別子を各ノードに割り当てるステップと、
前記ネットワーク内において各ノードに一意のデバイスキーを各ノードに割り当てるステップと、
ネットワークキーを前記ネットワークに割り当てるステップと、
前記少なくとも第1のノードと第2のノードとの間に通信セッションを確立するステップと、
前記ネットワークキーを少なくとも前記第1のノードに提供するステップと、
前記第2のノードの識別子を前記第1のノードに提供するステップと、
前記第2のノードのデバイスキーを前記第1のノードにセキュアに提供するステップと、
前記第1のノードの識別子、前記第2のノードの識別子、及び前記ネットワークキーを含む第1の通信を前記第2のノードから前記第1のノードへ送信するステップであって、該第1の通信は、前記第2のノードのデバイスキーでセキュアにされる、送信するステップと、
前記ネットワークキーを使用して、前記少なくとも第1のノード及び第2のノードの間の第2の通信をセキュアにするステップと、
を含む、方法。
【請求項36】
前記ネットワークキーを使用して、前記少なくとも第1のノード及び第2のノードの間の前記第2の通信をセキュアにするステップは、
前記第1のノードにおいて、前記ネットワークキーと第1の任意の数との関数としてセッションキーを生成するステップと、
前記第2のノードにおいて、前記ネットワークキーと前記第1の任意の数との関数として前記セッションキーを独立に生成するステップと、
前記セッションキーを使用するステップであって、前記少なくとも第1のノード及び第2のノードの間の前記第2の通信をセキュアにする、使用するステップと、
を含む、請求項35に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項37】
前記第1の任意の数は疑似乱数である、請求項36に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項38】
前記第1の任意の数は、
前記第1のノードにおいて第2の任意の数を生成するステップと、
前記第2の任意の数を前記第2のノードに提供するステップと、
前記第2のノードにおいて第3の任意の数を生成するステップと、
前記第3の任意の数を前記第1のノードに提供するステップと、
前記第2の任意の数と前記第3の任意の数との双方の関数として前記第1の任意の数を生成するステップと、
を含む、任意の数を生成する方法によって生成される、請求項36に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項39】
前記第2の任意の数及び前記第3の任意の数のうちの少なくとも一方は、疑似乱数である、請求項38に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項40】
前記セッションキーで前記少なくとも第1のノード及び第2のノードの間の前記第2の通信をセキュアにするステップは、暗号の出力と平文を含むメッセージとの間のビット単位のモジュロ2加算を実行するステップを含み、前記暗号の前記出力は、前記セッションキーと、前記通信セッション内において一意の第1のノンスとの双方の関数である、請求項36に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項41】
前記第1のノンスは、前記通信セッション中に前記少なくとも第1のノードと第2のノードとの間で送信された個々の通信の数と、該個々の通信のサイズとの関数である、請求項40に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項42】
前記個々の通信はパケットである、請求項41に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項43】
前記個々の通信の前記サイズは、ブロック単位で測定される、請求項42に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項44】
前記暗号はブロック暗号である、請求項43に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項45】
アペンドされる個々の通信から導出される認証タグを各個々の通信にアペンドするステップをさらに含む、請求項44に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項46】
前記認証タグは、前記セッションキーと、通信されている前記メッセージの前記平文との関数である、請求項45に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項47】
前記認証タグは、第2のノンスの関数でもあり、該第2のノンスは、前記通信セッション中に前記ネットワークの前記少なくとも第1のノードと第2のノードとの間で送信された個々の通信の数の関数である、請求項46に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項48】
前記認証タグは、前記セッションキーと、通信されている前記メッセージの前記平文と、前記通信セッション中に前記ネットワークの前記少なくとも第1のノードと第2のノードとの間で送信された個々の通信の数との関数である、請求項45に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項49】
前記認証タグは、該認証タグがアペンドされる前記個々の通信に対して行われたハッシュ関数の結果である、請求項45に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項50】
相互に通信する少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、通信セッション中に前記少なくとも第1のノードと第2のノードとの間の少なくとも1つの通信をセキュアにする方法であって、
前記ネットワーク内において各ノードに一意のデバイスキーを各ノードに割り当てるステップと、
ネットワークキーを前記ネットワークに割り当てるステップと、
前記少なくとも第1のノードと第2のノードとの間に通信セッションを確立するステップと、
前記第1のノードに任意の数を提供するステップと、
認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップと、
前記第2のノードのデバイスキー及び前記任意の数で第1の通信をセキュアにするステップと、
前記第1の通信を前記第2のノードへ送信するステップと、
前記第2のノードにおいて、前記第2のノードのデバイスキー及び前記任意の数を使用して前記第1の通信を解読するステップと、
前記第1の通信が前記第2のノードのデバイスキー及び前記任意の数でセキュアにされたことが前記第2のノードにおいて検証されると、前記第1のノードに前記ネットワークキーを提供するステップと、
前記ネットワークキーを使用して、前記少なくとも第1のノード及び第2のノードの間の第2の通信をセキュアにするステップと、
を含む、方法。
【請求項51】
前記任意の数は疑似乱数である、請求項50に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項52】
前記任意の数は、
参照キーとノンスとの双方の関数として第1の中間数を生成するステップと、
前記第1の中間値と初期化数と前記参照キーとの関数として前記任意の数を生成するステップと、
を含む、コンピュータによって実施される、任意の数を生成する、方法によって生成される、請求項50に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項53】
前記参照キー及び前記初期化数のうちの少なくとも一方は任意である、請求項52に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項54】
前記参照キー及び前記初期化数のうちの少なくとも一方は疑似乱数である、請求項53に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項55】
前記任意の数は疑似乱数である、請求項54に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項56】
前記任意の数は、前記参照キーと、前記第1の中間値及び前記初期化数のビット単位のモジュロ2加算の結果との関数である、請求項55に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項57】
前記任意の数は、前記第1の中間値及び前記初期化数のビット単位のモジュロ2加算の結果を前記参照キーで暗号化することによって生成される、請求項56に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項58】
前記第1の中間値及び前記初期化数のビット単位のモジュロ2加算の結果を前記参照キーで暗号化することは、ブロック暗号を使用して実施される、請求項57に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項59】
前記任意の数を生成する方法は、前記初期化数を前記任意の数で更新するステップをさらに含む、請求項52に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項60】
前記任意の数は、
参照キーとノンスとの双方の関数として第1の中間数を生成するステップと、
前記第1の中間値と初期化数と前記参照キーとの関数として第2の中間数を生成するステップと、
前記第1の中間値と前記第2の中間値と前記参照キーとの関数として前記任意の数を生成するステップと、
を含む、コンピュータによって実施される、任意の数を生成する方法によって生成される、請求項50に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項61】
少なくとも2つのノードを備えるセキュア無線ネットワークであって、該少なくとも2つのノードのうちの少なくとも一方は、プログラマブルプロセッサ及びコンピュータ可読ストレージ素子を備え、前記コンピュータ可読ストレージ素子は、
参照キーとノンスとの双方の関数として第1の中間数を生成するステップと、
前記第1の中間値と初期化数と前記参照キーとの関数として第2の中間数を生成するステップと、
前記第1の中間値と前記第2の中間値と前記参照キーとの関数として任意の数を生成するステップと、
前記少なくとも2つのノードの間で送信される通信を前記任意の数でセキュアにするステップと、
を含む、任意の数を生成する方法を前記プログラマブルプロセッサに遂行させるための命令を含む、セキュア無線ネットワーク。
【請求項62】
物理トークンをさらに備え、前記物理トークン及び前記少なくとも2つのノードのうちの少なくとも1つは、前記プログラマブルプロセッサ及び前記コンピュータ可読ストレージ素子を備える、請求項61に記載のセキュア無線ネットワーク。
【請求項63】
生物に埋め込むようになっている医療デバイスであって、
療法管理ユニットと、
電源と、
送信機と、
受信機と、
一意のデバイスキーと、
皮下動作可能な物理スイッチと、
該医療デバイスとネットワーク接続されたデバイスからの要求にのみ応答して、前記物理スイッチを起動可能にするようになっているスイッチ制御モジュールと、
を備える医療デバイス。
【請求項64】
無線ネットワーク内の通信をセキュアにするようになっているネットワークキーと、
前記ネットワークキーを記憶するようになっている電子メモリと、
をさらに備え、
該医療デバイスは、前記物理スイッチの起動に応答して前記ネットワークキーを無線で送信するようになっている、請求項63に記載の医療デバイス。
【請求項65】
セッションキーと、
前記セッションキーを記憶するようになっている電子メモリと、
をさらに備え、
該医療デバイスは、前記物理スイッチの起動に応答して前記セッションキーを無線で送信するようになっている、請求項63に記載の医療デバイス。
【請求項66】
前記物理スイッチは、磁気リードセンサを備える、請求項63に記載の医療デバイス。
【請求項67】
前記物理スイッチは、ホール効果センサを備える、請求項63に記載の医療デバイス。
【請求項68】
前記物理スイッチは、加速度計を備える、請求項63に記載の医療デバイス。
【請求項69】
前記物理スイッチは、超音波センサを備える、請求項63に記載の医療デバイス。
【請求項70】
前記物理スイッチは、光検出器を備える、請求項63に記載の医療デバイス。
【請求項71】
少なくとも2つのノードを備えるセキュア無線ネットワークであって、少なくとも1つのノードは、物理スイッチを有し、該物理スイッチは、該セキュア無線ネットワークに物理的に極めて接近しているときにのみ起動するようになっており、前記物理スイッチを有する前記少なくとも1つノードは、前記物理スイッチが起動すると、さらに、該セキュア無線ネットワーク上の少なくとも1つの他のノードへ秘密キーを送信するようにさらになっている、セキュア無線ネットワーク。
【請求項72】
要求側デバイスをさらに備え、前記物理スイッチは、前記要求側デバイスが、該セキュア無線ネットワークのエリアに対して相対的に、前記物理スイッチを有する前記少なくとも1つのノードに物理的に極めて接近することによってのみ起動され、前記秘密キーは、ネットワークキー又はセッションキーである、請求項71に記載のセキュア無線ネットワーク。
【請求項73】
前記物理スイッチを有する前記少なくとも1つのノードは、前記セキュア無線ネットワークにおける別のノードから送信された要求があった時にのみ、前記物理スイッチを起動できる状態を該物理スイッチにおいて達成するようになっている、請求項71に記載のセキュア無線ネットワーク。
【請求項74】
テレメトリーセキュリティシステムによってセキュアにされ、第1の送信範囲を有する無線ネットワークにおいて、該無線ネットワークに対して自身を認証する認証情報を有しない非メンバーノードに、該無線ネットワークの少なくとも1つのメンバーノードへのアクセスを提供する方法であって、
前記少なくとも1つのメンバーノードに、要求側デバイスが物理的に接近することによって起動されるようになっている物理スイッチを提供するステップと、
要求側デバイスを、前記少なくとも1つのメンバーノードの前記物理スイッチに物理的に接近して配置することによって、該少なくとも1つのメンバーノードの該物理スイッチを起動するステップと、
前記物理スイッチを起動することに応答して、前記物理スイッチを有する前記少なくとも1つのメンバーノードの送信電力を削減するステップであって、前記第1の送信範囲よりも小さな第2の送信範囲を達成する、削減するステップと、
前記非メンバーノードを前記第2の送信範囲内に配置するステップと、
前記物理スイッチを有する前記少なくとも1つのメンバーノードから前記非メンバーノードへ認証情報を送信するステップと、
前記非メンバーノードによって、前記無線ネットワークの前記少なくとも1つのメンバーノードへ前記認証情報を提供することによって、前記無線ネットワークに対して前記非メンバーノードを認証するステップと、
を含む方法。
【請求項75】
前記物理スイッチは、加速度計を備える、請求項12に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項76】
前記物理スイッチは、超音波センサを備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項77】
前記物理スイッチは、磁気リードスイッチを備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項78】
前記物理スイッチは、ホール効果センサを備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項79】
前記要求側デバイスは、磁石を備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項80】
前記磁石は、前記非メンバーノード内に統合されている、請求項79に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項81】
前記無線ネットワークは、医療データサービスネットワークである、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項82】
前記要求側デバイスが物理的に接近することによって起動されるようになっている物理スイッチを有する前記少なくとも1つのメンバーノードは、埋め込み可能医療デバイスである、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項1】
少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、前記第1のノードから前記第2のノードへセキュアにされている(secured)テレメトリーウェイクアップパケット(wake-up packet)で使用可能データを送信する方法であって、該方法は、
前記第1のノード内で所定のプロトコルを使用してメッセージ認証コードを生成するステップと、
前記第1のノードによって作成された(authored)ウェイクアップ送信の数を示す現在のカウンタ値を前記第1のノードのメモリから取得するステップと、
前記第2のノードの識別情報(identification)を求める(determining)ステップと、
前記メッセージ認証コード、前記現在のカウンタ値、及び所定の量の使用可能データを含む、前記第2のノード用の送信可能なウェイクアップメッセージを構成(composing)するステップと、
前記ウェイクアップメッセージを送信するステップと、
を含む、方法。
【請求項2】
前記メッセージ認証コードは、128ビットブロック暗号で生成される、請求項1に記載の方法。
【請求項3】
前記方法認証コードを生成することは、
前記第1のノードを示す識別子(identifier)を、前記ブロック暗号(block cipher)の入力レジスタに入力すること、
前記現在のカウンタ値を前記入力レジスタに入力すること、
前記使用可能データ(actionable data)を前記入力レジスタに入力すること、
前記第2のノードを示すレセプタ識別情報値(receptor identification value)を前記入力レジスタに入力すること、
前記ブロック暗号にネットワークキーを証明する(proving)こと、及び
少なくとも一部が前記方法認証コードを形成する、出力値を前記ブロック暗号から生成すること、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記第2のノードから肯定応答(acknowledgement)メッセージを受信することをさらに含む、請求項1に記載の方法。
【請求項5】
使用可能データを含む前記ウェイクアップメッセージの送信の成功によって、ネイティブモードテレメトリーセッションが開始し、それによって、前記ネイティブモードにあるいずれのノードも、前記ウェイクアップパケットを受信するとACK/NACKメッセージを送信することができる、請求項1に記載の方法。
【請求項6】
さらなるデータ交換を一切許可することなく(without permitting)、前記ネイティブモードセッションを終了することをさらに含む、請求項5に記載の方法。
【請求項7】
前記ネイティブモードセッションに携わる(engaged in)各ノードが、所定の、及び、各ノードがACK/NACKメッセージを送信できる、単一のデータパケットを送信することを可能にすること、及び
さらなるデータ交換を可能にすることなく、前記ネイティブモードセッションを終了すること、
をさらに含む、請求項5に記載の方法。
【請求項8】
前記第2のノードにおいて前記ウェイクメッセージを受信すること、
前記ウェイクアップメッセージの送信者を識別すること、
前記ウェイクアップメッセージから前記現在のカウンタ値を抽出すること、
前記現在のカウンタ値を、前記第2のノードのメモリ内に記憶されている第1のノードのカウンタ値と比較すること、
メッセージの有効性を評価する第1のメカニズムとして前記比較を利用すること、
前記ウェイクアップメッセージから前記メッセージ認証コードを抽出すること、
前記第2のノードによってアクセス可能な第1のノードのデータをブロック暗号で利用して、第1のノードのメッセージ認証コードを計算すること、
メッセージの有効性を評価する第2のメカニズムとして、前記第1のノードのメッセージ認証コードを、前記ウェイクアップメッセージから抽出された前記メッセージ認証コードと比較すること、及び
前記第1のメカニズム及び前記第2のメカニズムの双方がメッセージの有効性を示している場合に、前記ウェイクアップメッセージから前記使用可能データを受け入れること、
をさらに含む、請求項1に記載の方法。
【請求項9】
メッセージの有効性を評価する前記第1のメカニズムは、
前記現在のカウンタ値が、前記第2のノードの前記メモリに記憶されている前記第1のノードのカウンタ値よりも小さい場合には、前記ウェイクアップメッセージを無視すること、
前記第1のノードのカウンタ値が前記現在のカウンタ値に等しい場合には、前記第2のメカニズムに進む(advancing)と共に、前記第1のノードのカウンタ値を利用(utilizing)すること、及び
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きい場合には、前記第2のメカニズムに進むと共に、前記現在のカウンタ値を利用すること、
をさらに含む、請求項8に記載の方法。
【請求項10】
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きく、且つ、前記第2のメカニズムがメッセージの有効性を示している場合には、前記第2のノードの前記メモリにおいて、前記第1のノードのカウンタ値を前記現在のカウンタ値に置き換えることをさらに含む、請求項9に記載の方法。
【請求項11】
前記第2のメカニズムがメッセージの有効性を示している場合には、前記第2のデバイスの前記メモリにおいて、前記第1のノードのカウンタ値をインクリメントすることをさらに含む、請求項9に記載の方法。
【請求項12】
前記第2のメカニズムがメッセージの有効性を示している場合には、ネイティブモードテレメトリーセッションに入ることをさらに含み、前記第2のノードは、ACKメッセージの送信を許可される、請求項9に記載の方法。
【請求項13】
さらなるデータ交換を許可することなく、前記テレメトリーセッションを終了することをさらに含む、請求項12に記載の方法。
【請求項14】
前記ネイティブテレメトリーモードにおいて各ノードからの単一のさらなるデータ送信の受信を可能にすること、前記第2のノードからの単一のデータ送信の送信を許可すること、及び、前記ネイティブテレメトリーモードの終了よりも前にACK/NACKメッセージを送受信することをさらに含む、請求項12に記載の方法。
【請求項15】
少なくとも第1のノード及び第2のノードを有する電気通信ネットワークであって、前記第1のノードから前記第2のノードへセキュアにされているテレメトリーウェイクアップパケットで使用可能データを送信することを含み、
前記第1のノード内で所定のプロトコルを使用してメッセージ認証コードを生成する手段と、
前記第1のノードによって作成されたウェイクアップ送信の数を示す現在のカウンタ値を前記第1のノードのメモリから取得する手段と、
前記第2のノードの識別情報を求める手段と、
前記メッセージ認証コード、前記現在のカウンタ値、及び所定の量の使用可能データを含む、前記第2のノード用の送信可能なウェイクアップメッセージを構成する手段と、
前記ウェイクアップメッセージを送信する手段と、
を備える、ネットワーク。
【請求項16】
前記方法認証コードを生成することは、
前記第1のノードを示す識別子を、前記ブロック暗号の入力レジスタに入力する手段と、
前記現在のカウンタ値を前記入力レジスタに入力する手段と、
前記使用可能データを前記入力レジスタに入力する手段と、
前記第2のノードを示すレセプタ識別情報値を前記入力レジスタに入力する手段と、
前記ブロック暗号にネットワークキーを証明する手段と、
少なくとも一部が前記方法認証コードを形成する、出力値を前記ブロック暗号から生成する手段と、
をさらに備える、請求項15に記載のネットワーク。
【請求項17】
前記ウェイクアップメッセージの受信に成功するとネイティブモードテレメトリーセッションを開始する手段と、
前記ネイティブモードセッションに携わる各ノードが、所定の、及び、各ノードがACK/NACKメッセージを送信できる、単一のデータパケットを送信することを許可する手段と、
さらなるデータ交換を一切許可することなく、前記ネイティブモードセッションを終了する手段と、
をさらに備える、請求項16に記載のネットワーク。
【請求項18】
前記第2のノードにおいて前記ウェイクメッセージを受信する手段と、
前記ウェイクアップメッセージの送信者を識別する手段と、
前記ウェイクアップメッセージから前記現在のカウンタ値を抽出する手段と、
前記現在のカウンタ値を、前記第2のノードのメモリ内に記憶されている第1のノードのカウンタ値と比較する手段と、
メッセージの有効性を評価する第1のメカニズムとして前記比較を利用する手段と、
前記ウェイクアップメッセージから前記メッセージ認証コードを抽出する手段と、
前記第2のノードによってアクセス可能な第1のノードのデータをブロック暗号で利用して、第1のノードのメッセージ認証コードを計算する手段と、
メッセージの有効性を評価する第2のメカニズムとして、前記第1のノードのメッセージ認証コードを、前記ウェイクアップメッセージから抽出された前記メッセージ認証コードと比較する手段と、
前記第1のメカニズム及び前記第2のメカニズムの双方がメッセージの有効性を示している場合に、前記ウェイクアップメッセージから前記使用可能データを受け入れる手段と、
をさらに備える、請求項15に記載のネットワーク。
【請求項19】
メッセージの有効性を評価する前記第1のメカニズムは、
前記現在のカウンタ値が、前記第2のノードの前記メモリに記憶されている前記第1のノードのカウンタ値よりも小さい場合には、前記ウェイクアップメッセージを無視する手段と、
前記第1のノードのカウンタ値が前記現在のカウンタ値に等しい場合には、前記第2のメカニズムに進むと共に、前記第1のノードのカウンタ値を利用する手段と、
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きい場合には、前記第2のメカニズムに進むと共に、前記現在のカウンタ値を利用する手段と、
をさらに備える、請求項18に記載のネットワーク。
【請求項20】
前記現在のカウンタ値が前記第1のノードのカウンタ値よりも大きく、且つ、前記第2のメカニズムがメッセージの有効性を示している場合には、前記第2のノードの前記メモリにおいて、前記第1のノードのカウンタ値を前記現在のカウンタ値に置き換える手段をさらに含む、請求項19に記載のネットワーク。
【請求項21】
相互に通信する少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、通信セッション中に前記少なくとも第1のノードと第2のノードとの間の少なくとも1つの通信をセキュアにする方法であって、
前記ネットワーク内において各ノードに一意の識別子を各ノードに割り当てるステップと、
前記ネットワーク内において各ノードに一意のデバイスキーを各ノードに割り当てるステップと、
ネットワークキーを前記ネットワークに割り当てるステップと、
前記少なくとも第1のノードと第2のノードとの間に通信セッションを確立するステップと、
前記ネットワークキーを少なくとも前記第2のノードに提供するステップと、
前記第2のノードの識別子を前記第1のノードに提供するステップと、
認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップと、
前記第1のノードの識別子及び前記第2のノードの識別子を含む第1の通信を準備するステップと、
前記第2のノードのデバイスキーで前記第1の通信をセキュアにするステップと、
前記第1の通信を前記第2のノードへ送信するステップと、
前記第2のノードにおいて、前記第2のノードのデバイスキーを使用して前記第1の通信を解読するステップと、
前記第2のノードのデバイスキーが前記第1の通信をセキュアにするのに使用されたことの検証を条件として、前記第1のノードに前記ネットワークキーを提供するステップと、
前記ネットワークキーを使用して、前記少なくとも第1のノードと第2のノードとの間の第2の通信をセキュアにするステップと、
を含む、方法。
【請求項22】
認可されていない発見を受けにくい方法による前記第2のノードのデバイスキーの前記第1のノードへの提供は、物理トークンからの前記デバイスキーの入力によって行われる、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項23】
前記認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップは、
前記第2のノードのデバイスキーを物理トークン上に配置するステップと、
前記物理トークンから前記第1のノードへ前記第2のノードのデバイスキーを転送するステップと、
を含む、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項24】
前記認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップにおいて、前記第2のノードのデバイスキーは、前記物理トークン上に記憶され、前記物理トークンから前記第1のノードへ前記第2のノードのデバイスキーを転送するステップは、電子的に行われる、請求項23に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項25】
前記物理トークンから前記第1のノードへ前記第2のノードのデバイスキーを電子的に転送する前記ステップは、前記第1のノードが前記デバイスキーを暗号化された形態で提供される方法で行われる、請求項24に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項26】
前記物理トークンは、少なくとも1つのプロセッサを含むキーフォブである、請求項23に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項27】
前記第1の通信をセキュアにするステップは、前記キーフォブの前記少なくとも1つのプロセッサによって実行される、請求項26に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項28】
前記物理トークンはスマートカードである、請求項23に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項29】
前記第1の通信をセキュアにするステップは、前記スマートカードによって実行される、請求項28に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項30】
前記第2のノードのデバイスキーは、認証情報によって暗号化されて、前記スマートカード上に記憶される、請求項29に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項31】
前記認証情報は、パスワード文字の文字列を含む、請求項30に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項32】
前記認証情報は、バイオメトリックパラメータを含む、請求項30に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項33】
前記ネットワークは、医療データサービスネットワークを含む、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項34】
前記少なくとも第1のノード及び第2のノードのうちの少なくとも1つは、埋め込み可能医療デバイスを含む、請求項21に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項35】
相互に通信する少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、通信セッション中に前記少なくとも第1のノードと第2のノードとの間の少なくとも1つの通信をセキュアにする方法であって、
前記ネットワーク内において各ノードに一意の識別子を各ノードに割り当てるステップと、
前記ネットワーク内において各ノードに一意のデバイスキーを各ノードに割り当てるステップと、
ネットワークキーを前記ネットワークに割り当てるステップと、
前記少なくとも第1のノードと第2のノードとの間に通信セッションを確立するステップと、
前記ネットワークキーを少なくとも前記第1のノードに提供するステップと、
前記第2のノードの識別子を前記第1のノードに提供するステップと、
前記第2のノードのデバイスキーを前記第1のノードにセキュアに提供するステップと、
前記第1のノードの識別子、前記第2のノードの識別子、及び前記ネットワークキーを含む第1の通信を前記第2のノードから前記第1のノードへ送信するステップであって、該第1の通信は、前記第2のノードのデバイスキーでセキュアにされる、送信するステップと、
前記ネットワークキーを使用して、前記少なくとも第1のノード及び第2のノードの間の第2の通信をセキュアにするステップと、
を含む、方法。
【請求項36】
前記ネットワークキーを使用して、前記少なくとも第1のノード及び第2のノードの間の前記第2の通信をセキュアにするステップは、
前記第1のノードにおいて、前記ネットワークキーと第1の任意の数との関数としてセッションキーを生成するステップと、
前記第2のノードにおいて、前記ネットワークキーと前記第1の任意の数との関数として前記セッションキーを独立に生成するステップと、
前記セッションキーを使用するステップであって、前記少なくとも第1のノード及び第2のノードの間の前記第2の通信をセキュアにする、使用するステップと、
を含む、請求項35に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項37】
前記第1の任意の数は疑似乱数である、請求項36に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項38】
前記第1の任意の数は、
前記第1のノードにおいて第2の任意の数を生成するステップと、
前記第2の任意の数を前記第2のノードに提供するステップと、
前記第2のノードにおいて第3の任意の数を生成するステップと、
前記第3の任意の数を前記第1のノードに提供するステップと、
前記第2の任意の数と前記第3の任意の数との双方の関数として前記第1の任意の数を生成するステップと、
を含む、任意の数を生成する方法によって生成される、請求項36に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項39】
前記第2の任意の数及び前記第3の任意の数のうちの少なくとも一方は、疑似乱数である、請求項38に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項40】
前記セッションキーで前記少なくとも第1のノード及び第2のノードの間の前記第2の通信をセキュアにするステップは、暗号の出力と平文を含むメッセージとの間のビット単位のモジュロ2加算を実行するステップを含み、前記暗号の前記出力は、前記セッションキーと、前記通信セッション内において一意の第1のノンスとの双方の関数である、請求項36に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項41】
前記第1のノンスは、前記通信セッション中に前記少なくとも第1のノードと第2のノードとの間で送信された個々の通信の数と、該個々の通信のサイズとの関数である、請求項40に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項42】
前記個々の通信はパケットである、請求項41に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項43】
前記個々の通信の前記サイズは、ブロック単位で測定される、請求項42に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項44】
前記暗号はブロック暗号である、請求項43に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項45】
アペンドされる個々の通信から導出される認証タグを各個々の通信にアペンドするステップをさらに含む、請求項44に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項46】
前記認証タグは、前記セッションキーと、通信されている前記メッセージの前記平文との関数である、請求項45に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項47】
前記認証タグは、第2のノンスの関数でもあり、該第2のノンスは、前記通信セッション中に前記ネットワークの前記少なくとも第1のノードと第2のノードとの間で送信された個々の通信の数の関数である、請求項46に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項48】
前記認証タグは、前記セッションキーと、通信されている前記メッセージの前記平文と、前記通信セッション中に前記ネットワークの前記少なくとも第1のノードと第2のノードとの間で送信された個々の通信の数との関数である、請求項45に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項49】
前記認証タグは、該認証タグがアペンドされる前記個々の通信に対して行われたハッシュ関数の結果である、請求項45に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項50】
相互に通信する少なくとも第1のノード及び第2のノードを有する電気通信ネットワークにおいて、通信セッション中に前記少なくとも第1のノードと第2のノードとの間の少なくとも1つの通信をセキュアにする方法であって、
前記ネットワーク内において各ノードに一意のデバイスキーを各ノードに割り当てるステップと、
ネットワークキーを前記ネットワークに割り当てるステップと、
前記少なくとも第1のノードと第2のノードとの間に通信セッションを確立するステップと、
前記第1のノードに任意の数を提供するステップと、
認可されていない発見を受けにくい方法で前記第2のノードのデバイスキーを前記第1のノードに提供するステップと、
前記第2のノードのデバイスキー及び前記任意の数で第1の通信をセキュアにするステップと、
前記第1の通信を前記第2のノードへ送信するステップと、
前記第2のノードにおいて、前記第2のノードのデバイスキー及び前記任意の数を使用して前記第1の通信を解読するステップと、
前記第1の通信が前記第2のノードのデバイスキー及び前記任意の数でセキュアにされたことが前記第2のノードにおいて検証されると、前記第1のノードに前記ネットワークキーを提供するステップと、
前記ネットワークキーを使用して、前記少なくとも第1のノード及び第2のノードの間の第2の通信をセキュアにするステップと、
を含む、方法。
【請求項51】
前記任意の数は疑似乱数である、請求項50に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項52】
前記任意の数は、
参照キーとノンスとの双方の関数として第1の中間数を生成するステップと、
前記第1の中間値と初期化数と前記参照キーとの関数として前記任意の数を生成するステップと、
を含む、コンピュータによって実施される、任意の数を生成する、方法によって生成される、請求項50に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項53】
前記参照キー及び前記初期化数のうちの少なくとも一方は任意である、請求項52に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項54】
前記参照キー及び前記初期化数のうちの少なくとも一方は疑似乱数である、請求項53に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項55】
前記任意の数は疑似乱数である、請求項54に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項56】
前記任意の数は、前記参照キーと、前記第1の中間値及び前記初期化数のビット単位のモジュロ2加算の結果との関数である、請求項55に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項57】
前記任意の数は、前記第1の中間値及び前記初期化数のビット単位のモジュロ2加算の結果を前記参照キーで暗号化することによって生成される、請求項56に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項58】
前記第1の中間値及び前記初期化数のビット単位のモジュロ2加算の結果を前記参照キーで暗号化することは、ブロック暗号を使用して実施される、請求項57に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項59】
前記任意の数を生成する方法は、前記初期化数を前記任意の数で更新するステップをさらに含む、請求項52に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項60】
前記任意の数は、
参照キーとノンスとの双方の関数として第1の中間数を生成するステップと、
前記第1の中間値と初期化数と前記参照キーとの関数として第2の中間数を生成するステップと、
前記第1の中間値と前記第2の中間値と前記参照キーとの関数として前記任意の数を生成するステップと、
を含む、コンピュータによって実施される、任意の数を生成する方法によって生成される、請求項50に記載の通信セッション中に前記少なくとも第1のノードと第2のノードとの間の前記少なくとも1つの通信をセキュアにする方法。
【請求項61】
少なくとも2つのノードを備えるセキュア無線ネットワークであって、該少なくとも2つのノードのうちの少なくとも一方は、プログラマブルプロセッサ及びコンピュータ可読ストレージ素子を備え、前記コンピュータ可読ストレージ素子は、
参照キーとノンスとの双方の関数として第1の中間数を生成するステップと、
前記第1の中間値と初期化数と前記参照キーとの関数として第2の中間数を生成するステップと、
前記第1の中間値と前記第2の中間値と前記参照キーとの関数として任意の数を生成するステップと、
前記少なくとも2つのノードの間で送信される通信を前記任意の数でセキュアにするステップと、
を含む、任意の数を生成する方法を前記プログラマブルプロセッサに遂行させるための命令を含む、セキュア無線ネットワーク。
【請求項62】
物理トークンをさらに備え、前記物理トークン及び前記少なくとも2つのノードのうちの少なくとも1つは、前記プログラマブルプロセッサ及び前記コンピュータ可読ストレージ素子を備える、請求項61に記載のセキュア無線ネットワーク。
【請求項63】
生物に埋め込むようになっている医療デバイスであって、
療法管理ユニットと、
電源と、
送信機と、
受信機と、
一意のデバイスキーと、
皮下動作可能な物理スイッチと、
該医療デバイスとネットワーク接続されたデバイスからの要求にのみ応答して、前記物理スイッチを起動可能にするようになっているスイッチ制御モジュールと、
を備える医療デバイス。
【請求項64】
無線ネットワーク内の通信をセキュアにするようになっているネットワークキーと、
前記ネットワークキーを記憶するようになっている電子メモリと、
をさらに備え、
該医療デバイスは、前記物理スイッチの起動に応答して前記ネットワークキーを無線で送信するようになっている、請求項63に記載の医療デバイス。
【請求項65】
セッションキーと、
前記セッションキーを記憶するようになっている電子メモリと、
をさらに備え、
該医療デバイスは、前記物理スイッチの起動に応答して前記セッションキーを無線で送信するようになっている、請求項63に記載の医療デバイス。
【請求項66】
前記物理スイッチは、磁気リードセンサを備える、請求項63に記載の医療デバイス。
【請求項67】
前記物理スイッチは、ホール効果センサを備える、請求項63に記載の医療デバイス。
【請求項68】
前記物理スイッチは、加速度計を備える、請求項63に記載の医療デバイス。
【請求項69】
前記物理スイッチは、超音波センサを備える、請求項63に記載の医療デバイス。
【請求項70】
前記物理スイッチは、光検出器を備える、請求項63に記載の医療デバイス。
【請求項71】
少なくとも2つのノードを備えるセキュア無線ネットワークであって、少なくとも1つのノードは、物理スイッチを有し、該物理スイッチは、該セキュア無線ネットワークに物理的に極めて接近しているときにのみ起動するようになっており、前記物理スイッチを有する前記少なくとも1つノードは、前記物理スイッチが起動すると、さらに、該セキュア無線ネットワーク上の少なくとも1つの他のノードへ秘密キーを送信するようにさらになっている、セキュア無線ネットワーク。
【請求項72】
要求側デバイスをさらに備え、前記物理スイッチは、前記要求側デバイスが、該セキュア無線ネットワークのエリアに対して相対的に、前記物理スイッチを有する前記少なくとも1つのノードに物理的に極めて接近することによってのみ起動され、前記秘密キーは、ネットワークキー又はセッションキーである、請求項71に記載のセキュア無線ネットワーク。
【請求項73】
前記物理スイッチを有する前記少なくとも1つのノードは、前記セキュア無線ネットワークにおける別のノードから送信された要求があった時にのみ、前記物理スイッチを起動できる状態を該物理スイッチにおいて達成するようになっている、請求項71に記載のセキュア無線ネットワーク。
【請求項74】
テレメトリーセキュリティシステムによってセキュアにされ、第1の送信範囲を有する無線ネットワークにおいて、該無線ネットワークに対して自身を認証する認証情報を有しない非メンバーノードに、該無線ネットワークの少なくとも1つのメンバーノードへのアクセスを提供する方法であって、
前記少なくとも1つのメンバーノードに、要求側デバイスが物理的に接近することによって起動されるようになっている物理スイッチを提供するステップと、
要求側デバイスを、前記少なくとも1つのメンバーノードの前記物理スイッチに物理的に接近して配置することによって、該少なくとも1つのメンバーノードの該物理スイッチを起動するステップと、
前記物理スイッチを起動することに応答して、前記物理スイッチを有する前記少なくとも1つのメンバーノードの送信電力を削減するステップであって、前記第1の送信範囲よりも小さな第2の送信範囲を達成する、削減するステップと、
前記非メンバーノードを前記第2の送信範囲内に配置するステップと、
前記物理スイッチを有する前記少なくとも1つのメンバーノードから前記非メンバーノードへ認証情報を送信するステップと、
前記非メンバーノードによって、前記無線ネットワークの前記少なくとも1つのメンバーノードへ前記認証情報を提供することによって、前記無線ネットワークに対して前記非メンバーノードを認証するステップと、
を含む方法。
【請求項75】
前記物理スイッチは、加速度計を備える、請求項12に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項76】
前記物理スイッチは、超音波センサを備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項77】
前記物理スイッチは、磁気リードスイッチを備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項78】
前記物理スイッチは、ホール効果センサを備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項79】
前記要求側デバイスは、磁石を備える、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項80】
前記磁石は、前記非メンバーノード内に統合されている、請求項79に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項81】
前記無線ネットワークは、医療データサービスネットワークである、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【請求項82】
前記要求側デバイスが物理的に接近することによって起動されるようになっている物理スイッチを有する前記少なくとも1つのメンバーノードは、埋め込み可能医療デバイスである、請求項74に記載の前記無線ネットワークの前記少なくとも1つのメンバーノードへのアクセスを提供する方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公表番号】特表2010−507928(P2010−507928A)
【公表日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2009−525689(P2009−525689)
【出願日】平成19年8月9日(2007.8.9)
【国際出願番号】PCT/US2007/075537
【国際公開番号】WO2008/021920
【国際公開日】平成20年2月21日(2008.2.21)
【出願人】(591007804)メドトロニック,インコーポレイテッド (243)
【住所又は居所原語表記】710Medtronic Parkway,Minneapolis,Minnesota 55432,U.S.A
【Fターム(参考)】
【公表日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願日】平成19年8月9日(2007.8.9)
【国際出願番号】PCT/US2007/075537
【国際公開番号】WO2008/021920
【国際公開日】平成20年2月21日(2008.2.21)
【出願人】(591007804)メドトロニック,インコーポレイテッド (243)
【住所又は居所原語表記】710Medtronic Parkway,Minneapolis,Minnesota 55432,U.S.A
【Fターム(参考)】
[ Back to top ]