JP2005312026A - セッション開始プロトコルルーティングヘッダに対して署名および検証を行う方法 - Google Patents

セッション開始プロトコルルーティングヘッダに対して署名および検証を行う方法 Download PDF

Info

Publication number
JP2005312026A
JP2005312026A JP2005092424A JP2005092424A JP2005312026A JP 2005312026 A JP2005312026 A JP 2005312026A JP 2005092424 A JP2005092424 A JP 2005092424A JP 2005092424 A JP2005092424 A JP 2005092424A JP 2005312026 A JP2005312026 A JP 2005312026A
Authority
JP
Japan
Prior art keywords
header
signature
sip
route
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005092424A
Other languages
English (en)
Other versions
JP4800651B2 (ja
Inventor
Jeremy Thomas Buch
トーマス バック ジェレミー
Jinyan Su
ス ジニャン
Sankaran Narayanan
ナラヤナン サンカラン
Vadim Eydelman
エイデルマン バデム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005312026A publication Critical patent/JP2005312026A/ja
Application granted granted Critical
Publication of JP4800651B2 publication Critical patent/JP4800651B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
    • A61H39/00Devices for locating or stimulating specific reflex points of the body for physical therapy, e.g. acupuncture
    • A61H39/04Devices for pressing such points, e.g. Shiatsu or Acupressure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B33/00Clay-wares
    • C04B33/02Preparing or treating the raw materials individually or as batches
    • C04B33/04Clay; Kaolin
    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B33/00Clay-wares
    • C04B33/02Preparing or treating the raw materials individually or as batches
    • C04B33/13Compounding ingredients
    • C04B33/132Waste materials; Refuse; Residues
    • C04B33/1324Recycled material, e.g. tile dust, stone waste, spent refractory material
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Chemical & Material Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Ceramic Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Rehabilitation Therapy (AREA)
  • Business, Economics & Management (AREA)
  • Structural Engineering (AREA)
  • Materials Engineering (AREA)
  • Dispersion Chemistry (AREA)
  • Multimedia (AREA)
  • Organic Chemistry (AREA)
  • General Business, Economics & Management (AREA)
  • Pain & Pain Management (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Environmental & Geological Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Epidemiology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】 「SIP」(Session Initiation Protocol(セッション開始プロトコル))ルーティングヘッダ群に署名し、検証するための方法、コンピュータ実行可能命令を有するコンピュータ可読媒体、およびデータ構造を格納しているコンピュータ可読媒体を提供する。
【解決手段】 SIPノードが、メッセージヘッダを含むSIP要求を受信することができる。メッセージヘッダの少なくとも一部分、およびSIPノードヘッダエントリに基づく署名を生成することができる。次に、この署名をSIPノードヘッダエントリの中に挿入することができる。
【選択図】 図1

Description

本出願は、コンピュータネットワークを介してデバイス間で通信するための方法およびコンピュータ可読媒体を対象とし、より詳細には、「SIP」(Session Initiation Protocol(セッション開始プロトコル))ルーティングヘッダに対する署名および検証(validating)を行って、SIPメッセージに含まれるルーティングコマンドを認証するための方法およびコンピュータ可読媒体を対象とする。
「SIP」(セッション開始プロトコル)は、インスタントメッセージング、インターネット電話コール、およびインターネットビデオ会議を含む、通信セッションを確立すること、管理すること、および終了させることに関するインターネットシグナルプロトコルである。SIPは、参照によりそれぞれが本明細書に組み込まれている非特許文献1および非特許文献2において規定されている。SIPセッションには、1名または複数名の参加者またはクライアント(通常、呼び出し元および呼び出し先と呼ばれる)が関与する。SIPメッセージは、通常、様々なサーバであるSIPノード群のネットワークを介して、各エンドポイントSIPノード(例えば、呼び出し元と呼び出し先)の間でルーティングされる。
一般に、次の2つのタイプのSIPメッセージが存在する。すなわち、呼び出し元(例えば、エンドポイントSIPノード)から呼び出し先に送信される要求、および要求に応答して呼び出し先から呼び出し元に送信される応答である。一部のケースでは、呼び出し先は、ダイアログセッションが開始された後、呼び出し元に応答を送信することも可能である。各SIPメッセージは、応答であるか、要求であるかにかかわらず、一般に、次の3つの部分を含む。すなわち、開始行(start line)、ヘッダ、および本文である。開始行は、メッセージタイプ(例えば、要求または応答)およびプロトコルバージョンを伝え、メッセージ本文は、メッセージの内容を含み、開始行におけるシグナル情報を超えるセッション記述情報を伝えることができる。SIPヘッダフィールドは、メッセージの属性を伝え、メッセージの意味を変更する。ヘッダフィールドの中に格納されるメッセージの一部の属性は、メッセージをどのようにルーティングするかについての命令であるとともに、メッセージが伝送される実際の経路の記録も行う。例えば、経路についての要求を管理する各SIPノードは、完全修飾ドメイン名(fully qualified domain)またはインターネットプロトコルアドレスなどの、SIPノードを識別する情報を含む「VIA」ヘッダを追加する。このようにして、経路におけるループが検出されることが可能であり、応答は、要求からのVIAヘッダを使用して、呼び出し元に戻るように伝送される経路を決める。しかし、メッセージの特定のパスは、時間とともに変わる可能性があり、このため、ホームサーバなどのSIPノードは、電話コールなどのダイアログの第1の要求を受信するが、同一のダイアログにおける後続の要求は受信しない可能性がある。そのダイアログのために「ループに入った」ままであるように、SIPノードは、「URI」(ユニフォームリソースインジケータ)、または他のサーバまたはエンドポイントがSIPノードに到達することを可能にする他のアドレスなどの、SIPノードを識別する情報を含むRECORD−ROUTEヘッダを挿入することができる。次に、RECORD−ROUTEヘッダの完成されたリストの諸部分が、受信側エンドクライアント(要求に関して呼び出し先、応答に関して呼び出し元)によって一組のROUTEヘッダの中にコピーされる。ROUTE SETヘッダは、同一のダイアログセッション内のあらゆる将来の要求をどのようにルーティングするかについての命令をSIPノード群に提供するデータを含む。
前述したSIPヘッダフィールドは、メッセージの経路上のサーバ群などの、SIPノードに、またSIPノードからメッセージをルーティングするのに役立つが、それらのヘッダの多くは、SIP標準(RFC3261)に従って使用される場合、セキュリティで保護されない。例えば、サービス拒否攻撃が、SIPヘッダ内の偽のルーティング情報を含む、複数の偽造されたSIPメッセージを使用して、サーバに向けられることが可能である。偽のメッセージの真の送信元は、偽造されたヘッダ情報で隠されて、場合により、サービス拒否攻撃が、無実のサーバを送信元としているように見せかけることが可能である。さらに、偽造されたルーティングヘッダは、2つのサーバ間でループメッセージを作成することも可能である。このようにして、偽のメッセージの偽造された「経路」上の各サーバが、偽のメッセージを処理し、転送するのに貴重なリソースを浪費して、それらのリソースを正当なユーザに拒否する可能性がある。
International Engineering Task Force Request for Comments 2543 International Engineering Task Force Request for Comments 3261
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、SIPルーティングヘッダに対する署名および検証を行って、SIPメッセージに含まれるルーティングコマンドを認証するための方法およびコンピュータ読み取り可能な記録媒体を提供することにある。
本発明の諸実施形態は、SIPメッセージの中に見られるルーティングヘッダを認証するための方法およびコンピュータ可読媒体を対象とする。具体的には、SIPノードが、メッセージヘッダを含むSIP要求を受信することが可能である。メッセージヘッダの少なくとも一部分に基づいて署名が生成され、SIPノードヘッダエントリの中に挿入されることが可能である。本明細書で使用するSIPノードとは、SIPクライアントまたはサーバとして動作することができるコンピューティングデバイス上で実行されるSIPアプリケーションを意味する。
例えば、受信された要求ヘッダ内のVIAヘッダの少なくとも一部分に基づいて第1の署名が生成され、SIPノードに関するVIAヘッダの中に挿入されることが可能である。SIP要求に対する応答が生成されると、SIPノードのVIAヘッダは、SIP標準の処理に従って応答ヘッダの中でエコーバック(echo back)される。SIPノードは、応答を受信すると、応答のSIPノードVIAヘッダ内の第1の署名を検証して(verify)、応答が伝送された実際のパスの完全性を認証することができる。
さらに、または代替として、RECORD−ROUTEヘッダの少なくとも一部分、およびメッセージヘッダのCONTACTヘッダに基づき、第2の署名が生成されることも可能である。第2の署名は、SIPノードのRECORD−ROUTEヘッダに挿入されることが可能である。付加された第2の署名を有するこのRECORD−ROUTEヘッダの諸部分は、セッションが開始された後に、呼び出し先システムによって呼び出し元システムに対して生成された要求をルーティングし、検証するためのROUTEヘッダとして使用するために、呼び出し先システムによって保存されることが可能である。
さらに、または代替として、メッセージヘッダのRECORD−ROUTEヘッダの少なくとも一部分に基づき、第3の署名が生成されることも可能である。第3の署名は、SIPノードのRECORD−ROUTEヘッダに挿入されることが可能である。呼び出し先がSIP要求に応答すると、SIPノードのRECORD−ROUTEヘッダは、応答ヘッダの中でエコーバックされる。将来の要求をどのようにルーティングするかについての命令の完全性を検証するため、SIPノードが応答を受信すると、第3の署名がSIPノードによって検証されることが可能である。例えば、応答を受信したSIPノードは、要求ヘッダからエコーされたデータを含むRECORD−ROUTEヘッダを識別し、エコーされたヘッダから署名を抽出することができる。SIPノードは、第3の署名を生成するのに使用されたのと同一のプロセスを使用して、例えば、応答ヘッダ内のヘッダ群の少なくとも一部分に基づいて署名を生成して、検証署名を生成することができる。次に、SIPノードは、検証署名を抽出された署名と比較することができる。署名が合致した場合、メッセージは、通常の形で処理されることが可能である。
第4の署名が生成され、SIP応答ヘッダに挿入されることも可能である。例えば、応答を受信したSIPノードは、応答ヘッダのRECORD−ROUTEヘッダの少なくとも一部分、および応答ヘッダのCONTACTヘッダに基づき、第4の署名を生成することができる。第4の署名は、前述した第2の署名に類似するが、第4の署名は、応答の中のCONTACTヘッダに基づいて生成されるので、CONTACTは、要求の場合のように呼び出し元ではなく、呼び出し先を識別する。次に、第4の署名は、SIPノードに関するRECORD−ROUTEヘッダに挿入されることが可能である。呼び出し元システムは、応答を受信すると、付加された署名を有するRECORD−ROUTEヘッダの諸部分を、後続の要求の中のルーティング命令の使用および検証のためのROUTE SETヘッダとして保存することができる。
一部のケースでは、SIPメッセージを処理するSIPノードは、同一のダイアログにおけるメッセージを処理するのに互いに区別なく使用されることが可能な少なくとも第1のサーバと第2のサーバとを有するサーバのプールによって提供されることが可能である。ただし、メッセージが交換される際、ダイアログにおける要求が、第1のサーバによって生成された署名を含むが、処理のために第2のサーバに送信されることが可能である。これは、第2のサーバが、要求の中の署名を検証するのに使用されるセッションキーを有することを要する。要求の中の署名を生成するのに使用されたセッションキーをセキュリティで保護された形で転送するため、署名を生成した第1のサーバは、暗号化され、署名されたセッションキーをメッセージのヘッダに付加することができる。例えば、このセッションキーは、このキーによって生成された署名を含むのと同一のヘッダに挿入されることが可能である。他のSIPノード群からセッションキーを保護するため、第1のサーバは、サーバのプールがアクセスできる公開キーを使用して、セッションキーを暗号化することができる。次に、第1のサーバは、サーバのプールがアクセスできる秘密キーを使用して、暗号化されたキーに署名することができる。要求を受信した第2のサーバは、暗号化されたキー上の署名を検証した後、セッションキーを解読することができる。解読されたセッションキーを使用して、第2のサーバは、次に、メッセージヘッダの少なくとも一部分に基づいて署名を検証することができる。例えば、公開キー/秘密キーペアを含む非対称キー技術を含め、任意の適切なセキュリティプロセスを使用して、セッションキーを保護することができることを認識されたい。
本発明の以上の態様、および付随する利点の多くは、添付の図面と併せて解釈される、以下の詳細な説明を参照することで本発明がよりよく理解されるにつれ、より容易に認められるようになろう。
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。サービス拒否攻撃は、通常、Webサーバ群またはファイルサーバ群などの、ネットワークサービスを過負荷状態にする(overload)、または停止させるように攻撃者によって仕掛けられるコンピュータ化された攻撃である。例えば、攻撃は、サーバが、偽のメッセージに応答しようと試みることに余りにも忙しくなり、正当な接続要求を無視することを生じさせる。代替として、正当なメッセージのルーティングが壊れ、SIPノードが、誤った形で応答を転送するようにさせる可能性がある。一部のケースでは、コンピュータネットワークにわたってメッセージを伝送するのに使用される通信プロトコルが、重大な攻撃点であることが可能である。例えば、前述したとおり、偽造されたVIAヘッダ、偽造されたROUTEヘッダ、および/または偽造されたRECORD−ROUTEヘッダを有する偽のSIPメッセージが送信されて、メッセージが、被害(victim)SIPノード群に向けられること、および/または攻撃者の身元およびソースが隠されることが可能である。これらのサービス拒否攻撃を減らすため、SIPヘッダに含まれるルーティング命令、および実際のルーティングパスを検証して、命令およびパスの完全性を確実にすることができる。
図1は、SIPクライアント102のユーザ100(例えば、アリス)が、インターネット、イントラネット、ワイドエリアネットワーク、ローカルエリアネットワーク、仮想プライベートネットワークなどを含むことが可能な通信ネットワークを介して、別のユーザ400(ボブ)と通信セッションを開始することを所望する、典型的なセッション開始動作を示す。この目的で、コンピュータシステム104上に存在するSIPクライアント102が、ボブを目的の受信者として識別するINVITE要求メッセージ500を送信する。SIP標準の下における通信の文脈では、INVITEメッセージ500を送信してセッションを開始するSIPクライアント102は、「呼び出し元」と呼ばれ、ボブのコンピュータシステム404上のSIPクライアント402は、「呼び出し先」と呼ばれる。SIPにおける定義では、SIPクライアント102は、新たな要求を作成するので、「UAC」(「ユーザエージェントクライアント」)とも呼ばれ、SIPクライアント402は、SIP要求500に対する応答600を生成するので、「UAS」(「ユーザエージェントサーバ」)とも呼ばれる。
図1に示すとおり、アリスからのINVITEメッセージ500は、呼び出し元SIPクライアントのドメイン用の送信サーバ200に送信される。その後、INVITEメッセージは、シグナル動作に関与する複数のSIPノードを経由させられてから、ボブのドメインのSIPプロキシサーバ300に到達することが可能である。簡潔にするため、5つのSIPノードだけを図1に例示するが、リンクのいずれも、他のサーバ群、ゲートウェイ群、ブリッジ群などを含むことが可能であることを認識されたい。SIPプロキシ300は、INVITEメッセージをボブのコンピュータのSIPクライアント402(呼び出し先)に転送する。ボブのコンピュータは、自動的に、またはボブからの許可の後、伝送の成功を示す「200(OK)」メッセージのような、INVITEに対する応答600を送信することができる。
前述したとおり、各SIPメッセージは、一般に、開始行と、メッセージの属性およびルーティングに関する情報を含むヘッダと、メッセージの本文とを含む。例えば、図2は、アリスのSIPクライアント102によって送信され、SIPノード200によって受信されたINVITE要求500を図示する。典型的なINVITE500は、開始行502、複数のヘッダ504、および本文506を含む。開始行502は、メッセージタイプ(この場合、INVITE)、一般に呼び出し先のSIPアドレスである要求URI、およびSIPバージョンを識別する。ヘッダ群504は、SIP標準の下で許容されるフィールド群である。VIAヘッダ508は、前のホップのプロトコルおよびアドレスを示す情報を含む。FROMヘッダ510は、要求の送信元であるユーザ(呼び出し元)を、この場合は、アリスを示す情報を含む。TOヘッダ512は、呼び出し元によって指定された呼び出し先を示す情報を含む。Call−IDヘッダ514は、開始されるセッションのグローバル一意識別子を示す情報を含む。CSeqヘッダ516は、同一のトランザクションの一環として、同一のFROMヘッダ、同一のTOヘッダ、および同一のCall−IDヘッダで送信された複数のメッセージを区別する識別子を示す。CONTACTヘッダ518は、後続の要求の宛先を示す情報を含み、将来のメッセージのルーティングが、RECORD−ROUTEヘッダ(以下にさらに説明する)内にリストされていないSIPノード群をバイパスすることを可能にする。VIAヘッダ、TOヘッダ、FROMヘッダ、CONTACTヘッダ、RECORD−ROUTEヘッダ、およびROUTEヘッダはそれぞれ、URI、インターネットプロトコルアドレスなどの、ネットワーク内のルーティングロケーションを示すデータを含む。例えば、ルーティングロケーションを示すデータを含むRECORD−ROUTEヘッダは、「< >」ブラケットの中に囲まれたURI部分を含み、その後にヘッダパラメータが続くことが可能である。「< >」ブラケット内のURI部分は、URI、およびURIパラメータを含むことが可能である。一般に、少なくとも1つの空白行が、ヘッダ群504の終りと、本文部分506の先頭を示す。INVITE要求のような、図5に示した典型的な応答600は、開始行602、ヘッダ部分604、および本文606を含む。
SIP標準の下では、INVITE500がネットワークを伝送される際、INVITE500を管理するすべてのSIPノードが、VIAヘッダをINVITEヘッダ504に追加する。このようにして、蓄積されたVIAヘッダが、呼び出し先により、要求に返信する応答のルーティングを呼び出し元に向けるのに使用されることが可能である。SIPノードが、呼び出し元と呼び出し先の間におけるその特定のダイアログに関するメッセージを管理することを続けることを望む場合、SIPノードは、RECORD−ROUTEヘッダをINVITEヘッダ504に挿入することができる。このようにして、呼び出し先によって生成されることが可能な将来の要求のルーティングを指示するため、ダイアログ開始要求に関するRECORD−ROUTEヘッダおよびCONTACTヘッダの蓄積されたURI部分が、受信側の呼び出し先によって、ヘッダ群のROUTE SETとして、リストされるのと同一の順序で保存されることが可能である。同様に、呼び出し元によって生成される将来の要求に関するルーティング命令を提供するため、ダイアログ開始要求に対する応答の中のRECORD−ROUTEヘッダおよびCONTACTヘッダの蓄積されたURI部分が、呼び出し元によって、ROUTE SETヘッダ群とは逆の順序で保存されることが可能である。
図1は、処理側SIPノード群によるヘッダの追加に鑑みて、INVITE要求およびINVITE応答をルーティングすることの具体的な例を示す。簡潔にするため、無関係のヘッダ、およびその他のメッセージ情報は含めていない。図示したSIPノード群の機能および数は、典型的であり、メッセージルーティングおよびメッセージ検証は、特定の目的および/またはネットワークアーキテクチャに合わせて変更することができることを認識されたい。
図1に示すとおり、SIPノード200は、ホームサーバであることが可能であり、SIPクライアント102からINVITE要求を受信することができる。メッセージを受信したSIPノード200は、VIAヘッダをINVITE要求のヘッダ504に挿入する。SIPノード200は、ホームサーバとして、SIPクライアント102に対する、またはクライアント102からのあらゆるSIPメッセージを管理することを望む可能性がある。したがって、SIPノード200は、RECORD−ROUTEヘッダをINVITEメッセージの中に挿入してから、そのメッセージを次のSIPノードに転送することができる。図1の例示する実施形態では、次のSIPノード250は、呼び出し元SIPクライアント102に対するエッジサーバである。SIPノード250は、独自のVIAヘッダおよびRECORD−ROUTEヘッダをメッセージのヘッダ504に挿入した後、INVITEメッセージを転送する。最終的に、INVITEメッセージは、図1の例示する実施形態では、呼び出し先SIPクライアント402のエッジプロキシサーバであるSIPノード300にルーティングされる。エッジプロキシサーバは、ネットワークの端部(edge)で実行されるように設計された、例えば、インターネットからローカルネットワークを分離する、プロキシサーバであることが可能である。エッジサーバ250と同様に、エッジプロキシサーバ300は、VIAヘッダおよびRECORD−ROUTEヘッダをINVITEヘッダ504に挿入してから、そのメッセージをSIPクライアント402に転送する。INVITE要求500の中に挿入される、SIPノード200のVIAヘッダ530、SIPノード250のVIAヘッダ532、およびSIPノード300のVIAヘッダ534の例を、図3に示す。INVITEメッセージ500の中に挿入される、SIPノード200のRECORD−ROUTEヘッダ520、SIPノード250のRECORD−ROUTEヘッダ522、およびSIPノード300のRECORD−ROUTEヘッダ524の例を、図4に示す。
ボブのSIPノード402は、INVITEを受け入れることができ、INVITE要求に返信してOK応答600を送信することができる。図5は、SIPノード402からサーバ300への典型的な応答600を示す。SIP標準の下では、応答600の、ヘッダフィールドの多く、またはヘッダフィールドの少なくともいくつかの部分は、受信された要求からコピーされるか、またはエコーされる。それらのエコーされるヘッダ群には、例えば、SIP標準の下における規定によれば、各VIAヘッダ、FROMヘッダ、TOヘッダ、各RECORD−ROUTEヘッダ、Call−IDヘッダ、およびCSeqヘッダが含まれることが可能である。このようにして、図5に示した応答600は、エコーされるヘッダ群を例示する。具体的には、応答600の中のVIAヘッダ608、630、632、634が、呼び出し先SIPノード402によって受信されたINVITE500の中のVIAヘッダ508、530、532、534と同一である。同様に、RECORD−ROUTEヘッダ620、622、624は、SIPノード群によって生成され、呼び出し先SIPノード402によって受信されたRECORD−ROUTEヘッダ520、522、524と同一である。このため、応答メッセージは、VIAヘッダ608、630、632、634によって指示されるとおりにネットワークを経由して、呼び出し元SIPノード102にルーティングされる。
応答を処理するSIPノード群、例えば、SIPノード300、250、200が、VIAヘッダ群の中に含まれるルーティング命令を検証することにより、応答が伝送される実際の経路の完全性を検証することができる。一実施形態では、SIPノードは、応答VIAヘッダ608、630、632を検証するのに後にアクセスし、使用するため、VIAヘッダ508、530、532などのルーティング情報をデータベースの中に格納することができる。代替として、SIPノードにかかるメモリ負荷およびアクセス負荷を減らすため、SIPノードは、メッセージの経路におけるネットワークルーティングロケーションを示すデータを含む少なくとも1つのヘッダの少なくとも一部分に基づき、署名を生成することができる。例えば、署名は、ネットワークルーティングロケーションを含むヘッダのすべてに基づくことも、URI、URIパラメータ、ピアの「FQDN」(完全修飾ドメイン名)などの、ヘッダの一部分だけに基づくことも可能である。書名は、少なくとも1つのヘッダに加え、メッセージが次のホップ上で送信される接続の接続識別子、エコーされたヘッダ、TOヘッダ、FROMヘッダ、CONTACTヘッダ、CALL−IDヘッダ、CSeqヘッダ、およびBranch−IDを含め、他の情報にも基づくことが可能である。要求の少なくとも1つのヘッダの少なくとも一部分に基づく署名は、次に、応答に移され、その応答がSIPノードによって処理される際に検証されることが可能である。あるヘッダ部分が署名の中に含められるべきか否かは、そのヘッダ部分が、SIPプロキシによって検証される前に変化するかどうかに依存することが可能である。例えば、署名の検証のためにアクセスされる前に削除される、または変更される可能性がある情報を含むヘッダ部分は、署名の中に含められるべきではない。SIPメッセージの経路におけるSIPノードのいずれか、またはすべてが、本明細書で説明した形を含め、任意の適切な形で検証署名を生成し、格納することが可能であることを認識されたい。また、SIPメッセージのヘッダ群は、信頼されるリンクのリストを保持すること、署名に関するグローバルポリシーを遵守すること、特定のドメインへ/からのメッセージに対して署名/検証を行うことを含め、ネットワークおよびSIPノード群のセキュリティ上の関心事および標準に従って、適宜、検証することができることも認識されたい。例えば、信頼されるリンクのリストを実施するため、各サーバが、信頼されると考えるリンクのリストを保持することができる。このため、信頼されるリンクに送られる/信頼されるリンクから来るメッセージには、署名/検証を行わなくてもよい。したがって、サーバは、リンクが信頼されない、すなわち、信頼されるリンクのリストの中にリストされていないことを確かめるために、信頼されるリンクのリストを調べてから、署名の生成/検証を行う。
一実施形態では、署名は、アクセス可能なセッションキーを使用して、要求メッセージの少なくとも1つのVIAヘッダに基づいて生成されることが可能である。メッセージが伝送される経路を検証するため、SIPノードは、すべてのVIAヘッダ、または少なくとも、SIPノードによって受信されたすべてのVIAヘッダに基づいて、VIA署名を生成することができる。例えば、図1および図2に示したINVITEメッセージ500の場合、SIPノード200は、SIPノード200がアクセスできるセッションキーを使用することにより、SIPクライアント102(アリス)を指定する情報を含むVIAヘッダ508に基づき、VIA署名を提供することができる。生成されたVIA署名は、メッセージ内に格納され、応答メッセージに転送され、次に、SIPノード200を介して、メッセージの帰路で検証されることが可能である。同様に、SIPノード300は、受信されたVIAヘッダに基づいてVIA署名を生成し、後に、応答がSIPノード300において受信された際に、応答を検証することができる。VIAヘッダ群に署名するのに、SIPノード300は、アクセス可能なセッションキーを使用して、アリスのVIAヘッダ508、SIPノード200のVIAヘッダ530、およびSIPノード250のVIAヘッダ532に基づき、VIA署名を生成することができる。
VIAヘッダ群とその他のヘッダ情報の任意の適切な組合せに署名して、応答ヘッダ604内のルーティング命令を認証することができることを認識されたい。例えば、VIA署名は、TOヘッダ、FROMヘッダ、または要求ヘッダ504から応答ヘッダ604にエコーされることが可能な他の任意のヘッダに加え、VIAヘッダの一部分に基づくことも可能である。さらに、要求ヘッダ504の中に挿入されるVIA署名550は、生成されたデジタル署名を示す任意のデータまたは信号であることも可能である。例えば、格納された署名550は、生成された署名ブラブ(blob)の所定の数の上位ビットであることも、デジタル署名全体であることも可能である。
INVITE要求の処理中に生成されたVIA署名がSIPノードにおける応答の中に検証のために存在することを確実にするため、生成されたVIA署名は、INVITE要求のエコーされたヘッダの中に挿入することができる。例えば、署名は、標準のルーティングロケーション情報の後、URIパラメータまたはヘッダパラメータとして挿入することができる。このため、クライアントSIPノード402は、SIP要求のエコーされるヘッダに基づいて応答ヘッダ群604を生成し、生成された署名は、要求から応答に自動的に移される。したがって、応答を受信したSIPノードは、応答ヘッダに移された署名を検証することができる。先立つ合意に基づいてクライアントSIPノードによってエコーされる、任意のエコーされたヘッダまたはカスタムヘッダが、SIPノードによる検証のために署名を格納するのに適する可能性があることを理解されたい。
図3に示すとおり、VIA署名は、その署名を生成するSIPノードのVIAヘッダの中に挿入されることが可能である。例えば、SIPノード300は、要求500の中で受信されたVIAヘッダ508、530、532に基づいてVIA署名550を生成することができる。SIPノード300は、VIA署名550をSIPノード300のVIAヘッダ534の中に挿入することができる。前述したとおり、要求ヘッダ内のVIAヘッダ群は、応答ヘッダ604内でエコーバックされる。このため、SIPノード402は、応答600を形成する際、VIAヘッダ534内に含まれる情報を(図1)SIPノード300のVIAヘッダ634の中にコピーすることができる。標準のSIP処理の下では、VIAヘッダがエコーされる際、標準のVIA情報がコピーされるとともに、VIA署名550などの任意の情報が、ヘッダパラメータとして付加される。
受信されたVIA署名650を検証するのに、SIPノード300(図1)は、図5に示す受信されたVIA署名650を取り外し(strip)、保存することができる。SIPノード300は、要求の中に挿入されるVIA署名550を生成するのに使用されたのと同一の手続きを使用して、検証VIA署名を生成することができる。前述したVIA署名550の生成に従って、SIPノード300は、受信された応答600の中のVIAヘッダ群を識別し、SIPノード300のVIAヘッダ534の下にリストされたすべてのVIAヘッダに基づき、検証VIA署名を生成することができる。このようにして、検証VIA署名は、SIPノード300が要求メッセージ500の中のVIA署名550を生成した際にSIPノード300が知っているVIAヘッダ群に基づくことが可能である。したがって、SIPノード300に関する検証VIA署名は、SIPノード250に関するVIAヘッダ632、SIPノード200に関するVIAヘッダ630、および呼び出し元SIPノード102に関するVIAヘッダ608に基づくことが可能である。SIPノード300は、検証VIA署名を受信されたVIA署名650と比較することができる。
署名が合致した場合、SIPノード300は、SIP標準の下で通常の処理を続け、応答ヘッダ群604のVIAヘッダ群の中で示される次のSIPノードにその応答を転送することができる。署名が合致しなかった場合、SIPノード300は、処理スタックからその応答600をドロップし、かつ/または、プロトコルによってサポートされている場合、SIPノード監視サービス(図示せず)または任意の適切な監視エージェントにエラーメッセージを送信することができる。署名の適合(compliance)および/または攻撃の検出に関するメッセージ処理パフォーマンスを測定するのに、SIPノード300は、メッセージが拒否されるたびに、署名失敗パフォーマンスカウンタを増分することができる。署名失敗パフォーマンスカウンタは、SIPノードがヘッダ署名を検証するのに失敗したことを示す、任意のデータまたは信号であることが可能である。例えば、署名失敗パフォーマンスカウンタは、ある期間内の失敗した署名検証の回数をカウントすることが可能である。次に、署名失敗パフォーマンスカウンタを、およそ1秒間のメッセージ処理時間中に、およそ6回の失敗した署名検証、およそ10回の失敗した署名検証、またはおよそ25回の失敗した署名検証などの、その期間に関する失敗した署名検証の所定の閾値と比較することができる。パフォーマンスカウンタが閾値を超えた場合、SIPノードは、人間のシステム管理者、および/またはコンピュータベースのシステムアドミニストレータに通知する、または警報する(電子メールおよび/またはページを介することを含め)ことができ、人間のシステム管理者および/またはコンピュータベースのシステムアドミニストレータは、例えば、失敗したメッセージをルーティングしているネットワークをドロップすること、ネットワークをロックすること、および/またはメッセージキュー(queue)をフラッシュする(flush)ことを含め、パフォーマンスカウンタに基づく所定のアクションを開始することができる。
一部のケースでは、署名は、経路の各ステップにおいて、例えば、要求および/または帰路上の応答を処理する各SIPノードにおいて生成され、かつ/または検証されることが可能である。ただし、SIPノードサーバ群にかかる計算上の負担を軽減するため、メッセージは、要求される場合にだけ検証してもよい。
例えば、要求が、1つのVIAヘッダ、例えば、要求500の中のアリスのSIPノード102のVIAヘッダ508だけを含む場合、そのノードにおいて署名がまったく生成されなくてもよい。詳細には、アリスのSIPノード102は、応答600の中でまったくルーティング命令を検証しなくてもよい。というのは、この応答は、SIPノード102によって消費される、例えば、さらなる転送が行われないからである。このため、要求が1つのVIAヘッダだけを含む場合、VIA署名がまったく生成されなくてもよく、これに対応して、受信された要求が1つだけのVIAヘッダ、例えば、受信側SIPノードのVIAヘッダだけを含む場合、VIA署名は、まったく検証されなくてもよい。
さらなる例では、メッセージが信頼されない接続を介して受信された場合、サービス拒否攻撃の可能性がより高い可能性がある。メッセージのセキュリティを向上させるため、メッセージは、信頼されない接続を介して受信された場合、検証することができる。例えば、信頼されない接続には、あらゆるサーバタイプに関するあらゆるクライアント接続が含まれることが可能である。というのは、他のサーバ群から受信されたメッセージは、他の方法で認証される可能性があるからである。また、信頼されない接続には、エッジプロキシサーバに関する外部サーバ接続も含まれることが可能であり、より詳細には、すべての外部サーバ接続が含まれることが可能である。
図1に示すとおり、SIPノード200とSIPノード250の間の接続210、212は、信頼される接続である。というのは、これらの接続は、ホームサーバとエッジサーバの間の内部リンクと考えることができるからである。サーバ群は、サーバ間でメッセージトラフィックを認証する他の方法を有する可能性があるため、SIPノード250とSIPノード300の間のリンク260、262は、信頼される接続である可能性がある。しかし、これらのリンクは、一部のケースでは、特に、他のサーバ認証方法が十分であると考えられない場合、信頼されないと考えることができる。クライアントノード402とSIPノード300の間のリンク310、312は、信頼されない接続である可能性がある。というのは、SIPメッセージは、クライアントSIPノードに、またはクライアントSIPノードから送信されるからである。したがって、リンク312などの、信頼されない接続を介して受信される、あらゆるメッセージトラフィックは、SIPノードにおいて検証して、メッセージの完全性および/または真正性を検証することができる。
信頼されたリンクを介して受信された応答が検証されない場合、要求が信頼されたリンクを介して次のSIPノードに転送される際、VIA署名は、生成されなくてもよい。例えば、SIPノード200および250は、信頼されない接続を介して応答600を受信する必要がなく、したがって、これらのノードは、INVITE要求のヘッダ群504の中にVIA署名を生成または格納しなくてもよい。というのは、これらのノードは、応答の経路を検証する要件をまったく有さない可能性があるからである。したがって、VIA署名を生成する前に、SIPノードは、対応する応答の検証が要求されるかどうかを判定することができる。応答を検証する必要がない場合、例えば、次のリンクが信頼される接続である場合、VIA署名は、まったく生成する必要がなく、SIP要求の通常の処理を続けることができる。しかし、対応する応答が、信頼されない接続を介してSIPノードにおいて受信される場合は、前述したとおり、VIA署名を生成することができる。同様に、応答を受信した後、SIPノードはまず、その応答が信頼されない接続から受信されたかどうかを判定することができる。信頼されない接続から受信された場合、VIA署名を、この署名が存在する場合、検証することができる。例えば、SIPノード300は、応答600が信頼されない接続を介して受信されたかどうかを判定することができる。図1に示すとおり、リンク312は、信頼されない接続である。この結果、SIPノード300は、応答のヘッダ604内のSIPノード300のVIAヘッダ634を識別することができる。SIPノード300は、識別されたVIAヘッダ634内に署名が存在するかどうかを判定することができる。VIA署名が存在しない場合、SIPノード300は、プロトコルによって許される場合、エラーメッセージを送信することができ、処理スタックからメッセージをドロップすることができ、署名失敗パフォーマンスカウンタを増分することができ、かつ/または他の任意の適切なアクションを行うことができる。図5に示すとおり、VIA署名650が存在する場合、SIPノード300は、前述したとおり、その署名を検証することができる。
VIAヘッダ群に署名することは、前述したとおり、応答ヘッダ604内のルーティング命令の完全性を検証するのに役立つ可能性がある。しかし、SIPノードは、さらに、または代替として、呼び出し先によって生成された要求に関するルーティング命令の検証を望む可能性がある。したがって、SIPノードは、ダイアログ開始要求のRECORD−ROUTEヘッダの少なくとも1つの少なくとも一部分に基づいて署名を生成し、次に、呼び出し先からの後の要求の中でその署名を検証して、ダイアログ内(in−dialog)要求のルーティング命令の完全性を確実にすることができる。
呼び出し先要求が伝送される経路の完全性を確実にするため、SIPノードは、要求の受信されたヘッダフィールド内に含まれるRECORD−ROUTEヘッダ群およびCONTACTヘッダのURI部分に基づき、呼び出し先ROUTE SET署名を生成することができる。複数のCONTACTヘッダが存在する場合、呼び出し先ROUTE SET署名は、RECORD−ROUTEヘッダ群の選択されたURI部分、および最初にリストされたCONTACTヘッダのURI部分に基づくことが可能である。より詳細には、図1、図2、および図4に示したINVITEメッセージ500の場合、SIPノード300は、SIPノード250のRECORD−ROUTEヘッダ522のURI部分、SIPノード200のRECORD−ROUTEヘッダ520のURI部分、および呼び出し元であるアリスのCONTACTヘッダ518のURI部分に基づき、ROUTE SET署名を提供することができる。生成された呼び出し先ROUTE SET署名は、同一のダイアログに属する呼び出し先SIPノード402によって生成されたあらゆる要求内に格納し、使用するために、メッセージ内に格納され、呼び出し先SIPノード402に転送されることが可能である。RECORD−ROUTEヘッダと他のヘッダ情報の任意の適切な組合せに署名を行い、呼び出し先SIPノード402によって生成されるあらゆる後続の要求に関するルーティング命令を認証することができることを認識されたい。要求ヘッダ504の中に挿入される呼び出し先ROUTE SET署名は、署名ブラブの所定の数の上位ビット、およびデジタル署名全体を含め、生成された署名を示す任意のデータまたは信号であることが可能である。
要求の処理中に生成された呼び出し先ROUTE SET署名が、呼び出し元SIPノード402によって生成された後続の要求の中に検証のために存在することを確実にするため、生成された呼び出し先ROUTE SET署名は、要求のエコーされるヘッダの中に挿入することができる。このため、クライアントSIPノード402が、SIPダイアログ開始要求のエコーされるヘッダ群に基づいて新たな要求を生成すると、生成された署名は、自動的に転送される。したがって、要求を受信したSIPノードは、要求ヘッダに移された署名を検証することができる。先立つ合意に基づいてクライアントSIPノードによってエコーバックされることが可能な任意のエコーされるヘッダ部分またはカスタムヘッダ部分が、SIPノードによる検証のために呼び出し先ROUTE SET署名を格納するのに適する可能性があることを認識されたい。
図2および図4に示すとおり、呼び出し先ROUTE SET署名は、URIパラメータとして、署名を生成したSIPノードのRECORD−ROUTEヘッダの中に挿入することができる。例えば、SIPノード300は、要求500の中のRECORD−ROUTEヘッダ522、520、およびCONTACTヘッダ518のURI部分に基づいて呼び出し先ROUTE SET署名560を生成することができる。SIPノード300は、呼び出し先ROUTE SET署名560をURIパラメータとして、SIPノード300のRECORD−ROUTEヘッダ524の中に挿入することができる。前述したとおり、呼び出し元からのダイアログ開始要求のRECORD−ROUTEヘッダ群およびCONTACTヘッダのURI部分が、呼び出し先SIPノードによってROUTヘッダ群の中に格納され、エコーされて、ダイアログ内の呼び出し先によって生成されたあらゆる将来の要求に関するルーティング命令が提供される。このため、図6に示すとおり、SIPノード402は、要求を形成する際、標準のSIP処理の下で、RECORD−ROUTEヘッダ524のURI部分をSIPノード300のROUTEヘッダ724の中にコピーすることができる。RECORD−ROUTEヘッダのURI部分がエコーされると、標準の経路情報がコピーされるとともに、呼び出し先ROUTE SET署名560を含むあらゆるURIパラメータもコピーされる。
図6の受信された呼び出し先ROUTE SET署名760を検証するため、SIPノード300は、受信された呼び出し先ROUTE SET署名760を取り外し、保存することができる。SIPノード300は、この場合、INVITEであるダイアログ作成要求の中に挿入される呼び出し先ROUTE SET署名560を生成するのに使用されたのと同一の手続きを使用して、検証ROUTE SET署名を生成することができる。前述した呼び出し先ROUTE SET署名560の生成に従って、SIPノード300は、受信された要求700の中でRECORD−ROUTEヘッダを識別し、受信側SIPノードのROUTEヘッダを除き、要求の中に存在するすべてのROUTEヘッダに基づいて検証ROUTE SET署名を生成することができる。このようにして、検証ROUTE SET署名は、SIPノード300が要求メッセージ500の中で呼び出し先ROUTE SET署名560を生成した際に、SIPノード300が知っているRECORD−ROUTEヘッダ群およびCONTACTヘッダに基づくことが可能である。例えば、図1のセットアップにおいて、SIPノード300の検証ROUTE SET署名は、SIPノード250のROUTEヘッダ722、SIPノード200のROUTEヘッダ720、ならびに呼び出し元SIPノード102を識別するCONTACTヘッダに基づくROUTEヘッダ718に基づくことが可能である。SIPノード300は、検証ROUTE SET署名を受信された呼び出し先ROUTE SET署名760と比較することができる。署名が合致しなかった場合、SIPノード300は、プロトコルによって許される場合、エラーメッセージを送信し、処理スタックから要求700を削除し、署名失敗パフォーマンスカウンタを増分し、かつ/または他の任意の適切なアクションを行うことができる。署名が合致した場合、SIPノード300は、SIP標準の下で通常の処理を続け、要求ヘッダ群704のROUTEヘッダ群の中で示される次のSIPノードに要求を転送することができる。
一部のケースでは、呼び出し先ROUTE SET署名は、経路の各ステップにおいて、例えば、要求を処理する各SIPノードにおいて生成され、かつ/または検証されることが可能である。ただし、SIPノードサーバ群にかかる計算上の負担を軽減するため、要求は、必須の場合にだけ検証してもよい。
例えば、要求がRECORD−ROUTEヘッダをまったく含まない場合、例えば、現在、処理を行っているSIPノードさえ、RECORD−ROUTEヘッダを追加していない場合、呼び出し先ROUTE SET署名は、生成されなくてもよい。より詳細には、要求を処理しているSIPノードが、呼び出し先と呼び出し元の間のさらなる通信のために「ループに入った」ままになることを要求していない場合、SIPノードは、将来に受信されるメッセージの中のルーティング情報を検証することを望まない可能性がある。
さらなる例では、要求がRECORD−ROUTEヘッダ群を含むが、1つのCONTACTヘッダも含まない場合、SIPノードは、それらのRECORD−ROUTEヘッダをエコーするいずれの応答または要求も検証することを望まない可能性がある。これは、一部のタイプのACKメッセージおよびCANCEL SIPメッセージを含む、一部のケースで生じる可能性がある。より詳細には、受信された要求が、少なくとも1つのRECORD−ROUTEヘッダを含み、CONTACTヘッダをまったく含まない場合、呼び出し先ROUTE SET署名は、生成されなくてもよく、メッセージの通常の処理が続けられることが可能である。
追加の例では、メッセージは、信頼されない接続を介して受信された場合に検証されることが可能である。というのは、信頼されないリンクからの要求は、サービス拒否攻撃のソースである可能性がより高い可能性があるからである。信頼されるリンクを介して受信された呼び出し先からの要求が検証されない場合、呼び出し先ROUTE SET署名560は、呼び出し元からのダイアログ開始要求が信頼されるリンクを介して次のSIPノードに転送される際は、生成されなくてもよい。例えば、図1に示すとおり、SIPノード200は、信頼される接続を介して要求700を受信する、つまり、SIPノードは、信頼されない接続を介して要求700を受信しない。したがって、このノードは、INVITE要求のヘッダ群504の中で呼び出し先ROUTE SET署名を生成または挿入しなくてもよい。というのは、このノードは、呼び出し先からのいずれの要求の経路を検証する要件も有さない可能性があるからである。このため、呼び出し先ROUTE SET署名を生成する前に、SIPノードは、呼び出し先要求の検証が要求されるかどうかを判定することができる。呼び出し先要求が検証されない場合、例えば、現在の要求が、信頼される接続を介して受信される場合、呼び出し先ROUTE SET署名は、まったく生成されなくてもよく、SIP要求の通常の処理が続けられることが可能である。しかし、呼び出し先要求が、信頼されない接続を介してSIPノードで受信される場合は、前述したとおり、呼び出し先ROUTE SET署名が生成されることが可能である。同様に、呼び出し先ROUTE SET署名の検証中、処理を行うSIPノードはまず、呼び出し先から受信された要求が信頼されない接続を介してであるかどうかを判定することができる。信頼されない接続を介してである場合、呼び出し先ROUTE SET署名を、この署名が存在する場合、検証することができる。例えば、SIPノード300は、要求700が信頼されない接続を介して受信されたかどうかを判定することができる。図1に示すとおり、リンク312は、信頼されない接続である。この結果、SIPノード300は、図6に示した要求700のヘッダ704内で、SIPノード300のROUTEヘッダ724を識別することができる。SIPノード300は、識別されたROUTEヘッダ724内に署名が存在するかどうかを判定し、存在する場合、その署名を検証することができる。
SIPノードは、さらに、または代替として、ダイアログ開始要求の後に呼び出し元によって生成されたダイアログ内要求に関するルーティング命令の検証を望むことも可能である。したがって、SIPノードは、ダイアログ開始要求に対する応答のRECORD−ROUTEヘッダの少なくとも1つの少なくとも一部分に基づいて署名を生成し、次に、呼び出し元からの後続の要求の中でその署名を検証して、要求のルーティング命令の完全性を確実にすることができる。
呼び出し元要求が伝送される経路の完全性を確実にするため、SIPノードは、受信された応答のヘッダフィールドの中に含まれるRECORD−ROUTEヘッダ群およびCONTACTヘッダのURI部分に基づき、呼び出し元ROUTE SET署名を生成することができる。複数のCONTACTヘッダが存在する場合、呼び出し元ROUTE SET署名は、RECORD−ROUTEヘッダ群の選択されたURI部分、および最初にリストされたCONTACTヘッダのURI部分に基づくことが可能である。より詳細には、図1および図5に示した応答メッセージ600の場合、SIPノード200は、SIPノード250のRECORD−ROUTEヘッダ622のURI部分、SIPノード300のRECORD−ROUTEヘッダ624のURI部分、および呼び出し先であるボブのCONTACTヘッダ618のURI部分に基づき、呼び出し元ROUTE SET署名を提供することができる。生成された呼び出し元ROUTE SET署名は、同一のダイアログの中に属する呼び出し元SIPノード102によって生成されたあらゆる要求内に格納し、使用するために、メッセージの中に格納され、呼び出し元SIPノード102に転送されることが可能である。RECORD−ROUTEヘッダ群と他のヘッダ情報の任意の適切な組合せに署名して、呼び出し元SIPノード102によって生成される、あらゆる後続の要求の中のルーティング命令を認証することができることを認識されたい。応答ヘッダ604の中に挿入される呼び出し元署名は、署名ブラブの所定の数の上位ビット、およびデジタル署名全体を含め、生成されたデジタル署名を示す任意のデータまたは信号であることが可能である。
応答の処理中に生成された呼び出し元ROUTE SET署名が、呼び出し元SIPノード102によって生成された後続の要求の中に検証のために存在することを確実にするため、生成された呼び出し元ROUTE SET署名は、URIパラメータとして応答のエコーされるヘッダの中に挿入することができる。このため、クライアントSIPノード102が、SIP応答のエコーされるヘッダ群に基づいて新たな要求を生成すると、生成された署名は、自動的に転送される。したがって、要求を受信したSIPノードは、要求ヘッダに移された署名を検証することができる。先立つ合意に基づいてクライアントSIPノードによってエコーバックされる任意のエコーされるヘッダ部分またはカスタムヘッダが、SIPノードによる検証のために呼び出し元ROUTE SET署名を格納するのに適する可能性があることを認識されたい。
図5に示すとおり、呼び出し元ROUTE SET署名が、その署名を生成したSIPノードのRECORD−ROUTEヘッダの中に挿入されることが可能である。例えば、SIPノード200は、応答600の中のRECORD−ROUTEヘッダ622、624、およびCONTACTヘッダ618のURI部分に基づき、呼び出し元ROUTE SET署名660を生成することができる。SIPノード200は、SIPノード200のRECORD−ROUTEヘッダ620の中にROUTE SET署名660を挿入することができる。前述したとおり、ダイアログ開始要求に対する応答のRECORD−ROUTEヘッダ群およびCONTACTヘッダのURI部分は、呼び出し元SIPノードによってROUTEヘッダ群の中に格納され、エコーされて、ダイアログ内の呼び出し元によって生成される、将来のあらゆる要求に関するルーティング命令を提供する。このため、図7の典型的な要求800に示すとおり、SIPノード102は、そのダイアログの中で後続の要求を形成する際、標準のSIP処理の下でRECORD−ROUTEヘッダ620のURI部分をSIPノード200のROUTEヘッダ820の中にコピーすることができる。RECORD−ROUTEヘッダのURI部分がエコーされると、標準の経路情報がコピーされるとともに、呼び出し元ROUTE SET署名660を含むあらゆるURIパラメータもコピーされる。
図7の受信された呼び出し元ROUTE SET署名860を検証するため、SIPノード200は、図7に示す受信された呼び出し元ROUTE SET署名860を取り外し、保存することができる。SIPノード200は、ダイアログ作成要求の中に挿入される呼び出し元ROUTE SET署名660を生成するのに使用されたのと同一の手続きを使用して、検証ROUTE SET署名を生成することができる。前述した呼び出し元ROUTE SET署名660の生成に従って、SIPノード200は、受信された要求800の中でRECORD−ROUTEヘッダを識別し、受信側SIPノードのROUTEヘッダを除き、要求の中に存在するすべてのROUTEヘッダに基づいて検証ROUTE SET署名を生成することができる。このようにして、検証ROUTE SET署名は、SIPノード200が応答メッセージ600の中で呼び出し元ROUTE SET署名660を生成した際に、SIPノード200が知っているRECORD−ROUTEヘッダ群およびCONTACTヘッダに基づくことが可能である。したがって、SIPノード200に関する検証ROUTE SET署名は、SIPノード250のROUTEヘッダ822、SIPノード300のROUTEヘッダ824、ならびに呼び出し先SIPノード402を識別するCONTACTヘッダに基づくROUTEヘッダ818に基づく。SIPノード200は、検証ROUTE SET署名を受信された呼び出し元ROUTE SET署名860と比較することができる。署名が合致しなかった場合、SIPノード200は、プロトコルによってサポートされる場合、エラーメッセージを送信し、処理スタックから要求800を削除し、署名失敗パフォーマンスカウンタを増分し、かつ/または他の任意の適切なアクションを行うことができる。署名が合致した場合、SIPノード200は、SIP標準の下で通常の処理を続け、要求ヘッダ群804のROUTEヘッダ群の中で示される次のSIPノードに要求を転送することができる。
一部のケースでは、呼び出し元ROUTE SET署名は、経路の各ステップにおいて、例えば、応答および/または要求をそれぞれ処理する各SIPノードにおいて生成され、かつ/または検証されることが可能である。ただし、要求の中に挿入されるVIA署名およびROUTE SET署名に関連して前述したとおり、SIPノードサーバ群にかかる計算上の負担は、必須の場合にだけ、要求の中で呼び出し元ROUTE SET署名の検証を要求することにより、軽減することができる。
例えば、要求に対する応答がRECORD−ROUTEヘッダをまったく含まない場合、例えば、現在のSIPノードさえ、RECORD−ROUTEヘッダを追加していない場合、呼び出し元ROUTE SET署名は、生成されなくてもよい。より詳細には、応答を処理しているSIPノードが、呼び出し先と呼び出し元の間のさらなる通信のために「ループに入った」ままになることを要求していない場合、SIPノードは、将来のメッセージの中のルーティング情報を検証することを望まない可能性がある。
さらなる例では、応答がRECORD−ROUTEヘッダ群を含むが、1つのCONTACTヘッダも含まない場合、SIPノードは、それらのRECORD−ROUTEヘッダをエコーするいずれの応答または要求の検証も望まない可能性がある。より詳細には、受信された応答が少なくとも1つのRECORD−ROUTEヘッダを含み、CONTACTヘッダをまったく含まない場合、呼び出し元ROUTE SET署名は、生成されなくてもよく、通常の処理が続けられることが可能である。
追加の例では、呼び出し元要求のROUTE SETヘッダ群は、信頼されない接続を介して受信された場合にだけ検証されることが可能である。信頼されるリンクを介して受信された要求が検証されない場合、応答が信頼されるリンクを介して次のSIPノードに転送される際、呼び出し元ROUTE SET署名660が生成される必要はない。同様に、呼び出し元から要求を受信した後、ROUTE SET署名は、信頼される接続を介して受信された場合、検証されなくてもよい。
前述したとおり、RECORD−ROUTEヘッダ群は、ダイアログ開始要求、および対応する応答の中に含まれて、後続の要求をルーティングするのに使用される呼び出し先ROUTE SETヘッダおよび呼び出し元ROUTE SETヘッダを生成する。このため、一部のケースでは、SIPノードは、ダイアログ開始要求に対する応答の中のRECORD−ROUTEヘッダを検証して、それらのRECORD−ROUTEヘッダの完全性を確実にすることができる。例えば、接続する(attaching)ノードが要求の中のRECORD−ROUTEヘッダ群を改ざんする可能性があり、その結果、後続のSIPノードが、不正なRECORD−ROUTEヘッダ群全体に署名し、有効なROUTE SET署名を有するが、不正なルーティング情報に基づくROUTEヘッダを生じさせる可能性がある。したがって、SIPノードは、要求のRECORD−ROUTEヘッダの少なくとも1つの少なくとも一部分に基づいて署名を生成し、次に、呼び出し先からの応答の中でその署名を検証して、メッセージのRECORD−ROUTEヘッダ群の完全性を確実にすることができる。
RECORD−ROUTEヘッダのセットの完全性を確実にするため、SIPノードは、受信された要求のヘッダフィールドに含まれるRECORD−ROUTEヘッダ群のURI部分に基づき、RECORD−ROUTE署名を生成することができる。より詳細には、図1、図2、および図4に示したINVITEメッセージ500の場合、SIPノード300は、SIPノード250のRECORD−ROUTEヘッダ522のURI部分、およびSIPノード200のRECORD−ROUTEヘッダ520のURI部分に基づいてRECORD−ROUTE署名570を提供することができる。前述した呼び出し先ROUTE SET署名とは異なり、RECORD−ROUTE署名570は、CONTACTヘッダを含まない。というのは、呼び出し先は、SIP標準の下では、応答の中でCONTACTヘッダ518をエコーしないからである。生成されたRECORD−ROUTE署名570は、メッセージ内に格納され、応答メッセージに移され、応答がSIPノードを介して処理される際に検証されることが可能である。RECORD−ROUTEヘッダ群と他のヘッダ情報の任意の適切な組合せに署名を行い、呼び出し先SIPノード402によって生成された応答の中でルーティング命令を認証することができることを認識されたい。要求ヘッダ504の中に挿入されるRECORD−ROUTE署名570は、署名ブラブの所定の数の上位ビット、およびデジタル署名全体を含め、生成されたデジタル署名を示す任意のデータまたは信号であることが可能である。
要求の処理中に生成されたRECORD−ROUTE署名が、呼び出し先SIPノード402によって生成された応答の中に検証のために存在することを確実にするため、生成されたRECORD−ROUTE署名570は、ヘッダパラメータまたはURIパラメータとして、要求のエコーされるヘッダの中に挿入することができる。このため、クライアントSIPノード402がSIP要求からのエコーされるヘッダに基づいて応答を生成すると、生成された署名は、要求から応答に自動的に移される。したがって、応答を受信したSIPノードは、応答ヘッダに移された署名を検証することができる。先立つ合意に基づいてクライアントSIPノードによってエコーされる任意のエコーされるヘッダまたはカスタムヘッダが、SIPノードによる検証のためにRECORD−ROUTE署名を格納するのに適する可能性があることを認識されたい。
図4に示すとおり、RECORD−ROUTE署名は、その署名を生成したSIPノードのRECORD−ROUTEヘッダの中に挿入することができる。例えば、SIPノード300は、RECORD−ROUTE署名570をヘッダパラメータとして、SIPノード300のRECORD−ROUTEヘッダ524の中に挿入することができる。前述したとおり、RECORD−ROUTEヘッダ群は、応答ヘッダ群604の中でエコーバックされる。このため、SIPノード402は、図5に示した応答600のような応答を形成する際、標準のSIP処理の下で、RECORD−ROUTEヘッダ524をSIPノード200のRECORD−ROUTEヘッダ624にコピーすることができる。RECORD−ROUTEヘッダがエコーされると、標準の情報とならび、RECORD−ROUTE署名570を含むあらゆるヘッダパラメータもコピーされる。
図5の受信されたRECORD−ROUTE署名670を検証するのに、SIPノード300は、受信されたRECORD−ROUTE署名670を取り外し、保存することができる。SIPノード300は、この場合、INVITEである、対応する要求の中に挿入されるRECORD−ROUTE署名570を生成するのに使用されたのと同一の手続きを使用して、検証RECORD−ROUTE署名を生成することができる。前述したRECORD−ROUTE署名570の生成に従って、SIPノード300は、SIPノード250のRECORD−ROUTEヘッダ622のURI部分、およびSIPノード200のRECORD−ROUTEヘッダ620のURI部分に基づき、検証RECORD−ROUTE署名を生成することができる。SIPノード300は、検証RECORD−ROUTE署名を受信されたRECORD−ROUTE署名670と比較することができる。署名が合致しなかった場合、SIPノード300は、プロトコルによってサポートされる場合、エラーメッセージを送信し、処理スタックから応答600を削除し、かつ/または署名失敗パフォーマンスカウンタを増分することができる。署名が合致した場合、SIPノード300は、SIP標準の下で通常の処理を続け、応答ヘッダ群604のVIAヘッダ群の中で示される次のSIPノードに応答を転送することができる。
一部のケースでは、応答のRECORD−ROUTEヘッダ群は、経路の各ステップにおいて、例えば、応答を処理する各SIPノードにおいて検証されることが可能である。ただし、SIPノード群にかかる計算上の負担を軽減するため、応答は、VIA署名650に関連して前述したのと同様に、要求される場合にだけ検証することもできる。例えば、要求がRECORD−ROUTEヘッダをまったく含まない場合、RECORD−ROUTE署名は、生成されなくてもよい。追加の例では、次のSIPノードへの接続が信頼される接続である場合、RECORD−ROUTE署名は、生成されなくてもよい。通信システムにかかる負担を軽減するため、SIPノードは、検証後、応答を次のSIPノードに転送する前に、RECORD−ROUTEヘッダからRECORD−ROUTE署名を削除することもできる。
SIPメッセージの中のヘッダ群の少なくとも一部分に基づいて署名を生成するのに、検証能力および検証能力を要するSIPノードは、中央処理装置上で実行されて、暗号化、解読、署名、および/または検証を含む、いくつかの暗号機能を実行する暗号化プログラムを含むことが可能である。例として、暗号化プログラムは、署名を計算する際にランダムなデータを追加するのに使用される、または暗号化/解読の目的で使用される対称キーなどの、暗号化キーを生成すること、および破壊することができることが可能である。代替として、暗号化プログラムは、非対称(公開/秘密)キーペアにアクセスすることができる。通常の非対称キーペアでは、公開キーは、情報を暗号化するのに使用することができ、対応する秘密キーは、情報を解読するのに使用することができる。秘密キーを使用してデジタル署名が生成されることが可能であり、その署名が、公開キーを使用して認証されることが可能である。攻撃に対する強度(resilience)、相対的な速度、および関連する署名の生成に関する計算上の負担などの、多くの要因に基づき、MD5、ソルト(salt)、HMAC、SHA1、およびRSAを単独で、または組合せで含む任意の一方向ハッシュ機構が、SIPヘッダ群に基づいて署名を生成するのに適する可能性があることを認識されたい。また、署名ブラブ全体、署名ブラブの部分、または任意の符号化スキームを使用する署名ブラブの符号化されたバージョンを、VIA署名、RECORD SET署名、および/またはRECORD−ROUTE署名として挿入することができることも認識されたい。一例では、署名は、SIPメッセージヘッダ群の選択された部分と、乱数および/またはセッションキーを含む他の任意の情報との16バイトの一方向MD5ハッシュであることが可能である。SIPヘッダ群に基づく署名は、署名の生成と検証の間で順序に整合性が保たれる限り、妥当なヘッダを任意の特定の順序にして生成することができる。
同一のSIPノードによって処理されるVIA署名、ROUTE SET署名、およびRECORD−ROUTE署名はそれぞれ、同一のセッションキーで生成されることが可能である。代替として、各署名、または署名の任意の組合せに関して、異なる強度、および異なる速度のキーを使用してもよい。例えば、VIA署名および/またはRECORD−ROUTE署名は、例えば、対応する応答において、通常、かなり迅速に検証されるので、VIA署名を生成するのに使用されるVIAキーは、かなり小さい計算上の負担を伴う、かなり軽量のキー/暗号化ソリューションであることが可能である。しかし、ROUTE SETヘッダは、ダイアログ全体を通じて検証されつづける可能性があるため、ROUTE SETキーは、軽量のキー/暗号化ソリューションと比べてそれほど攻撃に対して脆弱でない重量のキー/暗号化ソリューションであることが可能である。
署名を生成するためのセッションキー自体、特定のSIPノードによってある時間枠の中で処理されるすべてのダイアログ要求および/または応答に関して生成され、使用されることが可能である。代替として、各ダイアログに、特定のセッションキーが発行されることが可能であり、セッションキーは、そのSIPノードによって使用される他のダイアログセッションキーと同一であることも、異なることも可能であり、他のSIPノードによって使用されるダイアログセッションキーと同一であることも、異なることも可能である。セッションキーは、所定の期間の後、ダイアログの終了時に、および/またはキーおよび/またはヘッダの破損の指示を受け取ると、暗号化プログラムによって破壊されることが可能である。
各SIPノードは、VIA署名を生成するためのVIAキー、ROUTE SETヘッダを生成するためのROUTEキー、およびRECORD−ROUTE署名を生成するためのRECORD−ROUTEキーなどの、独自のセッションキーを生成することができる。代替として、セッションキーには、公開キー/秘密キーペアに関する証明書などを介して、SIPノードのそれぞれがアクセスできて、各タイプのヘッダに同一のキーを使用して署名が行われることも可能である。
署名を生成するのに使用されるセッションキーの脆弱性を小さくするため、キーをときどきリフレッシュすることができる。例えば、セッションキーは、4時間毎にリフレッシュすることができる。ただし、セッションキーがリフレッシュされた後にダイアログが続けられることを可能にすることを確実にするため、SIPノードの暗号化プログラムは、以前のセッションキーを格納し、保持することができる。格納されたキーは、RECORD−ROUTEキーおよびROUTE SETキーの場合、およそ5分間からおよそ24時間の範囲内で、VIAキーの場合、およそ5分間からおよそ30分間の範囲内でなど、所定の期間にわたって格納されることが可能である。さらに、または代替として、セッションキーは、そのキーを使用して署名されたすべてのメッセージが検証されるまで保存することができる。署名を検証するのに正しいキーにアクセスが行われることを確実にするため、暗号化プログラムは、キー識別子を署名の中に挿入すること、および/またはキー識別子を符号化されたSIPヘッダ内に追加のパラメータとして付加することができる。
一部のケースでは、SIPメッセージを処理するSIPノードは、サーバのプールによって提供される可能性がある。しかし、署名を検証するのと同一のサーバが、署名を生成したのと同一のサーバであるという保証はまったく存在しない。このため、サーバのプール内のサーバ群は、署名を生成するのに使用されたキーを通信して、それらのキーがメッセージを処理するのに使用される場合、プール内の他のサーバ群がそれらの署名を検証することができるようにする必要がある可能性がある。一例では、サーバ群は、キーを互いに送信すること、あるいは証明書、または他の適切な方法を介して、キーサービスから適切なキーにアクセスすることができる。ただし、サーバのプール内のサーバ群は、一般に、サーバ間の通信を最小限に抑えて汚染(contamination)を減らし、キーサービスにアクセスすることは、メッセージ処理時間を増大させる可能性がある。このため、署名を生成するサーバから署名を検証するサーバへセッションキーをセキュリティで保護された形で転送するのに、署名を生成したサーバは、署名を有するメッセージのエコーされるヘッダに暗号化され、署名されたセッションキーを追加することができる。
例えば、SIPノード300が、図1に点線で示した第1のサーバ300Aおよび第2のサーバ300Bを含むサーバのプールによって提供されることが可能である。一部のケースでは、要求500は、SIPノード300Aを介してルーティングされることが可能であり、呼び出し先からの後続のダイアログ内要求700は、SIPノード300Bを介してルーティングされることが可能である。したがって、ダイアログ内要求の中のROUTE SET署名760を検証するのに、SIPノード300Bは、ROUTE SET署名560を生成するのにSIPノード300Aによって使用されたキーを知る必要がある。図4の典型的な要求RECORD−ROUTEヘッダ群の中に示すとおり、RECORD−ROUTEヘッダ534などのRECORD−ROUTEヘッダは、標準のSIP処理の下における典型的なネットワークロケーション情報、SIPノード300Aによって生成されたROUTE SET署名560、および署名560を生成するのにSIPノード300Aによって使用されたROUTE SETキー580を表すデータを含むことが可能である。
ただし、他のSIPノード群がメッセージヘッダ内のROUTE SETキー580へのアクセスを有さないことを確実にするため、SIPノード300Aは、公開キーを使用してROUTE SETキーを暗号化することができる。これに対応して、その暗号化の完全性を検証するのに、SIPノードは、秘密キーを使用して、暗号化されたROUTE SETキーに署名することができる。次に、SIPノード300Aは、暗号化され、署名されたセッションキーをRECORD−ROUTEヘッダのURIパラメータなどとして、エコーされるヘッダの中に挿入して、セッションキーを暗号化し、セッションキーに署名するのに使用される公開キー/秘密キーペアにアクセスを有するサーバに、セキュリティで保護されたセッションキーを配信することができる。暗号化されたセッションキー、および署名されたセッションキーは、単一のパラメータとして挿入されることも、複数のパラメータとして挿入されることも可能である。
一部のケースでは、2対の公開キー/秘密キーペアを利用して、メッセージヘッダ群の中のセッションキーをセキュリティで保護することが所望される可能性がある。例えば、第1の公開キー/秘密キーペア、および第2の公開キー/秘密キーペアが、インストールされること、または証明書システムを介してアクセス可能であることが可能である。署名を生成したSIPノードにおいて、第1の公開キー/秘密キーペアの第1の公開キーが、セッションキーを暗号化するのに使用され、第2の公開キー/秘密キーペアの第2の秘密キーが、セッションキーに署名するのに使用されることが可能である。このようにして、両方の公開キー/秘密キーペアにアクセスを有する受信側SIPノードは、第2の公開キー/秘密キーペアの第2の公開キーを使用して、署名の有効性を検証することができ、第2の公開キー/秘密キーペアの第1の秘密キーを使用して、セッションキーを解読することができる。
公開キー/秘密キーペアによるセッションキーの暗号化および署名は、計算能力を多く使用する(computationally intensive)である可能性がある。このため、SIPノードにかかる負担を軽減するため、署名済みの暗号化されたセッションキーは、解読されたキー情報、キーの作成の日付/時刻タイムスタンプ、キーの有効期限の日付/時刻、および/または他の任意の情報に関連付けられたキーデータベースの中に格納することができる。このようにして、各伝送に先立って暗号化/署名を計算する必要がなくなる可能性がある。
例えば、図6に示すとおり、SIPノード300Bは、ROUTE SET署名760を含むROUTE SETヘッダ724を有する要求700を受信すると、ROUTE SET署名を検査して、その署名560を生成するのにいずれのROUTE SETキーが使用されたかを識別することができる。一部のケースでは、SIPノード300Bは、格納されたキーのデータベースにアクセスして、データベースの中に識別されたROUTE SETキー580が格納されているかどうかを検証することができる。ROUTE SETキーが格納されていない場合、SIPノード300Bは、公開キー/秘密キーペアにアクセスして、ROUTE SETヘッダからROUTE SETキーを特定することができる。より詳細には、SIPノード300Bは、証明書サービスを使用して公開キー/秘密キーペアにアクセスすること、あるいはデータベースから、または任意の適切な方法またはプロセスを介して、公開キー/秘密キーペアを取得することができる。公開キーを使用して、SIPノード300Bは、セッションキーの署名を認証することができる。SIPノード300Bは、秘密キーを使用してROUTE SETキー580を解読した後、その解読されたセッションキーを使用して、検証ROUTE SET署名を生成することもできる。同様の形で、VIAヘッダおよびRECORD−ROUTEヘッダを生成するのに使用されたセッションキーを、エコーされるヘッダの中に挿入することができ、より詳細には、そのセッションキーによって生成された署名を含む、エコーされるヘッダの中に挿入することができる。
セッションキーは、単独で暗号化してもよく、公開キーを使用して暗号化する前に、他の情報をセッションキーとともに含めてもよい。同様に、暗号化されたセッションキーには、単独で署名してもよく、代替として、秘密キーを使用して全体に署名を行う前に、暗号化されたセッションキーブラブに、暗号化されても、暗号化されなくてもよい他の情報が追加されてもよい。このようにして、キー識別子、セッションキー有効期限日、または暗号化された/署名されたセッションキーとともに伝送されることが所望される他の任意の情報などの他の情報。追加の情報は、暗号化された/署名されたセッションキーに追加することができ、同一の公開キー/秘密キーペア、または他の適切な暗号化プロセスを使用して暗号化すること、および/または署名することができる。
一部のケースでは、署名され、暗号化されたセッションキーを受信したSIPノードは、セッションキーの有効期限の時刻および/または日付を検証することができる。これに関して、SIPノード300Aは、セッションキーとならび、セッションキーの作成の日付および/または時刻のスタンプも暗号化し、署名することができる。SIPノード300Bは、ダイアログ内要求を受信すると、前述したとおり、セッションキーおよび日付/時刻スタンプの署名を認証し、セッションキーおよび日付/時刻スタンプを解読することができる。さらに、SIPノード300Bは、セッションキーの日付/時刻スタンプを、そのキーの予期される有効期間(lifetime)、または格納された有効期限の日付/時刻と比較することができる。キーが失効している場合、SIPノード300Bは、サポートされる場合、エラーメッセージを送信することができ、処理スタックからメッセージを削除することができ、かつ/または他の任意の適切なアクションを行うことができる。ドロップ(drop)キーがアクティブである場合、SIPノード300Bは、継続して解読されたキーを使用して、メッセージの中の対応する署名を検証することができる。
図1に示した包括的な例では、SIPノード300は、VIA署名を生成し、その署名を、要求500のVIAヘッダのヘッダパラメータなどの、エコーされるヘッダの中に挿入することができる。次に、呼び出し先が、その要求に対する応答600を送信すると、VIA署名が、SIPノード300において検証されることが可能である。同様に、要求がダイアログ開始要求であった場合、SIPノード300は、RECORD−ROUTE署名を生成し、要求500のRECORD−ROUTEヘッダのヘッダパラメータなどの、エコーされるヘッダの中にその署名を挿入することができる。次に、呼び出し先が、ダイアログ開始要求に対する応答600を送信すると、RECORD−ROUTE署名が、SIPノード300において検証されることが可能である。さらに、要求がダイアログ開始要求であった場合、SIPノード300は、呼び出し先ROUTE SET署名も生成し、要求500のRECORD−ROUTEヘッダのURIパラメータなどの、エコーされるヘッダの中にその署名を挿入することができる。このROUTE SET署名は、そのダイアログにおける呼び出し先によって生成される、あらゆる将来の要求の中でROUTEヘッダのセットとして使用されるように、呼び出し先SIPノードによって保存されることが可能である。このため、呼び出し先ROUTE SET署名は、要求の中で呼び出し先によって使用されるまで検証されない。同様に、ダイアログ開始要求に応答して、SIPノード200は、呼び出し元ROUTE SET署名を生成し、SIPノード200のRECORD−ROUTEヘッダのURIパラメータとして、その署名を挿入することができる。呼び出し元ROUTE SET署名は、呼び出し元SIPノードによって生成される、あらゆる要求に関するROUTEヘッダのセットにおいて使用されるように、呼び出し元SIPノードによって保存されることが可能である。このようにして、呼び出し元ROUTE SET署名は、呼び出し元から要求の中で伝送されるまで検証されないことが可能である。
次に、図8〜14を参照して、SIPノードサーバの典型的なインプリメンテーションを説明する。
図1に示した、呼び出し元SIPノード102、SIPノード200、SIPノード250、SIPノード300、および/または呼び出し先SIPノード402の任意の組合せが、存在し、SIPノードプロセッサとして動作する1つまたは複数のコンピュータ上、または1つまたは複数の他のデバイス上で動作していることが可能である。以上のノードのそれぞれは、複数のコンピュータシステム上、または複数の他のデバイス上で完全に、または部分的に提供されること、および/または、有線接続、無線接続などを含む当技術分野で周知の任意の方法を使用して一緒にネットワーク化されて、前述したプロセスを提供することが可能である。
例示した実施形態では、SIPノード300は、図8〜14を参照して以下に説明するノードサーバ1300によって提供される。SIPノード102、SIPノード250、SIPノード200、およびSIPノード402も、類似するサーバ/コンピュータシステムによって提供されることが可能である。
図8に示すとおり、ノードサーバ1300は、1つまたは複数のプロセッサ1304、内部データ−時間クロック1306、ならびに、実行されると、SIPノード300の動作を実行するようにコンピュータに命令する、命令群を定義する1つまたは複数のコンピュータプログラム1322を含むことが可能なストレージ1308、1つまたは複数の通信ポート1302を含むことが可能である。ストレージには、以下に図9に関連してより詳細に説明するキーデータベース1310も含まれることが可能であり、プログラム群1322は、図10〜14に関連して以下にさらに説明する。
図9は、1つまたは複数のレコード1352を含む、キーデータベース1310に関する典型的なテーブル1350を示す。一般に、各レコードは、セッションキー1354を、そのキーに関する追加の情報に関連付ける。この例では、各レコード1352は、キー識別子1353、セッションキー1354、公開キーで暗号化された暗号化済みのキー1356、作成の日付/時刻1358、および有効期限の日付/時刻1360を含む。SIPノード300は、セッションキー1354を生成することができる。ただし、SIPノードは、メッセージ自体からセッションキーを識別すること、キーサービスから、またはデータに署名するために使用されるセッションキーを生成するのに適した任意の方法を介して、キーを取得することもできる。同様に、残りのデータも、SIPノード300、メッセージ自体、または他のシステムがキー情報を提供するにつれ、初期設定され、更新されることが可能である。
キーデータベースは、リレーショナルデータベース、オブジェクト指向データベース、非構造化データベース、メモリ内データベース、またはその他のデータベースを含め、任意の種類のデータベースであることが可能である。データベースは、ACSIIテキスト、バイナリファイル、通信ネットワークを介して伝送されるデータ、または他の任意のファイルシステムなどの、フラットファイルシステムを使用して構築されることが可能である。以上のデータベースのこれらの可能なインプリメンテーションにもかかわらず、本明細書で使用するデータベースという用語は、コンピュータがアクセスできる任意の形で収集され、格納された任意のデータを指す。
次に、図10〜14を参照して、SIPノード300によって実行される様々なオペレーションを説明する。より詳細には、図10を参照してVIA署名の生成を説明し、図11を参照して、VIA署名の検証を説明する。図12を参照して、RECORD−ROUTE署名およびROUTE SET署名の生成を説明し、図13を参照して、それらの署名の検証を説明する。図14は、サーバのプール内のあるサーバから別のサーバにセッションキーをインポートする諸動作を示す。
図10を参照すると、VIA署名を生成する諸動作には、SIP要求を受信すること900が含まれるが、これには限定されない。前述の図は、INVITE要求に関連して説明するが、VIA署名は、システムのセキュリティ要件および処理要件に依存して、すべての要求、または選択された要求に関して生成されることが可能である。SIPノードは、応答が転送されるリンクが信頼されないリンクであるかどうかを判定すること902ができる。リンクが信頼される場合、SIPノードは、SIP標準プロセスの下で要求の標準の処理を続けることができる。転送リンクが信頼されない場合、諸動作には、処理を行うノードのVIAヘッダを除く、すべての受信されたVIAヘッダのVIAヘッダセットを順序どおり構築すること904が含まれることが可能である。具体的には、要求が検査されることが可能であり、受信されたメッセージの中に存在するVIAヘッダ群が、サーバ1300メモリの中に格納されることが可能である。VIAヘッダセットが空である場合(906)、メッセージの標準の処理を続けることができる。複数のVIAヘッダが存在する場合、諸動作には、VIAキーを識別すること908も含まれ、キーは、前述したとおり、サーバ1300によって生成されても、メッセージ自体においてアクセスされても(図14を参照して以下にさらに説明する)、インターネットなどの手段を介するキーサービスから取得されてもよい。次に、VIA署名が生成されることが可能であり910、暗号化プログラムを呼び出して、メモリの中に格納されたVIAヘッダセットのハッシュを生成することが含まれることが可能である。処理を行うSIPノード300に関するVIAヘッダが生成されることが可能であり912、VIA署名が、ヘッダパラメータとして、SIPノード300に関するVIAヘッダの中に挿入されることが可能である。サーバ1300は、図9に関連して前述したキーデータベースの中にVIAセッションを格納すること916ができ、キー識別子、キー作成日付/時刻、有効期限の日付/時刻、暗号化されたキー、および/またはその他の情報などのキーパラメータを初期設定する、または更新することができる。
図11を参照すると、要求の中でVIA署名を生成した後、SIPノードは、以前に処理された要求に返信する応答を受信すること918ができる。サーバは、応答のVIAヘッダを検査し、複数のVIAヘッダが存在するかどうかを判定すること920ができる。1つだけのVIAヘッダが存在する場合、メッセージの標準の処理を続けることができる。複数のVIAヘッダが存在する場合、SIPノードは、応答が信頼される接続を介して受信されたか、または信頼されない接続を介して受信されたかを判定すること922ができる。リンクが信頼される場合、メッセージの標準の処理を続けることができる。リンクが信頼されない場合、SIPノード300は、SIPノード300に関するVIAヘッダを検査して、署名が存在するかどうかを判定すること924ができる。署名が存在しない場合、SIPノード300は、処理スタックからメッセージをドロップすることができる。署名が存在する場合、SIPノード300は、ヘッダから署名を取り外し、VIA署名をメモリに保存し926、次に、メッセージから先頭のVIAヘッダ(例えば、SIPノード300のVIAヘッダ)を取り外すこと928ができる。SIPノードは、キーデータベース、キーサービス、またはメッセージ自体から適切なVIAセッションキーを取得すること930ができる。適切なキーは、署名自体の中で明らかな識別子、メッセージの日付/時刻、署名のタイプ(例えば、VIA)、または適切なVIAセッションキーを識別するのに適した他の任意のパラメータに基づいて選択されることが可能である。SIPノードは、応答の中に存在する残りのVIAヘッダのVIAヘッダセットを生成すること932ができる。VIA署名が、メッセージの中で与えられる順序のVIAヘッダ群で生成された場合、検証VIAヘッダも同一の順序で生成されて、署名パラメータの適切な順序を確実にすることが可能である。また、諸動作には、VIAヘッダセットおよび取得されたセッションキーに基づいてVIA検証署名を生成すること934、および次に、その検証VIA署名を格納されたVIA署名と比較すること936も含まれる。VIA署名が合致した場合、メッセージの標準の処理を続けることができる。署名が合致しなかった場合は、SIPノードは、処理スタックからメッセージをドロップすること、または他の任意の適切なアクションをとることができる。
図12を参照すると、ROUTE SET署名およびRECORD−ROUTE署名を生成する諸動作には、SIPノードにおいてメッセージを受信すること938、およびそのメッセージが少なくとも1つのRECORD−ROUTEヘッダを含むかどうかを判定すること940が含まれる。メッセージがRECORD−ROUTEヘッダをまったく含まない場合、メッセージの標準の処理を続けることができる。RECORD−ROUTEヘッダを含む場合、SIPサーバは、メッセージが信頼されるリンクを介して伝送されるか、信頼されないリンクを介して伝送されるかを判定すること944ができる。より詳細には、SIPサーバは、検証されるべきメッセージが、信頼されるリンクを介して受信されるか、または信頼されないリンクを介して受信されるかを判定することができる。応答リンクが信頼される場合、標準の処理を続けることができる。リンクが信頼されない場合、SIPサーバは、受信されたメッセージが要求であるかどうか判定すること946ができる。メッセージが要求ではない場合、SIPサーバは、応答の中のRECORD−ROUTEヘッダ群に基づき、RECORD−ROUTEヘッダセットを構築すること948ができる。メッセージが要求である場合、SIPサーバは、RECORD−ROUTEヘッダセットを構築すること950ができ、RECORD−ROUTEセッションキーを識別すること951ができ、セッションキーは、前述したとおり、サーバ1300によって生成されること、メッセージ自体においてアクセスされること(図14を参照して以下にさらに説明する)、またはインターネットなどの手段を介してキーサービスから取得されることも可能である。次に、RECORD−ROUTE署名が生成されること952が可能であり、暗号化プログラムを呼び出して、メモリの中に格納されたRECORD−ROUTEヘッダのURI部分のハッシュを生成することが含まれることが可能である。RECORD−ROUTE署名は、ヘッダパラメータとして、SIPノード300に関するRECORD−ROUTEヘッダの中に挿入されること954が可能である。サーバ1300は、RECORD−ROUTEセッションキーを、図9に関連して前述したキーデータベースの中に格納すること956ができ、キー識別子、キー作成日付/時刻、有効期限の日付/時刻、および/または暗号化されたキーなどのキーパラメータを初期設定する、または更新することができる。メッセージが要求であるか否かにかかわらず、SIPサーバは、受信されたメッセージ内に1つのCONTACTヘッダが存在するかどうかを判定すること942ができる。存在しない場合、標準の処理を続けることができ、存在する場合、SIPノードは、RECORD−ROUTEヘッダセットおよびCONTACTヘッダから、ROUTEヘッダセットを構築すること958ができる。次に、SIPサーバは、ROUTE SETセッションキーを識別すること960ができ、そのキーを使用して、ROUTE SET署名を生成すること962ができ、ROUTE SET署名は、次に、URIパラメータとして、SIPノード300のRECORD−ROUTEヘッダの中に挿入されること964が可能である。SIPノードは、前述したとおり、ROUTE SETセッションキーおよびキーパラメータをキーデータベースの中に保存すること966ができる。次に、SIPサーバは、メッセージの標準の処理に取りかかることができる。
図13を参照すると、SIPノードが応答を受信すると968、RECORD−ROUTE署名の検証が行われることが可能である。SIPノードは、メッセージの中にRECORD−ROUTEヘッダが存在するかどうかを判定すること970ができる。存在しない場合、メッセージの標準の処理を行うことができる。存在する場合、SIPノードは、応答が信頼されないリンクを介して受信されたかどうかを判定すること972ができる。リンクが信頼される場合、メッセージの標準の処理を続けることができる。リンクが信頼されない場合、SIPノードは、SIPノードに関するRECORD−ROUTEヘッダがRECORD−ROUTE署名を含むかどうかを判定すること974ができる。RECORD−ROUTE署名を含まない場合、メッセージは、SIPノード300の処理スタックからドロップすることができる。RECORD−ROUTE署名が存在する場合、SIPノードサーバは、SIPノード300のRECORD−ROUTEヘッダ内のすべての署名を取り外し、保存すること976ができる。例えば、SIPノード300に関するRECORD−ROUTEヘッダは、RECORD−ROUTE署名とROUTE SET署名の両方を含むことが可能である。署名の配置がダイアログ全体を通じて一貫しており、かつ/または署名が、複数の署名を区別する適切な形で識別される限り、どちらの署名がRECORD−ROUTE URIパラメータの中で先にリストされてもよい。例えば、複数の署名を有するヘッダの中に挿入された各署名は、ヘッダのタイプを指定する識別子を含むことが可能であり、かつ/または各署名に、挿入された署名のタイプを識別する追加のパラメータが付随することが可能である。SIPノードは、メッセージのヘッダ群の中のRECORD−ROUTEヘッダ群のURI部分を含むRECORD−ROUTEヘッダセットを構築すること978ができる。また、SIPノードは、図11の動作930に関連して前述した手続きに従って、適切なRECORD−ROUTEセッションキーを取得すること980もできる。SIPノードは、RECORD−ROUTEヘッダセットおよびセッションキーに基づいて検証RECORD−ROUTE署名を生成すること982ができ、次に、検証RECORD−ROUTE署名を格納されたRECORD−ROUTE署名と比較すること984ができる。署名が合致しない場合、SIPノードは、処理スタックからメッセージをドロップすることができる。署名が合致した場合は、標準の処理を続けることができる。ROUTE SET署名が、RECORD−ROUTEヘッダのURIパラメータとして存在していた場合、SIPノードサーバは、メッセージおよび/またはメモリからその署名を削除すること986ができる。より詳細には、呼び出し先ROUTE SET署名が、呼び出し先SIPノードによって保存されており、このため、現在のメッセージを呼び出し元に向かわせるのにもはや要求されない。呼び出し元に関する新たなROUTE SET署名が生成され、呼び出し先に伝送されるべきかどうかを判定するのに、SIPノードは、次のSIPノードが信頼されないリンクを介してであり、かつ少なくとも1つのCONTACTヘッダが存在するかどうかを判定すること987ができる。そうではない場合、メッセージの標準の処理を続けることができる。次のリンクが信頼されない場合、SIPノードサーバは、RECORD−ROUTEキーと同一のキーであることが可能なROUTE SETセッションキーを取得すること988により、呼び出し元ROUTE SET署名を生成することができる。そのキーを使用して、SIPノードは、RECORD−ROUTEヘッダセット、および最初にリストされたCONTACTヘッダのURI部分に基づき、ROUTE SET署名を生成すること990ができる。ROUTE SET署名は、呼び出し元SIPノード102に転送されるように、SIPノード300に関するRECORD−ROUTEヘッダの中に挿入すること992ができる。SIPノードは、前述したとおり、ROUTE SETセッションキーおよび/またはRECORD−ROUTEセッションキー、およびキーパラメータをキーデータベースの中に保存すること994ができる。次に、SIPサーバは、メッセージの標準の処理に取りかかることができる。後続の要求の中の呼び出し先ROUTE SET署名、および/または呼び出し元ROUTE SET署名の検証も、前述したのと同様のプロセスに従うことが可能である。
図14は、サーバのプール内のサーバ群の間でセッションキーを転送するための1つの典型的なインプリメンテーションにおける動作を示す。例えば、前述したとおり、SIPノード300は、サーバ300Aおよびサーバ300Bによって提供されることが可能である。このようにして、SIPノード300Aが、セッションキーを使用して署名を生成すること可能であり、次に、SIPノード300Bが、その署名を検証するように要求されることが可能である。以下の例は、ROUTE SETヘッダ群に関連して説明するが、類似したプロセスを使用して、RECORD−ROUTEセッションキーおよび/またはVIAセッションキーに対して暗号化、署名、およびアクセスを行うこともできる。
図14に示すとおり、公開キー/秘密キーペアの共通の証明書が生成されて996、サーバプール内の各サーバ(300A、300B)にインストールされること998が可能である。前述したとおり、公開キー/秘密キーペアを使用して、そのノードによって処理されるすべてのセッションキーに署名および暗号化を行うことも、各タイプのセッションキー(VIA、RECORD−ROUTE、および/またはROUTE SET)が別個の公開キー/秘密キーペアを有することも可能である。動作の際、SIPノード300Aは、署名される必要がある要求を受信すること1000が可能である。前述したとおり、SIPノードサーバは、ROUTE SETセッションキーを生成すること、ROUTE SETセッションキーにアクセスすること、またはROUTE SETセッションキーを取得することにより、ROUTE SETセッションキーを識別すること1002ができる。SIPノードは、証明書が、キー交換に関するルーティング情報向けに構成されていることを検証すること1004もできる。SIPサーバは、ROUTE SETセッションキーの作成の日付/時刻スタンプを特定すること、およびその日付/時刻スタンプをセッションキーに付加すること1006ができる。公開キーを使用して、SIPサーバは、セッションキーおよび日付/時刻スタンプを暗号化すること1008、およびその結果に秘密キーを使用して署名すること1010ができる。暗号化され、署名されたセッションキーの結果は、図9に関連して前述したキーデータベースの中に、日付/時刻スタンプ、セッションキー、セッションキー識別子などのキーパラメータとともに格納すること1012ができる。ROUTE SETセッションキーを使用して、SIPノードは、図12に関連して前述したとおり、ROUTE SET署名を生成することができ、SIPノード300に関するRECORD−ROUTEヘッダを生成すること1014ができる。SIPノードサーバは、ROUTE SET署名をSIPノードに関するRECORD−ROUTEヘッダの中に挿入すること1018ができ、署名され、暗号化されたROUTE SETセッションキーをURIパラメータとして、SIPノードRECORD−ROUTEヘッダの中に挿入すること1020もできる。
呼び出し先は、要求を受信した後、RECORD−ROUTEヘッダ群およびCONTACTヘッダのURI部分をROUTE SETヘッダのセットの中に保存する。呼び出し先SIPノードは、後続のダイアログ内要求を生成する際、SIPノード300Aによって生成されたROUTE SET署名およびROUTE SETセッションキーを含む、RECORD−ROUTEヘッダ群およびCONTACTヘッダをエコーするROUTE SETヘッダ群を含めることができる。第2のSIPノード300Bは、少なくとも1つのROUTEヘッダを有するダイアログ内要求を受信すること1022が可能である。図12に関連して前述した適切なセッションキーを取得すること930に鑑みて、SIPノードは、署名され、暗号化されたROUTE SETセッションキーをROUTEヘッダから抽出し1024、その署名され、暗号化されたキーをキーデータベース内のエントリと比較して1026、サーバノード300Bが、解読されたセッションキーへのアクセスを有するかどうかを判定することができる。合致が存在する場合、SIPノード300Bは、キーデータベースからのセッションキーを使用して、ROUTEヘッダ内のROUTE SET署名を検証することができる。合致が存在しない場合、SIPノードは、キー署名を抽出すること1028ができ、公開キーを使用してキー署名を検証すること1030ができる。署名が検証されなかった場合、SIPノードは、処理スタックからメッセージをドロップすること、または他の任意の適切なアクションを行うことができる。署名が合致した場合、暗号化されたセッションキーを抽出すること1032ができる。日付/時刻スタンプは、セッションキーとは別個に解読して1034、キーがもはやアクティブではない(例えば、失効している)場合、サーバリソースを最小限に抑えることができる。より詳細には、SIPノードは、日付/時刻スタンプが、そのタイプのセッションキーに関する構成有効期間内にあることを検証した後、日付/時刻スタンプを検証すること1036ができる。日付/時刻スタンプを検証することができない場合、メッセージは、処理スタックからドロップすることができる。日付/時刻スタンプが検証された場合、秘密キーを使用してセッションキーを解読した1038後、ROUTE SET署名を検証するのに1040使用することができる。解読されたセッションキーの結果は、図9に関連して前述したキーデータベースの中に、日付/時刻スタンプ、署名され、暗号化されたセッションキー、セッションキー識別子などのキーパラメータとともに格納すること1042ができる。何らかの時点で、セッションキーは、失効することが可能であり、セッションキー、署名され、暗号化されたセッションキーなどを含む、そのセッションキーにかるデータベースレコードが、ダイアログが完了した時点、そのセッションキーを使用するヘッダがもはや予期されなくなった時点、セッションキーのアクティブな有効期間の終了時、および/またはセッションキーの有効期限日後などに、キーデータベースから削除されること1044が可能である。
図1および/または図8のSIPノード群の様々な要素を個々に、または組合せで実装することができるコンピュータシステムは、通常、ユーザに情報を表示する出力デバイスと、ユーザから入力を受け取る入力デバイスの両方に接続された少なくとも1つのメインユニットを含む。メインユニットは、相互接続機構を介してメモリシステムに接続されたプロセッサを含むことが可能である。また、入力デバイスおよび出力デバイスも、相互接続機構を介してプロセッサおよびメモリシステムに接続される。
図1および/または図8に示したコンピューティングデバイス群は、通常、何らかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、SIPサーバ内部の他のコンピューティングデバイス群がアクセスすることができる任意の利用可能な媒体であることが可能である。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能である。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するために任意の方法または技術で実装された、揮発性媒体および不揮発性媒体、リムーバブルな媒体およびリムーバブルでない媒体が含まれる。コンピュータ記憶媒体には、RAM(random access memory)、ROM(read only memory)、EEPROM(Electronically Erasable and Programmable Read Only Memory)、フラッシュメモリまたは他のメモリ技術、CD(compact disc)−ROM、デジタルバーサタイルディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、SIPノード内部のコンピュータシステム群がアクセスすることができる他の任意の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実体化し、あらゆる情報配信媒体が含まれる。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響媒体、RF(radio frequency)媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、以上の媒体のいずれかの組合せも、コンピュータ可読媒体の範囲に含められるべきである。
1つまたは複数の出力デバイス、および1つまたは複数の入力デバイスが、コンピュータシステムに接続されることが可能である。本発明は、コンピュータシステムと組合せで使用される特定の入力デバイス群、または特定の出力デバイス群、または本明細書で説明するデバイス群に限定されない。
コンピュータシステムは、SmallTalk、C++、Java(登録商標)、Ada、またはC#(Cシャープ)、あるいはスクリプト言語やアセンブリ言語などの他の言語などの、コンピュータプログラミング言語を使用してプログラミング可能な、汎用コンピュータシステムであることが可能である。本発明の様々な態様は、プログラミングされない環境(例えば、ブラウザプログラムのウインドウ内に表示されると、グラフィカルユーザインタフェースの諸態様を表示する、または他の諸機能を実行する、HTML(HyperText Markup Language)、XML(Extensible Markup Language)、またはその他の形式で作成されたドキュメント)において実施することもできる。本発明の様々な態様は、プログラミングされた要素、またはプログラミングされない要素、あるいはプログラミングされた要素とプログラミングされない要素の組合せとして実施することができる。また、コンピュータシステムは、特別にプログラミングされた専用ハードウェア、または特定用途向け集積回路(ASIC)であることも可能である。リーダ(reader)システムには、ポケットベル、電話機、パーソナルデジタルアシスタント、またはその他の電子データ通信デバイスも含まれることが可能である。
汎用通信システムでは、プロセッサは、通常、インテルコーポレーションから入手可能な周知のPentium(登録商標)プロセッサなどの市販されるプロセッサである。他の多数のプロセッサが利用可能である。そのようなプロセッサは、普通、例えば、マイクロソフトコーポレーションから入手可能な、Windows(登録商標)95(登録商標)、Windows(登録商標)98(登録商標)、Windows(登録商標)NT(登録商標)、Windows(登録商標)2000(登録商標)、またはWindows(登録商標)XP(登録商標)、アップルコンピュータから入手可能なMAC OS(operating system) System X(商標)、サンマイクロシステムズから入手可能なSolaris(商標) Operating System、または様々なソースから入手可能なUNIX(登録商標)であることが可能なオペレーティングシステムを実行する。他の多数のオペレーティングシステムも使用することができる。
プロセッサとオペレーティングシステムは一緒に、アプリケーションプログラム群が高水準プログラミング言語で書かれるコンピュータプラットフォームを定義する。本発明は、特定のコンピュータシステムプラットフォーム、プロセッサ、オペレーティングシステム、またはネットワークに限定されないことを理解されたい。また、本発明は、特定のプログラミング言語またはコンピュータシステムに限定されないことも、当業者には明白なはずである。さらに、他の適切なプログラミング言語、および他の適切なコンピュータシステムも使用できることを認識されたい。
コンピュータシステムの1つまたは複数の部分は、通信ネットワークに結合された1つまたは複数のコンピュータシステム(図示せず)にわたって分散させることができる。それらのコンピュータシステムも、汎用コンピュータシステムであることが可能である。例えば、本発明の様々な態様は、1つまたは複数のクライアントコンピュータにサービスを提供するように構成された(例えば、サーバ群)、または分散システムの一環として全体的タスクを実行するように構成された1つまたは複数のコンピュータシステムの間で分散させることもできる。例えば、本発明の様々な態様は、本発明の様々な実施形態に従って様々な機能を実行する、1つまたは複数のサーバシステムの間に分散されたコンポーネントを含む、クライアント−サーバシステム上で実行してもよい。それらのコンポーネントは、通信プロトコル(例えば、SIPまたはTCP/IP)を使用して通信ネットワーク(例えば、インターネット)を介して通信する、実行可能コード、中間(例えば、IL)コード、または解釈される(例えば、Java(登録商標))コードであることが可能である。本発明は、いずれの特定のシステム上、またはグループのシステム上で実行されることにも限定されないことを認識されたい。
以上、本発明のいくつかの例示的な実施形態を説明してきたが、以上の実施形態は、単に例として提示され、例示的であるに過ぎず、限定するものではないことが、当業者には明白であろう。多数の変更形態、および他の例示的な実施形態が、当業者が理解する範囲(scope)に含まれ、本発明の範囲に含まれるものと企図される。詳細には、本明細書で提示した例の多くは、方法上の動作またはシステム要素の特定の組合せに関わるが、それらの動作、およびそれらの要素を他の形で組み合わせて、同一の諸目的を達することもできることを理解されたい。1つの実施形態だけに関連して説明した動作、要素、および特徴は、その他の実施形態における類似した役割から除外されるものではない。さらに、クレーム要素(claim element)を修飾する特許請求の範囲における「第1の」や「第2の」などの順序を表す語の使用は、それ自体で、優先度、優先順位、またはあるクレーム要素が別のクレーム要素に先行する順位、あるいは方法の動作が実行される時間的順序を表すものではなく、単に、ある名前を有する1つのクレーム要素を、(順序を表す語以外は)同一の名前を有する別のクレーム要素と区別するラベルとして使用して、クレーム要素を区別している。
本発明の一実施形態による2つの「SIP」(セッション開始プロトコル)クライアント間のINVITE要求−応答経路を示す概略図である。 図1による典型的なINVITE要求を示す図である。 図1による典型的な一組のVIAヘッダを示す図である。 図1による典型的な一組のRECORD−ROUTEヘッダを示す図である。 図2のINVITE要求に対する典型的な応答を示す図である。 図1の呼び出し先SIPノードによって生成された典型的な要求を示す図である。 図1の呼び出し元SIPノードによって生成された典型的な要求を示す図である。 本発明の一実施形態による典型的なSIPサーバを示す図である。 本発明の一実施形態によるキー情報のデータベースからの典型的なテーブルを示す図である。 本発明の一実施形態による、どのようにVIA署名を生成することができるかを示す流れ図である。 本発明の一実施形態による、どのようにVIAヘッダを検証するかを示す流れ図である。 本発明の一実施形態による、どのようにROUTE SET署名およびRECORD−ROUTE署名を生成することができるかを示す流れ図である。 本発明の一実施形態による、どのようにRECORD−ROUTE署名を検証するかを示す流れ図である。 本発明の一実施形態による、どのようにセッションキーをサーバのプール内のサーバにインポートすることができるかを示す流れ図である。
符号の説明
100、400 ユーザ
104、404 コンピュータシステム
102、200、250、300、402 SIPノード
500 INVITE要求
600 応答メッセージ
700 ダイアログ内要求
800 受信された要求

Claims (39)

  1. SIP(セッション開始プロトコル)メッセージを処理する方法であって、
    (a)SIPノードにおいてメッセージヘッダを含むSIP要求を受信するステップと、
    (b)前記メッセージヘッダの少なくとも一部分に基づいて署名を生成するステップと、
    (c)SIPノードヘッダエントリを生成するステップと、
    (d)前記署名を前記SIPノードヘッダエントリの中に挿入するステップと
    を備えることを特徴とする方法。
  2. 前記SIPノードヘッダエントリは、エコーされるヘッダであることを特徴とする請求項1に記載の方法。
  3. 前記メッセージヘッダの前記一部分は、ネットワークルーティングロケーションを示すデータを含むことを特徴とする請求項2に記載の方法。
  4. 前記SIPノードヘッダエントリは、VIAヘッダであることを特徴とする請求項1に記載の方法。
  5. (e)前記SIP要求に対する返信として、第1の受信された署名を含む前記SIPノードに関する前記VIAヘッダを含むSIP応答を受信するステップと、
    (f)前記第1の受信された署名を検証するステップと
    をさらに備えることを特徴とする請求項4に記載の方法。
  6. 検証するステップは、前記SIP応答の少なくとも1つのVIAヘッダに基づいて検証署名を生成し、前記検証署名を前記第1の受信された署名と比較するステップを含むことを特徴とする請求項5に記載の方法。
  7. (g)前記SIP要求を受信する次のSIPノードへの次のリンクを特定するステップと、
    (h)前記次のSIPノードへの前記次のリンクが信頼されないリンクであるかどうかを判定するステップとをさらに備え、
    前記第1の署名を生成するステップは、前記次のリンクが信頼されないリンクである場合に前記第1の署名を生成するステップを含むことを特徴とする請求項5に記載の方法。
  8. 前記署名を生成するステップは、前記メッセージヘッダの少なくとも1つのVIAヘッダに基づいて第1の署名を生成するステップを含むことを特徴とする請求項1に記載の方法。
  9. 前記第1の署名を生成するステップは、前記メッセージヘッダの少なくとも1つのVIAヘッダと、ピアFQDN、前記メッセージが次のホップ上で送信される前記接続の接続識別子、前記メッセージヘッダのFROMヘッダの少なくとも一部分、前記メッセージヘッダのTOヘッダの少なくとも一部分、前記メッセージヘッダのCALL−IDヘッダの少なくとも一部分、および前記メッセージヘッダのCSeqヘッダの前記少なくとも一部分の少なくとも1つとに基づくことを特徴とする請求項8に記載の方法。
  10. 前記メッセージヘッダは、複数のVIAヘッダを含み、前記第1の署名を生成するステップは、前記SIPノードの前記VIAヘッダを除く、前記複数のVIAヘッダに基づいて前記第1の署名を生成するステップを含むことを特徴とする請求項8に記載の方法。
  11. 前記署名を生成するステップは、RECORD−ROUTEヘッダの少なくとも一部分、および前記メッセージヘッダのCONTACTヘッダの少なくとも一部分に基づいて第2の署名を生成するステップを含むことを特徴とする請求項1に記載の方法。
  12. 前記署名を挿入するステップは、前記第2の署名をURIパラメータとして、前記SIPノードのRECORD−ROUTEヘッダの中に挿入するステップを含むことを特徴とする請求項11に記載の方法。
  13. 前記第2の署名を生成するステップは、前記SIPノードのRECORD−ROUTEヘッダを除く、前記メッセージヘッダ内の各RECORD−ROUTEヘッダのURI部分、および前記メッセージヘッダ内の前記CONTACTヘッダのURI部分に基づいて第2の署名を生成するステップを含むことを特徴とする請求項11に記載の方法。
  14. (j)前記SIP要求に対する返信として、応答ヘッダを含むSIP応答を受信するステップと、
    (k)前記応答ヘッダのRECORD−ROUTEヘッダおよびCONTACTヘッダに基づいて第4の署名を生成するステップと、
    (l)前記第4の署名を前記応答の前記SIPノードのRECORD−ROUTEヘッダの中に挿入するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  15. 前記第4の署名を生成する前に、前記SIPノードヘッダエントリから既存の署名を削除するステップをさらに備えることを特徴とする請求項14に記載の方法。
  16. 前記第4の署名を挿入するステップは、前記第4の署名をURIパラメータとして、前記SIPノードの前記RECORD−ROUTEヘッダの中に挿入するステップを含むことを特徴とする請求項14に記載の方法。
  17. 前記第4の署名を生成するステップは、前記SIPノードの前記RECORD−ROUTEヘッダを除く、前記応答の各RECORD−ROUTEヘッダの前記URI部分、および前記CONTACTヘッダのURI部分に基づいて前記第4の署名を生成するステップを含むことを特徴とする請求項14に記載の方法。
  18. (n)前記SIP要求を受信する次のSIPノードへの次のリンクを特定するステップと、
    (o)前記次のSIPノードへの前記次のリンクが信頼されないリンクであるかどうかを判定するステップとをさらに備え、
    前記第2の署名を生成するステップは、前記次のリンクが信頼されないリンクである場合にだけ前記第2の署名を生成するステップを含むことを特徴とする請求項14に記載の方法。
  19. 前記SIPノードは、サーバのプール内にあり、前記方法は、暗号化されたセッションキーを前記SIPノードの前記RECORD−ROUTEヘッダの中に挿入するステップをさらに備えることを特徴とする請求項18に記載の方法。
  20. (p)前記SIP要求のRECORD−ROUTEヘッダを特定するステップをさらに備え、
    前記署名を生成するステップは、前記SIP要求の前記RECORD−ROUTEヘッダの少なくとも一部分に基づいて第3の署名を生成するステップを含むことを特徴とする請求項1に記載の方法。
  21. 前記第3の署名を挿入するステップは、前記第3の署名を前記SIPノードのRECORD−ROUTEヘッダの中に挿入するステップを含むことを特徴とする請求項20に記載の方法。
  22. 前記第3の署名を挿入するステップは、前記第3の署名を前記SIPノードの前記RECORD−ROUTEヘッダのヘッダパラメータとして挿入するステップを含むことを特徴とする請求項21に記載の方法。
  23. (s)前記SIP要求に対する返信として、第3の受信署名を含む前記SIPノードに関する前記RECORD−ROUTEヘッダを含むSIP応答を受信するステップと、
    (t)前記第3の受信された署名を検証するステップと
    をさらに備えることを特徴とする請求項21に記載の方法。
  24. (q)前記SIP要求を受信する次のSIPノードへの次のリンクを特定するステップと、
    (r)前記次のSIPノードへの前記次のリンクが信頼されないリンクであるかどうかを判定するステップとをさらに備え、
    前記第3の署名を生成するステップは、前記次のリンクが信頼されないリンクである場合にだけ前記第3の署名を生成するステップを含むことを特徴とする請求項20に記載の方法。
  25. 請求項1に記載のステップを実行するためのコンピュータ実行可能ステップを有することを特徴とするコンピュータ読み取り可能な記録媒体。
  26. 同一のダイアログ内のメッセージを処理するように互いに区別なく使用されるように構築され、構成された第1のサーバと第2のサーバとを有するサーバのプール内でメッセージを処理するためのステップを実行するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能な記録媒体であって、
    前記ステップは、
    (a)前記第1のサーバ、公開キー、および秘密キーを識別するステップと、
    (b)前記第1のサーバにおいて、第1のヘッダを含む第1のメッセージを受信するステップと、
    (c)セッションキーを生成するステップと、
    (d)前記セッションキーを前記秘密キーを使用して暗号化するステップと、
    (e)前記公開キーを使用して、前記暗号化されたセッションキーに基づいてキー署名を生成するステップと、
    (f)前記キー署名を前記第1のヘッダの中に挿入するステップと
    を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
  27. (g)前記第2のサーバにおいて、前記公開キーおよび前記秘密キーを識別するステップと、
    (h)前記第2のサーバにおいて、前記キー署名を含む第2のヘッダを含む第2のメッセージを受信するステップと、
    (i)前記キー署名を解読して前記セッションキーを特定するステップと
    をさらに備えることを特徴とする請求項26に記載のコンピュータ読み取り可能な記録媒体。
  28. (j)前記第2のメッセージの少なくとも一部分を前記セッションキーを使用して検証するステップ
    をさらに備えることを特徴とする請求項27に記載のコンピュータ読み取り可能な記録媒体。
  29. 前記第1のメッセージは、SIP(セッション開始プロトコル)メッセージであることを特徴とする請求項26に記載のコンピュータ読み取り可能な記録媒体。
  30. 前記第1のサーバは、プロキシサーバであることを特徴とする請求項26に記載のコンピュータ読み取り可能な記録媒体。
  31. 前記セッションキーの作成の日付および時刻を表すデータを含むタイムスタンプを識別し、前記タイムスタンプを前記セッションキーに付加するステップをさらに含み、前記セッションキーを暗号化するステップは、前記セッションキーおよび前記タイムスタンプを暗号化するステップを含むことを特徴とする請求項26に記載のコンピュータ読み取り可能な記録媒体。
  32. (a)VIAヘッダ、FROMヘッダ、TOヘッダ、RECORD−ROUTEヘッダ、CALL−IDヘッダ、およびCSeqヘッダから成るグループから選択された、SIP(セッション開始プロトコル)要求に関する経路内のSIPノードのアドレスを含む、エコーされるヘッダと、SIPヘッダの一部分にセッションキーを使用して署名することによって生成されたデジタル署名を表すデータとを含む、複数の前記SIPヘッダ
    を含む、前記SIP要求を表すデータ構造を格納していることを特徴とするコンピュータ読み取り可能な記録媒体。
  33. 前記複数のSIPヘッダは、複数のVIAヘッダを含み、前記デジタル署名は、先頭にリストされたVIAヘッダとしてのVIAヘッダを除く、前記SIPヘッダ群の中のすべてのVIAヘッダに基づいて生成されることを特徴とする請求項32に記載のコンピュータ読み取り可能な記録媒体。
  34. 前記複数のSIPヘッダは、エンドポイントSIPノードのアドレスを伝送するためのCONTACTヘッダと、SIPサーバのアドレスを伝送するためのRECORD−ROUTEヘッダと、前記RECORD−ROUTEヘッダの少なくとも一部分に基づいて生成された前記デジタル署名とを含むことを特徴とする請求項32に記載のコンピュータ読み取り可能な記録媒体。
  35. 前記デジタル署名は、前記RECORD−ROUTEヘッダのURI部分、および前記CONTACTヘッダのURI部分に基づいて生成されることを特徴とする請求項34に記載のコンピュータ読み取り可能な記録媒体。
  36. 前記デジタル署名は、RECORD−ROUTEヘッダの少なくとも一部分に基づいて生成された第1の署名と、前記RECORD−ROUTEヘッダの少なくとも第1の部分、および前記SIP要求のCONTACTヘッダの少なくとも一部分に基づいて生成された第2のデジタル署名とを含むことを特徴とする請求項32に記載のコンピュータ読み取り可能な記録媒体。
  37. SIP(セッション開始プロトコル)メッセージを検証する方法であって、
    (a)SIPノードにおいてメッセージヘッダを含むSIP応答を受信するステップと、
    (b)前記メッセージヘッダ内でエコーされたヘッダを識別するステップと、
    (c)前記エコーされたヘッダから受信された署名を抽出するステップと、
    (d)前記メッセージヘッダの少なくとも一部分に基づいて検証署名を生成するステップと、
    (e)前記検証署名を前記受信された署名と比較するステップと
    を備えることを特徴とする方法。
  38. 前記エコーされるヘッダは、VIAヘッダ、FROMヘッダ、TOヘッダ、RECORD−ROUTEヘッダ、CALL−IDヘッダ、およびCSeqヘッダから成るグループから選択されることを特徴とする請求項37に記載の方法。
  39. 確認署名を生成するステップは、VIAヘッダ、CONTACTヘッダ、RECORD−ROUTEヘッダ、ROUTEヘッダ、CALL−IDヘッダ、およびCSeqヘッダの少なくとも1つに基づいて前記検証署名を生成するステップを含むことを特徴とする請求項38に記載の方法。
JP2005092424A 2004-03-31 2005-03-28 セッション開始プロトコルルーティングヘッダに対して署名および検証を行う方法 Expired - Fee Related JP4800651B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/815,232 US7535905B2 (en) 2004-03-31 2004-03-31 Signing and validating session initiation protocol routing headers
US10/815,232 2004-03-31

Publications (2)

Publication Number Publication Date
JP2005312026A true JP2005312026A (ja) 2005-11-04
JP4800651B2 JP4800651B2 (ja) 2011-10-26

Family

ID=34887741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005092424A Expired - Fee Related JP4800651B2 (ja) 2004-03-31 2005-03-28 セッション開始プロトコルルーティングヘッダに対して署名および検証を行う方法

Country Status (10)

Country Link
US (1) US7535905B2 (ja)
EP (1) EP1583318B1 (ja)
JP (1) JP4800651B2 (ja)
KR (1) KR100932834B1 (ja)
CN (1) CN1677978B (ja)
AU (1) AU2005201046B2 (ja)
BR (1) BRPI0501297A (ja)
CA (2) CA2503289C (ja)
MX (1) MXPA05003410A (ja)
RU (1) RU2378773C2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006276093A (ja) * 2005-03-28 2006-10-12 Hitachi Ltd Sipメッセージの暗号化方法,および暗号化sip通信システム
JP2008048047A (ja) * 2006-08-11 2008-02-28 Ntt Communications Kk 端末装置、セッション管理装置、システム、方法、及びプログラム
JP2008211452A (ja) * 2007-02-26 2008-09-11 Fujitsu Ltd Sipサーバ
JP2009518958A (ja) * 2005-12-05 2009-05-07 ルーセント テクノロジーズ インコーポレーテッド 情報をインターネット送信に埋め込む方法
JP2011119952A (ja) * 2009-12-03 2011-06-16 Seiko Precision Inc 通信データの検証装置及びそのコンピュータプログラム

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7535905B2 (en) * 2004-03-31 2009-05-19 Microsoft Corporation Signing and validating session initiation protocol routing headers
US7552225B2 (en) * 2004-04-28 2009-06-23 International Business Machines Corporation Enhanced media resource protocol messages
US8024476B2 (en) 2004-05-21 2011-09-20 Microsoft Corporation Efficient message routing when using server pools
CN101375284B (zh) 2004-10-25 2012-02-22 安全第一公司 安全数据分析方法和系统
US20060143477A1 (en) * 2004-12-27 2006-06-29 Stevens Harden E Iii User identification and data fingerprinting/authentication
US7890634B2 (en) * 2005-03-18 2011-02-15 Microsoft Corporation Scalable session management
US8059665B2 (en) * 2005-05-10 2011-11-15 Nextel Communications Inc. Systems and methods for providing location information
KR100704678B1 (ko) * 2005-06-10 2007-04-06 한국전자통신연구원 무선 휴대 인터넷 시스템에서의 그룹 트래픽 암호화 키갱신 방법
US8040875B2 (en) * 2005-07-30 2011-10-18 Alcatel Lucent Network support for caller ID verification
EP1933577A4 (en) * 2005-09-05 2009-06-24 Huawei Tech Co Ltd METHOD FOR PERFORMING SERVICE ACTIVATION OPERATION AND USER TERMINAL COMPRISING SAID METHOD
US20070101144A1 (en) * 2005-10-27 2007-05-03 The Go Daddy Group, Inc. Authenticating a caller initiating a communication session
US20070118750A1 (en) * 2005-10-27 2007-05-24 The Go Daddy Group, Inc. Authenticating a caller initiating a communication session
CN105978683A (zh) 2005-11-18 2016-09-28 安全第公司 安全数据解析方法和系统
US7912207B2 (en) * 2005-12-21 2011-03-22 Avaya Inc. Data messaging during telephony calls
US7630372B1 (en) * 2005-12-30 2009-12-08 At&T Corp. Method and apparatus for providing access and egress uniform resource identifiers for routing
DE102006004202B4 (de) * 2006-01-27 2008-02-14 Nec Europe Ltd. Verfahren zum Schutz von SIP basierten Anwendungen
US9219686B2 (en) * 2006-03-31 2015-12-22 Alcatel Lucent Network load balancing and overload control
US8014299B2 (en) * 2006-05-22 2011-09-06 Alcatel Lucent Method and apparatus for detecting forwarding loops
US9749296B1 (en) * 2006-06-30 2017-08-29 Avaya Inc. Method and apparatus for modifying address information in signaling messages to ensure in-path devices remain in signaling path between endpoints
WO2008010695A1 (en) * 2006-07-21 2008-01-24 Samsung Electronics Co., Ltd. Method and system for enhanced parameter negotiation in evdo communication systems
US8644314B2 (en) * 2006-09-07 2014-02-04 Kyocera Corporation Protocol and method of VIA field compression in session initiation protocol signaling for 3G wireless networks
CN101141251B (zh) * 2006-09-08 2012-05-23 华为技术有限公司 通信系统中消息加密签名的方法及系统和设备
US7796990B2 (en) * 2006-09-14 2010-09-14 Nokia Corporation Method for the routing of multimedia communication related signaling in a communication system
US8547964B2 (en) * 2006-10-31 2013-10-01 Level 3 Communications, Llc Automatic termination path configuration
US8406221B2 (en) * 2006-10-31 2013-03-26 Level 3 Communications, Llc Automatic termination path configuration
KR101269828B1 (ko) * 2006-11-07 2013-06-04 주식회사 케이티 무선통신 서비스를 위한 보안 통화 방법
US9628490B2 (en) * 2006-11-27 2017-04-18 International Business Machines Corporation Trusted contact name validation
EP2482218A3 (en) * 2006-12-05 2012-10-31 Security First Corporation Improved storage backup method using a secure data parser
US8929360B2 (en) 2006-12-07 2015-01-06 Cisco Technology, Inc. Systems, methods, media, and means for hiding network topology
CA2571891C (en) * 2006-12-21 2015-11-24 Bce Inc. Device authentication and secure channel management for peer-to-peer initiated communications
US7835723B2 (en) * 2007-02-04 2010-11-16 Bank Of America Corporation Mobile banking
US8966252B2 (en) * 2007-03-13 2015-02-24 Board Of Trustees Of Michigan State University Private entity authentication for pervasive computing environments
JP2008227917A (ja) * 2007-03-13 2008-09-25 Hitachi Ltd 通信システム及びルータ
US20080309665A1 (en) * 2007-06-13 2008-12-18 3D Systems, Inc., A California Corporation Distributed rapid prototyping
US20090003582A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Optimized Replacement of Calls Using A Grid Parameter
US20090003218A1 (en) * 2007-06-28 2009-01-01 Wen-Pin Lin Wireless communication system performance updates using automated database management
US7591013B2 (en) * 2007-07-31 2009-09-15 Cisco Technology, Inc. System and method for client initiated authentication in a session initiation protocol environment
DE102007043892A1 (de) * 2007-09-14 2009-03-19 Eads Deutschland Gmbh Verfahren zur Übermittlung einer elektronischen Nachricht in einem Transportnetzwerk
KR101412800B1 (ko) * 2007-09-17 2014-06-30 삼성전자주식회사 통신 시스템에서 암호 통신 방법 및 장치
US20090113077A1 (en) * 2007-10-26 2009-04-30 Torbjorn Dahlen Service discovery associated with real time composition of services
WO2009068115A1 (en) * 2007-11-30 2009-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Methods for secure sip signalling to a destination ip address being a cryptographi cally generated address (cga)
EP2232820B1 (en) * 2007-12-13 2018-04-04 Nokia Technologies Oy Location tagging method for packet based signalling
WO2009086845A1 (de) * 2008-01-07 2009-07-16 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum authentisieren einer schlüsselinformation zwischen endpunkten einer kommunikationsbeziehung
US20090187978A1 (en) * 2008-01-18 2009-07-23 Yahoo! Inc. Security and authentications in peer-to-peer networks
EP2651100A1 (en) 2008-02-22 2013-10-16 Security First Corporation Systems and methods for secure workgroup management and communication
PL2250784T3 (pl) * 2008-03-04 2014-02-28 Ericsson Telefon Ab L M Delegacja adresu IP
WO2010014997A2 (en) * 2008-08-01 2010-02-04 Tekelec Methods, systems, and computer readable media for session initiation protocol (sip) dialog identification
US20100049784A1 (en) * 2008-08-21 2010-02-25 Ashish Khandelwal System and method for web-based access relative to a document processing device
US8990569B2 (en) * 2008-12-03 2015-03-24 Verizon Patent And Licensing Inc. Secure communication session setup
JP2012528413A (ja) * 2009-05-28 2012-11-12 コヴィオ インコーポレイテッド 無線デバイスからコードを有効化する方法およびシステム
US9843650B2 (en) * 2009-09-03 2017-12-12 Avaya Inc. Intelligent module sequencing
FR2949934B1 (fr) * 2009-09-09 2011-10-28 Qosmos Surveillance d'une session de communication comportant plusieurs flux sur un reseau de donnees
AU2010326248B2 (en) 2009-11-25 2015-08-27 Security First Corp. Systems and methods for securing data in motion
IT1397439B1 (it) * 2009-12-30 2013-01-10 St Microelectronics Srl Procedimento e dispositivi per la distribuzione di contenuti mediali e relativo prodotto informatico
EP2553904A2 (en) 2010-03-31 2013-02-06 Rick L. Orsini Systems and methods for securing data in motion
WO2011150346A2 (en) 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
EP2651072A3 (en) 2010-09-20 2013-10-23 Security First Corp. Systems and methods for secure data sharing
US8843915B2 (en) * 2011-07-28 2014-09-23 Hewlett-Packard Development Company, L.P. Signature-based update management
US9582656B2 (en) * 2011-09-12 2017-02-28 Microsoft Corporation Systems for validating hardware devices
CN103891329B (zh) * 2011-10-25 2017-11-28 诺基亚技术有限公司 用于保护主机配置消息的方法
CN102739673B (zh) * 2012-06-28 2018-06-22 中兴通讯股份有限公司 会话启动协议对话定位方法及装置
GB2512267B (en) * 2012-10-30 2015-09-16 Openwave Mobility Inc Determination of information relating to messages
US9154540B2 (en) * 2012-12-11 2015-10-06 Microsoft Technology Licensing, Llc Smart redirection and loop detection mechanism for live upgrade large-scale web clusters
US9961109B2 (en) * 2013-03-14 2018-05-01 Comcast Cable Communications, Llc Communication policy frame
WO2014177938A2 (en) * 2013-03-15 2014-11-06 Assa Abloy Ab Digital credential with embedded authentication instructions
US9467425B2 (en) 2013-03-18 2016-10-11 Intel Corporation Key refresh between trusted units
US20150172324A1 (en) * 2013-12-13 2015-06-18 Alcatel-Lucent Usa Inc. Authorized SIP Redirection
US10489757B2 (en) * 2014-05-19 2019-11-26 OX Labs Inc. System and method for rendering virtual currency related services
US10715436B2 (en) * 2014-05-28 2020-07-14 Comcast Cable Communications, Llc Dynamic loop detection and suppression
US9565147B2 (en) 2014-06-30 2017-02-07 Go Daddy Operating Company, LLC System and methods for multiple email services having a common domain
US9749886B1 (en) * 2015-02-16 2017-08-29 Amazon Technologies, Inc. System for determining metrics of voice communications
RU2576488C1 (ru) * 2015-02-17 2016-03-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Нижегородский государственный технический университет им. Р.Е. Алексеева" (НГТУ) СПОСОБ ПОСТРОЕНИЯ СЕТЕЙ ПЕРЕДАЧИ ДАННЫХ С ПОВЫШЕННЫМ УРОВНЕМ ЗАЩИТЫ ОТ DDоS-АТАК
CN106464759B (zh) * 2015-04-15 2019-07-23 华为技术有限公司 一种局域网内消息发送方法、局域网网关和可穿戴设备
US9819703B2 (en) 2015-09-23 2017-11-14 T-Mobile Usa, Inc. SIP server with multiple identifiers
US10084705B2 (en) * 2015-10-30 2018-09-25 Microsoft Technology Licensing, Llc Location identification of prior network message processor
US10277597B2 (en) * 2015-11-09 2019-04-30 Silvercar, Inc. Vehicle access systems and methods
US10541900B2 (en) * 2016-02-01 2020-01-21 Arista Networks, Inc. Hierarchical time stamping
EP3427446A4 (en) * 2016-03-07 2019-09-04 Level 3 Communications, LLC SYSTEMS AND METHOD FOR THE DYNAMIC CONNECTION OF NETWORK ELEMENTS TO ENABLE A SERVICE
US11108562B2 (en) 2016-05-05 2021-08-31 Neustar, Inc. Systems and methods for verifying a route taken by a communication
US11025428B2 (en) 2016-05-05 2021-06-01 Neustar, Inc. Systems and methods for enabling trusted communications between controllers
US11277439B2 (en) * 2016-05-05 2022-03-15 Neustar, Inc. Systems and methods for mitigating and/or preventing distributed denial-of-service attacks
US10958725B2 (en) 2016-05-05 2021-03-23 Neustar, Inc. Systems and methods for distributing partial data to subnetworks
US10084798B2 (en) 2016-06-30 2018-09-25 Juniper Networks, Inc. Selective verification of signatures by network nodes
US9992679B1 (en) * 2016-08-25 2018-06-05 Sprint Communications Company L.P. Integrated authentication codes for user devices and communication networks
US10361852B2 (en) 2017-03-08 2019-07-23 Bank Of America Corporation Secure verification system
US10425417B2 (en) 2017-03-08 2019-09-24 Bank Of America Corporation Certificate system for verifying authorized and unauthorized secure sessions
US10432595B2 (en) * 2017-03-08 2019-10-01 Bank Of America Corporation Secure session creation system utililizing multiple keys
US10374808B2 (en) 2017-03-08 2019-08-06 Bank Of America Corporation Verification system for creating a secure link
ES2964955T3 (es) * 2017-05-09 2024-04-10 Network Next Inc Métodos de intercambio de paquetes bidireccional a través de vías nodales
US10554753B2 (en) * 2017-07-06 2020-02-04 Acronis International Gmbh System and method for service level agreement based data storage and verification
US11018872B2 (en) * 2018-07-17 2021-05-25 Verizon Patent And Licensing Inc. Validating and securing caller identification to prevent identity spoofing
US10811018B2 (en) * 2018-12-04 2020-10-20 Saudi Arabian Oil Company System and method for using a unidirectional watermark for information leak identification
US11269976B2 (en) 2019-03-20 2022-03-08 Saudi Arabian Oil Company Apparatus and method for watermarking a call signal
US11133938B2 (en) * 2019-04-17 2021-09-28 Verizon Patent And Licensing Inc. Validating and securing caller identification to prevent identity spoofing
GB2586785A (en) * 2019-08-30 2021-03-10 Mobilise Consulting Ltd Authentication
CN110572640A (zh) * 2019-09-30 2019-12-13 公安部第一研究所 一种基于gb35114标准的视频签名验签测评工具及方法
FR3105677A1 (fr) * 2019-12-20 2021-06-25 Orange Procédé d’acheminement de messages, équipement réseau associé
US11159497B2 (en) * 2020-01-29 2021-10-26 Citrix Systems, Inc. Secure message passing using semi-trusted intermediaries
AU2021278434A1 (en) * 2020-05-27 2023-02-09 Step Software Inc. Systems and methods for data communications
US20220166751A1 (en) * 2020-11-20 2022-05-26 Charter Communications Operating, Llc Phone call endpoint security
US11683415B2 (en) * 2021-04-13 2023-06-20 First Orion Corp. Providing enhanced call content to a mobile device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08507416A (ja) * 1992-11-03 1996-08-06 ノーヴェル・インコーポレーテッド クライアントサーバ通信の認証のための方法及び装置
JP2002051248A (ja) * 2000-08-01 2002-02-15 Hitachi Ltd カメラ及び画像送信方法及び画像送受信方法
US20020129236A1 (en) * 2000-12-29 2002-09-12 Mikko Nuutinen VoIP terminal security module, SIP stack with security manager, system and security methods
JP2003108527A (ja) * 2001-06-14 2003-04-11 Microsoft Corp クライアント・プロキシ認証のためにセッションイニシエーションプロトコルリクエストメッセージにセキュリティ機構を組み込むための方法およびシステム
WO2003060673A1 (en) * 2002-01-18 2003-07-24 Telefonaktiebolaget Lm Ericsson (Publ) Loading data into a mobile terminal

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275937B1 (en) * 1997-11-06 2001-08-14 International Business Machines Corporation Collaborative server processing of content and meta-information with application to virus checking in a server network
US6389532B1 (en) * 1998-04-20 2002-05-14 Sun Microsystems, Inc. Method and apparatus for using digital signatures to filter packets in a network
US6567915B1 (en) * 1998-10-23 2003-05-20 Microsoft Corporation Integrated circuit card with identity authentication table and authorization tables defining access rights based on Boolean expressions of authenticated identities
NO308019B1 (no) * 1998-11-27 2000-07-03 Ericsson Telefon Ab L M FremgangsmÕte for Õ utvide bruken av SIP (Session Initiation Protocol)
US6553422B1 (en) * 1999-04-26 2003-04-22 Hewlett-Packard Development Co., L.P. Reverse HTTP connections for device management outside a firewall
US6584567B1 (en) * 1999-06-30 2003-06-24 International Business Machines Corporation Dynamic connection to multiple origin servers in a transcoding proxy
US6434143B1 (en) * 1999-11-08 2002-08-13 Mci Worldcom, Inc. Internet protocol telephony voice/video message deposit and retrieval
US8743892B2 (en) * 1999-11-08 2014-06-03 Verizon Business Global Llc Method and system for dynamic gateway selection in an IP telephony network
US6985958B2 (en) * 2001-03-14 2006-01-10 Microsoft Corporation Messaging infrastructure for identity-centric data access
US7284271B2 (en) * 2001-03-14 2007-10-16 Microsoft Corporation Authorizing a requesting entity to operate upon data structures
US20020141404A1 (en) * 2001-04-03 2002-10-03 Michael Wengrovitz Call routing using information in session initiation protocol messages
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US20020178240A1 (en) * 2001-05-24 2002-11-28 International Business Machines Corporation System and method for selectively confirming digital certificates in a virtual private network
US7010727B1 (en) * 2001-06-15 2006-03-07 Nortel Networks Limited Method and system for negotiating compression techniques to be utilized in packet data communications
US20030009570A1 (en) * 2001-07-03 2003-01-09 International Business Machines Corporation Method and apparatus for segmented peer-to-peer computing
US20030084331A1 (en) * 2001-10-26 2003-05-01 Microsoft Corporation Method for providing user authentication/authorization and distributed firewall utilizing same
US7343490B2 (en) * 2001-11-30 2008-03-11 Nokia Siemens Networks Oy Apparatus, and associated method, for facilitating authentication of a mobile station with a core network
JP4349766B2 (ja) * 2001-12-07 2009-10-21 株式会社日立製作所 アドレス変換装置
WO2003049357A2 (en) * 2001-12-07 2003-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Lawful interception of end-to-end encrypted data traffic
KR100426306B1 (ko) * 2001-12-11 2004-04-08 한국전자통신연구원 인트라 도메인내에서의 sip 서버간 로드 분산 처리 방법
US7509425B1 (en) * 2002-01-15 2009-03-24 Dynamicsoft, Inc. Establishing and modifying network signaling protocols
US7240366B2 (en) * 2002-05-17 2007-07-03 Microsoft Corporation End-to-end authentication of session initiation protocol messages using certificates
US20040043756A1 (en) * 2002-09-03 2004-03-04 Tao Haukka Method and system for authentication in IP multimedia core network system (IMS)
AU2003276869A1 (en) * 2002-09-09 2004-03-29 Netrake Corporation System for allowing network traffic through firewalls
KR100472952B1 (ko) * 2002-10-30 2005-03-10 한국전자통신연구원 세션 초기화 프로토콜(sip)기반의 부하 분산장치 및방법
JP4338993B2 (ja) * 2003-02-28 2009-10-07 モトローラ・インコーポレイテッド 無線端末のセッション制御方法及びインターフェース設定方法
US7412521B2 (en) * 2003-03-12 2008-08-12 Microsoft Corporation End-point identifiers in SIP
US7421732B2 (en) * 2003-05-05 2008-09-02 Nokia Corporation System, apparatus, and method for providing generic internet protocol authentication
US6963635B1 (en) * 2003-05-06 2005-11-08 Sprint Spectrum L.P. Method and system for facilitating collection of subscriber past due balance
JP2004364141A (ja) * 2003-06-06 2004-12-24 Hitachi Communication Technologies Ltd Ipアドレス変換装置およびパケット転送装置
US7142537B2 (en) * 2003-12-18 2006-11-28 Motorola, Inc. Interface call signaling protocol
US7535905B2 (en) * 2004-03-31 2009-05-19 Microsoft Corporation Signing and validating session initiation protocol routing headers
US8024476B2 (en) * 2004-05-21 2011-09-20 Microsoft Corporation Efficient message routing when using server pools
FR2902590B1 (fr) * 2006-06-16 2008-08-01 Alcatel Sa Detection de boucles au sein d'un element intermediaire de signalisation sip

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08507416A (ja) * 1992-11-03 1996-08-06 ノーヴェル・インコーポレーテッド クライアントサーバ通信の認証のための方法及び装置
JP2002051248A (ja) * 2000-08-01 2002-02-15 Hitachi Ltd カメラ及び画像送信方法及び画像送受信方法
US20020129236A1 (en) * 2000-12-29 2002-09-12 Mikko Nuutinen VoIP terminal security module, SIP stack with security manager, system and security methods
JP2003108527A (ja) * 2001-06-14 2003-04-11 Microsoft Corp クライアント・プロキシ認証のためにセッションイニシエーションプロトコルリクエストメッセージにセキュリティ機構を組み込むための方法およびシステム
WO2003060673A1 (en) * 2002-01-18 2003-07-24 Telefonaktiebolaget Lm Ericsson (Publ) Loading data into a mobile terminal

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006276093A (ja) * 2005-03-28 2006-10-12 Hitachi Ltd Sipメッセージの暗号化方法,および暗号化sip通信システム
JP2009518958A (ja) * 2005-12-05 2009-05-07 ルーセント テクノロジーズ インコーポレーテッド 情報をインターネット送信に埋め込む方法
JP2008048047A (ja) * 2006-08-11 2008-02-28 Ntt Communications Kk 端末装置、セッション管理装置、システム、方法、及びプログラム
JP4541333B2 (ja) * 2006-08-11 2010-09-08 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、システム、方法、及びプログラム
JP2008211452A (ja) * 2007-02-26 2008-09-11 Fujitsu Ltd Sipサーバ
JP2011119952A (ja) * 2009-12-03 2011-06-16 Seiko Precision Inc 通信データの検証装置及びそのコンピュータプログラム

Also Published As

Publication number Publication date
BRPI0501297A (pt) 2005-11-08
US7535905B2 (en) 2009-05-19
JP4800651B2 (ja) 2011-10-26
KR20060045393A (ko) 2006-05-17
CA2811999A1 (en) 2005-09-30
CN1677978B (zh) 2010-11-03
EP1583318A3 (en) 2006-01-18
CA2503289C (en) 2014-12-16
AU2005201046A1 (en) 2005-10-20
EP1583318A2 (en) 2005-10-05
US20050220095A1 (en) 2005-10-06
CA2503289A1 (en) 2005-09-30
KR100932834B1 (ko) 2009-12-21
MXPA05003410A (es) 2005-10-05
RU2005109222A (ru) 2006-10-10
AU2005201046B2 (en) 2009-11-26
CN1677978A (zh) 2005-10-05
EP1583318B1 (en) 2012-10-10
CA2811999C (en) 2016-02-02
RU2378773C2 (ru) 2010-01-10

Similar Documents

Publication Publication Date Title
JP4800651B2 (ja) セッション開始プロトコルルーティングヘッダに対して署名および検証を行う方法
US11588649B2 (en) Methods and systems for PKI-based authentication
JP7215684B2 (ja) 部分的に信頼できる第三者機関を通しての鍵交換
US20190222583A1 (en) Signed envelope encryption
US8359360B2 (en) Electronic message system with federation of trusted senders
US8726009B1 (en) Secure messaging using a trusted third party
EP3149887B1 (en) Method and system for creating a certificate to authenticate a user identity
KR101219862B1 (ko) 서버와 대응 도메인이 호환성 안전 이메일을 갖도록 하기위한 시스템 및 방법
US10277576B1 (en) Diameter end-to-end security with a multiway handshake
Breuch Web Key Directory and other key exchange methods for OpenPGP
Schwarz et al. Security challenges, threats and countermeasures version 1.0
Samanfar Binding Social Identity with Email Address and Automating Email Certificate Issuance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110729

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110804

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4800651

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees