JP2007049262A - 端末、通信装置、通信確立方法および認証方法 - Google Patents

端末、通信装置、通信確立方法および認証方法 Download PDF

Info

Publication number
JP2007049262A
JP2007049262A JP2005229150A JP2005229150A JP2007049262A JP 2007049262 A JP2007049262 A JP 2007049262A JP 2005229150 A JP2005229150 A JP 2005229150A JP 2005229150 A JP2005229150 A JP 2005229150A JP 2007049262 A JP2007049262 A JP 2007049262A
Authority
JP
Japan
Prior art keywords
service
terminal
port
shared
communication device
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
JP2005229150A
Other languages
English (en)
Other versions
JP4073931B2 (ja
Inventor
Koji Shima
幸司 島
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005229150A priority Critical patent/JP4073931B2/ja
Publication of JP2007049262A publication Critical patent/JP2007049262A/ja
Application granted granted Critical
Publication of JP4073931B2 publication Critical patent/JP4073931B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 サービスを提供する特定のポートは攻撃や不正侵入の対象となりやすい。
【解決手段】 端末が家庭内装置に対してサービスを要求する際、ハッシュ計算部14は、端末が要求するサービスに対応づけられたサービス乱数もしくはサービスパスワードに、タイマ10から与えられた現在時刻情報と試行回数カウンタ12から与えられたサービス要求の試行回数を組み合わせて、サービス認証に用いるハッシュ値を生成する。ポート選択部16は、ハッシュ計算部14により生成されたハッシュ値を所定の演算規則により演算した結果にもとづいて、端末が要求するサービスに対応づけられた共有ポート候補の中から1つのポート番号を一意に選択する。ポート選択部16は、選択されたポート番号を、家庭内装置にサービスを要求する際のパケットの宛先ポートとしてパケット処理部120に与える。
【選択図】 図5

Description

この発明は、ネットワークにおいて通信を確立する方法、およびその方法を利用可能な端末、通信装置、ならびに認証方法に関する。
ブロードバンドネットワークが急速に普及しており、一般家庭においてユーザがパーソナルコンピュータをプロバイダを経由して外部のネットワークに接続し、WWW(World Wide Web)や電子メールなど各種のサービスを受けることは当然のこととなってきている。さらに、テレビ受信装置、ビデオ録画機、ゲーム機などの各種機器などが通信機能をもち、パーソナルコンピュータとともに家庭内ネットワークに接続されたり、ホームサーバやルータなどを経由して外部のネットワークに接続することも現実的になりつつある。
家庭内の各種機器が外部のネットワークにつながるようになると、外部から家庭内の機器を遠隔操作することも可能となり、録画の予約などを外出先で行うといったニーズも今後、増えてくるものと予想される。家庭内の機器やパーソナルコンピュータを外部のネットワークから遠隔操作可能にすると、家庭内の機器やコンピュータに不正に侵入されて個人情報が盗まれる可能性もあり、十分なセキュリティを確保することが不可欠である。
一般に、ネットワークでサービスを提供する側の装置は、特定の通信ポートを開けて端末からの通信要求があるまで待機している。サービス毎にポート番号は固定的に決められており、たとえば、FTP(File Transfer Protocol)は21番、HHTP(Hyper Text Transfer Protocol)は80番、HTTPS(Hyper Text Transfer Protocol over SSL)は443番のポートをそれぞれ用いることが決められている。このようにサービス毎にポート番号が固定されていると、特定のポートに対してDoS(Denial of Service)攻撃が行われ、処理負荷が上がってサービス不能に陥ることがある。また、仮に、サービスを提供するポートを標準的に決まっているポート番号を避けて、他の番号に設定したとしても、ポート番号を1つ1つ調べていくポートスキャンによって、サービスを提供しているポートを確定することができるため、同様の攻撃を受けることは避けられない。
本発明はこうした課題に鑑みてなされたものであり、その目的は、攻撃に対する防御性能を高めることのできる通信技術を提供することにある。
上記課題を解決するために、本発明のある態様の端末は、通信装置が提供するサービスを受ける端末であって、当該端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定するポート選択部と、動的に決定された前記宛先ポート番号を指定した前記要求パケットを生成するパケット処理部とを含む。
前記共有情報と前記時刻情報を組み合わせたデータ列を一方向性関数により変換してハッシュ値を生成するハッシュ計算部をさらに含んでもよい。前記ポート選択部は、生成された前記ハッシュ値に所定の演算規則を適用することにより、複数の利用可能なポート番号の候補の1つを指定する番号を生成し、前記番号により前記複数の利用可能なポート番号の候補の中から1つのポート番号を前記宛先ポート番号として一意に選択してもよい。この所定の演算規則は、ハッシュ値もしくはハッシュ値の一部の値をポート番号の候補を指定する番号に一意的に写像する関数であってもよい。
本発明の別の態様は、通信装置である。この装置は、端末に対してサービスを提供する通信装置であって、当該通信装置と前記端末の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定するポート判定部と、前記サービスポートにおいて前記要求パケットを受信するために待機するパケット処理部とを含む。
前記ポート判定部は、前記要求パケットに指定された宛先ポート番号が前記サービスポート番号に一致するか否かを判定し、前記パケット処理部は、前記宛先ポート番号が前記サービスポート番号に一致する場合に、前記要求パケットを前記サービスポートで受信して処理してもよい。
本発明のさらに別の態様は、通信確立方法である。この方法は、端末がネットワークを経由して通信装置の提供するサービスを受ける際に、前記通信装置がサービスを提供するサービスポート番号を、前記端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算結果にもとづいてサービス要求の度に動的に変更する。
本発明のさらに別の態様もまた、通信確立方法である。この方法は、通信装置が提供するサービスを受ける端末における通信確立方法であって、当該端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定するステップと、動的に決定された前記宛先ポート番号を指定した前記要求パケットを生成し、前記通信装置に送信するステップとを含む。
本発明のさらに別の態様もまた、通信確立方法である。この方法は、端末に対してサービスを提供する通信装置における通信確立方法であって、当該通信装置と前記端末の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定するステップと、前記サービスポートにおいて前記要求パケットを受信するために待機するステップとを含む。
本発明のさらに別の態様は、認証方法である。この方法は、端末が通信装置の提供するサービスを受けるために行う認証方法であって、前記端末と前記通信装置の間で共有されるべき共有情報をあらかじめ前記端末と前記通信装置のそれぞれにおいて保持するステップと、前記端末が前記共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定し、前記共有情報を含む前記要求パケットを動的に決定された前記通信装置の前記宛先ポート番号に送信するステップと、前記通信装置が前記共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定し、前記端末から送信される前記要求パケットを動的に決定された前記サービスポートで受信し、前記要求パケットに含まれる前記端末に保持された共有情報が当該通信端末に保持された共有情報と一致するかどうかを判定するステップとを含む。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、秘匿性をもたせた通信技術により、第三者による攻撃に対する防御性能を高めることができる。
図1(a)、(b)は、実施の形態に係る遠隔操作システムの構成図である。本実施の形態では、家庭内装置200が提供する録画予約などのサービスをネットワーク400を介して端末100から遠隔操作する。
家庭内装置200は、たとえば、ネットワーク機能をもった家庭内のテレビ受信装置、ビデオ録画機器、ゲーム機などの各種機器であってもよく、これらの機器と接続して制御することのできるパーソナルコンピュータであってもよい。また、家庭内装置200は、これらの家庭内機器が家庭内ネットワークで相互接続されている場合におけるホームサーバであってもよい。以下では、説明の簡単のため、家庭内装置200が録画やゲームなどの各種サービスを受け付け、サービスを実行するものとして説明するが、実際には、受け付けたサービス内容が各種機器に中継され、各種機器においてサービスが実行されるという形態であってもかまわない。
端末100は、たとえば、家庭内装置200を遠隔操作するための携帯型パーソナルコンピュータや、ネットワーク機能をもつ携帯電話や携帯端末などの通信機器である。
図1(a)は、現状のネットワーク環境を想定した接続形態を示し、端末100は、ネットワーク400においてグローバルIP(Internet Protocol)アドレスを有するサーバ300と直接通信することができるが、家庭内装置200はグローバルIPアドレスを持たないため、端末100から家庭内装置200に直接サービス要求を送信することはできない。
この場合、家庭内装置200は、家庭内のプライベートネットワークに接続されており、IPアドレスを割り当てられていないか、IPアドレスを割り当てられていたとしても、そのIPアドレスはプライベートなものである。
端末100は、いったんWWWサービスや電子メールなどの機能を利用して、家庭内装置200に対するサービス要求をサーバ300に送信する。サーバ300は、家庭内装置200と通信を行い、サービス要求を家庭内装置200に伝える。このとき、グローバルIPアドレスをもたない家庭内装置200は、たとえば、NAT(Network Address Translation)機能をもつルータを経由して、サーバ300と通信できるように構成されているとする。ルータのNAT機能により家庭内ネットワークのプライベートIPアドレスがグローバルIPアドレスに変換され、プライベートIPアドレスしか割り当てられていない家庭内装置200からでもネットワーク400へのアクセスが可能になる。
一例として、サーバ300は、あらかじめユーザに指定された家庭内装置200用のメールアドレス宛に接続要求を送り、家庭内装置200は指定されたメールアドレスに到着したメールを定期的に受信することで、その接続要求を認識し、家庭内装置200から端末100に接続をする。これにより、家庭内装置200がグローバルIPアドレスをもたないネットワーク環境でも、端末100側からのサービス要求に応じて、端末100と家庭内装置200の間でデータ通信のコネクションが確立される。あるいは、家庭内装置200は、端末100からの接続要求を認識すると、サーバ300に接続して、端末100とのデータ通信をサーバ300を経由して行ってもよい。
図1(b)は、IPv6(Internet Protocol Version 6)環境のように、家庭内装置200のIPアドレスがグローバルであり、かつ端末100に知られているネットワーク環境を想定した接続形態を示す。この場合、端末100は、家庭内装置200のグローバルIPアドレスを宛先アドレスに指定することにより、家庭内装置200に直接サービス要求を送信することができる。図1(b)は、図1(a)のサーバ300を端末100に置き換えたものと考えてもよい。以下では、説明の簡単のため、図1(b)の接続形態に集約させて実施の形態を説明するが、実施の形態で説明する構成と手順は、図1(a)の接続形態の場合にも同様に当てはまる。
まず、本実施の形態の遠隔操作システムの動作の概要を説明する。端末100は家庭内装置200に対して遠隔操作によるサービス要求を行う前に、あらかじめ家庭内装置200から共有情報を取得する。この共有情報は、ユーザが利用する端末100と家庭内装置200だけが共有して保持する情報であり、第三者に対する秘匿性が保たれている。
家庭内装置200から端末100に共有情報を受け渡す作業は、家庭内において行われてもよく、端末100が外部のネットワークから家庭内装置200に接続することにより行われてもよい。
家庭内で共有情報の受け渡しを行う場合、端末100を家庭内装置200が接続されている家庭内ネットワークに接続するか、もしくは有線または無線接続により端末100と家庭内装置200を直接接続し、家庭内装置200が生成した共有情報を端末100に転送する。この場合、第三者に情報を不正取得される心配がないため、通信経路の暗号化やパスワードの入力などは特に必要とされない。
ネットワーク400を経由して共有情報の受け渡しを行う場合、通信経路の暗号化やパスワードの入力などにより、認証付きのデータのやりとりを行う必要がある。ネットワーク400に接続された端末100において、ユーザはユーザ名とパスワードを入力することで家庭内装置200の認証を受け、認証が成功した場合に、家庭内装置200から端末100にネットワーク400を経由して共有情報が送信される。
このようにして家庭内装置200から端末100へ共有情報を受け渡すことを「事前認証」と呼ぶ。事前認証は、端末100と家庭内装置200が共有情報をもつための認証手続きであり、共有情報には、後述のように特定のサービスで利用可能なポート番号の候補やサービスを受ける際の認証に必要なサービス乱数などが含まれる。なお、共有情報は、端末100の記憶装置に保持され、認証時にアプリケーションにより読み出されて処理されため、ユーザが共有情報について意識する必要はない。
端末100は家庭内装置200にサービス要求する際、端末100に保持された共有情報に現在時刻情報を組み合わせて所定の演算規則により演算した結果にもとづいて、家庭内装置200の宛先ポート番号を動的に決定する。また、家庭内装置200側でも、端末100に発行した共有情報を保持しており、その共有情報に現在時刻情報を組み合わせて端末100と同じ演算規則を適用することにより、家庭内装置200がサービスを提供するためのサービスポート番号を動的に求めることができる。
家庭内装置200は、端末100が決定した宛先ポート番号がサービスポート番号と一致するかどうかにより、端末100が正しい共有情報を持っているかどうか、また、正しい宛先ポートに接続してきているかどうかを判定することができる。
端末100は、それ自身が保持する共有情報と時刻情報を用いて宛先ポート番号を決定することができ、家庭内装置200からのサービスポート番号の通知を必要としない。また、家庭内装置200も、それ自身が保持する共有情報と時刻情報を用いてサービスポート番号を決定することができ、端末100がいずれの宛先ポート番号を選択したかを知る必要はない。このように、端末100と家庭内装置200の間で通信を確立するにあたって、端末100と家庭内装置200の間でポートに関する情報のやりとりを一切行う必要がない。
端末100および家庭内装置200においてポート番号の決定にあたって、時刻情報が用いられるため、サービスポートはサービスが行われる度に変化し、固定されない。第三者からは、サービス毎にポート番号がランダムに変わっているように見え、ポート番号に関する情報が端末100と家庭内装置200の間でやりとりされないため、通信サービスで利用されるポートの秘匿性を高め、特定ポートに対する繰り返し攻撃などに対する防御性能を高めることができる。
以下、端末100と家庭内装置200の構成と動作を詳しく説明する。
図2は、実施の形態に係る端末100の構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
事前認証部140は、家庭内装置200に対して事前認証の要求メッセージを発行する。サービス要求部110は、家庭内装置200に対してサービスの要求メッセージを発行する。パケット処理部120は、事前認証部140およびサービス要求部110が発行するメッセージをパケット化し、通信部130は、ネットワーク400を介してパケットを家庭内装置200に送信する。
また、通信部130が家庭内装置200から要求メッセージに対するリプライメッセージのパケットを受信すると、パケット処理部120がリプライメッセージのパケットのヘッダを解析し、サービス要求部110または事前認証部140にパケットのペイロードに含まれるデータを与える。
端末100は、データ通信のために各種のプロトコルを選択して用いることができる。たとえば、トランスポート層のプロトコルとしてTCPまたはUDPを選択し、ネットワーク層のプロトコルとしてIPを選択する。パケット処理部120は選択されたプロトコルにしたがってパケットのヘッダ情報を設定する。
パケット処理部120は、事前認証部140が発行する事前認証要求またはサービス要求部110が発行するサービス要求をTCPプロトコルなどのパケットとして生成する。パケットのヘッダには、送信元ノードのIPアドレスとポート番号、宛先ノードのIPアドレスとポート番号が指定される。
送信元IPアドレスは、端末100のIPアドレスであり、送信元ポート番号は、端末100において要求メッセージの送信に利用するローカルポート番号である。宛先IPアドレスは、家庭内装置200のIPアドレスであり、宛先ポート番号は、家庭内装置200が要求メッセージの受信に利用するサービスポート番号である。
事前認証部140が事前認証の要求メッセージを発行する場合、パケット処理部120は、事前認証の要求メッセージをパケット化し、通信部130に与える。このとき、家庭内装置200の宛先ポートはあらかじめ決められたサービスポートが使用される。通信部130は、パケット化された事前認証要求メッセージを家庭内装置200に送信する。事前認証の際、家庭内装置200にユーザパスワードなどの秘匿すべき情報が送信されるため、SSL(Secure Socket Layer)などのプロトコルにより通信路が暗号化される。
家庭内装置200は、端末100から受信したユーザパスワードによりユーザの認証を行い、認証が成功すれば、家庭内装置200は共有情報を生成して端末100に送信する。
端末100の通信部130は、家庭内装置200から送信された共有情報のパケットを受信し、パケット処理部120は共有情報のパケットのヘッダを解析し、パケットのペイロードに含まれる共有情報を事前認証部140に与える。事前認証部140は、取得した共有情報を共有情報記憶部160に保存する。
サービス要求部110がサービスの要求メッセージを発行する場合、パケット処理部120は、サービスの要求メッセージをパケット化し、通信部130に与える。このとき、家庭内装置200の宛先ポートは、ポート設定部150により動的に設定されるポート番号が使用される。宛先ポートは、サービスによって固定されているのではなく、サービス要求の度に変化する。ポート設定部150は、この動的に変化する宛先ポート番号をパケット処理部120に対して設定する。
ポート設定部150は、共有情報記憶部160に保持された共有情報を読み出し、共有情報と現在時刻情報を組み合わせて所定の演算規則により演算した結果にもとづいて、宛先ポート番号を一意に決定する。ポート設定部150は、決定した宛先ポート番号をパケット処理部120に与える。
パケット処理部120は、ポート設定部150から与えられた宛先ポート番号を家庭内装置200に送信するパケットのヘッダに設定する。通信部130は、パケット処理部120によりパケット化されたサービス要求メッセージを家庭内装置200に送信する。
図3は、実施の形態に係る家庭内装置200の構成図である。これらの機能ブロックもハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
認証登録部240は、端末100から事前認証の要求メッセージを受け取り、認証登録を行い、認証結果を端末100に通知する。サービス処理部210は、端末100からサービスの要求メッセージを受け取り、サービスを実行し、実行結果を端末100に通知する。パケット処理部220は、通信部230が端末100から受信したパケットのヘッダを解析してパケットのペイロードに含まれるデータを認証登録部240またはサービス処理部210に与える。
また、パケット処理部220は、認証登録部240およびサービス処理部210が端末100に送信するデータをパケット化し、通信部230は、ネットワーク400を介してパケットを端末100に送信する。
認証登録部240は、端末100から受け取った事前認証の要求メッセージに対してユーザの認証と共有情報の登録を行う。まず、認証登録部240は、端末100から受信したユーザパスワードによりユーザの認証を行い、認証が成功すれば、共有情報を生成して共有情報記憶部260に保存するとともに、共有情報をパケット処理部220に与える。
パケット処理部220は、認証登録部240から与えられた共有情報を端末100を宛先とするパケットとして生成し、通信部230に与える。通信部230は、パケット化された共通情報を端末100に送信する。共有情報はSSLなどのプロトコルにより暗号化されて送信される。
パケット処理部220が端末100からのサービス要求メッセージのパケットを受け取ると、そのパケットに指定された宛先ポートをポート設定部250に与える。ポート設定部250は、共有情報記憶部260に保持された共有情報を読み出し、共有情報に現在時刻情報を組み合わせて所定の演算規則により演算した結果にもとづいて、端末100からのサービス要求を受信するサービスポート番号を一意に決定する。ポート設定部250は、共有情報にもとづいて決定したサービスポート番号と、端末100がサービス要求の際にパケットに指定した宛先ポート番号とが一致するかどうか判定し、一致する場合には、当該サービスポートにおいて端末100からのパケットを受信する。
サービス処理部210は、端末100からのサービス要求メッセージに対して認証が成功した場合に、サービスを実行し、サービス要求に対するリプライメッセージを発行する。パケット処理部220は、サービス要求のリプライメッセージをパケット化し、通信部230が端末100に送信する。
図4(a)〜(c)は、端末100と家庭内装置200がそれぞれ保持する共有情報を説明する図である。共有情報は、端末100の共有情報記憶部160および家庭内装置200の共有情報記憶部260にそれぞれ記憶される。
図4(a)に示すように、端末100が家庭内装置200に対して要求することのできるサービス毎にサービス名、サービス乱数、および共有ポート候補が共有情報として記憶される。
たとえば、サービス名「録画」に対して、サービス乱数Aと、共有ポート候補として「2000、2005、2006、2007、3000」の5つのポート番号のリストとが対応づけられて記憶される。
サービス名「ゲーム1」に対して、サービス乱数Bと、共有ポート候補として「2001、2004、3500」の3つのポート番号のリストが対応づけられて記憶される。
サービス名「ゲーム2」に対して、サービス乱数Cと、共有ポート候補として「4000、5000、6000」の3つのポート番号のリストが対応づけられて記憶される。
なお、共有ポート候補は、サービス毎にポート番号のリストを与えずに、たとえば、2000〜6000番はいずれのサービスでも自由に用いられるという設定になっていてもよい。また、上記のように、共有ポート候補は、サービス毎に使用可能なポート番号の候補が限定的に列挙されていてもよい。また、家庭内装置200が接続されている家庭内ネットワークと外部のネットワーク400の境界に設けられたルータなどのファイアウォールの設定に合わせて、使用可能なポート番号の候補が設定されてもよい。
図4(b)に示すように、端末100が家庭内装置200に対して事前認証を行った際、端末100のタイムスタンプ、家庭内装置200のタイムスタンプがそれぞれ共有端末時刻、共有家庭内装置時刻として、端末100と家庭内装置200の双方に記憶される。これらの共有情報は、端末100と家庭内装置200がそれぞれ現在時刻に依存するハッシュ値を計算する際に、端末100と家庭内装置200の間の時刻のずれを補正するために用いられる。
図4(c)に示すように、家庭内装置200は事前認証の際に共通乱数を生成し、その共通乱数が端末100と家庭内装置200の双方に記憶される。共通乱数は事前認証毎に新たに生成される乱数であり、共通鍵であってもよい。端末100が家庭内装置200に対してサービスを要求する際に、端末100と家庭内装置200の間で共有している共通乱数が一致するかどうかを判定することで、事前認証のためのユーザパスワードが第三者により盗まれたり、破られたりしたことにより、不正な事前認証がなされていないかをユーザが確認することができる。
家庭内装置200は、外部から起動される可能性のあるサービスについてのみ、図4(a)に示す共有情報を生成すればよいから、その種類は限定されている。家庭内装置200は、それらの想定されるサービス毎に共有情報を作成し、端末100との間で共有しておけばよいから、共有情報を生成するための処理コストは小さい。
端末100が利用可能なサービスをユーザ毎に制限してもよい。たとえば、「録画」はあるユーザだけができるといった使い分けも可能である。その場合、サービス乱数はユーザ毎に生成され、ユーザが使用する端末100に保持される。
サービス乱数は、乱数発生により生成されたものであればよく、共通鍵であってもよい。ただし、サービス乱数は他のサービス乱数とは一致してはならない。また、ユーザ間でも同じサービス乱数が使用されてはならない。すなわち、サービス乱数は、ユーザ名とサービス名に対して一意でなければならない。
図5は、端末100のポート設定部150の構成を説明する図である。ポート設定部150は、共有情報記憶部160に保持された共有情報に現在時刻情報とサービス要求の試行回数を組み合わせて所定の演算規則により演算した結果にもとづいて、家庭内装置200に対してサービス要求を行う際のパケットの宛先ポートを一意に決定する。現在時刻情報とサービス要求の試行回数が宛先ポートの決定の際に用いられるため、宛先ポート番号はサービス要求の度に動的に変化する。
タイマ10は、端末100における時刻情報を保持し、現在時刻情報をハッシュ計算部14に与える。試行回数カウンタ12は、端末100から家庭内装置200に対して行うサービス要求の試行回数をサービス毎にカウントして保持する。試行回数カウンタ12は、端末100がサービスを要求する際に、そのサービス要求の現在の試行回数をハッシュ計算部14に与える。
ハッシュ計算部14は、端末100が要求するサービスに対応づけられたサービス乱数を共有情報記憶部160から読み出す。また、ハッシュ計算部14には、ユーザの入力によりサービスパスワードも与えられる。ハッシュ計算部14は、サービス乱数もしくはサービスパスワードに、タイマ10から与えられた現在時刻情報と試行回数カウンタ12から与えられたサービス要求の試行回数を組み合わせて、サービス認証に用いるハッシュ値を生成する。ハッシュ計算部14は、生成したハッシュ値をポート選択部16とパケット処理部120に与える。
ポート選択部16は、端末100が要求するサービスに対応づけられた共有ポート候補を共有情報記憶部160から読み出し、ハッシュ計算部14により計算されたハッシュ値を所定の演算規則により演算した結果にもとづいて、共有ポート候補の中から1つのポート番号を宛先ポート番号として一意に選択する。ポート選択部16は、選択されたポート番号を、家庭内装置200にサービスを要求する際のパケットの宛先ポート番号としてパケット処理部120に与える。
パケット処理部120には、サービス認証に用いられるハッシュ値と、ハッシュ値を家庭内装置200に送信するときに使用される宛先ポートが与えられる。パケット処理部120は、与えられたハッシュ値を指定された宛先ポートに送るためのパケットを生成し、家庭内装置200に送信する。
図6は、家庭内装置200のポート設定部250の構成を説明する図である。ポート設定部250は、端末100がサービス認証のために送信したハッシュ値をパケット処理部220から受け取り、ハッシュ値を照合することによりサービス認証を行う。
サービス認証が成功すると、ポート設定部250は、共有情報記憶部260に保持された共有情報に現在時刻とサービス要求の試行回数を組み合わせ、端末100と同じ規則に当てはめることにより、家庭内装置200が端末100からのサービス要求を受信する際のサービスポートを一意に決定する。ポート設定部250は、端末100がサービス要求の際にパケットに指定した宛先ポートの情報をパケット処理部220から受け取り、その宛先ポートをサービスポートと比較することにより、端末100が正しい宛先ポートを使用しているかどうかを判定する。
タイマ20は、家庭内装置200における時刻情報を保持し、現在時刻情報をハッシュ計算部24に与える。試行回数カウンタ22は、端末100から家庭内装置200に対して行われるサービス要求の試行回数になるであろう回数をサービス毎にカウントして保持する。試行回数カウンタ22は、端末100からサービスの要求があった場合に、そのサービスの現在の試行回数をハッシュ計算部24に与える。
ハッシュ計算部24は、ユーザが利用するサービスに対応づけられたサービス乱数を共有情報記憶部260から読み出す。また、ハッシュ計算部24は、ユーザ登録の際に設定されたサービスパスワードを共有情報記憶部260から読み出す。ハッシュ計算部24は、サービス乱数もしくはサービスパスワードに、タイマ20から与えられた現在時刻情報と試行回数カウンタ22から与えられたサービス要求の試行回数を組み合わせてハッシュ関数により変換することにより、サービス認証に用いるハッシュ値を求める。ハッシュ計算部24は、求めたハッシュ値をハッシュ判定部26とポート判定部28に与える。
パケット処理部220は、端末100がサービス認証のために家庭内装置200に送信したハッシュ値を受信し、ハッシュ判定部26に与える。ハッシュ判定部26は、ハッシュ計算部24により計算されたハッシュ値と、端末100から受信されたハッシュ値とが一致するかどうか判定する。もし一致すれば、端末100が正しい共有情報をもっていることがわかる。一致しなければ、正しい共有情報を持っていない端末からの不正なサービス要求であることがわかる。
ハッシュ判定部26は、2つのハッシュ値が一致する場合に、ポート判定部28に端末100が接続に使用しようとしている宛先ポートが正しいかどうかを判定させる。
ポート判定部28は、端末100が要求するサービスに対応づけられた共有ポート候補を共有情報記憶部260から読み出し、ハッシュ計算部24により計算されたハッシュ値を所定の演算規則により演算した結果にもとづいて、共有ポート候補の中から1つのポート番号をサービスポート番号として一意に選択する。この所定の演算規則は、端末100のポート設定部150が宛先ポートの決定に用いた演算規則と同じである。ポート判定部28は、共有ポート候補の中から選択されたサービスポート番号と、端末100がサービス要求の際にパケットに指定した宛先ポート番号とが一致するかどうかを判定する。
家庭内装置200が保持する共有情報と端末100が保持する共有情報が同じであれば、ポートを決めるために同じ演算規則を用いる限り、端末100のポート設定部150が決定する宛先ポート番号は、家庭内装置200のポート設定部250が決定するサービスポート番号に一致するはずである。両ポート番号が一致する場合、端末100は正しいポート番号を宛先ポートとして指定しているため、ポート判定部28は、宛先ポートを開いた状態で維持し、サービス処理部210は、端末100からのサービス要求に応じる。
家庭内装置200のポート設定部250において、ハッシュ値の照合もしくはポート番号の照合により、いずれかが一致しないことがわかった場合、家庭内装置200のサービス処理部210は、端末100からのサービス要求に応じない。
以上の構成の端末100と家庭内装置200による認証手順を説明する。端末100は家庭内装置200にサービスの要求を行うためにあらかじめ事前認証を行っておき、その後、サービスを利用する時点でサービス認証を行う。
図7は、端末100と家庭内装置200の間で行われる事前認証の手順を示すシーケンス図である。
端末100において、ユーザは事前認証のためにユーザ名とユーザパスワードを入力する(S10)。ユーザ名とユーザパスワードは家庭内装置200に送信される(S12)。このとき、端末100の事前認証要求時のタイムスタンプも家庭内装置200に送信される。
家庭内装置200は、受信したユーザ名とユーザパスワードをもとにユーザの認証を行う(S14)。認証に成功した場合、家庭内装置200の認証登録部240は、共有情報を生成し、共有情報記憶部260に登録する(S16)。
認証登録部240は、ユーザに利用を許可するサービス毎に、サービス乱数を生成し、そのサービスで使用可能なポート番号を共有ポート候補として生成し、共有情報記憶部260に登録する。また、認証登録部240は、端末100から取得した事前認証要求時のタイムスタンプを共有端末時刻情報として共有情報記憶部260に登録し、同時に家庭内装置200の事前認証時のタイムスタンプも共有家庭内装置時刻情報として共有情報記憶部260に登録する。
家庭内装置200は、共有情報記憶部260に登録した共有情報を端末100に送信する(S18)。
端末100の事前認証部140は、家庭内装置200から受信した共有情報を共有情報記憶部160に保存する(S20)。
上記の事前認証の手順は、端末100が任意のタイミングで開始することができる。たとえば、新規サービスが家庭内装置200に登録されても、端末100側で情報が更新されないままになっていることがあるから、端末100は、事前認証を行い、情報を更新する必要がある。また、端末時刻を途中で変更したなどにより、以前の共有端末時刻では認証がうまくいかなくなった場合にも、端末100は、事前認証から開始する。ただし、セキュリティ上、端末100は定期的に事前認証を行い、共有情報を新たな値に変更する必要は特にない。事前認証が第三者によって行われたなら、サービス認証で失敗するからであり、また、仮にサービス認証を行っても事前認証で得られる共有情報が知られることはないからである。
図8および図9は、端末100が家庭内装置200にサービス要求を行う際のサービス認証の手順を示すシーケンス図である。サービス認証はサービス乱数による認証とサービスパスワードによる認証の2段階で行われる。
図8は、サービス乱数による認証の手順を示すシーケンス図である。
端末100において、ユーザはサービスを選択する(S30)。端末100の表示装置の画面にはサービスを選択するメニューなどが表示される。ユーザがいずれかのサービスを選択すると、そのサービスを利用するためのパスワードの入力画面が表示され、ユーザはサービスパスワードを入力する(S31)。サービスパスワードはユーザが端末100から利用できる全サービスに共通のものであってもよく、利用するサービス毎に異なっていてもよい。
ここでは、ユーザは図4(a)の「録画」を選択したとする。このとき、ポート設定部150は、サービス名「録画」に対応付けられたサービス乱数Aと、共有ポート候補「2000、2005、2006、2007、3000」を共有情報記憶部160から読み取る。
ポート設定部150のハッシュ計算部14は、タイマ10から与えられた現在端末時刻、試行回数カウンタ12から与えられたサービス要求の試行回数、および共有情報記憶部160から読み出されたサービス乱数にもとづいて、ハッシュ値を算出する(S32)。
具体的には、ハッシュ計算部14は、現在端末時刻、試行回数およびサービス乱数を連結したデータ列(以下、このデータ列を「現在端末時刻+試行回数+サービス乱数」と表記する)を所定のハッシュ関数により変換し、ハッシュ値を取得する。ハッシュ関数は、与えられた原文から固定長の疑似乱数を生成する関数であり、不可逆な一方向関数であるため、生成されたハッシュ値から原文を推定することはできない。このハッシュ関数の性質を利用すれば、ハッシュ値を端末100から家庭内装置200に送信しても、ハッシュ値のもととなったサービス乱数が盗まれる心配がない。
ハッシュ計算部14により求められた「現在端末時刻+試行回数+サービス乱数」のハッシュ値が16進数表現で4f76dea54dc818e37696574554f39baf0b546cd8であったとする。
ハッシュ計算部14は、ユーザが入力したサービスパスワードのデータ列(以下、このデータ列を「サービスパスワード」と表記する)をハッシュ関数により変換し、ハッシュ値を取得する。
ハッシュ計算部14により求められた「サービスパスワード」のハッシュ値が16進数表現で36871fd7204f7998c81c1d00232ce38697cbd6b3であったとする。
ポート選択部16は、ポート番号を決める規則の一例として、「サービスパスワード」のハッシュ値の先頭の16進数の値が、「現在端末時刻+試行回数+サービス乱数」のハッシュ値に最初に現れる桁を求め、その桁番号を共有ポート候補の個数で割ったときの剰余を求め、その剰余の値で共有ポート候補の中からポートを一意に決定する(S34)。
上記の例では、「サービスパスワード」のハッシュ値の先頭の16進数の値は3であり、「現在端末時刻+試行回数+サービス乱数」のハッシュ値において「3」が最初に現れる桁は先頭から16番目である。ポート選択部16は、この桁番号「16」を共有ポート候補の個数5で割り算し、その剰余1を求め、この剰余1を共有ポート候補を選ぶ番号として使用する。ポート選択部16は、共有ポート候補のリスト「2000、2005、2006、2007、3000」の中から、剰余1に対応する第1番目の2005番ポートを選択する。ここで、共有ポート候補の最初のポート番号は0番として数えている。
なお、「サービスパスワード」のハッシュ値の先頭の16進数の値が、「現在端末時刻+試行回数+サービス乱数」のハッシュ値に存在しない場合は、「サービスパスワード」のハッシュ値の2番目の16進数の値を用いて同様の手続きにより共有ポート候補のリストから1つのポートを一意に選択する。
上記のハッシュ計算で用いられる現在端末時刻は、一例として5分単位の時刻とする。たとえば、端末100の現在時刻が16時0分0秒から16時4分59秒までの間である場合、現在端末時刻としては、同一の16時0分を利用することにする。したがって、この5分間はハッシュ値は同じになり、選択されるポート番号は変化しない。なお、端末100と家庭内装置200の間で現在時刻のずれがあるため、端末100と家庭内装置200がそれぞれ同一の規則で決定するポート番号が一致するように、5分単位の切り替わりのタイミングでは、そのタイミングの前後の5分間のそれぞれのハッシュ値により決まるポート番号がともに有効になるようにしてもよい。
上記のように、サービス乱数をもとにしたハッシュ値に対してサービスパスワードをもとにしたハッシュ値が組み合わせることにより、ポートを決定する手順の秘匿性が一層高まる。
なお、「現在端末時刻+試行回数+サービス乱数」のハッシュ値に「サービスパスワード」のハッシュ値を組み合わせて共有ポート候補の中から1つのポートを選択する手順は、共有情報に当てはめる演算規則の一例であり、選択されるポートが動的にランダムに変化する限りは、これ以外の演算規則をサービス乱数に当てはめて、共有ポート候補の中から1つのポートを選択してもよい。ただし、その演算規則は、端末100と家庭内装置200で共通でなければならない。
端末100は、ステップS34で決定された家庭内装置200の宛先ポートである2005番ポートに対して、「現在端末時刻+試行回数+サービス乱数」のハッシュ値を送信する(S36)。ポート番号を決めるのに用いたハッシュ値を直接送信することを避けるために、たとえば、サービス乱数を2回連結した「現在端末時刻+試行回数+サービス乱数+サービス乱数」のハッシュ値を家庭内装置200に送信するようにしてもよい。家庭内装置200側で、端末100から送信されるハッシュ値の計算方法がわかっているなら、サービス乱数を含むハッシュ値である限り、どのようなハッシュ値を家庭内装置200に送ってもよい。
家庭内装置200は、ユーザを事前認証した際に登録したすべてのサービスについて、サービス乱数をもとに端末100と同じハッシュ関数を用いてハッシュ値を計算し、端末100から送信されてきたハッシュ値と比較し、一致するものがあるかどうか調べる。
ポート設定部250のハッシュ計算部24は、ユーザに許可したサービス毎に、タイマ20から与えられた現在家庭内装置時刻、試行回数カウンタ22から与えられたサービス要求の試行回数、および共有情報記憶部260から読み出されたサービス乱数にもとづいて、ハッシュ値を算出する(S38)。
具体的には、ハッシュ計算部24は、サービス毎に、現在家庭内装置時刻、試行回数およびサービス乱数を連結したデータ列を端末100で用いられたのものと同じハッシュ関数により変換することにより、「現在家庭内装置時刻+試行回数+サービス乱数」のハッシュ値を取得する。
ハッシュ判定部26は、端末100から送信された「現在端末時刻+試行回数+サービス乱数」のハッシュ値と、ハッシュ計算部24により計算された「現在家庭内装置時刻+試行回数+サービス乱数」のハッシュ値が一致するかどうかを、すべてのサービスについて照合する(S40)。
ここで、端末100と家庭内装置200のタイマは同期が取れていないために、現在端末時刻と現在家庭内装置時刻にずれがあり、一致しない可能性がある。そこで、ハッシュ計算部24は、「現在家庭内装置時刻+試行回数+サービス乱数」のハッシュ値を計算する際、共有情報記憶部260に記録された共有端末時刻情報と共有家庭内装置時刻情報の差分を求め、現在家庭内装置時刻と現在端末時刻のずれを補正した上で、ハッシュ値の計算を行う。
ハッシュ判定部26は、ハッシュ値の一致するサービスを端末100が選択したサービスであると特定する(S42)。いずれのサービスについても端末100から送られたハッシュ値と一致しない場合は、サービス認証は失敗し、端末100によるサービス要求は拒否される。
次に、ポート判定部28は、ステップS42で特定されたサービスについてハッシュ計算部24によって計算されたハッシュ値にもとづいて共有ポート候補からポートを一意に選択する。ポートの選択手順は、端末100側でポート設定部150のポート選択部16が行う手順と同じである。
ハッシュ計算部24は、「サービスパスワード」のハッシュ値を求め、ポート判定部28に与える。ポート判定部28は、「サービスパスワード」のハッシュ値の先頭の値が「現在家庭内装置時刻+試行回数+サービス乱数」のハッシュ値に最初に現れる桁を求め、その桁番号を共有ポート候補の個数で割ったときの剰余を求め、その剰余の値で共有ポート候補の中からポートを一意に決定する(S44)。
ポート判定部28は、ステップS44においてハッシュ値にもとづいて一意に選択したポートと、端末100がサービス要求の際にパケットのヘッダに指定した宛先ポートとが一致しているかどうか照合する(S46)。一致していれば、端末100が宛先ポートとして指定しているポート番号は正しいものであり、家庭内装置200は、その宛先ポートに送信された端末100のサービス要求を正当なものとして受け付ける。
図9は、サービスパスワードによる認証手順を示すシーケンス図である。この認証手順は図8のサービス乱数による認証手順と同様である。ただし、家庭内装置200は、図8の認証手順により端末100が要求しているサービスを既に特定している。
端末100には、図8のステップS31で既にサービスパスワードが入力されている。ポート設定部150のハッシュ計算部14は、タイマ10から与えられた現在端末時刻、試行回数カウンタ12から与えられた試行回数、およびユーザにより入力されたサービスパスワードにもとづいて、ハッシュ値を算出する(S50)。
具体的には、ハッシュ計算部14は、現在端末時刻、試行回数およびサービスパスワードを連結したデータ列をハッシュ関数により変換し、ハッシュ値を取得する。「現在端末時刻+試行回数+サービスパスワード」のハッシュ値が16進数表現で4b5d64bc764af9fbb0ad634de298e746b0374ef6であったとする。
ハッシュ計算部14は、共有情報記憶部160から読み出されたサービス乱数のデータ列をハッシュ関数により変換し、ハッシュ値を取得する。「サービス乱数」のハッシュ値が16進数表現でa85a0d94a47e7597bb36b92123dca79d116a06fdであったとする。
ポート選択部16は、ポート番号を決める規則の一例として、「サービス乱数」のハッシュ値の先頭の16進数の値が、「現在端末時刻+試行回数+サービスパスワード」のハッシュ値に最初に現れる桁を求め、その桁番号を共有ポート候補の個数で割ったときの剰余を求め、その剰余の値で共有ポート候補の中からポートを一意に決定する(S52)。
上記の例では、「サービス乱数」のハッシュ値の先頭の16進数の値はaであり、「現在端末時刻+試行回数+サービスパスワード」のハッシュ値において「a」が最初に現れる桁は先頭から12番目である。ポート選択部16は、この桁番号「12」を共有ポート候補の個数5で割り算し、その剰余2を求め、この剰余を共有ポート候補を選ぶ番号として使用する。ポート選択部16は、共有ポート候補のリスト「2000、2005、2006、2007、3000」の中から、剰余2に対応して第2番目の2006番ポートを選択する。
なお、「サービス乱数」のハッシュ値の先頭の16進数の値が、「現在端末時刻+試行回数+サービスパスワード」のハッシュ値に存在しない場合は、「サービス乱数」のハッシュ値の2番目の16進数の値を用いて同様の手続きにより共有ポート候補のリストから1つのポートを一意に選択する。
端末100は、ステップS52で決定された家庭内装置200の宛先ポートである2006番ポートに対して、「現在端末時刻+試行回数+サービスパスワード」のハッシュ値を送信する(S54)。ポート番号を決めるのに用いたハッシュ値を直接送信することを避けるために、サービスパスワードを2回連結した「現在端末時刻+試行回数+サービスパスワード+サービスパスワード」のハッシュ値を家庭内装置200に送信するようにしてもよい。
家庭内装置200のポート設定部250のハッシュ計算部24は、タイマ20から与えられた現在家庭内装置時刻、試行回数カウンタ22から与えられたサービス要求の試行回数、およびユーザにより入力されたサービスパスワードにもとづいて、ハッシュ値を算出する(S56)。
家庭内装置200は、図8のステップS42において、既に端末100の要求するサービスを特定している。ハッシュ計算部24は、端末100の要求するサービスのサービス乱数を共有情報記憶部260から読み出し、現在家庭内装置時刻、試行回数およびサービスパスワードを連結したデータ列を端末100で用いられたものと同じハッシュ関数により変換することで、「現在家庭内装置時刻+試行回数+サービスパスワード」のハッシュ値を取得する。
ハッシュ判定部26は、端末100から送信された「現在端末時刻+試行回数+サービスパスワード」のハッシュ値と、ハッシュ計算部24により計算された「現在家庭内装置時刻+試行回数+サービスパスワード」のハッシュ値が一致するかどうか照合する(S58)。ハッシュ値が一致すれば、サービスパスワードによる認証は成功である。
さらに、ポート判定部28は、ハッシュ計算部24によって計算されたハッシュ値にもとづいて共有ポート候補からポートを一意に選択する。ポート番号の選択手順は、端末100側でポート設定部150のポート選択部16が行う手順と同じである。
ハッシュ計算部24は、「サービス乱数」のハッシュ値を求め、ポート判定部28に与える。ポート判定部28は、「サービス乱数」のハッシュ値の先頭の値が「現在家庭内装置時刻+試行回数+サービスパスワード」のハッシュ値に最初に現れる桁を求め、その桁番号を共有ポート候補の個数で割ったときの剰余を求め、その剰余の値で共有ポート候補の中からポートを一意に決定する(S60)。
ポート判定部28は、ステップS60においてハッシュ値にもとづいて一意に選択したポートと、端末100が送信するパケットのヘッダに指定した宛先ポートとが一致しているかどうか照合する(S62)。一致していれば、端末100が宛先ポートとして指定しているポート番号は正しいものであり、家庭内装置200は、その宛先ポートに送信された端末100からのサービス要求を受理する(S64)。
以降、サービスパスワードに関するハッシュ値にもとづいて一意に選択されたポート2006番を用いて、端末100と家庭内装置200の間で受理されたサービスに関する通信が行われる。図8のサービス乱数に関するハッシュ値にもとづいて一意に選択されたポート2005番を用いて、端末100と家庭内装置200の間で受理されたサービスに関する通信が行われてもよい。
上記の手順において、家庭内装置200は、サービスパスワードの認証の有効時間をたとえば1分に限定し、1分以内に認証がなされない場合、認証を無効にすることもできる。
また、ハッシュ値は時刻によって変化するが、ポート番号が変化しない5分間の期間では、同じサービスパスワードを使用すれば同じハッシュ値が得られる。正規ユーザが正常に認証を終了した後、第三者が同じハッシュ値を送信することによってなりすましによるリプレイ攻撃を行うことを防ぐために、認証後にそのポート番号を無効にするか、試行回数をカウントアップすることで、ハッシュ値が変化しない5分間におけるリプレイ攻撃を防ぎ、かつ、正規ユーザがその5分間にもう一度サービスを受けることを可能とする。
上述のように事前認証とサービス認証という2段階の認証方法を採用したことにより、ユーザは事前認証を行わなければ共有情報を得ることができず、そのためサービス要求の際に宛先ポートを正しく決定することができない。したがって、第三者が不正にサービス要求をしようとしても正しい宛先ポートにパケットを送信することができず、不正侵入を防止することができる。また、宛先ポートはサービス毎に動的に変化するため、特定のポートへの繰り返し攻撃に対して防御することができる。
仮に第三者がユーザ名とユーザパスワードを盗んだり、パスワード破りを行って、不正に事前認証を行ったとしても、家庭内装置200内のサービスを利用するには、さらにサービスパスワードの入力が必要であり、セキュリティが二重化されており、安全性が高い。また、第三者が事前認証を行った場合、共有情報が更新されるため、正規ユーザはサービス認証を成功させることができなくなる。このことにより、正規ユーザは自分以外の何者かによって事前認証が行われたことを知ることができるので、ユーザはユーザパスワードを変更するなどの対策を取る余裕をもつことができる。
第三者によって事前認証が行われたことをユーザが認識する方法として次の2つがある。一つは、家庭内で家庭内装置200のスイッチを入れて操作しようとしたときに、画面に事前認証が行われたことを事前認証の日時などの情報とともに示す方法である。これにより、ユーザは自分以外の誰かが不正に事前認証を行ったことを知ることができる。このとき、ユーザはパスワードを変更した上で、新たに事前認証を行い、端末100と家庭内装置200の共有情報を更新することで不正侵入を防ぐことができる。
別の方法は、端末100と家庭内装置200の間で共有されている共通乱数が一致するかどうか照合することで、ユーザが知らない間に新たな事前認証がなされたかどうかを調べることである。
もっとも、新たな事前認証がなされていると、端末100と家庭内装置200の間で共有情報が一致しなくなっているから、図8もしくは図9のサービス認証の手順を実行したときに、サービス認証が成功しないことから、自分以外の誰かが事前認証を行って家庭内装置200に新たな共有情報が設定されたことを間接的に知ることができる。しかし、図8および図9のサービス認証の手順では、ユーザがサービスパスワードの入力を行うことが必要であり、ユーザがサービスパスワードを誤って入力した場合も認証が成功しないため、サービスパスワードの誤入力と不正な事前認証との区別がつかない。
一方、共通乱数による認証は、ユーザの入力を一切必要としないため、ユーザによる誤入力の可能性を排除して、新たに事前認証がなされたかどうかを正確に把握することができる。以下では、共通乱数による認証を用いて、不正な事前認証の有無を検出する手順を説明する。
図10は、第三者により事前認証がなされたかどうかを判定する手順を示すシーケンス図である。
端末100において、ポート設定部150のハッシュ計算部14は、タイマ10から与えられた現在端末時刻、試行回数カウンタ12から与えられたサービス要求の試行回数、および共有情報記憶部160から読み出された共通乱数にもとづいてハッシュ値を算出する(S70)。
ハッシュ計算部14は、現在端末時刻、試行回数および共通乱数を連結したデータ列をハッシュ関数により変換し、ハッシュ値を取得する。「現在端末時刻+試行回数+共通乱数」のハッシュ値が16進数表現で28659ba8acbf535efd853abfd3dd24dede5dc1a7であったとする。
ハッシュ計算部14は、共有情報記憶部160から読み出された共通乱数のデータ列をハッシュ関数により変換し、ハッシュ値を取得する。「共通乱数」のハッシュ値が16進数表現でd8554273c4d40881a6889a8328069be70151b33aであったとする。
ポート選択部16は、「共通乱数」のハッシュ値の先頭の16進数の値が、「現在端末時刻+試行回数+共通乱数」のハッシュ値に最初に現れる桁を求め、その桁番号を共有ポート候補の個数で割ったときの剰余を求め、その剰余の値で共有ポート候補の中からポートを一意に決定する(S72)。
上記の例では、「共通乱数」のハッシュ値の先頭の16進数の値はdであり、「現在端末時刻+試行回数+共通乱数」のハッシュ値において「d」が最初に現れる桁は先頭から18番目である。ポート選択部16は、この桁番号「18」を共有ポート候補の個数5で割り算し、その剰余3を求め、この剰余3を共有ポート候補を選ぶ番号として使用する。ポート選択部16は、共有ポート候補のリスト「2000、2005、2006、2007、3000」の中から、剰余3に対応する第3番目の2007番ポートを選択する。
端末100は、ステップS72で決定された家庭内装置200の宛先ポートである2007番ポートに対して、「現在端末時刻+試行回数+共通乱数」のハッシュ値を送信する(S74)。共通乱数のハッシュ値は家庭内装置200に送信されないため、安全である。
家庭内装置200のポート設定部250のハッシュ計算部24は、タイマ20から与えられた現在家庭内装置時刻、試行回数カウンタ22から与えられたサービス要求の試行回数、および共有情報記憶部260から読み出された共通乱数にもとづいて、ハッシュ値を算出する(S76)。
ハッシュ計算部24は、現在家庭内装置時刻、試行回数および共通乱数を連結したデータ列を端末100で用いられたものと同じハッシュ関数により変換することで、「現在家庭内装置時刻+試行回数+共通乱数」のハッシュ値を取得する。
ハッシュ判定部26は、端末100から送信された「現在端末時刻+試行回数+共通乱数」のハッシュ値と、ハッシュ計算部24により計算された「現在家庭内装置時刻+試行回数+共通乱数」のハッシュ値が一致するかどうかを照合する(S78)。ハッシュ値が一致すれば、端末100と家庭内装置200がそれぞれ保持する共通乱数は一致しており、新たな事前認証はなされていないことがわかる。
さらに、ポート判定部28は、ハッシュ計算部24によって計算されたハッシュ値にもとづいて共有ポート候補からポートを一意に選択する。ポート番号の決定手順は、端末100側でポート設定部150のポート選択部16が行う手順と同じである。
ハッシュ計算部24は、「共通乱数」のハッシュ値を求め、ポート判定部28に与える。ポート判定部28は、「共通乱数」のハッシュ値の先頭の値が「現在家庭内装置時刻+試行回数+共通乱数」のハッシュ値に現れる桁を求め、その桁番号を共有ポート候補の個数で割ったときの剰余を求め、その剰余の値で共有ポート候補の中からポートを一意に決定する(S80)。
ポート判定部28は、ステップS80においてハッシュ値にもとづいて一意に選択したポートと、端末100が送信するパケットのヘッダに指定された宛先ポートとが一致しているかどうか照合する(S82)。一致していれば、端末100が宛先ポートとして指定しているポートは正しいことがわかる。
共通乱数からポート番号を決定する手順では、ユーザから入力されるデータを一切使用していないので、共通乱数が正しければ、必ず正しいポートに接続され、家庭内装置200において共通乱数の一致が確認される。共通乱数による認証が成功した場合、家庭内装置200は端末100に認証の成功を通知する。
家庭内装置200において共通乱数が一致しないことがわかった場合、それは、別の事前認証が実行されたことを意味する。このときは、端末100に認証の失敗を通知する。
以上の共通乱数を用いた認証により、端末100において、第三者による事前認証がなされたかどうかがわかり、ユーザは不正侵入を防止するための対策を講ずることができる。
以上述べたように、本実施の形態によれば、端末100が家庭内装置200の提供するサービスを受ける際、サービスを提供するための特定のサービスポートが固定的に決まっているのではなく、サービスポートは、同じサービスであっても、サービス要求の度に動的に変化する。サービスポート番号は、端末100と家庭内装置200が共有する情報を用いて、所定の演算規則で決められるため、共有情報や演算規則を知られない限り、サービスポート番号を事前に知られることはない。これにより、サービスポートへの不正な侵入を防ぐことができる。
また、家庭内装置200は、攻撃を受けたサービスポートを閉じてもよく、その場合、候補となるポート番号から別のサービスポートが利用されるため、サービスの提供に支障を来さない。また、家庭内装置200は、複数のポート番号の候補の中で、自らランダムにあるポートを停止したり、開いたりすることもできるため、攻撃に対する防御性能をさらに高めることができる。このとき、家庭内装置200の試行回数はインクリメントされる。
なお、家庭内装置200が自らランダムにポートを停止した場合、端末100が試行回数1で対象のポートにサービス要求を送った場合、対象ポートが閉じているとコネクションエラーとなるが、端末100は第2の接続先ポートを2回目の試行において試すことができる。一方、家庭内装置200は端末100からの最初の試行を受けて、端末100が試行回数2で接続したときにつながるように、あらかじめ家庭内装置200内の試行回数をインクリメントし、次に端末100が接続してくるポートを開いて、端末100からの接続要求を待機することもできる。
第三者からは、家庭内装置200においてサービスを受け付けるポートがサービス要求の度にランダムに変更されているかのように見えており、開いているポートが動的に変化するため、サービスポートを推測されにくくなり、特定ポートへのDoS攻撃を緩和することができる。また、攻撃を受けたポートは閉じてしまい、他の共有ポート候補でサービスを受け付けるようにすれば、攻撃を免れることができる。
また、ユーザパスワードによる事前認証と、サービスを受けるための認証とが別に設けられており、二段階で認証が行われるため、ユーザパスワードが仮に破られることがあっても、第三者により事前認証がなされたことを正規ユーザに通知し、パスワードを変更する余裕を与えることでサービスが不正に利用されるのを防ぐことができる。
また、ポート番号を家庭内の各種機器に対応づけ、たとえば2000番ポートは機器A、2001番ポートは機器Bに割り当てておけば、家庭内ネットワークと外部ネットワークの接続ポイントにあるルータが、接続段階でポートによって振り分けることができる。これにより、アプリケーション層を介在させずにトランスポート層においてポート番号によるルーティングが可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
家庭内装置200は、共有情報、現在時刻およびサービス要求の試行回数の組み合わせにもとづいて動的に一意に決まるサービスポートのみをその有効期間内だけ開いた状態にして待機し、共有ポート候補であってもその時刻では無効であるサービスポートは閉じた状態で待機してもよい。あるいは、家庭内装置200は、各サービスの共有ポート候補であるサービスポートをすべて開いた状態で待機してもよい。いずれの場合でも、端末100は、ハッシュ値によるサービス認証を経る必要があり、ある時刻において一意に決定されるサービスポート番号と一致する宛先ポートを端末100が使用していない限り、端末100からのサービス要求は正当なものとして受理されない。
また、家庭内装置200がルータを経由してネットワーク400に接続する形態の場合、ルータにおいてサービスポートが開いている状態になっている必要がある。そのために、ユーザが、手動でルータの設定を行い、サービス毎の共有ポート候補を最初からすべて開いている状態にしてもよく、UPnP(Universal Plug and Play)(商標または登録商標)に対応したルータであれば、家庭内装置200から自動的にサービス毎に共有ポート候補をすべて開くようにルータに設定してもよい。あるいは、家庭内装置200は、各時刻において、有効なサービスポートを開き、無効なサービスポートは閉じるといった制御をUPnP対応ルータに対して行ってもよい。
上記の説明では、サービス認証を経て、端末100と家庭内装置200が、認証されたサービスに関する通信をサービス認証の際に動的に決められたサービスポートを利用して行った。たとえば、ゲーム2を家庭内装置200にインストールした場合、4000、5000、6000番のポートが端末100と家庭内装置200の間でポート候補として事前認証によって共有されるが、それらのポート番号はサービス認証を経て初めて使用可能となるものであり、外部からは閉じているように見える。一方、サービス認証を経ると、共有ポート候補のいずれかがサービスポートに決まり、以降、ゲームに関する通信がそのサービスポートで行われ、外部からもそのサービスポートは開いているように見える。このように、サービス認証を経てサービスポートを利用可能に制御することは、一種のファイアウォールの機能を提供することになる。
この場合、サービス認証が成功した後、端末100と家庭内装置200がサービスに関して行う通信に関してはサービスポートは固定されていることになるが、端末100と家庭内装置200の間で長時間にわたって接続が維持される場合に、本発明のサービスポートを動的に変更する手順を適用して、サービスの途中でポート番号を変更するようにしてもかまわない。
上記の実施の形態では、遠隔操作システムを例に挙げて、共有情報を用いてポート番号を動的に変更するための構成と手順を説明したが、本発明は、遠隔操作に限らず、任意の目的の通信システムにも一般的に適用することができる。たとえば、クライアントサーバ型の通信システムや、ピアツーピア型の通信システムにおいても一般的に適用することができる。また、実施の形態では、ポート番号を動的に変更することを説明したが、IPアドレスやURL(Uniform Resource Locator)などの通信先アドレスの動的変更にも本発明を適用することができる。
実施の形態に係る遠隔操作システムの構成図である。 実施の形態に係る端末の構成図である。 実施の形態に係る家庭内装置の構成図である。 図2の端末と図3の家庭内装置がそれぞれ保持する共有情報を説明する図である。 図2の端末のポート設定部の構成を説明する図である。 図3の家庭内装置のポート設定部の構成を説明する図である。 図2の端末と図3の家庭内装置の間で行われる事前認証の手順を示すシーケンス図である。 図2の端末が図3の家庭内装置にサービス要求を行う際のサービス乱数による認証手順を示すシーケンス図である。 図2の端末が図3の家庭内装置にサービス要求を行う際のサービスパスワードによる認証手順を示すシーケンス図である。 図2の端末と図3の家庭内装置が、第三者により事前認証がなされたかどうかを判定する手順を示すシーケンス図である。
符号の説明
10 タイマ、 12 試行回数カウンタ、 14 ハッシュ計算部、 16 ポート選択部、 20 タイマ、 22 試行回数カウンタ、 24 ハッシュ計算部、 26 ハッシュ判定部、 28 ポート判定部、 100 端末、 110 サービス要求部、 120 パケット処理部、 130 通信部、 140 事前認証部、 150 ポート設定部、 160 共有情報記憶部、 200 家庭内装置、 210 サービス処理部、 220 パケット処理部、 230 通信部、 240 認証登録部、 250 ポート設定部、 260 共有情報記憶部、 300 サーバ、 400 ネットワーク。

Claims (12)

  1. 通信装置が提供するサービスを受ける端末であって、
    当該端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定するポート選択部と、
    動的に決定された前記宛先ポート番号を指定した前記要求パケットを生成するパケット処理部とを含むことを特徴とする端末。
  2. 前記共有情報と前記時刻情報を組み合わせたデータ列を一方向性関数により変換してハッシュ値を生成するハッシュ計算部をさらに含み、
    前記ポート選択部は、生成された前記ハッシュ値に所定の演算規則を適用することにより、複数の利用可能なポート番号の候補の1つを指定する番号を生成し、前記番号により前記複数の利用可能なポート番号の候補の中から1つのポート番号を前記宛先ポート番号として一意に選択することを特徴とする請求項1に記載の端末。
  3. 端末に対してサービスを提供する通信装置であって、
    当該通信装置と前記端末の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定するポート判定部と、
    前記サービスポートにおいて前記要求パケットを受信するために待機するパケット処理部とを含むことを特徴とする通信装置。
  4. 前記ポート判定部は、前記要求パケットに指定された宛先ポート番号が前記サービスポート番号に一致するか否かを判定し、
    前記パケット処理部は、前記宛先ポート番号が前記サービスポート番号に一致する場合に、前記要求パケットを前記サービスポートで受信して処理することを特徴とする請求項3に記載の通信装置。
  5. 前記共有情報と前記時刻情報を組み合わせたデータ列を一方向性関数により変換してハッシュ値を生成するハッシュ計算部をさらに含み、
    前記ポート判定部は、生成された前記ハッシュ値に所定の演算規則を適用することにより、複数の利用可能なポート番号の候補の1つを指定する番号を生成し、前記番号により前記複数の利用可能なポート番号の候補の中から1つのポート番号を前記サービスポート番号として一意に選択することを特徴とする請求項3または4に記載の通信装置。
  6. 前記端末が保持する前記共有情報をもとに計算されたハッシュ値を前記端末から受け取り、当該通信端末が保持する前記共有情報をもとに計算されたハッシュ値と比較することにより、前記端末が要求するサービスの認証を行うハッシュ判定部をさらに含むことを特徴とする請求項3から5のいずれかに記載の通信装置。
  7. 端末がネットワークを経由して通信装置の提供するサービスを受ける際に、前記通信装置がサービスを提供するサービスポート番号が、前記端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算結果にもとづいてサービス要求の度に動的に変更されることを特徴とする通信確立方法。
  8. 通信装置が提供するサービスを受ける端末における通信確立方法であって、
    当該端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定するステップと、
    動的に決定された前記宛先ポート番号を指定した前記要求パケットを生成し、前記通信装置に送信するステップとを含むことを特徴とする通信確立方法。
  9. 端末に対してサービスを提供する通信装置における通信確立方法であって、
    当該通信装置と前記端末の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定するステップと、
    前記サービスポートにおいて前記要求パケットを受信するために待機するステップとを含むことを特徴とする通信確立方法。
  10. 通信装置が提供するサービスを受ける端末において使用されるプログラムであって、
    当該端末と前記通信装置の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定するステップと、
    動的に決定された前記宛先ポート番号を指定した前記要求パケットを生成し、前記通信装置に送信するステップとを前記端末に実行させることを特徴とするプログラム。
  11. 端末に対してサービスを提供する通信装置において使用されるプログラムであって、
    当該通信装置と前記端末の間で共有される共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定するステップと、
    前記サービスポートにおいて前記要求パケットを受信するために待機するステップとを前記通信装置に実行させることを特徴とするプログラム。
  12. 端末が通信装置の提供するサービスを受けるために行う認証方法であって、
    前記端末と前記通信装置の間で共有されるべき共有情報をあらかじめ前記端末と前記通信装置のそれぞれにおいて保持するステップと、
    前記端末が前記共有情報に時刻情報を組み合わせた演算の結果を利用して、前記通信装置にサービスの要求パケットを送信する際の宛先ポート番号を動的に決定し、前記共有情報を含む前記要求パケットを動的に決定された前記通信装置の前記宛先ポート番号に送信するステップと、
    前記通信装置が前記共有情報に時刻情報を組み合わせた演算の結果を利用して、前記端末からサービスの要求パケットを受信する際のサービスポート番号を動的に決定し、前記端末から送信される前記要求パケットを動的に決定された前記サービスポートで受信し、前記要求パケットに含まれる前記端末に保持された共有情報が当該通信端末に保持された共有情報と一致するかどうかを判定するステップとを含むことを特徴とする認証方法。
JP2005229150A 2005-08-08 2005-08-08 端末、通信装置、通信確立方法および認証方法 Expired - Fee Related JP4073931B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005229150A JP4073931B2 (ja) 2005-08-08 2005-08-08 端末、通信装置、通信確立方法および認証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005229150A JP4073931B2 (ja) 2005-08-08 2005-08-08 端末、通信装置、通信確立方法および認証方法

Publications (2)

Publication Number Publication Date
JP2007049262A true JP2007049262A (ja) 2007-02-22
JP4073931B2 JP4073931B2 (ja) 2008-04-09

Family

ID=37851754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005229150A Expired - Fee Related JP4073931B2 (ja) 2005-08-08 2005-08-08 端末、通信装置、通信確立方法および認証方法

Country Status (1)

Country Link
JP (1) JP4073931B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504915A (ja) * 2009-09-09 2013-02-07 クォスモス データネットワーク上での複数のフローを備える通信セッションの管理
WO2020144863A1 (ja) * 2019-01-11 2020-07-16 日本電気株式会社 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム
CN112866173A (zh) * 2019-11-12 2021-05-28 中国电信股份有限公司 防范物联网终端异常连接的方法、系统和终端
WO2021240752A1 (ja) * 2020-05-28 2021-12-02 日本電信電話株式会社 プロトコル識別装置、プロトコル識別方法、及びプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504915A (ja) * 2009-09-09 2013-02-07 クォスモス データネットワーク上での複数のフローを備える通信セッションの管理
WO2020144863A1 (ja) * 2019-01-11 2020-07-16 日本電気株式会社 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム
JPWO2020144863A1 (ja) * 2019-01-11 2021-11-25 日本電気株式会社 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム
JP7230926B2 (ja) 2019-01-11 2023-03-01 日本電気株式会社 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム
CN112866173A (zh) * 2019-11-12 2021-05-28 中国电信股份有限公司 防范物联网终端异常连接的方法、系统和终端
CN112866173B (zh) * 2019-11-12 2023-03-21 中国电信股份有限公司 防范物联网终端异常连接的方法、系统和终端
WO2021240752A1 (ja) * 2020-05-28 2021-12-02 日本電信電話株式会社 プロトコル識別装置、プロトコル識別方法、及びプログラム
JP7380868B2 (ja) 2020-05-28 2023-11-15 日本電信電話株式会社 プロトコル識別装置、プロトコル識別方法、及びプログラム

Also Published As

Publication number Publication date
JP4073931B2 (ja) 2008-04-09

Similar Documents

Publication Publication Date Title
US11936786B2 (en) Secure enrolment of security device for communication with security server
Gupta et al. Security analysis of voice-over-IP protocols
Ristic Bulletproof SSL and TLS: Understanding and deploying SSL/TLS and PKI to secure servers and web applications
JP3890398B2 (ja) ピアツーピア型匿名プロキシにおける安全性の高い匿名通信路の検証及び構築する方法
JP4962117B2 (ja) 暗号通信処理方法及び暗号通信処理装置
KR20030075224A (ko) 무선 환경에서의 네트웍 접근 통제 방법 및 이를 기록한기록매체
JP2007097010A (ja) 接続支援装置およびゲートウェイ装置
MX2012015175A (es) Sistema y metodo para mensajeria segura en una red hibrida entre iguales.
US9882897B2 (en) Method and system for transmitting and receiving data, method and device for processing message
US9300681B2 (en) Method for prefix reachability in a communication system
Petit-Huguenin et al. Session traversal utilities for NAT (STUN)
US20080267395A1 (en) Apparatus and method for encrypted communication processing
WO2009082950A1 (fr) Procédé, dispositif et système de distribution de clés
JP4073931B2 (ja) 端末、通信装置、通信確立方法および認証方法
CN112839062B (zh) 夹杂鉴权信号的端口隐藏方法和装置、设备
JP2006185194A (ja) サーバ装置、通信制御方法及びプログラム
JP4183664B2 (ja) 認証方法、サーバ計算機、クライアント計算機、および、プログラム
JP2008187686A (ja) トンネル通信システム、制御装置およびトンネル通信装置
US11399092B2 (en) Method for preventing sip device from being attacked, calling device, and called device
JP2009038512A (ja) 暗号化情報通信装置、暗号化情報通信システム、暗号化情報通信方法及びプログラム
Cardwell Interpreting Network Protocols
JP2005244573A (ja) ネットワーク接続機器、ネットワーク接続方法、ネットワーク接続用プログラムおよびそのプログラムを記憶した記憶媒体
Zisiadis et al. VIPSec defined
JP2006042208A (ja) 認証機能を備えた通信機器及び通信システム
Aktaş Securing SİP communication for remote access to smart home networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071218

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: 20080122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080123

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

Free format text: PAYMENT UNTIL: 20110201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120201

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120201

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140201

Year of fee payment: 6

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