説明

DNSSECインライン署名

【課題】レジストリで増分的なDNSSEC署名を実行するシステム及び方法を提供する。
【解決手段】レジストリで増分的なDNSSEC署名を実行するシステム及び方法が開示され、電子署名操作がDNS追加、更新、及び/又は削除操作などを含む単一のトランザクションの一部として実行される。例の方法がリクエスタ100からドメインコマンドを受信するステップを含み、ドメインコマンドがドメインの識別子を含む。受信されたドメインコマンドが、ドメインのためのレジストリによって格納されたデータに関して実行される。ドメインコマンドの実行を含む個別のトランザクションの一部として、レジストリが権威サーバの秘密鍵を使用してドメインのためのDNSSECレコードに署名もする。DNSSECレコードが署名された後、レジストリが別のサーバ(DNSクラウド140)へ署名されたDNSSECレコードを増分的に発行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はDNSSECインライン署名に関する。
【背景技術】
【0002】
DNS(Domain Name System)は、インターネット上でTCP/IP通信を確立するのに必要とされるIP(Internet Protocol)番号へ人間が読むことができるドメイン名を翻訳するインターネット基盤の一部である。即ち、DNSのため、ユーザは、数字のIPアドレス(例えば、123.4.56.78)(インターネット上でコンピュータと通信するソフトウェアによって使用される機械可読アドレスである)より、記憶しやすいドメイン名(例えば、www.en.example.com)を使用してウェブサイト(および、他のリソース)を参照することができる。各ドメイン名が、ドットで分離された一連の文字列(ラベル)によって作成される。ドメイン名の右端のラベルが、「トップレベルドメイン」(TLD)として知られている。よく知られたTLDの例は、「.com」、「.net」、「.org」などである。各TLDは、第2レベルドメイン(TLDの左隣に記載された、例えば、「www.example.com」の「example」)をサポートする。各第2レベルドメインは、第2レベルドメインの左隣に配置された、いくつかの第3レベルドメイン(例えば、「www.en.example.com」の「en」)をサポートすることができる。付加的なレベルのドメインも存在することができる。例えば、付加的なドメインレベルを有するドメインは、「www.landscape.photos.example.com」となる。
【0003】
単一のIPアドレス(例えば、単一のサーバに割り当てられたもの)が多数のドメイン名をサポートすることができることに注意しなければならない。即ち、異なるドメイン名が同じサーバへ解決する(次いで、リクエストされたドメイン名、及び/又は、付加的な非ドメイン情報に基づき、どのようなコンテンツを提供するかを決定することができる)。これはバーチャルホスティングと称されることがある。
【0004】
付加的な非ドメイン情報は、ドメイン名を含むURI(Uniform Resource Identifier)に含まれる。例えば、「パス」部分は、フォワードスラッシュ(/)で分離された一連のセグメントである。この情報は、ドメイン名の右隣に含まれ(例えば、「www.example.com/blog/today.htm」の「blog」)、かつ、具体的なコンテンツを識別および配信するため、又は、特定のコードを実行するため、サーバ又は他の受信デバイスによって使用される。非ドメイン情報の他の例はクエリーおよびフラグメントを含む(その詳細が当業者によって理解され、かつ本明細書で詳細には述べられない)。この情報の組合せが、同じページの別の部分又は別のウェブページにユーザを移動させるウェブページハイパーリンクに含まれる。
【0005】
したがって、上記したさまざまな例で分かるように、および、当業者によって十分理解されるように、ドメイン(例えば、第2レベルドメイン「example.com」)が、異なるアドレスおよび他の識別手段を有するさまざまな異なるインターネットアクセス可能な情報を含んでもよい。
【0006】
ドメイン名の実際の登録が、ドメイン名レジストラ(registrar)と称される企業によって実行される。レジストラがレジストリでドメイン名を登録する。例えば、エンドユーザが、登録のためのドメイン名をレジストラへ提出し、かつ、ドメイン名が解決すべきIPアドレスを提供する。レジストラは、レジストリと通信して、レジストリデータベースレコード(エンドユーザによって提供されたIPアドレスへドメイン名を解決するのに使用される)を作成し、かつ、ドメイン名が登録されたレジストラの識別を示す。レジストリにおけるドメイン名登録の期限切れを除き、一般に、レジストリでドメイン名レコードにおいて指定されたレジストラだけが、ドメイン名についてレジストリデータベース情報を修正又は削除することができる。エンドユーザは、特定のドメイン移行手順に従うことによって、レジストラを切り替えることができる。また、レジストラはホストプロバイダーとして動作し、又は、エンドユーザは別の第3者のドメインホスティングサービスによってホストされたドメインを有してもよい。
【0007】
ゾーンファイルは、DNSゾーンと呼ばれるDNSの一部を記述するテキストファイルである。ゾーンファイルは、RR(resource records)の形態で体系化され、ドメイン名とIPアドレスと他のリソースとの間のマッピングを定義する情報を含んでいる。ゾーンファイルのフォーマットは基準によって定義され、各ラインが単一のリソースレコードを一般に定義する。ラインは、ドメイン名で始まるが、左がブランクの場合、以前に定義されたドメイン名をデフォルトにする。次のドメイン名は、TTL(time to live)、クラス(ほぼ必ず「internet」のための「IN」であり、めったに含まれていない)、リソースレコードのタイプ(A,MX,SOAなど)である(次に、タイプ固有のデータ(例えば、AレコードのためのIPv4アドレス))。コメントはセミコロンを使用することで含めることができ、かつ、ラインは括弧を使用することで継続することができる。また、ドル記号で始まるキーワードでマークされるファイル指令が存在する。
【0008】
DNSは、各ドメインに対して権威ネームサーバを指定することによって、ドメイン名の割り当て、および、これらの名前とIPアドレスとのマッピングの責任を分散する。権威ネームサーバはそれらの特定のドメインに対して責任を有するように割り当てられ、かつ、順に、それらのサブドメインに対して他の権威ネームサーバを割り当てることができる。このメカニズムは一般に、継続的に参照および更新される単一の中央レジスタの必要性を回避する助けとなる。DNS解決プロセスのため、ユーザは、リバースルックアッププロセス(それによって、ユーザが所望のドメインに入り、かつ、DNSが適したIP番号をリターンする)によって、所望のドメインへ向かうことができる。DNS解決プロセスの間、所定のドメイン名に対するリクエストは、リゾルバ(例えば、スタブリゾルバ)から適したサーバ(例えば、再帰的リゾルバ)へ送られて、IPアドレスを検索する。効率を改善し、インターネット上のDNSトラフィックを減少させ、かつ、エンドユーザのアプリケーションの性能を向上させるため、DNSは、DNSキャッシュサーバ(問題になっているドメイン名レコードのTTL(time-to-live)によって決定された期間についてDNSクエリー結果を格納する)をサポートする。一般に、そのようなキャッシングDNSサーバ(DNSキャッシュとも称される)も、クエリーされたドメインの権威ネームサーバまでDNSルートで始まる所定の名前を解決することが必要である再帰的アルゴリズムを実施する。一般にインターネットサービスプロバイダー(ISP)は、その顧客に対して、再帰的およびキャッシングDNSサーバを提供する。加えて、ホームネットワーキングルータが、DNSキャッシュおよびプロキシを実装して、ローカルネットワークの効率を改善してもよい。
【0009】
DNSの分散された性質がシステム全体の効率に関して重大な利点を提供するが、それは所定のタイプの機能不良、及び/又は、システムのさまざまなノードでの攻撃に対して、システムを弱くもする。発生する1つの特定の問題はDNSキャッシュポイズニングと称される。DNSキャッシュポイズニングは、権威DNSソースに由来しないDNSネームサーバのキャッシュデータベース内にデータが導入されるときに発生する。これはネームサーバに対する故意の攻撃によって生じ、又は、例えば、ミス設定されたDNSキャッシュ、又は、DNSアプリケーションの不適切なソフトウェア設計の意図的でない結果である。したがって、DNSキャッシュポイズニングは、結果的に、(1)解決リクエスト失敗(例えば、不正確又はミス設定されたIPアドレス情報が提供される)、又は、(2)リクエストしたユーザの解決リクエストの悪意のあるサイト(本物のドメインになりすまし、かつ、情報(例えば、アカウントパスワード)を不法に得るために、又は、リクエストしたユーザに配信される悪意のあるコンテンツ(例えば、コンピュータワーム又はウィルス)を配布するために使用される)への移動を生じる。
【0010】
DNSSEC(Domain Name System Security Extensions)は、IPネットワークで使用されるようなDNSによって提供される特定の種類の情報をセキュアにするための一連のIETF(Internet Engineering Task Force)仕様書である。DNSSECは、DNS対応のゾーンファイルの署名(DNSデータに対する発信元認証およびデータ完全性を保証する)、および、認証された存在の否定を提供する。一般に、DNSSEC内で提供された回答は電子的に署名され、かつ、電子署名をチェックすることによって、DNSリゾルバは、情報が権威DNSサーバに関する情報に対応するか否かをチェックすることができる。DNSSECは電子署名および認証に対して公開鍵暗号を使用する。DNSKEYレコードが、信頼された第3者である信頼の連鎖(DNSルートゾーンについて1組の検証された公開鍵から始まる)を介して認証される。
【0011】
DNSSECを実装するため、いくつかの新規のDNSレコードタイプが、DNSSECとともに使用するために作成又は適合された(RRSIG、DNSKEY、DS、NSEC、NSEC3、およびNSEC3 PARAMを含む)。例えば、DNSSECが使用されるとき、DNS検索への各権威回答が、リクエストされたレコードタイプに加えて、RRSIG DNSレコードを含む。RRSIGレコードは、回答のDNSリソースレコードセットの電子署名である。電子署名は、DNSKEYレコードで発見された正しい公開鍵を置くことによって、検証することができる。DSレコードは、信頼の連鎖を使用した検索手順でDNSKEYの認証において使用される。NSECおよびNSEC3レコードは、存在しないDNSレコードに対して認証された存在の否定の応答を提供するのに使用される。
【0012】
DNSSECの要求は、異なる鍵(DNSKEYレコードの両方に格納され、かつ、信頼アンカーを形成する他のソースから)の使用を含む。例えば、KSK(Key Signing Keys)(DNSKEYレコードに署名するために使用される)およびZSK(Zone Signing Keys)(他のレコードに署名するために使用される)が存在する。ZSKは固有のDNSゾーンの制御および使用下にあるので、それらはより容易かつより頻繁に切り替えることができる。その結果、ZSKは一般にKSKより短く(バイト長に関して)、その上、容認可能なレベルの保護を提供する。
【0013】
プロトコルはDNSSEC(KSKおよびZSKの使用を含む)の利用に対して開発されているが、レジストラおよびレジストリレベルで、大規模な使用に対して対処及び/又は最適化されていないDNSSEC使用可能なドメインを運用するさまざまな態様が存在する。例えば、短い期間に多数の署名を処理する能力が、ゾーンへの変更に基づいてゾーン全体に署名する一般的な方法に限定されている。したがって、DNSSEC管理に関する運用およびDNSSECレコードに必要な署名機能の機能性及び/又は効率性をさらに向上させる継続的な要求が存在している。
【発明の概要】
【課題を解決するための手段】
【0014】
最新のDNSSEC技術が、DNSSECデータの「分散」署名、即ち、さまざまなユーザ、DNSプロバイダーなどに分散される署名技術を含んでいる。現在、DNSSECを採用することを望むユーザには以下の基本オプションがある。
1.1組のソフトウェア鍵又はハードウェア鍵と一緒に、第3者およびオープンリソースソフトウェアの組合せを使用した自らのDNSSECソリューションを構築する。
2.Secure64 DNS Signer、BlueCat Networks、Xelerance DNSX Secure、Singer、およびInfobloxのようなDNSSEC鍵管理および署名アプライアンスを使用する。そのようなアプライアンスは、鍵管理およびゾーン署名のさまざまな態様を提供するが、クライアントサイトにハードウェアを導入する必要がある。DNSSEC鍵管理および署名アプライアンスが、ユーザサイトでのハードウェアの実装を必要とし、鍵マテリアルのより詳細な管理を必要とし、かつ、1人より多くのユーザをサポートしないことに注意しなければならない。
3.DNSSECをサポートするように更新された管理DNSソリューションを使用する。管理DNSプロバイダーは、ゾーン管理およびゾーン発行機構を含む。DNSSECを使用可能なため、クライアントは管理DNSゾーンに対してDNSSECを「ターンオンする」ことができるが、ユーザは管理DNSプロバイダーへユーザのDNSホスティングを移行又は外部委託することを要求される。
【0015】
また、DNSSECにサポートを追加するドメインレジストリに対する1つのアプローチは、DNSSEC DS(Delegation signer)情報を許可し、未署名のゾーンを生成し、次いで、発行のためゾーン全体に署名することである。しかし、膨大なレジストリ(例えば、.comおよび.netレジストリ)へのDNSSECの導入にともなって、DNSSECデータに対するさまざまな分散署名技術および他の署名技術における効率の悪さ(特に、大規模なゾーンに関して)が、遅延および解決失敗を含む解決に関する潜在的課題をもたらす。そのような課題が、電子商取引および他の高トラフィックサイトに大きな弊害をもたらす。本発明は、さまざまな増分署名技術(incremental signing technique)を通じて、権威ソース(例えば、ドメインに関与するレジストリ)でのDNSSEC使用可能ゾーンの効率的な署名において利点を提供する。例えば、レジストリ(又は、DNSデータにおける特定の変更に気付いている、又は、DNSデータにおける特定の変更に対して注意を喚起される他のエンティティ)の観点からアプローチしたとき、DNSデータの部分(追加、変更、及び/又は、削除操作などの対象である)が識別される(ゾーン全体に再署名せず、署名、さまざまにコミット、および報告される)。態様では、DNS更新操作および影響されるDNSSECレコードの署名が、本明細書では「インライン署名(inline signing)」と称される単一のトランザクション(例えば、極小の、一貫した、分離された、かつ、耐久性のある仕事のユニット)態様の一部として実行される。
【0016】
態様では、DNSSECインライン署名が、ドメインコマンドでDNSSEC署名インラインを実施することを含んでいる。例えば、責任のあるレジストリが、DNSSEC DS情報を許可し、かつ、同じトランザクション内で署名されたDNSSECレコードを作成し、その後、1つの権威ソースからDNSの外部へ署名された情報を増分的に発行する。そのような権威署名は、他の分散署名技術に対して利点を提供するが、一般に、本発明のさらなる態様によって対処される拡張性において課題を呈する。本発明の態様によれば、レジストリデータベースが、DNSSECインライン署名を介して、DNSSECゾーンで発行されたレコードのすべてに対して、単一の権威ソースとして動作してもよい。
【0017】
本明細書にさらに開示されるように、レジストリ(又は、DNSデータの特定の変更に対して気が付いているか、又は、注意喚起される他のエンティティ)における増分DNSSEC署名を実施するシステムおよび方法は、DNS追加、更新、及び/又は、削除操作などを含む単一のトランザクションの一部として、電子署名操作を実施することを含んでいる。例示的な方法は、リクエスタからドメインコマンドを受信するステップを含み、ドメインコマンドはドメインの識別子を含んでいる。受信されたドメインコマンドは、ドメインに対するレジストリによって格納されたデータに関して実行される。DNSSECデータ変更も受信されたドメインコマンドに基づき識別される。また、ドメインコマンドの実行を含む個別のトランザクションの一部として、レジストリが、秘密鍵(例えば、権威サーバの秘密鍵)を使用して、ドメインに対するDNSSECレコードに署名する。態様は、レジストリでトランザクションをコミットするステップを具備する。本明細書で使用されるように、トランザクションコミットが、トランザクションの範囲内で、すべてのデータ操作に適用し、かつ、データベースへ結果を保存する操作として、理解される。態様は、DNS基盤へコミットされたトランザクションを伝えるステップを具備する。態様では、例えば、レジストリが別のサーバへ署名されたDNSSECレコードを増分的に発行する。
【0018】
本発明の態様によれば、態様は、リクエスタからドメインコマンドを受信することを含むレジストリでDNSSEC署名を実行するためのシステムおよび方法を含んでいる。ドメインコマンドは、ドメインの識別子、および、例えば、ドメインに関する追加、修正、及び/又は、削除コマンドのうちの少なくとも1つを具備している。態様は、ドメインについてレジストリによって格納されたデータに関して、受信されるドメインコマンドを実行するステップを具備している。ドメインコマンドの実行を含む個別のトランザクションの一部として、ドメインに対するDNSSECレコードが電子署名される(例えば、権威サーバの秘密鍵を使用して)。署名されたDNSSECレコードが別のサーバ(例えば、DNSサーバ)へ増分的に発行される。
【0019】
態様は、ドメインコマンドが1又は複数のDNSSEC DS(Delegation Signer)要素を含むことを含む。態様では、ドメインコマンドが、1又は複数の関係するDNSSEC DS(Delegation Signer)レコードを生成する1又は複数のDNSKEY要素を含む。
【0020】
態様では、例えば、リクエスタは、レジストラ、DNSサービスプロバイダー、又は、登録者(registrant)である。態様では、ドメインは、レジストリのトップレベルドメインの下の第2(又は、より高い)レベルドメインである。
【0021】
態様では、方法が、レジストリの権威サーバによって、複数のレジストラからドメインに対して実行される。態様では、DNSレコードの署名が、レジストリの権威サーバによって、複数のレジストラから少なくとも2つのドメインに対して実行される。
【0022】
態様では、DNSレコードの署名が、レジストリに対して複数の署名サーバによって実行される。
【0023】
また、態様は、追加、更新、削除コマンドのうちの少なくとも1つに基づき、NSEC又はNSEC3連鎖へ変更をコミットするステップを具備している。
【0024】
本発明のさらなる態様によれば、態様が、レジストリへ、レジストリの中に、又はレジストリから、DNSSEC関連のドメイン名を追加、更新、又は削除するうちの少なくとも1つの第1コマンドをリクエスタから受信するステップと、レジストリデータベースに格納されたデータを追加、更新、及び/又は削除する前記第1コマンドからの命令を実行するステップとを含む、レジストリでDNSSEC署名を実行する方法およびシステムを具備している。態様では、コマンドの実行は、電子署名データを適用するステップを含まない。態様では、レジストリ(又は、他のサービス)が、命令が実行されたことをリクエスタへ報告する。第1コマンドからの命令の実行から離れ(実行の報告の後であってもよい)、電子署名が、追加、更新、及び/又は、削除変更に基づいて生成され、かつ、電子署名がレジストリレゾリューションデータベースへコミットされる。また、態様は、DNSへ(ドメインコマンドに基づき)非DNSSEC変更、及び/又は、DNSSEC変更を発行するステップを具備している。態様では、非DNSSEC変更およびDNSSEC変更が、DNSへ非同期的にシステムによって発行される。
【0025】
本発明のさらなる態様によれば、態様は、レジストリへ、レジストリの中に、又はレジストリから、DNSSEC関連のドメイン名を追加、更新、又は削除するうちの少なくとも1つの第1コマンドをリクエスタから受信するステップと、レジストリデータベースに格納されたデータを追加、更新、及び/又は、削除する前記第1コマンドからの命令を実行するステップと(実行は電子署名データを適用するステップを含まない)、第1コマンドに関する保留中のDNSSEC変更を示すデータベースエントリを生成するステップと、前記追加、更新、及び/又は、削除変更に基づき、電子署名を生成するステップと、データベースエントリをクリアするステップとを含む、レジストリでDNSSEC署名を実行するためのシステムおよび方法を具備している。また、態様は、DNSへデータベースエントリを発行するステップを具備している。
【0026】
追加的な特徴、利点、および本発明の態様は、以下の詳細な説明、図面、および請求項の検討から、説明され、又は明らかである。さらに、上記した本発明の概要および以下の詳細な説明の両方が、例示であり、かつ、本発明の特許請求の範囲を限定することなくさらなる説明を提供することを意図したものであることを理解しなければならない。しかし、詳細な説明および特定の例は、単に本発明の好ましい実施例を示したものである。本発明の真の趣旨および範囲から逸脱することなく、多様な変形例および改良例が詳細な説明から当業者には明らかとなる。
【0027】
本発明のさらなる理解を提供するよう含まれた添付の図面が、組み込まれ、本明細書の一部を構成し、本発明の実施例を図示し、詳細な説明とともに、本発明の原理を説明するのに用いられる。本発明の基本的理解および実施される多様な方法に必要であるよりもさらに詳細に本発明の構造的詳細を示していない。
【図面の簡単な説明】
【0028】
【図1】本発明の実施例のインライン署名構成の関係図である。
【図2】本発明の実施例1のDNSSECデータに署名するステップの例のプロセスフローである。
【図3】本発明の実施例のDNSSEC使用可能署名システムのさらなる詳細図である。
【図4】本発明の実施例のDNSSEC使用可能署名システムのさらなる詳細図である。
【図5】本発明のさらなる実施例のダウンストリームレゾリューションデータベース署名構成の関係図である。
【図6】本発明のさらなる実施例のダウンストリームレゾリューションデータベース署名プロセスの例のプロセスフローである。
【図7】本発明のさらなる実施例のルックアサイドデータベース署名構成の関係図である。
【図8】本発明のさらなる実施例のルックアサイドデータベース署名プロセスの例のプロセスフローである。
【図9】本発明の実施例で使用される例のコンピュータネットワークアーキテクチャの図である。
【発明を実施するための形態】
【0029】
本発明が本明細書に開示された特定の方法、プロトコルなどに限定されないことが理解される(当業者に理解されるようにそれらが多様に変化するため)。また、本明細書に使用された用語が特定の実施例だけを説明する目的に使用され、本発明の範囲を限定することを意図しないことを理解しなければならない。また、本明細書および特許請求の範囲に使用されるとき、単数形態”a”、“an”および“the”は、コンテキストが明確に指定しない限り、複数の言及を含むことに注意しなければならない。したがって、例えば、「サーバ」への言及は、1又は複数のサーバ、および、当業者に既知のその均等物への言及である。
【0030】
他に定義されない限り、本明細書で使用される技術用語は、本発明が関わる当業者に一般に理解されるものと同じ意味を有する。本発明の実施例、および、多様な特徴、および、それについての利点の詳細は、添付の図面に説明及び/又は図示され、かつ、以下の説明に詳述された非限定的な実施例および実例を参照してさらに完全に説明される。図面に示された特徴は必ずしも一定の縮尺で描かれておらず、かつ、仮に本明細書に明確に述べられていなくても、1つの実施例の特徴が、当業者が理解するように他の実施例で利用されることに注意しなければならない。周知のコンポーネントおよび処理技術の記載は、本発明の実施例を不必要に分かりにくくしないように省略される。本明細書に使用された例は、単に、本発明が実施される方法の理解を助けること、および、当業者が本発明の態様を実施することをさらに可能にすることを目的としている。したがって、本明細書の実施例および実例は、本発明の範囲を限定するものとして解釈されるべきでなく、特許請求の範囲および適用される法によってのみ定義される。さらに、類似の参照数字が図面のいくつかの表示にわたって同様の部分を参照することに注意しなければならない。
【0031】
本明細書で使用されるとき、他に限定されない限り、レジストラ(registrar)は、ドメイン名レジストリと相互作用し、かつ、登録者(registrant)がドメイン名リソースを作成および更新することを可能にするエンティティ又は組織であると理解される。
【0032】
本明細書で使用されるとき、他に限定されない限り、登録者は、ドメイン名リソースを作成および更新するレジストラと相互作用する人又は組織であると理解される。
【0033】
本明細書で使用されるとき、他に限定されない限り、DNSホスティングプロバイダーは、DNSプロビジョニングおよびそのコンテンツについて解決能力を提供する、登録者の代わりに、そのサーバにコンテンツをホストするエンティティ又は組織であると理解される(例えば、IPアドレスを割り当て、それが管理するそれらのIPアドレスへドメイン名を解決することができるネームサーバを運営する)。
【0034】
本明細書で使用されるとき、他に限定されない限り、データベースは、例えば、コンピュータシステムによる使用のための離散及び/又は関係情報について格納およびアクセスするようにフォーマットされた多様な電子記憶装置アプリケーション(例えば、ローカル及び/又は分散ファイルシステム、データファイル、データウェアハウス、構造化データベース、リレーショナルデータベース、ローカル及び/又は分散データベース、ハイブリッドデータベース、データベース内の離散データ構造及び/又はスキーマなど)を含むことを広く理解しなければならない。
【0035】
本発明の実施例によれば、DNSホスティング移行をともなうドメイン−スポンサーシップ移行をサポートするためのシステムおよび方法が、例えば、レジストラの間のドメイン移行(「ドメイン−スポンサーシップ移行」と称される)と、DNSホスティングにおける移行(「DNSホスティング移行」と称される)とを含んでもよい。ドメイン移行の場合、多くのレジストラがDNSホスティングプロバイダーであるので、両方の移行が一般に含まれ、かつ、登録者が、多くの場合、それらのレジストラによって提供されるDNSホスティングを利用する。以下の例は、同じレジストラの間のDNSホスティング移行を含むレジストラの間のドメイン−スポンサーシップ移行に含まれたステップを示している。
【0036】
本発明の実施例は、大規模なDNSSECプロバイダー(例えば、レジストリ)が、効果的かつ一貫した方法で、多数のDNS変更(DNSSEC署名データを含む)を処理することを可能にする、多様なインライン署名技術を提供する。
【0037】
ゾーン署名の概要
【0038】
上記したように、DNSSECは、キャッシュポイズニング、および、一連の他のDNS脆弱性(例えば、介入者攻撃、および、権威サーバにおける不正データ修正)に対応することを意図したものである。その主な目的は、DNSデータについて発信元認証、および、完全性保護を提供することである。PKI(Public Key Infrastructure)は、公開鍵配布の手段として使用してもよい。DNSSECは、DNSデータについて検証メカニズムを提供し、暗号化メカニズムではない。DNSSECにより、セキュリティを意識したリゾルバは、受信されたゾーンデータが秘密鍵を保持するゾーンの管理者によって署名されていることを検証することができる。
【0039】
DNSKEYリソースレコード
【0040】
ゾーンは、1又は複数の鍵ペアを有し、それぞれが秘密鍵と公開鍵とを含んでいる。秘密鍵は、ドメイン名データベースにセキュアに格納され、かつ、ゾーンデータに署名するのに使用される。公開鍵は、データベースに格納され、また、DNSKEYリソースレコードとして署名済みゾーンデータに格納される。公開鍵はゾーンデータを検証するのに使用される。DNSKEYレコードは、一般に以下のデータ要素を有する。
フラグ:「ゾーン鍵」および「セキュアエントリポイント」
プロトコル:3の固定値(後方互換性のため)
アルゴリズム:公開鍵の暗号化アルゴリズム
公開鍵:公開鍵データ
【0041】
DNSKEY RR(Resource Record)は、ZSK(Zone Signing Key)又はKSK(Key Signing Key)であってもよい。KSK(Key Signing Key)はSEPフラグセットを有し、したがって、それらはDNSKEY RRセットのZSKとは区別される。KSK(Key Signing Key)は、他のDNSKEYリソースレコードに署名するのに使用され、かつ、検証される必要のあるデータに対する権限の連鎖を構築するのに使用される。
【0042】
RRSIGリソースレコード
【0043】
RRSIGリソースレコードは、リソースレコードセット(RRセット(同じ名前、クラス、およびタイプを有する1又は複数のDNSレコード))のDNSSEC署名を保持する。DNSSEC使用可能リゾルバが、DNSKEYレコードに格納された公開鍵で、署名を検証することができる。RRSIGレコードは以下のデータ要素を有する。
カバーされるタイプ:この署名がカバーするDNSレコードタイプ
アルゴリズム:署名を作成するのに使用される暗号化アルゴリズム
ラベル:オリジナルのRRSIGレコード名のラベルの番号(ワイルドカードを検証するのに使用される)
オリジナルのTTL:カバーされたレコードセットのTTL値
署名満了:署名が満了するとき
署名開始:署名が作成されたとき
鍵タグ:この署名を検証するのに使用されるDNSKEYレコードを迅速に識別するのに役立つ短い数字の値
署名者の名前:この署名を検証するのに使用されるDNSKEYレコードの名前
署名:暗号化された署名
DNSKEY RRは、アクティブな鍵署名鍵によって署名される。他のRRセットはアクティブなゾーン署名鍵だけによって署名される。
【0044】
NSECリソースレコード
【0045】
NSECリソースレコードが2つの別の物をリスト化する(権威データ又は委任ポイントNS RRセットを含む次の所有者の名前(ゾーンの正規順序での)、および、NSEC RRの所有者名に存在するRRタイプのセット)(RFC3845)。ゾーンのNSEC RRの完全なセットが、どの権威RRセットがゾーンに存在し、また、ゾーンの権威所有者名の連鎖を形成するかを示す。これらレコードが、リゾルバによって使用されて、DNSSEC検証の一部として、レコード名およびタイプの非存在を検証することができる。NSECレコードは以下のデータ要素を有する。
次のドメイン名:ゾーンの次のレコード名(DNSSEC並べ替え順序)
レコードタイプ:このNSECレコードの名前について存在するDNSレコードタイプ
【0046】
NSEC3リソースレコード
【0047】
NSEC3 RR(Resource Record)が、DNSリソースレコードセットに対して認証された存在の否定を提供する。NSEC3 RRは、NSEC RRと同じ機能を有する(NSEC3が暗号化的にハッシュ化されたレコード名を使用して、ゾーンのレコード名の列挙をしないことを除く)。NSEC3レコードは、ゾーンの次のレコード名へリンクし(ハッシュ化された名前の並べ替え順序で)、かつ、NSEC3レコードの自らの名前の第1ラベルでのハッシュ値によってカバーされた名前のために存在するレコードタイプをリスト化する。これらレコードはリゾルバによって使用されて、DNSSEC検証の一部として、レコード名およびタイプの非存在を検証することができる。NSEC3レコードは以下のデータ要素を有する。
ハッシュアルゴリズム:使用される暗号化ハッシュアルゴリズム
フラグ:「Optアウト」(委任が署名されるか否かを示す)
繰り返し:ハッシュアルゴリズムが適用される回数
ソルト:ハッシュ計算についてのソルト値(salt value)
次のハッシュ化された所有者名:ゾーンでの次のレコードの名前(ハッシュ化された名前並べ替え順序で)
レコードタイプ:NSEC3レコードの自らの名前の第1ラベルにおいてハッシュ値によってカバーされる名前に対して存在するレコードタイプ
【0048】
例のインライン署名構成の実施例が図1に示されている。図1に示すように、リクエスタ100(例えば、登録者、レジストラ、又は、DNSプロバイダー)が、レジストリプロビジョニングシステム110と通信してもよい。リクエスタ100が、既存又は新規のドメインに関するコマンドを通信してもよい。例えば、リクエスタ100が、レジストリによって管理されるTLD(例えば、.com)下のドメインについて、レジストリ(例えば、DNSデータ)によって管理されるDNSデータを変更するコマンドを通信してもよい。レジストリプロビジョニングシステム110が、多様な方法(例えば、変更コマンドを実行する(例えば、追加、修正、又は削除コマンド)、DNSSECデータ変更を識別する、適切な鍵を識別する、電子署名を適用する、レジストリデータベース120へDNSおよびDNSSEC変更を保存させるなど、を含む)でリクエスタ100からのドメインコマンドを処理してもよい。
【0049】
実施例では、レジストリデータベース120へレジストリプロビジョニングシステム110によって提供されるデータが、ドメインのためのDNS情報、および、署名されたDNSSECデータを含んでもよい。実施例では、DNS変更およびDNSSEC変更を、単一のトランザクション内で実行してもよい。いったんドメインのためのDNS情報、および、署名されたDNSSECデータがレジストリデータベース120へ保存されると、トランザクションがコミットされる。トランザクションコミットの後、ドメインのためのDNS情報、および、署名されたDNSSECデータが、より広いDNSクラウド140(他の権威サーバ、再帰的DNSサーバなどを含む)へ伝えられる。
【0050】
例のDNSSEC署名サービスのさらに詳細が図2および図3に示されている。図1〜3に示された署名サービス構成が本発明の実践的側面において使用されるが、本明細書に開示されるインライン署名技術が、多様な他の構成を用いた多数の異なる署名サービスに適用されることに注意しなければならない。図2に示すように、レジストリ(又は、DNSSECサービスプロバイダー)が、いくつもの署名サーバ342,346を備えてもよい。例えば、複数の署名サーバが図1に示されたプロビジョニングシステム110を含んでもよい。署名サーバ342,346が、適切な電子署名鍵を含む実際の電子署名機能を含むHSM(Hardware Security Module)344,348(及び/又は、ソフトウェア)をそれぞれ含んでもよい。署名サーバ342,346が、多様なアプリケーション、サービス、およびツール310,320,330と通信してもよい(かつ、例えば、署名されたDNSデータおよび未署名のDNSデータを交換してもよい)。各CAS310、NCCプラグインビジネスサービス320、およびバッチ/ツール330コンポーネントが、署名サーバ(好ましくは、一連のそのようなサーバ)への接続を有する。署名サーバ342,346が、データベース350へ署名されたDNSデータを保存してもよい。アプリケーション、署名サーバ、HSM、およびデータベースの間の例のデータフローの追加的な詳細が図3に示されている。
【0051】
図3に示すように、例えば、クライアント510が、図1に示されたプロビジョニングシステム110のフロントエンドサービスを表す(署名サーバ512によって署名される必要があるDNSSECデータを識別するように構成される)。署名されるDNSSECデータが、解析され又はドメインコマンドに基づき別の方法で識別され、リンク541で示すように、署名サーバ512へ提供される。情報(例えば、バイト、鍵タイプ(ZSK、KSK)、およびTLD)を含んでもよい。署名サーバ512が、送信541から適した鍵情報、及び/又は、HSMを識別してもよく、かつ、リンク542で示されるように、適したHSM514へ未署名のデータを渡してもよい。これは、例えば、バイト、鍵エイリアス、および署名アルゴリズムを有する署名コマンドを含んでもよい。
【0052】
署名サーバ512が、HSM514へデータを送信するときに権威データ(使用する鍵エイリアス)についてデータベース520を周期的にチェックするように構成される。HSM514は、初期時間でTLDごとに多数の鍵をロードし(一部はZSKであり、一部はKSKである)、かつ、各鍵がエイリアス(鍵エイリアス)によってHSM514に知られている。クライアント510が、使用する2種類の鍵(ZSK又はKSK)のどれかおよびTLDを署名サーバ512に教えるように構成され、かつ、署名サーバ512が、署名のためHSMと通信するとき、その種類の鍵について現在の鍵エイリアス名を識別するように構成される。また、署名サーバ512が、現在の鍵エイリアスについてデータベース520を再チェックするようにされる。このコマンドは、例えば、JMX管理インターフェースを介して、署名サーバ512へ発行される。
【0053】
HSM514は、適した鍵でDNSSECデータに署名し、かつ、リンク543で示されるように、署名サーバ512へ署名されたデータを戻す。署名サーバは、リンク544で示されるように、クライアント510へ署名されたDNSSECデータ(又は、トランザクションコミット情報などの他のデータ)を戻す。
【0054】
本発明の実施例に従って処理される関係したドメインコマンド操作の例が以下に開示される。
【0055】
DNSSECデータをともなうドメイン作成
【0056】
ユーザがDNSSECデータを伝えたドメイン作成の間(これらのデータが、提出される各DS(Delegation Signer)レコードに必要である4フィールドである)、レジストリが、以下の決定を実行し、かつ、以下のアクションを行う。
DSレコード(複数可)のための電子署名を生成および格納する。
ドメインがゾーンにおける発行にふさわしいか否かを決定する。
その場合、
そのNSEC3レコードを作成する。
NSEC3レコードに署名する。
NSEC3連鎖(データベースに格納されたリンクされたリストに、類似した)におけるその正しい位置を識別し、かつ、連鎖への最小の変更でその新規NSEC3レコードを挿入する。これは、変更しなければならない連鎖におけるリンクを非常に迅速に識別するステップと、それらの最小数(1である)を固定するステップと、挿入を実行し、かつ、本物のかつ一貫したNSEC3連鎖でエンドへ再リンクするステップと、を具備してもよい。
【0057】
新規DSデータをともなうドメイン更新
【0058】
新規DSデータをともなうドメイン更新の間、レジストラも、ドメインへの他の変更を含んでもよい。これら他の変更が、ドメインのゾーン状態を変更する。したがって、レジストリは、
DSレコード(複数可)のための電子署名を生成および格納する。
ドメインがゾーンでの発行にふさわしいか否か、および、それがすでにゾーンに存在するか否かを決定する。
ドメインがゾーンに存在せず、そして、現在ゾーンに存在する場合、
そのNSEC3レコードを作成する。
NSEC3レコードに署名する。
NSEC3レコードのための電子署名を格納する。
NSEC3連鎖におけるその正しい位置を識別し、かつ、連鎖への他の更新に関する最小の「ブロックキング」でその新規NSEC3レコードを挿入する。これは、変更しなければならない連鎖におけるリンクを非常に迅速に識別するステップと、それらの最小数を固定するステップと、挿入を実行し、かつ、本物のかつ一貫したNSEC3連鎖でエンドへ再リンクするステップと、を具備してもよい。
ドメインがゾーンに存在せず、そして、現在、ゾーンに存在すべきではない場合、
NSEC3連鎖におけるドメインのレコードを位置付ける。
連鎖への他の変更に関する最小の「ブロッキング」でそのNSEC3レコードを除外する。これは、変更しなければならない連鎖におけるリンクを非常に迅速に識別するステップと、それらの最小数を固定するステップと、レコード削除を実行し、かつ、本物のかつ一貫したNSEC3連鎖でエンドへ再リンクするステップと、を具備してもよい。
【0059】
DSデータの削除をともなうドメイン更新
【0060】
DSデータの削除をともなうドメイン更新の間、レジストラもドメインへの他の変更を含んでもよい。これら他の変更が、ドメインのゾーン状態を変更してもよい(例えば、削除の後、ドメインに残りのDSレコードがない場合、ドメインはもはやゾーンにふさわしくない)。したがって、レジストリは、
ドメインが残りのDSレコードを有するか否かを決定する。
そうでない場合、レジストリが、NSEC3連鎖からドメインを削除してもよい(ステップについて以下を参照)。また、レジストリが、削除されるDSデータのための既存の電子署名を削除してもよい。
その場合、レジストリが、残りのDSレコードのための電子署名を再生成してもよい。ドメインがゾーンにおける発行にふさわしいか否か、および、それがゾーンにすでに存在するか否かを決定する。
ドメインがゾーンに存在せず、そして、現在ゾーンに存在する場合、
そのNSEC3レコードを作成する。
NSEC3レコードに署名する。
NSEC3レコードのための電子署名を格納する。
NSEC3連鎖におけるその正しい位置を識別し、かつ、連鎖への他の更新に関する最小の「ブロッキング」でその新規NSEC3レコードを挿入する。これは、変更しなければならない連鎖におけるリンクを非常に迅速に識別するステップと、それらの最小数を固定するステップと、挿入を実行し、かつ、本物のかつ一貫したNSEC3連鎖でエンドへ再リンクするステップと、を含んでもよい。
ドメインがゾーンに存在せず、そして、現在ゾーンに存在すべきでない場合、
NSEC3連鎖におけるドメインのレコードを位置付ける。
連鎖への他の更新に関する最小の「ブロッキング」でそのNSEC3レコードを削除する。これは、変更しなければならない連鎖におけるリンクを非常に迅速に識別するステップと、それらの最小の数を固定するステップと、レコード削除を実行し、かつ、本物のかつ一貫したNSEC3連鎖でエンドへ再リンクするステップと、を含んでもよい。
【0061】
上記したプロセスの態様が一般に図4に示されている(本明細書に開示された例のインライン署名のステップを示す)。他のステップの前(又は後)に発生すると特に記載されない限り、図2に示されたステップが、本発明の範囲から逸脱することなく、多様な順序で(及び/又は、同時に)行われることに注意しなければならない。
【0062】
方法が、ドメインコマンド(例えば、追加、修正、及び/又は、削除コマンド)が受信されるS1010で始まる。S1020で、ドメインコマンドが解析されて、例えば、コマンドが適用するドメイン、適用可能なTLD、コマンドのタイプ、DNS変更などを識別してもよい。方法がS1022に続く。
【0063】
S1022で、ドメインコマンドで識別された変更が実行のために処理される。本明細書に述べたように、そのような変更の実行が、例えば、DNSSEC署名機能などの多数の異なるデータベース操作を含む単一のトランザクション(例えば、T1021)に含まれる。S1030およびS1040で、例のシステム(例えば、図1に示したプロビジョニングシステム110)が、ドメインコマンドの結果として、DNSSECデータ(実施されたか、又は実施される変更に基づき、追加及び/又は変更される、かつ/又は、署名又は再署名される必要のある)を識別してもよい。例えば、これは、DNSSEC関連の変更のためのコマンド、オペレーション、及び/又は、データを解析するステップと、署名及び/又は再署名される必要のあるDNSSECデータを識別するステップとを含んでもよい。
【0064】
S1050で、適したDNSSEC鍵、署名プロトコル(及び/又は、適したHSM)が、署名される必要のあるデータに基づき識別される。その決定が、例えば、データが存在する、ドメイン、及び/又はドメインのTLDを含むさまざまな要因に基づき実施される。
【0065】
S1060で、例えば、DNSSECデータが、1又は複数のHSM(例えば、図2に示されたHSM344,348、又は、図1に示されたプロビジョニングシステム110に含まれたHSM)によって署名される。DNSSECデータが署名され、かつ、他のDNS変更が実行されるとき、変更が、レジストリデータベースなどへ保存される。トランザクションT1021のための要求されたDNS変更、および、DNSSEC署名が完了した後、トランザクションがS1070でコミットされる。
【0066】
S1070でのトランザクションコミットの後、S1072で、トランザクションT1021のためのDNS変更、および、DNSSEC署名が、DNSに発行される。図4に示された方法のステップが、単一のトランザクションの間に完了される関連するDNSSECおよびDNS更新機能のすべての包括的な表示ではないことに注意しなければならない。例えば、多様なDNS更新操作との関連で上記した多様なNSEC更新ステップ(および他の機能)も、当然、トランザクションT1021に含まれる。
【0067】
発明者は、最も時間のかかる、したがって、最も最適化されるDNSSECトランザクションの部分が、NSEC3連鎖の更新のすぐ後に続く、電子署名の生成および格納であることが分かった。ドメインのTLDのためのDNSゾーンファイルの内外へドメインが移動するときにはいつでも、NSEC3連鎖の更新が発生することに注意しなければならない。TLDゾーンファイルにふさわしいためには、ドメインが、
そのために定義された委任ネームサーバを備えなければならない。
ホールド状態ではない。
レジストリから削除されない。
【0068】
したがって、DNSSEC使用可能ドメインのどのような変更でも、そのゾーン状態を変更する可能性を有する。
【0069】
上記したように、DNSSEC署名が、トランザクションで同時インラインに実行され、かつ、権威レジストリデータベースに保存される。DNS解決が、レジストリデータベースにおいて各コミットされたトランザクションをとることができ、かつ、DNSサーバへ増分的にそれを適用することができる。
【0070】
本発明の実施例によれば、ドメインレジストリのドメインコマンドをともなうDNSSEC署名インラインが、例えば、レジストリデータベースがDNSにおいて発行される権威ソースを常に示すことを確実にすることによって、最高レベルのデータ完全性を維持することにおいて利点を提供する。また、データ完全性の利点に加えて、DNSSEC署名インラインは、増分更新を効率的に実施する。例えば、ゾーンの一部だけが個別のドメインコマンドによって影響を受け、したがって、ドメインコマンド更新および付加的DNSSEC更新の両方が、仕事の個別ユニット(即ち、個別のトランザクション)としてDNSへ伝搬される。これは、DNSに対するDNSSEC更新を含むドメインレジストリ更新を伝搬するステップにおいて、非常に低い遅延をもたらすことが発明者によって分かった。
【0071】
DNSSECインライン署名の実施例の一部として、図2,3に示すようなネットワーク対応および高性能の署名サーバ群が、DNSSEC情報を署名するために設けられる。これが、最大のTLDとの関連でさえ効果があることが分かり、かつ、高レベルのデータ完全性を有するDNS伝搬SLAを維持することと同様に、ドメインレジストリ応答時間SLAを維持する。
【0072】
ドメイン更新コマンド(DSレコードを提出するレジストラ(registrar)を含まない)の後、DNSSEC署名が発生することに注意しなければならない。例えば、DNSSEC使用可能ドメインからすべてのネームサーバを削除することは、ドメイン更新コマンドであるが(レジストラがDNSSECデータを渡さない)、それが署名を生成することをもたらす。したがって、本発明の特定の実施例がレジストラ(所定のレジストリに関する複数のレジストラを含む)からのリクエストに応答することに適用されるが、本発明はそのようなシナリオに限定されない。
【0073】
上記したインライン署名技術に加えて、発明者は、本発明の実施例に従って実施される他の方法も確認した。例えば、発明者は、例えば、レジストリ(又は、他の管理されたサービスプロバイダー)によるDNSSEC署名操作の実施に適用される多様な「ダウンストリームレゾリューションデータベース」および「ルックアサイド」技術を開発した。例のダウンストリームレゾリューションデータベースシステムの実施例が図5を参照して説明される。
【0074】
図5に示すように、ダウンストリームレゾリューションデータベース技術が、追加のレゾリューションデータベース222と、レゾリューションデータベース222へレジストリデータベース122などからDNS変更を通信するレゾリューションデータベースプロセス333とを備えてもよい。上記したように、本明細書で使用されるとき、「データベース」は広く理解しなければならず、かつ、データベース内の離散データスキーマ又はテーブルなどを含んでもよい。ダウンストリームレゾリューションデータベースアプローチでは、ダウンストリームレゾリューションデータベース222が、DNS140へ増分更新を提供するための権威データベースであってよい。すべての標準ドメインデータ(例えば、非DNSSECデータ)が、追加のDNSSEC処理を伴わないレジストリクライアント111からの入力に基づき、レジストリデータベース122へ書き込まれる。トランザクションが、レジストリ−レゾリューションデータベースプロセス333によって、レゾリューションデータベース222へレジストリデータベース122から順に伝搬される。レジストリ−レゾリューションデータベースプロセス333が、DNSSECに影響を及ぼすトランザクションを識別し、かつ、DNSSEC署名およびレゾリューションデータベース222へ書き込まれるレコード更新を実行してもよい。したがって、レゾリューションデータベース222が、DNSサーバのネットワークのための権威データベースであってもよい。クラウド内のDNSサーバがレゾリューションデータベース222に含まれるもののメモリ内表示であるので、レゾリューションデータベース222からDNS140へ一方向矢印がある。
【0075】
そのようなアプローチの1つの利点は、DNSSECのためのレジストリクライアントにさらされる余分な時間又は従属関係がほとんど又は全く存在しないことである(DNSSECプロセスが、レジストリ−レゾリューションデータベースプロセス333の別のトランザクションにおいて非同期的に実行されるので)。この点について、発明者は、DNSSECデータを受け入れることができるレジストリが電子署名の時間集約的かつプロセッサ集約的な生成を実行する必要があることに注目している。このため、レジストリが、OLTPトランザクションの外部で、これらの署名生成タスクを行うように選択してもよい。これは一般にレジストリに以下を必要とする。
1.レジストリへ/の中に/からDNSSEC関連のドメイン名を追加、更新、又は削除するコマンドを受信する。
2.電子署名データを引いた、操作に起因するデータをレジストリデータベースにコミットする。
3.要求される電子署名を生成して、OLTPトランザクションの結果として、DNSSECデータへの変更を反映する。
4.レジストリ/レゾリューションデータベースに電子署名および他のDNSSECデータ(例えば、NSEC又はNSEC3連鎖への変更)をコミットする。
【0076】
ステップ3,4を自らの別のデータベーストランザクションに分離することにより、レジストリは、ステップ2が完了した後、顧客へ早急な返答を送信することができる(顧客応答時間に影響を及ぼすことなく、非同期的に実行される比較的遅いステップ3,4から離れて)。
【0077】
上記したプロセスの態様が一般に図6に示されている(本明細書に開示されるダウンストリームレゾリューションデータベースのための例の処理ステップを示す)。他のステップの前(又は後)に生じると特に説明されない限り、図6に示されたステップが、本発明の範囲を逸脱することなく、多様な順序で(及び/又は同時に)行われることに注意しなければならない。
【0078】
方法がS2010から始まる(ドメインコマンド(例えば、追加、修正、及び/又は削除コマンド)が受信される)。S2020で、ドメインコマンドが解析されて、例えば、コマンドが適用するドメイン、適用可能なTLD、コマンドのタイプ、DNS変更などを識別する。方法はS2022に続く。
【0079】
S2022で、ドメインで識別された変更が、関連の電子署名データを処理することなく、実行のために処理される。これは、電子署名データを引いた、操作に起因するデータをレゾリューションデータベースにコミットするステップを含んでもよい。
【0080】
S2030で、レジストリが、顧客へS2022からの変更の完了を報告する(DNSSEC署名機能の状態に拘わらず実行される)。
【0081】
S2032およびS2040で、例のシステム(例えば、図5に示したプロビジョニングシステム110)が、ドメインコマンドの結果として、実行される変更(又はすでに実行された変更)に基づき、追加及び/又は変更される、及び/又は、署名又は再署名される必要があるDNSSECデータを識別する。これは、例えば、DNSSEC関連の変更のためのコマンド、操作、及び/又はデータを解析するステップ、および、署名及び/又は再署名される必要のあるDNSSECデータを識別するステップを含んでもよい。
【0082】
S2050で、適したDNSSEC鍵、署名プロトコル、及び/又は適したHSMが、署名される必要のあるデータに基づき識別される。そのような決定が、例えば、ドメイン、及び/又は、ドメインのTLD(データが存在する)を含むさまざまな要因に基づき行われる。
【0083】
S2060で、例えば、1又は複数のHSM(例えば、図2に示したHSM344,348)、又は、図1に示したプロビジョニングシステム110に含まれたHSMによって、DNSSECデータが署名される。DNSSECデータが署名されるとき、変更が、レゾリューションデータベース(例えば、ダウンストリームレゾリューションデータベース222)へ保存される。
【0084】
S2070で、新規に署名されたDNSSECデータがDNSへ発行される。
【0085】
上記した「ルックアサイド」アプローチに戻ると、そのシステムおよび方法の実施例が図7に示されている。図7に示すように、ルックアサイドアプローチが、単一のレジストリデータベース122と、非同期プロセス335(DNSSECデータをともなう単一のレジストリデータベース122(真のソース)を取り込む)とで実行される(次いで、DNS140へ向かって増分的に発行される)。「ルックアサイド」アプローチが、DNSサーバを修正して、追加的ルールを適用するステップ(例えば、特定の保留中のトランザクションを保持すること)、および、保留中のDNSSEC変更がレジストリデータベース122で実行された後、リクエストされたデータとともに単に回答するステップを含んでもよい。
【0086】
ルックアサイドアプローチが、新規のレゾリューションデータベースを追加する必要はないが、代わりに、例えば、レジストリデータベース122およびDNSサーバに複製される両方に、一連のルックアサイドテーブル124を作成する。レジストリサービス335が、プロセス335のDNSSEC部分によって処理される保留中の情報でルックアサイドを初めに取り込む追加のロジックを含んでもよい。プロセス225が、レジストリデータベース122へ書き込まれたDNSSECレコードを署名および管理するために、すべての保留中のルックアサイドトランザクションを処理してもよい。DNSサーバが、保留状態の変更を有するDNSレコードについてクライアントクエリーに回答しないように構成されている。DNSサーバが、例えば、ルックアサイドテーブル124の情報に基づき保留中の変更に気が付き、かつ、クリアされて、例えば、完了としてルックアサイドレコードにマークを付ける(及び/又は、ルックアサイドレコードが除去されたと認識する)プロセス335によって、データを返してもよい。
【0087】
ルックアサイドアプローチの1つの利点が、第2レゾリューションデータベースで、複製の情報を必要としないことである。加えて、ルックアサイドアプローチを用いて、非DNSSECトランザクションがDNSSEC処理によって影響を受けない(それらが以前に実行したとき、それらがDNSサーバへ伝搬するので)。例えば、DNSSEC処理の停止が非DNSSEC更新を止める。
【0088】
例のルックアサイドアプローチの実施例が一般に図8に示されている。他のステップの前(又は後)に発生すると特に説明されない限り、図8に示されたステップが、本発明の範囲を逸脱することなく、多様な順序で(及び/又は、同時に)実行されることに注意しなければならない。
【0089】
方法がS3010から始まる(ドメインコマンド(例えば、追加、修正、及び/又は削除コマンド)が受信される)。S3020で、ドメインコマンドが解析されて、例えば、コマンドが適用するドメイン、適用可能なTLD、コマンドのタイプ、DNS変更などを識別する。方法はS3022に続く。
【0090】
S3022で、ドメインコマンドで識別された変更が、関連の電子署名データを処理することなく、実行のために処理される。これは、電子署名データを引いた、操作に起因するデータをレジストリデータベースにコミットするステップを含んでもよい。
【0091】
S3030およびS3032で、例のシステム(例えば、図5に示したプロビジョニングシステム110)が、ドメインコマンドの結果として、実行される(又はすでに実行された)変更に基づき、追加及び/又は変更される、及び/又は、署名又は再署名される必要のあるDNSSECデータを識別する。これは、例えば、DNSSEC関連の変更のためのコマンド、操作、及び/又はデータを解析するステップ、および、署名及び/又は再署名される必要のあるDNSSECデータを識別するステップを具備してもよい。
【0092】
S3040で、データベースエントリが、例えば、ドメインコマンドに関する保留中のDNSSEC変更が存在することを示す、新規又は既存のルックアサイドテーブルの一部として、作成される。
【0093】
S3042で、データベースエントリが、DNSへ発行される(例えば、新規(又は既存への更新)のルックアサイドテーブルの一部として)。
【0094】
S3050で、適したDNSSEC鍵、署名プロトコル、及び/又は適したHSMが、署名される必要のあるデータに基づき識別される。そのような決定が、例えば、ドメイン、及び/又は、ドメインのTLD(データが存在する)を含むさまざまな要因に基づき行われる。
【0095】
S3060で、例えば、1又は複数のHSM(例えば、図2に示したHSM344,348)、又は、図1に示したプロビジョニングシステム110に含まれたHSMによって、DNSSECデータが署名される。DNSSECデータが署名されるとき、変更が、レゾリューションデータベース(例えば、ダウンストリームレゾリューションデータベース222)へ保存される。
【0096】
S3070で、新規に署名されたDNSSECデータがDNSへ発行される。加えて、データベースエントリが、例えば、ルックアサイドテーブルのエントリをクリアする(又は、ルックアサイドテーブルを削除する)ことによって、クリアされる。ルックアサイドテーブルへの変更もDNSへ発行される。
【0097】
実施例では、DNSSECエンジンも、常にレゾリューションシステムのデータの一貫し、安定したイメージを提供するように構成され、かつ、これらのイベントが後のイベントによって陳腐化するとき、未処理のイベントをスキップするためのさらなる最適化アルゴリズムを含んでもよい(例えば、最新のイベントが全くレジストリシステムから削除される結果をもたらす、ドメインのための待ち行列のDNSSECイベントを処理する必要がないことを認識すること)。
【0098】
本発明の実施例が、上記した方法をコンピュータに実行させるための命令でコード化されたコンピュータ読み取り可能な記録媒体と同様に、上記した方法を実施するためのシステムを備えることができる。例えば、図9に示すように、サーバシステム(例えば、サーバ600,610、及び/又は620)(少なくともプロセッサ、メモリ、および電子通信デバイス(図示せず)を備える)が、ネットワーク605(例えば、インターネット)を介して受信されるリクエスト(例えば、本明細書に開示されたリクエスト)に関して、受信、識別、応答、及び/又は、動作するように構成される。サーバ600,610、及び/又は620のいずれかが、例えば、本明細書に詳細に開示されたインターネットホスティングプロバイダー、レジストラ、及び/又はレジストリによって操作され、かつ、ウェブデバイス630によって一般的に表わされた、いくつもの再帰的DNSサーバと通信する。本明細書に開示されたように、再帰的サーバ630が、ホスティングプロバイダー、レジストラ、及び/又は、レジストリオペレーティングサーバ600,610、および620のドメインのためのDNS関連のデータをキャッシュしてもよい。
【0099】
ドメインについてDNSデータを更新するリクエストが、例えば、レジストラ、DNSサービスプロバイダー、又は、登録者に由来してもよい(多様なシステム(例えば、コンピュータ611,612)を介して、モバイルデバイス(複数可)614、ピコセルネットワークデバイス615、モバイルコンピュータ616、又は、必要な機能を備えた他のネットワーク対応デバイスと無線又は他の通信を行う別のサーバ613を介して)。
【0100】
多様な通信、送信、および本明細書に開示された関連の機能が、例えば、ネットワーク605を介して実行され、かつ、サーバシステム(例えば、サーバ600,610、および620)によって実行される開示された処理の結果が、既知の方法に従って、表示、格納、及び/又は、配布される。ネットワーク605が、いくつもの通信コンポーネント(有線、セル、衛星、光、及び/又は他の類似の通信リンクを含む)を含んでもよい。
【0101】
サーバ600,610、および620(および、コンピュータ611,612)が、第1ストレージ(図示せず、一般にランダムアクセスメモリ、又はRAM)、第2ストレージ(図示せず、一般にリードオンリーメモリ、又はROM)を含むストレージデバイスに接続されたいくつものプロセッサ(図示せず)を備えてもよい。これらストレージデバイスの両方が、適したタイプのコンピュータ読み取り可能な記録媒体(非一時的なストレージ媒体(例えば、フラッシュドライブ、ハードディスク、フロッピー(登録商標)ディスク、磁気テープ)、CD-ROMディスクなどの光媒体、及び/又は、光磁気媒体を含む)を含む。また、マスストレージデバイス(図示せず)が、プログラム、データなどを格納するのに使用され、かつ、一般に補助記憶媒体(例えば、主記憶装置よりも遅いハードディスク)である。好ましくは、マスストレージデバイス内に保持される情報が、仮想メモリとして、主記憶装置の一部として、一般的な方法で、組み込まれることが理解される。また、具体的なマスストレージデバイス(例えば、CD-ROM)がプロセッサへ一方向的にデータを渡してもよい。
【0102】
また、サーバ600,610、および620(および、コンピュータ611,612)が、1又は複数の入出力デバイス(例えば、ビデオモニタ、トラックボール、マウス、キーボード、マイク、タッチセンサ式のディスプレイ、トランスデューサカードリーダ、磁気又は紙テープリーダ、タブレット、スタイラス、音声又は手書き認識装置、又は、他の既知の入力デバイス)(他のコンピュータを含む)を含むインターフェースを備えてもよい。サーバ600,610、および620(および、コンピュータ611,612)が、ネットワーク接続を使用して、コンピュータ又は他の電気通信ネットワーク605に接続される。ネットワーク605が、多様な有線、光、電気、および他の既知のネットワークに接続して、サーバ600,610、および620、コンピュータ611,612、別のサーバ613、モバイルデバイス(複数可)614、ピコセルネットワークデバイス615、モバイルコンピュータ(複数可)616、再帰的サーバ630、および、類似の機能を有する他のデバイスの間で、情報を交換することができる。そのネットワーク接続を用いて、上記した方法のステップを実行する過程で、サーバ600,610、および620(およびコンピュータ611,612)およびそのプロセッサが、ネットワーク605から情報を受信するか、又は、ネットワーク605へ情報を出力すると考えられる。上記したデバイスおよび素材は、コンピュータハードウェアおよびソフトウェア技術の当業者によく知られており、当業者に理解されるように個別又は網羅的に示す必要はない。上記したハードウェア要素が、上記した操作を実行するための1又は複数のモジュールとして動作するように(一般的に一時的に)構成される。
【0103】
加えて、本発明の実施例は、さらに、本明細書に開示された多様なコンピュータ実行オペレーションを実行するためのプログラム命令を含んだコンピュータ読み取り可能な記録媒体を含む。媒体が、単独で、又はプログラム命令と組み合わせて、データファイル、データ構造、テーブルなども含んでもよい。媒体およびプログラム命令が、本発明の目的のために特に設計されかつ構成されたものであってもよく、又は、それらが、コンピュータソフトウェア技術のスキルを有する人に使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例が、磁気媒体(例えば、フラッシュドライブ、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープ)、光媒体(例えば、CD-ROMディスク)、光磁気媒体、および、プログラム命令を格納および実行するように特に構成されたハードウェアデバイス(例えば、リードオンリーメモリデバイス(ROM)、および、ランダムアクセスメモリ(RAM))を含む。プログラム命令の例が、機械コード(例えば、コンパイラによって生成される)、および、インタプリタを使用してコンピュータによって実行される高次レベルコードを含むファイルの両方を含む。
【0104】
上記した説明は、単に実例であり、本発明のすべての可能性のある実施例、アプリケーション、又は、変形例の網羅的なリストであることを意図されたものではない。したがって、開示された本発明の方法およびシステムの多様な修正例および変形例が、本発明の真の趣旨及び範囲から逸脱することなく、当業者に明らかになる。本発明は特定の実施例との関連で開示されたが、請求項に係る発明がその特定の実施例に不当に限定されないことを理解しなければならない。
【符号の説明】
【0105】
320 NCCビジネスサービス
330 バッチ/ツール
342 署名サーバ1
346 署名サーバn
350 データベース
510 クライアント
512 署名サーバ
520 レジストリ

