(57)【要約】本発明はシンクＭＬ同期データを送信するための方法を提供する。１つは、発信側が、送信されるユーザデータを暗号化した後にシンクＭＬメッセージを構成して既存の送信方法でそのデータを送信する。ユーザデータは限定しないが認証情報、端末機能情報および同期されるデータを含む。他の方法は、発信側が、メッセージを送信する前にトランスポート層においてシンクＭＬメッセージを暗号化し、受信側が、トランスポート層から受信したシンクＭＬメッセージを復号化し、続いてメッセージを処理する。２つの方法は別個にまたは一緒に用いることが可能である。これらが一緒に用いられるならば、シンクＭＬ同期データの送信は２重の安全性保証が提供される。本発明を用いることによって、ユーザデータは第三者によって横取りされることなく安全に送信することが可能である。
2008503778.tif 000002
【特許請求の範囲】
【請求項１】
データシンククライアントおよびデータシンクサーバがそれぞれセッション鍵を取得し、かつそれらの間で初期化動作を実行するステップと、
前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信するステップと、
前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行するステップと、
前記データシンククライアントが、同期されるデータがさらに存在するか否か判断し、同期されるデータがさらに存在するならば、前記第２ステップに戻り、すなわち、前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信し、前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行し、前記判断において同期されるデータがさらに存在しないならば、前記データシンククライアントが、前記データシンクサーバに同期完了要求を送信するステップと、
前記データシンククライアントが同期完了の肯定応答を受信した後に現在の手順を終了するステップと、
を含むシンクＭＬ同期データを送信するための方法。
【請求項２】
前記セッション鍵によって暗号化され、かつ前記データシンククライアントによって前記データシンクサーバに送信される前記同期されるデータは、前記同期されるデータに従って計算されたチェックサムをさらに備え、
前記方法は、前記データシンクサーバが、前記同期されるデータを受信した後、前記受信した同期されるデータによってチェックサムを計算し、前記計算されたチェックサムが前記データシンククライアントからのチェックサムと同一であるか否か判断し、同一ならば続く動作を継続し、同一でないならば前記受信した同期されるデータを破棄し、現在の動作を終了し、続く動作を実行するステップをさらに含み、
前記チェックサムは、暗号化されていない前記同期されるデータまたは暗号化された前記同期されるデータに従って計算される請求項１に記載の方法。
【請求項３】
前記データシンククライアントが前記セッション鍵を取得するステップは、前記データシンククライアントが前記セッション鍵を生成して取得するステップを含み、
前記データシンクサーバが前記データシンククライアントによって生成された前記セッション鍵を取得するステップは、
前記データシンクサーバが、前記データシンククライアントからの同期初期化要求を受信した後、前記同期初期化要求が暗号指示子を含むか否か判断し、含むならば続くステップを実行し、含まないならば失敗原因および失敗状態情報を含む同期初期化応答を前記データシンククライアントに送信するステップを含み、前記失敗原因は、前記データシンクサーバが暗号化を要求するが、前記データシンククライアントが前記暗号指示子を送信しないことであり、
前記データシンクサーバが、前記暗号指示子に従って前記同期初期化要求において前記セッション鍵に従うアルゴリズムおよび鍵長をサポートするか否か判断し、サポートするならば前記同期初期化要求における前記セッション鍵を取得および記憶して続く初期化動作を継続し、サポートしないならば失敗原因および失敗状態情報を含む同期初期化応答を前記データシンククライアントに返信するステップをさらに含み、前記失敗原因は、前記データシンクサーバが前記アルゴリズムまたは前記鍵長または前記セッション鍵をサポートしないことである請求項１に記載の方法。
【請求項４】
前記セッション鍵および前記鍵長は、前記データシンククライアントによって送信された前記同期初期化要求内に存在し、前記データシンクサーバは、サポートされる前記セッション鍵および前記鍵長を確認した後、前記同期初期化要求から前記セッション鍵および前記鍵長を直接に取得する請求項３に記載の方法。
【請求項５】
前記データシンククライアントが、予め前記データシンクサーバにおける証明書の公開鍵を取得するステップをさらに含み、
前記セッション鍵は、前記データシンククライアントによって前記公開鍵を用いて暗号化され、前記データシンククライアントによって送信される前記同期初期化要求における暗号として存在し、
前記データシンクサーバは、前記セッション鍵がサポートされることを確認した後、前記データシンククライアントによって生成された前記セッション鍵を取得するために、前記記憶された秘密鍵によって前記同期初期化要求における前記暗号化されたセッション鍵を復号化するステップをさらに含む請求項３に記載の方法。
【請求項６】
前記データシンククライアントは、予め前記証明書をインストールすることよって、またはネットワークから前記証明書をダウンロードすることよって、または前記データシンクサーバと交信することよって、前記データシンクサーバの前記証明書を取得する請求項５に記載の方法。
【請求項７】
前記データシンクサーバが前記データシンククライアントから初期化データを受信する場合、前記初期化データは前記セッション鍵によって暗号化されており、続く動作は、
前記データシンクサーバが、前記取得されたセッション鍵によって前記初期化データを復号化し、初期化動作を実行し、前記データシンククライアントに同期初期化応答を送信するステップを含み、前記同期初期化応答は、前記データシンクサーバが前記セッション鍵の取得に成功したことを示す成功情報と前記セッション鍵によって暗号化された前記データシンクサーバの機器機能情報とを含み、
前記データシンククライアントが、前記同期初期化応答を受信した後、前記生成されたセッション鍵によって前記データシンクサーバの前記機器機能情報を復号化し、前記機器機能情報に従って初期化動作を実行するステップをさらに含む請求項３に記載の方法。
【請求項８】
前記データシンクサーバが前記データシンククライアントから初期化データを受信する場合、前記初期化データは前記セッション鍵によって暗号化されておらず、続く動作は、
前記データシンクサーバが、初期化動作を直接に実行し、前記データシンククライアントに同期初期化応答を送信するステップを含み、前記同期初期化応答は、前記データシンクサーバが前記セッション鍵の取得に成功したことを示す成功情報と暗号化されていない前記データシンクサーバの機器機能情報とを含み、
前記データシンククライアントが、前記同期初期化応答を受信した後、前記データシンクサーバの前記機器機能情報に従って初期化動作を直接に実行するステップをさらに含む請求項３に記載の方法。
【請求項９】
前記データシンククライアントによって前記データシンクサーバに送信される前記初期化データは、前記初期化データのチェックサムをさらに備え、
前記方法は、前記データシンクサーバが、前記初期化データを受信した後、前記受信した初期化データに従ってチェックサムを計算し、前記計算されたチェックサムが前記データシンククライアントからのチェックサムと完全に同一であるか判断し、同一ならば続く動作を継続し、同一でないならば前記受信した初期化データを破棄し、現在の処理を終了し、続く動作を継続するステップをさらに含む請求項７または８に記載の方法。
【請求項１０】
前記初期化データは、認証情報および前記データシンククライアントの機器機能情報を含み、前記認証情報はユーザの証明書を含む請求項７または８に記載の方法。
【請求項１１】
前記初期化データにおける前記認証情報は、平文またはベース６４符号化またはＭＤ５またはハッシュに基づくメッセージ認証コード（ＨＭＡＣ）として存在する請求項１０に記載の方法。
【請求項１２】
前記データシンクサーバが暗号化をサポートするか否か判断し、サポートするならば前記セッション鍵を取得するステップの実行を継続し、サポートしないならば前記データシンククライアントから前記同期初期化要求を受信して暗号指示子が存在するか否かを判断し、存在しないならば既存技術によって動作し、存在するならば前記データシンクサーバが同期初期化応答を返信するステップをさらに含み、
前記同期初期化応答は、前記データシンククライアントへの失敗原因および失敗状態情報を含み、
前記失敗原因は、前記データシンクサーバが暗号要求をサポートしないことである請求項３に記載の方法。
【請求項１３】
前記データシンククライアントが、前記データシンクサーバから前記失敗原因および前記失敗状態情報を含む前記同期初期化応答を受信した後、前記失敗原因において要求された条件を満たすことが可能であるか否か判断し、満たすならば前記データシンククライアントが前記データシンクサーバに同期初期化要求を再送信し、前記同期初期化要求は前記失敗原因における対応する条件を含み、前記判断において満たさないならば前記データシンククライアントは同期初期化要求を送信することを中止し、現在のセッションを終了する請求項３または１２に記載の方法。
【請求項１４】
前記データシンククライアントによって送信される前記同期初期化要求における前記暗号指示子はアルゴリズムの種類および前記セッション鍵の鍵長を指示する請求項３に記載の方法。
【請求項１５】
前記データシンクサーバによって前記データシンククライアントに返信される前記同期初期化応答に含まれる成功または失敗を示す前記状態情報は状態コードの形式で識別される請求項３、７、８、１２のいずれか１項に記載の方法。
【請求項１６】
前記データシンククライアントおよび前記データシンクサーバそれぞれが前記セッション鍵を取得する手順は、前記データシンククライアントおよび前記データシンクサーバの一方が前記セッション鍵を生成し、前記セッション鍵をオフラインネゴシエーションの方法で他方に送信するステップを含む請求項１に記載の方法。
【請求項１７】
前記データシンククライアントは移動端末またはアプリケーションデータシンクサーバである請求項１に記載の方法。
【請求項１８】
前記セッション鍵は対称鍵または非対称鍵である請求項１に記載の方法。
【請求項１９】
発信側が、送信されるシンクＭＬメッセージを構成し、前記シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記カプセル化されたシンクＭＬメッセージを暗号化し、受信側に送信し、
前記受信側が、前記リクエストを受信した後、前記安全な伝送プロトコルによって前記受信されたリクエストを復号化して元のリクエストを取得し、続く動作を実行する請求項１に記載の方法。
【請求項２０】
前記発信側は前記データシンククライアントであり、かつ前記受信側は前記データシンクサーバであるか、または、前記発信側は前記データシンクサーバであり、かつ前記受信側は前記データシンククライアントである請求項１９に記載の方法。
【請求項２１】
前記トランスポート層プロトコルはＨＴＴＰ（Hypertext Transfer Protocol）またはＷＳＰ（Wireless Session Protocol）またはＯＢＥＸ（Object Exchange Protocol）である請求項１９に記載の方法。
【請求項２２】
前記データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳ（Wireless Transport Layer Security）プロトコルであり、前記データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬ（Security Sockets Layer）プロトコルまたはＴＬＳ（Transport Layer Security）プロトコルである請求項１９に記載の方法。
【請求項２３】
発信側が、送信されるシンクＭＬメッセージを構成し、前記シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記カプセル化されたシンクＭＬメッセージを暗号化し、受信側に送信するステップと、
前記受信側が、前記安全な伝送プロトコルによって前記受信されたリクエストを復号化し、続く動作を実行する前に前記復号化されたリクエストをシンクＭＬメッセージに変換するステップと、
を含むシンクＭＬ同期データを送信するための方法。
【請求項２４】
前記発信側はデータシンククライアントであり、かつ前記受信側はデータシンクサーバであるか、または、前記発信側はデータシンクサーバであり、かつ前記受信側はデータシンククライアントである請求項２３に記載の方法。
【請求項２５】
前記トランスポート層プロトコルはＨＴＴＰまたはＷＳＰまたはＯＢＥＸである請求項２３に記載の方法。
【請求項２６】
データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳプロトコルであり、データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬプロトコルまたはＴＬＳプロトコルである請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期マークアップ言語（Synchronization Markup Language）（シンクＭＬ（SyncML））データ同期技術に関し、より詳しくは、シンクＭＬ同期データを送信するための方法に関する。
【背景技術】
【０００２】
複数のプラットフォームおよびネットワークの中で個人情報および企業データの同期を実現するための標準仕様を規定するために、ＩＢＭ、ノキア、パーム、サイオン、等のような多くの企業が２００２年２月に業界標準のシンクＭＬイニシアチブを創設した。シンクＭＬを開発する目的は、端末ユーザ、機器開発者、基本コンポーネント開発者、データプロバイダ、アプリケーションソフトウェアプロバイダ、サービスプロバイダを一緒に協業させ、いつでもどこでもどの端末機器でもどのネットワークデータでもアクセスすることを可能とすることである。シンクＭＬデータ同期の典型的なアプリケーションは、ネットワークサーバと移動機器またはアプリケーションサーバとの間のデータ同期である。その上、シンクＭＬは、例えば、２つのＰＣの間の同等なデータ同期にも用いることが可能である。
【０００３】
ここで説明するクライアントおよびサーバは全てシンクＭＬ技術をサポートするので、全てのシンクＭＬクライアントおよびシンクＭＬサーバは、以下、クライアントおよびサーバと省略する。
【０００４】
図１は、既存技術によってシンクＭＬ同期データを送信する手順を表わす図である。
【０００５】
ステップ１０１〜ステップ１０２：クライアントは、サーバによる認証を要求するサーバへの同期初期化要求を開始する。同期初期化要求は、通常、認証情報およびそれ自身の機器機能情報を含み、認証情報は、通常、ユーザ名およびパスワードを含む。サーバは、認証要求を受信した後、初期化動作を実行し、サーバの機器機能情報とともに認証結果を返信する。そして、クライアントは、サーバの機器機能情報に従って初期化動作を実行する。従って、初期化が完了する。上述した初期化は、ユーザ情報を認証する動作、同期されるデータベースを指定する動作、等を含む。
【０００６】
もちろん、クライアントによってサーバに送信される同期初期化要求が認証情報または機器機能情報を含まないならば、サーバは再び必要とされる情報を送信することをクライアントに要求する。
【０００７】
上記ステップは、相互認証によって全体の同期セッションの初期化フェーズを構成し、例えば、同期されるデータベースをネゴシエーションするために、サポートされる同期の種類、データベース、等、両側の機器機能をネゴシエーションする。
【０００８】
ステップ１０３〜ステップ１０４：クライアントは、同期されるデータを含む同期パッケージをサーバに送信する。サーバは同期パッケージを受信した後、データを同期させ、そして、応答およびサーバの同期されるデータを含むもう１つの同期パッケージをクライアントに送信する。
【０００９】
クライアントはサーバから同期パッケージを受信した後、データを同期させる。後に同期される未処理のデータがまだ存在するならば、ステップ１０３およびステップ１０４は、全ての同期されるデータが処理されるまで繰り返し実行される。
【００１０】
上述したステップは、クライアントとサーバとの間で同期パッケージを交換することによって全体の同期セッションの同期フェーズを構成する。
【００１１】
ステップ１０５〜ステップ１０６：クライアントはサーバに同期完了要求を送信し、サーバは同期セッションが成功で完了したことを確認する肯定応答を返信する。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従って、シンクＭＬ同期データを送信するための既存の方法は次のような短所を有することが容易に理解される。
１）クライアントが認証情報を送信する方法は安全でなく、第三者が容易にそれを横取りすることができる。理由は次の通りである。平文で送信されるならば、横取りされた後に情報を直接に取得することができる。ベース６４符号化モードで送信されるならば、横取りされた後に情報を容易に復号化することができる。ＭＤ５モードについても同様である（米国カリフォルニアで２００４年８月に開催された暗号の国際会議において、攻撃者はＭＤ５を安全でなくするＭＤ５コリジョンを発見できることが証明された）。従って、ＭＤ５モードが採用される場合でも送信はあまり安全でない。
２）ユーザの最も重要な個人データ、すなわち、同期されるデータの保護が存在しない。
３）トランスポート層におけるデータの保護が存在しない。
【課題を解決するための手段】
【００１３】
シンクＭＬ同期データを送信するための方法は、
データシンククライアントおよびデータシンクサーバがそれぞれセッション鍵を取得し、かつそれらの間で初期化動作を実行するステップと、
前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信するステップと、
前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行するステップと、
前記データシンククライアントが、同期されるデータがさらに存在するか否か判断し、同期されるデータがさらに存在するならば、前記第２ステップに戻り、すなわち、前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信し、前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行し、前記判断において同期されるデータがさらに存在しないならば、前記データシンククライアントが、前記データシンクサーバに同期完了要求を送信するステップと、
前記データシンククライアントが同期完了の肯定応答を受信した後に現在の手順を終了するステップと、
を含む。
【００１４】
好ましくは、前記セッション鍵によって暗号化され、かつ前記データシンククライアントによって前記データシンクサーバに送信される前記同期されるデータは、前記同期されるデータに従って計算されたチェックサムをさらに備え、
前記方法は、前記データシンクサーバが、前記同期されるデータを受信した後、前記受信した同期されるデータによってチェックサムを計算し、前記計算されたチェックサムが前記データシンククライアントからのチェックサムと同一であるか否か判断し、同一ならば続く動作を継続し、同一でないならば前記受信した同期されるデータを破棄し、現在の動作を終了し、続く動作を実行するステップをさらに含み、
前記チェックサムは、暗号化されていない前記同期されるデータまたは暗号化された前記同期されるデータに従って計算される。
【００１５】
好ましくは、前記データシンククライアントが前記セッション鍵を取得するステップは、前記データシンククライアントが前記セッション鍵を生成して取得するステップを含み、
前記データシンクサーバが前記データシンククライアントによって生成された前記セッション鍵を取得するステップは、
前記データシンクサーバが、前記データシンククライアントからの同期初期化要求を受信した後、前記同期初期化要求が暗号指示子を含むか否か判断し、含むならば続くステップを実行し、含まないならば失敗原因および失敗状態情報を含む同期初期化応答を前記データシンククライアントに送信するステップを含み、前記失敗原因は、前記データシンクサーバが暗号化を要求するが、前記データシンククライアントが前記暗号指示子を送信しないことであり、
前記データシンクサーバが、前記暗号指示子に従って前記同期初期化要求において前記セッション鍵に従うアルゴリズムおよび鍵長をサポートするか否か判断し、サポートするならば前記同期初期化要求における前記セッション鍵を取得および記憶して続く初期化動作を継続し、サポートしないならば失敗原因および失敗状態情報を含む同期初期化応答を前記データシンククライアントに返信するステップをさらに含み、前記失敗原因は、前記データシンクサーバが前記アルゴリズムまたは前記鍵長または前記セッション鍵をサポートしないことである。
【００１６】
好ましくは、前記セッション鍵および前記鍵長は、前記データシンククライアントによって送信された前記同期初期化要求内に存在し、前記データシンクサーバは、サポートされる前記セッション鍵および前記鍵長を確認した後、前記同期初期化要求から前記セッション鍵および前記鍵長を直接に取得する。
【００１７】
好ましくは、前記方法は、前記データシンククライアントが、予め前記データシンクサーバにおける証明書の公開鍵を取得するステップをさらに含み、
前記セッション鍵は、前記データシンククライアントによって前記公開鍵を用いて暗号化され、前記データシンククライアントによって送信される前記同期初期化要求における暗号として存在し、
前記データシンクサーバは、前記セッション鍵がサポートされることを確認した後、前記データシンククライアントによって生成された前記セッション鍵を取得するために、前記記憶された秘密鍵によって前記同期初期化要求における前記暗号化されたセッション鍵を復号化するステップをさらに含む。
【００１８】
好ましくは、前記データシンククライアントは、予め前記証明書をインストールすることよって、またはネットワークから前記証明書をダウンロードすることよって、または前記データシンクサーバと交信することよって、前記データシンクサーバの前記証明書を取得する。
【００１９】
好ましくは、前記データシンクサーバが前記データシンククライアントから初期化データを受信する場合、前記初期化データは前記セッション鍵によって暗号化されており、続く動作は、
前記データシンクサーバが、前記取得されたセッション鍵によって前記初期化データを復号化し、初期化動作を実行し、前記データシンククライアントに同期初期化応答を送信するステップを含み、前記同期初期化応答は、前記データシンクサーバが前記セッション鍵の取得に成功したことを示す成功情報と前記セッション鍵によって暗号化された前記データシンクサーバの機器機能情報とを含み、
前記データシンククライアントが、前記同期初期化応答を受信した後、前記生成されたセッション鍵によって前記データシンクサーバの前記機器機能情報を復号化し、前記機器機能情報に従って初期化動作を実行するステップをさらに含む。
【００２０】
好ましくは、前記データシンクサーバが前記データシンククライアントから初期化データを受信する場合、前記初期化データは前記セッション鍵によって暗号化されておらず、続く動作は、
前記データシンクサーバが、初期化動作を直接に実行し、前記データシンククライアントに同期初期化応答を送信するステップを含み、前記同期初期化応答は、前記データシンクサーバが前記セッション鍵の取得に成功したことを示す成功情報と暗号化されていない前記データシンクサーバの機器機能情報とを含み、
前記データシンククライアントが、前記同期初期化応答を受信した後、前記データシンクサーバの前記機器機能情報に従って初期化動作を直接に実行するステップをさらに含む。
【００２１】
好ましくは、前記データシンククライアントによって前記データシンクサーバに送信される前記初期化データは、前記初期化データのチェックサムをさらに備え、
前記方法は、前記データシンクサーバが、前記初期化データを受信した後、前記受信した初期化データに従ってチェックサムを計算し、前記計算されたチェックサムが前記データシンククライアントからのチェックサムと完全に同一であるか判断し、同一ならば続く動作を継続し、同一でないならば前記受信した初期化データを破棄し、現在の処理を終了し、続く動作を継続するステップをさらに含む。
【００２２】
好ましくは、前記初期化データは、認証情報および前記データシンククライアントの機器機能情報を含み、前記認証情報はユーザの証明書を含む。
【００２３】
好ましくは、前記初期化データにおける前記認証情報は、平文またはベース６４符号化またはＭＤ５またはハッシュに基づくメッセージ認証コード（ＨＭＡＣ）として存在する。
【００２４】
好ましくは、前記方法は、前記データシンクサーバが暗号化をサポートするか否か判断し、サポートするならば前記セッション鍵を取得するステップの実行を継続し、サポートしないならば前記データシンククライアントから前記同期初期化要求を受信して暗号指示子が存在するか否かを判断し、存在しないならば既存技術によって動作し、存在するならば前記データシンクサーバが同期初期化応答を返信するステップをさらに含み、
前記同期初期化応答は、前記データシンククライアントへの失敗原因および失敗状態情報を含み、
前記失敗原因は、前記データシンクサーバが暗号要求をサポートしないことである。
【００２５】
好ましくは、前記データシンククライアントが、前記データシンクサーバから前記失敗原因および前記失敗状態情報を含む前記同期初期化応答を受信した後、前記失敗原因において要求された条件を満たすことが可能であるか否か判断し、満たすならば前記データシンククライアントが前記データシンクサーバに同期初期化要求を再送信し、前記同期初期化要求は前記失敗原因における対応する条件を含み、前記判断において満たさないならば前記データシンククライアントは同期初期化要求を送信することを中止し、現在のセッションを終了する。
【００２６】
好ましくは、前記データシンククライアントによって送信される前記同期初期化要求における前記暗号指示子はアルゴリズムの種類および前記セッション鍵の鍵長を指示する。
【００２７】
好ましくは、前記データシンクサーバによって前記データシンククライアントに返信される前記同期初期化応答に含まれる成功または失敗を示す前記状態情報は状態コードの形式で識別される。
【００２８】
好ましくは、前記データシンククライアントおよび前記データシンクサーバそれぞれが前記セッション鍵を取得する手順は、前記データシンククライアントおよび前記データシンクサーバの一方が前記セッション鍵を生成し、前記セッション鍵をオフラインネゴシエーションの方法で他方に送信するステップを含む。
【００２９】
好ましくは、前記データシンククライアントは移動端末またはアプリケーションデータシンクサーバである。
【００３０】
好ましくは、前記セッション鍵は対称鍵または非対称鍵である。
【００３１】
好ましくは、前記方法は、発信側が、送信されるシンクＭＬメッセージを構成し、前記シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記カプセル化されたシンクＭＬメッセージを暗号化し、受信側に送信し、
前記受信側が、前記リクエストを受信した後、前記安全な伝送プロトコルによって前記受信されたリクエストを復号化して元のリクエストを取得し、続く動作を実行する。
【００３２】
好ましくは、前記発信側は前記データシンククライアントであり、かつ前記受信側は前記データシンクサーバであるか、または、前記発信側は前記データシンクサーバであり、かつ前記受信側は前記データシンククライアントである。
【００３３】
好ましくは、前記トランスポート層プロトコルはＨＴＴＰ（Hypertext Transfer Protocol）またはＷＳＰ（Wireless Session Protocol）またはＯＢＥＸ（Object Exchange Protocol）である。
【００３４】
好ましくは、前記データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳ（Wireless Transport Layer Security）プロトコルであり、前記データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬ（Security Sockets Layer）プロトコルまたはＴＬＳ（Transport Layer Security）プロトコルである。
【００３５】
シンクＭＬ同期データを送信するためのもう１つの方法は、
発信側が、送信されるシンクＭＬメッセージを構成し、前記シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記カプセル化されたシンクＭＬメッセージを暗号化し、受信側に送信するステップと、
前記受信側が、前記安全な伝送プロトコルによって前記受信されたリクエストを復号化し、続く動作を実行する前に前記復号化されたリクエストをシンクＭＬメッセージに変換するステップと、
を含む。
【００３６】
好ましくは、前記発信側はデータシンククライアントであり、かつ前記受信側はデータシンクサーバであるか、または、前記発信側はデータシンクサーバであり、かつ前記受信側はデータシンククライアントである。
【００３７】
好ましくは、前記トランスポート層プロトコルはＨＴＴＰまたはＷＳＰまたはＯＢＥＸである。
【００３８】
好ましくは、データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳプロトコルであり、データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬプロトコルまたはＴＬＳプロトコルである。
【００３９】
本発明の実施形態において、データシンクサーバ（Data Sync Server）およびデータシンククライアント（Data Sync Client）はオフラインネゴシエーションまたはオンラインネゴシエーションによってセッション鍵を取得することが可能であり、さらに、データシンクサーバとデータシンククライアントとの間の初期化動作が完了した後、発信側は、同期されるデータを受信側に送信する前に、セッション鍵によって同期されるデータを暗号化し、受信側は、同期動作の前に、セッション鍵によって受信されたデータを復号化し、そして、セッション鍵によってそれ自身の同期されるデータを暗号化して発信側にそのデータを送信する。上記ステップは全ての同期されるデータが処理されるまで、繰り返される。最後に、データシンクサーバおよびデータシンククライアントが完了を確認した後、手順が終了する。本発明の実施形態を適用することによって、ユーザデータは第三者によって横取りされることなく安全に送信することが可能であり、暗号化の要求が満たされる。同時に、本発明の実施形態はシンクＭＬシステムの完全性および合理性を最大限保証する。
【００４０】
さらに、データシンククライアントとデータシンクサーバとの間で送信されるデータは、初期化データおよび同期されるデータを含み、さらに、送信されるデータの安全性を保証し、かつ第三者による改竄を防止するために、続く動作の前にそれぞれ完全性検証を行うことが可能である。
【００４１】
さらに、データシンククライアントは、データシンクサーバにセッション鍵を送信する前に、データシンクサーバの証明書における公開鍵によってセッション鍵を暗号化することが可能である。一方、データシンクサーバは、その秘密鍵で復号化した後にのみ、セッション鍵を取得することが可能である。証明書のメカニズムによって、データシンククライアントとデータシンクサーバとの間の通信が信頼できることが保証される。同時に、鍵を安全に送信する課題は、非対称暗号技術によって十分に解決される。この方法において、各同期動作は異なるセッション鍵を利用することが可能であり、これはユーザデータとともにセッション鍵の安全性を大きく向上させることが可能である。
【００４２】
さらに、ユーザデータを暗号化するために用いられるセッション鍵は、任意のアルゴリズム、例えば、ＡＥＳ（Advanced Encryption Standard）暗号アルゴリズム、ＲＣ４に基づく暗号アルゴリズム、他の対称暗号アルゴリズムとすることが可能であり、これらは（限定しないが、携帯電話、ＰＤＡ、高機能携帯電話、ＰＣクライアント、等を含む）大多数の端末でサポートされている。さらに、暗号アルゴリズムは、それらの実装を簡単にするために、端末において限られたメモリおよび処理能力で十分に動作することが可能である。同時に、暗号アルゴリズムの種類は拡張可能であり、かつ鍵長は設定可能でありので、異なるアプリケーションシナリオにおいて各種の安全性の優先度を提供することが可能である。
【００４３】
さらに、安全性のメカニズムは、トランスポート層におけるシンクＭＬ同期データの安全性を保証するために、本発明におけるシンクＭＬ同期データについてトランスポート層においても提供される。さらに、トランスポート層における暗号化およびユーザデータの暗号化は、同時に提供することが可能であり、シンクＭＬ同期データは２重の安全性保証のもとで送信される。
【発明を実施するための最良の形態】
【００４４】
以下、添付図面を参照して本発明を説明する。
本発明は、主として、２つの送信方法を提供する。１つは、発信側が同期されるユーザデータを暗号化してシンクＭＬメッセージを構成し、そして、既存技術によってデータを送信する。ユーザデータは、限定しないが、認証情報、機器機能情報および同期されるデータを含む。他は、発信側が、トランスポート層において送信されるシンクＭＬメッセージを送信される前に暗号化し、受信者は、続く処理の前に受信したトランスポート層のシンクＭＬメッセージを復号化する。
【００４５】
発信側がシンクＭＬメッセージを構成する前に同期されるデータを暗号化し、そして既存技術によってデータを送信する第１の方法を以下で説明する。
【００４６】
図２は、本発明の実施形態によるシンクＭＬ同期データを送信する手順を表わす図である。本実施形態において、データシンクサーバは、データシンククライアントからのユーザデータが暗号化され、かつデータシンククライアントがデータシンクサーバの証明書をプリインストールしたか、またはネットワークからダウンロードしたことを必要とする。証明書は非対称鍵であり、その公開鍵はデータシンククライアントによる暗号化のために用いられ、秘密鍵はデータシンクサーバによる復号化のために用いられ、それによって、データシンクサーバは要求しているデータシンククライアントが信頼できると判断し、データシンククライアントの証明書を要求しない。
【００４７】
ステップ２０１：データシンクサーバの証明書がインストールされ、かつ証明書がまだ有効期限内にあることを確認した後、データシンククライアントはユーザデータを暗号化するためのセッション鍵を生成し、そのユーザデータは初期化データおよび同期されるデータを含む。その後、データシンククライアントは証明書の公開鍵によって、生成されたセッション鍵を暗号化する、そして、生成されたセッション鍵によって、送信される初期化データを暗号化する。その初期化データは認証情報およびデータシンククライアントの機器情報、等を含む。ここで、認証情報はユーザ名およびパスワードを含む。
【００４８】
本実施形態において、ユーザデータを暗号化するためにデータシンククライアント自身によって生成された上述したセッション鍵は対称鍵であり、その暗号アルゴリズムは、ＡＥＳ暗号アルゴリズム、ＲＣ４に基づく暗号アルゴリズム、または他の対称暗号アルゴリズムとすることが可能であり、鍵長は９６ビットである。もちろん、実際のアプリケーションにおいて、セッション鍵のアルゴリズムは上記に限定されず、既存のどのような暗号アルゴリズムも同様に用いることが可能である。
【００４９】
もちろん、セッション鍵は非対称のものとすることも可能であり、対応する非対称暗号アルゴリズムによってデータが暗号化されるべきである。さらに、セッション鍵は全く暗号化されずに直接にデータシンクサーバに送信することも可能であるが、そのような種類のセッション鍵は安全性が貧弱で第三者によって容易に横取りされうる。
【００５０】
ステップ２０２：データシンククライアントは、データシンクサーバに同期初期化要求を送信する。ここで、この要求は、暗号指示子、データシンクサーバの証明書の公開鍵によって暗号化されたセッション鍵およびセッション鍵によって暗号化された初期化データを含む。上述した暗号指示子は、同期初期化要求において送信され、セッション鍵に従うアルゴリズムおよび鍵長を指示する。
【００５１】
ステップ２０３：データシンクサーバはデータシンククライアントから同期初期化要求を受信する。暗号指示子が検出されるならば、データシンクサーバはその設定に従うセッション鍵をサポートするか否か、すなわち、セッション鍵に従うアルゴリズムおよび鍵長をサポートするか否か判断する。サポートするならば、データシンクサーバは、それ自身の秘密鍵で、暗号化されたセッション鍵を復号化し、復号化されたセッション鍵を取得および記憶し、ステップ２０４に進む。サポートしないならば、データシンククライアントに失敗原因とともに同期初期化応答を返信し、データシンククライアントに再初期化を要求する。この失敗原因は、データシンクサーバがアルゴリズム、または鍵長、またはセッション鍵をサポートしないことを示し、一方、この失敗原因はさらにデータシンクサーバによって要求されたアルゴリズムおよび／または鍵長を指示することも可能である。
【００５２】
このステップにおいて、データシンクサーバは、データシンククライアントからの同期初期化要求において暗号指示子が存在しないことを検出すると、データシンククライアントに失敗原因とともに同期初期化応答を直接に返信する。ここで、失敗原因は、データシンクサーバが暗号化を要求したが、データシンククライアントが暗号指示子を送信しなかったことであり、この応答は、データシンクサーバによってサポートされるアルゴリズムおよび／または鍵長をさらに含むことも可能である。
【００５３】
データシンククライアントは、同期初期化要求への失敗応答を受信すると、失敗原因において要求された条件を満たすことができるか否かを判断する。満たすならば、データシンククライアントは、失敗原因において要求された対応する条件を含む同期初期化要求をデータシンクサーバに再送信する。満たさないならば、データシンククライアントは、データシンクサーバに同期初期化要求を送信することを中止し、現在のセッションを終了する。
【００５４】
ステップ２０４：データシンクサーバは初期化動作の実行を継続する。これは、データシンクサーバが、受信されたセッション鍵によってデータシンククライアントからの初期化データを復号化し、復号化されたデータを用いて続く動作を継続することを意味する。その後、データシンクサーバはクライアントに成功の応答を返信する。これは、データシンクサーバがセッション鍵の受信に成功したという情報およびセッション鍵によって暗号化されたデータシンクサーバの機器機能情報を含む。
【００５５】
上述した同期初期化要求への成功の応答を受信した後、データシンククライアントは、それ自身によって生成されたセッション鍵によってデータシンクサーバの機器機能情報を復号化し、そして、データシンクサーバの機器機能情報に従って初期化動作を継続する。
【００５６】
データシンクサーバおよびデータシンククライアントが全ての初期化動作を実行すると、同期初期化フェーズが完了する。
【００５７】
ステップ２０５：データシンククライアントは、それ自身によって生成されたセッション鍵を用いて同期されるデータを暗号化し、そして、データシンクサーバに同期要求を送信する。ここで、この要求は暗号化された同期されるデータを含む。
【００５８】
ステップ２０６：ステップ２０５において要求を受信した後、データシンクサーバは、同期動作の前に、まず、セッション鍵を用いて同期されるデータを復号化し、そして、セッション鍵によって暗号化されたデータシンクサーバの同期されるデータを含む同期応答をデータシンククライアントに送信する。
【００５９】
ステップ２０６において応答を受信した後、データシンククライアントは、同期動作の前に、まず、セッション鍵を用いて同期されるデータを復号化し、同期されるデータがまだ存在するならば、全てのデータが処理されるまで同期フェーズは終了しない。同期されるデータが存在しないならば、同期完了フェーズを開始するためにステップ２０７が実行される。
【００６０】
ステップ２０５〜２０６は、完全性検証動作をさらに含むことも可能である。すなわち、セッション鍵によって暗号化され、かつデータシンククライアントによってデータシンクサーバに送信される同期されるデータは、同期されるデータに従って計算されたチェックサムをさらに含むことも可能である。このチェックサムは暗号化されていない同期されるデータまたは暗号化された同期されるデータのいずれかに従って計算することが可能である。データシンクサーバが同期データを受信した後、ステップ２０５〜２０６は、受信した同期されるデータに従ってチェックサムを計算し、計算されたチェックサムがデータシンククライアントからのチェックサムと完全に同一であるか否か判断し、同一ならば続く動作を継続し、同一でないならば、受信したデータを破棄し、現在の動作を終了し、続く動作を継続する処理をさらに含む。従って、データシンククライアントは、第三者による改竄を防止し、さらなる安全性を保証するために、データシンクサーバからの同期されるデータの完全性を検証することも可能である。
【００６１】
ステップ２０７〜ステップ２０８：データシンククライアントは、データシンクサーバに同期完了要求を送信し、データシンクサーバは、完了を確認した後、データシンククライアントに同期完了の肯定応答を返信する。
【００６２】
ここまででシンクＭＬ同期データ送信は完了する。データシンククライアントとデータシンクサーバとの間のシンクＭＬ同期データはＨＴＴＰ、ＯＢＥＸまたはＷＳＰまたは他のプロトコルのサポートのもとで送信され、トランスポート層における送信は既存技術と同様である。
【００６３】
図２に表わされている実施形態について、初期化データを暗号化せず、セッション鍵を用いて、同期されるデータのみ暗号化することは実現可能である。その結果として、ステップ２０２において、データシンククライアントによってデータシンクサーバに送信される同期初期化要求は、暗号指示子、データシンクサーバの証明書の公開鍵によって暗号化されたセッション鍵、復号化された同期データを含む。データシンククライアントからの同期初期化要求を受信し、かつセッション鍵および鍵長がサポートされると判断した後、データシンクサーバは初期化動作を直接に実行する。その後、データシンクサーバがセッション鍵の受信に成功したことについての情報を含む同期初期化応答をデータシンククライアントに送信する。従って、上記応答を受信した後、データシンククライアントは、データシンクサーバの機器機能情報に従って初期化動作を実行する。言い換えると、初期化データ、すなわち、認証データおよび機器機能情報データの暗号処理はオプションである。
【００６４】
さらに、セッション鍵のネゴシエーション手順は、オンラインネゴシエーションまたはオフラインネゴシエーションのいずれかとすることが可能であり、ここでは規定しない。さらに、データシンクサーバがセッション鍵を生成し、それをデータシンククライアントに送信することも可能である（このモードはほとんど使用されない）。すなわち、シンクＭＬデータシンクサーバおよびシンクＭＬデータシンククライアントの一方がセッション鍵を生成し、オフラインまたはオンラインネゴシエーションによって他方に鍵を送信することが可能である。
【００６５】
同様に、初期化データが暗号化されている、暗号化されていない、のいずれにしても、初期化データへの完全性検証動作を実行することが可能である。この手順は、データシンククライアントによってシンクＭＬデータシンクサーバに送信される初期化データは、初期化データのチェックサムをさらに備え、初期化データを受信した後、データシンクサーバは、受信した初期化データに従ってチェックサムを計算し、計算されたチェックサムがデータシンククライアントからのチェックサムと完全に同一であるか否か判断し、同一ならば続く動作を継続し、同一でないならば、この受信したデータを破棄し、現在の動作を終了する。この状況下で、初期化データが暗号化されていないと、上記チェックサムは暗号化されていない初期化データに従って計算され、初期化データが暗号化されていると、上記チェックサムは暗号化されていない初期化データまたは暗号化された初期化データのいずれかに従って計算することが可能である。
【００６６】
図２に表わされている実施形態について、データシンククライアントは、同期初期化要求を送信する前に、データシンクサーバの証明書を要求するためにデータシンクサーバに直接にメッセージを送信すること、その代わりにデータシンクサーバの証明書をプリインストールまたはダウンロードすることが可能である。もちろん、データシンクサーバは、データシンククライアントが信頼できないと判断し、データシンククライアントの証明書を要求することが可能である。データシンクサーバの証明書およびデータシンククライアントの証明書の両方は有効期限を有し、有効期限が切れると証明書は自動的に無効となり、データシンククライアント／データシンクサーバは証明書を再設定する必要があり、その安全性はさらに保証される。
【００６７】
図２に表わされている実施形態におけるセッション鍵は、任意の種類の対称アルゴリズムを用いた対称鍵、または、任意の種類の非対称アルゴリズムを用いた非対称鍵とすることが可能である。非対称鍵の場合、セッション鍵は２組の非対称鍵によって構成されるべきであり、１組はデータシンクサーバによって生成され、秘密鍵はデータシンクサーバに記憶され、公開鍵はデータシンククライアントに公表される。他の組はデータシンククライアントによって生成され、秘密鍵はデータシンククライアントに記憶され、公開鍵はデータシンクサーバに公表される。同期は双方向であるので、公開鍵は暗号化のためにのみ用いられ、秘密鍵は復号化のためにのみ用いられることを意味し、データシンククライアントとデータシンクサーバとの間で送信されるデータを暗号化／復号化するために２組が存在しなければならない。
【００６８】
上述した実施形態において、データシンククライアントはユーザデータを暗号化することを要求し、データシンクサーバはデータシンククライアントからの暗号化されたユーザデータを要求する。データシンククライアントがユーザデータを暗号化することを要求し、データシンクサーバは暗号化をサポートしないならば、暗号指示子を含む要求をデータシンククライアントから受信すると、データシンクサーバは暗号指示子のない要求を必要とするために、データシンクサーバはデータシンククライアントに初期化失敗応答を返信する。データシンククライアントがユーザデータを暗号化することを要求せず、データシンクサーバがデータシンククライアントからのユーザデータが暗号化されていることを要求するならば、データシンククライアントから暗号指示子のない要求を受信すると、データシンクサーバが暗号指示子を有する要求を必要とするために、データシンクサーバはデータシンククライアントに初期化失敗応答を返信する。データシンククライアントがユーザデータを暗号化することを要求せず、データシンクサーバがデータシンククライアントからのユーザデータが暗号化されていることを要求しないならば、続く動作は既存技術と全く同一であり、既存技術の解決策が採用される。
【００６９】
データシンクサーバからの失敗情報を含む同期初期化応答を受信すると、データシンククライアントは失敗原因において要求された条件を満たすことが可能であるか否か判断し、可能であるならば、データシンククライアントは失敗原因における対応する条件を含む同期初期化要求をデータシンクサーバに再送信し、可能でないならば、データシンククライアントはデータシンクサーバに同期初期化要求の送信を中止し、現在の手順を終了する。
【００７０】
上述した実施形態において、データシンクサーバによってデータシンククライアントに送信された応答における状態情報、すなわち、成功または失敗の状態情報は、状態コードによって識別することが可能であり、状態コードと状態情報との間の関係をマッピングすることは、実際のアプリケーションにおける固有の必要性に従って設定することが可能であり、ここでは限定しない。
【００７１】
データシンククライアントとデータシンクサーバとの間で交流する各種の要求および応答のような全てのメッセージは、全て既存のシンクＭＬプロトコルに基づくシンクＭＬメッセージであり、トランスポート層における送信方法は既存技術におけるものと全く同一である。
【００７２】
さらに、特定されるもう１つの状態が存在する。データシンククライアントおよびデータシンクサーバが初期化フェーズにおいて互いに認証するとき、データシンクサーバは既存の認証方法またはＨＭＡＣに基づく方法のいずれかによってデータシンククライアントを認証することが可能である。ここで、ＨＭＡＣに基づく方法の採用は、要求するデータシンククライアントが合法的であることを保証することが可能である。特定のアプリケーションについて、認証のためにＨＭＡＣ−ＭＤ５またはＨＭＡＣ−ＳＨＡ１の方法を採用することが可能である。さらにデータシンクサーバがデータシンククライアントを認証するためにＨＭＡＣに基づく方法を採用するとき、同期されるデータを送信する続く処理において、データを暗号化するか、または暗号化せずに既存技術と全く同様に送信することが可能である。
【００７３】
トランスポート層において暗号化されたデータを送信するための方法を以下で説明する。
図３は、本発明において暗号化された後にトランスポート層においてシンクＭＬ同期データを送信する手順を表わす図である。本実施形態において、トランスポート層の伝送プロトコルとしてＨＴＴＰを採用する。
【００７４】
ステップ３０１：シンクＭＬメッセージを構成した後、発信側はシンクＭＬメッセージをＨＴＴＰリクエストに変換する。
ステップ３０２：発信側は、安全な伝送プロトコルによってステップ３０１におけるシンクＭＬのリクエストを暗号化し、そして、暗号化されたＨＴＴＰリクエストを受信側に送信する。
ステップ３０３：ステップ３０２におけるリクエストを受信した後、受信側は、安全な伝送プロトコルによってリクエストを復号化し、続く動作の前に、復号化されたＨＴＴＰリクエストをシンクＭＬメッセージに変換する。
【００７５】
シンクＭＬのトランスポート層においてＨＴＴＰプロトコルを用いた例に基づく上記の例の他に、ＯＢＥＸ、ＷＳＰおよび他のプロトコルもトランスポート層において利用可能である。上述した発信側はデータシンククライアントであり、かつ受信側はデータシンクサーバであるか、または、発信側はデータシンクサーバであり、かつ受信側はデータシンククライアントである。
【００７６】
データシンククライアントが移動端末、すなわち、携帯電話ならば、採用される安全な伝送プロトコルはＷＴＬＳであり、データシンククライアントが固定端末、すなわち、ＰＣ端末ならば、採用される安全な伝送プロトコルはＳＳＬプロトコルまたはＴＬＳプロトコルである。
【００７７】
トランスポート層のデータを暗号化する上述した送信方法は、送信されるデータを暗号化する方法と別個に、または一緒に採用することが可能である。それらが一緒に用いられるならば、シンクＭＬ同期データの送信は、２重の安全性保証を提供される。言い換えれば、トランスポート層が暗号化されるか、または、アプリケーションレベル（シンクＭＬメッセージヘッダまたはメッセージ本体を意味し、メッセージ本体は同期される複数のデータ部分を含みうる）およびオブジェクトレベル（同期されるデータの特定の部分を意味する）が暗号化されるかのいずれかである。
【００７８】
２重の安全性保証を提供するために、データシンクサーバおよびデータシンククライアントの両方は、トランスポート層の同期およびアプリケーションレベルの同期についての暗号化をサポートしなければならない。データシンククライアントがトランスポート層の同期についての暗号化ではなくアプリケーションレベルの同期についての暗号化のみをサポートするならば、送信されるユーザデータのみ暗号化され、それは、アプリケーションレベルおよびオブジェクトレベルが暗号化されることを意味する。従って、鍵および鍵長のネゴシエーションのような動作が必要である。データシンククライアントがトランスポート層についての暗号化のみをサポートするならば、トランスポート層を暗号化する方法のみ採用することが可能である。
【００７９】
本発明におけるシンクＭＬデータシンククライアントは移動端末またはアプリケーションデータシンクサーバである。
【００８０】
本発明は好ましい実施形態を参照して説明されたが、その実施形態に限定されない。この技術分野の当業者は、本発明の範囲から逸脱することなく各種の変更が可能であり、均等物で代替可能であることを理解する。
【図面の簡単な説明】
【００８１】
【図１】既存技術によってシンクＭＬ同期データを送信する手順を表わす図である。
【図２】本発明の実施形態によるシンクＭＬ同期データを送信する手順を表わす図である。
【図３】本発明においてシンクＭＬ同期データを送信するときのトランスポート層の動作手順を表わす図である。
【図１】
2008503778.tif 000003
【図２】
2008503778.tif 000004
【図３】
2008503778.tif 000005
【手続補正書】
【提出日】平成18年12月25日(2006.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データシンククライアントおよびデータシンクサーバがそれぞれセッション鍵を取得し、かつそれらの間で初期化動作を実行するステップと、
前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信するステップと、
前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行するステップと、
前記データシンククライアントが、前記データシンクサーバに同期完了要求を送信するステップと、
前記データシンククライアントが同期完了の肯定応答を受信した後に現在の手順を終了するステップと、
を含むシンクＭＬ同期データを送信するための方法。
【請求項２】
前記データシンククライアントが、前記データシンクサーバに同期完了要求を送信するステップの前に、前記データシンククライアントが、同期されるデータがさらに存在するか否か判断し、同期されるデータがさらに存在するならば、前記第２ステップに戻り、すなわち、前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信し、前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行するステップをさらに含む請求項１に記載の方法。
【請求項３】
前記セッション鍵によって暗号化され、かつ前記データシンククライアントによって前記データシンクサーバに送信される前記同期されるデータは、前記同期されるデータに従って計算されたチェックサムをさらに備え、
前記方法は、前記データシンクサーバが、前記同期されるデータを受信した後、前記受信した同期されるデータによってチェックサムを計算し、前記計算されたチェックサムが前記データシンククライアントからのチェックサムと同一であるか否か判断し、同一ならば続く動作を継続し、同一でないならば前記受信した同期されるデータを破棄し、現在の動作を終了し、続く動作を実行するステップをさらに含み、
前記チェックサムは、暗号化されていない前記同期されるデータまたは暗号化された前記同期されるデータに従って計算される請求項１に記載の方法。
【請求項４】
前記データシンククライアントが前記セッション鍵を取得するステップは、前記データシンククライアントが前記セッション鍵を生成して取得するステップを含み、
前記データシンクサーバが前記データシンククライアントによって生成された前記セッション鍵を取得するステップは、
前記データシンクサーバが、前記データシンククライアントからの同期初期化要求を受信した後、前記同期初期化要求が暗号指示子を含むか否か判断し、含むならば続くステップを実行し、含まないならば失敗原因および失敗状態情報を含む同期初期化応答を前記データシンククライアントに送信するステップを含み、前記失敗原因は、前記データシンクサーバが暗号化を要求するが、前記データシンククライアントが前記暗号指示子を送信しないことであり、
前記データシンクサーバが、前記暗号指示子に従って前記同期初期化要求において前記セッション鍵に従うアルゴリズムおよび鍵長をサポートするか否か判断し、サポートするならば前記同期初期化要求における前記セッション鍵を取得および記憶して続く初期化動作を継続し、サポートしないならば失敗原因および失敗状態情報を含む同期初期化応答を前記データシンククライアントに返信するステップをさらに含み、前記失敗原因は、前記データシンクサーバが前記アルゴリズムまたは前記鍵長または前記セッション鍵をサポートしないことである請求項１に記載の方法。
【請求項５】
前記セッション鍵および前記鍵長は、前記データシンククライアントによって送信された前記同期初期化要求内に存在し、前記データシンクサーバは、サポートされる前記セッション鍵および前記鍵長を確認した後、前記同期初期化要求から前記セッション鍵および前記鍵長を直接に取得する請求項４に記載の方法。
【請求項６】
前記データシンククライアントが、予め前記データシンクサーバにおける証明書の公開鍵を取得するステップをさらに含み、
前記セッション鍵は、前記データシンククライアントによって前記公開鍵を用いて暗号化され、前記データシンククライアントによって送信される前記同期初期化要求における暗号として存在し、
前記データシンクサーバは、前記セッション鍵がサポートされることを確認した後、前記データシンククライアントによって生成された前記セッション鍵を取得するために、前記記憶された秘密鍵によって前記同期初期化要求における前記暗号化されたセッション鍵を復号化するステップをさらに含む請求項４に記載の方法。
【請求項７】
前記データシンククライアントは、予め前記証明書をインストールすることよって、またはネットワークから前記証明書をダウンロードすることよって、または前記データシンクサーバと交信することよって、前記データシンクサーバの前記証明書を取得する請求項６に記載の方法。
【請求項８】
前記データシンクサーバが前記データシンククライアントから初期化データを受信する場合、前記初期化データは前記セッション鍵によって暗号化されており、続く動作は、
前記データシンクサーバが、前記取得されたセッション鍵によって前記初期化データを復号化し、初期化動作を実行し、前記データシンククライアントに同期初期化応答を送信するステップを含み、前記同期初期化応答は、前記データシンクサーバが前記セッション鍵の取得に成功したことを示す成功情報と前記セッション鍵によって暗号化された前記データシンクサーバの機器機能情報とを含み、
前記データシンククライアントが、前記同期初期化応答を受信した後、前記生成されたセッション鍵によって前記データシンクサーバの前記機器機能情報を復号化し、前記機器機能情報に従って初期化動作を実行するステップをさらに含む請求項４に記載の方法。
【請求項９】
前記データシンクサーバが前記データシンククライアントから初期化データを受信する場合、前記初期化データは前記セッション鍵によって暗号化されておらず、続く動作は、
前記データシンクサーバが、初期化動作を直接に実行し、前記データシンククライアントに同期初期化応答を送信するステップを含み、前記同期初期化応答は、前記データシンクサーバが前記セッション鍵の取得に成功したことを示す成功情報と暗号化されていない前記データシンクサーバの機器機能情報とを含み、
前記データシンククライアントが、前記同期初期化応答を受信した後、前記データシンクサーバの前記機器機能情報に従って初期化動作を直接に実行するステップをさらに含む請求項４に記載の方法。
【請求項１０】
前記データシンククライアントによって前記データシンクサーバに送信される前記初期化データは、前記初期化データのチェックサムをさらに備え、
前記方法は、前記データシンクサーバが、前記初期化データを受信した後、前記受信した初期化データに従ってチェックサムを計算し、前記計算されたチェックサムが前記データシンククライアントからのチェックサムと完全に同一であるか判断し、同一ならば続く動作を継続し、同一でないならば前記受信した初期化データを破棄し、現在の処理を終了し、続く動作を継続するステップをさらに含む請求項８または９に記載の方法。
【請求項１１】
前記初期化データは、認証情報および前記データシンククライアントの機器機能情報を含み、前記認証情報はユーザの証明書を含む請求項８または９に記載の方法。
【請求項１２】
前記データシンクサーバが暗号化をサポートするか否か判断し、サポートするならば前記セッション鍵を取得するステップの実行を継続し、サポートしないならば前記データシンククライアントから前記同期初期化要求を受信して暗号指示子が存在するか否かを判断し、存在しないならば既存技術によって動作し、存在するならば前記データシンクサーバが同期初期化応答を返信するステップをさらに含み、
前記同期初期化応答は、前記データシンククライアントへの失敗原因および失敗状態情報を含み、
前記失敗原因は、前記データシンクサーバが暗号要求をサポートしないことである請求項４に記載の方法。
【請求項１３】
前記データシンククライアントが、前記データシンクサーバから前記失敗原因および前記失敗状態情報を含む前記同期初期化応答を受信した後、前記失敗原因において要求された条件を満たすことが可能であるか否か判断し、満たすならば前記データシンククライアントが前記データシンクサーバに同期初期化要求を再送信し、前記同期初期化要求は前記失敗原因における対応する条件を含み、前記判断において満たさないならば前記データシンククライアントは同期初期化要求を送信することを中止し、現在のセッションを終了する請求項４または１２に記載の方法。
【請求項１４】
前記データシンククライアントによって送信される前記同期初期化要求における前記暗号指示子はアルゴリズムの種類および前記セッション鍵の鍵長を指示する請求項４に記載の方法。
【請求項１５】
前記データシンククライアントおよび前記データシンクサーバそれぞれが前記セッション鍵を取得する手順は、前記データシンククライアントおよび前記データシンクサーバの一方が前記セッション鍵を生成し、前記セッション鍵をオフラインネゴシエーションの方法で他方に送信するステップを含む請求項１に記載の方法。
【請求項１６】
前記セッション鍵は対称鍵または非対称鍵である請求項１に記載の方法。
【請求項１７】
発信側が、送信されるシンクＭＬメッセージを構成し、前記シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記カプセル化されたシンクＭＬメッセージを暗号化し、受信側に送信し、
前記受信側が、前記リクエストを受信した後、前記安全な伝送プロトコルによって前記受信されたリクエストを復号化して元のリクエストを取得し、続く動作を実行する請求項１に記載の方法。
【請求項１８】
前記発信側は前記データシンククライアントであり、かつ前記受信側は前記データシンクサーバであるか、または、前記発信側は前記データシンクサーバであり、かつ前記受信側は前記データシンククライアントである請求項１７に記載の方法。
【請求項１９】
前記データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳ（Wireless Transport Layer Security）プロトコルであり、前記データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬ（Security Sockets Layer）プロトコルまたはＴＬＳ（Transport Layer Security）プロトコルである請求項１７に記載の方法。
【請求項２０】
発信側が、送信されるシンクＭＬメッセージを構成し、前記シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記カプセル化されたシンクＭＬメッセージを暗号化し、受信側に送信するステップと、
前記受信側が、前記安全な伝送プロトコルによって前記受信されたリクエストを復号化し、続く動作を実行する前に前記復号化されたリクエストをシンクＭＬメッセージに変換するステップと、
を含むシンクＭＬ同期データを送信するための方法。
【請求項２１】
前記発信側はデータシンククライアントであり、かつ前記受信側はデータシンクサーバであるか、または、前記発信側はデータシンクサーバであり、かつ前記受信側はデータシンククライアントである請求項２０に記載の方法。
【請求項２２】
データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳプロトコルであり、データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬプロトコルまたはＴＬＳプロトコルである請求項２０に記載の方法。
【請求項２３】
データシンククライアントが第１セッション鍵を取得し、かつデータシンクサーバが第２セッション鍵を取得するステップと、
前記データシンククライアントが前記第１セッション鍵によって前記データシンククライアントの同期されるデータを暗号化し、前記暗号化されたデータを前記データシンクサーバに送信するステップと、
前記データシンクサーバが前記暗号化されたデータを受信すると、前記第２セッション鍵によって前記暗号化されたデータを復号化し、同期動作を実行するステップと、
前記データシンクサーバが前記第２セッション鍵によって前記データシンクサーバの同期されるデータを暗号化し、前記暗号化されたデータを前記データシンククライアントに送信するステップと、
前記データシンククライアントが前記暗号化されたデータを受信すると、前記第１セッション鍵によって前記暗号化されたデータを復号化し、同期動作を実行するステップと、
を含むシンクＭＬ同期データを送信するための方法。
【請求項２４】
発信側が、シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記リクエストを暗号化し、前記リクエストを送信するステップと、
受信側が、前記リクエストを受信すると、前記安全な伝送プロトコルによって前記リクエストを復号化し、前記復号化されたリクエストを前記シンクＭＬメッセージに変換するステップと、
を含むシンクＭＬ同期データを送信するための方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
シンクＭＬ同期データを送信するための方法は、
データシンククライアントおよびデータシンクサーバがそれぞれセッション鍵を取得し、かつそれらの間で初期化動作を実行するステップと、
前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信するステップと、
前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行するステップと、
前記データシンククライアントが、前記データシンクサーバに同期完了要求を送信するステップと、
前記データシンククライアントが同期完了の肯定応答を受信した後に現在の手順を終了するステップと、
を含む。
前記データシンククライアントが、前記データシンクサーバに同期完了要求を送信するステップの前に、前記データシンククライアントが、同期されるデータがさらに存在するか否か判断し、同期されるデータがさらに存在するならば、前記第２ステップに戻り、すなわち、前記データシンクサーバが、前記セッション鍵によって暗号化された前記データシンククライアントからの同期されるデータを受信し、前記取得したセッション鍵によって前記同期されるデータを復号化して同期動作を実行し、前記セッション鍵を用いて前記データシンクサーバ自身の同期されるデータを暗号化し、前記暗号化された同期されるデータを前記データシンククライアントに送信し、前記データシンククライアントが、前記データシンクサーバからの同期されるデータを受信し、前記セッション鍵によって前記同期されるデータを復号化し、同期動作を実行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
好ましくは、データシンククライアントが移動端末ならば、採用される安全な伝送プロトコルはＷＴＬＳプロトコルであり、データシンククライアントが固定端末ならば、採用される安全な伝送プロトコルはＳＳＬプロトコルまたはＴＬＳプロトコルである。
シンクＭＬ同期データを送信するための第３の方法は、
データシンククライアントが第１セッション鍵を取得し、かつデータシンクサーバが第２セッション鍵を取得するステップと、
前記データシンククライアントが前記第１セッション鍵によって前記データシンククライアントの同期されるデータを暗号化し、前記暗号化されたデータを前記データシンクサーバに送信するステップと、
前記データシンクサーバが前記暗号化されたデータを受信すると、前記第２セッション鍵によって前記暗号化されたデータを復号化し、同期動作を実行するステップと、
前記データシンクサーバが前記第２セッション鍵によって前記データシンクサーバの同期されるデータを暗号化し、前記暗号化されたデータを前記データシンククライアントに送信するステップと、
前記データシンククライアントが前記暗号化されたデータを受信すると、前記第１セッション鍵によって前記暗号化されたデータを復号化し、同期動作を実行するステップと、
を含む。
シンクＭＬ同期データを送信するための第４の方法は、
発信側が、シンクＭＬメッセージをトランスポート層プロトコルのリクエストにカプセル化し、安全な伝送プロトコルによって前記リクエストを暗号化し、前記リクエストを送信するステップと、
受信側が、前記リクエストを受信すると、前記安全な伝送プロトコルによって前記リクエストを復号化し、前記復号化されたリクエストを前記シンクＭＬメッセージに変換するステップと、
を含む。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
図２は、本発明の実施形態によるシンクＭＬ同期データを送信する手順を表わす図である。本実施形態において、データシンクサーバは、データシンククライアントからのユーザデータが暗号化され、かつデータシンククライアントがデータシンクサーバの証明書をプリインストールしたか、またはネットワークからダウンロードしたことを必要とする。証明書は公開鍵を含み、その公開鍵はデータシンククライアントによる暗号化のために用いられ、秘密鍵はデータシンクサーバによる復号化のために用いられ、それによって、データシンクサーバは要求しているデータシンククライアントが信頼できると判断し、データシンククライアントの証明書を要求しない。
【国際調査報告】
2008503778.tif 000006
2008503778.tif 000007
2008503778.tif 000008
2008503778.tif 000009