(57)【特許請求の範囲】
【請求項１】
サーバコンピュータからクライアントコンピュータへダウンロードされたデータを保護する方法であって、
サーバコンピュータからクライアントコンピュータへアプレットをダウンロードすることと、
クライアントコンピュータにおいて、該アプレットを動作させて、該アプレットを使用してサーバコンピュータへデータをクライアントコンピュータへダウンロードするよう要求することと、
サーバコンピュータで該要求されたデータをクライアントコンピュータへダウンロードするか否かを判断することと、
該要求されたデータの暗号化されたコピーを、該サーバコンピュータからクライアントコンピュータへダウンロードすることと、
該クライアントコンピュータにおいて、該アプレットを動作させて、該アプレットを使用して該ダウンロードされたデータのコピーを復号化することと、を備える方法。
【請求項２】
該要求されたデータの暗号化されたコピーがハッシングされている請求項１に記載の方法。
【請求項３】
該クライアントコンピュータが該ダウンロードされたデータの受信を許されることをドッグタグプログラムを実行することによって認証することを含む請求項１または請求項２に記載の方法。
【請求項４】
該データが該クライアントコンピュータにダウンロードされる前に、ドッグタグプログラムを実行することによってクライアントコンピュータのハードウエアとソフトウエアを識別することを含む請求項１ないし請求項３のいずれか１項に記載の方法。
【請求項５】
前記サーバコンピュータと該クライアントコンピュータとはそれぞれが暗号キーとクライアントコンピュータを識別するための識別子とを保持しており、
該サーバコンピュータは該クライアントコンピュータへチャレンジを送ることと、
該クライアントコンピュータは、該クライアントコンピュータにて該サーバコンピュータと関係して保持されている暗号キーと識別子から、該暗号キーと該識別子の関数として第１の応答を生成し、該第１の応答を該サーバコンピュータへ送ることと、
該サーバコンピュータは、該サーバコンピュータにて該クライアントコンピュータと関係して保持されている暗号キーと識別子から、該暗号キーと該識別子の関数として第２の応答を生成することと、
該サーバコンピュータは、該クライアントコンピュータから送信された第１の応答と該サーバコンピュータにて生成された第２の応答とを比較して、もし両者が対応していれば、該キーでデータの暗号化を実行することと、
該暗号化されたデータをクライアントコンピュータにて該暗号キーを用いて復号化することと、をさらに含む請求項１ないし請求項４のいずれか１項に記載の方法。
【請求項６】
該クライアントコンピュータからサーバコンピュータへ要求されたデータがステガノグラフィカルにマークを付したものである請求項１ないし５のいずれか１項に記載の方法。
【請求項７】
該クライアントコンピュータを認証するために該クライアントコンピュータを該サーバコンピュータに登録することを含む請求項１ないし請求項６のいずれか１項に記載の方法。
【請求項８】
クライアントコンピュータであって、
サーバコンピュータからアプレットをダウンロードし、
該アプレットを動作させて、
該アプレットを使用してサーバコンピュータへデータをクライアントコンピュータへダウンロードするように要求し、
サーバコンピュータが該要求されたデータをクライアントコンピュータへダウンロードすると判断した場合は、該要求されたデータの暗号化されたコピーを、サーバコンピュータからクライアントコンピュータへダウンロードし、
該アプレットを動作させて、該アプレットを使用して該ダウンロードされたデータのコピーを復号化するための手段を備えるクライアントコンピュータ。
【発明の詳細な説明】
発明の属する分野
この発明はコピイ（複製）を作ることに対してデータを保護することに係り、ウエブ応用網上で送られるハイパーメディアのような、網を介して送られるデータを保護するためにとくに応用される。
背景
ハイパーテキストのようなハイパーメディアの形をしたデータはしばしばハイパーテキスト言語ＨＴＭＬで書かれていて、網を介してクライアントに接続されたサーバによって提供されるウエブページ内に置かれていることが知られている。このクライアントはパーソナルコンピュータもしくは処理デバイスであって、サーバからユーザへ検索したデータを呈示することができるものを含んでいてよい。網はローカルエリア網（ＬＡＮ）、広域網（ＷＡＮ）を含んでいてよいし、あるいはインターネットを含んでいてよい。例えば、ワールドワイドウエブ（ＷＷＷ）はウエブ内でインターネットを介して接続されている数多くのサーバを含んでいて、ユニバーサル資源ロケータ（ＵＲＬ）の形でアドレスを有している。
ハイパーテキスト情報はウエブページ内に置かれていて、ウエブページにはホットスポットがあって、ユーザは別のウエブページに向けてリンクを設定することができるようにし、これが同じか別のサーバ上に置かれていてもよく、ホットスポットでウエブページ内のＵＲＬを使用することにより文書へのルート設定が達成される。
ウエブクライアントは一般にハイパーメディア情報にブラウザを用いてアクセスする。ＷＷＷとＨＴＭＬとの全体像は“HTML 3.2 and CGI Unleashed”J.December and M.Ginsberg 1996（ISBN 1-57521-177-7）の第１章に記されている。
よく知られている技術として、ＨＴＭＬウエブページはテキスト、グラヒックス及び他の記述のファイル、例えばビデオ画像、アニメーショングラヒックス、及びオーディオサンプルを表示することができる。ハイパーメディアは大きな利点として、クライアントが１つの文書から別な文書へ眺めを急速に移すことができることがある。文書内のホットスポット上をマウスを用いてクリックすることにより、１つのウエブサイトから他へユーザが移ることができ、これが別の物理的な場所にあってもよい。
ＨＴＭＬページ上で表示される個々の作品は著作権のある作品（著作物）であってもよい。著作物が眺められ、送られ、またコピイを作ることがウエブ上で容易にできるので、著作権者がその著作権を行使することが困難である。例えば、グラヒックスファイルが、あるクライアントにダウンロードされたときに、クライアントのコンピュータに在るハードディスク上にすぐにコピイができ、ディジタル的に何度もレプリカ（複製）が作られ、コピイからコピイへの間に著しく劣化を生じさせることはない。
この発明の要約
この問題を克服するという観点に立って、この発明はユーザに提示するために、サーバからクライアントに送られるデータのコピイ保護方法を提供するもので、その構成は：
データを暗号法により保護し；暗号法で保護されたデータをクライアントに送り；そのデータに関してそのクライアントのコピイ機能を選択的に制御するとともにそのデータがそのユーザに向けた提示に適した形式でそのクライアントにより保持されるようにする。
データは暗号によるかハッシングのような完全性チェックプロセスによるかあるいはその両方によって暗号法で保護することができる。
より詳しく言うと、この発明の方法はプログラムオブジェクトをクライアントに向けてダウンロードすることと、クライアントにおいてそのプログラムオブジェクトを実行して暗号法で保護されたデータを含んでいるファイルにについてサーバに向けて要求がアップロードされるようにすることと、そのファイルをクライアントに向けてダウンロードすることと、この暗号法で保護されたデータをユーザに提示するのに適した保護されていない形式にほん訳することとを含んでいて、該プログラムオブジェクトはダウンロードされたデータに関しては保護されていない形式でコピイもしくはセーブの一部たりともユーザに提供されないように動作するものであるとしている。
この発明は、ワールドワイドウエブのような網上でデータをダウンロードするという応用にとくに関係してはいるが、それに専用というのではなく、ＬＡＮとがＷＡＮとかにも応用可能であり、また３．５”フロッピィディスクとかＣＤ−ＲＯＭを応用した技術のような長期間記憶媒体を用いるデータの拡布にも応用可能である。
この発明の方法は従来形式のブラウザと一緒に使用してもよい。
ウエブページに関するメッセージはサーバからクライアントへダウンロードすることができ、プログラムオブジェクトに関する情報をメッセージは含んでいて、それにより、プログラムオブジェクトを検索するために、そのメッセージに応答して要求がそこでサーバにアップロードされるようにする。ウエブページはＨＴＭＬコードで書くことができる。プログラムオブジェクトはＪａｖａアプレットを含んでいるが、この発明はＡｃｔｉｖｅ  ＸとかＯＬＥといった他のプログラムオブジェクトの使用も包含している。
Ｊａｖａアプレットの処理の結果として、通常のコピイとセーブの機能はユーザには提供されず、それによってユーザに向けて提供された保護されていないデータに関してセキュリティを備えるようにしている。
提供されたデータは、テキスト、グラヒックス、映像、オーディオもしくは他の適当な形式を含んでいてよい。
プログラムオブジェクトは暗号法のキーに関するデータを含んでいてよく、そこでこれがダウンロードされた暗号法で保護されたデータをユーザへの提供に適した保護されていない形式にほん訳するために使用できる。
認証プロセスが採用されて、暗号法で保護されたデータが認証を受けたクライアントに向けてだけダウンロードされることを確かなものとする。認証プロセスは支払い機構を参照して実行してもよく、ダウンロードされ、暗号法で保護されたデータに関してロイヤリティを集金できるようにする。
これまでにコピイ保護機構として完全に成功しているものはなかったことが理解できるが、その理由は、データがユーザに提供されるときには、ユーザがそれをコピイする機会があるからである。しかし、この発明によると、この発明の方法によって提供される保護機構を破るために必要とされる努力は保護されたデータを使用できるようにする金額の支払いよりも著しく大きなものとなり、それによりデータの所有者にとってワールドワイドウエブとか他の開かれたアクセス網を介してのデータ放出の危険が低減されている。
ダウンロードされたデータは例えばディジタル透かしマークでステガノグラフカルに（steganographically）しるしをつけることができる。クライアントの識別子（ＩＤ）が知られているときには、この透かしマークがクライアントのＩＤを含んでいて、不正行為でユーザによりコピイが作られる場合に追加の安全（セキュリティ）を提供するようにする。
この発明はまたこの発明の方法を実行するために構成されたサーバも含んでいる。
この発明はさらに暗号としてデータをサーバからクライアントへダウンロードする方法も含んでいて、この方法は：クライアントの機械（マシン）識別子をそのハードウエアかソフトウエアかの構成もしくはその両方の構成を解析することによって判断してサーバにそのクライアントを登録することと、この機械識別子をサーバに送ることと、送られた機械識別子と暗号キーと組合せてそのクライアントについての独特な決定子（determinator）を形成することと、この独特（ユニーク）な決定子をクライアントに送りそこでサーバに向けたクライアントを識別するために後に使用するように記憶して、サーバからそこへ暗号としたデータをダウンロードできるようにすることと、この独特な決定子に基いてサーバに向けたクライアントを後に識別することと、その後、暗号法のキーによって暗号とされたデータを識別されたクライアントにダウンロードして、独特な決定子からのキーを用いてクライアントによる解号化のためにあてることを含んでいる。
ダウンロードされたデータはこの独特な決定子からのキーを用いてクライアントにおいて解号することができる。
クライアントはクライアントについての機械識別子を再度判断することによりサーバに対して識別することができ、この機械識別子がこの独特な決定子の中に含まれている機械識別子と比較され、比較の結果に基いてサーバに信号が送られる。
クライアントは暗号化されたデータをダウンロードするのに先行してサーバによって認証されていてもよい。これを行うのは、チャレンジ（挑戦）を生成し、サーバにより保持されているクライアントについての暗号法のキーの所定暗号法関数により、かつクライアントのところに記憶されている独特な決定子の中に含まれているキーの関数によると応答を生成し、かつ比較結果に基いてそのクライアントを認証することによる。
【図面の簡単な説明】
この発明をより完全に理解するようにするために、添付の図面を参照して例を記述して行く。
図１は通常のクライアントとサーバとがワールドワイドウエブを介して接続されている模式図である。
図２はクライアント３にあるウエブブラウザにより提供される従来形式の表示の模式図である。
図３はこの発明により、ワールドワイドウエブ２を介してクライアント３に接続されたウエブサーバ１の模式図である。
図４はこの発明によるウエブブラウザの表示の模式図である。
図５はこの発明の例によるクライアントとサーバ間のデータの流れの模式図である。
図６は図５の段階Ｓ１０と関係する模式的な流れ図である。
図７は出願人ＢＴのコピイライト（ＢＴＣ）データのファイルについての構造の模式図である。
図８は図６のラッピング段階１０．５の間に実行される動作の詳細を示す流れ図である。
図９は図５の段階Ｓ１２と関係する模式的な流れ図である。
図１０はクライアントをサーバに登録するためのプロセスと関係するデータの流れを模式的に示す。また、
図１１は図５の段階Ｓ９に対応する、図１０による登録に続く認証を模式的に示す。
詳細な記述
この発明の例がワールドワイドウエブ（ＷＷＷ）と関係して以下に記述される。よく知られているように、ウエブサーバ上の情報のページは個々のＵＲＬによってウエブ上で識別されて、それにはクライアント計算機上で運行されているブラウザによってアクセスができる。図１を見ると、ウエブサーバ１はワールドワイドウエブ２によってＰＣの形をしたクライアント計算機３に接続されている。ＨＴＭＬウエブページはクライアント計算機３にウエブサーバ１からダウンロードすることができ、クライアント計算機３のユーザに対して表示ができる。ＨＴＭＬ文書は、既知のやり方で、同じか別のウエブサーバ上の他のＨＴＭＬページへのリンクを含むことができる。ＨＴＭＬウエブページはまたグラヒックスとか画像とかそれに類するような埋め込まれたオブジェクトを含んでてもよい。
クライアント３はブラウザを運行させ、ブラウザはウエブサーバ１からＨＴＭＬ文書を受領して、それらを計算機のディスプレイ上に表示する。この例では、ブラウザはＪａｖａアウエアであり（Ｊａｖａを認識しており）、言い換えると、サーバから受取ったＪａｖａバイトコードをほん訳できる。もっと詳しく言うと、当業者に知られているようにＨＴＭＬ文書がいわゆるＪａｖａアプレットタグを含んでいるときは、サーバは、Ｊａｖａバイトコードで成る、対応するアプレットをダウンロードし、これがブラウザによりほん訳されて実行される。一般に、ダウンロードされたＪａｖａアプレットは計算機３のユーザと表示された画像との間で相互作用（対話）ができるようにする。他の情報については参考文献として“HTML 3.2 and CGI Unleashed”前掲、１８章を挙げておく。
ＨＴＭＬウエブページのスクリーン表示の例が図２に示されている。この表示はブラウザにより提供されたウインドウ４内部で提示される。適当なブラウザの例はMicrosoft Internet Explorer 3.1とNetscape Navigatorである。このブラウザには多数の通常のコントロールがあり、普通のやり方でマウス上をクリックすることにより動作がされる。例えば、ブラウザにはプリントボタン５があり、これはスクリーンプリントがブラウザウインドウ４内部に示された全ページについて作成できるようにする。また、このブラウザには図で６に示したコントロールを含み、そこにはドロップダウンメニュオプションである。“ビューソース（view source）”があり、実行されてている実際のＨＴＭＬコードについての表示ができるようにしている。
ページ７がブラウザのウインドウ４内部に示されている。このページはＨＴＭＬコードの行のシーケンスによって定義され、行はそのページ上に用意されるテキストとレイアウトとを特定している。また、コードは領域を特定し、領域はグラヒカルな、画像データもしくは他のデータであって別個のファイル内にダウンロードされたものを受取る。ファイルには所定のタグが備わっている。この例では、タグ“ｇｉｆ”を備えたグラヒックスファイルが表示されている。ＨＴＭＬコードはｇｉｆファイルがページの所定領域内部に表示されるようにする。したがって、ページ７では、ｇｉｆファイルがダウンロードされたＨＴＭＬコードによって定義された領域８内に表示される。ｇｉｆについてのコードの例が次のＣｏｄｅ  Ｅｘｔｒａｃｔ（コード抜出し）Ｎｏ．１に示されている。
0004637974.tif 000002
ユーザが表示された画像８の領域内で計算機のマウスを右マウスボタンを用いてクリックすると、ドロップダウンメニュ９が表示されて、それが“セーブ”（セーブはｇｉｆファイルに対応するディジタルデータを計算機のハードディスクもしくは他の記憶場所へセーブするものである）を含むユーザのオプション（選択肢）を与え、また計算機３に接続されたプリンタ（図示せず）を用いるプリントというオプションも含んでいる。こうして、計算機３のユーザは領域８内に表示されたグラヒックスを含んでいるディジタルデータのコピイを作ることができ、またデータは制限されていないやり方で他の場所へ送ることもできる。データはディジタル形式で記録されているので、画像品質を劣化させることなく何回も複製ができる。
グラヒックス表示８に含まれている全ページ７もブラウザプリントボタン５を用いてプリントできる。しかし、プリントされた画像品質は計算機のスクリーン上で表示されたものの品質が最高のものである。プリントされた画像アナログ領域のものとなろうから画像をディジタルメインに戻すプロセスは品質をもっと落して行くだけとなろう。
表示されたＨＴＭＬページ７はまたホットスポット１０を含む。計算機のマウスがホットスポット上でクリックされるときには、リンクが他のウエブページと設定されて、それがウインドウ４内部で表示される。ＨＴＭＬコードでホットスポット１０と関係しているものは、よく知られているやり方で、他のウエブページへのリンクを設定するためにＵＲＬを含んでいる。
当業者に知られているように、ＨＴＭＬコードはＪａｖａアプレットを含むこともできる。これがプログラム用オブジェクトで構成されていて、このオブジェクトがサーバ１からダウンロードされ、ブラウザ４内部で局部的に実行できる。アプレットはＨＴＭＬ内で後述するようにコードタグ-アプレットにより特定される。ＨＴＭＬほん訳器でブラウザの中にあるものがウエブページ内でこのようなタグに出逢うと、ウエブサーバに戻って参照し、次にブラウザへＪａｖａバイトコードをダウンロードする。一般に、アプレットはウエブページ内でアニメーションのグラヒックシンボルを表示するために使用されるが、多くの他の応用も提供されることは当業者によく知られている。アプレット表示の位置と大きさとはＨＴＭＬコードの行（ライン）内にある命令により決められる。
もしユーザがアプレットの実行により表示されたデータ上で右マウスボタンをクリックすると、図２に示したメニュ９に対応してドロップダウンメニュは何も提供されない。ユーザはビューソースボタン６を用いて表示されているＨＴＭＬページを作りあげているコードの行を表示するようにすることができるが、しかしこれはアプレットがブラウザにより実行されているときに表示されるデータを表わしてはいない。Ｊａｖａほん訳器はｇｉｆファイルを、アプレット実行中に、アプレット内部で表示できるが、正常時には、ｇｉｆファイルは直接ウエブページ内にダウンロードされるのであって、その理由はＪａｖａバイトコードについて処理する必要は正常時にはないことによる。
この発明は安全なやり方てデータがウエブページにダウンロードできて、しかも、著しい不正行為の努力なしでは表示がされないしセーブもしくはコピイができないような方法を提供する。
この発明によるダウンロードをするプロセスの例が図３，４、及び５を参照してもっと詳しく記述されている。この例では、コピイライト（著作権）が保護されている画像データを含むウエブページがサーバ１からクライアント計算機にワールドワイドウエブ２を介してダウンロードされる。ブラウザ４での結果の表示は図４に示されていて、処理段階は図５にもっと詳細に示されている。
段階Ｓ１ではクライアント３がウエブページの詳細についてのサーバ１への要求をアップロードする。この要求は通常のハイパーテキストファイル転送プロトコル（ＨＴＴＰ）ページ要求を含んでいる。そこでサーバは、段階Ｓ２で、そのページを得るか、それを“オンザフライ（進行中に）”で構築してページに対応するＨＴＭＬコードをワールドワイドウエブ（ＷＷＷ）２を介してクライアント３へダウンロードする。通常のやり方では、ＨＴＭＬコードは、画像、グラヒックス、サウンドバイトなどに対する参考を含んでいて、このようなコードに応答して、サーバはＨＴＴＰ要求をアップロードしてウエブページ内に対応するファイルが表示されるように求める。例えば、図４に示したウエブページ７を参照すると、そこにはグラヒカル画像１１があり、ｇｉｆファイルによって構成されている。表示１１についてのデータを得るために、ＨＴＴＰ要求が段階Ｓ３でサーバにアップロードされて、対応する２値のグラヒカルデータが段階Ｓ４でダウンロードされる。このデータは次に図４に示したページ７の領域１１内で表示される。しかし、このデータは著作権が保護されたデータではない。その理由はユーザが右マウスボタンを用いて、図２について前に説明したように、セーブできるし、コピイができるからである。
しかし、この発明によると表示されたページ７の領域１２は著作権が保護される。ＨＴＭＬコードで図４のページ７と関係するものは以下のコード抜出し（Ｃｏｄｅ  Ｅｘｔｒａｃｔ）Ｎｏ．２に示してあり、行ＣＥ２．８でアプレットＡ１を参照している。
0004637974.tif 000003
アプレットを実行するためのＪａｖａバイトコードは図５の段階Ｓ６でサーバからクライアント１へダウンロードされる。アプレットＡ１はそこで、ブラウザ内部のＪａｖａほん訳器を用いて、クライアント上で実行がされて、サーバからダウンロードされたウエブページの領域１２内に表示されることになるデータを受けるように、ブラウザの準備が行なわれる。
領域１２内で表示されることになるデータは暗号法で保護されていて、ダウンロードされた信号を監視してもすぐには解読できない。この例では、暗号法の保護はハッシングと一緒にダウンロードしたデータの暗号を含んでおり、そのことについては後に詳述する。
アプレットＡ１はダウンロードしたファイルが解号され、完全性についてすなわち確認されたハッシュについてチェックがされるようにする。もっと詳しく言うと、アプレットＡ１は次のものを含んでいる：ハッシングアルゴリズムＨＡ、マスターハッシングキーＫMH、暗号アルゴリズムＥＡ、暗号キーＫE、及びＢＴＣファイル要求である。ここで用語ＢＴＣを用いているが、ブラウザで表示するための、著作権が保護されたデータのファイルを指す。アプレットＡ１はクライアント計算機３上で段階Ｓ７で実行され、また段階Ｓ８でアプレットはＢＴＣファイル要求がサーバ１にアップロードされるようにする。
段階Ｓ９では、サーバは認証段階を実行して、要求されたＢＴＣファイルをクライアントにダウンロードすることが安全であるかどうかを判断する。この認証は多数の違ったやり方で実行されてよい。例えば、サーバはクライアントが支払いをしていることを条件にファイルをダウンロードするだけであるから、ＢＴＣファイルの著作権の所有者がファイルを眺めるという動作に対してロイヤリティを集められるようにする。この目的についてのマイクロペイメント（小額の支払い）スキームは我々の未決特許出願No.GB 9624127.8名称トランザクションシステム（Transaction System）に記述されている。これに代って、クライアント３は提供されている他の若干のサービスに関してはサーバに知られていてよく、その例は、インターネットホームショッピング（在宅買物）スキームであり、クライアントの信用状態がこのサービスについてすでに使用されているプロセスによって認証されていてよい。
クライアント３が認証段階Ｓ９を通過したとすると、そのときはサーバは段階１０でＢＴＣファイルを用意してクライアント３へダウンロードするようにする。
段階Ｓ１０は図６にもっと詳細に示されている。段階Ｓ１０．１では、関連のデータがフェッチされる。これにはグラヒックスデータ、オーディオ、ビデオ、テキストまたは他の適当なデータ形式を含んでいてよい。
段階Ｓ１０．２ではデータが透かしマークを付けられる。これにはデータ流内の若干のビットを変えることを含んでいてよく、データがクライアントにダウンロードされたときに、ブラウザ４によって表示された画像内に認知できないパターンが記録されるようにする。透かしマークを付けることはステガノグラフィ（steganography隠れた暗号とか秘密コードの分野に係り、透かしマークとして使われるような秘密コードのこと）と呼ばれる技術のよく知られている例である。この技術と透かしマークとを概観するためには、“Disappearing Cryptography”,P.Wayner,Academic Press 1996（ISBN 0-12-738671-8）が参考に供される。透かしマーク付けは保護されたデータがコピイされる場合に追加の安全を与えることになり、そのわけはコピイをすることの源についての知識が透かしマークから判断できることにある。こうして、認証段階（段階Ｓ９）がサーバに特殊クライアント用識別子を与えるときは、この識別子が段階Ｓ１０．２でデータ内に透かしマーク付けされてよい。
段階Ｓ１０．３では、透かしマークを付けたデータがサーバでハッシュされ、その際にアプレットＡ１内にダウンロードされたハッシングアルゴリズムＨＡのコピイと、ファイルに固有のセッションハッシングキーＫSHとが使われる。ハッシングプロセスはアルゴリズムＨＡとキーＫSHとを暗号化されたデータのデータビットと一緒に使用して追加のビットＨＶを形成して、それが、パリティビットのやり方で、データストリングに加えられるようにすることで構成されている。このハッシングはデータの部分が取り外されたり別なもので置換えられたりされず、例えば“アメリカドル１ドルを支払え”が同“１００ドルを支払え”に変えられないことを確かにする。ハッシングアルゴリズムとして適当な形はＳＨＡであり、これはもっと詳細には次の文献に記載されている。National Institute of Standards and Technology,Federal Information Processing Standards Publication 180-1（NIST FIPS PUB 180-1）SECURE HASH STANDARD.
段階Ｓ１０．４では、データがサーバ１で暗号化され、その際にアルゴリズムＥＡとキーＫEとで前にクライアントにダウンロードされたもののコピイが、アプレットＡ１のＪａｖａバイトコード内で使われる。暗号アルゴリズムの例はＤＥＳアルゴリズムで、これについてはNational Institute of Standards Publication 46-2（NIST FIPS PUB 46-2）DATA ENCRYPTION STANDARD（DES）が参考に供される。暗号アルゴリズムＥＡは実際には一対のアルゴリズムであり、その一方は暗号化に他方は解号化に使用される。キーＫEは定期的に変更されることが当業の実務でよく知られていることである。
こうして段階Ｓ１０．５では、得られたファイルが専用のＢＴＣファイル形式でまとめられ、この形式自体に追加の暗号法の保護技術が含まれている。
この専用のＢＴＣファイル形式は図７に示されている。ＢＴＣファイル形式はヘッダ情報Ｈと埋め込まれたファイルＥＦとを含んでいる。段階Ｓ１０．５で実行された処理は図８にさらに詳細に示されている。
ＢＴＣファイルは段階Ｓ１０．５では次のように生成される。段階Ｓ１０．５．１ではヘッダＨについての部分情報が生成される。これはそのファイル形式に対する版番号（バージョンナンバ）と、そのファイルについての何らから特定の著作権保護コントロール情報とを含んでいる。
段階Ｓ１０．５．２ではこの情報のすべての完全性が、ハッシングキーＨＫheadを用いてハッシュ値ＨＶheadを生成することにより保護される。
段階Ｓ１０．５．３では、ハッシングキーでヘッダＨＫhead上で使われたものと、生成されたハッシュ値ＨＶheadとの両方がヘッダＨに取付けられて、完成がされる。
段階Ｓ１０．５．４では、透かしマークを付けかつ暗号とされたファイルで段階Ｓ１０．４で生成されたものがヘッダＨに取付けられて、図７の埋め込まれたファイルＥＦの一部を形成する。
段階Ｓ１０．５．５では、段階Ｓ１０．３で実行されたハッシングを記述している情報がファイルＥＦに付加される。この情報は固有のセッションハッシングキーＫSHで埋め込まれたファイル（以下ＨＫembeddedと呼ぶ）上で使われたものと、段階Ｓ１０．３で生成されたハッシュ値ＨＶ（以下ＨＶembeddedと呼ぶ）とを含んでいる。これがＢＴＣファイルが完成する。
段階Ｓ１１（図５）では、ＢＴＣファイルがクライアント３にダウンロードされる。
そこで、段階１２では、ＢＴＣファイルが前にクライアント３にダウンロードされたアプレットＡ１を用いて処理される。段階Ｓ１２で実行された処理は図９にもっと詳細に示されている。段階Ｓ１２．１とＳ１２．２では、ヘッダＨの内容の完全性が確認される。段階１２．１では、ハッシングアルゴリズムＨＡと、ハッシングキーでヘッダＨＫhead上で使われたもの（ＢＴＣファイルのヘッダＨから回復されたもの）を用いてヘッダのハッシュ値ＨＶhead´が生成される。段階Ｓ１２．２では、この値がＢＴＣファイルヘッダＨから回復されたハッシュ値ＨＶheadに対してチェックされる。
チェックの結果が不満足であれば、エラーバナー（旗）が段階Ｓ１２．３で領域１２（図４に示したブラウザ４のウインドウの中）で表示される。しかし、完全性チェックが満足なものであれば、アプレット１は段階Ｓ１２．４でチェックを行ない、図７のヘッダ１から回復された版番号で特定された形式のファイルをどのように処理すべきかを知っていることを調べる。もしこのチェックの結果が不満足であればエラーバナーが段階Ｓ１２．３でブラウザ４のウインドウ内の領域１２（図４）で表示される。しかし、もしチェックが満足なものであれば、アプレットＡ１は、データ処理についてのユーザ要求を処理するときに（図７のヘッダＨ内に存在する）ファイルについての固有の著作権保護コントロール情報ＣＩの使用ができる。
段階Ｓ１２．５では、埋め込まれたファイルＥＦがアルゴリズムＥＡとキーＫEでアプレットＡ１内に前にダウンロードされたものを用いて解号化される。
段階Ｓ１２．６とＳ１２．７とでは、解号したファイルの内容の完全性が次のように確認される。段階Ｓ１２．６では、ハッシングアルゴリズムＨ４と、埋め込まれたファイルで使われたハッシングキー（ＢＴＣファイル内の埋め込まれたファイルＥＦから回復されたもの）とを用いて、ハッシュ値ＨＶembedded´が生成される。段階Ｓ１２．７では、この値がＢＴＣ埋め込まれたファイルＥＦから回復されたハッシュ値ＨＶembeddedに対してチェックされる。
このチェック結果が不満足であれば、エラーバナーが段階Ｓ１２．３でブラウザ４のウインドウ内の領域１２（図４）内で表示される。しかし、完全性チェックが満足なものであれば、アプレットＡ１は段階Ｓ１２．８でブラウザ４のウインドウの中の領域１２（図４）内に解号したファイルの内容を表示する。
このようにして、もしＢＴＣファイルが画像データを含んでいれば、その画像データが知覚できない透かしマークと一緒に図４に示したウエブページ７の領域１２内に表示される。ユーザはこの画像データをセーブしたりコピイしたりできない。Ｊａｖａがイネーブルとしたブラウザは領域１２内の画像データに対するアプレットを実行しているから、右マウスボタンの機能は領域１２に対してディスエーブルとされている。したがって、もしユーザがこのマウスを右ボタンでクリックするとメニュオプションは何も自動的に提供されず、領域１２内で表示されたデータのセービング、コピイ動作、もしくはプリントすることは何も提供されない。右マウスボタン機能は前述のようにアプレットに対する通常のＪａｖａ動作に従ってディスエーブルとされる。ユーザはブラウザ４のプリントボタンを動作できたとしても、これは低品質の画像をプリントするだけで、画像１２を含んだディジタルデータが高品質コピイを提供する目的で回復されることは許されない。
さらに、もしダウンロードされたＢＴＣファイルがブラウザ内にキャッシュされるとすると、暗号法で保護された形式でキャッシュされることになるので、キャッシュされたファイルのコピイを作ることはＢＴＣファイル内のダウンロードされたデータへのアクセスを許さない。もっとも、実質的なコードの破壊活動がユーザにより不正行為によって行なわれた場合は別である。
著作権保護機構はこれまで完全に成功しているものが存在していないとされており、その理由は、著作物がユーザに渡されるとユーザにそれを複製する機会がもたれることにあった。しかし、この発明の機構によると、著作権が保護されている作品に関して僅かな金額の支払をすることになり、この発明によって用意される保護体制を破る努力をするよりも人の心をとらえ易いものとすることを目的としている。写真複写器によって本のページをコピイするのに類推ができる。理論的には、本を借りてきて、その全ページの写真複写をすることは可能である。しかし、実際には、これは非常に不便であり、その本を別に買う方が恐らくはもっと簡単なことである。同じように、この発明について記述した例では、この著作権保護機構を破るのに費す時間よりも、その著作物を観るために支払いをする方がもっと簡単である。
この発明の範囲内に入る数多くの修正や変更がある。例えば、アプレットＡ１を実行することは、表示領域１２上の右マウスボタンを動作する際に制限された機能の組を用意するためにダウンロードした著作権コントロール情報ＣＩに従って修正することができる。例えば、表示領域１２上の右マウスボタンの動作は、表示された画像の著作権所有者についての詳細を与える著作権の注意をユーザに与えるドロップダウンメニュをオプションとして与えることができる。
また、メニュはオプションを提供できて、保護されていない形式で文書をセーブできるようにし、そのためにはその画像を最初に観るために支払った料金よりも高額な追加料金を支払わせるものである。
図５の段階Ｓ６でダウンロードされたアプレットＡ１を考えると、各ダウンロード動作に対して暗号とハッシングアルゴリズムＥＡ，ＨＡを含めることが必要でないかもしれない。アルゴリズムを秘密に保って、アルゴリズムがクライアント計算機上に予めロードされて、そのハードディスク上でデータファイル内に保持されるようにできることは好ましいにしても、本質的ではない。
もしサーバ１がクライアント３の識別子をアプレットＡ１を要求する時刻に、知っているとすると、個別の暗号とハッシングキーとは段階Ｓ６でＪａｖａバイトコードＡ１にダウンロードすることができる。図７で埋め込まれたＥＦファイルは、そこでダウンロードのために段階Ｓ１０でファイルが用意されるときには、クライアント３に固有な個別キーを用いて暗号化されてハッシュされるクライアント３に固有な個別キーの使用は安全を改善する。
どのように個別のキーが用意できるかの例を図１０，１１を参照して記述して行く。図１０は初期登録プロセスを示し、これによりクライアント３の詳細がウエブサーバ１に知られるようになる。段階Ｒ１では、クライアント３はウエブサーバ１と接触をとり、著作権保護機構に対して登録されるようにする要求をする。ウエブサーバ１は段階Ｒ２でｄｏｇｔａｇ（ドッグタグ）と呼ぶプログラムをクライアントに提供する。ドッグタグは一般にコンパクト光ディスク（ＣＤ）上に用意されており、おそらくは他のソフトウエアと組合されていて、例えばインターネット上の買物とかマイクロペイメントスキームとかのソフトウエアが付いている。このＣＤを郵便サービスによって特定のアドレスに送ることによって、ドッグタグを実行するクライアント機がそれを要求したユーザに対応していることが合理的な確かさをもつことになる。このＣＤはクライアントのハードディスク上に予めロードできる暗号とハッシングアルゴリズムＥＡとＨＡを含んでいてもよい。
段階Ｒ３では、ドックタグプログラムは機械識別コード（ＭＩＤ）を用意するために実行され、このコードはクライアントについての実質的に独特な識別を与える。ドッグタグプログラムはハードウエアとソフトウエアの両面でクライアント計算機の走査を行なう。ＭＩＤを形成するために使用できるクライアントの特性の例は次のようなものである：
計算機が含んでいる物理的部品（メモリの大きさ、ＤＣドライブの存在）
物理的部品の特性（製造元、ハードディスク上のトラックの数）
ハードディスク上の静的情報の位置（バッドセクタ）
ハードディスク上で長寿命のファイルの位置（オペレーティングシステム実行可能）
動作特性
物理的なディレクトリィとファイル構造
機械を識別するためにとくに作られたファイル
機械を識別するために長寿命ファイルに加えられたデータ
応用及びオペレーテングシステムの構成
ハードウエアの識別番号、例えばハードウエアの識別番号安全を高めるために、ドッグタグは登録目的で一度だけ走行することができる。
段階Ｒ４では、ＭＩＤはＷＷＷ２を介してウエブサーバ１にアップロードされる。段階Ｒ５では、個々の暗号キーＫ1がＭＩＤと一緒にＪａｖａアプレットのバイトコード内に埋め込まれ、Ｊａｖａアプレットが次に段階Ｒ６でクライアント３にダウンロードされて、段階Ｒ７でそのハードディスク上に記憶される。個々のキーＫ1は実際には一組のキーを含み、前述のようにハッシングと暗号化とで使用するために各クライアントに対して個別に提供される。
ここで図１１を見ると、図５の段階Ｓ９で、図１０の登録プロセスに続いて、どのように認証段階が実施できるかを示している。
段階Ｑ１では、ドッグタグプログラムが現在のＭＩＤを作るために使用される。これが段階Ｑ２では、登録プロセスの間に段階Ｒ７でクライアントのハードディスク上に記憶されたＭＩＤと比較される。もしＭＩＤが同じであると、ＭＩＤの現在値が段階Ｑ３でウエブサーバ１に送られる。
段階Ｑ４では、ウエブサーバ１は、クライアント３に送られる乱数ＲＡＮＤを構成するチャレンジを生成する。次に、段階Ｑ５ではクライアントはＲＥＳＰＯＮＳＥ（応答）を、ＭＩＤとチャレンジＲＡＮＤと記憶した個々の暗号キーＫ1との暗号法の関数として計算する。
段階Ｑ６では、ＲＥＳＰＯＮＳＥがＷＷＷ２を介してウエブサーバ１へ送られる。その間に、段階Ｑ５では、ウエブサーバはまた応答すなわちＲＥＳＰＯＮＣＥ´をクライアント３により実行されたのと同じに作る。段階Ｑ７では、ＲＥＳＰＯＮＳＥがＲＥＳＰＯＮＳＥ´と比較され、もし両者が対応すると、クライアントの認証が成功とされる。この状態では、ＢＴＣファイルはダウンロードができるのであり、図５の段階Ｓ１０とＳ１１に示したように、個別のキーでそのクライアントに固有のものが暗号とハッシングのために使用される。使用されるキーはセッションキーでよく、キーバッチとバッチ番号とから生成される。
他の形式の認証も使用できる。例えば、スマートカードはＧＳＭ移動電話と使用されるＳＩＭカードのやり方で、クライアント３に接続されたＳＩＭカード読取り器と組合せて、使用できる。これには利点があって、ユーザの識別が、クライアント計算機の識別ではなく、監視されて、ユーザが機械間で移動してもそのサービスを依然として使用できる。
図３を再び見ると、ウエブサーバ１が別の機能ブロック１３，１４，１５をもつように示されている。ブロック１３は図６の段階Ｓ１０．３とＳ１０．４とに関係する暗号法のプロセスを実行し、ブロック１４は段階Ｓ１０．２に関して記述した透かしマーク付けプロセスを実行し、またブロック１５は他のプロセスを実行する。ある場合には、別個の暗号法のサーバと透かしマークサーバとを用意してキーと透かしマーク付けとが多数の異なるウエブサーバに対する別個のサービスとして実行できるようにするのが便利とされる。
この発明について記述した例はＪａｖａプログラミング言語と使用しているが、他のハイパーメディア言語、例えはＡｃｔｉｖｅ  ＸとＯＬＥを使用できることは理解できよう。
図１０，１１を参照して述べた登録と認証プロセスとは他の認証プロセスにも使用でき、このプロセスではクライアントがウエブサーバで登録することを求めている場合である。したがって、このプロセスは他のデータ転送体制をクライアントとサーバとの間でもち、登録と認証とが必要とされるプロセスでも使用できる。
【図１】
0004637974.tif 000004
【図２】
0004637974.tif 000005
【図４】
0004637974.tif 000006
【図３】
0004637974.tif 000007
【図５】
0004637974.tif 000008
【図６】
0004637974.tif 000009
【図７】
0004637974.tif 000010
【図８】
0004637974.tif 000011
【図９】
0004637974.tif 000012
【図１０】
0004637974.tif 000013
【図１１】
0004637974.tif 000014