【特許請求の範囲】
【請求項1】
レジストリでDNSSEC署名を実行する方法であって、
リクエスタからドメインの識別子を含んだドメインコマンドを受信するステップと、
前記ドメインのためのレジストリによって格納されたデータに関して、前記受信されたドメインコマンドを実行するステップと、
DNSSECデータ変更を識別するステップと、
前記ドメインコマンドの実行を含む個別のトランザクションの一部として、権威サーバの秘密鍵を使用して、前記識別されたDNSSECデータ変更に基づき、ドメインのためのDNSSECレコードに署名するステップと、
前記レジストリでトランザクションをコミットするステップと、
DNS基盤へ前記コミットされたトランザクションを伝えるステップと
を具備する方法。
【請求項2】
前記ドメインコマンドは、1又は複数のDNSSEC DS(Delegation Signer)要素を含む請求項1に記載の方法。
【請求項3】
前記ドメインコマンドは、1又は複数の関連するDNSSEC DS(Delegation Signer)レコードを生成する1又は複数のDNSKEY要素を含む請求項1に記載の方法。
【請求項4】
別のサーバへ前記署名されたDNSSECレコードを増分的に発行するステップをさらに具備する請求項1に記載の方法。
【請求項5】
前記署名されたDNSSECレコードが、複数の別のDNSサーバへ増分的に発行される請求項4に記載の方法。
【請求項6】
前記ドメインが、レジストリのトップレベルドメインの下の少なくとも第2レベルドメインである請求項1に記載の方法。
【請求項7】
前記方法が、レジストリの権威サーバによって、複数のレジストラからのドメインについて実行される請求項1に記載の方法。
【請求項8】
DNSレコードの署名が、レジストリの権威サーバによって、複数のレジストラからの少なくとも2つのドメインについて実行される請求項1に記載の方法。
【請求項9】
DNSレコードの署名が、レジストリのための複数の署名サーバによって実行される請求項1に記載の方法。
【請求項10】
前記ドメインコマンドが、ドメインのための追加、更新、および削除コマンドのうちの少なくとも1つである請求項1に記載の方法。
【請求項11】
追加、更新、および削除コマンドのうちの少なくとも1つに基づき、NSEC又はNSEC3連鎖へ変更をコミットするステップをさらに具備する請求項1に記載の方法。
【請求項12】
レジストリのためのDNSSEC署名システムであって、
プロセッサと、
前記プロセッサによって実行されたとき、
前記レジストリによってサポートされたDNSSEC関連のドメイン名を追加、更新、又は削除するうちの少なくとも1つを実行するリクエスタから第1コマンドを受信し、
レジストリデータベースに格納されたデータを追加、更新、又は削除する前記第1コマンドからの命令を実行し、
前記第1コマンドからの命令の実行を含む個別のトランザクションの一部として、追加、更新、又は削除変更に基づき、電子署名を生成し、
レジストリレゾリューションデータベースへ前記電子署名をコミットする
ように、権威サーバとして署名サーバを動作させるコンピュータ読み取り可能なコードを含む、ストレージデバイスと
を備えたシステム。
【請求項13】
前記ドメインが、レジストリのトップレベルドメインの下の少なくとも第2レベルドメインである請求項12に記載のシステム。
【請求項14】
前記プロセッサが、複数のレジストラからの少なくとも2つのドメインのためのDNSレコードに署名するように構成された請求項12に記載のシステム。
【請求項15】
前記プロセッサが、さらに、複数の別のDNSサーバへ前記署名されたDNSSECレコードを増分的に発行するように構成された請求項12に記載のシステム。
【請求項16】
前記レジストリのためのDNSレコードに署名するように構成された複数の署名サーバをさらに備えた請求項12に記載のシステム。
【請求項17】
前記プロセッサが、さらに、追加、更新、および削除コマンドのうちの少なくとも1つに基づき、NSEC又はNSEC3連鎖へ変更をコミットするように構成された請求項12に記載のシステム。
【請求項18】
レジストリのためのDNSSEC署名システムであって、
プロセッサと、
前記プロセッサによって実行されたとき、
前記レジストリへ、レジストリの中に、又はレジストリから、DNSSEC関連のドメイン名を追加、更新、又は削除するうちの少なくとも1つを実行するリクエスタから第1コマンドを受信し、
レジストリデータベースに格納されたデータを追加、更新、及び/又は削除する前記第1コマンドからの命令を実行し、
前記命令が実行されたことをリクエスタへ報告し、
前記追加、更新、及び/又は削除の変更に基づき、電子署名を生成し、
レジストリレゾリューションデータベースへ前記電子署名をコミットする
ように、権威サーバとして署名サーバを動作させるコンピュータ読み取り可能なコードを含む、ストレージデバイスと
を備え、
前記実行が電子署名データを適用することを含まないことを特徴とするシステム。
【請求項19】
非DNSSEC変更およびDNSSEC変更が、DNSへ非同期的に前記システムによって発行される請求項18に記載のシステム。
【請求項20】
前記プロセッサが、さらに、前記追加、更新、及び/又は削除変更に基づき、NSEC又はNSEC3連鎖へ変更をコミットするように構成された請求項19に記載のシステム。
【請求項21】
レジストリのためのDNSSEC署名システムであって、
プロセッサと、
前記プロセッサによって実行されたとき、
前記レジストリへ、レジストリの中に、又はレジストリから、DNSSEC関連のドメイン名を追加、更新、又は削除するうちの少なくとも1つを実行するリクエスタから第1コマンドを受信し、
レジストリデータベースに格納されたデータを追加、更新、及び/又は削除する前記第1コマンドからの命令を実行し、
前記第1コマンドに関する保留中のDNSSEC変更を示すデータベースエントリを生成し、
前記追加、更新、及び/又は削除変更に基づき、電子署名を生成し、かつ、
前記データベースエントリをクリアする
ように、権威サーバとして署名サーバを動作させるコンピュータ読み取り可能なコードを含む、ストレージデバイスと
を備え、
前記実行が電子署名データを適用することを含まないことを特徴とするシステム。
【請求項22】
前記プロセッサが、さらに、DNSへ前記データベースエントリを発行するように構成された請求項21に記載のシステム。
【請求項23】
前記プロセッサが、さらに、前記追加、更新、及び/又は削除変更に基づき、NSEC又はNSEC3連鎖へ変更をコミットするように構成された請求項21に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate