セキュリティ用キーサーバ、否認防止と監査を備えたプロセスの実現
キーサーバ(216、320、420)に基づくシステム(210、310、410)により、送信者と受信者参加者(212、312、412)は通信文(218、324、424)を安全に交換することができる。キーサーバ(216、320、420)は、参加者がメッセージの保護に使用する鍵を作成、保存、公開する。参加者は、キーサーバから提供された鍵(220、330、430)を使用して、暗号化形式の通信文を交換する。認証オーソリティ(318、418)からのアサーション(322、422)を使用して、参加者の証明書を確立することができる。正のイベントと負のイベント(342、344)と、復号化のための鍵の要求があったかどうか、あった場合にはそれはいつか、何回あったかを、制御イベント(340)に基づいて決定できる。キーサーバはまた、通信の送信者と受信者を、もっともらしい否認の実施が不可能で、容易に監査を行える形で確立するために、トランザクションIDに関連したアサーションからの情報を保存できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、インターネットを含むネットワーク上で通信が行われるメッセージのセキュリティの提供、より詳細には、メッセージに関連したイベントを決定し、これを監査し、メッセージを否認防止可能にするための情報の確立に関する。
【背景技術】
【0002】
実質的にすべての電子通信媒体のユーザが、このようなシステム内に保存されている通信文の安全性について考えてみたことがある。これに関しては様々な理由があり、とてもここで扱いきれる数ではないのだが、そのうちの数例は、複雑なテクノロジーへの依存によらなければならないもの、未知で恐らくは信頼できない仲介機関への依存によらなければならないもの、かつ、通信伝送距離と、我々が到達しようとしている巨大な人口に起因する電子ネットワークにおける匿名性の増加によるものである。
【0003】
既存の通信システムがセキュリティメカニズムを確立し、ユーザから信頼されるようになるまでには長い時間がかかった。米国では従来の郵便制度が良い例である。我々が投函した郵便物は、往々にして物理的に非常に安全な容器内に入れられる。次に、郵便物は集配され、分類され、配送され、最終的に、受取人によって内容物が回収される、似たような容器へと配達される。差出人の容器と受取人の容器の間で郵便物を取り扱う人々は、我々にとって周知であり、非常に信頼できると考えられている単一組織(少なくとも米国内)の一部である。我が国の郵便システムのセキュリティが稀に間違いを起こした時でさえ、この間違いを検出して修正するメカニズムが整っている。
【0004】
不幸なことに、我々の多くは、電子通信の安全性については郵便システムに全く及ばない程度の信頼しか抱いていないが、その理由は、これが現代ネットワーク内で、送信者と受信者の間でやりとりされるためである。一般に、我々は、電子メール、インスタントメッセージ、ビデオ会議、共同文書などのようなメッセージの送信および受信のための「容器」の安全性を維持していると、我々の知識の範囲内だけで信じている。これは、これらの容器が、我々個人の物理的管理範囲内にあるパーソナルコンピュータ(PC)、ワークステーション、インターネット機器などであるためである。また、我々は通常、こうした容器どうし間の、電子媒体内で起こっていることは管理できないと思っている。例えば、送信者と受信者が賢くならない限り、安全化されていないメッセージを受信およびコピーしてしまう悪人は潜在的にいくらでもいるのである。さらに悪いことに、多くの場合、電子通信文はその通過過程において紛失されたり、悪意によって改ざんされ、不当にでっち上げられて全く別のものにされてしまう可能性がある。
【0005】
電子メッセージセキュリティの問題は深刻であり、既に多大な注目を浴びている。セキュリティの侵害を罰し、侵害を思いとどまらせるために、少なくとも電子メールメッセージについては既に法的なメカニズムが配備され、その処罰は重くなり続けている。しかしながら、電子メッセージが遠距離の高速移動という非常に有益な機能を有するということは、同時に、電子メッセージがこうした法的努力を潜在的に妨害し、ユーザの秘密を確実に危機に陥れる可能性があることを意味する。
【0006】
古い技術は、最新電子媒体で使用するために再生、拡大され続けているが、これらは多くの場合、安全性を高めるために、従来の郵便システムと組み合わせて長いこと使用されてきたものの応用形である。したがって、我々は暗号技術への関心とその使用の蘇生を見ているのである。
【0007】
電子通信を安全化する既存のシステムの多くは扱い難いか、十分に信用されていないか、あるいはその両方である。現代の電子通信を可能かつ効率的にしたこの電子システムが、多数の従来の暗号システムを旧式にし、または少なくとも非常に疑わしいものにしている。これと最新性が同じ、またはより高いコンピュータシステムは、多数の退屈なオペレーションを実質的に平行な方法でスタガリングする能力を備えており、過去の多くの強力な暗号システムはもはや信頼できないものとして示されている。
【0008】
しかし、電子通信を安全化する新規のシステムが登場している。過去25年間において、一般に「公開鍵インフラストラクチャ」(PKI)と呼ばれる、公開鍵と秘密鍵に基づくシステムが導入され、その開発が急速に進み、最近では使用されてきた。これらのシステムは現在非常に普及しているが、その使用は未熟かつ不当であると思われる。
【0009】
PKIシステムの基礎は、一般に1970年代中頃に、Massachusetts Institute of TechnologyのRon Rivest、 Adi Shamir、 Leonard Adlemanの貢献によってもたらされた。この貢献の結果開発された、一般にRSAアルゴリズムとして知られているものは、プリンシパルに公開鍵と秘密鍵の両方を割り当てる暗号技術である。公開鍵は全員に公開されるが、秘密鍵は秘密性を保持される。使用される鍵は、時として数百桁の大きな素数と、大きな数字の数学的因数分解の難しさが存在するRSAアルゴリズムの固有の強度の両方である。
【0010】
メッセージを安全に送信するには、そのメッセージを、その宛先受信者(ここではプリンシパル)の公開鍵を使って暗号化する。次に、受信者のみが、自分の秘密鍵を使ってそのメッセージを復号化および読み出すことができる。この単純なシナリオでは、誰もが受信者にメッセージを送信で、受信者のみがそのメッセージを読むことができる。
【0011】
PKI手法のより有用な特徴は、送信者もプリンシパルになることができ、この送信者のみが送信できるメッセージ、すなわち認証防止メッセージを送信することができることである。このために、送信者は、自分の秘密鍵を使ってメッセージ(多くの場合、長いメッセージの内の一部分のみ)を暗号化する。これにより、その送信者の公開鍵を使用してしかそのメッセージを解読できないため、受信者は、送信者とされている者が実は問題となっている送信者、人物であることを知ることができる。
【0012】
実際に、PKIシステムでは送信者と受信者の両方がプリンシパルであることが多い。送信者は自分の秘密鍵を使って「署名」を暗号化し、この署名をメッセージに嵌め込み、さらにこれを受信者の公開鍵を使って暗号化する。これにより、メッセージが受信者以外の人物から保護される。受信者のみが、自分の秘密鍵を使ってそのメッセージを復号化でき、受信者はこの復号化が済むと、さらに送信者の公開鍵を使って署名だけを復号化する。この方法で、受信者は、送信者が否認することを禁止された、署名の送信元である本人であると知って安心できる(さらに、無条件にメッセージ全体が本物であるとわかるが、しかし、メッセージ全体のハッシュといったものを署名に一意に含めることでより安全になる)。
【0013】
しかし、PKIは「インフラストラクチャ」という用語を使用しているとおり、この普及した暗号システムには大規模なサポートシステムが必要である。公開鍵は公開されなければならず、これにより、メッセージを送信したい人物が目的のメッセージ受信者用の鍵を決定することができる。さらに、公開鍵は指定された期間(例えば1年間)だけ認証され、その後は更新する必要がある。最後に、秘密鍵が危険にさらされた場合、または危険にさらされた疑いがある場合には、対応する秘密鍵を破棄しなければならない。したがって、すべての通信参加者は、公開鍵をメッセージの暗号化または署名の検証に使用する前に、公開鍵の破棄状態を調べる必要がある。通常、これらの作業は「認証局」によって取り扱われる。そのため、不幸にも現在、我が国の競争社会の市場において実証されているとおり、複数の認証局が加入を求めて競い合い、潜在的なユーザを完全に混乱させる結果を引き起こす。さらに、公開鍵のライフサイクル(作成、配布、更新、破棄)によって、展開シナリオが複雑かつ管理不能なものになる可能性がある。
【0014】
例えば、自分達の間だけで安全な通信を実現したいと願う小規模グループどうしで、また、否認の心配がない場合には、認証局を使用せずに公開および秘密鍵システムを実施することはもちろん可能である。しかし、適切に実証されたRSAアルゴリズムの、またはこれに関連した初期公開に対する我が国の政府の反応は、完全に拘束から解放された社会が政府の社会を守る能力への脅威になりかねないという非常に否定的なものである。ほとんどの統治機関が、この超強力な暗号技術の使用を完全に抑制することは今や遅すぎるであろうが、このような統治機関が、本当に適切な場合のみに開封できる暗号システム(多くの場合「キーエスクロウ」システムと呼ばれる)を今後さらに受け入れる可能性がある。
【0015】
さらにPKIには、これ以外にも、その使用性と効率性に関連した問題がいくつかある。鍵は、通常平均的な人間が記憶できる能力を超える、非常に大きなものであるため、その扱いが難しい。鍵を扱うためだけに、マシンに基づく記憶装置と使用メカニズムを採用しなければならない。これは、複数のシステムにかけてのモバイル使用と、揮発性メモリからの削除後の修復にとって非常に重要であり、これによって、秘密鍵を格納するために必要な効率的に物理鍵となるものの保護に関連したさらに多くの問題が生じる。さらに、PKIのような受信者に基づく鍵システムは扱い難い場合がある。例えば、宛先受信者が複数である場合、その各々について公開鍵を取得し、各々メッセージコピーを暗号化するためにそれぞれ別個に使用する。これは、宛先メッセージ受信者のリストが大きくなるに従い、非常に重大な計算上の負担を包含しかねない。したがって、実際の使用上での一般的な例では、まず、1つの対称鍵を使ってメッセージを暗号化する。次に、各受信者の公開鍵を使ってメッセージ鍵を複数回暗号化する。これにより、メッセージ自体が一度だけ暗号化される。複数回暗号化されるのはメッセージ鍵である。
【0016】
したがって、従来技術の暗号システムとPKIシステム、およびこれらを採用する電子メッセージシステムは多くの恩恵を提供する。しかし不幸にも、これらでさえもまだ不十分であることがわかった。このようなシステムを改良し、増設し、さらには交換することが望ましいことが次々と明白になったため、本発明の発明者が「セキュア電子メールシステム」と「セキュリティサーバシステム」を開発した。これらは、米国特許第6,584,564号、米国特許出願第10/305,726号においてそれぞれ網羅されており、本明細書中ではその全体が参照により組み込まれている。
【0017】
上述の手法は、大幅に改良されたデジタルメッセージ通信であるが、それでもまだ改良の余地はある。例えば、多くのビジネスがデジタル通信を使用して、顧客、供給業者、共同経営者、その他のビジネス提携者とのビジネスを遂行している。デジタル通信(例えば電子メール、企業内インスタントメッセージング(EIM)など)は、非デジタル通信(例えば書類郵便物)と同様、スタンドアロンプロセスではまずない。多くの場合、デジタル通信は総体的なビジネスプロセスの流れの1ステップであり、1つのビジネスイベントによって誘発される。例えば、金融ブローカー企業が、顧客の追加証拠金支払いの期日が来たと判断したとき、顧客に通知する必要がある。ブローカー企業は顧客に電話をかけて適切な処置を行うことができる。顧客がその通知を開封したか否かを判断するビジネス能力があれば、顧客に電話で確認する工程に大きく影響する。この例では、顧客が通知を開封したことを企業側が証明できれば、顧客に電話をかけて追及する必要はない。これにより顧客に確認する電話の数が減り、企業の節約につながる。
【0018】
例示の目的で電子メールを使用して技術背景を説明する。電子メールは、トランザクション(電子メール)、トランザクション発信者(電子メールの送信者)、トランザクション対象者(一人またはそれ以上の電子メール受信者)が常に関与するため、この説明に適している。さらに、送信者と受信者が相互に対して直接通信を行わない、分断された環境を仮定する。電子メールを読み出すことにより1つのイベントが構成され、さらに、指定された期間内に電子メールの読み出しを行わない場合にも1つのイベントが構成される。このようなイベントの知識は、企業および他の状況の両方において特に有用である。
【0019】
例えばビジネスプロセスの文脈にて上述したような、既存のデジタルメッセージ通信システムには多数の制限がある。例えば、これらのシステムは透明性でない。公開鍵インフラストラクチャ(PKI)のような既存の技術では、通信が行われたデータの受領の通知にユーザが参加する必要がある。これはアクションおよびアクションの欠如のどちらもサポートしていない。既存の技術では、こうしたシステムの使用によって提供される情報は、通信が行われたデータの受信に関する情報だけである。受信の欠如に関する情報は提供されない。さらに、既存のシステムは分断されていない。こうしたシステムが使用する既存の技術、例えばウェブに基づく通信では、通信データの送信者が受信者と直接接続する必要がある。さらに、受信者の自発的な参加を要する。例えば、受信確認電子メールでは受信者の自発的参加が必要である。受信者が通信文の受信を通知しないことを選択した場合、発信者はこのイベントと、通信文を受信していない受信者とを区別することが全くできない。既存のシステムはこの制限により、不当にも、発信者が制御するシステムではなく、受信者が制御するシステム、または全く制御されないシステムになってしまう。さらに、PKIに基づく電子メールのような既存技術では、発信者は、いつ受信者にデータを読めるようにするかを制御できない。メッセージが送信されれば、受信者はその到着と同時にこれを読むことができる。さらに既存のシステムは、通信データの容量によって制約されている場合が多い。ウェブに基づく通信のような既存技術は、通信データのサイズに依存している。データのサイズが大きいほど、より大容量のメモリ、基礎システムのより高い処理能力が必要になる。これによって、予測される通信システム能力の管理が難しくなると思われる。
【0020】
したがって、ビジネス通信を含む、しかし必ずしもこれに限定されないデジタル通信に関連したイベントの決定に関する限り、従来技術の暗号システム、特にPKIシステムは不十分であることが証明された。
【0021】
上述した手法は、デジタル通信の利用に伴う問題をすべて述べていない。一般的な従来技術のシステムは、本発明者による過去の発明品と同様に、通信の否認防止と監査という、2つの特に難しい問題を検討する方法についてそれほど説明していない。
【0022】
否認防止または監査のいずれかを提供する既存のデジタルメッセージ通信用システムには多数の規制がある。例えば、これらのシステムは透明性でない。PKIのような技術は、ユーザに秘密鍵を保持させ、これを活発に使用して署名を生成させる負担を課す。さらに、参加者はトランザクションがコピーを有することを証明するか、あるいはトランザクション署名者のデジタル証明書を取り出す必要がある。またさらに、既存の技術は、否認防止と監査のいずれにも何のサービスも提供しない。PK−Iに基づく技術は、すべての参加者(トランザクションの発信者と対象者の両方)が信頼する公開鍵インフラストラクチャを使用しなければならない。PKI技術以外の技術(例えば、データベースでのトランザクションログの保存)は、完全に異なるメカニズムを使用し、PKIと相互動作しない。そのため、既存のシステムはPKIに基づく技術またはPKI技術以外の技術を使用するが、両方と実質的に相互動作することが不可能であり、またその必要もない。さらに、既存の技術は単一レベルの強度の否認防止しか提供していないが、その場合、異なる程度は通常、状況を変えるために適当である。例えば、PKIでは否認防止の強度は、その基礎となる証明書の確実性のレベルに等しい。トランザクション実行中の参加者は、異なる確実性を有する異なる証明書を使用することで強度を変更することしかできない。さらに既存の技術は、否認防止と監査に厳しい信頼規則を課している。例えば、PKIシステムでは、トランザクションを検証する参加者は、署名者の証明書を信頼しなければならない。PKIシステム以外のシステムでは、検証者は、トランザクションログを保持するシステムを信頼しなければならない。
【0023】
したがって、従来技術の暗号およびPKIシステムは、デジタルメッセージ通信における否認防止および監査の問題を十分に解決できていない。
【特許文献1】米国特許第6,584,564号明細書
【特許文献2】米国特許出願第10/305,726号明細書
【発明の開示】
【発明が解決しようとする課題】
【0024】
したがって、本発明の目的は、インターネットのようなネットワーク上で通信が行われるメッセージに安全性を提供することである。
【0025】
簡潔に言えば、本発明の一つの好ましい実施形態は、メッセージがメッセージヘッダとメッセージコンテンツを備える場合に、複数の参加者間でメッセージを安全に通信するシステムである。このシステムでは、メッセージルータが、参加者どうしをネットワーク経由で接続し、参加者間で、メッセージをそのメッセージヘッダに基づいて配送する。キーサーバは参加者に会話鍵を作成、保存、公開するが、この会話鍵は、メッセージのメッセージコンテンツを暗号化、復号化するために使用される。
【0026】
簡潔に言えば、本発明の別の好ましい実施形態は、ネットワーク上の複数の参加者間で安全に通信する方法である。メッセージ送信する参加者は送信元参加者であり、メッセージを受信する参加者は宛先参加者である。メッセージは、メッセージヘッダとメッセージコンテンツを備える。この方法では、送信元参加者が、やはりネットワーク上にあるキーサーバから会話鍵を取得する。次に、送信元参加者は、この会話鍵に基づいて、メッセージのメッセージコンテンツを暗号化する。その後、メッセージをネットワーク経由で宛先参加者に送信する。すると、宛先参加者が、送信者参加者からのメッセージをネットワーク経由で受信する。宛先参加者は、上記のキーサーバから会話鍵を取得する。最後に、宛先参加者は、この会話鍵に基づいてメッセージのメッセージコンテンツを復号化する。
【0027】
簡潔に言えば、本発明の別の好ましい実施形態は、通信イベントを決定するシステムである。通信参加者に鍵を公開するためにキーサーバを設けており、鍵は、通信文を暗号化する暗号鍵、または復号化する復号鍵であり、通信参加者には通信文を作成しようとする発信者と、通信文を見ようとする受信者が含まれる。キーサーバは、各通信文にさらに識別子を割り当て、識別子、対応する復号鍵、対応する制御イベントを含んだ記録をデータベースに保存する。さらにキーサーバは、各通信文につき、復号鍵を要求するゼロ、1つ、またはそれ以上の要求を受信し、ここで、これらの要求は識別子を含んでいる。さらに、キーサーバは、各通信文について、制御イベントと、受信した要求の数、または要求の受信時間に基づいて、正のイベントと負のイベントで構成された少なくとも1つの構成要素のセットを決定する。
【0028】
簡潔に言えば、本発明の別の好ましい実施形態は、通信イベントを決定する方法である。通信文を証明するリソースIDの第1の要求が受信され、ここで、この第1の要求は、その通信の目的とされる受信者の少なくとも1つの証明書を含んでいる。少なくとも1つの制御イベントが定義されるが、この制御イベントは少なくとも1つの証明書を含んでいる。第1の要求に応答してリソースIDが提供される。リソースID、制御イベント、通信文を復号化する復号鍵が記憶される。復号鍵を要求する第2の要求が監視されるが、ここで、この第2の要求はリソースIDと、推定上目的とされる受信者についての証明情報を含んでいる。第2の要求を受信したら、制御イベントと一致するか否かが判断される。一致した場合には、第2の要求に応答して復号鍵が提供され、証明情報と正のイベントがリソースIDに関連して記憶される。受信した第2の要求が一致しない場合には、負のイベントがリソースIDに関連して記憶される。あるいは、目的の受信者について第2の要求が受信されない場合には、負のイベントがリソースIDに関連して記憶される。
【0029】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクション送信元とトランザクション対象者が、否認不可能なトランザクションを交換する方法である。トランザクションを証明するためのトランザクション識別子を要求する第1の要求が受信され、ここで、この要求は送信元認証アサーションを含んでいる。次に、送信元認証アサーションが検証される。トランザクション識別者と、送信元認証アサーションからの情報が保存され、これにより、トランザクション送信元が、トランザクションを暗号化および送信した後には、もっともらしく否認できないようにする情報が確立される。第1の要求に応答してトランザクション識別子が提供されるので、トランザクションとトランザクション識別子をトランザクション対象者に送信することができる。復号鍵の第2の要求がトランザクション対象者によって受信されると、トランザクションを復号化するための復号鍵の第2の要求が受信されるが、この場合、第2の要求はトランザクション識別子と対象者認証アサーションを含む。次に、対象者認証アサーションが検証される。対象者認証アサーションからの情報もトランザクション識別子と共に保存される。次に、第2の要求に応答して復号キーが提供されるため、トランザクションを復号化することができ、これにより、トランザクション対象者が、トランザクションの受信者であることをもっともらしく否認できないようにする情報が確立される。
【0030】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの発信者であるトランザクション送信元による否認防止可能なものとして確立する方法である。トランザクションを証明するトランザクション識別子の要求が受信されるが、この要求は送信元認証アサーションを含んでいる。次に、送信元認証アサーションが検証される。トランザクション識別子と、送信元認証アサーションからの情報が保存される。さらに、この要求に応答してトランザクション識別子が提供され、これにより、トランザクション送信元がトランザクションの発信元であるということをもっともらしく否認できないようにするための情報が確立される。
【0031】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの受信者であるトランザクション対象者による否認防止可能を確立する方法であり、ここで、トランザクション識別子がトランザクションを識別し、また、トランザクションの復号化に使用できる復号鍵が事前に保存されている。復号鍵の要求が受信され、ここで、この要求はトランザクション識別子と対象者認証アサーションを含んでいる。次に、対象者認証アサーションが検証される。対象者認証アサーションからの情報を、トランザクション識別子と共にデータベースに保存される。この要求に応答して復号鍵が提供され、これにより、トランザクション対象者が、トランザクションの受信をもっともらしく否認できないようにする情報が確立される。
【0032】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクション送信元とトランザクション対象者が、否認不能なトランザクションを交換するためのシステムである。このシステムは、コンピュータ化されたキーサーバを設けている。キーサーバは、トランザクション識別子にトランザクションを識別させる第1の要求をネットワーク経由で受信するのに適しており、ここで、この第1の要求は送信元認証アサーション含んでいる。さらにキーサーバは、トランザクションの復号化に使用できる復号鍵の第2の要求をネットワーク経由で受信するのに適しており、ここで、この第2の要求は、トランザクション識別子と対象者認証アサーションを含んでいる。さらにキーサーバは、送信元認証アサーションと対象者認証アサーションを検証するのに適している。さらに、関連するトランザクション識別子、送信元認証アサーションからの情報、対象者認証アサーションからの情報をデータベースに保存するのに適している。キーサーバはさらに、トランザクション識別子を含んだ第1の返答を、第1の要求に対してネットワーク経由で提供するのに適している。さらにキーサーバは、復号鍵を含んだ第2の返答を、第2の要求に応答してネットワーク経由で提供し、これにより、トランザクション送信元が、トランザクションを暗号化および送信した後にもっともらしく否認できないようにする情報を確立し、さらに、トランザクション対象者が、復号鍵を受信した後にもっともらしく否認できないようにするのにも適している。
【0033】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの発信者であるトランザクション送信元による否認防止が可能なものとして確立するシステムである。このシステムは、コンピュータ化されたキーサーバを備えている。キーサーバは、トランザクション識別子にトランザクションを識別させる要求をネットワーク経由で受信するのに適しており、ここで、この要求はソース認証アサーションを含む。さらにキーサーバは、送信元認証アサーションを検証するのにも適している。さらに、トランザクション識別子と、送信元認証アサーションからの情報をデータベースに保存するのにも適している。キーサーバはさらに、トランザクション識別子を含んだ返答をネットワーク経由で提供し、これにより、トランザクション送信元が、トランザクションを暗号化および送信した後にもっともらしく否認できないようにする情報を確立するのに適している。
【0034】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの受信者であるトランザクション対象者による否認防止が可能なものとして確立するシステムであって、ここで、トランザクション識別子は、トランザクションを証明し、トランザクションの復号に使用できる復号鍵がデータベース内に事前に保存されている。このシステムは、コンピュータ化したキーサーバを設けている。キーサーバは、復号鍵の要求をネットワーク経由で受信するのに適しており、ここで、この要求は識別子と対象者認証アサーションを含んでいる。さらにキーサーバは、対象者認証アサーションを検証するのにも適している。また、対象者認証アサーションからの情報を、トランザクション識別子と共にデータベースに保存するのにも適している。キーサーバはさらに、復号鍵を含んだ返答をネットワーク経由で提供し、これにより、トランザクション対象者がもっともらしく否認できないようにする情報を確立するのにも適している。
【0035】
本発明の利点は、安全性の高いメッセージ通信を提供することである。本発明は、強力な鍵管理技術を使って、送信者と受信者、またはコラボレーション参加者の間でメッセージを保護する。これにより、高度のメッセージ改ざん検出と送信者による否認防止が得られる。しかし、本発明は、実際に安全化されたメッセージのコンテンツを検査することを全く必要とせずに、そのすべての機能を提供するものである。
【0036】
本発明の別の利点は、使用者の負担を最小にすることである。このためにユーザが複雑なインストールや構成を行う必要はなく、プレインストールされているか、あるいはユーザによる高速インストールが可能になっており、すべての構成オプションにデフォルトが設けられている。特に、本発明は、企業やその他の組織が、メンバーのメッセージを保護し、共同作業を促進するために、容易に実現できるようになっている。
【0037】
本発明の別の利点は、単純な登録スキームを採用しており、登録やインストールの完了後すぐに使用することができる。これらの、およびその他の特徴のために、本発明を使って作成したセキュアメッセージの対象受信者は、事前に登録されている必要がない。送信者がセキュアメッセージを作成および送信すると、本発明は、目的受信者が登録されていない旨を検出して、登録の催促を行う。
【0038】
本発明の別の利点は、特に、安全なコラボレーション通信を容易化することである。送信者と受信者、またはコラボレーション参加者で構成された大きなグループの会話を安全化でき、さらに、新規ユーザが会話に参加する、または既存のユーザが会話から退出する度に、容易にその安全性を変更することができるため、会話の過去的および将来的な秘密性(バックおよびフォワードシークレシー)を実現できる。
【0039】
本発明の別の利点は、これがイベントに基づくものであり、アクションイベントと非アクションイベント(すなわち正のイベントと負のイベント)の両方をサポートすることである。既に一般に使用されている方法で通信文を開封および表示する場合以外に、受信者による自発的な動作は必要ない。
【0040】
本発明の別の利点は、制御を強化できることであり、この制御は発信者側に基づくものであり、通信文の実際の発信者または発信者を越えるオーソリティによって設定される。特に、この制御は、初回表示時、最終表示時、さらに、再び通信文を表示できる回数を設定できる。
【0041】
本発明の別の利点は、分断された通信が可能になることである。本発明が使用する技術では、通信文の発信者が受信者と直接接続する必要がない。上述したように、発信者は、受信者がまだ見ることが許可されない通信文を送信できる。受信者が(通信文の表示により、または通信文の表示に何らかの形で失敗することにより)表示関連のイベントをトリガすると、これが記録されるか、または発信者または別の適切な参加者に肯定的に報告されるため、これらの人物がこれを適切に対処できる。
【0042】
本発明の別の利点は、ユーザにとってその大部分が透明性であることである。本発明の中心的機能は公開/秘密鍵暗号化スキームに依存しないが、しかし、本発明をある補助的な関連において便利にするため、また、より安全にするために、そのいくつかの要素にこのスキームを採用することは可能である。本発明によって使用される技術では、ユーザが、例えば公開鍵インフラストラクチャ(PKI)を設定および採用して、これに付随する負担を負う必要がなく(しかし、所望であればPKIを使用することもできる)、そしてユーザが通信文受信の通知を行う必要もない。
【0043】
本発明の別の利点は、公開/秘密鍵システムと違い、メッセージへの鍵を、受信の度にいったん暗号化する必要がないことである。同様に、安全化したメッセージのコンテンツも、メッセージがルータおよびハブを通過する際、受信の度にいったん復号化する必要がない。そのため、実行される暗号化および復号化の回数は、受信者の数、および通信に使用されるリソースの数とは無関係である。
【0044】
本発明の別の利点は、公開/秘密鍵システムと異なり、秘密鍵を常駐させる場所に依存しないことである。ユーザは、他の参加者との安全なコラボレーションにどこからでも参加できる。
【0045】
本発明の別の利点は、メモリと、基礎となるハードウェアの処理能力に重い負担をかけることなく、大容量データを扱うことを可能にしながら、さらに、従来技術の手法と同等またはこれを超えるセキュリティを提供できることである。
【0046】
本発明の別の利点は、否認防止および監査の両方にそれぞれ一回サービスを提供することである。
【0047】
本発明の別の利点は、異なる状況に対応して異なる程度が適切であるとき、否認防止のための複数の強度レベルを使用できることである。
【0048】
さらに、本発明の別の利点は、ユーザへの負担がなく、また、すべてのトランザクション対象者について、鍵、デジタル証明書、およびこれらのデータを検索するためのディレクトリを事前に取得する必要性に依存しておらず、そのため、すべてのトランザクション実行中の参加者が柔軟性のない一貫したスキームを使用する必要がないことである。
【0049】
本発明のこれらの目的およびこれ以外の目的は、本明細書中で説明する、また、いくつかの図面で例証しているように、本発明を実施する現在最良の形態の説明と、好ましい実施形態の産業上の利用可能性を考慮することで、当業者にとって明白になるであろう。
【0050】
本発明の目的および利点は、添付の図面および表と共に、以下に示す詳細な説明から明白になるであろう。
【0051】
発明を実施するための最良の形態
本発明の好ましい実施形態は、鍵交換、およびこれに基づく安全な提携通信を実現するシステム、キーサーバイベントを使用してビジネス処理を実現するシステム、認証アサーションとキーサーバを使用して否認防止および監査を実現するシステムである。本明細書中の多数の図面、特に図9、図11、図15に示すように、本発明の実施形態を参照符号210、310、410で表している。本発明について説明を開始する前に、まず、安全なメッセージ通信を実現するためのキーサーバの背景について説明する。
【0052】
図1は、セキュア電子メールシステム10における情報の流れを示す概略外観図である。送信者12が、セキュア電子メールシステム10を使用して、一人またはそれ以上の受信者16に対してセキュア電子メール14を送信する。この送信を完遂するには、送信者12は、セキュア電子メール14の作成および送信に適した送信ユニット18を使用し、受信者16は、このセキュア電子メール14の受信および表示に適した受信ユニット20を使用する。さらに、セキュア電子メールシステム10は、本質的に従来型の電子メールサーバ22、送信ユニット18および受信ユニット20内のソフトウェアモジュール26(図3)と共にセキュア電子メールシステム10の一次の新規エレメントを構成するセキュリティサーバ24(先述したようにキーサーバ形式のもの)を実装している。
【0053】
送信ユニット18と受信ユニット20は、ハードウェアとソフトウェアの適切な組み合わせである。これは、同種または異種のハードウェアであってよく、図1では、送信ユニット18と第1受信ユニット20aをパーソナルコンピュータ(PC)として示し、第2受信ユニット20bをインターネット機器として示すことで、これを強調している。
【0054】
送信ユニット18は送信機能の装備が必須であり、また、多くの場合、セキュア電子メール14の構成にも使用される。しかし、構成機能は必ずしも必須の機能ではなく、例えば、標準メッセージが事前に保存されている携帯電話のようなインターネット機器を使用することも可能である。受信ユニット20は、セキュア電子メール14を受信できることが必須であり、また、場合によりメッセージ構成およびその他の機能を搭載できる。
【0055】
必要なソフトウェアに関しては、送信ユニット18と受信ユニット20の各々に、適切な電子メールタイプのアプリケーションと、適例のソフトウェアモジュール26を実装することが必要である。この電子メールタイプのアプリケーションは、従来型の電子メール・アプリケーションであってよく、あるいは、電子メール機能を統合したブラウザ、または、従来のブラウザで動作する電子メール・アプレットであってもよい。次に、ソフトウェアモジュール26についてより詳細に説明するが、複数のソフトウェアモジュール26を、送信ユニット18または受信ユニット20で最初に使用する際にほぼ同時にインストールできる点を述べておく。
【0056】
図1では、複数の受信者16への送信にセキュア電子メールシステム10を使用できることを強調するために、第1受信機16aと第2受信機16bの両方を図示している。そのため、共通の電子メール宛先指定規定、例えば「To:宛先」、「Cc:(コピー)」、「Bcc:(ブラインドコピー)」など、さらに、セキュア電子メールシステム10を使用して、複数の受信者16のリストに同時に送信を行うことができる。
【0057】
次に述べる総体的な説明に備え、送信者12と第1受信者16Aがセキュア電子メールシステム10に登録されており、送信ユニット18と第1受信ユニット20aには、適例のソフトウェアモジュール26が実装され、セキュア電子メールシステム10にてそれぞれの機能で動作すると仮定する。さらに、第2受信者16bは、セキュア電子メールシステム10に未登録であり、また、第2受信ユニット20bにはセキュア電子メールシステムがまだ実装されていないと仮定する。
【0058】
さらに図1の概観は、一般的なインターネットのようなネットワーク環境30で、セキュア電子メール14を送信するための主要な段階を示す。段階32では、送信者12がセキュア電子メール14を送信しようと決める。そのため、従来またはその他の方法といった何らかの方法で電子メールメッセージを構成する。
【0059】
段階34では、送信者12は、「送信」命令の代わりに「安全な送信」命令を使用して、セキュア電子メール14の送信を要求する。しかし、安全でない電子メールメッセージを電子メールサーバ22へ直接送信するのではなく、まず送信ユニット18がセキュリティサーバ24に接触して、様々なデータアイテムを提供する(この段階および他の段階で使用されるデータアイテムについては先述のとおりである)。次に、セキュリティサーバ24が送信者12を認証し、このセキュア電子メール14用の一意のメッセージ鍵とIDを送信ユニット18に返送する。また、セキュリティサーバ24は、このトランザクションのための様々なデータアイテムを、後の使用のために記録する。送信ユニット18は、メッセージ鍵を使用して、セキュア電子メール14を暗号化する。暗号化された、または暗号化されていないメッセージ本体がセキュリティサーバ24に送信されることは絶対にない。
【0060】
段階36において、セキュリティサーバ24は、受信者16が登録済みであるか否かを判断する。既に登録されている場合には、ここで第1受信者16aのみについてそうであるように、受信者16についてこの段階が終了する。しかし、受信者16が未登録の場合には、ここで第2受信者16bについてそうであるように、登録が試みられる。登録を試みるために、セキュリティサーバ24は電子メールメッセージを第2受信者16bに送信して、まもなく暗号化されたメッセージが届き、このメッセージを読むためには登録が必要である旨を知らせる。次に、第2受信者16bは、セキュリティサーバ24から送信されたこの電子メールに含まれているユニバーサル・リソース・ロケータ(URL)を入力して、セキュリティサーバ24で登録のためのルーチンを追従することができる。第2受信ユニット20bには、セキュア電子メール14を受信または復号するのに必要なソフトウェアモジュール26が既に実装されているか、または登録プロセスの一部としてこのようなソフトウェアが提供される。第2受信者16bが登録を済ませ、第2受信ユニット20bが必要なソフトウェアモジュール26のインストールを完了すると、この段階は終了する。
【0061】
あるいは、セキュア電子メール14内で段階36を飛ばして次に進むこともできる。セキュア電子メール14自体に、受信者16が追従できる単純な形式のユニバーサル・リソース・ロケータ(URL)を含めることが可能である。そのため、セキュリティサーバ24は受信者16が登録済みであるか否かを考慮する必要がない。送信者12は、既に説明したように、セキュア電子メール14を作成および送信することができ、受信者16は、自分が登録済みであるか否かに対処し、このセキュア電子メール14が到着したらこれを読むことができる。
【0062】
段階38において、送信ユニット18は、暗号化されたセキュア電子メール14を送信する。これは、送信者にとって本質的に透過的またはシームレスであってよく、また、暗号化されたセキュア電子メール14を従来の電子メールタイプのアプリケーションに送信し、自動的に適切な「送信」命令を出すことで、送信ユニット18のソフトウェアモジュール26内でこれを取り扱うことができる。次に、セキュア電子メール14は、従来の方法で電子メールサーバ22へ進み、各宛先受信者16のインボックスに到着する。注目すべき点は、セキュア電子メール14の本体が、送信ユニット18と受信ユニット20の間で通信が行われている間の全般にわたって暗号化された状態にあることである。場合により、この最中に件名を暗号化してもよい。
【0063】
段階40において、セキュア電子メール14が、各受信者16のインボックスに到着する。受信者16が自分の受信ユニット20を使用してセキュア電子メール14を開封すると、受信ユニット20用のソフトウェアモジュール26が、このセキュア電子メール14が暗号化されていることを検出する。ソフトウェアモジュール26は、その構成により、受信者16にパスワードを催促するか、または既に知っているパスワードを使用することができる。
【0064】
最後に、段階42で、受信ユニット20がセキュリティサーバ24に接触し、受信者16用のメッセージIDとデータ(パスワードを含む)を提供する。セキュリティサーバ24は、受信者16が(オリジナルメッセージ内の受信者のリストにより決定されているとおりに)認証された受信者であると仮定し、メッセージ鍵を受信ユニット20に提供する。場合により、セキュリティサーバ24は、セキュリティ電子メール14が何らかの形式に変更された旨の表示を提供することもできる。受信ユニット20が、このメッセージ鍵を用いてセキュア電子メール14を復号化すると、受信者16がこれを読めるようになる。
【0065】
図2a〜図2cは、セキュア電子メールシステム10が使用できる電子メールフォーム50を示す。図2aは、従来の送信フォーム52aである。図2bは、送信フォーム52aと本質的に同一であるが、セキュア電子メールシステム10で扱えるように変更された送信フォーム52bである。図2cは、セキュア電子メールシステム10で使用できる従来の受信フォーム54である。
【0066】
送信フォーム52a〜52bの両方は、受信者IDフィールド56、件名フィールド58、本体フィールド60を含んでいる。さらに、これらの両方のフォームは従来型の送信ボタン62を含んでいる。図2aの送信フォーム52a(従来型)と図2bの送信フォーム52b(変更型)の唯一の違いは、後者が送信セキュリティボタン64を含んでいる点である。いくつかの実施形態では、送信ボタン62を安全送信ボタン64に変更することが望ましいかもしれないが、これが一般的になる見込みはない。図2cの受信フォーム54は、受信IDフィールド56(宛先:とCc:)、件名フィールド58、本体フィールド60、そして送信者IDフィールド66も含んでいる。これらのフォーム内に含まれた多様なフィールドを理解することは、後続の説明を理解するために役立つ。
【0067】
図3は、送信ユニット18と受信ユニット20で使用されるソフトウェアモジュール26を示すブロック図である。セキュア電子メールシステム10の多くの実施形態において、ソフトウェアモジュール26は、送信ユニット18と受信ユニット20の両方に実装されているものと同一であってよいが、これは必須ではなく、これ以外のモジュールを使用することが可能である。ソフトウェアモジュール26は、セキュア電子メールシステム10の「クライアント」側のコンポーネントとして見ることができる。
【0068】
この図は、また、ソフトウェアモジュール26を送信ユニット18および受信ユニット20にインストールする様々な使用可能な方法を示している。プレインストールされているオプション44を使用することで、送信ユニット18または受信ユニット20にロードされている内在の電子メールタイプ・アプリケーションを、すでに搭載されているソフトウェアモジュール26に付随させることが可能である。従来の電子メール専用アプリケーションまたはウェブに基づく電子メール・アプリケーションは、このプレインストール済みのオプション44を有利に使用することができる。
【0069】
セキュア電子メールシステム10の主要な目的は、その使用の容易化であり、セキュア電子メールシステム10をウェブに基づく電子メール・アプリケーションと共に使用することで、新規ユーザにとっては操作が特に容易になり、既存の上達したインターネットユーザにとってはその操作が単純化される。現在、多くのインターネット・サービス・プロバイダ(ISP)がブラウザ・アプリケーション・ソフトウェアをユーザに提供している。その一例はアメリカオンライン(AOL(登録商標))であり、AOLでは、あらかじめ構成された「プライベートラベル」ブラウザ・アプリケーションをユーザに提供している。プレインストールされているオプション44によって、セキュア電子メールシステム10をプライベート・ラベル・ブラウザに含め、設定に伴うあらゆる負担を最小化することが可能になる。あらゆる構成オプションにデフォルト設定を設定することができ、これにより送信者12と受信者16は、場合によりソフトウェアモジュール26を望みどおりに適合させることができるようになる。
【0070】
あるいは、ユーザがインストールしたオプション46を使用してもよく、この場合、ソフトウェアモジュール26が送信者12と受信者16、すなわちエンドユーザによって、送信ユニット18、受信ユニット20の各々にインストールされる。このユーザがインストールしたオプション46により、プライベート・ラベル・アプリケーションを使用していない多数のインターネットユーザがセキュア電子メールシステム10を使用することが可能になる。
【0071】
ユーザがインストールしたオプション46は、多くの応用形にて実現することができる。ある応用形46aは、ソフトウェアモジュール26をプラグインとして永久インストールするというものである。別の応用形46bは、例えばYahoo!(商標)のような特定のウェブポータルを使用して入手したJavaアプレットのようなセキュア電子メールシステム10を使用する度に、ソフトウェアモジュール26をアプレットとして一時的に「インストール」するものである。さらに別の応用形46cは、スクリプト・ドリブン・インストール、すなわち、区画化されたプラグイン・タイプのインストールではなく、本質的に従来型のフルブローン・ソフトウェア・アプリケーション・インストールである。さらに別の応用形46dは、上述したインストール、または全く新規のインストール手法の組み合わせであってよい。
【0072】
これらの応用形46a〜46dは、セキュリティサーバ24(図1)のような、密接に制御されたサーバからダウンロードを実施することができる。あるいは、これらの内のいくつかは、他の手段による配布、例えばコンパクトディスク(CD)からのソフトウェアモジュールのローディングを含んでよい。CDは、プライベート・ラベル・アプリケーション、特にプライベート・ラベル・ブラウザを配布する一般的な方法である。プレインストールされたオプション44に従って既にインストールしたソフトウェアモジュール26でアプリケーションを配布するのではなく、単純に、ユーザが自分でインストールしたオプション46を介してインストールするか否かを決定できるオプションとして、ソフトウェアモジュール26をアプリケーション配布CDに含めることができる。
【0073】
しかし、ソフトウェアモジュール26をオンライン上で入手することにより、周縁的な利点が得られる。送信者12と受信者16は、同時にセキュア電子メールシステム10に正式登録され、他の正規手続き、例えば暗号化技術の受諾および使用が可能になる認証を遵守できる。
【0074】
応用形46a〜46dは、各々異なる度合いで、アップグレードオプションを容易化することもできる。例えば、ソフトウェアモジュール26は、セキュリティサーバ24と接触する度に、バージョン情報をその通信の一部分として含めることができる。複雑な実施形態では、ソフトウェアモジュール26は、アップグレードが利用可能になると、セキュリティサーバ24またはその他の場所から自己アップグレードを実行する自己アップグレード型であってよい。複雑性の低い実施形態、または再認証が必要な場合には、アップグレードを実施する方法に関する情報を送信することができる。例えば、アップグレードサイトURLを含んだ電子メールメッセージを、送信者12または受信者16に対して送信できる。
【0075】
図3も、送信者12と受信者16が、ソフトウェアモジュール26内で変更できるいくつかの構成オプション48を示す。すべてでなければほとんどの状況において、適切なデフォルトの提供が可能であるが、しかし、上達したユーザは、または特定の状況においては、これらの設定を変更することが有利な場合もある。該してこのような構成オプション48は、セッションの種類に無関係に一貫していなければならない一方で、優れたセキュリティの実施を一貫すれば、構成オプション48は単にマシンと関連するのではなく、ユーザと関連するはずである。そのため、複数の送信者12または受信者16が同一の送信ユニット18または受信ユニット20を使用できる場合、ユーザは、独立した個人的な構成を設定することができるようになる。
【0076】
構成オプション48の特定の設定例は、件名暗号化設定48a、キャッシュパスワード設定48b、キャッシュ時間設定48c、有効期限設定48d、最大読み出し設定48e、その他48fを含んでよい。
【0077】
件名暗号化設定48aは、ソフトウェアモジュール26がセキュア電子メール14の件名フィールド58(図2a〜図2c)、本体フィールド60を暗号化するか否かの制御を行う。デフォルトでは通常、件名を暗号化しないようになっている。
【0078】
キャッシュパスワード設定48bによって、アプリケーション・セッションの度(例えばブラウザセッションの度)にパスワードが一回要求されるか、あるいは、プロンプトが必要に応じて毎回パスワードを要求するかのいずれかを指定することが可能になる。一般に、デフォルトでは、パスワードをキャッシュするようになっているが、次に記述するように、これは、キャッシュ時間設定48cと組み合わせ、より安全な方法で実施することで機能する。安全性をさらに高めるために、パスワードをメモリ内でのみキャッシュし、ディスクに対しては絶対にキャッシュを行わないようにすることもできる。
【0079】
キャッシュ時間設定48cはキャッシュパスワード設定48bと協働して、パスワードをキャッシュできる最大時間を制御する。これについてのデフォルト値および許可される最大値は8時間であってよい。その後、送信者12がキャッシュ時間設定48cを短縮することができるが、セキュリティ性を劣化させてしまう程にこの時間を長く設定することは許されない。
【0080】
有効期限設定48dによって、送信者12は、いつセキュリティサーバ24(図1)がメッセージ鍵を破棄して、セキュア電子メール14を読み出し不能にするべきかを特定することが可能になる。セキュア電子メールシステムの多くの実施形態では、有効期限を明確に強制実施するのではなく、ある十分長い期間(恐らくは数年間)の後に、恐らくセキュリティサーバ24が有効期限の強制実施を行う必要がある状態にデフォルト設定されている。
【0081】
最大読み出し設定48eは、各受信者16が1通のセキュア電子メール14を開封し、読む回数、すなわち、一人の受信者16に対してメッセージ鍵が送付される回数を特定指定する。ゼロ、つまり無制限にデフォルト設定することができる。
【0082】
もちろん、さらに別の構成オプション48を設けることができ、図3に、これを強調するためにその他48fの要素を示す。
【0083】
ソフトウェアモジュール26を送信ユニット18にインストールすると、メッセージ構成シナリオとメッセージ送信シナリオに使用することが可能となる。後述の説明では、ソフトウェアモジュール26がプラグイン・タイプの応用形46aである場合のプライベート・ラベル・ブラウザを使用するが、当業者は、基本となる原理が、セキュア電子メールシステム10を使用できる他のシステムへの拡大が可能であることを理解するだろう。
【0084】
図4はセキュア電子メール14が送信(または受信)されているか否かを判断するための、ソフトウェアモジュール26の好ましい手法を示すブロック図である。送信ユニット18内のソフトウェアモジュール26は、ページ72のストリーム70を検査し、送信者12が作成したセキュア電子メール14を構成しているものを探す。ストリーム70を検査するある方法では、ソフトウェアモジュール26が、ページ72のURLがある一定の構造、例えば“*mail.privatelabel.com*/Compose*”(ここで、*はあらゆるパターンに適合できる)を含んでいるかどうかを調べる。ソフトウェアモジュール26による別の検査方法は、ページ72のHTMLコンテンツがある一定の認識可能な(静的)パターン、例えば、「構成」という名称のフォームタグを含んでいるか否かを判断するものである。ソフトウェアモジュール26はまた、MIMEタイプを使用して、代行受信できるページ72を識別することも可能である。実際に候補のページ72aが見つかると、これがストリーム70から除去され、説明したとおりに処理されて、処理済みのページ72bとしてストリーム70内の元の場所に配置される。
【0085】
ソフトウェアモジュール26が、元の場所に戻されるページ72が構成タイプ候補ページ72aであると判断すると、この候補ページ72aを、少なくとも1つの新規制御である安全送信ボタン64(図2b)を含むよう変更する必要がある。所望であれば、この1つのボタンに加えて他の制御を追加することもできるが、あくまでも任意である。
【0086】
セキュア電子メール14を送信することが望ましい時に、送信者12は、従来の送信ボタン62を操作するのではなく、安全送信ボタン64を「押す」(要するに、マウスクリックで操作する)。安全送信ボタン64を操作すると、ソフトウェアモジュール26が、電子メールサーバ22に投函できる状態の、電子メールの様々なフィールドを含むページ72(またはフォーム)を代行受信し、これらフィールドのいくつかを変更する。この変更が完了すると、ソフトウェアモジュール26が、送信者12が送信ボタン62を押した場合に第1に起こったであろう状態と全く同一の望ましい動作(投函または送信)を実行する。この場合の唯一の違いは、セキュア電子メール14内のいくつかのフィールドに含まれる値が異なる、つまり暗号化されている点である。
【0087】
発明者の現時点で好ましい実施形態では、2つのフィールドのみが典型的に変更されている。本体フィールド60は、常に暗号化によって変更される。そして、構成設定、特に上述の件名暗号化設定48aに従い、件名フィールド58を変更することもできる。
【0088】
暗号化処理および復号処理の考察を行う前に、セキュア電子システム10によって使用される様々なデータアイテムについて説明することが適切である。図5は、セキュア電子メールシステム10によって使用されるテーブルを含むデータベース100の図である。セキュリティサーバ24(図1)の主要な構成要素は、このデータベース100である。登録された送信者12と受信者16は、このデータベース100内でユーザとしてまとめて処理され、送信者12と受信者16のためのデータがユーザテーブル102に保存される。
【0089】
ユーザテーブル102は、userId102a、password102b(実際には、先述した好ましい実施形態における実パスワードのハッシュバージョン)、salt102c、status102dのためのフィールドを各々有する記録を含んでいる。
【0090】
ユーザエイリアステーブル103は、ユーザテーブル102に密接に関連し、emailAddress103a、userId103b(ユーザテーブル102内のユーザID 102aと関連的にリンクしている)のためのフィールドを各々有する記録を含んでいる。
【0091】
データベース100は送信済みメールテーブル104も含んでいる。このテーブルには、messageId104a、senderId104b、dateSent104c、numRecipients104d、messageKey104e、maxDeliveries104f、expiration104g、sealSalt104h、subject104i、lastRead104j、およびdeliverAfter104kのフィールドを各々有する記録を含んでいる。
【0092】
受信者テーブル106も提供される。図5に見られるように、送信済みメールテーブル104内のメッセージID104aは、受信者テーブル106内のメッセージID106aと関連的にリンクしている。したがって、この受信者テーブル106は、各々のセキュア電子メール14に特定されている受信者16のためのデータを含んでいる。さらに受信者テーブル106は、receiverAddr106b、firstRequest106c、およびnumRequests106dのためのフィールドを有する記録を含む。
【0093】
図6a〜図6fは、好ましい実施形態で使用されるデータフィールドのテーブルである。図6a〜図6d中のテーブルは、セキュア電子メールシステム10のコア動作にとって重要であるのに対し、図6e〜図6fは、セキュア電子メール10の任意の特徴に関連している。
【0094】
図6a〜図6dのテーブル内のテキストは、ここでさらに詳細に説明する1次フィールドと共に、いくつかの特定のフィールドを記述している。図6aは、図5のユーザテーブル102である。これには、セキュア電子メールシステム10に登録されている各ユーザ、つまり送信者12または受信者16のためのデータ記録が含まれている。各ユーザは、登録時にUserId(userId102a)を割り当てられ、Password(password102b)を選択し、このパスワードがここに保存される。好ましいPassword(password102b)の値はH(p+s)であり、ここでpはクリアテキストパスワードであり、sは、クリアテキストパスワードと連結したsalt(salt102c)である。図6bは、図5のsentMailテーブル104である。このテーブルには、セキュア電子メールシステム10内の各セキュア電子メール14のためのデータ記録が含まれている。図6cは、図5の受信者テーブル106である。このテーブルには、セキュア電子メールシステム10が配送できる各セキュア電子メール14のための宛先データが含まれている。送信された各セキュア電子メール14の各々の受信者16(個人またはリストグループ)に関する記録がこのテーブル内で生成されるため、セキュア電子メールシステム10内でこのテーブルが最も大きくなることが予想される。FirstRequest(firstRequest106c)内のフィールドヌル値は、受信者16がセキュア電子メール14の読み出しをまだ要求していないことを意味する。図6dは、図5のユーザエイリアステーブル103である。このテーブルには、各々の所与のユーザ(ユーザテーブル102中でuseId102aと関連的にリンクしているuserId103b)に関してわかっているすべての電子メールアドレス(emailAddress103a)のデータが含まれている。そのため、複数の電子メールアドレスまたはエイリアスから、シングルユーザが判明することがある。
【0095】
図6e〜図6fのフィールドに関しては、以下の説明以上に詳細な説明を省く。これらのテーブルはオプション特徴によって使用されるものであり、また、テーブル中に十分詳細な記述があるため、当業者はこれらフィールドの使用を理解できる。図6eは、電子メール配布リストの使用を可能にするデータのテーブルである。このテーブルにより、ユーザは配布リストを作成できる。所有者はこのリストを常に更新できるが、所有者が実際にこのリストのメンバーである必要はない。この後者の特徴は、リスト管理者にとって特に便利である。そして、図6fは、配布リストの使用を許可するために使用されるデータのテーブルである。このテーブルには、各配布リストのメンバーに関するデータが含まれる。
【0096】
図5、図6a〜図6fに示したデータ以外のための、他のテーブルおよびフィールドの使用ももちろん可能であり、また、いくつかのセキュア電子メールシステム10の実施形態では、上述したフィールドのいくつかをオプションにしたり、省略してもよい。
【0097】
メッセージを暗号化する前に、ソフトウェアモジュール26は送信者12のパスワードを取得する必要がある。このパスワードがキャッシュされ、キャッシュ時間設定48cを超えない場合にはこのステップが完了する。それ以外の場合には、ソフトウェアモジュール26が、送信者12にパスワードの入力を催促するダイアログボックスを表示する。例えば、パスワードのみをアスタリスクで表示したり、送信者に送信を中止するべくキャンセルを許可する従来のパスワード取り扱い機能が提供される。
【0098】
好ましい実施形態では、送信者12と受信者16のパスワードは、ユーザテーブル102に保存されているパスワード102bと違うものである。代わりに、強化されたセキュリティオプションとしてユーザがパスワードを選択し、このパスワードとソルト102cがセキュリティサーバ24によってハッシュされ、パスワード102bが取得できる。ユーザが選択したパスワードがセキュリティサーバ24へ送られ、そこでパスワードとソルト102cをハッシュし、パスワード102bがデータベース100に保存される。ユーザのパスワードのクリアテキストは、セキュリティサーバ24に保存されず、オリジナルパスワードなしでの計算が不可能な、計算されたハッシュだけが保存される。
【0099】
このようにして、セキュリティサーバ24に実際のユーザパスワードが知られることは決してないし、知り得る方法もない。次に、このオプションについてさらに詳細に説明する。
【0100】
パスワード102bを取得すると、ソフトウェアモジュール26は暗号化と実際の送信を実施できるようになる。ソフトウェアモジュール26は、送信者12を認証し、セキュア電子メール14の暗号化に使用するmessageKey104eを送り戻すよう求める要求を、セキュアソケットレイヤ(SSL)プロトコルを介してセキュリティサーバ24に送信する。次に、ソフトウェアモジュール26がこのメッセージの本体フィールド60(および場合により、件名フィールド58)を暗号化し、この結果が別個に符号化されて、セキュア電子メール14が作成される。
【0101】
セキュアソケットレイヤ(SSL)の使用については上述した。本発明のセキュア電子メールシステム10の目的は、その使用の容易性であるため、発明者によるこの好ましい実施形態はSSLを採用している。これは、現在の産業界で安全と考慮され、一般的なブラウザに広く利用されているが、今日の平均的なインターネットユーザはそうとは知らずにこれを使用している。しかし、SSLの使用は必須ではないことが理解されるべきである。代わりに、これ以外のセキュリティプロトコルを使用してもよい。
【0102】
次の表記は、下記の説明において使用されているものである。
Km = 電子メールに関連したワンタイムの一意キー;
Ps = 送信者のパスワード;
Pr = 受信者のパスワード;
{p}k = キーkで暗号化したp;
{p}ssl = SSLセッションキーで暗号化したp;
H(p) = pの一方向ハッシュ。
【0103】
図7は、現在好ましい暗号化のプロセス120を示すフローチャートである。送信者12がセキュア電子メール14を送信する準備ができた時点で、本体フィールド60内に平文が入力されたHTML送信フォーム52b(図2b)が表示されている。ここで、送信者12はセキュリティサーバ24に登録済みであり、この送信者のブラウザには適切なソフトウェアモジュール26がインストールされていると仮定する。また、送信者12は、ブラウザのみを使用してセキュア電信メール14を送信するものと仮定する。セキュリティの性質は、使用する実際のメールクライアントに関係なく同一でなければならず、そして、これを用いることで以下の説明を単純化することができる。
【0104】
先述したように、送信者12は、セキュア電子メールの投函準備ができると、送信フォーム52b上の安全送信ボタン64を選択する。これがステップ122、つまり暗号化プロセス120の開始を構成する。
【0105】
ステップ124では、送信ユニット18内で、以下の情報をソフトウェアモジュール26へ送信するスクリプトが実行される。
送信者12の電子メールアドレス(emailAdress103a);
宛先;フィールド、CC;フィールド、BCC;フィールドのコンテンツ(receiverAddr106bの例);
件名フィールド58のコンテンツ;そして
本体フィールド60のコンテンツ。
【0106】
ステップ126では、ソフトウェアモジュール26が送信者12のパスワードをまだ知らない場合に、送信者12のパスワードを催促する。送信の度にパスワードを入力するかどうかは、これが場合によっては非常に面倒な作業であるため、セキュリティポリシーの選択の問題となる。送信者12がブラウザセッションを開いた状態で維持した場合、ソフトウェアモジュール26内でユーザのパスワード、さらにパスワード102bをキャッシュすることで危険を招く可能性がある。このポリシーによって、多くの場合、送信者12はこのオプションの構成方法を選択できるようになるが、その一方で、例えば公共キオスクのような場所で、各セキュア電子メール14へのパスワードの入力が常に要求されるべき場合もある。
【0107】
ステップ128では、ソフトウェアモジュール26がXML文書を下記の形式で作成し、これは暗号化されるものである:
<?xml version="1.0"encoding="ASCII"/>
<emailPart random="randomNum"length="numChars"
mic="messageIntegrityCode">
<subject>subject</subject>
<body>body</body>
</emailPart>.
【0108】
この場合、ランダム要素は、クラッキング防止性があり、また、コンテンツ内では同一の電子メールでも、安全化の実行後には違ったものにしてしまうために使用されるランダム数であり;長さ要素が本体フィールド60中の文字数であり;mic要素は、本体フィールド60のハッシュを取って作成したメッセージの整合性コードであり;件名要素は件名フィールド58のコンテンツであり;そして本体要素は本体フィールド60のコンテンツである。
【0109】
ステップ130では、ソフトウェアモジュール26が、セキュリティサーバ24に対してSSL HTTP(HTTPS)接続を開き、セキュリティサーバに下記の情報を送信する:
送信者12のemailAddress103a;
送信者12のパスワード102b;
対象受信者16のリスト(receiverAddr106b、および潜在的なnumRecipients104d);
メッセージの件名フィールド58(件名104i);
計算されたハッシュのリスト、本体用のもの、H(b)、そして各付属物のもの
H(a1),H(a2)...H(an);そして、
有効期限または受信者毎の許容最大送信数といったオプション構成情報。
【0110】
ステップ132では、セキュリティサーバ24が、認証サブプロセスの結果に従って前進する。
1)送信者12のemailAddress103aがわかっていない場合、暗号化プロセス120が、知っているemailAddress103aを決定するか、または停止する。emailAddress103aは様々な理由から未知である。ある一般的な例は、送信者12がセキュリティサーバ24の新規加入者であるというものである。この場合、送信者12がその場で登録を行えるようにするための別個のブラウジングウィンドウを開くよう、ソフトウェアモジュール26が指示を受けることができる。別の理由は、ユーザのエラーのためにemailAddress103aが未知となっているというものである。このようなエラーの単純な原因は、複数のユーザが同じブラウザを共用しているためである。その後、送信者12は自分の証明を明確にするよう要求できる。
2)送信者12のパスワード102bが不正確である場合、ソフトウェアモジュール26は、パスワード102bを再び催促するか(恐らくは限られた回数のみ)、送信者12に送信動作を中止させる(これによって送信者はオリジナルのHTML送信フォーム52bへと戻る)よう指示される。
3)送信者12がセキュア電子メール14の送信を許可されていない場合は、暗号化プロセス120も停止することができる。これは管理上の理由で実施できる。例えば、送信者12が料金を未払いである場合や、あるユーザがこの暗号化サービスを使用することを阻止するよう裁判所命令が出ている場合などに実施される。この場合、拒絶の理由をダイアログボックスに入力し、これが承認されると、ユーザがオリジナルのHTML送信フォーム52bへ戻れるようになる(恐らくは、その代わりに送信ボタン62を使用するため、そして、メッセージを従来の電子メールとして送信するために)。
【0111】
あるいは、送信者12は認証されたと考慮し、現在意図されているセキュア電子メール14の送信を許可され、このステップ132は首尾よく完了する。
【0112】
ステップ134では、セキュリティサーバ24が記録を作成し、sentMailテーブル104に保存する。特に、messageId104a(m)と、messageKey104e(km)と、送信されているセキュア電子メール14の各部分について計算されたシール(sList)とに一意の値が生成される。セキュリティサーバ24が、sList内のシールをH(H(H(x)+s+t+m+Nm)+Nm)として計算する。要素sは、送信者12のuserId102a;tは日付および時間(またdateSent104cとしてsentMailテーブル104に保存される);mはmessageId104a;NmはsealSalt104h(この特別なセキュア電子メール14のために生成されたランダム数であるが、messageKey104eとは別のもの);H(x)はハッシュH(b)、ソフトウェアモジュール26から受信したH(a1)、H(a2)... H(an)の組である。sListのコンテンツは再計算可能であるべきなので、これを保存する必要はない。
【0113】
ステップ136では、セキュリティサーバ24が送信ユニット18のソフトウェアモジュール26に対して、{m,Km,sList}SSL形式の情報のSSLパケットで応答する。
【0114】
ステップ138では、ソフトウェアモジュール26がmessageId104a(m)、messageKey104e(Km)を抽出し、sListからシールし、上記のXML文書および各添付ファイルをmessageKey104eで暗号化するべく前進する。次に、ソフトウェアモジュール26が、送信ユニット18内のメモリからこの鍵を破棄する。詳細には、ソフトウェアモジュール26が下記の汎用形式を有するメッセージフォームを作成する:
------ BEGIN SECURECORP SECURED EMAIL ------
<securecorp:messagePart id = "m">
<encryptedPart>encrypted body</encryptedPart>
<seal>seal</seal>
</securecorp:messagePart>
------ END SECURECORP SECURED EMAIL ------
【0115】
セキュア電子メール14のこの部分に暗号化された本体が含まれている場合には、生ビットストリーム(暗号化後)から符号化されたストリームに変換されるので、暗号化した本体要素は印刷可能な(ASCII)文字の行で構成される。これが添付ファイルである場合には必要ない。
【0116】
最後に、ステップ140にて、ソフトウェアモジュール26が、送信者12が送信フォーム52b内の送信ボタン62を押した場合に最初に起こるのと同じ動作を実行する。これにより電子メールサーバ22に投函を行う(恐らくは、例えばYahoo!(商標)、Hotmail(商標)などの電子メール使用可能なウェブサーバを介して行う)。違いは、投函されているフォームの本体フィールド60内の値が、上述のとおりに暗号化および符号化された状態にある点である。同様に、あらゆる付属物が上述のとおり暗号化される。従来の電子メールサーバ22またはウェブサーバの観点からすると、本体が訳のわからない文章の一群でできた通常の電子メールメッセージのように見える。その後、セキュア電子メール14は、通常のインターネットメールシステム上で伝送され、様々な宛先に到達する。
【0117】
上述の説明では添付ファイルについてそれほど詳細に網羅していないが、添付ファイルの扱いも同様に容易である。好ましい実施形態では、添付ファイルの各々は本体フィールド60とほぼ同様に扱われるが、XMLでラップされない、または符号化(ASCIIに変換)されない点が異なる。その代わり、プロトコルバージョン情報;本体のものと同様の新規の長さ要素;セキュア電子メール14の本体に使用されているものと同じmessageId104aのコピー;この添付ファイル本体のハッシュを取って作成した新規のmic要素;シール(上述したsListのもの)を含んだバイナリヘッダが追加される。次に、この添付ファイルが、ヘッダが追加されたセキュア電子メール14の本体に使用したものと同じmessageKey104eを使用して暗号化され、この暗号化されたものが通常の方法で電子メールサーバ22にアップロードされる。
【0118】
添付ファイルへのこの手法には多くの利点がある。添付ファイルの検証メカニズムがセキュア電子メール14内部で実施され、これに適用可能なセキュリティ特徴によって保護されるため、添付ファイルを扱うこの手法によってセキュリティサーバ24のデータベース100が必ずしも妨害されることはない。また、あらゆる数の添付ファイルのサポートが可能である。各添付ファイルは、暗号化を実行するソフトウェアモジュール26内に送られるオブジェクトに追加される。各添付ファイルは、メッセージの本体と同じmessageKey104eを用いて暗号化され、各添付ファイルのハッシュは同じアルゴリズムを用いて計算できる。各添付ファイルにフルヘッダを付与することで、各添付ファイルを他の添付ファイルとは別に、さらには本体と別に復号化することが可能になる。添付ファイルを別々にすることにより、特に変更された添付ファイルがあるか否かを判断できる。セキュア電子メール14のこれ以外の部分での通常動作は、たとえ添付ファイルを有するセキュア電子メール14への返信時のように、添付ファイルが故意に含まれていない場合でも実施することができる。
【0119】
上述したように、セキュア電子メール14は、通常の電子メールシステムを介して各受信者16のインボックスへ到達する。受信者16は例によって、ブラウザの、受信した全メッセージの一覧が表示されている画面へ進むことができる。メッセージ一覧上をクリックすると、ブラウザは、その中のメッセージでフォーマットされたページを送信できるようになる。しかし、これには適切なソフトウェアモジュール26が存在することが必要である。
【0120】
受信ユニット20にソフトウェアモジュール26をインストールすれば、これをメッセージの受信/読み出しシナリオに使用する準備が整う。以下の説明では、プラグイン変形46aのソフトウェアモジュール26を用いたプライベート・ラベル・ブラウザも使用されているが、さらに当業者は、この基本となる原理を、セキュア電子メールシステム10を使用しているこれ以外のシステムにも拡大できることを容易に理解するだろう。
【0121】
簡単に図4に戻ると、同図はさらに、セキュア電子メール14が受信されているか否かを判断するためのソフトウェアモジュール26への好ましい手法も様式的に示している。受信ユニット20内のソフトウェアモジュール26が、セキュア電子メール14を含むものがあるかどうか、ページ72のストリーム70を検査する。ソフトウェアモジュール26がページ72にセキュア電子メール14が含まれているか否かを判断する方法は、“--------- BEGIN SECURECORP SECURED EMAIL -------”タイプのタグについて走査を実行するというものである。この作業は、それ以上処理されるべきでないページを送信する待ち時間を最短化することで、迅速に実施できる。実際の候補ページ72aが見つかった場合、このページはストリーム70から除去され、今説明したとおりに処理され、処理済のページ72bとしてストリーム内に戻されることで、受信者16がこのページを読むことが可能になる。
【0122】
図8は、好ましい復号化プロセス150を示すフローチャートである。ここでも同様に、受信者16の受信ユニット20上で実行されているブラウザ内にソフトウェアモジュール26が既にインストールされており、受信者16がセキュリティサーバ24に登録済みであると仮定する(セキュリティサーバ24は、恐らく、未登録のあらゆる受信者に対して既に電子メールを生成している)。受信者16がセキュア電子メール14(つまり、暗号化プロセス120に従って作成された、安全化およびシールされたXML文書)を選択すると、ソフトウェアモジュール26が、セキュア電子メール14を受信者16によって読み出し可能なものにするために、復号化動作を実行する。これがステップ152、つまり復号プロセス150の開始を構成する。
【0123】
ステップ154では、受信者16がパスワードを取得する。セキュリティサーバ24は送信者12と受信者16の両方をユーザとして扱い、送信者12と受信者16の両方がユーザテーブル102(図5)内への同等のエントリを有する点を思い出されたい。まだパスワード102bがキャッシュされていない場合には、受信者16がパスワードの入力を催促される。パスワードのキャッシング、催促などの規則は送信の場合と同様である。
【0124】
ステップ156にて、ソフトウェアモジュール26がmessageId104aを抽出し、受信したメッセージを(符号化されている場合には)復号化し、(まだ暗号化された状態の)本体フィールド60を抽出する。
【0125】
ステップ158にて、以下の情報がセキュリティサーバ24へ(SSL経由で)送られる:
受信者16の電子メールアドレス(emailAddress103a);
受信者16のpassword102b;そして
messageId104a。
【0126】
ステップ160では、セキュリティサーバ24が、認証サブプロセスの結果に従って先に進む。
1) password102bを決定するために、セキュリティサーバ24がsalt102cで受信者のパスワードのハッシュを実行する。
2) 受信者16のemailAddress103aとの関連に一部基づき、パスワード102が検証される。この認証部分が失敗した場合、受信者16に正確なパスワード102bの入力、または復号プロセス150の中止を催促する応答がソフトウェアモジュール26に送信される。
3) 受信者16がこのセキュア電子メール14を読むことを許可されているか否かが判断される。このためには、受信者16の電子メールアドレスが、特定のmessageId106aの受信者テーブル106内のreceiverAddr106bと一致しなければならず、numRequests106dが、このセキュア電子メール14のmaxDeliveries104fよりも少なくなくてはならず、さらに、expiration104gが、このメッセージの有効期限が既に切れている旨を示すものでなければならない。この許可が失敗すると、受信者に通知が送られ、さらに、セキュア電子メール14を復号化することなく復号プロセス150を終了するよう要求する応答がソフトウェアモジュール26に送信される。
【0127】
これら検査のいずれかが失敗した場合、ブラウザページは、単純に、暗号化されたデータを含んでいないかのような表示を行える、つまり、本体フィールド60が通常そうであるように理解不能な訳のわからない文字の羅列として表示することができる点に留意すべきである。しかし、送信者IDフィールド66、様々な受信者IDフィールド56、そして、恐らくは(構成により)件名フィールド58を依然として理解不能にしておくことができる。そのため、受信者16は、送信者12または他の受信者16と接触して、そのセキュア電子メール14が重要であるか、また、セキュア電子メールシステム10外部での処置が適切であるか否かを判断することができるようになる。これらの検査が成功すると、この受信者16は認証されたと考慮され、このステップ160が終了する。
【0128】
ステップ162では、セキュリティサーバ24がmessageKey104eを、SSL経由で受信者16のソフトウェアモジュール26へ返送する。
【0129】
ステップ164では、ソフトウェアモジュール26が、これと同じmessageKey104eと、暗号化する際に使用した基本プロセスを逆にしたものを用いて、セキュア電子メール14を復号化する。
【0130】
ステップ166では、ソフトウェアモジュール26がセキュア電子メール14の妥当性チェックを実行する。このために、セキュリティサーバ24との第2ラウンドの通信が実施される。ソフトウェア26はセキュア電子メール14の各部分の新規ハッシュを生成し、これらのハッシュと、各メッセージ部分に含まれているシールとをセキュリティサーバ24に送信する。次に、セキュリティサーバ24が、ハッシュ内の送信されたものに基づいて新規シールを計算し、これをシール内の送信されたものと比較する。これらの間に相違があれば、そのセキュア電子メール14が認証されないものであることを示す。次に、セキュリティサーバ24が、セキュア電子メール14の認証性に関する表示を、ソフトウェアモジュール26へ返送する。
【0131】
最後に、ステップ168にて、暗号化されたメッセージが配置されていたセキュア電子メール14の平文本体フィールド60を表示するHTML受信フォーム54が受信者16に対して示される。さらに、セキュリティサーバ24からの認証性に関する表示が負であった場合には、ソフトウェアモジュール26は、これに関して受信者16に提案するメッセージも表示する。
【0132】
また、好適な実施形態では、複合プロセス150の最適化として、ソフトウェアモジュール26がmessageKey104eをキャッシュすることで、同一のセッション中に、セキュリティサーバ24にアクセスすることなく同じメッセージを再び読むことができる。しかし、これは読み出し動作のみに適用され、messageKey104eがディスク上に保存されることはない。
【0133】
あらゆる添付ファイルの復号化は、これと同じmessageKey104eと、同じ基本プロセスを用いて単純に実行される。前述したとおりバイナリヘッダを使用している点と、添付ファイル内の情報が符号化されていない点のみが異なる。
【0134】
要するに、好適な実施形態のソフトウェアモジュール26は:HTMLページを提供する前に、該ページを代行受信およびパースし;HTMLページを提供する前に、該ページを選択的に変更し;HTMLフォームおよびページからデータを抽出し;安全な手段(例えば安全なHTTP、SSL)を使ってデータをセキュリティサーバへ送信し;同一のアルゴリズムを使用して対称な鍵暗号化および復号を実行し(例えばBlowfish対称鍵暗号/復号);ハッシングを実行し(例えばSecured hash algorithm one, SHA-1);(パスワード入力、構成、エラーメッセージ、シール検証結果のための)ダイアログボックスを表示し;好ましくは自己更新型である。
【0135】
前出の暗号化プロセス120と復号プロセス150の基礎となるセキュリティ特徴にはさらに何らかの分析が含まれる。セキュリティサーバ24のオペレータは、送信者のemailAdress103aがpassword102bと関連するべきであるため、認証の目的から送信者12を知っている。password102bがあるべきとおりに、つまり、その保持者にしか知られない方法で扱われた場合、セキュリティサーバ24のオペレータは、この送信者12のみが特定のセキュア電子メール14を送信できたと確信できる。しかし、送信者12が信用されている必要は少しもない。セキュリティサーバ24のオペレータはさらに、最初にseaSalt104hを保存することで、その送信者12を含む何人であってもセキュア電子メール14をその送信後に変更することは不可能である旨を確信することができる。追加のセキュリティ特徴として、暗号化したsealSalt104hをデータベース100に保存し、共用や、セキュリティサーバ24から持ち出すことを絶対に許可しないようにしてもよい。送信者12の認証(password102bの提出によって行う)の後に、SSL鍵で本体と添付ファイルのハッシュ(H(b)、H(a))を暗号化することで、セキュア電子メール14に署名しているのは送信者12であると判断することが可能になる。セキュリティサーバ24は、送信者12の実パスワードのハッシュのみをpassword102bとして保存しているので、セキュリティサーバ24のオペレータでさえ送信者12の代わりにセキュア電子メール14に不正に署名することは全く不可能である。
【0136】
messageKey104eは対称であり、外部エンティティ、つまりセキュリティサーバ24がこれを保存しているので、何者かが例えばデータベース100に侵入して、セキュア電子メール14の代行受信と、さらにそのmessageKey104eの入手の両方を実行すれば、その人物はセキュア電子メール14を復号化できてしまう。興味深いことに、この内の一方しか入手できなければ復号化は行えない。messageKey104eを公開鍵で暗号化すれば、この手法をさらに強化できる。所与のセキュア電子メール14をクラッキングするために必要なmessageKey104eを入手するには適切な秘密鍵を要するため、これでデータベース100への侵入も役に立たなくなる。したがって、データベース100への総当たり攻撃も実行不可能となる。さらに、セキュリティサーバ24のオペレータが必要な秘密鍵を可能な限り実ハードウェア内に置くことができ、これにより、採用している実マシンに物理的にアクセスしない限りデータベース100への侵入が実質的に不可能になる。
【0137】
セキュア電子メール14を読むことは、その送信よりも単純である。ここで唯一の問題は、復号に使用するシングルキー(messageKey104e)をメッセージ毎に設けている点である。そのため、ソフトウェアモジュール26内において、鍵が受信者のマシン上でノーガードとなり、これにアクセスできる瞬間がある。しかし、これによって可能になるのは、受信者16が読み出しを許可された最新のセキュア電子メール14を読むことだけである。そのため、この場合に危険が生じるのは、無許可の人物がメモリ内の鍵に短時間アクセスできた場合だけである。これを実行することは非常に困難であり、この方法で鍵を盗めるならば、復号化したメッセージも一緒にいとも簡単に(それ以上ないほど簡単に)盗めてしまうということになる。それなら鍵などに関心を持たないだろう。要するに、これはセキュリティリスクではないのである。
【0138】
シールを使用することで、信頼できる第三者の公証人として機能するセキュリティサーバ24のオペレータを介した否認防止が得られる。特に、裁判官は、メッセージが、セキュリティサーバ24のオペレータにシール、メッセージのハッシュ、送信者12の名称(userId102aをマッピングするため)を付与することで実際に送信者12から送信されたものか否かを判断できる。好適な実施形態について説明したとおり、受信者16はシールを、そのシールと、受信したメッセージのハッシュをセキュリティサーバ24に送信することで、これが本物であると検証することができる。(送信者12が、実際に書き、特定のセキュア電子メール14を送信したことを証明する。)その後、セキュリティサーバ24がこれに関連して保証を提供する。セキュリティサーバ24にて、3つの既知の数量に基づいてこのシールを再計算するために使用して、このシールが本物であるか否かを判断する。この技術は「秘密鍵による否認防止」として知られており、Kaufma等による"Network Security: Private Communication in Public World", Prentice-Hall, 1995, pp. 343-44により示唆されている。
【0139】
ここで説明した実施形態におけるセキュリティの多くがSSLの強度に基づくことが明白である。現在これが基準として受け入れられているようなので、ここでは、送信者12のpassword102bとmessageKey104eの両方がSSL経由で送信されるという事実を心配することはない。しかし、セキュア電子メールシステム10のセキュリティの強度はSSLに依存するものではない。通信チャネルを保護するためのより安全なプロトコルの利用が可能になっており(例えば、Transport Layer SecurityまたはTLS)、セキュア電子メールシステム10はこのようなプロトコルを容易に使用できる。
【0140】
ここまで、主にセキュア電子メールシステム20のプレゼンテーションについて説明してきた。しかし、このキーサーバの概念は、安全な通信に伴う問題に取り組む様々なソリューションを構築および展開するためにさらに一般的に使用することができる。たとえば、この手法はさらに、特に企業内インスタントメッセージング(EIM)、ビデオ会議、安全なリアルタイム文書編集を促進できる。これらは、メッセージコンテンツを伝送またはルーティングするためにメッセージヘッダを採用した通信スキームの単なる追加例であり、キーサーバはこのような通信スキームのいずれとも効率的に使用することができる。
【0141】
このキーサーバによって提供されるソリューションは、組織間での共同使用にも特に適している。組織は、キーサーバを使用することで、その構成要素に技術と媒体の贅沢な組み合わせを介して自由かつ容易に共同させながら、最も厳しいセキュリティの必要性を満たすことができる。
【0142】
以下の用語は、本明細書の以降の説明をとおして頻繁に使用されるものであるため、ここで便宜性のために定義しておく:
秘密保護 -- データの場所に関係なく(例えば、送信中または記憶装置内)、許可された受信者しかデータを見ることができないようにする。
会話鍵 -- 会話データを保護する対称鍵。会話データは1つの送信元から1つまたはそれ以上の宛先へ流れる。
ハブ -- メッセージを処理し、このメッセージを適切な宛先へ中継するネットワークサーバ。
整合性保護 -- 送信中または記憶装置内にあるデータへの無許可の変更を確実に検出する。
参加 -- コラボレーションへの参加を開始する。
キーサーバ -- 保護鍵を保持しており、これらを許可されたユーザに公開するネットワークサーバ。
退出 -- コラボレーションへの参加を中止する。
ヘッダ鍵 -- メッセージのヘッダを保護する対称鍵。ヘッダ鍵はハブと各スポークの間で個別に確立される。
メッセージ -- コラボレーション参加者間で交換されるデータの基本ユニット。メッセージは「ヘッダ」と「コンテンツ」の2つの部分で構成されている。
メッセージコンテンツ -- コラボレーション参加者によって生成されるデータであり、1つまたはそれ以上の他の参加者へ宛てて送信される。
メッセージヘッダ -- メッセージルータがコンテンツをその宛先へ伝送する上で補助をするデータ。
保護 -- 秘密および整合性の保護。
スポーク -- データの送信者または受信者;スポークはデータの中継を行わない。
トランスクリプト -- コラボレーションのある部分の記録。
【0143】
図9は、セキュリティサーバシステム210の主要な構成要素を示す概略ブロック図である。ほぼ汎用化されているが、この実施形態は企業におけるコラボレーション通信に特に適している。ここで、主要な構成要素にはコラボレーション参加者212、1つまたはそれ以上のメッセージルータ214、1つまたはそれ以上のキーサーバ216が含まれる。したがって、この場合のコラボレーション参加者212は、図1の送信ユニット18、受信ユニット20に等しい。メッセージルータ214は、図1の電子メールサーバ22(または従来型のルータ)に等しい。しかし、先述したように、ここでのメッセージルータ214は、特にセキュリティサーバシステム210を使用している企業の制御下にあってよい。図9のキーサーバ216は、図1のセキュリティサーバ24に等しい。
【0144】
コラボレーション参加者212は、メッセージ218の送信元(送信元参加者212a)および/または宛先(宛先参加者212b)先述のように、会話鍵220は、メッセージ218のコンテンツを保護するために使用される。
【0145】
メッセージルータ214は、メッセージ218を目的のコラボレーション参加者212へ伝送する。メッセージ218は実際には複数のメッセージルータ214を通過するであろうが、図面中では1つのメッセージルータ214(または電子メールサーバ22、およびセキュア電子メール14が通過するであろう使用可能なルータ)のみを概念形成的に示している。複数のメッセージルータ214を設けている場合には、その各々が、コラボレーション参加者212を見るのと同様に他のメッセージルータ214を「見る」。コラボレーション参加者212の各々が、少なくとも1つのメッセージルータ214(または「最も近い」メッセージルータ214)との継続的な接続を維持する。
【0146】
キーサーバ216は会話鍵220を作成するか、または送信元212aの参加者から会話鍵220を受信する。その後、キーサーバ216がこの会話鍵220を保存し、コラボレーション参加者212である参加者に公開する(恐らくは認証および許可後に行うが、様々なスキームを使用でき、関連性があるかどうかはここでの主題ではない)。さらにキーサーバ216も会話鍵220を大量に作成/保存でき、要求に応じて任意数を公開できる。そのため、サーバクラス装置であるクライアント(例えば電子メールゲートウェイ)が会話鍵22の組を大量に入手でき、また、キーサーバ216に一意の会話キー220を毎回要求する必要なく、この中からそれぞれ唯一の鍵を使って各メッセージ218を保護できる。
【0147】
以下の説明を単純化するために、暗号化と復号を主な保護の例として使用する。鍵で暗号化/復号化することで、メッセージの秘密性が保護される。しかし、これは単に1つの保護の利用可能な例でしかない点を理解すべきである。鍵を使用したメッセージダイジェスト(ハッシュされたメッセージ認証コード、またはHMACとしても知られている)を用いてメッセージの整合性を保護したり、両タイプの保護を適用することができる。例えば、キーサーバ216は256ビット鍵を作成し、これを送信元の参加者212aに公開することができる。これにより、送信元の参加者212aは第1の128ビットを暗号化に、第2の128ビットをHMACに使用できる。
【0148】
会話鍵220を暗号化またはハッシュへの使用後に、解読またはハッシュ分析のためにこれを回収する必要があるので、キーサーバ216は各会話鍵220の一意IDと関連している。一意ID、またはこれから導出できる何かが、保護された各メッセージ218と共に普通文で送信される。そのため、コラボレーション参加者212がキーサーバ216に会話鍵220の要求を提出すると、キーサーバ216が要求された会話鍵220を含んだ返信をコラボレーション参加者212に送信する。キーサーバ216は汎用体であり、任意タイプのアプリケーションについて会話鍵220を扱うために使用できる。これによって、コラボレーション参加者212とキーサーバ216の間のセッションが安全なセッションとなる。
【0149】
図1と図9は、オプションであるが、非常に便利な特徴を図示する主要な点において異なる。図1では、電子メールサーバ22とセキュア電子サーバ24を、直接通信しないものとして示している。このスキームは、例えば電子メールサーバ22(またはその代用品としてのメッセージハブ)が従来のものである場合に効果を発揮する。これに対して図9では、メッセージルータ214とキーサーバ216を、直接通信するものとして示している。このスキームは、メッセージルータ214がセキュリティサーバシステム210内で機能するように設計されている場合に効果を発揮する。そのため、メッセージルータ214は、コラボレーション参加者が会話に参加または会話から退出する際に新規の会話鍵220を作成するようキーサーバ216に指示するエンティティであってよい。
【0150】
図10は、セキュリティサーバシステム210におけるメッセージ218の典型的な流れを示す概略ブロック図である。メッセージ218は、メッセージヘッダ222とメッセージコンテンツ224を含む。
【0151】
メッセージヘッダ222は、メッセージルータ214がメッセージをその宛先、つまり1つまたはそれ以上の宛先参加者212bへ伝送する際に補助となるデータを含む。以下はメッセージヘッダ222内に含まれる要素の例である:
宛先 -- メッセージの宛先。
送信元 -- メッセージの起源。
日付 -- メッセージ作成日時。
メッセージID -- そのメッセージのための一意のID。
コンテンツ長 -- コンテンツの長さ。
コンテンツタイプ -- MIMEタイプのコンテンツ。
優先順位 -- メッセージの優先順位。
【0152】
メッセージコンテンツ224は、送信元の参加者212aによって生成され、1つまたはそれ以上の宛先参加者212bに宛てられたデータを含む。もちろん、コラボレーションの最中に複数のメッセージ218を交換する場合、コラボレーション参加者212は、送信元参加者212aとしての役割りを変更でき、頻繁にこの変更を行う。メッセージルータ214はメッセージコンテンツ224を検査しない。[コンテンツフィルタリングやウィルススキャンのような特別なサービスが、メッセージコンテンツがその宛先に転送される前にこれを検査できる。しかし、これはオプションサービスであり、メッセージルーティングとは別のものである。]
【0153】
図10はまた、図示されたセキュリティサーバシステム210の実施形態が、実際にデータ保護のために2タイプのキーをどのように使用するかも示している。ここでも、保護は秘密性、整合性、またはその両方に関連している。第一に、メッセージルータ214が各コラボレーション参加者212と共にヘッダ鍵226を確立する。このヘッダ鍵226はメッセー218のメッセージヘッダ222を保護する。メッセージルータ214とコラボレーション参加者212の間で接続がなされる度に、異なるヘッダ鍵226が使用される。キーサーバ216はヘッダ鍵226の作成、保存、管理を行わない。さらに、ヘッダ鍵226は一時的なものであり、メッセージルータ214とコラボレーション参加者212の間でのセッションの継続時間を超えて有効性を維持することはない。第二に、会話鍵220はメッセージ218のコンテンツを保護する。あらゆるプロセス(コラボレーション参加者212またはメッセージルータ214)が会話鍵220を作成する(要求し、許可される)ことが可能である。この2つの鍵の手法を使用することで、送信元から宛先までの間において、効率的かつ安全性の高いメッセージ218の配布が可能になる。
【0154】
この2つの鍵の使用は、会話鍵220に等しい1つの鍵のみを使用する図1に示したスキームとも異なる。ヘッダ鍵の使用はオプションであるが、その使用によって安全性が高まる。例えば、メッセージルータ214を制御している企業はこの追加的レベルの安全性を付加して、メッセージヘッダ222内の情報をも安全化してしまうことを望むかもしれない。
【0155】
メッセージルータ214がその任務を実行するには、メッセージ218のメッセージヘッダ222のみを処理するだけでよい。図10では、メッセージルータ214は、通信するコラボレーション参加者212に従い、異なるヘッダ鍵226(KH1、KH2、KH3、またはKH4)を使用する。メッセージ218のメッセージコンテンツ224は、無変更のまま単純にメッセージルータ214を通り、次に、宛先の参加者212bが、メッセージ218のメッセージコンテンツ224を解読し、その整合性を検証するために、同一の会話鍵220(Kc)を要求および使用する。各メッセージルータ214は、メッセージコンテンツ224全体の整合性を検証することなくメッセージ218を次のメッセージルータ214へ「流す」ことができるため、この方法でヘッダ鍵226を会話鍵220から分離することが有利である。これは、人工的にメッセージを管理可能なブロックに分け、各ブロックを個々に暗号化する必要があるSSLおよびIPSecとは対照的である。
【0156】
メッセージルータ214は、将来的および過去的な秘密性を提供するために、以下のイベントが生じた場合、会話鍵220を変更または「ロールオーバ」できる。新規のコラボレーション参加者212が会話に参加した場合、メッセージルータ214が会話鍵220が変更されたことを知る。このイベントが発生する前に通信が行われたメッセージ218はすべて、過去の会話鍵220を使用して暗号化された状態を維持し、また、デフォルトでは、これらのメッセージ218が新規のコラボレーション参加者212に対して利用可能にされることはない。同様に、既存のコラボレーション参加者212が会話を退出する場合(例えば、メッセージルータ214との接続を切断する場合)、このイベント後に通信が行われたすべてのメッセージ218は新規の会話鍵を使用して暗号化される。デフォルトでは、退出するコラボレーション参加者212はこの会話鍵220を使用できないようになっている。セキュリティサーバシステム210の好ましい実施形態では、トランスプリプトは、暗号化された状態で記憶装置に保存される。そのため、コラボレーション中のイベントのシーケンスによっては(つまり、参加および退出動作)、会話の異なる部分を暗号化するための複数の会話鍵220が存在する場合もある。
【0157】
例えばコラボレーション参加者212が多数いる場合に、会話鍵220ロールオーバプロセスを、図9、図10中のこの実施形態の企業のコラボレーションテーマと一致するように最適化することができる。一般に、メッセージルータ214は、実際の(暗号化した)メッセージコンテンツ224にアクセス不能であっても、メッセージコンテンツ224が実際の物であるか否かを判断することはできる。例えば、メッセージヘッダ222内の情報がこれを表すものであってよく、あるいは、メッセージコンテンツ224がなくてもよい。メッセージルータ214は、この情報を用いて、会話鍵220のロールオーバを、次の実際のメッセージ218に遭遇するまで変更することができる。これにより、複数のコラボレーション参加者212が新規の会話に参加できるようになり、参加の度に会話鍵220が自動的にロールオーバされないようになる。その代わり、実際のメッセージ218の送信時に会話鍵220がロールオーバされる。同様に、複数のコラボレーション参加者212が既存の会話を退出し、会話鍵220が次の実際のメッセージ218が送信されるまでロールオーバされないようにすることができる。
【0158】
次の説明は、セキュリティサーバシステム210の実現のいくつかの新規概念を制限なく要約したものである。このセキュリティサーバシステム210は、1つの会話鍵220を割り当ておよび使用してデータの保護を行うが、そのデータが存在する限りこの1つの会話鍵220を使い続けることが可能である。この1つの会話鍵220を使用することで、メッセージルータ214はメッセージ218を解読および再暗号化する必要がなくなる。これにより、メッセージ218の非常に効率的なルーティングが可能となり、スケーラブルで企業クラスのコラボレーションシステムを実現できる。
【0159】
これと対照的に、既存の技術は、データがその起源から複数の宛先へ送信される際に、複数の鍵を使用して、(秘密性および整合性に関連して)データを保護する。典型的な実現は、セキュアソケットレイヤ/トランスポートレイヤセキュリティ(SSL/TLS)プロトコル、またはIPSECプロトコルを採用している。SSL/TLSを使用することで、各メッセージをその起源において暗号化し、このメッセージをルーティングするサーバ(つまりハブ)において復号化し、該ハブにおいて再暗号化し、最後に最終的な宛先において復号化することが必要になる。
【0160】
また、セキュリティサーバシステム210は、将来的および過去的な秘密性を容易に維持することもできる。新規コラボレーション参加者212の参加時、または既存のコラボレーション参加者212のコラボレーション退出時に、会話鍵220を変更できる。これにより、新規ユーザが参加以前のコラボレーションデータのどの部分にもアクセスできず、同様に、会話を退出したユーザは退出後にはそのコラボレーションにアクセスできないことがすべてのコラボレーション参加者212に保証される。たとえ攻撃者がセキュティサーバシステム210との接続状態を維持し、メッセージ218を受信しても、攻撃者は、これらメッセージ218のメッセージコンテンツ224を復号化するための会話鍵220を取得することはできない。
【0161】
これと対照的に、既存の技術では秘密性の維持を接続状態に頼っている。つまり、ハブに接続していないユーザはコラボレーションデータを受信できない。これは下級ユーザが使用するにはよいが、上級の攻撃者からコラボレーションデータを保護するには安全な技術ではない。
【0162】
セキュリティサーバシステム210は、効率的なマルチユーザ参加も可能にする。メッセージルータ214において会話鍵220による暗号化または複合を行わないことにより、メッセージルータ214における暗号化および復号の回数を最小化する。実際、メッセージルータ214においてコラボレーションデータに適用される暗号化および復号の回数は、コラボレーション参加者212の数には関係ない。
【0163】
これと対照的に、既存の技術では、ユーザ数が増えるとパフォーマンスに劣化が生じてしまう。このようなパフォーマンス劣化には多くの要因が貢献するが、主な要因は、システムの各構成要素によって実行される保護動作の数である。既存の技術は、セッション鍵を使用してコラボレーションデータを保護する。この既存技術では、セッション数がユーザ数と比例し、必要な保護動作がユーザ数と共に増加するため非効率である。
【0164】
セキュリティサーバシステム210は、同一のコラボレーションまたはセッション内で複数の安全なスレッドを実行することもできる。これは、コラボレーションデータ(メッセージコンテンツ224)が、セッション鍵よりはむしろ会話鍵220を使用して保護されているからである。そのため、許可されたコラボレーション参加者212の組によっては、1つのセッションで複数の会話鍵220を使用できる。
【0165】
既存の技術は、コラボレーションデータを保護するためにセッション鍵を使用する。そのため、同じコラボレーション内における会話の複数のスレッドを保護するには複数のセッションが必要となる。これにより、システムが柔軟性に欠け、非効率なものとなってしまう。
【0166】
さらにセキュリティサーバシステム210では、トランスクリプトの扱い方法も洗練されている。該システム210は、コラボレーションの最中およびコラボレーション後に、同じ会話鍵の組を使用してメッセージコンテンツ224を保護する。これにより、より柔軟で安全性の高いコラボレーションシステムが得られる。
【0167】
セッション鍵を使用する技術は、セッション鍵は一時的なものであり、コラボレーション終了と同時に失効するため、コラボレーションデータのトランスクリプトを保護する技術は厳密性を有する。
【0168】
また、セキュリティサーバシステム210は、これ以外の既存のセキュリティ技術を今説明したように改良する。すべてのセキュリティ機能に公開鍵インフラストラクチャ(PKI)を使用するコラボレーション技術によって、システムが非効率で厳密なものになる。PKIを用いてコラボレーションダータの保護を行うには、参加者全員がPKIデジタル証明書を持っている必要がある。これと対照的に、セキュリティサーバシステム210は、PKI証明書を、任意のコラボレーション参加者212を認証するために使用することができる。しかし、PKI証明書を所有する必要はない。そのため、自分の認証性を十分なレベルで証明できるコラボレーション参加者212はコラボレーションに参加できる。
【0169】
IPSecに基づいたコラボレーション技術は、個々のセキュリティアソシエーション(SA)を使用する必要がある。第一に、SAは一時的なものであり、事実上、SA鍵は送信中のコラボレーションデータしか保護できない。第二に、SAは送信元/宛先のペアに指定されている。したがって、ハブ−スポークモデルに基づいて動作するコラボレーションアプリケーション(例えばインスタントメッセージング)は、情報が複数のSA間で送信される際にデータの保護を要する。これと対照的にセキュリティサーバ210は、同じベース技術を使用して、送信中および記憶装置保存中(つまりトランスクリプト)のコラボレーションデータ(メッセージコンテンツ224)を保護する。
【0170】
SSL/TLSを使用するコラボレーション技術には複数のSSL/TLSセッションが必要である。第一に、セッションは一時的なものであり、事実上、セッション鍵は送信中のコラボレーションデータしか保護できない。第二に、セッションはクライアント/サーバのペアに指定されている。したがって、ハブ‐スポークモデルに基づいて動作するコラボレーションアプリケーション(例えばインスタントメッセージング)は、情報が複数のセッション間で送信される際に情報データの保護を要する。これと対照的に、セキュリティサーバシステム210は、同一のベース技術を使用して、送信中および記憶装置保存中(つまりトランスクリプト)のコラボレーションデータを保護する。
【0171】
図11は、通信システム310が4つの基本構成要素、すなわち通信を行っている参加者312(発信者314または受信者316)、認証オーソリティ318、キーサーバ320がどのように構成されているかを示すブロック図である。
【0172】
一般に、発信者314と受信者316が、認証オーソリティ318に接触し、自己を認証する。しかし、発信者314の認証オーソリティ318は、受信者316の認証オーソリティ318と同一であっても、異なっていてもよい。通信を行っている参加者312は、認証オーソリティ318に指定されたプロトコルを使用する(例えばTLS上のユーザIDおよびパスワード、2ファクタ認証、PKI証明書を使用するチャレンジ/応答プロトコルなど)。認証が成功すると、認証オーソリティ318が通信を行っている参加者312に認証アサーション322を発行する。認証オーソリティ318はこのアサーション322に署名する(一般にPKI秘密鍵を使用して行う)。すべてのアサーション322はそれぞれ異なっている。
【0173】
次に、発信者314は、1つまたはそれ以上の受信者316に送信したい通信文324用のデータを有している。発信者314はキーサーバ320に接触し、そのアサーション322と、目的の通信文324用の属性326を提出する。この属性326については以降でより詳細に説明するが、属性326は、通信文324のための目的受信者316のリストを含んでいる。
【0174】
キーサーバ320は、発信者314からのアサーション322を確認する。その後、将来の通信文324にリソースID328を割り当て、通信文324の暗号化に適した鍵330を作成し、リソースID328と鍵330を発信者314へ戻す。場合により、発信者314は鍵330をキーサーバ320へ送信し、この鍵330をリソースID328と関連付けるよう要求することができる。この最中に、キーサーバ320はリソースID328、鍵330、アサーション322、属性326を、管理しているデータベース332に保存する。
【0175】
次に発信者314は、鍵330を使用してデータを暗号化し、リソースID328を普通文で追加することによって通信文324を構成する。その後、発信者314が、従来の手段を使ってこの通信文324をすべての受信者316に送信する。発信者314は、キーサーバ320または認証オーソリティ318のいずれにも通信文324を送信する必要は全くなく、またほとんどの実施形態において送信していない点に留意すべきである。
【0176】
各受信者316はキーサーバ320から、暗号化された通信文324の復号に適した鍵330を受信する必要がある。通信文324は普通文でのリソースIDを含んでいるため、受信者316はそのアサーション322とリソースID324をキーサーバ320に提供する。次にキーサーバ320が、この受信者316からのアサーション322を確認する。さらに、先に発信者314が属性326提供した宛先受信者316のリストを使用して、その受信者316が、リソースID328が指定するその通信文324の宛先の受信者であるか否かを調べる。この属性326内に、これ以外に、先述した鍵330を使用可能にするための基準がさらに含まれている場合には、キーサーバ320はこれらの基準が一致するか否かも調べる。その後、キーサーバ320が受信者316に鍵を提供する。
【0177】
最後に、受信者316が鍵330を使って通信文324を復号化する。これと同時に、復号が成功したか否かにより、また場合により、通信文324内に含まれている暗号化チェックサムを比較することにより、通信文324のコンテンツの整合性が実証される。このようなチェックサムは、リソースID328と共に通信文の普通文の部分に含まれていてよいが、より典型的には、暗号化された部分に通信文324のコンテンツと共に含まれる。このようなチェックサムは、通信文324全体の異なる各部分も包括できる。例えば、通信文324のコンテンツ部分のみから導出でき、または、該通信文324の別の部分から導出できる。電子メール形式の通信文324である場合の一例には、チェックサム内に件名と暗号化時を含むものが挙げられる。この方法では、受信者316は、普通文で送信された件名部分が変更されたものであるか、または通信文324の到着が過度に遅れていないかを知ることができる。
【0178】
テーブル1は、キーサーバ320が保有するデータベース332のコンテンツのスキーマを示す。resourceIDフィールドは直線形であり、これまで説明してきたのはリソースID328である。ResourceTypeフィールドは、鍵330が作成されるアプリケーションタイプの範囲を提供する。例えば、電子メールとインスタントメッセージングが別々の送信者タイプを使用できる。これにより、別々のアプリケーションが、リソースID328の一意性を一致させる必要性から解放される。ResourceIDフィールドとResourseTypeフィールドの組み合わせは常に一意である。ResourseKeyは単純に鍵330であり、やはり既に説明済みである。鍵330が対称鍵である場合は1つのResourceKeyだけが必要である、つまり、同じ鍵330が発信者314と受信者316によって使用される。さらに通信システム310の実施形態は非対称鍵を使用することもできる。この場合には、キーサーバ320が発信者314に暗号化鍵330を提供するのであれば、発信者324は、この暗号化鍵330のためのResourEncryptKeyフィールドを有し、さらに、受信者316に提供されるはずの復号鍵330を保存するためのResourceDecryptKeyフィールドを有する。発信者314が鍵の生成を行う場合には、暗号化鍵および復号鍵330の両方、または復号鍵330のみをキーサーバ320に送信できる。
【0179】
スキーマについての説明をさらに続けるが、KeySizeフィールドはオプションである。1つのサイズの鍵を独占的に使用できるが、これに限定されるものではない。あるユーザは、より大型の鍵が提供する非常に強力な暗号化を希望するかもしれないし、他のユーザは、より小型の鍵が提供する処理負担の軽減を希望するかもしれない。別の考察として、リソースのクラッキングがより強力になるに従って鍵が大型化する傾向にある。この傾向はこれからも継続しそうであり、そのため実施形態は、古い鍵サイズとアップグレード版の鍵サイズに対応するためだけに、異なる鍵サイズを扱う必要があるかもしれない。
【0180】
さらにKeyCreatorフィールドもオプションである。キーサーバ320のみが鍵330を作成する、または常に発信者314が鍵330を作成する実施形態を利用できる。このフィールドを設けることにより、これらのうちいずれか一方の実施形態が許容される、または鍵330が時にキーサーバ320によって作成され、時に発信者314によって作成される混合配置が許容される。もちろん、ある実施形態にこのような機能を設けることで、どの配置を使用するか指定するため、または特定の発信者314に使用されるべき配置を指定するために用いられている手段が制限されることはない。
【0181】
大部分の実施形態がKeyOwnerフィールドを設けていることが予測される。発信者314は鍵330の「所有者」であり、このフィールドの使用の一例として、キーサーバ320がスキーマのコンテンツを便利な方法で変更することを促進するものが挙げられる。例えば、企業コンテキスト内で、発信者314が、鍵330がたった今退出したばかりの受信者316に関連付けされることを防止したいと希望する。あるいは、発信者314は、受信者316が休暇中であることを知ったため、例えば最初に指定された期間よりも長い期間、鍵330の公開を許可したいかもしれない。さらにKeyOwnerフィールドは、キーサーバ320が、他の参加者からの要求に応答することを許可するが、しかしこれは恐らく適切な場合のみである。例えば、政府機関キーサーバ320に、参加者発信者314に既に発行されているすべての鍵330を凍結し、それ以上鍵を発行しないよう要求できる。または、裁判所が、発信者314と受信者316の間の陰謀の証拠を調べるべく通信文324を復号化するために、鍵330の公開を命令するかもしれない。
【0182】
KeyOwnerフィールドを故意に設けない、または設けてはいるが単に使用していないということも可能である。キーサーバ320は、鍵330を「匿名の」発信者314、さらには「匿名の」受信者316に提供するかもしれない。キーサーバ320は、任意の発信者314が単に要求を行った場合に、鍵330とリソースID328をその最も単純な形式において提供することができ;次に、キーサーバ320は、単に要求およびリソースID328の提供を行った任意の受信者316に対して、その鍵330(または、非対称暗号化を使用している場合にはこれに関連する鍵)を提供できる。あるいは、匿名の発信者314が目的の受信者316を指定することにより、キーサーバ320がその非匿名受信者316のみに鍵330を公開できるようにする。さらにキーサーバ320は、発信者314と受信者316のいずれか一方、または両方から、アサーション322を要求する、またはしないかもしれない。例えば、キーサーバ320が、単に有効なアサーション322を提供されたことを根拠に、通信を行っている参加者312に鍵330を提供または公開するかもしれない。
【0183】
やはりスキーマの説明を続けると、DateCreatedフィールドは理論的にオプションであるが、その用途は明確であり、また一般的には提供および使用される。スキーマ内のこれ以外のフィールドには、発信者314が提出した属性に反応して設定されたものであり、また、テーブル1の記述と、これらがイベントとどのように関連するかについての説明から明白となるはずである。
【0184】
通信システム310により、3組のビジネスイベントの構成が可能になる。制御イベント340(図12)は、受信者316が通信文324を見ることができる時間およびその回数を制御するために発信者314が実行した動作の組で構成されている。正のイベント342(図13)は、受信者316が実行した動作の組で構成されている。また、負のイベント344(図14)は受信者316から実行が予想されたが、まだ開始されていない動作の組で構成されている。
【0185】
キーサーバ320は、発信者314が提供した属性326に基づいて制御イベント340を設定する。次に、キーサーバ320は、そのデータベース332内の情報、および受信者316との通信またはその欠如に基づいて、正のイベント342と負のイベント344の両方を決定する。
【0186】
受信者316が通信文324を見るためには、復号鍵330を認証し、これをキーサーバ320から取り出すことを思い出されたし。通信文324の発信者314はこの鍵330の「所有者」であり、各受信者316が復号鍵330を取り出せる時間と回数についての制御イベント340を作成するために、属性326を設定できる。この機能を可能にする属性は、キーサーバ320がデータベース332内に保有しているReleaseAfterフィールド、ExpireOnフィールド、NumReleaseフィールドである。
【0187】
図12は、制御イベント340に関連した情報の流れを示すブロック図である。矢印付きの線352は、属性326が発信者314からキーサーバ320まで、さらにそのデータベース332内へ流れる様子を示す。
【0188】
図13は、正のイベント342に関連した情報の流れを示すブロック図である。矢印付きの線354は、鍵330(ResourceIDと受信者のアサーション322を含む)の要求が受信者316からキーサーバ320へ流れ、また、これに関する情報がキーサーバ320のデータベース332内へ流れる様子を示す。キーサーバ320は、所与の受信者316が鍵330を取り出せる時間およびその回数を記憶する。これは、特定の受信者316が特定の時間に実行した動作を示す正のイベント342を作成するための支持として機能する。この機能性を可能にする属性は、キーサーバ320のデータベース332内のLastReleaseフィールド、NumReleasedフィールドである。
【0189】
別の矢印付きの線356は、キーサーバ320が、受信者316が復号鍵330を取り出せる時間を通知サーバ346(キーサーバ320と別個に示しているが、この限りではない)に知らせる様子を示す。次に、通知サーバ346は、複数の矢印線358で示すフォローアップ動作を、複数の利用可能な宛先に向けて発信できる。例えば、通知サーバ346がマーケティング部署のシステムに通知し、次に、このシステムがマーケティング代表者に、見込み客(受信者316)に電話をしてフォローアップを行うよう警告できる。
【0190】
図14は、負のイベント344に関する情報の流れを示すブロック図である。負のイベント344に発信するには、キーサーバ320のデータベース332内のLastReleasedフィールドとExpectedRequestフィールド内の属性を使用する。同図中の仮想矢印線360(破線)は、受信者316からキーサーバ320までの発生しなかった情報の流れと、さらに、ここでも、矢印付き線356と複数矢印付き線358が、これによって発生するキーサーバ320から通知サーバ346までの情報の流れを示す。受信者316が所与の時間までに鍵330の要求に失敗すると、キーサーバ320が通知サーバ346に信号を発信し、その後、通知サーバ346がフォローアップ動作を発信できる。例えば、通知サーバ346が顧客コールセンター内のシステムに通知し、次に、このシステムは顧客サービス代表者に、顧客(受信者316)に電話をかけて通信文324のコンテンツを口頭で伝えるように警告できる。
【0191】
図15は、本発明の通信システム410の実施形態が4つの基本構成要素、つまりトランザクション実行中の参加者412(発信元414または対象者416)、認証オーソリティ418、キーサーバ420を使用できるブロック図を示す。
【0192】
トランザクション実行中の参加者412は認証オーソリティ418と通信して自己認証を行う。トランザクション実行中の参加者412は、認証オーソリティ418に指定されたプロトコル(例えば、トランスポートレイヤセキュリティ上のユーザIDおよびパスワード、2ファクタ認証、PKI証明書を使用するチャレンジ/応答プロトコルなど)を使用する。認証が成功すると、認証オーソリティ418がトランザクション実行中の参加者412に認証アサーション422を発行する。認証オーソリティ418がこのアサーション422に署名をする(一般に、PKI秘密鍵を使用して行う)。アサーション422はトランザクション実行中の参加者412の証明書;認証オーソリティ418の証明書;認証アサーション422の有効期間;任意の承認データを含んでおり、これらは、トランザクション実行中の参加者412がアサーション422の正当な所有者であることを証明するためにキーサーバ420によって使用される。この認証データの一例に、その秘密鍵がトランザクション実行中の参加者に知られている一時的な公開鍵がある。トランザクション実行中の参加者412は、この秘密鍵を作成し、これに対応する公開鍵が自分に属すると主張して欲しいと、認証プロトコルを介して認証オーソリティ418に要求することができる。あるいは、認証オーソリティ418は鍵のペアを作成し、秘密鍵をトランザクション実行中の参加者に安全に伝送し、これに関連する公開鍵が、このトランザクション実行中の参加者412に属すると主張できる。認証オーソリティ418が秘密鍵について知ることがないため、一般には前者の方法が好ましい。
【0193】
先述したように、送信元414が認証オーソリティ418を有し、アサーション422を受信する。次に、送信元414が、一般にはトランザクション実行中の参加者424を1つまたはそれ以上の対象者416と通信させたいと望む直前に、キーサーバ420と通信する。キーサーバ420がトランザクション424にトランザクションID428を割り当て、そのトランザクション424のための暗号化鍵430を作成する。(暗号化鍵430は、復号に使用できるものと同一の鍵340かもしれないし、そうでないかもしれない。)任意で、送信元414が鍵430をキーサーバ420へ送信して、その鍵430をトランザクション424と関連付けるよう要求する。キーサーバ420が送信元414の鍵430、トランザクションID428、アサーション422のすべてを、キーサーバ420が保有するデータベース432内に保存する。最後に、送信元414が、鍵430を使用して、トランザクション424内でデータの秘密性と整合性を保護し、このトランザクション424を対象者416へ送信する。この送信は、認証オーソリティ418またはキーサーバ420のいずれかを介さない、全く従来の手段によって実施することができる。
【0194】
通信システム410は、送信元414のアサーション422を、トランザクション424を保護するトランザクションID428および鍵430と関連付けることによって起源の否認防止を達成する。これにより、鍵430がトランザクション424と送信元を「暗号化的に」バインドする。例えば、トランザクション424が電子メール内で具現化される実施形態では、その電子メールの起源である送信元414が、特定の認証方法で特定の認証オーソリティ418において認証されたことを証明するために通信システム410を使用する。
【0195】
送信元414が後にトランザクション424の否認を試みた場合、これと競争しようとしている参加者が様々な方法で前進することができる。この参加者が対象者416である場合には、トランザクションID428と推定上の送信元414の証明書をキーサーバ420に提供して、キーサーバ420に、この推定上の送信元414が、トランザクションID428に関連したアサーション422を提供したことを承認するよう要求する。あるいは、対象者416がトランザクションID428のみを提供して、キーサーバ420にそのトランザクションID428を受信した送信元414が誰であったかを質問してもよい。
【0196】
もちろん、送信元420またはこれ以外の参加者は、対象者416がトランザクション424の起源を妥当に確認したことをまだ簡単に認めたくないかもしれない。しかし、問題解決側の参加者はトランザクション実行中の参加者412(送信元414または対象者416)以外の者、例えば仲裁者、裁判所、または銀行である可能性もある。ここで、次にこの参加者がトランザクションID428をキーサーバ420に提供し、そのトランザクションID428の発行のためにアサーション422を提供した送信元414は誰であるか、また、トランザクション424を復号化して、その整合性を検証するのはどの鍵430であるかについて通知される。鍵430がトランザクション424を復号化し、その整合性を検証する場合には、起源についての質問は解決する。あるいは、恐らくより一般的には、この参加者がトランザクション424とトランザクションID428の両方をキーサーバ420に提供することができ、キーサーバ420が、トランザクション424を復号化して、その整合性を検証したのがその鍵430であるか否かを判断することができ、その後、キーサーバ420がその旨を通知することができる。ここで、推定上の送信元414の証明書もキーサーバ420に提供でき、その後、キーサーバ420は、その推定上の送信元414がトランザクションID428に関連したアサーション422を提供したか否かを確認する(つまり、イエス、ノーで応答する)ことができる。
【0197】
さらに先述したように、トランザクション対象者416は、認証オーソリティ418(しかし、送信元414が使用したものと同一である必要はない)を有し、さらにアサーション422を受信する。次に、対象者416は、トランザクション424内のデータを解読して、その整合性を実証するために、キーサーバ420から復号鍵330を取り出す必要がある。キーサーバ420は、このために鍵330を公開する前に、対象者416のアサーション422を保存し、トランザクションID428との関連付けを行う。
【0198】
このように、通信システム410は、対象者416のアサーション422をトランザクションID428、トランザクション424を保護している鍵330と関連付けすることで、受信の否認防止を達成する。例えば、トランザクション424が電子メール内で具現化される実施形態では、対象者416がその電子メールを受信および開封し、また特定の認証方法により、特定の認証オーソリティ418において認証されたことを証明するために、通信システム410を使用することができる。
【0199】
後に対象者416がトランザクション424の受信を否認しようと試みた場合には、トランザクションID428と対象者416の証明書をキーサーバ420に提供して、対象者416が鍵430を要求し、対象者416が有効なアサーション422をその要求の一部分として提出し、そしてその時に対象者416が鍵の提供を受けたことを確認するよう要求することで、問題は簡単に解決する。これにより、対象者416が、トランザクション424を開けるために実際に鍵430を使用したかどうかの問題のみが残る。しかし上述したように、トランザクション実行中の参加者412からの要求は、一般にソフトウェア(例えば、図3のソフトウェアモジュール26)によって扱われる。そのため、少なくとも対象者416に関しては、鍵430の受信とその使用を容易に自動化し、両方を同時に実行するようにすることができる。これにより、鍵430を受信した対象者416が、同じ鍵430を使用してトランザクション424を開いたであろうという、解決が非常に困難な推測ができる。
【0200】
キーサーバ420は、送信元414およびすべての対象者416のアサーション422をそのデータベース432内に永久に保存する。通信システム410がこれらのアサーション422をトランザクションID428と関連付けるため、データベース432を使用して、トランザクション424の起源であるイベントと、各トランザクション424の受信を再構成できる。これは、総合的な監査システムの基本として機能する。
【0201】
図16は、通信システム410が、後の否認防止および監査目的のために、データベース432内でデータを確立できる適切なプロセス450を示すフローチャートである。プロセス450はステップ452にて開始するが、ここで、認証オーソリティ418とキーサーバ420の存在が推測され、また、送信元414は、認証オーソリティ418からアサーション422を既に取得している。
【0202】
ステップ454では、キーサーバ420へ要求が送信される。多くの実施形態において、この要求は送信元414が直接行うであろうと予測されるが、しかし、技術上の理由からして送信元414の代理で仲裁者がこれを行なうこともできる(もちろん、これを許可しないための優れたポリシー上の理由があってよい)。この要求には、送信元414のアサーション422、予想されるトランザクション424に関する情報が含まれる(例えば表1参照)。先述したように、このような情報は少なくとも対象者416を証明し、さらに、このトランザクションについて許可される復号鍵430の公開回数および個数を設定することができる。送信元414が復号鍵430を提供した場合には、要求にさらにこの復号鍵430が含まれる。
【0203】
ステップ456では、キーサーバ420が、送信元414のアサーション422有効であるか否か(また、少なくとも最小のこれ以外の情報、例えば少なくとも1つの対象者416が証明されているといった情報が提供されているか否か)が判断される。有効でない場合には、ステップ458にて、キーサーバ420が、特定の実施形態にとって適切と思われる処置を実行する。判断の失敗は悪意のないエラーによって起こる可能性があるため、多くの実施形態では要求の修正を少なくとも1回は許可すると予想される。もちろん、キーサーバ420は、試みられた要求をすべてデータベース432に記録している。
【0204】
ステップ456で、プロセス450が継続すべきであると決定された場合、ステップ460にて、キーサーバ420がトランザクションID428(図中では“t−id”)を割り当て、これを送信元414のアサーション422、復号鍵430と共にデータベース432に保存する。設計または構成の問題として、暗号化鍵430と復号鍵430は同一であっても、同一でなくてもよい点を思い出されたし。これらの鍵が異なる場合、キーサーバ420は、所望であればその両方を保存できる。
【0205】
ステップ462にて、キーサーバ420が、トランザクションID428と、さらに暗号化鍵430を提供するのであればこれも一緒に提供することで要求に応答する。
【0206】
図16では、トランザクション424を暗号化、送信、受信するためのステップを示していない。簡略化の目的で、ここでは、これらをそのラベルが示すとおりに処理し、それ以降の詳細な説明を以下に示す。
【0207】
ステップ464では、対象者416がトランザクション424を受信し、認証オーソリティ418からアサーション424を既に取得していると仮定する。このステップにはさらに、キーサーバ420による別の要求の受信が含まれる。多くの実施形態では、この要求が対象者416によっても直接行われているが、しかし、技術上の理由からして仲裁者がこの要求を行うことも可能である。この要求には、トランザクション424および対象者416のアサーションと共に提供されたトランザクションID428も含まれる。
【0208】
ステップ466では、キーサーバ420が、対象者416のアサーション422が有効であるか否か(また、トランザクションID428が、現在対象者416が見ることを許可されているトランザクション424用のものであるか否か)を判断する。有効でない場合は、ステップ468にて、キーサーバ420が適切と思われる処置を実行する。ここでも、判断の失敗は悪意のないエラーによって起こる可能性があるため、多くの実施形態では要求の修正を少なくとも1回は許可すると予想される。しかし、キーサーバ420はここでも、試みの要求をすべてデータベース432に保存できる。
【0209】
ステップ466にて、プロセス450が継続すべきと判断された場合、ステップ470にて、キーサーバ420が対象者416のアサーション422をデータベースに保存され、トランザクションID428、対象者416の証明書と関連付けされる。
【0210】
ステップ472にて、キーサーバ420が、トランザクションID428に関連して保存してあった復号鍵430を取り出し、さらに、この復号鍵430を提供することでこの要求に応じる。
【0211】
最後に、ステップ474にて、プロセス450が終了する。この状態で、否認防止および監査の目的からデータベース432内にデータが確立されている。恐らく、しかし非常に高い確率で、通信システム410が対象者416について、要求/応答処理を自動化するソフトウェア(例えば、図3のソフトウェアモジュール26)を使用した場合、トランザクション424が復号化および表示される。
【0212】
上述したように、暗号化鍵430を使用する動作は、トランザクション424と送信元414を「暗号的に」バインドする。しかし、次に、これとは別の手法、およびこれら手法の適切な応用形、さらに代表的な例証について説明する。
【0213】
公開/秘密鍵システムを採用している場合、送信元414は、キーサーバ420に提出するアサーション422内に公開鍵(復号鍵430)を含めることができる。次に、送信元414が、関連の秘密鍵(暗号化鍵430)を使用してトランザクション424を暗号化することで、トランザクション424に効率的に「署名」するため、トランザクション424を否認することはできない。これは、PKIシステムが否認防止を達成する方法と概念上類似するが、この手法ではキーサーバ420を採用し、追加の恩恵の取得を許可している。
【0214】
暗号化と復号化の両方に1つの鍵を使用する場合には、送信元414とキーサーバ420が協働して、送信元414から送信されたトランザクション424を証明するための「シール」を作成できる。この手法には多数の応用形が可能であり、現在発明者が好ましいとする応用形を以下に示す。この中の多くの特徴はオプションである。
【0215】
ここでは、前述したように、送信元414がキーサーバ420からトランザクションID428と暗号化キー430を要求し、キーサーバ420がこれらと、鍵作成タイムスタンプ、送信元414の証明書を提供する。[一般にこの証明書は電子メールアドレスであるが、これに限定はされない。例えば、キーサーバ420が、送信元414を証明するためにその顧客番号を使用してもよい。多くの場合、送信元414は「その」証明を十分よく知っているが、キーサーバ420からこれを「オウム返し」し、その完全に同一のコピーを次のステージに使用することで、起こり得るエラーを回避できる。]次に、送信元414がトランザクション424のためのデータ、トランザクションID428、タイムスタンプ、証明書を組み合わせてハッシュを生成する。送信元414がこのハッシュを「ソルト」、つまりランダムに生成された数で暗号化し、この暗号化されたハッシュがシールになる。
【0216】
次に、送信元414がトランザクション424用のデータを暗号化し、これが対象者416に実際に送信されるものとなる。ここで、送信元414がシールとソルトを作成する点に留意すること。送信元414はシールをキーサーバ420に送信するが、トランザクションまたはソルトは送信しない。送信元414は各対象者416に、暗号化され、ソルトを含むが(好ましくは)シールを含まないトランザクション424を送信する。
【0217】
対象者416はこのトランザクションを受信すると、トランザクションID428とそのアサーション422をキーサーバ420に送信する。すべて整っていれば、キーサーバ420が復号鍵430、鍵作成タイムスタンプ、送信元414の証明書、シールを返送する。対象者416は、この復号鍵430トランザクション424を復号化し、ソルトにアクセスし、次に、送信元414がシール作成のために使用するプロセスを再度作成する。対象者416はトランザクション424用のデータ、トランザクションID428、タイムスタンプ、証明書を組み合わせてハッシュを生成する。続いて、このハッシュをソルトで暗号化する。その結果が、送信元414が作成し、現在キーサーバ420から提供されているシールと一致した場合には、送信元414はトランザクション424を否認できない。さらにこれにより、対象者416がトランザクション424と接続し、復号鍵430を使ってこれを暗号化し、後にこのトランザクション424が送信元414から送信されたものであると主張されることを防止できる。
【0218】
図17は、データベース432に確立されたデータを、送信元414が試みた否認に対抗するために使用する適切なプロセス480を示すフローチャートである。
【0219】
ステップ482にて、プロセス480が開始する。データはトランザクション424として既にデータベース432内に確立されていると仮定する。
【0220】
ステップ484にて、キーサーバ420、またはこれ以外の、少なくともデータベース432への読み出しアクセスを有するシステムに対して、送信元414を証明する要求が行われる。このような要求は、潜在的に対象者416、またはこのトランザクション424を何らかの方法で証明できる別の参加者から出される(もちろん、所望であればポリシーによってこれに制限を課すこともできる)。最も一般的には、トランザクションID428によって証明を行われるが、別のデータを使用して、データベース432を検索し、トランザクションID428を決定することができる(例えば、鍵430、アサーション422、実際のトランザクション実行中の参加者412証明情報、トランザクション424送信または受信回数など)。
【0221】
ステップ486にて、送信元414が最初に提供し、トランザクションID428に関連してこれまでずっと保存されていたアサーション422を検査することで、送信元414の証明が決定される。
【0222】
ステップ488にて、送信元414を検証することによりこの要求への返答が為される。しかし、この返答と実証の性質は多様な形式であってよい。例えば、この返答は単純に送信元414を証明するものであってもよい。あるいは、要求に注意すべき送信元414が含まれている場合、応答に「はい」または「いいえ」による返答のみを含め、実際の証明を提供しないようにしてもよい。恐らく適切な状況においてのみ(例えば裁判所の命令)、応答にトランザクション424用の復号鍵430を含めることもできる。または、やはり適切な状況においてのみであるが、要求に暗号化したトランザクション424を含めて、返答に復号化したトランザクション424を含めることも可能である。
【0223】
最後に、ステップ490にてプロセス480が終了する。送信元414はそれ以上、トランザクション424をもっともらしく否認することはできない。
【0224】
図18は、データベース432内に確立されたデータを、対象者416によって試みられた否認に対抗するべく使用するための、適切なプロセス500を示すフローチャートである。
【0225】
ステップ502において、プロセス500が開始する。トランザクション424のためにデータが既にデータベース432内に確立されていると仮定する。
【0226】
ステップ504において、その対象者416がトランザクション424を受信した旨を証明する要求が、キーサーバ420、または、少なくともデータベース432への読み出しアクセスを有する別のシステムに対して行われる。このような要求は送信元414、または対象のトランザクション424と推測される対象者416を同じ方法で証明できる他の参加者(ポリシー考察の対象)から出される。最も一般的には、証明はトランザクションID428によるものであるが、やはりここでも、データベース432の検索に、さらにこれ以外のデータを潜在的に使用することが可能である。
【0227】
ステップ506において、対象者416がトランザクション424を受信したか、これを特定の回数受信したか、またはこれを1つまたはそれ以上の特定回数受信したか否かを、対象者アサーション422と、トランザクションID428に関連して保存されていたこれ以外のデータ(例えば表1を参照)とを検査することによって判断する。対象者416のアサーション422を含んでいない場合、または、含んではいるが、他の基準が一致しない場合には、ステップ508において、対象者に適切な返答が行われる。
【0228】
あるいは、データベース432が、対象者416のアサーション422がトランザクションID428に関連して存在することを反映し、さらに、他の任意の基準が一致する場合には、ステップ510にて、この場合に要求に対して適切な返答が行われる。
【0229】
返答と、実証の性質は多様な形式であってよいと留意すべきである。例えば、返答は、対象者416が対象のトランザクション424用の復号鍵430を要求し、これが提供されたことを単純に実証するものであってよい。あるいは、その要求が行われ、実施形態が許可した場合、返答は、対象者416に復号鍵430が何回提供されたか、そしていつ提供されたかを知らせるものとなる。また、この返答は、恐らく適切な状況においてのみ、やはり復号鍵430を含むこともできる。または、この要求は、ここでもやはり恐らく適切な状況においてのみ、暗号化したトランザクション424を含むことができる。
【0230】
最後に、ステップ512において、プロセス500が終了する。この時点では、対象者416はトランザクション424をもっともらしく否認することはできない。
【0231】
送信元414と対象者416の間でのトランザクション424の通過を監査する場合には、データベース432にはこれに適した長いデータが含まれる。このようなデータがタイムスタンプと共に保存され、データベース432内に保存され続ける限り、監査要求への応答は、ルックアップとレポート生成の直接的なタスクであるべきである。
【0232】
これまで様々な実施形態について説明してきたが、これらが限定的ではなく、例示のみの方法で提示されたことを理解すべきである。したがって、好ましい実施形態の広がりおよび範囲は上述の例示的実施形態のいずれによっても制限されるべきでないが、添付の特許請求項およびその等価物に従ってのみ定義されるべきである。
【0233】
産業上の利用可能性
本明細書中で、セキュリティサーバシステム210、通信システム310、通信システム410を例にとって例証された本発明は、インターネットのような最新のネットワーク環境での使用に非常に適している。
【0234】
特にインターネットは、主として無制御および無規制のワイルドな未知の領域であるため、その使用には注意が必要であると広く考えられてきた。さらに、変化が迅速で、理解に限界があり、また、テクノロジーの実現が不十分であれば、恐らく最も精通した適任者でさえも危険にさらされてしまう環境としても広く考えられてきた。こうした考えが実際にどの程度正しいかはさておき、インターネット上での通信のセキュリティに関して言えば、その秘密性が危険にさらされ、その危険は増大していることは否定できない。
【0235】
本発明はメッセージを保護することで、秘密性、整合性、またはその両方を達成し;キーサーバイベントを使用してビジネスプロセスを実現し;そして、認証アサーションとキーサーバを使用して否認防止および監査を実現する。
【0236】
本発明は、通信文(例えば、メッセージやトランザクション)を送信する参加者と、このような通信文を受信する参加者の両方が容易に使用できる。これらの通信を行っている参加者は、自分が使用している何らかのハードウェア、例えばコンピュータ、インターネット機器などで、単純なソフトウェアモジュールを実行できる。
【0237】
本発明は、従来技術のシステムに伴うユーザにとっての複雑性を著しく克服する。主要なセキュリティ要素には、キーサーバに適したあらゆる手段により認証されたあらゆるユーザが、会話鍵を使用できるようにするものが挙げられる。これは単純なパスワード、デジタル証明書、生体認証などであってよい。この簡略化は、主流である最新の公開/秘密鍵スキームに対抗する目立ったものであり、この場合、送信者と受信者は互いの証明された公開鍵のディレクトリに頼らなければならず、すべての参加者がこのようなディレクトリに事前登録され、表示されている必要がある(ディレクトリは複数。これは、このようなシステムの競合オペレータが多数存在するためである)。さらに現在主流のスキームは、その初期設定の煩わしさ以上の理由で好まれていない。このスキームは、多くの場合数百桁もある複雑な鍵を使用するので保存することができず、このような複雑な事前に保存されている鍵にアクセスする何らかの手段を備えたシステム以外に使用できない。例えば、公共キオスクでの公開/秘密鍵システムの唯一実用的な使用方法は、ユーザが鍵保存装置用のハードウェア補助品、例えばスマートカードを採用するというものである。本発明の実施形態は、ハードウェア補助品が不要であり(場合により使用することは可能)、そして、ユーザを少しの事前設定システムのみに必ずしも「束縛」する必要がない。
【0238】
本発明はまた、既存のインターネット環境において容易かつ経済的に実現可能である。追加的な物を採用することはほとんどないか、全くない。セキュリティサーバまたはキーサーバを別のサーバハードウェアに組み込むことさえも可能である。本発明の実施形態の構成も、現在ソフトウェアおよび通信技術を実践している技術者の範囲内にある。本発明はさらに、その動作環境である、基礎となるインターネット環境に大きな変更を加える必要がない点に注目すべきである。送信者と受信者の間に通信が発生し、本質的に従来のものと同様に扱われ、従来の経路をとおり、本質的に標準の機材を使用する。
【0239】
本発明はまた、企業および他の組織が共同の通信を提供する増え続ける必要性を特に検討する。これを例証するためにセキュリティサーバシステム210を用いることにより、電子メール、インスタントメッセージング、ビデオ会議、マルチパーティ文書編集、これに関しては、メッセージヘッダ222とメッセージコンテンツ224を含む実質的にあらゆるメッセージ218をどのように安全化できるかについて説明してきた。潜在的に多数のコラボレーション参加者212によって会話を実施することができ、この会話では、関連するテーマについての多くのメッセージ218が安全かつ効率的に交換される。あるいは、コラボレーション参加者212は、このような共同会話で相互にやり取りするメッセージ218の送信元と宛先であってよい。セキュリティサーバシステム210は、会話の最中にレベルの高いセキュリティを維持し、メッセージコンテンツ224と、任意でさらにメッセージヘッダ222を安全化する。さらに、会話に参加・退出するコラボレーション参加者212を効率的に扱うことで、従来技術のシステムが果たせなかった基準化機能を提供することができる。
【0240】
本明細書中では、通信システム310を、キーサーバイベントを使用してビジネスプロセスを実現するためにどれほど適しているかを示す例として使い、本発明を説明してきた。説明したように、本発明は、通信文324の発信者314によって、または実際の発信者314に代わってこれらの設定を行う別の参加者によって使用される制御イベント340の組を使用する。次に、通信文324は暗号化された状態で1人またはそれ以上の受信者316へ送信される。受信者316が通信文324、制御イベント340への件名の表示を行おうとした場合に、正のイベントが記載される。あるいは、一人またはそれ以上の受信者316が表示の試みにさえ失敗したために、または、表示許可の前に行われる制御イベント340による確認に失敗したために、通信文324を見ることができなかった場合には、負のイベント344が記載される。
【0241】
正のイベント342と負のイベント344を再検査する能力、またはこれらに基づいて動作をトリガする機能は相当に実用的である。例えば、受信者316との通信を所望している、ビジネスおよび他のエンティティを代表する発信者314が、制御イベント340を使って、通信文324を最初にいつ見ることができるか、どのような頻度で見ることができるか、またいつまで見ることができるのかを指定できる。発信者314と他の適当な参加者は、正のイベント342に基づき、各受信者316がその通信文324をいつ、何回見たかを判断することができる。あるいは、発信者314と他の適当な参加者は、負のイベント342に基づいて、所与の受信者316による通信文324表示の試みが全く行われていない、または受信者316による通信文324表示の試みの失敗が全くないと判断することができる。
【0242】
再び背景技術部分の、金融ブローカー企業が、顧客が追加証拠金の通知を受け取ったかどうかを判断する必要がある場合の例に戻ると、従来技術のシステムが果たせない部分で本発明が容易に成果を発揮する様子を見ることができる。顧客(受信者316)は、通知(通信文324、例えば電子メール)を見る際に正のイベント342を自動的に作成しているので、通知の受信を確認上知らせる手間を負うことがない。さらに、ブローカー企業(発信者314)は、顧客が通知を読んだ旨の返答を迅速に受けることができ、それ以上の不必要な行動をとる手間を追うことがない。あるいは、顧客は、設定された期間中に通知の表示に失敗した際に負のイベント342を自動的に作成するので(制御イベント340)、ブローカー企業は適切な行動を起すことができる。
【0243】
本明細書中では、通信システム410を、認証アサーションとキーサーバを使用して否認防止および監査を実現するためにどれだけ適しているかを示す例として使い、本発明を例証してきた。説明したように、従来技術の手法は、デジタル通信の使用に伴うすべての懸念を検討していない。特に、トランザクションの否認防止および監査に伴う2つの特に厄介な問題について検討していない。
【0244】
本発明は、トランザクション実行中の参加者、トランザクション送信元、対象者に対して大いに透過的である。トランザクション実行中の参加者の認証された証明書を使用して、両方の参加者からの否認防止を実現する。さらに、トランザクション実行中の参加者からの情報、またはトランザクション実行中の参加者の完全な認証アサーションを継続的に保存することにより、同じシステムを用いて否認防止と監査の両方を提供できる。これに対して、既存の技術(例えば、公開鍵インフラストラクチャ、PKI)では、ユーザに秘密鍵を管理させ、これを署名生成のために活発に使用させる。さらに、トランザクションの検証を必要とするある参加者はトランザクション署名者のデジタル証明書のコピーを取得するか、あるいはトランザクション署名者のデジタル証明書を取り出さなくてはならない。さらに、このような既存の技術は、否認防止と監査の両方に有効な1つのサービスの提供を行わない。
【0245】
本発明に依然としてPKIを組み込むことはできるが、PKIが必要なわけではない。トランザクション送信元、対象者、またはその両方が、PKIを含む任意の方法を使用して、起源と受信の否認防止を行える。さらに、トランザクション送信元が用いる方法は、トランザクション対象者が用いる方法と同一であっても、違うものでもよい。これに対して、PKIに基づく技術では、すべての参加者(トランザクション送信者および対象者)が信頼するインフラストラクチャを使用する必要がある。さらに、非PKI技術(例えば、トランザクションログをデータベースに保存する)はPKIとは完全に異なる機構を使用し、PKIと相互動作することがない。
【0246】
本発明は、様々な度合いの強度を提供できる。これは、トランザクション実行中の参加者の認証に伴う強度の度合いに関連する。認証の強度を増すことで(例えば、uswerID/passwordから2ファクタ認証までにかけて)、トランザクション実行中の参加者が、否認防止強度をダイナミックかつ自動的に増加する。これに対し、多くの従来技術では、否認防止強度のレベルは1つしかない。例えば、PKIでは、否認防止の強度は、基本である証明書の確実性のレベルに等しい。ここでは、参加者は、異なる証明書を使用して、異なるレベルの確実性を得ることでしか強度の変更を行えない。
【0247】
本発明はまた、特定の信用規則を強化することができる。これにより、ビジネス関係に追随した柔軟な信用規則が可能になる。例えば、ある組織が、各トランザクション実行中の参加者を認証する規則を強化することにより、自己の認証アサーションのみを信頼する規則を強化できる。または、組織は、自己のキーサーバを所有および管理する規則を強化することにより、自己の監査サーバのみを信頼する規則を強化することが可能である。これに対して、多くの従来技術は、否認防止と監査のための、柔軟性のない信頼規則しか提供できない。ここで再びPKIを例に用いると、これに基づいたシステムにおいて、取引の証明を行う参加者は、署名者の証明書を信頼するしかない。従来技術による非PKIに基づくシステムでは、証明者は、トランザクションログを維持するシステムを信頼するしかない。
【0248】
上述の、およびそれ以外の理由から、本発明は産業に幅広く適用されると予測され、かつ、本発明の商業的実用性は広範囲にわたり、長期間継続するであろうと予測される。
【0249】
テーブル1は、 キーサーバが管理するデータベースのコンテンツのスキーマである。
【図面の簡単な説明】
【0250】
【図1】例証的なセキュア電子メールシステムに関係する情報の総体的な流れを示す略概外観図である。
【図2a】図1の実施例で使用できる電子メールフォームを示し、従来の送信フォームである。
【図2b】図1の実施例で使用できる電子メールフォームを示し、図1の実施形態と協働するよう変更した送信フォームである。
【図2c】図1の実施例で使用できる電子メールフォームを示し、従来の受信フォームである。
【図3】図1の送信および受信ユニットで使用できるソフトウェアモジュールを示すブロック図である。
【図4】セキュア電子メールが受信されたものか、受信されたものかを判断するためのソフトウェアモジュールの手法を様式的に示すブロック図である。
【図5】図1のセキュリティサーバが使用できるテーブルを含むリレーショナルデータベースの図である。
【図6a】ここで使用するフィールドの記述を備えた図5のテーブルであり、ユーザデータのテーブルである。
【図6b】ここで使用するフィールドの記述を備えた図5のテーブルであり、メッセージデータのテーブルである。
【図6c】ここで使用するフィールドの記述を備えた図5のテーブルであり、宛先データのテーブルである。
【図6d】ここで使用するフィールドの記述を備えた図5のテーブルであり、ユーザ用のエイリアスデータのテーブルである。
【図6e】ここで使用するフィールドの記述を備えた図5のテーブルであり、図6eはオプションの配布リストデータのテーブルである。
【図6f】ここで使用するフィールドの記述を備えた図5のテーブルであり、こうした配布リストのメンバーデータのテーブルである。
【図7】図1の実施形態で使用できる暗号化プロセスを示すフローチャートである。
【図8】図1の実施形態で使用できる復号化プロセスを示すフローチャートである。
【図9】安全なコラボレーションおよび鍵交換のための一般的な実施形態の主要構成要素を示す略ブロック図である。
【図10】図9の一般的形態における典型的なメッセージの流れを示す概略ブロック図である。
【図11】4つの基本構成要素を使用するプロセスイベントを決定できる通信システムのブロック図である。
【図12】制御イベントに関連した情報の流れを示すブロック図である。
【図13】正のイベントに関連した情報の流れを示すブロック図である。
【図14】負のイベントに関連した情報の流れを示すブロック図である。
【図15】通信システムの別の実施形態が4つの基本構成要素を使用する様子を示すブロック図である。
【図16】図15の通信システムが、後の否認防止および監査目的のために、データベース内にデータを確立するために使用できる、適切なプロセスを示すフローチャートである。
【図17】送信元による否認の試みに対抗するために、データベース内に確立されたデータを使用できる適切なプロセスを示すフローチャートである。
【図18】対象者による否認の試みに対抗するために、データベース内に確立されたデータを使用できる適切なプロセスを示すフローチャートである。
【技術分野】
【0001】
本発明は、一般に、インターネットを含むネットワーク上で通信が行われるメッセージのセキュリティの提供、より詳細には、メッセージに関連したイベントを決定し、これを監査し、メッセージを否認防止可能にするための情報の確立に関する。
【背景技術】
【0002】
実質的にすべての電子通信媒体のユーザが、このようなシステム内に保存されている通信文の安全性について考えてみたことがある。これに関しては様々な理由があり、とてもここで扱いきれる数ではないのだが、そのうちの数例は、複雑なテクノロジーへの依存によらなければならないもの、未知で恐らくは信頼できない仲介機関への依存によらなければならないもの、かつ、通信伝送距離と、我々が到達しようとしている巨大な人口に起因する電子ネットワークにおける匿名性の増加によるものである。
【0003】
既存の通信システムがセキュリティメカニズムを確立し、ユーザから信頼されるようになるまでには長い時間がかかった。米国では従来の郵便制度が良い例である。我々が投函した郵便物は、往々にして物理的に非常に安全な容器内に入れられる。次に、郵便物は集配され、分類され、配送され、最終的に、受取人によって内容物が回収される、似たような容器へと配達される。差出人の容器と受取人の容器の間で郵便物を取り扱う人々は、我々にとって周知であり、非常に信頼できると考えられている単一組織(少なくとも米国内)の一部である。我が国の郵便システムのセキュリティが稀に間違いを起こした時でさえ、この間違いを検出して修正するメカニズムが整っている。
【0004】
不幸なことに、我々の多くは、電子通信の安全性については郵便システムに全く及ばない程度の信頼しか抱いていないが、その理由は、これが現代ネットワーク内で、送信者と受信者の間でやりとりされるためである。一般に、我々は、電子メール、インスタントメッセージ、ビデオ会議、共同文書などのようなメッセージの送信および受信のための「容器」の安全性を維持していると、我々の知識の範囲内だけで信じている。これは、これらの容器が、我々個人の物理的管理範囲内にあるパーソナルコンピュータ(PC)、ワークステーション、インターネット機器などであるためである。また、我々は通常、こうした容器どうし間の、電子媒体内で起こっていることは管理できないと思っている。例えば、送信者と受信者が賢くならない限り、安全化されていないメッセージを受信およびコピーしてしまう悪人は潜在的にいくらでもいるのである。さらに悪いことに、多くの場合、電子通信文はその通過過程において紛失されたり、悪意によって改ざんされ、不当にでっち上げられて全く別のものにされてしまう可能性がある。
【0005】
電子メッセージセキュリティの問題は深刻であり、既に多大な注目を浴びている。セキュリティの侵害を罰し、侵害を思いとどまらせるために、少なくとも電子メールメッセージについては既に法的なメカニズムが配備され、その処罰は重くなり続けている。しかしながら、電子メッセージが遠距離の高速移動という非常に有益な機能を有するということは、同時に、電子メッセージがこうした法的努力を潜在的に妨害し、ユーザの秘密を確実に危機に陥れる可能性があることを意味する。
【0006】
古い技術は、最新電子媒体で使用するために再生、拡大され続けているが、これらは多くの場合、安全性を高めるために、従来の郵便システムと組み合わせて長いこと使用されてきたものの応用形である。したがって、我々は暗号技術への関心とその使用の蘇生を見ているのである。
【0007】
電子通信を安全化する既存のシステムの多くは扱い難いか、十分に信用されていないか、あるいはその両方である。現代の電子通信を可能かつ効率的にしたこの電子システムが、多数の従来の暗号システムを旧式にし、または少なくとも非常に疑わしいものにしている。これと最新性が同じ、またはより高いコンピュータシステムは、多数の退屈なオペレーションを実質的に平行な方法でスタガリングする能力を備えており、過去の多くの強力な暗号システムはもはや信頼できないものとして示されている。
【0008】
しかし、電子通信を安全化する新規のシステムが登場している。過去25年間において、一般に「公開鍵インフラストラクチャ」(PKI)と呼ばれる、公開鍵と秘密鍵に基づくシステムが導入され、その開発が急速に進み、最近では使用されてきた。これらのシステムは現在非常に普及しているが、その使用は未熟かつ不当であると思われる。
【0009】
PKIシステムの基礎は、一般に1970年代中頃に、Massachusetts Institute of TechnologyのRon Rivest、 Adi Shamir、 Leonard Adlemanの貢献によってもたらされた。この貢献の結果開発された、一般にRSAアルゴリズムとして知られているものは、プリンシパルに公開鍵と秘密鍵の両方を割り当てる暗号技術である。公開鍵は全員に公開されるが、秘密鍵は秘密性を保持される。使用される鍵は、時として数百桁の大きな素数と、大きな数字の数学的因数分解の難しさが存在するRSAアルゴリズムの固有の強度の両方である。
【0010】
メッセージを安全に送信するには、そのメッセージを、その宛先受信者(ここではプリンシパル)の公開鍵を使って暗号化する。次に、受信者のみが、自分の秘密鍵を使ってそのメッセージを復号化および読み出すことができる。この単純なシナリオでは、誰もが受信者にメッセージを送信で、受信者のみがそのメッセージを読むことができる。
【0011】
PKI手法のより有用な特徴は、送信者もプリンシパルになることができ、この送信者のみが送信できるメッセージ、すなわち認証防止メッセージを送信することができることである。このために、送信者は、自分の秘密鍵を使ってメッセージ(多くの場合、長いメッセージの内の一部分のみ)を暗号化する。これにより、その送信者の公開鍵を使用してしかそのメッセージを解読できないため、受信者は、送信者とされている者が実は問題となっている送信者、人物であることを知ることができる。
【0012】
実際に、PKIシステムでは送信者と受信者の両方がプリンシパルであることが多い。送信者は自分の秘密鍵を使って「署名」を暗号化し、この署名をメッセージに嵌め込み、さらにこれを受信者の公開鍵を使って暗号化する。これにより、メッセージが受信者以外の人物から保護される。受信者のみが、自分の秘密鍵を使ってそのメッセージを復号化でき、受信者はこの復号化が済むと、さらに送信者の公開鍵を使って署名だけを復号化する。この方法で、受信者は、送信者が否認することを禁止された、署名の送信元である本人であると知って安心できる(さらに、無条件にメッセージ全体が本物であるとわかるが、しかし、メッセージ全体のハッシュといったものを署名に一意に含めることでより安全になる)。
【0013】
しかし、PKIは「インフラストラクチャ」という用語を使用しているとおり、この普及した暗号システムには大規模なサポートシステムが必要である。公開鍵は公開されなければならず、これにより、メッセージを送信したい人物が目的のメッセージ受信者用の鍵を決定することができる。さらに、公開鍵は指定された期間(例えば1年間)だけ認証され、その後は更新する必要がある。最後に、秘密鍵が危険にさらされた場合、または危険にさらされた疑いがある場合には、対応する秘密鍵を破棄しなければならない。したがって、すべての通信参加者は、公開鍵をメッセージの暗号化または署名の検証に使用する前に、公開鍵の破棄状態を調べる必要がある。通常、これらの作業は「認証局」によって取り扱われる。そのため、不幸にも現在、我が国の競争社会の市場において実証されているとおり、複数の認証局が加入を求めて競い合い、潜在的なユーザを完全に混乱させる結果を引き起こす。さらに、公開鍵のライフサイクル(作成、配布、更新、破棄)によって、展開シナリオが複雑かつ管理不能なものになる可能性がある。
【0014】
例えば、自分達の間だけで安全な通信を実現したいと願う小規模グループどうしで、また、否認の心配がない場合には、認証局を使用せずに公開および秘密鍵システムを実施することはもちろん可能である。しかし、適切に実証されたRSAアルゴリズムの、またはこれに関連した初期公開に対する我が国の政府の反応は、完全に拘束から解放された社会が政府の社会を守る能力への脅威になりかねないという非常に否定的なものである。ほとんどの統治機関が、この超強力な暗号技術の使用を完全に抑制することは今や遅すぎるであろうが、このような統治機関が、本当に適切な場合のみに開封できる暗号システム(多くの場合「キーエスクロウ」システムと呼ばれる)を今後さらに受け入れる可能性がある。
【0015】
さらにPKIには、これ以外にも、その使用性と効率性に関連した問題がいくつかある。鍵は、通常平均的な人間が記憶できる能力を超える、非常に大きなものであるため、その扱いが難しい。鍵を扱うためだけに、マシンに基づく記憶装置と使用メカニズムを採用しなければならない。これは、複数のシステムにかけてのモバイル使用と、揮発性メモリからの削除後の修復にとって非常に重要であり、これによって、秘密鍵を格納するために必要な効率的に物理鍵となるものの保護に関連したさらに多くの問題が生じる。さらに、PKIのような受信者に基づく鍵システムは扱い難い場合がある。例えば、宛先受信者が複数である場合、その各々について公開鍵を取得し、各々メッセージコピーを暗号化するためにそれぞれ別個に使用する。これは、宛先メッセージ受信者のリストが大きくなるに従い、非常に重大な計算上の負担を包含しかねない。したがって、実際の使用上での一般的な例では、まず、1つの対称鍵を使ってメッセージを暗号化する。次に、各受信者の公開鍵を使ってメッセージ鍵を複数回暗号化する。これにより、メッセージ自体が一度だけ暗号化される。複数回暗号化されるのはメッセージ鍵である。
【0016】
したがって、従来技術の暗号システムとPKIシステム、およびこれらを採用する電子メッセージシステムは多くの恩恵を提供する。しかし不幸にも、これらでさえもまだ不十分であることがわかった。このようなシステムを改良し、増設し、さらには交換することが望ましいことが次々と明白になったため、本発明の発明者が「セキュア電子メールシステム」と「セキュリティサーバシステム」を開発した。これらは、米国特許第6,584,564号、米国特許出願第10/305,726号においてそれぞれ網羅されており、本明細書中ではその全体が参照により組み込まれている。
【0017】
上述の手法は、大幅に改良されたデジタルメッセージ通信であるが、それでもまだ改良の余地はある。例えば、多くのビジネスがデジタル通信を使用して、顧客、供給業者、共同経営者、その他のビジネス提携者とのビジネスを遂行している。デジタル通信(例えば電子メール、企業内インスタントメッセージング(EIM)など)は、非デジタル通信(例えば書類郵便物)と同様、スタンドアロンプロセスではまずない。多くの場合、デジタル通信は総体的なビジネスプロセスの流れの1ステップであり、1つのビジネスイベントによって誘発される。例えば、金融ブローカー企業が、顧客の追加証拠金支払いの期日が来たと判断したとき、顧客に通知する必要がある。ブローカー企業は顧客に電話をかけて適切な処置を行うことができる。顧客がその通知を開封したか否かを判断するビジネス能力があれば、顧客に電話で確認する工程に大きく影響する。この例では、顧客が通知を開封したことを企業側が証明できれば、顧客に電話をかけて追及する必要はない。これにより顧客に確認する電話の数が減り、企業の節約につながる。
【0018】
例示の目的で電子メールを使用して技術背景を説明する。電子メールは、トランザクション(電子メール)、トランザクション発信者(電子メールの送信者)、トランザクション対象者(一人またはそれ以上の電子メール受信者)が常に関与するため、この説明に適している。さらに、送信者と受信者が相互に対して直接通信を行わない、分断された環境を仮定する。電子メールを読み出すことにより1つのイベントが構成され、さらに、指定された期間内に電子メールの読み出しを行わない場合にも1つのイベントが構成される。このようなイベントの知識は、企業および他の状況の両方において特に有用である。
【0019】
例えばビジネスプロセスの文脈にて上述したような、既存のデジタルメッセージ通信システムには多数の制限がある。例えば、これらのシステムは透明性でない。公開鍵インフラストラクチャ(PKI)のような既存の技術では、通信が行われたデータの受領の通知にユーザが参加する必要がある。これはアクションおよびアクションの欠如のどちらもサポートしていない。既存の技術では、こうしたシステムの使用によって提供される情報は、通信が行われたデータの受信に関する情報だけである。受信の欠如に関する情報は提供されない。さらに、既存のシステムは分断されていない。こうしたシステムが使用する既存の技術、例えばウェブに基づく通信では、通信データの送信者が受信者と直接接続する必要がある。さらに、受信者の自発的な参加を要する。例えば、受信確認電子メールでは受信者の自発的参加が必要である。受信者が通信文の受信を通知しないことを選択した場合、発信者はこのイベントと、通信文を受信していない受信者とを区別することが全くできない。既存のシステムはこの制限により、不当にも、発信者が制御するシステムではなく、受信者が制御するシステム、または全く制御されないシステムになってしまう。さらに、PKIに基づく電子メールのような既存技術では、発信者は、いつ受信者にデータを読めるようにするかを制御できない。メッセージが送信されれば、受信者はその到着と同時にこれを読むことができる。さらに既存のシステムは、通信データの容量によって制約されている場合が多い。ウェブに基づく通信のような既存技術は、通信データのサイズに依存している。データのサイズが大きいほど、より大容量のメモリ、基礎システムのより高い処理能力が必要になる。これによって、予測される通信システム能力の管理が難しくなると思われる。
【0020】
したがって、ビジネス通信を含む、しかし必ずしもこれに限定されないデジタル通信に関連したイベントの決定に関する限り、従来技術の暗号システム、特にPKIシステムは不十分であることが証明された。
【0021】
上述した手法は、デジタル通信の利用に伴う問題をすべて述べていない。一般的な従来技術のシステムは、本発明者による過去の発明品と同様に、通信の否認防止と監査という、2つの特に難しい問題を検討する方法についてそれほど説明していない。
【0022】
否認防止または監査のいずれかを提供する既存のデジタルメッセージ通信用システムには多数の規制がある。例えば、これらのシステムは透明性でない。PKIのような技術は、ユーザに秘密鍵を保持させ、これを活発に使用して署名を生成させる負担を課す。さらに、参加者はトランザクションがコピーを有することを証明するか、あるいはトランザクション署名者のデジタル証明書を取り出す必要がある。またさらに、既存の技術は、否認防止と監査のいずれにも何のサービスも提供しない。PK−Iに基づく技術は、すべての参加者(トランザクションの発信者と対象者の両方)が信頼する公開鍵インフラストラクチャを使用しなければならない。PKI技術以外の技術(例えば、データベースでのトランザクションログの保存)は、完全に異なるメカニズムを使用し、PKIと相互動作しない。そのため、既存のシステムはPKIに基づく技術またはPKI技術以外の技術を使用するが、両方と実質的に相互動作することが不可能であり、またその必要もない。さらに、既存の技術は単一レベルの強度の否認防止しか提供していないが、その場合、異なる程度は通常、状況を変えるために適当である。例えば、PKIでは否認防止の強度は、その基礎となる証明書の確実性のレベルに等しい。トランザクション実行中の参加者は、異なる確実性を有する異なる証明書を使用することで強度を変更することしかできない。さらに既存の技術は、否認防止と監査に厳しい信頼規則を課している。例えば、PKIシステムでは、トランザクションを検証する参加者は、署名者の証明書を信頼しなければならない。PKIシステム以外のシステムでは、検証者は、トランザクションログを保持するシステムを信頼しなければならない。
【0023】
したがって、従来技術の暗号およびPKIシステムは、デジタルメッセージ通信における否認防止および監査の問題を十分に解決できていない。
【特許文献1】米国特許第6,584,564号明細書
【特許文献2】米国特許出願第10/305,726号明細書
【発明の開示】
【発明が解決しようとする課題】
【0024】
したがって、本発明の目的は、インターネットのようなネットワーク上で通信が行われるメッセージに安全性を提供することである。
【0025】
簡潔に言えば、本発明の一つの好ましい実施形態は、メッセージがメッセージヘッダとメッセージコンテンツを備える場合に、複数の参加者間でメッセージを安全に通信するシステムである。このシステムでは、メッセージルータが、参加者どうしをネットワーク経由で接続し、参加者間で、メッセージをそのメッセージヘッダに基づいて配送する。キーサーバは参加者に会話鍵を作成、保存、公開するが、この会話鍵は、メッセージのメッセージコンテンツを暗号化、復号化するために使用される。
【0026】
簡潔に言えば、本発明の別の好ましい実施形態は、ネットワーク上の複数の参加者間で安全に通信する方法である。メッセージ送信する参加者は送信元参加者であり、メッセージを受信する参加者は宛先参加者である。メッセージは、メッセージヘッダとメッセージコンテンツを備える。この方法では、送信元参加者が、やはりネットワーク上にあるキーサーバから会話鍵を取得する。次に、送信元参加者は、この会話鍵に基づいて、メッセージのメッセージコンテンツを暗号化する。その後、メッセージをネットワーク経由で宛先参加者に送信する。すると、宛先参加者が、送信者参加者からのメッセージをネットワーク経由で受信する。宛先参加者は、上記のキーサーバから会話鍵を取得する。最後に、宛先参加者は、この会話鍵に基づいてメッセージのメッセージコンテンツを復号化する。
【0027】
簡潔に言えば、本発明の別の好ましい実施形態は、通信イベントを決定するシステムである。通信参加者に鍵を公開するためにキーサーバを設けており、鍵は、通信文を暗号化する暗号鍵、または復号化する復号鍵であり、通信参加者には通信文を作成しようとする発信者と、通信文を見ようとする受信者が含まれる。キーサーバは、各通信文にさらに識別子を割り当て、識別子、対応する復号鍵、対応する制御イベントを含んだ記録をデータベースに保存する。さらにキーサーバは、各通信文につき、復号鍵を要求するゼロ、1つ、またはそれ以上の要求を受信し、ここで、これらの要求は識別子を含んでいる。さらに、キーサーバは、各通信文について、制御イベントと、受信した要求の数、または要求の受信時間に基づいて、正のイベントと負のイベントで構成された少なくとも1つの構成要素のセットを決定する。
【0028】
簡潔に言えば、本発明の別の好ましい実施形態は、通信イベントを決定する方法である。通信文を証明するリソースIDの第1の要求が受信され、ここで、この第1の要求は、その通信の目的とされる受信者の少なくとも1つの証明書を含んでいる。少なくとも1つの制御イベントが定義されるが、この制御イベントは少なくとも1つの証明書を含んでいる。第1の要求に応答してリソースIDが提供される。リソースID、制御イベント、通信文を復号化する復号鍵が記憶される。復号鍵を要求する第2の要求が監視されるが、ここで、この第2の要求はリソースIDと、推定上目的とされる受信者についての証明情報を含んでいる。第2の要求を受信したら、制御イベントと一致するか否かが判断される。一致した場合には、第2の要求に応答して復号鍵が提供され、証明情報と正のイベントがリソースIDに関連して記憶される。受信した第2の要求が一致しない場合には、負のイベントがリソースIDに関連して記憶される。あるいは、目的の受信者について第2の要求が受信されない場合には、負のイベントがリソースIDに関連して記憶される。
【0029】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクション送信元とトランザクション対象者が、否認不可能なトランザクションを交換する方法である。トランザクションを証明するためのトランザクション識別子を要求する第1の要求が受信され、ここで、この要求は送信元認証アサーションを含んでいる。次に、送信元認証アサーションが検証される。トランザクション識別者と、送信元認証アサーションからの情報が保存され、これにより、トランザクション送信元が、トランザクションを暗号化および送信した後には、もっともらしく否認できないようにする情報が確立される。第1の要求に応答してトランザクション識別子が提供されるので、トランザクションとトランザクション識別子をトランザクション対象者に送信することができる。復号鍵の第2の要求がトランザクション対象者によって受信されると、トランザクションを復号化するための復号鍵の第2の要求が受信されるが、この場合、第2の要求はトランザクション識別子と対象者認証アサーションを含む。次に、対象者認証アサーションが検証される。対象者認証アサーションからの情報もトランザクション識別子と共に保存される。次に、第2の要求に応答して復号キーが提供されるため、トランザクションを復号化することができ、これにより、トランザクション対象者が、トランザクションの受信者であることをもっともらしく否認できないようにする情報が確立される。
【0030】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの発信者であるトランザクション送信元による否認防止可能なものとして確立する方法である。トランザクションを証明するトランザクション識別子の要求が受信されるが、この要求は送信元認証アサーションを含んでいる。次に、送信元認証アサーションが検証される。トランザクション識別子と、送信元認証アサーションからの情報が保存される。さらに、この要求に応答してトランザクション識別子が提供され、これにより、トランザクション送信元がトランザクションの発信元であるということをもっともらしく否認できないようにするための情報が確立される。
【0031】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの受信者であるトランザクション対象者による否認防止可能を確立する方法であり、ここで、トランザクション識別子がトランザクションを識別し、また、トランザクションの復号化に使用できる復号鍵が事前に保存されている。復号鍵の要求が受信され、ここで、この要求はトランザクション識別子と対象者認証アサーションを含んでいる。次に、対象者認証アサーションが検証される。対象者認証アサーションからの情報を、トランザクション識別子と共にデータベースに保存される。この要求に応答して復号鍵が提供され、これにより、トランザクション対象者が、トランザクションの受信をもっともらしく否認できないようにする情報が確立される。
【0032】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクション送信元とトランザクション対象者が、否認不能なトランザクションを交換するためのシステムである。このシステムは、コンピュータ化されたキーサーバを設けている。キーサーバは、トランザクション識別子にトランザクションを識別させる第1の要求をネットワーク経由で受信するのに適しており、ここで、この第1の要求は送信元認証アサーション含んでいる。さらにキーサーバは、トランザクションの復号化に使用できる復号鍵の第2の要求をネットワーク経由で受信するのに適しており、ここで、この第2の要求は、トランザクション識別子と対象者認証アサーションを含んでいる。さらにキーサーバは、送信元認証アサーションと対象者認証アサーションを検証するのに適している。さらに、関連するトランザクション識別子、送信元認証アサーションからの情報、対象者認証アサーションからの情報をデータベースに保存するのに適している。キーサーバはさらに、トランザクション識別子を含んだ第1の返答を、第1の要求に対してネットワーク経由で提供するのに適している。さらにキーサーバは、復号鍵を含んだ第2の返答を、第2の要求に応答してネットワーク経由で提供し、これにより、トランザクション送信元が、トランザクションを暗号化および送信した後にもっともらしく否認できないようにする情報を確立し、さらに、トランザクション対象者が、復号鍵を受信した後にもっともらしく否認できないようにするのにも適している。
【0033】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの発信者であるトランザクション送信元による否認防止が可能なものとして確立するシステムである。このシステムは、コンピュータ化されたキーサーバを備えている。キーサーバは、トランザクション識別子にトランザクションを識別させる要求をネットワーク経由で受信するのに適しており、ここで、この要求はソース認証アサーションを含む。さらにキーサーバは、送信元認証アサーションを検証するのにも適している。さらに、トランザクション識別子と、送信元認証アサーションからの情報をデータベースに保存するのにも適している。キーサーバはさらに、トランザクション識別子を含んだ返答をネットワーク経由で提供し、これにより、トランザクション送信元が、トランザクションを暗号化および送信した後にもっともらしく否認できないようにする情報を確立するのに適している。
【0034】
簡潔に言えば、本発明の別の好ましい実施形態は、トランザクションを、トランザクションの受信者であるトランザクション対象者による否認防止が可能なものとして確立するシステムであって、ここで、トランザクション識別子は、トランザクションを証明し、トランザクションの復号に使用できる復号鍵がデータベース内に事前に保存されている。このシステムは、コンピュータ化したキーサーバを設けている。キーサーバは、復号鍵の要求をネットワーク経由で受信するのに適しており、ここで、この要求は識別子と対象者認証アサーションを含んでいる。さらにキーサーバは、対象者認証アサーションを検証するのにも適している。また、対象者認証アサーションからの情報を、トランザクション識別子と共にデータベースに保存するのにも適している。キーサーバはさらに、復号鍵を含んだ返答をネットワーク経由で提供し、これにより、トランザクション対象者がもっともらしく否認できないようにする情報を確立するのにも適している。
【0035】
本発明の利点は、安全性の高いメッセージ通信を提供することである。本発明は、強力な鍵管理技術を使って、送信者と受信者、またはコラボレーション参加者の間でメッセージを保護する。これにより、高度のメッセージ改ざん検出と送信者による否認防止が得られる。しかし、本発明は、実際に安全化されたメッセージのコンテンツを検査することを全く必要とせずに、そのすべての機能を提供するものである。
【0036】
本発明の別の利点は、使用者の負担を最小にすることである。このためにユーザが複雑なインストールや構成を行う必要はなく、プレインストールされているか、あるいはユーザによる高速インストールが可能になっており、すべての構成オプションにデフォルトが設けられている。特に、本発明は、企業やその他の組織が、メンバーのメッセージを保護し、共同作業を促進するために、容易に実現できるようになっている。
【0037】
本発明の別の利点は、単純な登録スキームを採用しており、登録やインストールの完了後すぐに使用することができる。これらの、およびその他の特徴のために、本発明を使って作成したセキュアメッセージの対象受信者は、事前に登録されている必要がない。送信者がセキュアメッセージを作成および送信すると、本発明は、目的受信者が登録されていない旨を検出して、登録の催促を行う。
【0038】
本発明の別の利点は、特に、安全なコラボレーション通信を容易化することである。送信者と受信者、またはコラボレーション参加者で構成された大きなグループの会話を安全化でき、さらに、新規ユーザが会話に参加する、または既存のユーザが会話から退出する度に、容易にその安全性を変更することができるため、会話の過去的および将来的な秘密性(バックおよびフォワードシークレシー)を実現できる。
【0039】
本発明の別の利点は、これがイベントに基づくものであり、アクションイベントと非アクションイベント(すなわち正のイベントと負のイベント)の両方をサポートすることである。既に一般に使用されている方法で通信文を開封および表示する場合以外に、受信者による自発的な動作は必要ない。
【0040】
本発明の別の利点は、制御を強化できることであり、この制御は発信者側に基づくものであり、通信文の実際の発信者または発信者を越えるオーソリティによって設定される。特に、この制御は、初回表示時、最終表示時、さらに、再び通信文を表示できる回数を設定できる。
【0041】
本発明の別の利点は、分断された通信が可能になることである。本発明が使用する技術では、通信文の発信者が受信者と直接接続する必要がない。上述したように、発信者は、受信者がまだ見ることが許可されない通信文を送信できる。受信者が(通信文の表示により、または通信文の表示に何らかの形で失敗することにより)表示関連のイベントをトリガすると、これが記録されるか、または発信者または別の適切な参加者に肯定的に報告されるため、これらの人物がこれを適切に対処できる。
【0042】
本発明の別の利点は、ユーザにとってその大部分が透明性であることである。本発明の中心的機能は公開/秘密鍵暗号化スキームに依存しないが、しかし、本発明をある補助的な関連において便利にするため、また、より安全にするために、そのいくつかの要素にこのスキームを採用することは可能である。本発明によって使用される技術では、ユーザが、例えば公開鍵インフラストラクチャ(PKI)を設定および採用して、これに付随する負担を負う必要がなく(しかし、所望であればPKIを使用することもできる)、そしてユーザが通信文受信の通知を行う必要もない。
【0043】
本発明の別の利点は、公開/秘密鍵システムと違い、メッセージへの鍵を、受信の度にいったん暗号化する必要がないことである。同様に、安全化したメッセージのコンテンツも、メッセージがルータおよびハブを通過する際、受信の度にいったん復号化する必要がない。そのため、実行される暗号化および復号化の回数は、受信者の数、および通信に使用されるリソースの数とは無関係である。
【0044】
本発明の別の利点は、公開/秘密鍵システムと異なり、秘密鍵を常駐させる場所に依存しないことである。ユーザは、他の参加者との安全なコラボレーションにどこからでも参加できる。
【0045】
本発明の別の利点は、メモリと、基礎となるハードウェアの処理能力に重い負担をかけることなく、大容量データを扱うことを可能にしながら、さらに、従来技術の手法と同等またはこれを超えるセキュリティを提供できることである。
【0046】
本発明の別の利点は、否認防止および監査の両方にそれぞれ一回サービスを提供することである。
【0047】
本発明の別の利点は、異なる状況に対応して異なる程度が適切であるとき、否認防止のための複数の強度レベルを使用できることである。
【0048】
さらに、本発明の別の利点は、ユーザへの負担がなく、また、すべてのトランザクション対象者について、鍵、デジタル証明書、およびこれらのデータを検索するためのディレクトリを事前に取得する必要性に依存しておらず、そのため、すべてのトランザクション実行中の参加者が柔軟性のない一貫したスキームを使用する必要がないことである。
【0049】
本発明のこれらの目的およびこれ以外の目的は、本明細書中で説明する、また、いくつかの図面で例証しているように、本発明を実施する現在最良の形態の説明と、好ましい実施形態の産業上の利用可能性を考慮することで、当業者にとって明白になるであろう。
【0050】
本発明の目的および利点は、添付の図面および表と共に、以下に示す詳細な説明から明白になるであろう。
【0051】
発明を実施するための最良の形態
本発明の好ましい実施形態は、鍵交換、およびこれに基づく安全な提携通信を実現するシステム、キーサーバイベントを使用してビジネス処理を実現するシステム、認証アサーションとキーサーバを使用して否認防止および監査を実現するシステムである。本明細書中の多数の図面、特に図9、図11、図15に示すように、本発明の実施形態を参照符号210、310、410で表している。本発明について説明を開始する前に、まず、安全なメッセージ通信を実現するためのキーサーバの背景について説明する。
【0052】
図1は、セキュア電子メールシステム10における情報の流れを示す概略外観図である。送信者12が、セキュア電子メールシステム10を使用して、一人またはそれ以上の受信者16に対してセキュア電子メール14を送信する。この送信を完遂するには、送信者12は、セキュア電子メール14の作成および送信に適した送信ユニット18を使用し、受信者16は、このセキュア電子メール14の受信および表示に適した受信ユニット20を使用する。さらに、セキュア電子メールシステム10は、本質的に従来型の電子メールサーバ22、送信ユニット18および受信ユニット20内のソフトウェアモジュール26(図3)と共にセキュア電子メールシステム10の一次の新規エレメントを構成するセキュリティサーバ24(先述したようにキーサーバ形式のもの)を実装している。
【0053】
送信ユニット18と受信ユニット20は、ハードウェアとソフトウェアの適切な組み合わせである。これは、同種または異種のハードウェアであってよく、図1では、送信ユニット18と第1受信ユニット20aをパーソナルコンピュータ(PC)として示し、第2受信ユニット20bをインターネット機器として示すことで、これを強調している。
【0054】
送信ユニット18は送信機能の装備が必須であり、また、多くの場合、セキュア電子メール14の構成にも使用される。しかし、構成機能は必ずしも必須の機能ではなく、例えば、標準メッセージが事前に保存されている携帯電話のようなインターネット機器を使用することも可能である。受信ユニット20は、セキュア電子メール14を受信できることが必須であり、また、場合によりメッセージ構成およびその他の機能を搭載できる。
【0055】
必要なソフトウェアに関しては、送信ユニット18と受信ユニット20の各々に、適切な電子メールタイプのアプリケーションと、適例のソフトウェアモジュール26を実装することが必要である。この電子メールタイプのアプリケーションは、従来型の電子メール・アプリケーションであってよく、あるいは、電子メール機能を統合したブラウザ、または、従来のブラウザで動作する電子メール・アプレットであってもよい。次に、ソフトウェアモジュール26についてより詳細に説明するが、複数のソフトウェアモジュール26を、送信ユニット18または受信ユニット20で最初に使用する際にほぼ同時にインストールできる点を述べておく。
【0056】
図1では、複数の受信者16への送信にセキュア電子メールシステム10を使用できることを強調するために、第1受信機16aと第2受信機16bの両方を図示している。そのため、共通の電子メール宛先指定規定、例えば「To:宛先」、「Cc:(コピー)」、「Bcc:(ブラインドコピー)」など、さらに、セキュア電子メールシステム10を使用して、複数の受信者16のリストに同時に送信を行うことができる。
【0057】
次に述べる総体的な説明に備え、送信者12と第1受信者16Aがセキュア電子メールシステム10に登録されており、送信ユニット18と第1受信ユニット20aには、適例のソフトウェアモジュール26が実装され、セキュア電子メールシステム10にてそれぞれの機能で動作すると仮定する。さらに、第2受信者16bは、セキュア電子メールシステム10に未登録であり、また、第2受信ユニット20bにはセキュア電子メールシステムがまだ実装されていないと仮定する。
【0058】
さらに図1の概観は、一般的なインターネットのようなネットワーク環境30で、セキュア電子メール14を送信するための主要な段階を示す。段階32では、送信者12がセキュア電子メール14を送信しようと決める。そのため、従来またはその他の方法といった何らかの方法で電子メールメッセージを構成する。
【0059】
段階34では、送信者12は、「送信」命令の代わりに「安全な送信」命令を使用して、セキュア電子メール14の送信を要求する。しかし、安全でない電子メールメッセージを電子メールサーバ22へ直接送信するのではなく、まず送信ユニット18がセキュリティサーバ24に接触して、様々なデータアイテムを提供する(この段階および他の段階で使用されるデータアイテムについては先述のとおりである)。次に、セキュリティサーバ24が送信者12を認証し、このセキュア電子メール14用の一意のメッセージ鍵とIDを送信ユニット18に返送する。また、セキュリティサーバ24は、このトランザクションのための様々なデータアイテムを、後の使用のために記録する。送信ユニット18は、メッセージ鍵を使用して、セキュア電子メール14を暗号化する。暗号化された、または暗号化されていないメッセージ本体がセキュリティサーバ24に送信されることは絶対にない。
【0060】
段階36において、セキュリティサーバ24は、受信者16が登録済みであるか否かを判断する。既に登録されている場合には、ここで第1受信者16aのみについてそうであるように、受信者16についてこの段階が終了する。しかし、受信者16が未登録の場合には、ここで第2受信者16bについてそうであるように、登録が試みられる。登録を試みるために、セキュリティサーバ24は電子メールメッセージを第2受信者16bに送信して、まもなく暗号化されたメッセージが届き、このメッセージを読むためには登録が必要である旨を知らせる。次に、第2受信者16bは、セキュリティサーバ24から送信されたこの電子メールに含まれているユニバーサル・リソース・ロケータ(URL)を入力して、セキュリティサーバ24で登録のためのルーチンを追従することができる。第2受信ユニット20bには、セキュア電子メール14を受信または復号するのに必要なソフトウェアモジュール26が既に実装されているか、または登録プロセスの一部としてこのようなソフトウェアが提供される。第2受信者16bが登録を済ませ、第2受信ユニット20bが必要なソフトウェアモジュール26のインストールを完了すると、この段階は終了する。
【0061】
あるいは、セキュア電子メール14内で段階36を飛ばして次に進むこともできる。セキュア電子メール14自体に、受信者16が追従できる単純な形式のユニバーサル・リソース・ロケータ(URL)を含めることが可能である。そのため、セキュリティサーバ24は受信者16が登録済みであるか否かを考慮する必要がない。送信者12は、既に説明したように、セキュア電子メール14を作成および送信することができ、受信者16は、自分が登録済みであるか否かに対処し、このセキュア電子メール14が到着したらこれを読むことができる。
【0062】
段階38において、送信ユニット18は、暗号化されたセキュア電子メール14を送信する。これは、送信者にとって本質的に透過的またはシームレスであってよく、また、暗号化されたセキュア電子メール14を従来の電子メールタイプのアプリケーションに送信し、自動的に適切な「送信」命令を出すことで、送信ユニット18のソフトウェアモジュール26内でこれを取り扱うことができる。次に、セキュア電子メール14は、従来の方法で電子メールサーバ22へ進み、各宛先受信者16のインボックスに到着する。注目すべき点は、セキュア電子メール14の本体が、送信ユニット18と受信ユニット20の間で通信が行われている間の全般にわたって暗号化された状態にあることである。場合により、この最中に件名を暗号化してもよい。
【0063】
段階40において、セキュア電子メール14が、各受信者16のインボックスに到着する。受信者16が自分の受信ユニット20を使用してセキュア電子メール14を開封すると、受信ユニット20用のソフトウェアモジュール26が、このセキュア電子メール14が暗号化されていることを検出する。ソフトウェアモジュール26は、その構成により、受信者16にパスワードを催促するか、または既に知っているパスワードを使用することができる。
【0064】
最後に、段階42で、受信ユニット20がセキュリティサーバ24に接触し、受信者16用のメッセージIDとデータ(パスワードを含む)を提供する。セキュリティサーバ24は、受信者16が(オリジナルメッセージ内の受信者のリストにより決定されているとおりに)認証された受信者であると仮定し、メッセージ鍵を受信ユニット20に提供する。場合により、セキュリティサーバ24は、セキュリティ電子メール14が何らかの形式に変更された旨の表示を提供することもできる。受信ユニット20が、このメッセージ鍵を用いてセキュア電子メール14を復号化すると、受信者16がこれを読めるようになる。
【0065】
図2a〜図2cは、セキュア電子メールシステム10が使用できる電子メールフォーム50を示す。図2aは、従来の送信フォーム52aである。図2bは、送信フォーム52aと本質的に同一であるが、セキュア電子メールシステム10で扱えるように変更された送信フォーム52bである。図2cは、セキュア電子メールシステム10で使用できる従来の受信フォーム54である。
【0066】
送信フォーム52a〜52bの両方は、受信者IDフィールド56、件名フィールド58、本体フィールド60を含んでいる。さらに、これらの両方のフォームは従来型の送信ボタン62を含んでいる。図2aの送信フォーム52a(従来型)と図2bの送信フォーム52b(変更型)の唯一の違いは、後者が送信セキュリティボタン64を含んでいる点である。いくつかの実施形態では、送信ボタン62を安全送信ボタン64に変更することが望ましいかもしれないが、これが一般的になる見込みはない。図2cの受信フォーム54は、受信IDフィールド56(宛先:とCc:)、件名フィールド58、本体フィールド60、そして送信者IDフィールド66も含んでいる。これらのフォーム内に含まれた多様なフィールドを理解することは、後続の説明を理解するために役立つ。
【0067】
図3は、送信ユニット18と受信ユニット20で使用されるソフトウェアモジュール26を示すブロック図である。セキュア電子メールシステム10の多くの実施形態において、ソフトウェアモジュール26は、送信ユニット18と受信ユニット20の両方に実装されているものと同一であってよいが、これは必須ではなく、これ以外のモジュールを使用することが可能である。ソフトウェアモジュール26は、セキュア電子メールシステム10の「クライアント」側のコンポーネントとして見ることができる。
【0068】
この図は、また、ソフトウェアモジュール26を送信ユニット18および受信ユニット20にインストールする様々な使用可能な方法を示している。プレインストールされているオプション44を使用することで、送信ユニット18または受信ユニット20にロードされている内在の電子メールタイプ・アプリケーションを、すでに搭載されているソフトウェアモジュール26に付随させることが可能である。従来の電子メール専用アプリケーションまたはウェブに基づく電子メール・アプリケーションは、このプレインストール済みのオプション44を有利に使用することができる。
【0069】
セキュア電子メールシステム10の主要な目的は、その使用の容易化であり、セキュア電子メールシステム10をウェブに基づく電子メール・アプリケーションと共に使用することで、新規ユーザにとっては操作が特に容易になり、既存の上達したインターネットユーザにとってはその操作が単純化される。現在、多くのインターネット・サービス・プロバイダ(ISP)がブラウザ・アプリケーション・ソフトウェアをユーザに提供している。その一例はアメリカオンライン(AOL(登録商標))であり、AOLでは、あらかじめ構成された「プライベートラベル」ブラウザ・アプリケーションをユーザに提供している。プレインストールされているオプション44によって、セキュア電子メールシステム10をプライベート・ラベル・ブラウザに含め、設定に伴うあらゆる負担を最小化することが可能になる。あらゆる構成オプションにデフォルト設定を設定することができ、これにより送信者12と受信者16は、場合によりソフトウェアモジュール26を望みどおりに適合させることができるようになる。
【0070】
あるいは、ユーザがインストールしたオプション46を使用してもよく、この場合、ソフトウェアモジュール26が送信者12と受信者16、すなわちエンドユーザによって、送信ユニット18、受信ユニット20の各々にインストールされる。このユーザがインストールしたオプション46により、プライベート・ラベル・アプリケーションを使用していない多数のインターネットユーザがセキュア電子メールシステム10を使用することが可能になる。
【0071】
ユーザがインストールしたオプション46は、多くの応用形にて実現することができる。ある応用形46aは、ソフトウェアモジュール26をプラグインとして永久インストールするというものである。別の応用形46bは、例えばYahoo!(商標)のような特定のウェブポータルを使用して入手したJavaアプレットのようなセキュア電子メールシステム10を使用する度に、ソフトウェアモジュール26をアプレットとして一時的に「インストール」するものである。さらに別の応用形46cは、スクリプト・ドリブン・インストール、すなわち、区画化されたプラグイン・タイプのインストールではなく、本質的に従来型のフルブローン・ソフトウェア・アプリケーション・インストールである。さらに別の応用形46dは、上述したインストール、または全く新規のインストール手法の組み合わせであってよい。
【0072】
これらの応用形46a〜46dは、セキュリティサーバ24(図1)のような、密接に制御されたサーバからダウンロードを実施することができる。あるいは、これらの内のいくつかは、他の手段による配布、例えばコンパクトディスク(CD)からのソフトウェアモジュールのローディングを含んでよい。CDは、プライベート・ラベル・アプリケーション、特にプライベート・ラベル・ブラウザを配布する一般的な方法である。プレインストールされたオプション44に従って既にインストールしたソフトウェアモジュール26でアプリケーションを配布するのではなく、単純に、ユーザが自分でインストールしたオプション46を介してインストールするか否かを決定できるオプションとして、ソフトウェアモジュール26をアプリケーション配布CDに含めることができる。
【0073】
しかし、ソフトウェアモジュール26をオンライン上で入手することにより、周縁的な利点が得られる。送信者12と受信者16は、同時にセキュア電子メールシステム10に正式登録され、他の正規手続き、例えば暗号化技術の受諾および使用が可能になる認証を遵守できる。
【0074】
応用形46a〜46dは、各々異なる度合いで、アップグレードオプションを容易化することもできる。例えば、ソフトウェアモジュール26は、セキュリティサーバ24と接触する度に、バージョン情報をその通信の一部分として含めることができる。複雑な実施形態では、ソフトウェアモジュール26は、アップグレードが利用可能になると、セキュリティサーバ24またはその他の場所から自己アップグレードを実行する自己アップグレード型であってよい。複雑性の低い実施形態、または再認証が必要な場合には、アップグレードを実施する方法に関する情報を送信することができる。例えば、アップグレードサイトURLを含んだ電子メールメッセージを、送信者12または受信者16に対して送信できる。
【0075】
図3も、送信者12と受信者16が、ソフトウェアモジュール26内で変更できるいくつかの構成オプション48を示す。すべてでなければほとんどの状況において、適切なデフォルトの提供が可能であるが、しかし、上達したユーザは、または特定の状況においては、これらの設定を変更することが有利な場合もある。該してこのような構成オプション48は、セッションの種類に無関係に一貫していなければならない一方で、優れたセキュリティの実施を一貫すれば、構成オプション48は単にマシンと関連するのではなく、ユーザと関連するはずである。そのため、複数の送信者12または受信者16が同一の送信ユニット18または受信ユニット20を使用できる場合、ユーザは、独立した個人的な構成を設定することができるようになる。
【0076】
構成オプション48の特定の設定例は、件名暗号化設定48a、キャッシュパスワード設定48b、キャッシュ時間設定48c、有効期限設定48d、最大読み出し設定48e、その他48fを含んでよい。
【0077】
件名暗号化設定48aは、ソフトウェアモジュール26がセキュア電子メール14の件名フィールド58(図2a〜図2c)、本体フィールド60を暗号化するか否かの制御を行う。デフォルトでは通常、件名を暗号化しないようになっている。
【0078】
キャッシュパスワード設定48bによって、アプリケーション・セッションの度(例えばブラウザセッションの度)にパスワードが一回要求されるか、あるいは、プロンプトが必要に応じて毎回パスワードを要求するかのいずれかを指定することが可能になる。一般に、デフォルトでは、パスワードをキャッシュするようになっているが、次に記述するように、これは、キャッシュ時間設定48cと組み合わせ、より安全な方法で実施することで機能する。安全性をさらに高めるために、パスワードをメモリ内でのみキャッシュし、ディスクに対しては絶対にキャッシュを行わないようにすることもできる。
【0079】
キャッシュ時間設定48cはキャッシュパスワード設定48bと協働して、パスワードをキャッシュできる最大時間を制御する。これについてのデフォルト値および許可される最大値は8時間であってよい。その後、送信者12がキャッシュ時間設定48cを短縮することができるが、セキュリティ性を劣化させてしまう程にこの時間を長く設定することは許されない。
【0080】
有効期限設定48dによって、送信者12は、いつセキュリティサーバ24(図1)がメッセージ鍵を破棄して、セキュア電子メール14を読み出し不能にするべきかを特定することが可能になる。セキュア電子メールシステムの多くの実施形態では、有効期限を明確に強制実施するのではなく、ある十分長い期間(恐らくは数年間)の後に、恐らくセキュリティサーバ24が有効期限の強制実施を行う必要がある状態にデフォルト設定されている。
【0081】
最大読み出し設定48eは、各受信者16が1通のセキュア電子メール14を開封し、読む回数、すなわち、一人の受信者16に対してメッセージ鍵が送付される回数を特定指定する。ゼロ、つまり無制限にデフォルト設定することができる。
【0082】
もちろん、さらに別の構成オプション48を設けることができ、図3に、これを強調するためにその他48fの要素を示す。
【0083】
ソフトウェアモジュール26を送信ユニット18にインストールすると、メッセージ構成シナリオとメッセージ送信シナリオに使用することが可能となる。後述の説明では、ソフトウェアモジュール26がプラグイン・タイプの応用形46aである場合のプライベート・ラベル・ブラウザを使用するが、当業者は、基本となる原理が、セキュア電子メールシステム10を使用できる他のシステムへの拡大が可能であることを理解するだろう。
【0084】
図4はセキュア電子メール14が送信(または受信)されているか否かを判断するための、ソフトウェアモジュール26の好ましい手法を示すブロック図である。送信ユニット18内のソフトウェアモジュール26は、ページ72のストリーム70を検査し、送信者12が作成したセキュア電子メール14を構成しているものを探す。ストリーム70を検査するある方法では、ソフトウェアモジュール26が、ページ72のURLがある一定の構造、例えば“*mail.privatelabel.com*/Compose*”(ここで、*はあらゆるパターンに適合できる)を含んでいるかどうかを調べる。ソフトウェアモジュール26による別の検査方法は、ページ72のHTMLコンテンツがある一定の認識可能な(静的)パターン、例えば、「構成」という名称のフォームタグを含んでいるか否かを判断するものである。ソフトウェアモジュール26はまた、MIMEタイプを使用して、代行受信できるページ72を識別することも可能である。実際に候補のページ72aが見つかると、これがストリーム70から除去され、説明したとおりに処理されて、処理済みのページ72bとしてストリーム70内の元の場所に配置される。
【0085】
ソフトウェアモジュール26が、元の場所に戻されるページ72が構成タイプ候補ページ72aであると判断すると、この候補ページ72aを、少なくとも1つの新規制御である安全送信ボタン64(図2b)を含むよう変更する必要がある。所望であれば、この1つのボタンに加えて他の制御を追加することもできるが、あくまでも任意である。
【0086】
セキュア電子メール14を送信することが望ましい時に、送信者12は、従来の送信ボタン62を操作するのではなく、安全送信ボタン64を「押す」(要するに、マウスクリックで操作する)。安全送信ボタン64を操作すると、ソフトウェアモジュール26が、電子メールサーバ22に投函できる状態の、電子メールの様々なフィールドを含むページ72(またはフォーム)を代行受信し、これらフィールドのいくつかを変更する。この変更が完了すると、ソフトウェアモジュール26が、送信者12が送信ボタン62を押した場合に第1に起こったであろう状態と全く同一の望ましい動作(投函または送信)を実行する。この場合の唯一の違いは、セキュア電子メール14内のいくつかのフィールドに含まれる値が異なる、つまり暗号化されている点である。
【0087】
発明者の現時点で好ましい実施形態では、2つのフィールドのみが典型的に変更されている。本体フィールド60は、常に暗号化によって変更される。そして、構成設定、特に上述の件名暗号化設定48aに従い、件名フィールド58を変更することもできる。
【0088】
暗号化処理および復号処理の考察を行う前に、セキュア電子システム10によって使用される様々なデータアイテムについて説明することが適切である。図5は、セキュア電子メールシステム10によって使用されるテーブルを含むデータベース100の図である。セキュリティサーバ24(図1)の主要な構成要素は、このデータベース100である。登録された送信者12と受信者16は、このデータベース100内でユーザとしてまとめて処理され、送信者12と受信者16のためのデータがユーザテーブル102に保存される。
【0089】
ユーザテーブル102は、userId102a、password102b(実際には、先述した好ましい実施形態における実パスワードのハッシュバージョン)、salt102c、status102dのためのフィールドを各々有する記録を含んでいる。
【0090】
ユーザエイリアステーブル103は、ユーザテーブル102に密接に関連し、emailAddress103a、userId103b(ユーザテーブル102内のユーザID 102aと関連的にリンクしている)のためのフィールドを各々有する記録を含んでいる。
【0091】
データベース100は送信済みメールテーブル104も含んでいる。このテーブルには、messageId104a、senderId104b、dateSent104c、numRecipients104d、messageKey104e、maxDeliveries104f、expiration104g、sealSalt104h、subject104i、lastRead104j、およびdeliverAfter104kのフィールドを各々有する記録を含んでいる。
【0092】
受信者テーブル106も提供される。図5に見られるように、送信済みメールテーブル104内のメッセージID104aは、受信者テーブル106内のメッセージID106aと関連的にリンクしている。したがって、この受信者テーブル106は、各々のセキュア電子メール14に特定されている受信者16のためのデータを含んでいる。さらに受信者テーブル106は、receiverAddr106b、firstRequest106c、およびnumRequests106dのためのフィールドを有する記録を含む。
【0093】
図6a〜図6fは、好ましい実施形態で使用されるデータフィールドのテーブルである。図6a〜図6d中のテーブルは、セキュア電子メールシステム10のコア動作にとって重要であるのに対し、図6e〜図6fは、セキュア電子メール10の任意の特徴に関連している。
【0094】
図6a〜図6dのテーブル内のテキストは、ここでさらに詳細に説明する1次フィールドと共に、いくつかの特定のフィールドを記述している。図6aは、図5のユーザテーブル102である。これには、セキュア電子メールシステム10に登録されている各ユーザ、つまり送信者12または受信者16のためのデータ記録が含まれている。各ユーザは、登録時にUserId(userId102a)を割り当てられ、Password(password102b)を選択し、このパスワードがここに保存される。好ましいPassword(password102b)の値はH(p+s)であり、ここでpはクリアテキストパスワードであり、sは、クリアテキストパスワードと連結したsalt(salt102c)である。図6bは、図5のsentMailテーブル104である。このテーブルには、セキュア電子メールシステム10内の各セキュア電子メール14のためのデータ記録が含まれている。図6cは、図5の受信者テーブル106である。このテーブルには、セキュア電子メールシステム10が配送できる各セキュア電子メール14のための宛先データが含まれている。送信された各セキュア電子メール14の各々の受信者16(個人またはリストグループ)に関する記録がこのテーブル内で生成されるため、セキュア電子メールシステム10内でこのテーブルが最も大きくなることが予想される。FirstRequest(firstRequest106c)内のフィールドヌル値は、受信者16がセキュア電子メール14の読み出しをまだ要求していないことを意味する。図6dは、図5のユーザエイリアステーブル103である。このテーブルには、各々の所与のユーザ(ユーザテーブル102中でuseId102aと関連的にリンクしているuserId103b)に関してわかっているすべての電子メールアドレス(emailAddress103a)のデータが含まれている。そのため、複数の電子メールアドレスまたはエイリアスから、シングルユーザが判明することがある。
【0095】
図6e〜図6fのフィールドに関しては、以下の説明以上に詳細な説明を省く。これらのテーブルはオプション特徴によって使用されるものであり、また、テーブル中に十分詳細な記述があるため、当業者はこれらフィールドの使用を理解できる。図6eは、電子メール配布リストの使用を可能にするデータのテーブルである。このテーブルにより、ユーザは配布リストを作成できる。所有者はこのリストを常に更新できるが、所有者が実際にこのリストのメンバーである必要はない。この後者の特徴は、リスト管理者にとって特に便利である。そして、図6fは、配布リストの使用を許可するために使用されるデータのテーブルである。このテーブルには、各配布リストのメンバーに関するデータが含まれる。
【0096】
図5、図6a〜図6fに示したデータ以外のための、他のテーブルおよびフィールドの使用ももちろん可能であり、また、いくつかのセキュア電子メールシステム10の実施形態では、上述したフィールドのいくつかをオプションにしたり、省略してもよい。
【0097】
メッセージを暗号化する前に、ソフトウェアモジュール26は送信者12のパスワードを取得する必要がある。このパスワードがキャッシュされ、キャッシュ時間設定48cを超えない場合にはこのステップが完了する。それ以外の場合には、ソフトウェアモジュール26が、送信者12にパスワードの入力を催促するダイアログボックスを表示する。例えば、パスワードのみをアスタリスクで表示したり、送信者に送信を中止するべくキャンセルを許可する従来のパスワード取り扱い機能が提供される。
【0098】
好ましい実施形態では、送信者12と受信者16のパスワードは、ユーザテーブル102に保存されているパスワード102bと違うものである。代わりに、強化されたセキュリティオプションとしてユーザがパスワードを選択し、このパスワードとソルト102cがセキュリティサーバ24によってハッシュされ、パスワード102bが取得できる。ユーザが選択したパスワードがセキュリティサーバ24へ送られ、そこでパスワードとソルト102cをハッシュし、パスワード102bがデータベース100に保存される。ユーザのパスワードのクリアテキストは、セキュリティサーバ24に保存されず、オリジナルパスワードなしでの計算が不可能な、計算されたハッシュだけが保存される。
【0099】
このようにして、セキュリティサーバ24に実際のユーザパスワードが知られることは決してないし、知り得る方法もない。次に、このオプションについてさらに詳細に説明する。
【0100】
パスワード102bを取得すると、ソフトウェアモジュール26は暗号化と実際の送信を実施できるようになる。ソフトウェアモジュール26は、送信者12を認証し、セキュア電子メール14の暗号化に使用するmessageKey104eを送り戻すよう求める要求を、セキュアソケットレイヤ(SSL)プロトコルを介してセキュリティサーバ24に送信する。次に、ソフトウェアモジュール26がこのメッセージの本体フィールド60(および場合により、件名フィールド58)を暗号化し、この結果が別個に符号化されて、セキュア電子メール14が作成される。
【0101】
セキュアソケットレイヤ(SSL)の使用については上述した。本発明のセキュア電子メールシステム10の目的は、その使用の容易性であるため、発明者によるこの好ましい実施形態はSSLを採用している。これは、現在の産業界で安全と考慮され、一般的なブラウザに広く利用されているが、今日の平均的なインターネットユーザはそうとは知らずにこれを使用している。しかし、SSLの使用は必須ではないことが理解されるべきである。代わりに、これ以外のセキュリティプロトコルを使用してもよい。
【0102】
次の表記は、下記の説明において使用されているものである。
Km = 電子メールに関連したワンタイムの一意キー;
Ps = 送信者のパスワード;
Pr = 受信者のパスワード;
{p}k = キーkで暗号化したp;
{p}ssl = SSLセッションキーで暗号化したp;
H(p) = pの一方向ハッシュ。
【0103】
図7は、現在好ましい暗号化のプロセス120を示すフローチャートである。送信者12がセキュア電子メール14を送信する準備ができた時点で、本体フィールド60内に平文が入力されたHTML送信フォーム52b(図2b)が表示されている。ここで、送信者12はセキュリティサーバ24に登録済みであり、この送信者のブラウザには適切なソフトウェアモジュール26がインストールされていると仮定する。また、送信者12は、ブラウザのみを使用してセキュア電信メール14を送信するものと仮定する。セキュリティの性質は、使用する実際のメールクライアントに関係なく同一でなければならず、そして、これを用いることで以下の説明を単純化することができる。
【0104】
先述したように、送信者12は、セキュア電子メールの投函準備ができると、送信フォーム52b上の安全送信ボタン64を選択する。これがステップ122、つまり暗号化プロセス120の開始を構成する。
【0105】
ステップ124では、送信ユニット18内で、以下の情報をソフトウェアモジュール26へ送信するスクリプトが実行される。
送信者12の電子メールアドレス(emailAdress103a);
宛先;フィールド、CC;フィールド、BCC;フィールドのコンテンツ(receiverAddr106bの例);
件名フィールド58のコンテンツ;そして
本体フィールド60のコンテンツ。
【0106】
ステップ126では、ソフトウェアモジュール26が送信者12のパスワードをまだ知らない場合に、送信者12のパスワードを催促する。送信の度にパスワードを入力するかどうかは、これが場合によっては非常に面倒な作業であるため、セキュリティポリシーの選択の問題となる。送信者12がブラウザセッションを開いた状態で維持した場合、ソフトウェアモジュール26内でユーザのパスワード、さらにパスワード102bをキャッシュすることで危険を招く可能性がある。このポリシーによって、多くの場合、送信者12はこのオプションの構成方法を選択できるようになるが、その一方で、例えば公共キオスクのような場所で、各セキュア電子メール14へのパスワードの入力が常に要求されるべき場合もある。
【0107】
ステップ128では、ソフトウェアモジュール26がXML文書を下記の形式で作成し、これは暗号化されるものである:
<?xml version="1.0"encoding="ASCII"/>
<emailPart random="randomNum"length="numChars"
mic="messageIntegrityCode">
<subject>subject</subject>
<body>body</body>
</emailPart>.
【0108】
この場合、ランダム要素は、クラッキング防止性があり、また、コンテンツ内では同一の電子メールでも、安全化の実行後には違ったものにしてしまうために使用されるランダム数であり;長さ要素が本体フィールド60中の文字数であり;mic要素は、本体フィールド60のハッシュを取って作成したメッセージの整合性コードであり;件名要素は件名フィールド58のコンテンツであり;そして本体要素は本体フィールド60のコンテンツである。
【0109】
ステップ130では、ソフトウェアモジュール26が、セキュリティサーバ24に対してSSL HTTP(HTTPS)接続を開き、セキュリティサーバに下記の情報を送信する:
送信者12のemailAddress103a;
送信者12のパスワード102b;
対象受信者16のリスト(receiverAddr106b、および潜在的なnumRecipients104d);
メッセージの件名フィールド58(件名104i);
計算されたハッシュのリスト、本体用のもの、H(b)、そして各付属物のもの
H(a1),H(a2)...H(an);そして、
有効期限または受信者毎の許容最大送信数といったオプション構成情報。
【0110】
ステップ132では、セキュリティサーバ24が、認証サブプロセスの結果に従って前進する。
1)送信者12のemailAddress103aがわかっていない場合、暗号化プロセス120が、知っているemailAddress103aを決定するか、または停止する。emailAddress103aは様々な理由から未知である。ある一般的な例は、送信者12がセキュリティサーバ24の新規加入者であるというものである。この場合、送信者12がその場で登録を行えるようにするための別個のブラウジングウィンドウを開くよう、ソフトウェアモジュール26が指示を受けることができる。別の理由は、ユーザのエラーのためにemailAddress103aが未知となっているというものである。このようなエラーの単純な原因は、複数のユーザが同じブラウザを共用しているためである。その後、送信者12は自分の証明を明確にするよう要求できる。
2)送信者12のパスワード102bが不正確である場合、ソフトウェアモジュール26は、パスワード102bを再び催促するか(恐らくは限られた回数のみ)、送信者12に送信動作を中止させる(これによって送信者はオリジナルのHTML送信フォーム52bへと戻る)よう指示される。
3)送信者12がセキュア電子メール14の送信を許可されていない場合は、暗号化プロセス120も停止することができる。これは管理上の理由で実施できる。例えば、送信者12が料金を未払いである場合や、あるユーザがこの暗号化サービスを使用することを阻止するよう裁判所命令が出ている場合などに実施される。この場合、拒絶の理由をダイアログボックスに入力し、これが承認されると、ユーザがオリジナルのHTML送信フォーム52bへ戻れるようになる(恐らくは、その代わりに送信ボタン62を使用するため、そして、メッセージを従来の電子メールとして送信するために)。
【0111】
あるいは、送信者12は認証されたと考慮し、現在意図されているセキュア電子メール14の送信を許可され、このステップ132は首尾よく完了する。
【0112】
ステップ134では、セキュリティサーバ24が記録を作成し、sentMailテーブル104に保存する。特に、messageId104a(m)と、messageKey104e(km)と、送信されているセキュア電子メール14の各部分について計算されたシール(sList)とに一意の値が生成される。セキュリティサーバ24が、sList内のシールをH(H(H(x)+s+t+m+Nm)+Nm)として計算する。要素sは、送信者12のuserId102a;tは日付および時間(またdateSent104cとしてsentMailテーブル104に保存される);mはmessageId104a;NmはsealSalt104h(この特別なセキュア電子メール14のために生成されたランダム数であるが、messageKey104eとは別のもの);H(x)はハッシュH(b)、ソフトウェアモジュール26から受信したH(a1)、H(a2)... H(an)の組である。sListのコンテンツは再計算可能であるべきなので、これを保存する必要はない。
【0113】
ステップ136では、セキュリティサーバ24が送信ユニット18のソフトウェアモジュール26に対して、{m,Km,sList}SSL形式の情報のSSLパケットで応答する。
【0114】
ステップ138では、ソフトウェアモジュール26がmessageId104a(m)、messageKey104e(Km)を抽出し、sListからシールし、上記のXML文書および各添付ファイルをmessageKey104eで暗号化するべく前進する。次に、ソフトウェアモジュール26が、送信ユニット18内のメモリからこの鍵を破棄する。詳細には、ソフトウェアモジュール26が下記の汎用形式を有するメッセージフォームを作成する:
------ BEGIN SECURECORP SECURED EMAIL ------
<securecorp:messagePart id = "m">
<encryptedPart>encrypted body</encryptedPart>
<seal>seal</seal>
</securecorp:messagePart>
------ END SECURECORP SECURED EMAIL ------
【0115】
セキュア電子メール14のこの部分に暗号化された本体が含まれている場合には、生ビットストリーム(暗号化後)から符号化されたストリームに変換されるので、暗号化した本体要素は印刷可能な(ASCII)文字の行で構成される。これが添付ファイルである場合には必要ない。
【0116】
最後に、ステップ140にて、ソフトウェアモジュール26が、送信者12が送信フォーム52b内の送信ボタン62を押した場合に最初に起こるのと同じ動作を実行する。これにより電子メールサーバ22に投函を行う(恐らくは、例えばYahoo!(商標)、Hotmail(商標)などの電子メール使用可能なウェブサーバを介して行う)。違いは、投函されているフォームの本体フィールド60内の値が、上述のとおりに暗号化および符号化された状態にある点である。同様に、あらゆる付属物が上述のとおり暗号化される。従来の電子メールサーバ22またはウェブサーバの観点からすると、本体が訳のわからない文章の一群でできた通常の電子メールメッセージのように見える。その後、セキュア電子メール14は、通常のインターネットメールシステム上で伝送され、様々な宛先に到達する。
【0117】
上述の説明では添付ファイルについてそれほど詳細に網羅していないが、添付ファイルの扱いも同様に容易である。好ましい実施形態では、添付ファイルの各々は本体フィールド60とほぼ同様に扱われるが、XMLでラップされない、または符号化(ASCIIに変換)されない点が異なる。その代わり、プロトコルバージョン情報;本体のものと同様の新規の長さ要素;セキュア電子メール14の本体に使用されているものと同じmessageId104aのコピー;この添付ファイル本体のハッシュを取って作成した新規のmic要素;シール(上述したsListのもの)を含んだバイナリヘッダが追加される。次に、この添付ファイルが、ヘッダが追加されたセキュア電子メール14の本体に使用したものと同じmessageKey104eを使用して暗号化され、この暗号化されたものが通常の方法で電子メールサーバ22にアップロードされる。
【0118】
添付ファイルへのこの手法には多くの利点がある。添付ファイルの検証メカニズムがセキュア電子メール14内部で実施され、これに適用可能なセキュリティ特徴によって保護されるため、添付ファイルを扱うこの手法によってセキュリティサーバ24のデータベース100が必ずしも妨害されることはない。また、あらゆる数の添付ファイルのサポートが可能である。各添付ファイルは、暗号化を実行するソフトウェアモジュール26内に送られるオブジェクトに追加される。各添付ファイルは、メッセージの本体と同じmessageKey104eを用いて暗号化され、各添付ファイルのハッシュは同じアルゴリズムを用いて計算できる。各添付ファイルにフルヘッダを付与することで、各添付ファイルを他の添付ファイルとは別に、さらには本体と別に復号化することが可能になる。添付ファイルを別々にすることにより、特に変更された添付ファイルがあるか否かを判断できる。セキュア電子メール14のこれ以外の部分での通常動作は、たとえ添付ファイルを有するセキュア電子メール14への返信時のように、添付ファイルが故意に含まれていない場合でも実施することができる。
【0119】
上述したように、セキュア電子メール14は、通常の電子メールシステムを介して各受信者16のインボックスへ到達する。受信者16は例によって、ブラウザの、受信した全メッセージの一覧が表示されている画面へ進むことができる。メッセージ一覧上をクリックすると、ブラウザは、その中のメッセージでフォーマットされたページを送信できるようになる。しかし、これには適切なソフトウェアモジュール26が存在することが必要である。
【0120】
受信ユニット20にソフトウェアモジュール26をインストールすれば、これをメッセージの受信/読み出しシナリオに使用する準備が整う。以下の説明では、プラグイン変形46aのソフトウェアモジュール26を用いたプライベート・ラベル・ブラウザも使用されているが、さらに当業者は、この基本となる原理を、セキュア電子メールシステム10を使用しているこれ以外のシステムにも拡大できることを容易に理解するだろう。
【0121】
簡単に図4に戻ると、同図はさらに、セキュア電子メール14が受信されているか否かを判断するためのソフトウェアモジュール26への好ましい手法も様式的に示している。受信ユニット20内のソフトウェアモジュール26が、セキュア電子メール14を含むものがあるかどうか、ページ72のストリーム70を検査する。ソフトウェアモジュール26がページ72にセキュア電子メール14が含まれているか否かを判断する方法は、“--------- BEGIN SECURECORP SECURED EMAIL -------”タイプのタグについて走査を実行するというものである。この作業は、それ以上処理されるべきでないページを送信する待ち時間を最短化することで、迅速に実施できる。実際の候補ページ72aが見つかった場合、このページはストリーム70から除去され、今説明したとおりに処理され、処理済のページ72bとしてストリーム内に戻されることで、受信者16がこのページを読むことが可能になる。
【0122】
図8は、好ましい復号化プロセス150を示すフローチャートである。ここでも同様に、受信者16の受信ユニット20上で実行されているブラウザ内にソフトウェアモジュール26が既にインストールされており、受信者16がセキュリティサーバ24に登録済みであると仮定する(セキュリティサーバ24は、恐らく、未登録のあらゆる受信者に対して既に電子メールを生成している)。受信者16がセキュア電子メール14(つまり、暗号化プロセス120に従って作成された、安全化およびシールされたXML文書)を選択すると、ソフトウェアモジュール26が、セキュア電子メール14を受信者16によって読み出し可能なものにするために、復号化動作を実行する。これがステップ152、つまり復号プロセス150の開始を構成する。
【0123】
ステップ154では、受信者16がパスワードを取得する。セキュリティサーバ24は送信者12と受信者16の両方をユーザとして扱い、送信者12と受信者16の両方がユーザテーブル102(図5)内への同等のエントリを有する点を思い出されたい。まだパスワード102bがキャッシュされていない場合には、受信者16がパスワードの入力を催促される。パスワードのキャッシング、催促などの規則は送信の場合と同様である。
【0124】
ステップ156にて、ソフトウェアモジュール26がmessageId104aを抽出し、受信したメッセージを(符号化されている場合には)復号化し、(まだ暗号化された状態の)本体フィールド60を抽出する。
【0125】
ステップ158にて、以下の情報がセキュリティサーバ24へ(SSL経由で)送られる:
受信者16の電子メールアドレス(emailAddress103a);
受信者16のpassword102b;そして
messageId104a。
【0126】
ステップ160では、セキュリティサーバ24が、認証サブプロセスの結果に従って先に進む。
1) password102bを決定するために、セキュリティサーバ24がsalt102cで受信者のパスワードのハッシュを実行する。
2) 受信者16のemailAddress103aとの関連に一部基づき、パスワード102が検証される。この認証部分が失敗した場合、受信者16に正確なパスワード102bの入力、または復号プロセス150の中止を催促する応答がソフトウェアモジュール26に送信される。
3) 受信者16がこのセキュア電子メール14を読むことを許可されているか否かが判断される。このためには、受信者16の電子メールアドレスが、特定のmessageId106aの受信者テーブル106内のreceiverAddr106bと一致しなければならず、numRequests106dが、このセキュア電子メール14のmaxDeliveries104fよりも少なくなくてはならず、さらに、expiration104gが、このメッセージの有効期限が既に切れている旨を示すものでなければならない。この許可が失敗すると、受信者に通知が送られ、さらに、セキュア電子メール14を復号化することなく復号プロセス150を終了するよう要求する応答がソフトウェアモジュール26に送信される。
【0127】
これら検査のいずれかが失敗した場合、ブラウザページは、単純に、暗号化されたデータを含んでいないかのような表示を行える、つまり、本体フィールド60が通常そうであるように理解不能な訳のわからない文字の羅列として表示することができる点に留意すべきである。しかし、送信者IDフィールド66、様々な受信者IDフィールド56、そして、恐らくは(構成により)件名フィールド58を依然として理解不能にしておくことができる。そのため、受信者16は、送信者12または他の受信者16と接触して、そのセキュア電子メール14が重要であるか、また、セキュア電子メールシステム10外部での処置が適切であるか否かを判断することができるようになる。これらの検査が成功すると、この受信者16は認証されたと考慮され、このステップ160が終了する。
【0128】
ステップ162では、セキュリティサーバ24がmessageKey104eを、SSL経由で受信者16のソフトウェアモジュール26へ返送する。
【0129】
ステップ164では、ソフトウェアモジュール26が、これと同じmessageKey104eと、暗号化する際に使用した基本プロセスを逆にしたものを用いて、セキュア電子メール14を復号化する。
【0130】
ステップ166では、ソフトウェアモジュール26がセキュア電子メール14の妥当性チェックを実行する。このために、セキュリティサーバ24との第2ラウンドの通信が実施される。ソフトウェア26はセキュア電子メール14の各部分の新規ハッシュを生成し、これらのハッシュと、各メッセージ部分に含まれているシールとをセキュリティサーバ24に送信する。次に、セキュリティサーバ24が、ハッシュ内の送信されたものに基づいて新規シールを計算し、これをシール内の送信されたものと比較する。これらの間に相違があれば、そのセキュア電子メール14が認証されないものであることを示す。次に、セキュリティサーバ24が、セキュア電子メール14の認証性に関する表示を、ソフトウェアモジュール26へ返送する。
【0131】
最後に、ステップ168にて、暗号化されたメッセージが配置されていたセキュア電子メール14の平文本体フィールド60を表示するHTML受信フォーム54が受信者16に対して示される。さらに、セキュリティサーバ24からの認証性に関する表示が負であった場合には、ソフトウェアモジュール26は、これに関して受信者16に提案するメッセージも表示する。
【0132】
また、好適な実施形態では、複合プロセス150の最適化として、ソフトウェアモジュール26がmessageKey104eをキャッシュすることで、同一のセッション中に、セキュリティサーバ24にアクセスすることなく同じメッセージを再び読むことができる。しかし、これは読み出し動作のみに適用され、messageKey104eがディスク上に保存されることはない。
【0133】
あらゆる添付ファイルの復号化は、これと同じmessageKey104eと、同じ基本プロセスを用いて単純に実行される。前述したとおりバイナリヘッダを使用している点と、添付ファイル内の情報が符号化されていない点のみが異なる。
【0134】
要するに、好適な実施形態のソフトウェアモジュール26は:HTMLページを提供する前に、該ページを代行受信およびパースし;HTMLページを提供する前に、該ページを選択的に変更し;HTMLフォームおよびページからデータを抽出し;安全な手段(例えば安全なHTTP、SSL)を使ってデータをセキュリティサーバへ送信し;同一のアルゴリズムを使用して対称な鍵暗号化および復号を実行し(例えばBlowfish対称鍵暗号/復号);ハッシングを実行し(例えばSecured hash algorithm one, SHA-1);(パスワード入力、構成、エラーメッセージ、シール検証結果のための)ダイアログボックスを表示し;好ましくは自己更新型である。
【0135】
前出の暗号化プロセス120と復号プロセス150の基礎となるセキュリティ特徴にはさらに何らかの分析が含まれる。セキュリティサーバ24のオペレータは、送信者のemailAdress103aがpassword102bと関連するべきであるため、認証の目的から送信者12を知っている。password102bがあるべきとおりに、つまり、その保持者にしか知られない方法で扱われた場合、セキュリティサーバ24のオペレータは、この送信者12のみが特定のセキュア電子メール14を送信できたと確信できる。しかし、送信者12が信用されている必要は少しもない。セキュリティサーバ24のオペレータはさらに、最初にseaSalt104hを保存することで、その送信者12を含む何人であってもセキュア電子メール14をその送信後に変更することは不可能である旨を確信することができる。追加のセキュリティ特徴として、暗号化したsealSalt104hをデータベース100に保存し、共用や、セキュリティサーバ24から持ち出すことを絶対に許可しないようにしてもよい。送信者12の認証(password102bの提出によって行う)の後に、SSL鍵で本体と添付ファイルのハッシュ(H(b)、H(a))を暗号化することで、セキュア電子メール14に署名しているのは送信者12であると判断することが可能になる。セキュリティサーバ24は、送信者12の実パスワードのハッシュのみをpassword102bとして保存しているので、セキュリティサーバ24のオペレータでさえ送信者12の代わりにセキュア電子メール14に不正に署名することは全く不可能である。
【0136】
messageKey104eは対称であり、外部エンティティ、つまりセキュリティサーバ24がこれを保存しているので、何者かが例えばデータベース100に侵入して、セキュア電子メール14の代行受信と、さらにそのmessageKey104eの入手の両方を実行すれば、その人物はセキュア電子メール14を復号化できてしまう。興味深いことに、この内の一方しか入手できなければ復号化は行えない。messageKey104eを公開鍵で暗号化すれば、この手法をさらに強化できる。所与のセキュア電子メール14をクラッキングするために必要なmessageKey104eを入手するには適切な秘密鍵を要するため、これでデータベース100への侵入も役に立たなくなる。したがって、データベース100への総当たり攻撃も実行不可能となる。さらに、セキュリティサーバ24のオペレータが必要な秘密鍵を可能な限り実ハードウェア内に置くことができ、これにより、採用している実マシンに物理的にアクセスしない限りデータベース100への侵入が実質的に不可能になる。
【0137】
セキュア電子メール14を読むことは、その送信よりも単純である。ここで唯一の問題は、復号に使用するシングルキー(messageKey104e)をメッセージ毎に設けている点である。そのため、ソフトウェアモジュール26内において、鍵が受信者のマシン上でノーガードとなり、これにアクセスできる瞬間がある。しかし、これによって可能になるのは、受信者16が読み出しを許可された最新のセキュア電子メール14を読むことだけである。そのため、この場合に危険が生じるのは、無許可の人物がメモリ内の鍵に短時間アクセスできた場合だけである。これを実行することは非常に困難であり、この方法で鍵を盗めるならば、復号化したメッセージも一緒にいとも簡単に(それ以上ないほど簡単に)盗めてしまうということになる。それなら鍵などに関心を持たないだろう。要するに、これはセキュリティリスクではないのである。
【0138】
シールを使用することで、信頼できる第三者の公証人として機能するセキュリティサーバ24のオペレータを介した否認防止が得られる。特に、裁判官は、メッセージが、セキュリティサーバ24のオペレータにシール、メッセージのハッシュ、送信者12の名称(userId102aをマッピングするため)を付与することで実際に送信者12から送信されたものか否かを判断できる。好適な実施形態について説明したとおり、受信者16はシールを、そのシールと、受信したメッセージのハッシュをセキュリティサーバ24に送信することで、これが本物であると検証することができる。(送信者12が、実際に書き、特定のセキュア電子メール14を送信したことを証明する。)その後、セキュリティサーバ24がこれに関連して保証を提供する。セキュリティサーバ24にて、3つの既知の数量に基づいてこのシールを再計算するために使用して、このシールが本物であるか否かを判断する。この技術は「秘密鍵による否認防止」として知られており、Kaufma等による"Network Security: Private Communication in Public World", Prentice-Hall, 1995, pp. 343-44により示唆されている。
【0139】
ここで説明した実施形態におけるセキュリティの多くがSSLの強度に基づくことが明白である。現在これが基準として受け入れられているようなので、ここでは、送信者12のpassword102bとmessageKey104eの両方がSSL経由で送信されるという事実を心配することはない。しかし、セキュア電子メールシステム10のセキュリティの強度はSSLに依存するものではない。通信チャネルを保護するためのより安全なプロトコルの利用が可能になっており(例えば、Transport Layer SecurityまたはTLS)、セキュア電子メールシステム10はこのようなプロトコルを容易に使用できる。
【0140】
ここまで、主にセキュア電子メールシステム20のプレゼンテーションについて説明してきた。しかし、このキーサーバの概念は、安全な通信に伴う問題に取り組む様々なソリューションを構築および展開するためにさらに一般的に使用することができる。たとえば、この手法はさらに、特に企業内インスタントメッセージング(EIM)、ビデオ会議、安全なリアルタイム文書編集を促進できる。これらは、メッセージコンテンツを伝送またはルーティングするためにメッセージヘッダを採用した通信スキームの単なる追加例であり、キーサーバはこのような通信スキームのいずれとも効率的に使用することができる。
【0141】
このキーサーバによって提供されるソリューションは、組織間での共同使用にも特に適している。組織は、キーサーバを使用することで、その構成要素に技術と媒体の贅沢な組み合わせを介して自由かつ容易に共同させながら、最も厳しいセキュリティの必要性を満たすことができる。
【0142】
以下の用語は、本明細書の以降の説明をとおして頻繁に使用されるものであるため、ここで便宜性のために定義しておく:
秘密保護 -- データの場所に関係なく(例えば、送信中または記憶装置内)、許可された受信者しかデータを見ることができないようにする。
会話鍵 -- 会話データを保護する対称鍵。会話データは1つの送信元から1つまたはそれ以上の宛先へ流れる。
ハブ -- メッセージを処理し、このメッセージを適切な宛先へ中継するネットワークサーバ。
整合性保護 -- 送信中または記憶装置内にあるデータへの無許可の変更を確実に検出する。
参加 -- コラボレーションへの参加を開始する。
キーサーバ -- 保護鍵を保持しており、これらを許可されたユーザに公開するネットワークサーバ。
退出 -- コラボレーションへの参加を中止する。
ヘッダ鍵 -- メッセージのヘッダを保護する対称鍵。ヘッダ鍵はハブと各スポークの間で個別に確立される。
メッセージ -- コラボレーション参加者間で交換されるデータの基本ユニット。メッセージは「ヘッダ」と「コンテンツ」の2つの部分で構成されている。
メッセージコンテンツ -- コラボレーション参加者によって生成されるデータであり、1つまたはそれ以上の他の参加者へ宛てて送信される。
メッセージヘッダ -- メッセージルータがコンテンツをその宛先へ伝送する上で補助をするデータ。
保護 -- 秘密および整合性の保護。
スポーク -- データの送信者または受信者;スポークはデータの中継を行わない。
トランスクリプト -- コラボレーションのある部分の記録。
【0143】
図9は、セキュリティサーバシステム210の主要な構成要素を示す概略ブロック図である。ほぼ汎用化されているが、この実施形態は企業におけるコラボレーション通信に特に適している。ここで、主要な構成要素にはコラボレーション参加者212、1つまたはそれ以上のメッセージルータ214、1つまたはそれ以上のキーサーバ216が含まれる。したがって、この場合のコラボレーション参加者212は、図1の送信ユニット18、受信ユニット20に等しい。メッセージルータ214は、図1の電子メールサーバ22(または従来型のルータ)に等しい。しかし、先述したように、ここでのメッセージルータ214は、特にセキュリティサーバシステム210を使用している企業の制御下にあってよい。図9のキーサーバ216は、図1のセキュリティサーバ24に等しい。
【0144】
コラボレーション参加者212は、メッセージ218の送信元(送信元参加者212a)および/または宛先(宛先参加者212b)先述のように、会話鍵220は、メッセージ218のコンテンツを保護するために使用される。
【0145】
メッセージルータ214は、メッセージ218を目的のコラボレーション参加者212へ伝送する。メッセージ218は実際には複数のメッセージルータ214を通過するであろうが、図面中では1つのメッセージルータ214(または電子メールサーバ22、およびセキュア電子メール14が通過するであろう使用可能なルータ)のみを概念形成的に示している。複数のメッセージルータ214を設けている場合には、その各々が、コラボレーション参加者212を見るのと同様に他のメッセージルータ214を「見る」。コラボレーション参加者212の各々が、少なくとも1つのメッセージルータ214(または「最も近い」メッセージルータ214)との継続的な接続を維持する。
【0146】
キーサーバ216は会話鍵220を作成するか、または送信元212aの参加者から会話鍵220を受信する。その後、キーサーバ216がこの会話鍵220を保存し、コラボレーション参加者212である参加者に公開する(恐らくは認証および許可後に行うが、様々なスキームを使用でき、関連性があるかどうかはここでの主題ではない)。さらにキーサーバ216も会話鍵220を大量に作成/保存でき、要求に応じて任意数を公開できる。そのため、サーバクラス装置であるクライアント(例えば電子メールゲートウェイ)が会話鍵22の組を大量に入手でき、また、キーサーバ216に一意の会話キー220を毎回要求する必要なく、この中からそれぞれ唯一の鍵を使って各メッセージ218を保護できる。
【0147】
以下の説明を単純化するために、暗号化と復号を主な保護の例として使用する。鍵で暗号化/復号化することで、メッセージの秘密性が保護される。しかし、これは単に1つの保護の利用可能な例でしかない点を理解すべきである。鍵を使用したメッセージダイジェスト(ハッシュされたメッセージ認証コード、またはHMACとしても知られている)を用いてメッセージの整合性を保護したり、両タイプの保護を適用することができる。例えば、キーサーバ216は256ビット鍵を作成し、これを送信元の参加者212aに公開することができる。これにより、送信元の参加者212aは第1の128ビットを暗号化に、第2の128ビットをHMACに使用できる。
【0148】
会話鍵220を暗号化またはハッシュへの使用後に、解読またはハッシュ分析のためにこれを回収する必要があるので、キーサーバ216は各会話鍵220の一意IDと関連している。一意ID、またはこれから導出できる何かが、保護された各メッセージ218と共に普通文で送信される。そのため、コラボレーション参加者212がキーサーバ216に会話鍵220の要求を提出すると、キーサーバ216が要求された会話鍵220を含んだ返信をコラボレーション参加者212に送信する。キーサーバ216は汎用体であり、任意タイプのアプリケーションについて会話鍵220を扱うために使用できる。これによって、コラボレーション参加者212とキーサーバ216の間のセッションが安全なセッションとなる。
【0149】
図1と図9は、オプションであるが、非常に便利な特徴を図示する主要な点において異なる。図1では、電子メールサーバ22とセキュア電子サーバ24を、直接通信しないものとして示している。このスキームは、例えば電子メールサーバ22(またはその代用品としてのメッセージハブ)が従来のものである場合に効果を発揮する。これに対して図9では、メッセージルータ214とキーサーバ216を、直接通信するものとして示している。このスキームは、メッセージルータ214がセキュリティサーバシステム210内で機能するように設計されている場合に効果を発揮する。そのため、メッセージルータ214は、コラボレーション参加者が会話に参加または会話から退出する際に新規の会話鍵220を作成するようキーサーバ216に指示するエンティティであってよい。
【0150】
図10は、セキュリティサーバシステム210におけるメッセージ218の典型的な流れを示す概略ブロック図である。メッセージ218は、メッセージヘッダ222とメッセージコンテンツ224を含む。
【0151】
メッセージヘッダ222は、メッセージルータ214がメッセージをその宛先、つまり1つまたはそれ以上の宛先参加者212bへ伝送する際に補助となるデータを含む。以下はメッセージヘッダ222内に含まれる要素の例である:
宛先 -- メッセージの宛先。
送信元 -- メッセージの起源。
日付 -- メッセージ作成日時。
メッセージID -- そのメッセージのための一意のID。
コンテンツ長 -- コンテンツの長さ。
コンテンツタイプ -- MIMEタイプのコンテンツ。
優先順位 -- メッセージの優先順位。
【0152】
メッセージコンテンツ224は、送信元の参加者212aによって生成され、1つまたはそれ以上の宛先参加者212bに宛てられたデータを含む。もちろん、コラボレーションの最中に複数のメッセージ218を交換する場合、コラボレーション参加者212は、送信元参加者212aとしての役割りを変更でき、頻繁にこの変更を行う。メッセージルータ214はメッセージコンテンツ224を検査しない。[コンテンツフィルタリングやウィルススキャンのような特別なサービスが、メッセージコンテンツがその宛先に転送される前にこれを検査できる。しかし、これはオプションサービスであり、メッセージルーティングとは別のものである。]
【0153】
図10はまた、図示されたセキュリティサーバシステム210の実施形態が、実際にデータ保護のために2タイプのキーをどのように使用するかも示している。ここでも、保護は秘密性、整合性、またはその両方に関連している。第一に、メッセージルータ214が各コラボレーション参加者212と共にヘッダ鍵226を確立する。このヘッダ鍵226はメッセー218のメッセージヘッダ222を保護する。メッセージルータ214とコラボレーション参加者212の間で接続がなされる度に、異なるヘッダ鍵226が使用される。キーサーバ216はヘッダ鍵226の作成、保存、管理を行わない。さらに、ヘッダ鍵226は一時的なものであり、メッセージルータ214とコラボレーション参加者212の間でのセッションの継続時間を超えて有効性を維持することはない。第二に、会話鍵220はメッセージ218のコンテンツを保護する。あらゆるプロセス(コラボレーション参加者212またはメッセージルータ214)が会話鍵220を作成する(要求し、許可される)ことが可能である。この2つの鍵の手法を使用することで、送信元から宛先までの間において、効率的かつ安全性の高いメッセージ218の配布が可能になる。
【0154】
この2つの鍵の使用は、会話鍵220に等しい1つの鍵のみを使用する図1に示したスキームとも異なる。ヘッダ鍵の使用はオプションであるが、その使用によって安全性が高まる。例えば、メッセージルータ214を制御している企業はこの追加的レベルの安全性を付加して、メッセージヘッダ222内の情報をも安全化してしまうことを望むかもしれない。
【0155】
メッセージルータ214がその任務を実行するには、メッセージ218のメッセージヘッダ222のみを処理するだけでよい。図10では、メッセージルータ214は、通信するコラボレーション参加者212に従い、異なるヘッダ鍵226(KH1、KH2、KH3、またはKH4)を使用する。メッセージ218のメッセージコンテンツ224は、無変更のまま単純にメッセージルータ214を通り、次に、宛先の参加者212bが、メッセージ218のメッセージコンテンツ224を解読し、その整合性を検証するために、同一の会話鍵220(Kc)を要求および使用する。各メッセージルータ214は、メッセージコンテンツ224全体の整合性を検証することなくメッセージ218を次のメッセージルータ214へ「流す」ことができるため、この方法でヘッダ鍵226を会話鍵220から分離することが有利である。これは、人工的にメッセージを管理可能なブロックに分け、各ブロックを個々に暗号化する必要があるSSLおよびIPSecとは対照的である。
【0156】
メッセージルータ214は、将来的および過去的な秘密性を提供するために、以下のイベントが生じた場合、会話鍵220を変更または「ロールオーバ」できる。新規のコラボレーション参加者212が会話に参加した場合、メッセージルータ214が会話鍵220が変更されたことを知る。このイベントが発生する前に通信が行われたメッセージ218はすべて、過去の会話鍵220を使用して暗号化された状態を維持し、また、デフォルトでは、これらのメッセージ218が新規のコラボレーション参加者212に対して利用可能にされることはない。同様に、既存のコラボレーション参加者212が会話を退出する場合(例えば、メッセージルータ214との接続を切断する場合)、このイベント後に通信が行われたすべてのメッセージ218は新規の会話鍵を使用して暗号化される。デフォルトでは、退出するコラボレーション参加者212はこの会話鍵220を使用できないようになっている。セキュリティサーバシステム210の好ましい実施形態では、トランスプリプトは、暗号化された状態で記憶装置に保存される。そのため、コラボレーション中のイベントのシーケンスによっては(つまり、参加および退出動作)、会話の異なる部分を暗号化するための複数の会話鍵220が存在する場合もある。
【0157】
例えばコラボレーション参加者212が多数いる場合に、会話鍵220ロールオーバプロセスを、図9、図10中のこの実施形態の企業のコラボレーションテーマと一致するように最適化することができる。一般に、メッセージルータ214は、実際の(暗号化した)メッセージコンテンツ224にアクセス不能であっても、メッセージコンテンツ224が実際の物であるか否かを判断することはできる。例えば、メッセージヘッダ222内の情報がこれを表すものであってよく、あるいは、メッセージコンテンツ224がなくてもよい。メッセージルータ214は、この情報を用いて、会話鍵220のロールオーバを、次の実際のメッセージ218に遭遇するまで変更することができる。これにより、複数のコラボレーション参加者212が新規の会話に参加できるようになり、参加の度に会話鍵220が自動的にロールオーバされないようになる。その代わり、実際のメッセージ218の送信時に会話鍵220がロールオーバされる。同様に、複数のコラボレーション参加者212が既存の会話を退出し、会話鍵220が次の実際のメッセージ218が送信されるまでロールオーバされないようにすることができる。
【0158】
次の説明は、セキュリティサーバシステム210の実現のいくつかの新規概念を制限なく要約したものである。このセキュリティサーバシステム210は、1つの会話鍵220を割り当ておよび使用してデータの保護を行うが、そのデータが存在する限りこの1つの会話鍵220を使い続けることが可能である。この1つの会話鍵220を使用することで、メッセージルータ214はメッセージ218を解読および再暗号化する必要がなくなる。これにより、メッセージ218の非常に効率的なルーティングが可能となり、スケーラブルで企業クラスのコラボレーションシステムを実現できる。
【0159】
これと対照的に、既存の技術は、データがその起源から複数の宛先へ送信される際に、複数の鍵を使用して、(秘密性および整合性に関連して)データを保護する。典型的な実現は、セキュアソケットレイヤ/トランスポートレイヤセキュリティ(SSL/TLS)プロトコル、またはIPSECプロトコルを採用している。SSL/TLSを使用することで、各メッセージをその起源において暗号化し、このメッセージをルーティングするサーバ(つまりハブ)において復号化し、該ハブにおいて再暗号化し、最後に最終的な宛先において復号化することが必要になる。
【0160】
また、セキュリティサーバシステム210は、将来的および過去的な秘密性を容易に維持することもできる。新規コラボレーション参加者212の参加時、または既存のコラボレーション参加者212のコラボレーション退出時に、会話鍵220を変更できる。これにより、新規ユーザが参加以前のコラボレーションデータのどの部分にもアクセスできず、同様に、会話を退出したユーザは退出後にはそのコラボレーションにアクセスできないことがすべてのコラボレーション参加者212に保証される。たとえ攻撃者がセキュティサーバシステム210との接続状態を維持し、メッセージ218を受信しても、攻撃者は、これらメッセージ218のメッセージコンテンツ224を復号化するための会話鍵220を取得することはできない。
【0161】
これと対照的に、既存の技術では秘密性の維持を接続状態に頼っている。つまり、ハブに接続していないユーザはコラボレーションデータを受信できない。これは下級ユーザが使用するにはよいが、上級の攻撃者からコラボレーションデータを保護するには安全な技術ではない。
【0162】
セキュリティサーバシステム210は、効率的なマルチユーザ参加も可能にする。メッセージルータ214において会話鍵220による暗号化または複合を行わないことにより、メッセージルータ214における暗号化および復号の回数を最小化する。実際、メッセージルータ214においてコラボレーションデータに適用される暗号化および復号の回数は、コラボレーション参加者212の数には関係ない。
【0163】
これと対照的に、既存の技術では、ユーザ数が増えるとパフォーマンスに劣化が生じてしまう。このようなパフォーマンス劣化には多くの要因が貢献するが、主な要因は、システムの各構成要素によって実行される保護動作の数である。既存の技術は、セッション鍵を使用してコラボレーションデータを保護する。この既存技術では、セッション数がユーザ数と比例し、必要な保護動作がユーザ数と共に増加するため非効率である。
【0164】
セキュリティサーバシステム210は、同一のコラボレーションまたはセッション内で複数の安全なスレッドを実行することもできる。これは、コラボレーションデータ(メッセージコンテンツ224)が、セッション鍵よりはむしろ会話鍵220を使用して保護されているからである。そのため、許可されたコラボレーション参加者212の組によっては、1つのセッションで複数の会話鍵220を使用できる。
【0165】
既存の技術は、コラボレーションデータを保護するためにセッション鍵を使用する。そのため、同じコラボレーション内における会話の複数のスレッドを保護するには複数のセッションが必要となる。これにより、システムが柔軟性に欠け、非効率なものとなってしまう。
【0166】
さらにセキュリティサーバシステム210では、トランスクリプトの扱い方法も洗練されている。該システム210は、コラボレーションの最中およびコラボレーション後に、同じ会話鍵の組を使用してメッセージコンテンツ224を保護する。これにより、より柔軟で安全性の高いコラボレーションシステムが得られる。
【0167】
セッション鍵を使用する技術は、セッション鍵は一時的なものであり、コラボレーション終了と同時に失効するため、コラボレーションデータのトランスクリプトを保護する技術は厳密性を有する。
【0168】
また、セキュリティサーバシステム210は、これ以外の既存のセキュリティ技術を今説明したように改良する。すべてのセキュリティ機能に公開鍵インフラストラクチャ(PKI)を使用するコラボレーション技術によって、システムが非効率で厳密なものになる。PKIを用いてコラボレーションダータの保護を行うには、参加者全員がPKIデジタル証明書を持っている必要がある。これと対照的に、セキュリティサーバシステム210は、PKI証明書を、任意のコラボレーション参加者212を認証するために使用することができる。しかし、PKI証明書を所有する必要はない。そのため、自分の認証性を十分なレベルで証明できるコラボレーション参加者212はコラボレーションに参加できる。
【0169】
IPSecに基づいたコラボレーション技術は、個々のセキュリティアソシエーション(SA)を使用する必要がある。第一に、SAは一時的なものであり、事実上、SA鍵は送信中のコラボレーションデータしか保護できない。第二に、SAは送信元/宛先のペアに指定されている。したがって、ハブ−スポークモデルに基づいて動作するコラボレーションアプリケーション(例えばインスタントメッセージング)は、情報が複数のSA間で送信される際にデータの保護を要する。これと対照的にセキュリティサーバ210は、同じベース技術を使用して、送信中および記憶装置保存中(つまりトランスクリプト)のコラボレーションデータ(メッセージコンテンツ224)を保護する。
【0170】
SSL/TLSを使用するコラボレーション技術には複数のSSL/TLSセッションが必要である。第一に、セッションは一時的なものであり、事実上、セッション鍵は送信中のコラボレーションデータしか保護できない。第二に、セッションはクライアント/サーバのペアに指定されている。したがって、ハブ‐スポークモデルに基づいて動作するコラボレーションアプリケーション(例えばインスタントメッセージング)は、情報が複数のセッション間で送信される際に情報データの保護を要する。これと対照的に、セキュリティサーバシステム210は、同一のベース技術を使用して、送信中および記憶装置保存中(つまりトランスクリプト)のコラボレーションデータを保護する。
【0171】
図11は、通信システム310が4つの基本構成要素、すなわち通信を行っている参加者312(発信者314または受信者316)、認証オーソリティ318、キーサーバ320がどのように構成されているかを示すブロック図である。
【0172】
一般に、発信者314と受信者316が、認証オーソリティ318に接触し、自己を認証する。しかし、発信者314の認証オーソリティ318は、受信者316の認証オーソリティ318と同一であっても、異なっていてもよい。通信を行っている参加者312は、認証オーソリティ318に指定されたプロトコルを使用する(例えばTLS上のユーザIDおよびパスワード、2ファクタ認証、PKI証明書を使用するチャレンジ/応答プロトコルなど)。認証が成功すると、認証オーソリティ318が通信を行っている参加者312に認証アサーション322を発行する。認証オーソリティ318はこのアサーション322に署名する(一般にPKI秘密鍵を使用して行う)。すべてのアサーション322はそれぞれ異なっている。
【0173】
次に、発信者314は、1つまたはそれ以上の受信者316に送信したい通信文324用のデータを有している。発信者314はキーサーバ320に接触し、そのアサーション322と、目的の通信文324用の属性326を提出する。この属性326については以降でより詳細に説明するが、属性326は、通信文324のための目的受信者316のリストを含んでいる。
【0174】
キーサーバ320は、発信者314からのアサーション322を確認する。その後、将来の通信文324にリソースID328を割り当て、通信文324の暗号化に適した鍵330を作成し、リソースID328と鍵330を発信者314へ戻す。場合により、発信者314は鍵330をキーサーバ320へ送信し、この鍵330をリソースID328と関連付けるよう要求することができる。この最中に、キーサーバ320はリソースID328、鍵330、アサーション322、属性326を、管理しているデータベース332に保存する。
【0175】
次に発信者314は、鍵330を使用してデータを暗号化し、リソースID328を普通文で追加することによって通信文324を構成する。その後、発信者314が、従来の手段を使ってこの通信文324をすべての受信者316に送信する。発信者314は、キーサーバ320または認証オーソリティ318のいずれにも通信文324を送信する必要は全くなく、またほとんどの実施形態において送信していない点に留意すべきである。
【0176】
各受信者316はキーサーバ320から、暗号化された通信文324の復号に適した鍵330を受信する必要がある。通信文324は普通文でのリソースIDを含んでいるため、受信者316はそのアサーション322とリソースID324をキーサーバ320に提供する。次にキーサーバ320が、この受信者316からのアサーション322を確認する。さらに、先に発信者314が属性326提供した宛先受信者316のリストを使用して、その受信者316が、リソースID328が指定するその通信文324の宛先の受信者であるか否かを調べる。この属性326内に、これ以外に、先述した鍵330を使用可能にするための基準がさらに含まれている場合には、キーサーバ320はこれらの基準が一致するか否かも調べる。その後、キーサーバ320が受信者316に鍵を提供する。
【0177】
最後に、受信者316が鍵330を使って通信文324を復号化する。これと同時に、復号が成功したか否かにより、また場合により、通信文324内に含まれている暗号化チェックサムを比較することにより、通信文324のコンテンツの整合性が実証される。このようなチェックサムは、リソースID328と共に通信文の普通文の部分に含まれていてよいが、より典型的には、暗号化された部分に通信文324のコンテンツと共に含まれる。このようなチェックサムは、通信文324全体の異なる各部分も包括できる。例えば、通信文324のコンテンツ部分のみから導出でき、または、該通信文324の別の部分から導出できる。電子メール形式の通信文324である場合の一例には、チェックサム内に件名と暗号化時を含むものが挙げられる。この方法では、受信者316は、普通文で送信された件名部分が変更されたものであるか、または通信文324の到着が過度に遅れていないかを知ることができる。
【0178】
テーブル1は、キーサーバ320が保有するデータベース332のコンテンツのスキーマを示す。resourceIDフィールドは直線形であり、これまで説明してきたのはリソースID328である。ResourceTypeフィールドは、鍵330が作成されるアプリケーションタイプの範囲を提供する。例えば、電子メールとインスタントメッセージングが別々の送信者タイプを使用できる。これにより、別々のアプリケーションが、リソースID328の一意性を一致させる必要性から解放される。ResourceIDフィールドとResourseTypeフィールドの組み合わせは常に一意である。ResourseKeyは単純に鍵330であり、やはり既に説明済みである。鍵330が対称鍵である場合は1つのResourceKeyだけが必要である、つまり、同じ鍵330が発信者314と受信者316によって使用される。さらに通信システム310の実施形態は非対称鍵を使用することもできる。この場合には、キーサーバ320が発信者314に暗号化鍵330を提供するのであれば、発信者324は、この暗号化鍵330のためのResourEncryptKeyフィールドを有し、さらに、受信者316に提供されるはずの復号鍵330を保存するためのResourceDecryptKeyフィールドを有する。発信者314が鍵の生成を行う場合には、暗号化鍵および復号鍵330の両方、または復号鍵330のみをキーサーバ320に送信できる。
【0179】
スキーマについての説明をさらに続けるが、KeySizeフィールドはオプションである。1つのサイズの鍵を独占的に使用できるが、これに限定されるものではない。あるユーザは、より大型の鍵が提供する非常に強力な暗号化を希望するかもしれないし、他のユーザは、より小型の鍵が提供する処理負担の軽減を希望するかもしれない。別の考察として、リソースのクラッキングがより強力になるに従って鍵が大型化する傾向にある。この傾向はこれからも継続しそうであり、そのため実施形態は、古い鍵サイズとアップグレード版の鍵サイズに対応するためだけに、異なる鍵サイズを扱う必要があるかもしれない。
【0180】
さらにKeyCreatorフィールドもオプションである。キーサーバ320のみが鍵330を作成する、または常に発信者314が鍵330を作成する実施形態を利用できる。このフィールドを設けることにより、これらのうちいずれか一方の実施形態が許容される、または鍵330が時にキーサーバ320によって作成され、時に発信者314によって作成される混合配置が許容される。もちろん、ある実施形態にこのような機能を設けることで、どの配置を使用するか指定するため、または特定の発信者314に使用されるべき配置を指定するために用いられている手段が制限されることはない。
【0181】
大部分の実施形態がKeyOwnerフィールドを設けていることが予測される。発信者314は鍵330の「所有者」であり、このフィールドの使用の一例として、キーサーバ320がスキーマのコンテンツを便利な方法で変更することを促進するものが挙げられる。例えば、企業コンテキスト内で、発信者314が、鍵330がたった今退出したばかりの受信者316に関連付けされることを防止したいと希望する。あるいは、発信者314は、受信者316が休暇中であることを知ったため、例えば最初に指定された期間よりも長い期間、鍵330の公開を許可したいかもしれない。さらにKeyOwnerフィールドは、キーサーバ320が、他の参加者からの要求に応答することを許可するが、しかしこれは恐らく適切な場合のみである。例えば、政府機関キーサーバ320に、参加者発信者314に既に発行されているすべての鍵330を凍結し、それ以上鍵を発行しないよう要求できる。または、裁判所が、発信者314と受信者316の間の陰謀の証拠を調べるべく通信文324を復号化するために、鍵330の公開を命令するかもしれない。
【0182】
KeyOwnerフィールドを故意に設けない、または設けてはいるが単に使用していないということも可能である。キーサーバ320は、鍵330を「匿名の」発信者314、さらには「匿名の」受信者316に提供するかもしれない。キーサーバ320は、任意の発信者314が単に要求を行った場合に、鍵330とリソースID328をその最も単純な形式において提供することができ;次に、キーサーバ320は、単に要求およびリソースID328の提供を行った任意の受信者316に対して、その鍵330(または、非対称暗号化を使用している場合にはこれに関連する鍵)を提供できる。あるいは、匿名の発信者314が目的の受信者316を指定することにより、キーサーバ320がその非匿名受信者316のみに鍵330を公開できるようにする。さらにキーサーバ320は、発信者314と受信者316のいずれか一方、または両方から、アサーション322を要求する、またはしないかもしれない。例えば、キーサーバ320が、単に有効なアサーション322を提供されたことを根拠に、通信を行っている参加者312に鍵330を提供または公開するかもしれない。
【0183】
やはりスキーマの説明を続けると、DateCreatedフィールドは理論的にオプションであるが、その用途は明確であり、また一般的には提供および使用される。スキーマ内のこれ以外のフィールドには、発信者314が提出した属性に反応して設定されたものであり、また、テーブル1の記述と、これらがイベントとどのように関連するかについての説明から明白となるはずである。
【0184】
通信システム310により、3組のビジネスイベントの構成が可能になる。制御イベント340(図12)は、受信者316が通信文324を見ることができる時間およびその回数を制御するために発信者314が実行した動作の組で構成されている。正のイベント342(図13)は、受信者316が実行した動作の組で構成されている。また、負のイベント344(図14)は受信者316から実行が予想されたが、まだ開始されていない動作の組で構成されている。
【0185】
キーサーバ320は、発信者314が提供した属性326に基づいて制御イベント340を設定する。次に、キーサーバ320は、そのデータベース332内の情報、および受信者316との通信またはその欠如に基づいて、正のイベント342と負のイベント344の両方を決定する。
【0186】
受信者316が通信文324を見るためには、復号鍵330を認証し、これをキーサーバ320から取り出すことを思い出されたし。通信文324の発信者314はこの鍵330の「所有者」であり、各受信者316が復号鍵330を取り出せる時間と回数についての制御イベント340を作成するために、属性326を設定できる。この機能を可能にする属性は、キーサーバ320がデータベース332内に保有しているReleaseAfterフィールド、ExpireOnフィールド、NumReleaseフィールドである。
【0187】
図12は、制御イベント340に関連した情報の流れを示すブロック図である。矢印付きの線352は、属性326が発信者314からキーサーバ320まで、さらにそのデータベース332内へ流れる様子を示す。
【0188】
図13は、正のイベント342に関連した情報の流れを示すブロック図である。矢印付きの線354は、鍵330(ResourceIDと受信者のアサーション322を含む)の要求が受信者316からキーサーバ320へ流れ、また、これに関する情報がキーサーバ320のデータベース332内へ流れる様子を示す。キーサーバ320は、所与の受信者316が鍵330を取り出せる時間およびその回数を記憶する。これは、特定の受信者316が特定の時間に実行した動作を示す正のイベント342を作成するための支持として機能する。この機能性を可能にする属性は、キーサーバ320のデータベース332内のLastReleaseフィールド、NumReleasedフィールドである。
【0189】
別の矢印付きの線356は、キーサーバ320が、受信者316が復号鍵330を取り出せる時間を通知サーバ346(キーサーバ320と別個に示しているが、この限りではない)に知らせる様子を示す。次に、通知サーバ346は、複数の矢印線358で示すフォローアップ動作を、複数の利用可能な宛先に向けて発信できる。例えば、通知サーバ346がマーケティング部署のシステムに通知し、次に、このシステムがマーケティング代表者に、見込み客(受信者316)に電話をしてフォローアップを行うよう警告できる。
【0190】
図14は、負のイベント344に関する情報の流れを示すブロック図である。負のイベント344に発信するには、キーサーバ320のデータベース332内のLastReleasedフィールドとExpectedRequestフィールド内の属性を使用する。同図中の仮想矢印線360(破線)は、受信者316からキーサーバ320までの発生しなかった情報の流れと、さらに、ここでも、矢印付き線356と複数矢印付き線358が、これによって発生するキーサーバ320から通知サーバ346までの情報の流れを示す。受信者316が所与の時間までに鍵330の要求に失敗すると、キーサーバ320が通知サーバ346に信号を発信し、その後、通知サーバ346がフォローアップ動作を発信できる。例えば、通知サーバ346が顧客コールセンター内のシステムに通知し、次に、このシステムは顧客サービス代表者に、顧客(受信者316)に電話をかけて通信文324のコンテンツを口頭で伝えるように警告できる。
【0191】
図15は、本発明の通信システム410の実施形態が4つの基本構成要素、つまりトランザクション実行中の参加者412(発信元414または対象者416)、認証オーソリティ418、キーサーバ420を使用できるブロック図を示す。
【0192】
トランザクション実行中の参加者412は認証オーソリティ418と通信して自己認証を行う。トランザクション実行中の参加者412は、認証オーソリティ418に指定されたプロトコル(例えば、トランスポートレイヤセキュリティ上のユーザIDおよびパスワード、2ファクタ認証、PKI証明書を使用するチャレンジ/応答プロトコルなど)を使用する。認証が成功すると、認証オーソリティ418がトランザクション実行中の参加者412に認証アサーション422を発行する。認証オーソリティ418がこのアサーション422に署名をする(一般に、PKI秘密鍵を使用して行う)。アサーション422はトランザクション実行中の参加者412の証明書;認証オーソリティ418の証明書;認証アサーション422の有効期間;任意の承認データを含んでおり、これらは、トランザクション実行中の参加者412がアサーション422の正当な所有者であることを証明するためにキーサーバ420によって使用される。この認証データの一例に、その秘密鍵がトランザクション実行中の参加者に知られている一時的な公開鍵がある。トランザクション実行中の参加者412は、この秘密鍵を作成し、これに対応する公開鍵が自分に属すると主張して欲しいと、認証プロトコルを介して認証オーソリティ418に要求することができる。あるいは、認証オーソリティ418は鍵のペアを作成し、秘密鍵をトランザクション実行中の参加者に安全に伝送し、これに関連する公開鍵が、このトランザクション実行中の参加者412に属すると主張できる。認証オーソリティ418が秘密鍵について知ることがないため、一般には前者の方法が好ましい。
【0193】
先述したように、送信元414が認証オーソリティ418を有し、アサーション422を受信する。次に、送信元414が、一般にはトランザクション実行中の参加者424を1つまたはそれ以上の対象者416と通信させたいと望む直前に、キーサーバ420と通信する。キーサーバ420がトランザクション424にトランザクションID428を割り当て、そのトランザクション424のための暗号化鍵430を作成する。(暗号化鍵430は、復号に使用できるものと同一の鍵340かもしれないし、そうでないかもしれない。)任意で、送信元414が鍵430をキーサーバ420へ送信して、その鍵430をトランザクション424と関連付けるよう要求する。キーサーバ420が送信元414の鍵430、トランザクションID428、アサーション422のすべてを、キーサーバ420が保有するデータベース432内に保存する。最後に、送信元414が、鍵430を使用して、トランザクション424内でデータの秘密性と整合性を保護し、このトランザクション424を対象者416へ送信する。この送信は、認証オーソリティ418またはキーサーバ420のいずれかを介さない、全く従来の手段によって実施することができる。
【0194】
通信システム410は、送信元414のアサーション422を、トランザクション424を保護するトランザクションID428および鍵430と関連付けることによって起源の否認防止を達成する。これにより、鍵430がトランザクション424と送信元を「暗号化的に」バインドする。例えば、トランザクション424が電子メール内で具現化される実施形態では、その電子メールの起源である送信元414が、特定の認証方法で特定の認証オーソリティ418において認証されたことを証明するために通信システム410を使用する。
【0195】
送信元414が後にトランザクション424の否認を試みた場合、これと競争しようとしている参加者が様々な方法で前進することができる。この参加者が対象者416である場合には、トランザクションID428と推定上の送信元414の証明書をキーサーバ420に提供して、キーサーバ420に、この推定上の送信元414が、トランザクションID428に関連したアサーション422を提供したことを承認するよう要求する。あるいは、対象者416がトランザクションID428のみを提供して、キーサーバ420にそのトランザクションID428を受信した送信元414が誰であったかを質問してもよい。
【0196】
もちろん、送信元420またはこれ以外の参加者は、対象者416がトランザクション424の起源を妥当に確認したことをまだ簡単に認めたくないかもしれない。しかし、問題解決側の参加者はトランザクション実行中の参加者412(送信元414または対象者416)以外の者、例えば仲裁者、裁判所、または銀行である可能性もある。ここで、次にこの参加者がトランザクションID428をキーサーバ420に提供し、そのトランザクションID428の発行のためにアサーション422を提供した送信元414は誰であるか、また、トランザクション424を復号化して、その整合性を検証するのはどの鍵430であるかについて通知される。鍵430がトランザクション424を復号化し、その整合性を検証する場合には、起源についての質問は解決する。あるいは、恐らくより一般的には、この参加者がトランザクション424とトランザクションID428の両方をキーサーバ420に提供することができ、キーサーバ420が、トランザクション424を復号化して、その整合性を検証したのがその鍵430であるか否かを判断することができ、その後、キーサーバ420がその旨を通知することができる。ここで、推定上の送信元414の証明書もキーサーバ420に提供でき、その後、キーサーバ420は、その推定上の送信元414がトランザクションID428に関連したアサーション422を提供したか否かを確認する(つまり、イエス、ノーで応答する)ことができる。
【0197】
さらに先述したように、トランザクション対象者416は、認証オーソリティ418(しかし、送信元414が使用したものと同一である必要はない)を有し、さらにアサーション422を受信する。次に、対象者416は、トランザクション424内のデータを解読して、その整合性を実証するために、キーサーバ420から復号鍵330を取り出す必要がある。キーサーバ420は、このために鍵330を公開する前に、対象者416のアサーション422を保存し、トランザクションID428との関連付けを行う。
【0198】
このように、通信システム410は、対象者416のアサーション422をトランザクションID428、トランザクション424を保護している鍵330と関連付けすることで、受信の否認防止を達成する。例えば、トランザクション424が電子メール内で具現化される実施形態では、対象者416がその電子メールを受信および開封し、また特定の認証方法により、特定の認証オーソリティ418において認証されたことを証明するために、通信システム410を使用することができる。
【0199】
後に対象者416がトランザクション424の受信を否認しようと試みた場合には、トランザクションID428と対象者416の証明書をキーサーバ420に提供して、対象者416が鍵430を要求し、対象者416が有効なアサーション422をその要求の一部分として提出し、そしてその時に対象者416が鍵の提供を受けたことを確認するよう要求することで、問題は簡単に解決する。これにより、対象者416が、トランザクション424を開けるために実際に鍵430を使用したかどうかの問題のみが残る。しかし上述したように、トランザクション実行中の参加者412からの要求は、一般にソフトウェア(例えば、図3のソフトウェアモジュール26)によって扱われる。そのため、少なくとも対象者416に関しては、鍵430の受信とその使用を容易に自動化し、両方を同時に実行するようにすることができる。これにより、鍵430を受信した対象者416が、同じ鍵430を使用してトランザクション424を開いたであろうという、解決が非常に困難な推測ができる。
【0200】
キーサーバ420は、送信元414およびすべての対象者416のアサーション422をそのデータベース432内に永久に保存する。通信システム410がこれらのアサーション422をトランザクションID428と関連付けるため、データベース432を使用して、トランザクション424の起源であるイベントと、各トランザクション424の受信を再構成できる。これは、総合的な監査システムの基本として機能する。
【0201】
図16は、通信システム410が、後の否認防止および監査目的のために、データベース432内でデータを確立できる適切なプロセス450を示すフローチャートである。プロセス450はステップ452にて開始するが、ここで、認証オーソリティ418とキーサーバ420の存在が推測され、また、送信元414は、認証オーソリティ418からアサーション422を既に取得している。
【0202】
ステップ454では、キーサーバ420へ要求が送信される。多くの実施形態において、この要求は送信元414が直接行うであろうと予測されるが、しかし、技術上の理由からして送信元414の代理で仲裁者がこれを行なうこともできる(もちろん、これを許可しないための優れたポリシー上の理由があってよい)。この要求には、送信元414のアサーション422、予想されるトランザクション424に関する情報が含まれる(例えば表1参照)。先述したように、このような情報は少なくとも対象者416を証明し、さらに、このトランザクションについて許可される復号鍵430の公開回数および個数を設定することができる。送信元414が復号鍵430を提供した場合には、要求にさらにこの復号鍵430が含まれる。
【0203】
ステップ456では、キーサーバ420が、送信元414のアサーション422有効であるか否か(また、少なくとも最小のこれ以外の情報、例えば少なくとも1つの対象者416が証明されているといった情報が提供されているか否か)が判断される。有効でない場合には、ステップ458にて、キーサーバ420が、特定の実施形態にとって適切と思われる処置を実行する。判断の失敗は悪意のないエラーによって起こる可能性があるため、多くの実施形態では要求の修正を少なくとも1回は許可すると予想される。もちろん、キーサーバ420は、試みられた要求をすべてデータベース432に記録している。
【0204】
ステップ456で、プロセス450が継続すべきであると決定された場合、ステップ460にて、キーサーバ420がトランザクションID428(図中では“t−id”)を割り当て、これを送信元414のアサーション422、復号鍵430と共にデータベース432に保存する。設計または構成の問題として、暗号化鍵430と復号鍵430は同一であっても、同一でなくてもよい点を思い出されたし。これらの鍵が異なる場合、キーサーバ420は、所望であればその両方を保存できる。
【0205】
ステップ462にて、キーサーバ420が、トランザクションID428と、さらに暗号化鍵430を提供するのであればこれも一緒に提供することで要求に応答する。
【0206】
図16では、トランザクション424を暗号化、送信、受信するためのステップを示していない。簡略化の目的で、ここでは、これらをそのラベルが示すとおりに処理し、それ以降の詳細な説明を以下に示す。
【0207】
ステップ464では、対象者416がトランザクション424を受信し、認証オーソリティ418からアサーション424を既に取得していると仮定する。このステップにはさらに、キーサーバ420による別の要求の受信が含まれる。多くの実施形態では、この要求が対象者416によっても直接行われているが、しかし、技術上の理由からして仲裁者がこの要求を行うことも可能である。この要求には、トランザクション424および対象者416のアサーションと共に提供されたトランザクションID428も含まれる。
【0208】
ステップ466では、キーサーバ420が、対象者416のアサーション422が有効であるか否か(また、トランザクションID428が、現在対象者416が見ることを許可されているトランザクション424用のものであるか否か)を判断する。有効でない場合は、ステップ468にて、キーサーバ420が適切と思われる処置を実行する。ここでも、判断の失敗は悪意のないエラーによって起こる可能性があるため、多くの実施形態では要求の修正を少なくとも1回は許可すると予想される。しかし、キーサーバ420はここでも、試みの要求をすべてデータベース432に保存できる。
【0209】
ステップ466にて、プロセス450が継続すべきと判断された場合、ステップ470にて、キーサーバ420が対象者416のアサーション422をデータベースに保存され、トランザクションID428、対象者416の証明書と関連付けされる。
【0210】
ステップ472にて、キーサーバ420が、トランザクションID428に関連して保存してあった復号鍵430を取り出し、さらに、この復号鍵430を提供することでこの要求に応じる。
【0211】
最後に、ステップ474にて、プロセス450が終了する。この状態で、否認防止および監査の目的からデータベース432内にデータが確立されている。恐らく、しかし非常に高い確率で、通信システム410が対象者416について、要求/応答処理を自動化するソフトウェア(例えば、図3のソフトウェアモジュール26)を使用した場合、トランザクション424が復号化および表示される。
【0212】
上述したように、暗号化鍵430を使用する動作は、トランザクション424と送信元414を「暗号的に」バインドする。しかし、次に、これとは別の手法、およびこれら手法の適切な応用形、さらに代表的な例証について説明する。
【0213】
公開/秘密鍵システムを採用している場合、送信元414は、キーサーバ420に提出するアサーション422内に公開鍵(復号鍵430)を含めることができる。次に、送信元414が、関連の秘密鍵(暗号化鍵430)を使用してトランザクション424を暗号化することで、トランザクション424に効率的に「署名」するため、トランザクション424を否認することはできない。これは、PKIシステムが否認防止を達成する方法と概念上類似するが、この手法ではキーサーバ420を採用し、追加の恩恵の取得を許可している。
【0214】
暗号化と復号化の両方に1つの鍵を使用する場合には、送信元414とキーサーバ420が協働して、送信元414から送信されたトランザクション424を証明するための「シール」を作成できる。この手法には多数の応用形が可能であり、現在発明者が好ましいとする応用形を以下に示す。この中の多くの特徴はオプションである。
【0215】
ここでは、前述したように、送信元414がキーサーバ420からトランザクションID428と暗号化キー430を要求し、キーサーバ420がこれらと、鍵作成タイムスタンプ、送信元414の証明書を提供する。[一般にこの証明書は電子メールアドレスであるが、これに限定はされない。例えば、キーサーバ420が、送信元414を証明するためにその顧客番号を使用してもよい。多くの場合、送信元414は「その」証明を十分よく知っているが、キーサーバ420からこれを「オウム返し」し、その完全に同一のコピーを次のステージに使用することで、起こり得るエラーを回避できる。]次に、送信元414がトランザクション424のためのデータ、トランザクションID428、タイムスタンプ、証明書を組み合わせてハッシュを生成する。送信元414がこのハッシュを「ソルト」、つまりランダムに生成された数で暗号化し、この暗号化されたハッシュがシールになる。
【0216】
次に、送信元414がトランザクション424用のデータを暗号化し、これが対象者416に実際に送信されるものとなる。ここで、送信元414がシールとソルトを作成する点に留意すること。送信元414はシールをキーサーバ420に送信するが、トランザクションまたはソルトは送信しない。送信元414は各対象者416に、暗号化され、ソルトを含むが(好ましくは)シールを含まないトランザクション424を送信する。
【0217】
対象者416はこのトランザクションを受信すると、トランザクションID428とそのアサーション422をキーサーバ420に送信する。すべて整っていれば、キーサーバ420が復号鍵430、鍵作成タイムスタンプ、送信元414の証明書、シールを返送する。対象者416は、この復号鍵430トランザクション424を復号化し、ソルトにアクセスし、次に、送信元414がシール作成のために使用するプロセスを再度作成する。対象者416はトランザクション424用のデータ、トランザクションID428、タイムスタンプ、証明書を組み合わせてハッシュを生成する。続いて、このハッシュをソルトで暗号化する。その結果が、送信元414が作成し、現在キーサーバ420から提供されているシールと一致した場合には、送信元414はトランザクション424を否認できない。さらにこれにより、対象者416がトランザクション424と接続し、復号鍵430を使ってこれを暗号化し、後にこのトランザクション424が送信元414から送信されたものであると主張されることを防止できる。
【0218】
図17は、データベース432に確立されたデータを、送信元414が試みた否認に対抗するために使用する適切なプロセス480を示すフローチャートである。
【0219】
ステップ482にて、プロセス480が開始する。データはトランザクション424として既にデータベース432内に確立されていると仮定する。
【0220】
ステップ484にて、キーサーバ420、またはこれ以外の、少なくともデータベース432への読み出しアクセスを有するシステムに対して、送信元414を証明する要求が行われる。このような要求は、潜在的に対象者416、またはこのトランザクション424を何らかの方法で証明できる別の参加者から出される(もちろん、所望であればポリシーによってこれに制限を課すこともできる)。最も一般的には、トランザクションID428によって証明を行われるが、別のデータを使用して、データベース432を検索し、トランザクションID428を決定することができる(例えば、鍵430、アサーション422、実際のトランザクション実行中の参加者412証明情報、トランザクション424送信または受信回数など)。
【0221】
ステップ486にて、送信元414が最初に提供し、トランザクションID428に関連してこれまでずっと保存されていたアサーション422を検査することで、送信元414の証明が決定される。
【0222】
ステップ488にて、送信元414を検証することによりこの要求への返答が為される。しかし、この返答と実証の性質は多様な形式であってよい。例えば、この返答は単純に送信元414を証明するものであってもよい。あるいは、要求に注意すべき送信元414が含まれている場合、応答に「はい」または「いいえ」による返答のみを含め、実際の証明を提供しないようにしてもよい。恐らく適切な状況においてのみ(例えば裁判所の命令)、応答にトランザクション424用の復号鍵430を含めることもできる。または、やはり適切な状況においてのみであるが、要求に暗号化したトランザクション424を含めて、返答に復号化したトランザクション424を含めることも可能である。
【0223】
最後に、ステップ490にてプロセス480が終了する。送信元414はそれ以上、トランザクション424をもっともらしく否認することはできない。
【0224】
図18は、データベース432内に確立されたデータを、対象者416によって試みられた否認に対抗するべく使用するための、適切なプロセス500を示すフローチャートである。
【0225】
ステップ502において、プロセス500が開始する。トランザクション424のためにデータが既にデータベース432内に確立されていると仮定する。
【0226】
ステップ504において、その対象者416がトランザクション424を受信した旨を証明する要求が、キーサーバ420、または、少なくともデータベース432への読み出しアクセスを有する別のシステムに対して行われる。このような要求は送信元414、または対象のトランザクション424と推測される対象者416を同じ方法で証明できる他の参加者(ポリシー考察の対象)から出される。最も一般的には、証明はトランザクションID428によるものであるが、やはりここでも、データベース432の検索に、さらにこれ以外のデータを潜在的に使用することが可能である。
【0227】
ステップ506において、対象者416がトランザクション424を受信したか、これを特定の回数受信したか、またはこれを1つまたはそれ以上の特定回数受信したか否かを、対象者アサーション422と、トランザクションID428に関連して保存されていたこれ以外のデータ(例えば表1を参照)とを検査することによって判断する。対象者416のアサーション422を含んでいない場合、または、含んではいるが、他の基準が一致しない場合には、ステップ508において、対象者に適切な返答が行われる。
【0228】
あるいは、データベース432が、対象者416のアサーション422がトランザクションID428に関連して存在することを反映し、さらに、他の任意の基準が一致する場合には、ステップ510にて、この場合に要求に対して適切な返答が行われる。
【0229】
返答と、実証の性質は多様な形式であってよいと留意すべきである。例えば、返答は、対象者416が対象のトランザクション424用の復号鍵430を要求し、これが提供されたことを単純に実証するものであってよい。あるいは、その要求が行われ、実施形態が許可した場合、返答は、対象者416に復号鍵430が何回提供されたか、そしていつ提供されたかを知らせるものとなる。また、この返答は、恐らく適切な状況においてのみ、やはり復号鍵430を含むこともできる。または、この要求は、ここでもやはり恐らく適切な状況においてのみ、暗号化したトランザクション424を含むことができる。
【0230】
最後に、ステップ512において、プロセス500が終了する。この時点では、対象者416はトランザクション424をもっともらしく否認することはできない。
【0231】
送信元414と対象者416の間でのトランザクション424の通過を監査する場合には、データベース432にはこれに適した長いデータが含まれる。このようなデータがタイムスタンプと共に保存され、データベース432内に保存され続ける限り、監査要求への応答は、ルックアップとレポート生成の直接的なタスクであるべきである。
【0232】
これまで様々な実施形態について説明してきたが、これらが限定的ではなく、例示のみの方法で提示されたことを理解すべきである。したがって、好ましい実施形態の広がりおよび範囲は上述の例示的実施形態のいずれによっても制限されるべきでないが、添付の特許請求項およびその等価物に従ってのみ定義されるべきである。
【0233】
産業上の利用可能性
本明細書中で、セキュリティサーバシステム210、通信システム310、通信システム410を例にとって例証された本発明は、インターネットのような最新のネットワーク環境での使用に非常に適している。
【0234】
特にインターネットは、主として無制御および無規制のワイルドな未知の領域であるため、その使用には注意が必要であると広く考えられてきた。さらに、変化が迅速で、理解に限界があり、また、テクノロジーの実現が不十分であれば、恐らく最も精通した適任者でさえも危険にさらされてしまう環境としても広く考えられてきた。こうした考えが実際にどの程度正しいかはさておき、インターネット上での通信のセキュリティに関して言えば、その秘密性が危険にさらされ、その危険は増大していることは否定できない。
【0235】
本発明はメッセージを保護することで、秘密性、整合性、またはその両方を達成し;キーサーバイベントを使用してビジネスプロセスを実現し;そして、認証アサーションとキーサーバを使用して否認防止および監査を実現する。
【0236】
本発明は、通信文(例えば、メッセージやトランザクション)を送信する参加者と、このような通信文を受信する参加者の両方が容易に使用できる。これらの通信を行っている参加者は、自分が使用している何らかのハードウェア、例えばコンピュータ、インターネット機器などで、単純なソフトウェアモジュールを実行できる。
【0237】
本発明は、従来技術のシステムに伴うユーザにとっての複雑性を著しく克服する。主要なセキュリティ要素には、キーサーバに適したあらゆる手段により認証されたあらゆるユーザが、会話鍵を使用できるようにするものが挙げられる。これは単純なパスワード、デジタル証明書、生体認証などであってよい。この簡略化は、主流である最新の公開/秘密鍵スキームに対抗する目立ったものであり、この場合、送信者と受信者は互いの証明された公開鍵のディレクトリに頼らなければならず、すべての参加者がこのようなディレクトリに事前登録され、表示されている必要がある(ディレクトリは複数。これは、このようなシステムの競合オペレータが多数存在するためである)。さらに現在主流のスキームは、その初期設定の煩わしさ以上の理由で好まれていない。このスキームは、多くの場合数百桁もある複雑な鍵を使用するので保存することができず、このような複雑な事前に保存されている鍵にアクセスする何らかの手段を備えたシステム以外に使用できない。例えば、公共キオスクでの公開/秘密鍵システムの唯一実用的な使用方法は、ユーザが鍵保存装置用のハードウェア補助品、例えばスマートカードを採用するというものである。本発明の実施形態は、ハードウェア補助品が不要であり(場合により使用することは可能)、そして、ユーザを少しの事前設定システムのみに必ずしも「束縛」する必要がない。
【0238】
本発明はまた、既存のインターネット環境において容易かつ経済的に実現可能である。追加的な物を採用することはほとんどないか、全くない。セキュリティサーバまたはキーサーバを別のサーバハードウェアに組み込むことさえも可能である。本発明の実施形態の構成も、現在ソフトウェアおよび通信技術を実践している技術者の範囲内にある。本発明はさらに、その動作環境である、基礎となるインターネット環境に大きな変更を加える必要がない点に注目すべきである。送信者と受信者の間に通信が発生し、本質的に従来のものと同様に扱われ、従来の経路をとおり、本質的に標準の機材を使用する。
【0239】
本発明はまた、企業および他の組織が共同の通信を提供する増え続ける必要性を特に検討する。これを例証するためにセキュリティサーバシステム210を用いることにより、電子メール、インスタントメッセージング、ビデオ会議、マルチパーティ文書編集、これに関しては、メッセージヘッダ222とメッセージコンテンツ224を含む実質的にあらゆるメッセージ218をどのように安全化できるかについて説明してきた。潜在的に多数のコラボレーション参加者212によって会話を実施することができ、この会話では、関連するテーマについての多くのメッセージ218が安全かつ効率的に交換される。あるいは、コラボレーション参加者212は、このような共同会話で相互にやり取りするメッセージ218の送信元と宛先であってよい。セキュリティサーバシステム210は、会話の最中にレベルの高いセキュリティを維持し、メッセージコンテンツ224と、任意でさらにメッセージヘッダ222を安全化する。さらに、会話に参加・退出するコラボレーション参加者212を効率的に扱うことで、従来技術のシステムが果たせなかった基準化機能を提供することができる。
【0240】
本明細書中では、通信システム310を、キーサーバイベントを使用してビジネスプロセスを実現するためにどれほど適しているかを示す例として使い、本発明を説明してきた。説明したように、本発明は、通信文324の発信者314によって、または実際の発信者314に代わってこれらの設定を行う別の参加者によって使用される制御イベント340の組を使用する。次に、通信文324は暗号化された状態で1人またはそれ以上の受信者316へ送信される。受信者316が通信文324、制御イベント340への件名の表示を行おうとした場合に、正のイベントが記載される。あるいは、一人またはそれ以上の受信者316が表示の試みにさえ失敗したために、または、表示許可の前に行われる制御イベント340による確認に失敗したために、通信文324を見ることができなかった場合には、負のイベント344が記載される。
【0241】
正のイベント342と負のイベント344を再検査する能力、またはこれらに基づいて動作をトリガする機能は相当に実用的である。例えば、受信者316との通信を所望している、ビジネスおよび他のエンティティを代表する発信者314が、制御イベント340を使って、通信文324を最初にいつ見ることができるか、どのような頻度で見ることができるか、またいつまで見ることができるのかを指定できる。発信者314と他の適当な参加者は、正のイベント342に基づき、各受信者316がその通信文324をいつ、何回見たかを判断することができる。あるいは、発信者314と他の適当な参加者は、負のイベント342に基づいて、所与の受信者316による通信文324表示の試みが全く行われていない、または受信者316による通信文324表示の試みの失敗が全くないと判断することができる。
【0242】
再び背景技術部分の、金融ブローカー企業が、顧客が追加証拠金の通知を受け取ったかどうかを判断する必要がある場合の例に戻ると、従来技術のシステムが果たせない部分で本発明が容易に成果を発揮する様子を見ることができる。顧客(受信者316)は、通知(通信文324、例えば電子メール)を見る際に正のイベント342を自動的に作成しているので、通知の受信を確認上知らせる手間を負うことがない。さらに、ブローカー企業(発信者314)は、顧客が通知を読んだ旨の返答を迅速に受けることができ、それ以上の不必要な行動をとる手間を追うことがない。あるいは、顧客は、設定された期間中に通知の表示に失敗した際に負のイベント342を自動的に作成するので(制御イベント340)、ブローカー企業は適切な行動を起すことができる。
【0243】
本明細書中では、通信システム410を、認証アサーションとキーサーバを使用して否認防止および監査を実現するためにどれだけ適しているかを示す例として使い、本発明を例証してきた。説明したように、従来技術の手法は、デジタル通信の使用に伴うすべての懸念を検討していない。特に、トランザクションの否認防止および監査に伴う2つの特に厄介な問題について検討していない。
【0244】
本発明は、トランザクション実行中の参加者、トランザクション送信元、対象者に対して大いに透過的である。トランザクション実行中の参加者の認証された証明書を使用して、両方の参加者からの否認防止を実現する。さらに、トランザクション実行中の参加者からの情報、またはトランザクション実行中の参加者の完全な認証アサーションを継続的に保存することにより、同じシステムを用いて否認防止と監査の両方を提供できる。これに対して、既存の技術(例えば、公開鍵インフラストラクチャ、PKI)では、ユーザに秘密鍵を管理させ、これを署名生成のために活発に使用させる。さらに、トランザクションの検証を必要とするある参加者はトランザクション署名者のデジタル証明書のコピーを取得するか、あるいはトランザクション署名者のデジタル証明書を取り出さなくてはならない。さらに、このような既存の技術は、否認防止と監査の両方に有効な1つのサービスの提供を行わない。
【0245】
本発明に依然としてPKIを組み込むことはできるが、PKIが必要なわけではない。トランザクション送信元、対象者、またはその両方が、PKIを含む任意の方法を使用して、起源と受信の否認防止を行える。さらに、トランザクション送信元が用いる方法は、トランザクション対象者が用いる方法と同一であっても、違うものでもよい。これに対して、PKIに基づく技術では、すべての参加者(トランザクション送信者および対象者)が信頼するインフラストラクチャを使用する必要がある。さらに、非PKI技術(例えば、トランザクションログをデータベースに保存する)はPKIとは完全に異なる機構を使用し、PKIと相互動作することがない。
【0246】
本発明は、様々な度合いの強度を提供できる。これは、トランザクション実行中の参加者の認証に伴う強度の度合いに関連する。認証の強度を増すことで(例えば、uswerID/passwordから2ファクタ認証までにかけて)、トランザクション実行中の参加者が、否認防止強度をダイナミックかつ自動的に増加する。これに対し、多くの従来技術では、否認防止強度のレベルは1つしかない。例えば、PKIでは、否認防止の強度は、基本である証明書の確実性のレベルに等しい。ここでは、参加者は、異なる証明書を使用して、異なるレベルの確実性を得ることでしか強度の変更を行えない。
【0247】
本発明はまた、特定の信用規則を強化することができる。これにより、ビジネス関係に追随した柔軟な信用規則が可能になる。例えば、ある組織が、各トランザクション実行中の参加者を認証する規則を強化することにより、自己の認証アサーションのみを信頼する規則を強化できる。または、組織は、自己のキーサーバを所有および管理する規則を強化することにより、自己の監査サーバのみを信頼する規則を強化することが可能である。これに対して、多くの従来技術は、否認防止と監査のための、柔軟性のない信頼規則しか提供できない。ここで再びPKIを例に用いると、これに基づいたシステムにおいて、取引の証明を行う参加者は、署名者の証明書を信頼するしかない。従来技術による非PKIに基づくシステムでは、証明者は、トランザクションログを維持するシステムを信頼するしかない。
【0248】
上述の、およびそれ以外の理由から、本発明は産業に幅広く適用されると予測され、かつ、本発明の商業的実用性は広範囲にわたり、長期間継続するであろうと予測される。
【0249】
テーブル1は、 キーサーバが管理するデータベースのコンテンツのスキーマである。
【図面の簡単な説明】
【0250】
【図1】例証的なセキュア電子メールシステムに関係する情報の総体的な流れを示す略概外観図である。
【図2a】図1の実施例で使用できる電子メールフォームを示し、従来の送信フォームである。
【図2b】図1の実施例で使用できる電子メールフォームを示し、図1の実施形態と協働するよう変更した送信フォームである。
【図2c】図1の実施例で使用できる電子メールフォームを示し、従来の受信フォームである。
【図3】図1の送信および受信ユニットで使用できるソフトウェアモジュールを示すブロック図である。
【図4】セキュア電子メールが受信されたものか、受信されたものかを判断するためのソフトウェアモジュールの手法を様式的に示すブロック図である。
【図5】図1のセキュリティサーバが使用できるテーブルを含むリレーショナルデータベースの図である。
【図6a】ここで使用するフィールドの記述を備えた図5のテーブルであり、ユーザデータのテーブルである。
【図6b】ここで使用するフィールドの記述を備えた図5のテーブルであり、メッセージデータのテーブルである。
【図6c】ここで使用するフィールドの記述を備えた図5のテーブルであり、宛先データのテーブルである。
【図6d】ここで使用するフィールドの記述を備えた図5のテーブルであり、ユーザ用のエイリアスデータのテーブルである。
【図6e】ここで使用するフィールドの記述を備えた図5のテーブルであり、図6eはオプションの配布リストデータのテーブルである。
【図6f】ここで使用するフィールドの記述を備えた図5のテーブルであり、こうした配布リストのメンバーデータのテーブルである。
【図7】図1の実施形態で使用できる暗号化プロセスを示すフローチャートである。
【図8】図1の実施形態で使用できる復号化プロセスを示すフローチャートである。
【図9】安全なコラボレーションおよび鍵交換のための一般的な実施形態の主要構成要素を示す略ブロック図である。
【図10】図9の一般的形態における典型的なメッセージの流れを示す概略ブロック図である。
【図11】4つの基本構成要素を使用するプロセスイベントを決定できる通信システムのブロック図である。
【図12】制御イベントに関連した情報の流れを示すブロック図である。
【図13】正のイベントに関連した情報の流れを示すブロック図である。
【図14】負のイベントに関連した情報の流れを示すブロック図である。
【図15】通信システムの別の実施形態が4つの基本構成要素を使用する様子を示すブロック図である。
【図16】図15の通信システムが、後の否認防止および監査目的のために、データベース内にデータを確立するために使用できる、適切なプロセスを示すフローチャートである。
【図17】送信元による否認の試みに対抗するために、データベース内に確立されたデータを使用できる適切なプロセスを示すフローチャートである。
【図18】対象者による否認の試みに対抗するために、データベース内に確立されたデータを使用できる適切なプロセスを示すフローチャートである。
【特許請求の範囲】
【請求項1】
複数の参加者間でメッセージを安全に通信するシステムであって、前記メッセージがメッセージヘッダとメッセージコンテンツを有し、前記システムが、
前記参加者どうしをネットワーク経由で接続し、前記参加者間で、前記メッセージをメッセージヘッダに基づき伝送するメッセージルータ;および
会話鍵を保存し、前記参加者に公開するキーサーバを含み、前記会話鍵が、前記メッセージのメッセージコンテンツを保護するために使用されることを特徴とするシステム。
【請求項2】
前記保護が、暗号化とハッシングで構成される組のうち少なくとも1つの構成要素を含む、請求項1記載のシステム。
【請求項3】
前記メッセージを送信する前記参加者が送信元参加者であり;
前記メッセージを受信する前記参加者が宛先参加者であり;
前記キーサーバが新規の前記会話キーを、前記送信元参加者による要求に基づいて前記送信元参加者に公開し、これにより、前記送信元参加者がメッセージのメッセージコンテンツを、前記新規の前記会話鍵で保護することが可能になる、請求項1記載のシステム。
【請求項4】
前記キーサーバが、1つの前記要求に基づいて複数の前記新規の前記会話鍵を公開し、これにより、前記キーサーバに対して、前記会話鍵を公開するよう所望の度に要求する必要が回避される、請求項3記載のシステム。
【請求項5】
前記メッセージを送信する前記参加者が送信元参加者であり;
前記メッセージを受信する前記参加者が宛先参加者であり;
前記キーサーバが、前記送信元参加者による要求に基づいて、前記送信元参加者から新規の前記会話鍵を受領し、これにより前記キーサーバに前記会話鍵を提供し、前記キーサーバはこれを保存し、その後、前記宛先参加者に対して公開する、請求項1記載のシステム。
【請求項6】
前記キーサーバが、1つの前記要求に基づいて複数の前記新規の前記会話鍵を公開し、これにより、前記キーサーバに対して、前記会話鍵を提供するよう所望の度に要求する必要が回避される、請求項5記載のシステム。
【請求項7】
前記キーサーバが、前記宛先参加者による要求と、前記送信元参加者による許可とに基づいて、既存の前記会話鍵を前記宛先参加者に公開し、これにより、前記宛先参加者が、前記既存の前記会話鍵を使ってメッセージのメッセージコンテンツを処理できるようになる、請求項1記載のシステム。
【請求項8】
前記会話鍵に一意の識別子が関連付けられ、これにより前記宛先参加者が、メッセージのメッセージコンテンツを処理するために特定の前記会話鍵を要求する際に、前記キーサーバに前記識別子を提供できるようになる、請求項1記載のシステム。
【請求項9】
前記メッセージルータが、ヘッダ鍵を作成し、保存し、前記参加者に公開し、前記ヘッダ鍵が、メッセージのメッセージヘッダを保護するために使用される、請求項1記載のシステム。
【請求項10】
前記ヘッダ鍵が、セキュアソケットレイヤとトランスポートレイヤセキュリティで構成される組のうち一方の構成要素に基づいている、請求項9記載のシステム。
【請求項11】
前記ヘッダ鍵が、参加者のそれぞれで異なっている、請求項9記載のシステム。
【請求項12】
会話が、複数の主題的に関連したメッセージのインスタンスの交換であり;
会話参加者が、前記会話に参加している参加者の組の構成要素であり;
前記会話参加者が、前記会話の、参加しているセッション期間中に、メッセージルータと少なくとも1つの継続的な接続を維持し;そして
前記ヘッダ鍵が前記それぞれのセッションで異なっている、請求項11記載のシステム。
【請求項13】
前記メッセージルータが、参加者の一人から、前記会話鍵を要求するメッセージのインスタンスを受信し、これを前記キーサーバへ送ることができ、さらに前記メッセージルータが前記キーサーバから、前記会話鍵を含んだメッセージのインスタンスを受信し、これを参加者の一人に送信することができ、これにより、前記キーサーバから参加者への前記会話鍵の公開が促進される、請求項1記載のシステム。
【請求項14】
前記会話鍵を要求する前記メッセージのインスタンスが、鍵要求メッセージであり;そして
前記メッセージルータが、前記鍵要求メッセージのメッセージヘッダに基づいて、前記鍵要求メッセージを前記キーサーバに通信するか否かを決定する、請求項13記載のシステム。
【請求項15】
会話が、複数の主題的に関連したメッセージのインスタンスの交換であり;
会話参加者が、前記会話に参加している参加者の組のあるメンバーであり;
参加する参加者が、前記会話に参加しようとしている潜在的な前記会話参加者であり;
退出する参加者が、前記会話への参加を止めようとしている既存の前記会話参加者であり;
前記キーサーバが、前記会話のメッセージ内のサブセットのメッセージコンテンツを保護するための1つまたはそれ以上の前記会話鍵を作成し、保存し、公開し;そして
前記メッセージルータが前記キーサーバに、前記会話に前記参加する参加者または前記退出する参加者がいるか否かに基づいて、新規の前記会話鍵を今から公開するよう指示する、請求項13記載のシステム。
【請求項16】
ネットワーク内で、複数の参加者間でメッセージを安全に通信する方法であって、メッセージを送信する前記参加者が送信元参加者であり、メッセージを受信する参加者が宛先参加者であり、そして、メッセージがメッセージヘッダとメッセージコンテンツを備えており、前記方法が、
(a)送信元参加者にて:
(1)会話鍵を取得し;
(2)前記メッセージのメッセージコンテンツを、前記会話鍵に基づいて保護し、前記保護が、暗号化とハッシングで構成された組のうち少なくとも1つの構成要素を含み;そして
(3)前記メッセージをネットワークを介して宛先参加者に送信し;そして
(b)宛先参加者にて:
(1)ネットワークを介して、前記送信元参加者から前記メッセージを受信し;
(2)やはりネットワーク内にあるキーサーバから前記会話鍵を取得し;そして、
(3)前記メッセージのメッセージコンテンツを、前記会話鍵に基づいて処理する(ここで前記処理は、復号とハッシュ分析のうちの少なくとも1つを含む)ことを特徴とする方法。
【請求項17】
前記会話鍵が前記キーサーバで作成され、前記ステップ(a)(1)にて前記送信元参加者へ通信が行われる、請求項16記載の方法。
【請求項18】
複数の前記会話鍵が前記キーサーバで作成され、前記送信元参加者へ同時に通信が行われ、これにより、所望の度に、前記キーサーバに前記会話鍵を公開するよう要求する必要が回避される、請求項17記載の方法。
【請求項19】
前記会話鍵が前記送信元参加者で作成され、前記ステップ(b)(2)の前に前記キーサーバへ通信が行われる、請求項16に記載の方法。
【請求項20】
複数の前記会話鍵が送信元参加者において作成され、前記キーサーバへ同時に通信が行われ、これにより、所望の度に、前記会話鍵を提供するよう送信者参加者に要求する必要が回避される、請求項19記載の方法。
【請求項21】
前記ステップ(a)(1)の前に、前記キーサーバにおいて、一意の識別子を前記会話鍵と関連付け;そして
前記ステップ(b)(2)と同時に、宛先参加者の各々について、前記会話鍵が、前記一意の識別子に基づいて各々の宛先参加者に公開されることをさらに含む、請求項19記載の方法。
【請求項22】
前記ステップ(a)(3)の前に、前記メッセージのメッセージヘッダをヘッダキーに基づいて保護し;
前記ステップ(a)(3)の後、前記ステップ(b)(1)の前に、やはりネットワーク内のメッセージルータにて、
メッセージを受信し;
メッセージヘッダを前記ヘッダキーに基づいて処理し;
前記メッセージヘッダを異なる前記ヘッダ鍵に基づいて保護し;そして
前記メッセージを、ネットワーク上で、これよりも先の宛先参加者へ送信し;そして
前記ステップ(b)(1)の後に、前記メッセージのメッセージヘッダを前記異なる前記ヘッダ鍵に基づいて処理することをさらに含む、請求項19記載の方法。
【請求項23】
前記ヘッダ鍵のうち少なくとも1つが、セキュアソケットレイヤとトランスポートレイヤセキュリティで構成されている組の構成要素に基づいている、請求項22記載の方法。
【請求項24】
すべての前記ヘッダ鍵が前記参加者のそれぞれで異なっている、請求項22記載の方法。
【請求項25】
会話が複数の主題的に関連したメッセージのインスタンスの交換であり、会話参加者が前記会話に参加する参加者の組の構成要素であり、前記方法が、
前記会話参加が参加している会話の各セッションの期間中、前記メッセージルータとの少なくとも1つの継続的な接続を維持し;そして
前記セッションのそれぞれに異なる前記ヘッダ鍵を使用する、ことをさらに含む、請求項24記載の方法。
【請求項26】
前記ステップ(a)(1)と前記ステップ(b)(2)が、やはりネットワーク内にあるメッセージルータを介して、前記キーサーバから前記会話鍵を要求する参加者を含む、請求項19記載の方法。
【請求項27】
前記会話鍵を要求するメッセージのインスタンスが、鍵要求メッセージであり、前記方法が、
前記メッセージルータが、前記鍵要求メッセージを前記キーサーバに通信するか否かを、前記鍵要求メッセージのメッセージヘッダに基づいて決定することをさらに含む、請求項26記載の方法。
【請求項28】
会話が複数の主題的に関連したメッセージのインスタンスの交換であり、会話参加者が前記会話に参加する参加者の組の構成要素であり、参加する参加者が前記会話に参加しようとしている潜在的な前記会話参加者であり、退出する参加者が前記会話を離れようとしている既存の前記会話参加者であり、前記方法が、
前記メッセージルータが、前記会話が前記参加する参加者または前記退出する参加者を含むか否かに基づいて、新規の前記会話鍵を今から公開するよう前記キーサーバに指示することをさらに含む、請求項26記載の方法。
【請求項29】
通信イベントを決定するシステムであって、
通信を行っている参加者に鍵を公開するキーサーバを含み、ここで前記鍵が、通信文を暗号化する暗号鍵、または復号化する復号鍵であり、前記通信を行っている参加者が、通信文を作成しようとしている発信者と、前記通信文を見ようとしている受信者とを含み;そして
前記通信文の各々について、前記キーサーバが
識別子を割り当て;
前記識別子、対応する前記復号鍵、対応する制御イベントを含んだ記録をデータベースに保存し;
前記復号鍵のために、0、1つ、またはそれ以上の要求を受信し、前記要求が前記識別子を含み;そして
前記制御イベント、前記要求の受信数、いずれかの前記要求が受信された日時に基づいて、正のイベントと負のイベントで構成された少なくとも1つの構成要素を決定することを含むことを特徴とするシステム。
【請求項30】
前記暗号鍵と前記復号鍵が同一である、請求項29記載のシステム。
【請求項31】
前記暗号鍵と前記復号鍵が異なる、請求項29記載のシステム。
【請求項32】
前記キーサーバが前記キーを生成することができる、請求項29記載のシステム。
【請求項33】
前記キーサーバが前記鍵を外部の送信元から受信できる、請求項29記載のシステム。
【請求項34】
前記外部送信元が前記発信者である、請求項33記載のシステム。
【請求項35】
前記キーサーバが、前記鍵を公開する前にアサーションを要求する、請求項29記載のシステム。
【請求項36】
前記制御イベントの少なくともいくつかが、前記発信者によって提供された属性に基づいて定義される、請求項29記載のシステム。
【請求項37】
後の前記通信に使用するだろうという推測のもとに、前記制御イベントの少なくともいくつかが前記データベースに事前に保存されている、請求項29記載のシステム。
【請求項38】
前記制御イベントの少なくともいくつかが、前記発信者以外の参加者から受信した属性に基づいて決定される、請求項37記載のシステム。
【請求項39】
前記制御イベントが、前記復号鍵を公開できるようになる時間を特定し、これにより、前記受信者が前記通信文を復号化できるようになるまでの遅延期間を特定する、請求項29記載のシステム。
【請求項40】
前記制御イベントが、それ以降は前記復号鍵が公開不能になる時間を特定し、これにより、その後は前記受信者がもはや前記通信文を復号化できなくなる失効日を特定する、請求項29記載のシステム。
【請求項41】
前記制御イベントが、前記復号鍵が前記受信者に公開されるべき回数を特定し、これにより、前記受信者が前記通信文を復号化できる回数を制限する、請求項29記載のシステム。
【請求項42】
前記キーサーバが、前記受信者のためのアサーションを要求し;そして
前記制御イベントが、前記復号鍵を前記受信者に公開する前に満たさなければならない少なくとも1つの条件を特定する、請求項29記載のシステム。
【請求項43】
前記キーサーバが、前記正のイベントまたは前記負のイベントのうち少なくとも1つに関するデータを、前記発信者と他のエンティティの内少なくとも一方に通信する、請求項29記載のシステム。
【請求項44】
前記他のエンティティが通知サーバである、請求項43記載のシステム。
【請求項45】
通信イベントを決定する方法であって、前記方法が、
(a)前記通信文を証明するためにリソースIDの第1の要求を受信し、前記第1の要求が、前記通信文の目的受信者の少なくとも1つの証明書を含み;
(b)少なくとも1つの制御イベントを定義し、前記制御イベントが前記少なくとも1つの証明書を含み;
(c)前記第1の要求に応答して前記リソースIDを提供し;
(d)前記リソースIDと、前記制御イベントと、前記通信を復号化するための復号鍵とを保存し;
(e)前記復号鍵のための第2の要求を監視し、前記第2の要求が前記リソースIDを含み、推定上の前記目的受信者の情報を証明し;
(f)前記第2の要求が受信されると、これが前記制御イベントと一致するか否かを決定し、そして
(1)一致する場合は、
(i)前記第2の要求に応答して前記復号鍵を提供し;そして
(ii)前記証明情報と正のイベントを前記リソースIDに関連して保存し、
(2)一致しない場合は;負のイベントを前記リソースIDに関連して保存し;そして
(g)あるいは、前記目的とする受信者についての前記第2の要求が受信されない場合、負のイベントを前記リソースIDに関連して保存することを特徴とする方法。
【請求項46】
前記ステップ(c)が暗号鍵を提供することを含む、請求項45記載の方法。
【請求項47】
前記暗号鍵と前記復号鍵が同一である、請求項46に記載の方法。
【請求項48】
前記暗号鍵と前記復号鍵が異なる、請求項46に記載の方法。
【請求項49】
前記第1の要求が認証アサーションを含み、前記ステップ(a)が、前記ステップ(c)で前記リソースIDを提供する前に、前記認証アサーションを検証する、請求項45記載の方法。
【請求項50】
前記制御イベントの少なくともいくつかが、前記通信の発信者が提供した属性に基づいて定義される、請求項45記載の方法。
【請求項51】
前記制御イベントの少なくともいくつかが、通信においてその後の使用を予測して、前記ステップ(a)の前にあらかじめ保存される、請求項45記載の方法。
【請求項52】
前記制御イベントの少なくともいくつかが、前記発信者以外の参加者から受信した属性に基づいて決定される、請求項51記載の方法。
【請求項53】
前記制御イベントが、前記復号鍵が前記受信者に公開可能となる時間を特定する、請求項45記載の方法。
【請求項54】
前記制御イベントが、前記復号鍵が前記受信者に公開不能となる時間を特定する、請求項45記載の方法。
【請求項55】
前記制御イベントが、前記復号鍵を前記受信者に公開できる回数を特定する、請求項45記載の方法。
【請求項56】
前記第2の要求が、前記証明情報を含んだ認証アサーションを有し、ステップ(f)が、前記復号鍵の提供の前に、前記認証アサーションを検証する、請求項45記載の方法。
【請求項57】
前記正のイベントと前記負のイベントの少なくとも1つに関するデータを、前記通信文の発信者と他のエンティティの内少なくとも1つへ通信するステップ(h)をさらに含む、請求項45記載の方法。
【請求項58】
前記別のエンティティが通知サーバである、請求項57記載の方法。
【請求項59】
トランザクション送信元とトランザクション対象者が、否認不可能なトランザクションを交換する方法であって、方法が、
(a)前記トランザクションを証明するためにトランザクション識別子の第1の要求を受信し、前記要求が送信元認証アサーションを含み;
(b)前記送信元認証アサーションを検証し;
(c)前記トランザクション識別子と前記送信元認証アサーションからの情報とを保存し、これによりトランザクション送信元が、前記トランザクションの暗号化および送信の後に、もっともらしく否認できないようにする情報を確立し;
(d)前記第1の要求に応答して前記トランザクション識別子を提供し、これにより、前記トランザクションと前記トランザクション識別子が前記トランザクション対象者へ送信され;
(e)前記トランザクション対象者がトランザクションを受信すると、これを復号化するための復号鍵の第2の要求を受信し;前記第2の要求が、前記トランザクション識別子と対象者認証アサーションを含み;
(f)前記対象者認証アサーションを検証し;
(g)前記対象者認証アサーションからの情報を、トランザクション識別子と共に保存し;そして
(h)前記第2の要求に応答して前記復号鍵を提供することでトランザクションの復号化が可能になり、これにより、トランザクション対象者がトランザクションの受信者であることをもっともらしく否認することを不可能にする情報を確立することを含むことを特徴とする方法。
【請求項60】
前記ステップ(d)が、トランザクションを暗号化するための暗号鍵を提供することも含む、請求項59記載の方法。
【請求項61】
前記方法が、
(i)トランザクション送信元に関する送信元情報の情報要求を受信し、前記情報要求が前記トランザクション識別子を含み;
(j)前記ステップ(c)で、前記トランザクション識別子と共に保存された前記送信元認証アサーションからの前記情報を少なくともいくつか取り出し、ここから前記送信元情報を決定し;さらに、
(k)前記情報要求に応答して前記送信元情報を提供する、ことをさらに含む、請求項59記載の方法。
【請求項62】
前記方法が、
(i)対象者情報の情報要求を受信し、前記情報要求が前記トランザクション識別子と、前記トランザクションターゲットを証明する情報を含んでおり;
(j)トランザクション対象者を証明する前記情報が、前記ステップ(g)で保存されたトランザクション識別子と共に保存されている前記対象者認証アサーションからの前記情報のいずれかと一致するか否かを決定し、これから前記対象者情報を決定し;そして
(k)前記情報要求に応じて前記対象者情報を提供する、ことをさらに含む、請求項59記載の方法。
【請求項63】
トランザクションを、前記トランザクションの起源であるトランザクション送信元による否認防止可能として確立する方法であって、前記方法が、
(a)前記トランザクションを証明するためのトランザクション識別子の要求を受信し、前記要求が送信元認証アサーションを含み;
(b)前記送信元認証アサーションを検証し;
(c)前記トランザクション識別子と前記送信元認証アサーションからの情報とを保存し;そして
(d)前記要求に応答して前記トランザクション識別子を提供し、これにより、トランザクション送信元が前記トランザクションの起源であることをもっともらしく否認できないようにする情報を確立することを含むことを特徴とする方法。
【請求項64】
前記ステップ(d)が、前記トランザクションを暗号化するための暗号鍵を提供することも含む、請求項63記載の方法。
【請求項65】
前記方法が、
(e)トランザクション送信元に関する送信元情報について情報要求を受信し、ここで前記情報要求が前記トランザクション識別子を含み;
(f)ステップ(c)で前記トランザクション識別子とともに保存された前記送信元認証アサーションから前記情報の少なくともいくつかを取り出し、ここから前記送信元情報を決定し;そして
(g)前記情報要求に応答して前記送信元情報を提供する、ことを含む、請求項63記載の方法。
【請求項66】
前記送信元情報が、トランザクション送信元が実際に誰であるかを表している、請求項65記載の方法。
【請求項67】
前記ステップ(e)で受信された前記情報要求が、トランザクション送信元であると思われる参加者を証明する情報も含み;
前記ステップ(g)で提供された前記送信元情報が、前記参加者がトランザクション送信元であるか否かのみを表しているため、特にトランザクション送信元を証明することなく、前記情報要求に応答する、請求項65記載の方法。
【請求項68】
前記ステップ(c)がまた、トランザクションの復号化に使用できる復号鍵も保存し;そして
ステップ(g)が、前記復号鍵も提供し、これにより、前記情報要求を行った参加者が、たとえ前記参加者がトランザクション送信元またはトランザクションの対象者でない場合でも、トランザクションの復号化を容易に実施できるようになる、請求項65記載の方法。
【請求項69】
前記ステップ(e)で受信された前記情報要求がトランザクションも含み;そして
前記ステップ(g)が、前記情報要求に応答して前記送信元情報を提供する前に、前記トランザクションを復号化することを含む、請求項65記載の方法。
【請求項70】
前記ステップ(e)で受信された前記情報要求がトランザクション送信元であると思われる参加者を証明する情報も含み;そして
前記ステップ(g)で提供された前記送信元情報が、前記参加者がトランザクション送信元であるか否かのみを示しており、これにより、前記トランザクション送信元を特に証明することなく前記第2の要求に応じる、請求項69記載の方法。
【請求項71】
前記ステップ(g)が、前記情報要求への前記応答に、復号化した形式のトランザクションを提供することも含み、これにより、前記情報要求を行っている参加者が、トランザクション送信元またはトランザクションの対象者でない場合でも、トランザクションのコンテンツを確認できるようになる、請求項69記載の方法。
【請求項72】
トランザクションを、前記トランザクションの受信者であるトランザクション対象者による否認防止可能として確立する方法であって、トランザクション識別子がトランザクションを識別し、復号鍵が、あらかじめ保存されているトランザクションを復号化することが不可能であり、前記方法が、
(a)復号鍵の要求を受信し、ここで前記要求がトランザクション識別子と対象者認証アサーションとを含み;
(b)前記対象者認証アサーションを検証し;
(c)前記対象者認証アサーションからの情報を前記トランザクション識別子と共に保存し;そして
(d)前記要求に応答して前記復号鍵を提供し、これにより、トランザクション対象者がトランザクションの受信者であることをもっともらしく否認できないようにする情報を確立することを含むことを特徴とする方法。
【請求項73】
前記方法が、
(e)対象者情報の情報要求を受信し、ここで前記情報要求が前記トランザクション識別子と、トランザクション対象者を証明する情報とを含み;
(f)前記ステップ(c)にて前記トランザクション識別子と共に保存された前記対象者認証アサーションからの前記情報の少なくともいくつかを取り出し、これから前記対象者情報を判断し;そして
(g)前記情報要求に応答して前記対象者情報を提供する、ことをさらに含む、請求項72記載の方法。
【請求項74】
前記ステップ(g)が前記復号鍵を提供することも含み、これにより、前記情報要求を行っている参加者が、たとえトランザクション送信元またはトランザクション対象者でない場合にも、トランザクションの復号化を容易に実施できるようになる、請求項73記載の方法。
【請求項75】
前記ステップ(e)で受信された前記情報要求がトランザクションも含み;そして
前記ステップ(g)が、前記識別情報を提供する前に、前記トランザクションを復号化する、請求項73記載の方法。
【請求項76】
前記ステップ(g)が、前記情報要求への前記応答において、復号形式の前記トランザクションを提供することも含み、これにより、前記情報要求を行っている参加者が、トランザクション送信元またはトランザクション対象者でない場合にも、トランザクションのコンテンツを確認することが容易になる、請求項75記載の方法。
【請求項77】
トランザクション送信元とトランザクション対象者がトランザクションを交換する、否認不可能なシステムであって、
コンピュータ化されたキーサーバ含み;
前記キーサーバが、トランザクション識別子を要求する第1の要求をネットワーク経由で受信するのに適しており、ここで前記第1の要求が送信元認証アサーションを含み;
前記キーサーバが、前記トランザクションの復号化に使用する復号鍵を要求する第2の要求をネットワーク経由で受信するのに適しており、ここで前記第2の要求が、前記トランザクション識別子と対象者認証アサーションとを含み;
前記キーサーバが、前記送信元認証アサーションと前記対象者認証アサーションとを検証するのに適しており;
前記キーサーバが、前記トランザクション識別子と、前記送信元認証アサーションからの情報とを、前記対象者アサーションからの情報に関連してデータベースに保存するのに適しており;
前記キーサーバが、前記第1の要求に対して、前記トランザクション識別子を含む第1応答を、前記ネットワーク経由で提供するのに適しており;そして
前記キーサーバが、前記第2の要求に対して、前記復号鍵を含む第2応答を、前記ネットワーク経由で提供するのに適しており、これにより、トランザクション送信元が、前記トランザクションの暗号化および送信した後に、もっともらしく否認することを不可能にし、前記トランザクション対象者が、前記復号鍵を提供された後に、もっともらしく否認することを不可能にする情報を確立することを特徴とするシステム。
【請求項78】
前記キーサーバがさらに、前記トランザクションを暗号化するための暗号鍵を前記第1応答において提供するのに適している、請求項77記載のシステム。
【請求項79】
前記キーサーバがさらに、前記トランザクション送信元に関する送信元情報の情報要求を受信するのに適しており、ここで前記情報要求が前記トランザクション識別子を含み;
前記キーサーバがさらに、前記データベースから、前記トランザクション識別子と共に保存されている、前記送信元認証アサーションからの前記情報を取り出し、ここから前記送信元情報を判定するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応答して前記送信元情報を提供するのに適している、請求項77記載の方法。
【請求項80】
前記キーサーバがさらに、対象者についての情報要求を受信するのに適しており、ここで前記情報要求が、前記トランザクション識別子と、前記トランザクション対象者を識別する情報とを含み;
前記キーサーバがさらに、前記トランザクション対象者を証明する前記情報が、トランザクション識別子と共に保存された前記対象者認証アサーションからの前記情報のいずれかと一致するか否かを判断し、ここから前記対象者情報を判断するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応じて前記対象者情報を提供するのに適している、請求項77記載のシステム。
【請求項81】
トランザクションを、その起源であるトランザクション送信元による認証否認可能として確立するシステムであって、
コンピューター化されたキーサーバを含み、
前記キーサーバが、トランザクションを識別するトランザクション識別子の要求をネットワーク経由で受信するのに適しており、ここで前記要求が送信元認証アサーションを含み;
前記キーサーバが、前記送信元認証アサーションを検証するのに適しており;
前記キーサーバが、前記トランザクション識別子と、前記送信元認証アサーションからの情報をデータベースに保存するのに適しており;そして
前記キーサーバが、前記トランザクション識別子を含んだ返答を前記ネットワーク経由で提供し、これにより、前記トランザクション送信元が、前記トランザクションを暗号化および送信した後で、もっともらしく否認することを不可能にする情報を確立するのに適していることを特徴とするシステム。
【請求項82】
前記キーサーバがさらに、前記返答に含まれたトランザクションを暗号化するための暗号鍵を提供するのに適している、請求項81記載のシステム。
【請求項83】
前記キーサーバがさらに、トランザクション送信元に関する送信元情報の要求を受信するのに適しており、ここで前記情報要求が前記トランザクション識別子を含み;
前記キーサーバがさらに、前記トランザクション識別子と共に保存されている前記送信元認証アサーションからの情報を、前記データベースから取り出し、ここから前記送信元情報を判断するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応答して前記送信元情報を提供するのに適している、請求項81記載のシステム。
【請求項84】
トランザクションを、その受信者であるトランザクション対象者による否認防止可能として確立するシステムであって、ここでトランザクション識別子がトランザクションを識別し、前記トランザクションの復号化に使用される復号鍵がデータベース内にあらかじめ保存されており、前記システムが、
コンピュータ化されたキーサーバを含み、
前記キーサーバが、前記復号鍵の要求をネットワーク経由で受信するのに適しており、ここで前記要求が前記トランザクション識別子と対象者認証アサーションとを含み;
前記キーサーバが、前記対象者認証アサーションを検証するのに適しており;
前記キーサーバが、前記対象者認証アサーションからの情報を、前記トランザクションと共にデータベース内に保存するのに適しており;
前記キーサーバが、前記復号鍵を含んだ返答を、前記ネットワーク経由で提供し、これにより、前記トランザクション対象者がもっともらしく否認することを不可能にする情報を確立するのに適していることを特徴とするシステム。
【請求項85】
前記キーサーバがさらに、対象者情報についての情報要求を受信するのに適しており、ここで前記情報要求が、前記トランザクション識別子と、前記トランザクション対象者を証明する情報とを含み;
前記キーサーバがさらに、前記トランザクション識別子と共に保存されている前記対象者認証アサーションから前記情報の少なくともいくつかを取り出し、ここから前記対象者情報を判断するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応答して前記対象者情報を提供するのに適している、請求項84記載のシステム。
【請求項1】
複数の参加者間でメッセージを安全に通信するシステムであって、前記メッセージがメッセージヘッダとメッセージコンテンツを有し、前記システムが、
前記参加者どうしをネットワーク経由で接続し、前記参加者間で、前記メッセージをメッセージヘッダに基づき伝送するメッセージルータ;および
会話鍵を保存し、前記参加者に公開するキーサーバを含み、前記会話鍵が、前記メッセージのメッセージコンテンツを保護するために使用されることを特徴とするシステム。
【請求項2】
前記保護が、暗号化とハッシングで構成される組のうち少なくとも1つの構成要素を含む、請求項1記載のシステム。
【請求項3】
前記メッセージを送信する前記参加者が送信元参加者であり;
前記メッセージを受信する前記参加者が宛先参加者であり;
前記キーサーバが新規の前記会話キーを、前記送信元参加者による要求に基づいて前記送信元参加者に公開し、これにより、前記送信元参加者がメッセージのメッセージコンテンツを、前記新規の前記会話鍵で保護することが可能になる、請求項1記載のシステム。
【請求項4】
前記キーサーバが、1つの前記要求に基づいて複数の前記新規の前記会話鍵を公開し、これにより、前記キーサーバに対して、前記会話鍵を公開するよう所望の度に要求する必要が回避される、請求項3記載のシステム。
【請求項5】
前記メッセージを送信する前記参加者が送信元参加者であり;
前記メッセージを受信する前記参加者が宛先参加者であり;
前記キーサーバが、前記送信元参加者による要求に基づいて、前記送信元参加者から新規の前記会話鍵を受領し、これにより前記キーサーバに前記会話鍵を提供し、前記キーサーバはこれを保存し、その後、前記宛先参加者に対して公開する、請求項1記載のシステム。
【請求項6】
前記キーサーバが、1つの前記要求に基づいて複数の前記新規の前記会話鍵を公開し、これにより、前記キーサーバに対して、前記会話鍵を提供するよう所望の度に要求する必要が回避される、請求項5記載のシステム。
【請求項7】
前記キーサーバが、前記宛先参加者による要求と、前記送信元参加者による許可とに基づいて、既存の前記会話鍵を前記宛先参加者に公開し、これにより、前記宛先参加者が、前記既存の前記会話鍵を使ってメッセージのメッセージコンテンツを処理できるようになる、請求項1記載のシステム。
【請求項8】
前記会話鍵に一意の識別子が関連付けられ、これにより前記宛先参加者が、メッセージのメッセージコンテンツを処理するために特定の前記会話鍵を要求する際に、前記キーサーバに前記識別子を提供できるようになる、請求項1記載のシステム。
【請求項9】
前記メッセージルータが、ヘッダ鍵を作成し、保存し、前記参加者に公開し、前記ヘッダ鍵が、メッセージのメッセージヘッダを保護するために使用される、請求項1記載のシステム。
【請求項10】
前記ヘッダ鍵が、セキュアソケットレイヤとトランスポートレイヤセキュリティで構成される組のうち一方の構成要素に基づいている、請求項9記載のシステム。
【請求項11】
前記ヘッダ鍵が、参加者のそれぞれで異なっている、請求項9記載のシステム。
【請求項12】
会話が、複数の主題的に関連したメッセージのインスタンスの交換であり;
会話参加者が、前記会話に参加している参加者の組の構成要素であり;
前記会話参加者が、前記会話の、参加しているセッション期間中に、メッセージルータと少なくとも1つの継続的な接続を維持し;そして
前記ヘッダ鍵が前記それぞれのセッションで異なっている、請求項11記載のシステム。
【請求項13】
前記メッセージルータが、参加者の一人から、前記会話鍵を要求するメッセージのインスタンスを受信し、これを前記キーサーバへ送ることができ、さらに前記メッセージルータが前記キーサーバから、前記会話鍵を含んだメッセージのインスタンスを受信し、これを参加者の一人に送信することができ、これにより、前記キーサーバから参加者への前記会話鍵の公開が促進される、請求項1記載のシステム。
【請求項14】
前記会話鍵を要求する前記メッセージのインスタンスが、鍵要求メッセージであり;そして
前記メッセージルータが、前記鍵要求メッセージのメッセージヘッダに基づいて、前記鍵要求メッセージを前記キーサーバに通信するか否かを決定する、請求項13記載のシステム。
【請求項15】
会話が、複数の主題的に関連したメッセージのインスタンスの交換であり;
会話参加者が、前記会話に参加している参加者の組のあるメンバーであり;
参加する参加者が、前記会話に参加しようとしている潜在的な前記会話参加者であり;
退出する参加者が、前記会話への参加を止めようとしている既存の前記会話参加者であり;
前記キーサーバが、前記会話のメッセージ内のサブセットのメッセージコンテンツを保護するための1つまたはそれ以上の前記会話鍵を作成し、保存し、公開し;そして
前記メッセージルータが前記キーサーバに、前記会話に前記参加する参加者または前記退出する参加者がいるか否かに基づいて、新規の前記会話鍵を今から公開するよう指示する、請求項13記載のシステム。
【請求項16】
ネットワーク内で、複数の参加者間でメッセージを安全に通信する方法であって、メッセージを送信する前記参加者が送信元参加者であり、メッセージを受信する参加者が宛先参加者であり、そして、メッセージがメッセージヘッダとメッセージコンテンツを備えており、前記方法が、
(a)送信元参加者にて:
(1)会話鍵を取得し;
(2)前記メッセージのメッセージコンテンツを、前記会話鍵に基づいて保護し、前記保護が、暗号化とハッシングで構成された組のうち少なくとも1つの構成要素を含み;そして
(3)前記メッセージをネットワークを介して宛先参加者に送信し;そして
(b)宛先参加者にて:
(1)ネットワークを介して、前記送信元参加者から前記メッセージを受信し;
(2)やはりネットワーク内にあるキーサーバから前記会話鍵を取得し;そして、
(3)前記メッセージのメッセージコンテンツを、前記会話鍵に基づいて処理する(ここで前記処理は、復号とハッシュ分析のうちの少なくとも1つを含む)ことを特徴とする方法。
【請求項17】
前記会話鍵が前記キーサーバで作成され、前記ステップ(a)(1)にて前記送信元参加者へ通信が行われる、請求項16記載の方法。
【請求項18】
複数の前記会話鍵が前記キーサーバで作成され、前記送信元参加者へ同時に通信が行われ、これにより、所望の度に、前記キーサーバに前記会話鍵を公開するよう要求する必要が回避される、請求項17記載の方法。
【請求項19】
前記会話鍵が前記送信元参加者で作成され、前記ステップ(b)(2)の前に前記キーサーバへ通信が行われる、請求項16に記載の方法。
【請求項20】
複数の前記会話鍵が送信元参加者において作成され、前記キーサーバへ同時に通信が行われ、これにより、所望の度に、前記会話鍵を提供するよう送信者参加者に要求する必要が回避される、請求項19記載の方法。
【請求項21】
前記ステップ(a)(1)の前に、前記キーサーバにおいて、一意の識別子を前記会話鍵と関連付け;そして
前記ステップ(b)(2)と同時に、宛先参加者の各々について、前記会話鍵が、前記一意の識別子に基づいて各々の宛先参加者に公開されることをさらに含む、請求項19記載の方法。
【請求項22】
前記ステップ(a)(3)の前に、前記メッセージのメッセージヘッダをヘッダキーに基づいて保護し;
前記ステップ(a)(3)の後、前記ステップ(b)(1)の前に、やはりネットワーク内のメッセージルータにて、
メッセージを受信し;
メッセージヘッダを前記ヘッダキーに基づいて処理し;
前記メッセージヘッダを異なる前記ヘッダ鍵に基づいて保護し;そして
前記メッセージを、ネットワーク上で、これよりも先の宛先参加者へ送信し;そして
前記ステップ(b)(1)の後に、前記メッセージのメッセージヘッダを前記異なる前記ヘッダ鍵に基づいて処理することをさらに含む、請求項19記載の方法。
【請求項23】
前記ヘッダ鍵のうち少なくとも1つが、セキュアソケットレイヤとトランスポートレイヤセキュリティで構成されている組の構成要素に基づいている、請求項22記載の方法。
【請求項24】
すべての前記ヘッダ鍵が前記参加者のそれぞれで異なっている、請求項22記載の方法。
【請求項25】
会話が複数の主題的に関連したメッセージのインスタンスの交換であり、会話参加者が前記会話に参加する参加者の組の構成要素であり、前記方法が、
前記会話参加が参加している会話の各セッションの期間中、前記メッセージルータとの少なくとも1つの継続的な接続を維持し;そして
前記セッションのそれぞれに異なる前記ヘッダ鍵を使用する、ことをさらに含む、請求項24記載の方法。
【請求項26】
前記ステップ(a)(1)と前記ステップ(b)(2)が、やはりネットワーク内にあるメッセージルータを介して、前記キーサーバから前記会話鍵を要求する参加者を含む、請求項19記載の方法。
【請求項27】
前記会話鍵を要求するメッセージのインスタンスが、鍵要求メッセージであり、前記方法が、
前記メッセージルータが、前記鍵要求メッセージを前記キーサーバに通信するか否かを、前記鍵要求メッセージのメッセージヘッダに基づいて決定することをさらに含む、請求項26記載の方法。
【請求項28】
会話が複数の主題的に関連したメッセージのインスタンスの交換であり、会話参加者が前記会話に参加する参加者の組の構成要素であり、参加する参加者が前記会話に参加しようとしている潜在的な前記会話参加者であり、退出する参加者が前記会話を離れようとしている既存の前記会話参加者であり、前記方法が、
前記メッセージルータが、前記会話が前記参加する参加者または前記退出する参加者を含むか否かに基づいて、新規の前記会話鍵を今から公開するよう前記キーサーバに指示することをさらに含む、請求項26記載の方法。
【請求項29】
通信イベントを決定するシステムであって、
通信を行っている参加者に鍵を公開するキーサーバを含み、ここで前記鍵が、通信文を暗号化する暗号鍵、または復号化する復号鍵であり、前記通信を行っている参加者が、通信文を作成しようとしている発信者と、前記通信文を見ようとしている受信者とを含み;そして
前記通信文の各々について、前記キーサーバが
識別子を割り当て;
前記識別子、対応する前記復号鍵、対応する制御イベントを含んだ記録をデータベースに保存し;
前記復号鍵のために、0、1つ、またはそれ以上の要求を受信し、前記要求が前記識別子を含み;そして
前記制御イベント、前記要求の受信数、いずれかの前記要求が受信された日時に基づいて、正のイベントと負のイベントで構成された少なくとも1つの構成要素を決定することを含むことを特徴とするシステム。
【請求項30】
前記暗号鍵と前記復号鍵が同一である、請求項29記載のシステム。
【請求項31】
前記暗号鍵と前記復号鍵が異なる、請求項29記載のシステム。
【請求項32】
前記キーサーバが前記キーを生成することができる、請求項29記載のシステム。
【請求項33】
前記キーサーバが前記鍵を外部の送信元から受信できる、請求項29記載のシステム。
【請求項34】
前記外部送信元が前記発信者である、請求項33記載のシステム。
【請求項35】
前記キーサーバが、前記鍵を公開する前にアサーションを要求する、請求項29記載のシステム。
【請求項36】
前記制御イベントの少なくともいくつかが、前記発信者によって提供された属性に基づいて定義される、請求項29記載のシステム。
【請求項37】
後の前記通信に使用するだろうという推測のもとに、前記制御イベントの少なくともいくつかが前記データベースに事前に保存されている、請求項29記載のシステム。
【請求項38】
前記制御イベントの少なくともいくつかが、前記発信者以外の参加者から受信した属性に基づいて決定される、請求項37記載のシステム。
【請求項39】
前記制御イベントが、前記復号鍵を公開できるようになる時間を特定し、これにより、前記受信者が前記通信文を復号化できるようになるまでの遅延期間を特定する、請求項29記載のシステム。
【請求項40】
前記制御イベントが、それ以降は前記復号鍵が公開不能になる時間を特定し、これにより、その後は前記受信者がもはや前記通信文を復号化できなくなる失効日を特定する、請求項29記載のシステム。
【請求項41】
前記制御イベントが、前記復号鍵が前記受信者に公開されるべき回数を特定し、これにより、前記受信者が前記通信文を復号化できる回数を制限する、請求項29記載のシステム。
【請求項42】
前記キーサーバが、前記受信者のためのアサーションを要求し;そして
前記制御イベントが、前記復号鍵を前記受信者に公開する前に満たさなければならない少なくとも1つの条件を特定する、請求項29記載のシステム。
【請求項43】
前記キーサーバが、前記正のイベントまたは前記負のイベントのうち少なくとも1つに関するデータを、前記発信者と他のエンティティの内少なくとも一方に通信する、請求項29記載のシステム。
【請求項44】
前記他のエンティティが通知サーバである、請求項43記載のシステム。
【請求項45】
通信イベントを決定する方法であって、前記方法が、
(a)前記通信文を証明するためにリソースIDの第1の要求を受信し、前記第1の要求が、前記通信文の目的受信者の少なくとも1つの証明書を含み;
(b)少なくとも1つの制御イベントを定義し、前記制御イベントが前記少なくとも1つの証明書を含み;
(c)前記第1の要求に応答して前記リソースIDを提供し;
(d)前記リソースIDと、前記制御イベントと、前記通信を復号化するための復号鍵とを保存し;
(e)前記復号鍵のための第2の要求を監視し、前記第2の要求が前記リソースIDを含み、推定上の前記目的受信者の情報を証明し;
(f)前記第2の要求が受信されると、これが前記制御イベントと一致するか否かを決定し、そして
(1)一致する場合は、
(i)前記第2の要求に応答して前記復号鍵を提供し;そして
(ii)前記証明情報と正のイベントを前記リソースIDに関連して保存し、
(2)一致しない場合は;負のイベントを前記リソースIDに関連して保存し;そして
(g)あるいは、前記目的とする受信者についての前記第2の要求が受信されない場合、負のイベントを前記リソースIDに関連して保存することを特徴とする方法。
【請求項46】
前記ステップ(c)が暗号鍵を提供することを含む、請求項45記載の方法。
【請求項47】
前記暗号鍵と前記復号鍵が同一である、請求項46に記載の方法。
【請求項48】
前記暗号鍵と前記復号鍵が異なる、請求項46に記載の方法。
【請求項49】
前記第1の要求が認証アサーションを含み、前記ステップ(a)が、前記ステップ(c)で前記リソースIDを提供する前に、前記認証アサーションを検証する、請求項45記載の方法。
【請求項50】
前記制御イベントの少なくともいくつかが、前記通信の発信者が提供した属性に基づいて定義される、請求項45記載の方法。
【請求項51】
前記制御イベントの少なくともいくつかが、通信においてその後の使用を予測して、前記ステップ(a)の前にあらかじめ保存される、請求項45記載の方法。
【請求項52】
前記制御イベントの少なくともいくつかが、前記発信者以外の参加者から受信した属性に基づいて決定される、請求項51記載の方法。
【請求項53】
前記制御イベントが、前記復号鍵が前記受信者に公開可能となる時間を特定する、請求項45記載の方法。
【請求項54】
前記制御イベントが、前記復号鍵が前記受信者に公開不能となる時間を特定する、請求項45記載の方法。
【請求項55】
前記制御イベントが、前記復号鍵を前記受信者に公開できる回数を特定する、請求項45記載の方法。
【請求項56】
前記第2の要求が、前記証明情報を含んだ認証アサーションを有し、ステップ(f)が、前記復号鍵の提供の前に、前記認証アサーションを検証する、請求項45記載の方法。
【請求項57】
前記正のイベントと前記負のイベントの少なくとも1つに関するデータを、前記通信文の発信者と他のエンティティの内少なくとも1つへ通信するステップ(h)をさらに含む、請求項45記載の方法。
【請求項58】
前記別のエンティティが通知サーバである、請求項57記載の方法。
【請求項59】
トランザクション送信元とトランザクション対象者が、否認不可能なトランザクションを交換する方法であって、方法が、
(a)前記トランザクションを証明するためにトランザクション識別子の第1の要求を受信し、前記要求が送信元認証アサーションを含み;
(b)前記送信元認証アサーションを検証し;
(c)前記トランザクション識別子と前記送信元認証アサーションからの情報とを保存し、これによりトランザクション送信元が、前記トランザクションの暗号化および送信の後に、もっともらしく否認できないようにする情報を確立し;
(d)前記第1の要求に応答して前記トランザクション識別子を提供し、これにより、前記トランザクションと前記トランザクション識別子が前記トランザクション対象者へ送信され;
(e)前記トランザクション対象者がトランザクションを受信すると、これを復号化するための復号鍵の第2の要求を受信し;前記第2の要求が、前記トランザクション識別子と対象者認証アサーションを含み;
(f)前記対象者認証アサーションを検証し;
(g)前記対象者認証アサーションからの情報を、トランザクション識別子と共に保存し;そして
(h)前記第2の要求に応答して前記復号鍵を提供することでトランザクションの復号化が可能になり、これにより、トランザクション対象者がトランザクションの受信者であることをもっともらしく否認することを不可能にする情報を確立することを含むことを特徴とする方法。
【請求項60】
前記ステップ(d)が、トランザクションを暗号化するための暗号鍵を提供することも含む、請求項59記載の方法。
【請求項61】
前記方法が、
(i)トランザクション送信元に関する送信元情報の情報要求を受信し、前記情報要求が前記トランザクション識別子を含み;
(j)前記ステップ(c)で、前記トランザクション識別子と共に保存された前記送信元認証アサーションからの前記情報を少なくともいくつか取り出し、ここから前記送信元情報を決定し;さらに、
(k)前記情報要求に応答して前記送信元情報を提供する、ことをさらに含む、請求項59記載の方法。
【請求項62】
前記方法が、
(i)対象者情報の情報要求を受信し、前記情報要求が前記トランザクション識別子と、前記トランザクションターゲットを証明する情報を含んでおり;
(j)トランザクション対象者を証明する前記情報が、前記ステップ(g)で保存されたトランザクション識別子と共に保存されている前記対象者認証アサーションからの前記情報のいずれかと一致するか否かを決定し、これから前記対象者情報を決定し;そして
(k)前記情報要求に応じて前記対象者情報を提供する、ことをさらに含む、請求項59記載の方法。
【請求項63】
トランザクションを、前記トランザクションの起源であるトランザクション送信元による否認防止可能として確立する方法であって、前記方法が、
(a)前記トランザクションを証明するためのトランザクション識別子の要求を受信し、前記要求が送信元認証アサーションを含み;
(b)前記送信元認証アサーションを検証し;
(c)前記トランザクション識別子と前記送信元認証アサーションからの情報とを保存し;そして
(d)前記要求に応答して前記トランザクション識別子を提供し、これにより、トランザクション送信元が前記トランザクションの起源であることをもっともらしく否認できないようにする情報を確立することを含むことを特徴とする方法。
【請求項64】
前記ステップ(d)が、前記トランザクションを暗号化するための暗号鍵を提供することも含む、請求項63記載の方法。
【請求項65】
前記方法が、
(e)トランザクション送信元に関する送信元情報について情報要求を受信し、ここで前記情報要求が前記トランザクション識別子を含み;
(f)ステップ(c)で前記トランザクション識別子とともに保存された前記送信元認証アサーションから前記情報の少なくともいくつかを取り出し、ここから前記送信元情報を決定し;そして
(g)前記情報要求に応答して前記送信元情報を提供する、ことを含む、請求項63記載の方法。
【請求項66】
前記送信元情報が、トランザクション送信元が実際に誰であるかを表している、請求項65記載の方法。
【請求項67】
前記ステップ(e)で受信された前記情報要求が、トランザクション送信元であると思われる参加者を証明する情報も含み;
前記ステップ(g)で提供された前記送信元情報が、前記参加者がトランザクション送信元であるか否かのみを表しているため、特にトランザクション送信元を証明することなく、前記情報要求に応答する、請求項65記載の方法。
【請求項68】
前記ステップ(c)がまた、トランザクションの復号化に使用できる復号鍵も保存し;そして
ステップ(g)が、前記復号鍵も提供し、これにより、前記情報要求を行った参加者が、たとえ前記参加者がトランザクション送信元またはトランザクションの対象者でない場合でも、トランザクションの復号化を容易に実施できるようになる、請求項65記載の方法。
【請求項69】
前記ステップ(e)で受信された前記情報要求がトランザクションも含み;そして
前記ステップ(g)が、前記情報要求に応答して前記送信元情報を提供する前に、前記トランザクションを復号化することを含む、請求項65記載の方法。
【請求項70】
前記ステップ(e)で受信された前記情報要求がトランザクション送信元であると思われる参加者を証明する情報も含み;そして
前記ステップ(g)で提供された前記送信元情報が、前記参加者がトランザクション送信元であるか否かのみを示しており、これにより、前記トランザクション送信元を特に証明することなく前記第2の要求に応じる、請求項69記載の方法。
【請求項71】
前記ステップ(g)が、前記情報要求への前記応答に、復号化した形式のトランザクションを提供することも含み、これにより、前記情報要求を行っている参加者が、トランザクション送信元またはトランザクションの対象者でない場合でも、トランザクションのコンテンツを確認できるようになる、請求項69記載の方法。
【請求項72】
トランザクションを、前記トランザクションの受信者であるトランザクション対象者による否認防止可能として確立する方法であって、トランザクション識別子がトランザクションを識別し、復号鍵が、あらかじめ保存されているトランザクションを復号化することが不可能であり、前記方法が、
(a)復号鍵の要求を受信し、ここで前記要求がトランザクション識別子と対象者認証アサーションとを含み;
(b)前記対象者認証アサーションを検証し;
(c)前記対象者認証アサーションからの情報を前記トランザクション識別子と共に保存し;そして
(d)前記要求に応答して前記復号鍵を提供し、これにより、トランザクション対象者がトランザクションの受信者であることをもっともらしく否認できないようにする情報を確立することを含むことを特徴とする方法。
【請求項73】
前記方法が、
(e)対象者情報の情報要求を受信し、ここで前記情報要求が前記トランザクション識別子と、トランザクション対象者を証明する情報とを含み;
(f)前記ステップ(c)にて前記トランザクション識別子と共に保存された前記対象者認証アサーションからの前記情報の少なくともいくつかを取り出し、これから前記対象者情報を判断し;そして
(g)前記情報要求に応答して前記対象者情報を提供する、ことをさらに含む、請求項72記載の方法。
【請求項74】
前記ステップ(g)が前記復号鍵を提供することも含み、これにより、前記情報要求を行っている参加者が、たとえトランザクション送信元またはトランザクション対象者でない場合にも、トランザクションの復号化を容易に実施できるようになる、請求項73記載の方法。
【請求項75】
前記ステップ(e)で受信された前記情報要求がトランザクションも含み;そして
前記ステップ(g)が、前記識別情報を提供する前に、前記トランザクションを復号化する、請求項73記載の方法。
【請求項76】
前記ステップ(g)が、前記情報要求への前記応答において、復号形式の前記トランザクションを提供することも含み、これにより、前記情報要求を行っている参加者が、トランザクション送信元またはトランザクション対象者でない場合にも、トランザクションのコンテンツを確認することが容易になる、請求項75記載の方法。
【請求項77】
トランザクション送信元とトランザクション対象者がトランザクションを交換する、否認不可能なシステムであって、
コンピュータ化されたキーサーバ含み;
前記キーサーバが、トランザクション識別子を要求する第1の要求をネットワーク経由で受信するのに適しており、ここで前記第1の要求が送信元認証アサーションを含み;
前記キーサーバが、前記トランザクションの復号化に使用する復号鍵を要求する第2の要求をネットワーク経由で受信するのに適しており、ここで前記第2の要求が、前記トランザクション識別子と対象者認証アサーションとを含み;
前記キーサーバが、前記送信元認証アサーションと前記対象者認証アサーションとを検証するのに適しており;
前記キーサーバが、前記トランザクション識別子と、前記送信元認証アサーションからの情報とを、前記対象者アサーションからの情報に関連してデータベースに保存するのに適しており;
前記キーサーバが、前記第1の要求に対して、前記トランザクション識別子を含む第1応答を、前記ネットワーク経由で提供するのに適しており;そして
前記キーサーバが、前記第2の要求に対して、前記復号鍵を含む第2応答を、前記ネットワーク経由で提供するのに適しており、これにより、トランザクション送信元が、前記トランザクションの暗号化および送信した後に、もっともらしく否認することを不可能にし、前記トランザクション対象者が、前記復号鍵を提供された後に、もっともらしく否認することを不可能にする情報を確立することを特徴とするシステム。
【請求項78】
前記キーサーバがさらに、前記トランザクションを暗号化するための暗号鍵を前記第1応答において提供するのに適している、請求項77記載のシステム。
【請求項79】
前記キーサーバがさらに、前記トランザクション送信元に関する送信元情報の情報要求を受信するのに適しており、ここで前記情報要求が前記トランザクション識別子を含み;
前記キーサーバがさらに、前記データベースから、前記トランザクション識別子と共に保存されている、前記送信元認証アサーションからの前記情報を取り出し、ここから前記送信元情報を判定するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応答して前記送信元情報を提供するのに適している、請求項77記載の方法。
【請求項80】
前記キーサーバがさらに、対象者についての情報要求を受信するのに適しており、ここで前記情報要求が、前記トランザクション識別子と、前記トランザクション対象者を識別する情報とを含み;
前記キーサーバがさらに、前記トランザクション対象者を証明する前記情報が、トランザクション識別子と共に保存された前記対象者認証アサーションからの前記情報のいずれかと一致するか否かを判断し、ここから前記対象者情報を判断するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応じて前記対象者情報を提供するのに適している、請求項77記載のシステム。
【請求項81】
トランザクションを、その起源であるトランザクション送信元による認証否認可能として確立するシステムであって、
コンピューター化されたキーサーバを含み、
前記キーサーバが、トランザクションを識別するトランザクション識別子の要求をネットワーク経由で受信するのに適しており、ここで前記要求が送信元認証アサーションを含み;
前記キーサーバが、前記送信元認証アサーションを検証するのに適しており;
前記キーサーバが、前記トランザクション識別子と、前記送信元認証アサーションからの情報をデータベースに保存するのに適しており;そして
前記キーサーバが、前記トランザクション識別子を含んだ返答を前記ネットワーク経由で提供し、これにより、前記トランザクション送信元が、前記トランザクションを暗号化および送信した後で、もっともらしく否認することを不可能にする情報を確立するのに適していることを特徴とするシステム。
【請求項82】
前記キーサーバがさらに、前記返答に含まれたトランザクションを暗号化するための暗号鍵を提供するのに適している、請求項81記載のシステム。
【請求項83】
前記キーサーバがさらに、トランザクション送信元に関する送信元情報の要求を受信するのに適しており、ここで前記情報要求が前記トランザクション識別子を含み;
前記キーサーバがさらに、前記トランザクション識別子と共に保存されている前記送信元認証アサーションからの情報を、前記データベースから取り出し、ここから前記送信元情報を判断するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応答して前記送信元情報を提供するのに適している、請求項81記載のシステム。
【請求項84】
トランザクションを、その受信者であるトランザクション対象者による否認防止可能として確立するシステムであって、ここでトランザクション識別子がトランザクションを識別し、前記トランザクションの復号化に使用される復号鍵がデータベース内にあらかじめ保存されており、前記システムが、
コンピュータ化されたキーサーバを含み、
前記キーサーバが、前記復号鍵の要求をネットワーク経由で受信するのに適しており、ここで前記要求が前記トランザクション識別子と対象者認証アサーションとを含み;
前記キーサーバが、前記対象者認証アサーションを検証するのに適しており;
前記キーサーバが、前記対象者認証アサーションからの情報を、前記トランザクションと共にデータベース内に保存するのに適しており;
前記キーサーバが、前記復号鍵を含んだ返答を、前記ネットワーク経由で提供し、これにより、前記トランザクション対象者がもっともらしく否認することを不可能にする情報を確立するのに適していることを特徴とするシステム。
【請求項85】
前記キーサーバがさらに、対象者情報についての情報要求を受信するのに適しており、ここで前記情報要求が、前記トランザクション識別子と、前記トランザクション対象者を証明する情報とを含み;
前記キーサーバがさらに、前記トランザクション識別子と共に保存されている前記対象者認証アサーションから前記情報の少なくともいくつかを取り出し、ここから前記対象者情報を判断するのに適しており;そして
前記キーサーバがさらに、前記情報要求に応答して前記対象者情報を提供するのに適している、請求項84記載のシステム。
【図1】
【図2a】
【図2b】
【図2c】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図6d】
【図6e】
【図6f】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2a】
【図2b】
【図2c】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図6c】
【図6d】
【図6e】
【図6f】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公表番号】特表2006−520112(P2006−520112A)
【公表日】平成18年8月31日(2006.8.31)
【国際特許分類】
【出願番号】特願2004−555802(P2004−555802)
【出願日】平成15年11月26日(2003.11.26)
【国際出願番号】PCT/US2003/037954
【国際公開番号】WO2004/049137
【国際公開日】平成16年6月10日(2004.6.10)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
JAVA
【出願人】(503140344)セキュア データ イン モーション,インコーポレイテッド (4)
【住所又は居所原語表記】1875 S.Grant Street,10th Floor,San Mateo,CA 94402 USA
【Fターム(参考)】
【公表日】平成18年8月31日(2006.8.31)
【国際特許分類】
【出願日】平成15年11月26日(2003.11.26)
【国際出願番号】PCT/US2003/037954
【国際公開番号】WO2004/049137
【国際公開日】平成16年6月10日(2004.6.10)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
JAVA
【出願人】(503140344)セキュア データ イン モーション,インコーポレイテッド (4)
【住所又は居所原語表記】1875 S.Grant Street,10th Floor,San Mateo,CA 94402 USA
【Fターム(参考)】
[ Back to top ]