(57)【特許請求の範囲】
【請求項１】
モバイルデバイス上でクライアントサーバアプリケーションを実行するための方法であって、
前記モバイルデバイス上で実行するためのスクリプトをサーバから受信するステップと、
前記サーバに対して発行されたデジタル証明書を受信するステップと、
前記デジタル証明書を検証し、前記デジタル証明書が作成されてから前記スクリプトが変更されていないことを確認するステップと、
前記サーバに対して発行された前記デジタル証明書に基づいて、要求されたリソースへアクセスするためのパーミッションが前記サーバに許可されているか否かを判断するステップと、
前記サーバが前記リソースにアクセスすることが許可されている場合にのみ、前記スクリプトを検証するために使用される前記デジタル証明書において識別される前記リソースに前記スクリプトがアクセスすることを可能にするステップと、
識別された前記リソースに関する機密情報の一部もしくは全部を前記サーバへ送信するステップと、
を含む、方法。
【請求項２】
前記スクリプトの暗号化された第１の指紋を含む前記スクリプトのためのデジタル署名を受信するステップをさらに含み、
前記デジタル証明書を検証し、前記スクリプトが変更されていないことを確認する前記ステップが、
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断するステップと、
前記デジタル証明書から前記サーバの公開鍵を判断するステップと、
前記サーバの公開鍵を使用して前記暗号化された指紋を解読するステップと、
前記スクリプトの第２の指紋を生成するステップと、
前記第１の指紋の値を前記第２の指紋の値と比較するステップと
を含む、請求項１に記載の方法。
【請求項３】
信用できる第三者が前記リソースまたは前記リソースを含んでいるリソースのクラスへのアクセスを前記サーバに許可したことを前記デジタル証明書から検証することによって、前記リソースへのアクセスを前記スクリプトに許可すべきかどうかを判断するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記サーバにサービスを要求するステップをさらに含み、前記受信されたスクリプトが、前記サービスに対する前記要求に応答して前記サーバにおいて生成された、請求項１に記載の方法。
【請求項５】
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断するステップが、前記デジタル証明書が、本質的に信用できる認証局によって前記サーバに対して発行されたことを判断するステップを含む、請求項２に記載の方法。
【請求項６】
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断するステップが、前記デジタル証明書が、デジタル証明書のチェーンによって本質的に信用できる認証局にリンクされた認証局よって前記サーバに対して発行されたことを判断するステップを含む、請求項２に記載の方法。
【請求項７】
前記スクリプトのためのデジタル署名を前記サーバに要求するステップと、
前記デジタル署名に対する前記要求に応答して前記スクリプトのためのデジタル署名を受信するステップと
をさらに含む、請求項１に記載の方法。
【請求項８】
前記スクリプトのためのデジタル署名を信用できる第三者に要求するステップと、
前記デジタル署名に対する前記要求に応答して前記スクリプトのためのデジタル署名を受信するステップと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記サーバのためのデジタル署名を前記サーバに要求するステップと、
前記サーバのためのデジタル署名を受信するステップと、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断し、前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするステップと
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記サーバのためのデジタル署名を信用できる第三者に要求するステップと、
前記サーバのためのデジタル署名を受信するステップと、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断し、前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするステップと
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記スクリプトが前記リソースにアクセスできるかどうかを判断し、前記スクリプトが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするステップ
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記スクリプトに許可されたパーミッションを前記スクリプト内の情報に基づいて制限するステップと、
前記リソースが前記制限されたパーミッション内に包含される場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするステップと
をさらに含む、請求項１に記載の方法。
【請求項１３】
サーバまたはサーバコンテンツを信用できると指示するユーザ入力を受信するステップと、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツであるかどうかを判断するステップと、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツである場合は、前記スクリプトが前記リソースにアクセスすることを可能にするステップと
をさらに含む、請求項１に記載の方法。
【請求項１４】
プロセッサと、
前記プロセッサに結合されたトランシーバと、
前記プロセッサに結合されたメモリと
を含むモバイルデバイスであって、
前記プロセッサが、
前記モバイルデバイス上で実行するためのスクリプトをサーバから受信することと、
前記サーバに対して発行されたデジタル証明書を受信することと、
前記デジタル証明書を検証し、前記デジタル証明書が作成されてから前記スクリプトが変更されていないことを確認することと、
前記サーバに対して発行された前記デジタル証明書に基づいて、要求されたリソースへアクセスするためのパーミッションが前記サーバに許可されているか否かを判断することと、
前記デジタル証明書が検証され、前記スクリプトが変更されていない場合、かつ、前記サーバが前記リソースにアクセスすることが許可されている場合にのみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと、
識別された前記リソースに関する機密情報の一部もしくは全部を前記サーバへ送信することと、
を含むステップを実行するようにソフトウェア命令で構成された、モバイルデバイス。
【請求項１５】
前記プロセッサが、
前記スクリプトの暗号化された第１の指紋の形態で前記スクリプトのためのデジタル署名を受信することと、
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断すること、
前記デジタル証明書から前記サーバの公開鍵を判断すること、
前記サーバの公開鍵を使用して前記暗号化された指紋を解読すること、
前記スクリプトの第２の指紋を生成すること、および
前記第１の指紋の値を前記第２の指紋の値と比較すること
を含むステップを実行することによって、前記デジタル証明書を検証し、前記デジタル証明書が作成されてから前記スクリプトが変更されていないことを確認することと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項１６】
前記プロセッサは、信用できる第三者が前記リソースまたは前記リソースを含んでいるリソースのクラスへのアクセスを前記サーバに許可したことを前記デジタル証明書から検証することによって、前記リソースへのアクセスを前記スクリプトに許可すべきかどうかを判断することを含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項１７】
前記プロセッサが、前記サーバにサービスを要求することを含むさらなるステップを実行するようにソフトウェア命令で構成され、前記受信されたスクリプトが、前記サービスに対する前記要求に応答して前記サーバにおいて生成された、請求項１４に記載のモバイルデバイス。
【請求項１８】
前記プロセッサは、前記デジタル証明書が、本質的に信用できる認証局によって前記サーバに対して発行されたことを判断することを含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１５に記載のモバイルデバイス。
【請求項１９】
前記プロセッサは、前記デジタル証明書が、デジタル証明書のチェーンによって本質的に信用できる認証局にリンクされた認証局よって前記サーバに対して発行されたことを判断することを含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１５に記載のモバイルデバイス。
【請求項２０】
前記プロセッサが、
前記スクリプトのためのデジタル署名を前記サーバに要求することと、
前記デジタル署名に対する前記要求に応答して前記スクリプトのためのデジタル署名を受信することと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２１】
前記プロセッサが、
前記スクリプトのためのデジタル署名を信用できる第三者に要求することと、
前記デジタル署名に対する前記要求に応答して前記スクリプトのためのデジタル署名を受信することと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２２】
前記プロセッサが、
前記サーバのためのデジタル署名を前記サーバに要求することと、
前記サーバのためのデジタル署名を受信することと、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断することと、
前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２３】
前記プロセッサが、
前記サーバのためのデジタル署名を信用できる第三者に要求することと、
前記サーバのためのデジタル署名を受信することと、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断することと、
前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２４】
前記プロセッサが、
前記スクリプトが前記リソースにアクセスできるかどうかを判断することと、
前記スクリプトが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２５】
前記プロセッサが、
前記スクリプトに許可されたパーミッションを前記スクリプト内の情報に基づいて制限することと、
前記リソースが前記制限されたパーミッション内に包含される場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２６】
前記プロセッサが、
サーバまたはサーバコンテンツを信用できると指示するユーザ入力を受信することと、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツであるかどうかを判断することと、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツである場合は、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むさらなるステップを実行するようにソフトウェア命令で構成された、請求項１４に記載のモバイルデバイス。
【請求項２７】
モバイルデバイス上で実行するためのスクリプトをサーバから受信することと、
前記サーバに対して発行されたデジタル証明書を受信することと、
前記デジタル証明書を検証し、前記デジタル証明書が作成されてから前記スクリプトが変更されていないことを確認することと、
前記サーバに対して発行された前記デジタル証明書に基づいて、要求されたリソースへアクセスするためのパーミッションが前記サーバに許可されているか否かを判断することと、
前記デジタル証明書が検証され、前記スクリプトが変更されていない場合、かつ、前記サーバが前記リソースにアクセスすることが許可されている場合にのみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと、
識別された前記リソースに関する機密情報の一部もしくは全部を前記サーバへ送信することと、
を含むステップをプロセッサに行わせるように構成されたプロセッサ実行可能ソフトウェア命令を記憶したコンピュータ読み取り可能な記録媒体。
【請求項２８】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記スクリプトの暗号化された第１の指紋の形態で前記スクリプトのためのデジタル署名を受信することと、
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断すること、
前記デジタル証明書から前記サーバの公開鍵を判断すること、
前記サーバの公開鍵を使用して前記暗号化された指紋を解読すること、
前記スクリプトの第２の指紋を生成すること、および
前記第１の指紋の値を前記第２の指紋の値と比較すること
を含むステップを実行することによって、前記デジタル証明書を検証し、前記デジタル証明書が作成されてから前記スクリプトが変更されていないことを確認することと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項２９】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、信用できる第三者が前記リソースまたは前記リソースを含んでいるリソースのクラスへのアクセスを前記サーバに許可したことを前記デジタル証明書から検証することによって、前記リソースへのアクセスを前記スクリプトに許可すべきかどうかを判断することを含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３０】
前記記憶されたプロセッサ実行可能ソフトウェア命令が、前記サーバにサービスを要求することを含むステップをプロセッサに行わせるようにさらに構成され、前記受信されたスクリプトが、前記サービスに対する前記要求に応答して前記サーバにおいて生成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３１】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記デジタル証明書が本質的
に信用できる認証局によって前記サーバに対して発行されたことを判断することを含むステップをプロセッサに行わせるようにさらに構成された、請求項２８に記載のコンピュータ読み取り可能な記録媒体。
【請求項３２】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記デジタル証明書が、デジタル証明書のチェーンによって本質的に信用できる認証局にリンクされた認証局よって前記サーバに対して発行されたことを判断することを含むステップをプロセッサに行わせるようにさらに構成された、請求項２８に記載のコンピュータ読み取り可能な記録媒体。
【請求項３３】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記スクリプトのためのデジタル署名を前記サーバに要求することと、
前記デジタル署名に対する前記要求に応答して前記スクリプトのためのデジタル署名を受信することと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３４】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記スクリプトのためのデジタル署名を信用できる第三者に要求することと、
前記スクリプトのための前記デジタル署名を受信することと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３５】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記サーバのためのデジタル署名を前記サーバに要求することと、
前記サーバのためのデジタル署名を受信することと、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断することと、
前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３６】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記サーバのためのデジタル署名を信用できる第三者に要求することと、
前記サーバのためのデジタル署名を受信することと、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断することと、
前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３７】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記スクリプトが前記リソースにアクセスできるかどうかを判断することと、
前記スクリプトが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３８】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記スクリプトに許可されたパーミッションを前記スクリプト内の情報に基づいて制限することと、
前記リソースが前記制限されたパーミッション内に包含される場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３９】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、
サーバまたはサーバコンテンツを信用できると指示するユーザ入力を受信することと、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツであるかどうかを判断することと、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツである場合は、前記スクリプトが前記リソースにアクセスすることを可能にすることと
を含むステップをプロセッサに行わせるようにさらに構成された、請求項２７に記載のコンピュータ読み取り可能な記録媒体。
【請求項４０】
モバイルデバイスであって、
前記モバイルデバイス上で実行するためのスクリプトをサーバから受信するための手段と、
前記サーバに対して発行されたデジタル証明書を受信するための手段と、
前記デジタル証明書を検証し、前記デジタル証明書が作成されてから前記スクリプトが変更されていないことを確認するための手段と、
前記サーバに対して発行された前記デジタル証明書に基づいて、要求されたリソースへアクセスするためのパーミッションが前記サーバに許可されているか否かを判断する手段と、
前記デジタル証明書が検証され、前記スクリプトが変更されていない場合、かつ、前記サーバが前記リソースにアクセスすることが許可されている場合にのみ、前記スクリプトが前記リソースにアクセスすることを可能にするための手段と、
識別された前記リソースに関する機密情報の一部もしくは全部を前記サーバへ送信する手段と、
を含むモバイルデバイス。
【請求項４１】
前記スクリプトの暗号化された第１の指紋の形態で前記スクリプトのためのデジタル署名を受信するための手段をさらに含み、
前記デジタル証明書を検証し、前記スクリプトが変更されていないことを確認するための手段が、
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断するための手段と、
前記デジタル証明書から前記サーバの公開鍵を判断するための手段と、
前記サーバの公開鍵を使用して前記暗号化された指紋を解読するための手段と、
前記スクリプトの第２の指紋を生成するための手段と、
前記第１の指紋の値を前記第２の指紋の値と比較するための手段と
を含む、請求項４０に記載のモバイルデバイス。
【請求項４２】
信用できる第三者が前記リソースまたは前記リソースを含んでいるリソースのクラスへのアクセスを前記サーバに許可した前記デジタル証明書から検証することによって前記リソースへのアクセスを前記スクリプトに許可すべきかどうかを判断するための手段をさらに含む、請求項４０に記載のモバイルデバイス。
【請求項４３】
前記サーバにサービスを要求するための手段をさらに含み、前記受信されたスクリプトが、前記サービスに対する前記要求に応答して前記サーバにおいて生成された、請求項４０に記載のモバイルデバイス。
【請求項４４】
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断するための手段が、前記デジタル証明書が、本質的に信用できる認証局によって前記サーバに対して発行されたことを判断するための手段を含む、請求項４２に記載のモバイルデバイス。
【請求項４５】
前記デジタル証明書が信用できる第三者によって前記サーバに対して発行されたことを判断するための手段が、前記デジタル証明書が、デジタル証明書のチェーンによって本質的に信用できる認証局にリンクされた認証局よって前記サーバに対して発行されたことを判断するための手段を含む、請求項４２に記載のモバイルデバイス。
【請求項４６】
前記スクリプトのためのデジタル署名を前記サーバに要求するための手段と、
前記デジタル署名を受信するための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【請求項４７】
前記スクリプトのためのデジタル署名を信用できる第三者に要求するための手段と、
前記デジタル署名を受信するための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【請求項４８】
前記サーバのためのデジタル署名を前記サーバに要求するための手段と、
前記サーバのためのデジタル署名を受信するための手段と、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断するための手段と、
前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【請求項４９】
前記サーバのためのデジタル署名を信用できる第三者に要求するための手段と、
前記サーバのためのデジタル署名を受信するための手段と、
前記サーバのための前記デジタル署名から、前記サーバが前記リソースにアクセスできるかどうかを判断するための手段と、
前記サーバが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【請求項５０】
前記スクリプトが前記リソースにアクセスできるかどうかを判断するための手段と、
前記スクリプトが前記リソースにアクセスできる場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【請求項５１】
前記スクリプトに許可されたパーミッションを前記スクリプト内の情報に基づいて制限するための手段と、
前記リソースが前記制限されたパーミッション内に包含される場合のみ、前記スクリプトが前記リソースにアクセスすることを可能にするための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【請求項５２】
サーバまたはサーバコンテンツを信用できると指示するユーザ入力を受信するための手段と、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツであるかどうかを判断するための手段と、
前記スクリプトがサーバから受信されたか、または前記ユーザ入力によって信用できるとして指示されたサーバコンテンツである場合は、前記スクリプトが前記リソースにアクセスすることを可能にするための手段と
をさらに含む、請求項４１に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータネットワーク通信に関し、より詳細には、ウェブブラウジングデジタル証明書に関する。
【背景技術】
【０００２】
新生のインターネット技術は、通信デバイスとサーバベースアプリケーションとの間の統合の増大を約束する。クライアントサーバアプリケーションは、多数の利点を有し、ますます普及している。そのようなアプリケーションにより、アプリケーションデータの大部分が1つのサーバロケーション中に存在することが可能になり、データセキュリティが増大し、不要な冗長データコピーがなくなる。同様に、アプリケーションプログミングコードおよびデータファイルの大部分は、それがアプリケーション開発者によってより容易に維持される1つのロケーション中に存在することができる。さらに、クライアントサーバアプリケーションは、厳密な処理タスクがサーバ側で行われるように設計され得、それにより、ロバストなアプリケーションがラップトップコンピュータおよびモバイルハンドセットなどのより小さくより非力なデバイス上に存在することが可能になる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
クライアントサーバ技術は、HTML中に埋め込まれたJavaScript(登録商標)に例示されるように、モバイルコードを包含するように発展してきた。ウェブベースアプリケーションの機能は、現在、クライアント側実行環境内のモバイルコードにとって利用可能な機能の欠如によって制限されている。JavaScript(登録商標)などの言語は高度なクライアント側機能を可能にするように設計され得るが、そのような実装形態はセキュリティの見地から理想的ではない。セキュリティが問題にならない環境では、サーバベースアプリケーションは、ロケーションに基づいてコンテンツをカスタマイズし、リモートファイルをクライアントファイルと同期させ、デスクトップ機能をサーバベース機能とリンクすることになる。しかしながら、インターネットユーザは、概して、ウェブサイトがクライアント上の様々なリソースにアクセスすることを許可すべきかどうかに関してインフォームド決定を行うほど十分に高度化していない。これは、ウェブサイトから悪意のあるコードを遮断するように設計された膨大な数の製品によって証明されている。したがって、サーバベーススクリプトの機能におけるいかなる進歩も有害無益であり得る。
【課題を解決するための手段】
【０００４】
様々な実施形態では、ウェブサーバがモバイルデバイス上の様々なリソースにアクセスすることを許可されるべきかどうかをモバイルデバイスが判断することを可能にするために、デジタル証明書およびデジタル署名が使用される。デジタル証明書により、モバイルデバイスおよびモバイルデバイスユーザは、ウェブサーバの識別情報、ならびにそのサーバが特定のリソースにアクセスしても安全であるかどうかを知ることが可能になる。モバイルデバイスは、提示されたデジタル証明書の発行者を検査することによってウェブサーバまたはダウンロードされたスクリプトの信用性を確立し、デジタル証明書のチェーンを通して本質的に信用できる当局(authority)まで信用性を追跡し得る。
【０００５】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な実施形態を示し、上記の概略的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【０００６】
【図１】ワイヤレスセルラーネットワークのシステムブロック図である。
【図２】スクリプトの信用性を判断するのに好適な一実施方法のプロセスフロー図である。
【図３Ａ】ドキュメントにデジタル署名し、検証するのに好適な一実施方法のプロセスフロー図である。
【図３Ｂ】デジタル証明書を検証するのに好適な一実施方法のプロセスフロー図である。
【図３Ｃ】ドキュメントにデジタル署名し、検証するのに好適な代替実施方法のプロセスフロー図である。
【図４Ａ】信用できるブラウジング環境を確立するための一実施形態のメッセージフロー図である。
【図４Ｂ】信用できるブラウジング環境を確立するための一実施形態のメッセージフロー図である。
【図５】信用できるブラウジング環境を確立するのに好適な一実施方法のプロセスフロー図である。
【図６】信用できるブラウジング環境を確立するための一実施形態のメッセージフロー図である。
【図７】様々な実施形態とともに使用するのに好適な例示的なモバイルデバイスの回路ブロック図である。
【図８】様々な実施形態とともに使用するのに好適な例示的なパーソナルコンピュータの回路ブロック図である。
【発明を実施するための形態】
【０００７】
様々な実施形態について添付の図面を参照しながら詳細に説明する。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号を使用する。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
【０００８】
本明細書で使用する「モバイルハンドセット」、「ハンドセット」、「モバイルデバイス」および「ハンドヘルドデバイス」という用語は、セルラー電話、個人情報端末(PDA)、パームトップコンピュータ、ワイヤレス電子メール受信機およびセルラー電話受信機(たとえば、BlackBerry(登録商標)およびTreo(登録商標)デバイス)、マルチメディアインターネット対応セルラー電話(たとえば、iPhone(登録商標))、およびプログラマブルプロセッサとメモリとワイヤレスネットワークに接続する機能とを含む同様のパーソナル電子デバイスのうちのいずれか1つまたはすべてを指す。これらの用語はまた、パーソナルコンピュータ上にも実装され得る様々な実施形態についての説明において使用されるとき、ラップトップコンピュータまたはデスクトップコンピュータなどのパーソナルコンピュータを包含し得る。様々な実施形態は、そのようなネットワークのセルタワーを含むセルラー電話ネットワークシステムを指すが、本発明の範囲および特許請求の範囲は、たとえば、WiFi、WiMax、および他のワイヤレスデータネットワーク通信技術を含む分散ワイヤレス通信セル、ならびにLAN、WANおよびインターネットなどのワイヤードネットワークを含む、通信システムを包含する。
【０００９】
本明細書で使用する「スクリプト」という用語は、実行コンピュータプログラムを制御するように設計された、JavaScript(登録商標)またはPerl(登録商標)などの従来のスクリプト言語で書かれたコンピュータプログラムと、実行のためにオペレーティングシステムまたはランタイム環境上で直接コンパイルされる、C++またはJava(登録商標)などの独立型言語で書かれたコンピュータプログラムとの両方を含む、いずれかまたはすべてのコンピュータプログラムを指す。
【００１０】
本明細書で使用する、「ブラウザ」および「ウェブブラウザ」という用語は、Internet Explorer(登録商標)およびFirefox(登録商標)などのブラウザ、Perl(登録商標)インタープリタおよびBinary Runtime Environment for Wireless BREW(登録商標)などのプログラミング言語ランタイム環境、ならびに内蔵スクリプト実行機能を有するオペレーティングシステムを含む、スクリプトまたはコードを実行することが可能なランタイム環境を指す。
【００１１】
本明細書で使用する「クライアント」および「サーバ」という用語はいずれも、コンピュータプログラムを実行することが可能なプロセッサと、インターネット接続またはコンピュータプログラムなどのコンピュータプログラムを実行する他のデバイスと通信するための手段とをもつ、モバイルハンドセットまたはパーソナルコンピュータなどのデバイスを指すか、またはインターネット接続など、他のオペレーティングシステム上で実行するコンピュータプログラムと通信するためのリンクを含む、ウェブブラウザまたはオペレーティングシステムなどのコンピュータプログラムを指す。「クライアント」および「サーバ」という用語は、本質的に説明的なものであり、本発明の範囲または特許請求の範囲を限定するものではない。
【００１２】
モバイルハンドセットおよびパーソナルコンピュータは、しばしば、ウェブサイトからダウンロードされたコードを実行することができるウェブブラウザまたは同様のタイプのプログラムを有する。ブラウザは、関連するプラグインおよび拡張とともに、モバイルハンドセットとウェブサイトとの間のゲートウェイとして働く。ウェブサイトは、モバイルハンドセットにスクリプトを提示し得るが、ブラウザは、スクリプトを実行するプログラムである。たとえば、ウェブベース電子メールプログラムが、電子メールをハンドセット呼と相関させるためにモバイルハンドセットの呼履歴へのアクセスを要求する場合、ウェブベース電子メールプログラムは、http要求を介してウェブサイトに呼のリストを送るようにブラウザに要求するスクリプトを生成し得る。ブラウザは、モバイルハンドセットのオペレーティングシステムに要求を送ることになり、オペレーティングシステムは、リストをコンパイルし、それをブラウザにパスすることになる。
【００１３】
もちろん、すべてのウェブサイトが、モバイルデバイスまたはパーソナルコンピュータ上に常駐する呼履歴または他のタイプの個人および極秘データにアクセスすることを許可されるわけではない。「ハッカー」、悪意のあるウェブサイト、およびインターネットの他の悪用の問題がよく知られている。そのような攻撃からパーソナルコンピュータを守るために、多数のファイアウォールプログラムが市販され、信用できないウェブサイトへのアクセスを拒否するために広く使用されている。モバイルフォンなどのモバイルデバイスでは、ウェブサイトは、概して、デバイスのオペレーティングシステムソフトウェアの一部としてシステムおよび個人データにアクセスするのを阻止される。これらの方法は、インターネットを介して提供されたであろういくつかの非常に有用なアプリケーションおよびサービスを妨げるが、そのような対策は、信用できないサイトによる攻撃からモバイルデバイスを保護するために必要である。
【００１４】
様々な実施形態は、ウェブサイトとモバイルハンドセットとの間に信用を確立するための方法を提供する。様々な実施形態は、認証局(certificate authority)によって発行されたデジタル証明書を利用し、それにより、モバイルハンドセットは、ウェブサイトの信用またはウェブサイトから発行されたスクリプトの信用を確認することが可能になる。認証局は、デジタル証明書によって証明される、別のエンティティが信用できることを検証することができる信用できるエンティティである。これは「信用チェーン」または「信用チェーニング」として知られる。信用チェーンは、信用できるエンティティから発生しなければならない。本質的に信用できるエンティティは、ルート局(root authority)と呼ばれる。オペレーティングシステムは、しばしば、様々なルート局のデジタル証明書であるルート証明書のセットまたは「ルートセット」を維持する。
【００１５】
様々な実施形態は、たとえばセルラーデータ通信リンクを採用するワイヤレスネットワークを含む様々なワイヤードおよびワイヤレスネットワークにおいて採用され得る。例として、図1に、モバイルハンドセット28およびパーソナルコンピュータ29などのいくつかの通信デバイスがウェブサーバからダウンロードされたスクリプトを実行する追加の能力を有する、インターネット24とセルラーネットワークとを含む通信ネットワーク10のブロック図を示す。
【００１６】
この例示的なネットワーク10では、基地局16は、モバイル交換センター(MSC)18など、ネットワークを動作させるために必要な要素を含むセルラーネットワークの一部である。動作中、MSC18は、モバイルハンドセット28が呼を行っているおよび受信しているとき、基地局16を介してモバイルハンドセット28との間で呼およびメッセージをルーティングすることが可能である。MSC18はまた、モバイルハンドセット28が呼に関与するとき、電話地上線トランク(図示せず)への接続を与える。
【００１７】
さらに、MSCは、インターネット24に結合されたサーバゲートウェイ22に結合され得る。サーバゲートウェイ22を通して、モバイルハンドセット28は、インターネットを介してウェブサーバ26および27と通信し得る。また、パーソナルコンピュータ29は、インターネットサービスプロバイダなどによって与えられる、従来のインターネットアクセス方法を使用してインターネットを介してウェブサーバ26および27と通信し得る。そのような通信は、ファイル転送プロトコル(FTP)、ハイパーテキスト転送プロトコル(HTTP)、およびハイパーテキスト転送プロトコルオーバーセキュアソケットレイヤ(HTTPS)を使用して送られ得る。通信は、ハイパーテキストマークアップ言語(HTML)、画像ファイル、およびJavaScript（登録商標）などの言語のクライアント側スクリプトを含む、様々なタイプのファイルからなり得る。さらに、そのようなメッセージは、デジタル証明書および署名鍵など、様々なセキュリティ方式に関係するファイルを含み得る。さらに、この例示的なネットワーク10は、この例示的なネットワーク中のウェブサーバ26および27などのウェブサーバにデジタル証明書と公開鍵と秘密鍵とを発行する能力を含む、認証局として働くように構成されたウェブサーバである認証局(CA)サーバ23を含む。さらに、CAサーバ23は、セルラーネットワークを介してモバイルハンドセット28と通信して、それらのルート証明書のセットを現在の状態に保ち得る。
【００１８】
クライアント側スクリプトがコンピュータ上の様々なリソースまたはデータにセキュアにアクセスできるようにするために、モバイルハンドセット28またはパーソナルコンピュータ29上で動作するウェブブラウザは、そのようなリソースまたはデータへのアクセスをスクリプトに許可することになるステップを実行する前に、いくつかの対策を取るようにプログラムまたは構成され得る。そのような対策の一例の概観を図2に示し、図2は、モバイルハンドセット上で実行され得るステップを示す。プロセスは、ステップ40において、スクリプトが特権的リソース、データまたは方法にアクセスしようと試みるときにトリガされ得る。特権的方法の例は、ウェブベース電子メールプログラムから受信されたモバイルデバイスの呼履歴にアクセスしたいという要求、またはモバイルデバイスのGPS座標にアクセスしようとするウェブベースマッピングプログラムによる試みを含む。特権的リソースへのアクセスを許可する前に、ブラウザは、リソースにアクセスしようと試みている特定のスクリプトが信用できるかまたは悪意のないことを検証するように構成され得る。この概観方法は、そのような検証のための代替方法を与える。
【００１９】
最初に、モバイルハンドセットは、テスト42において、アクセス試行が完全に信用できるスクリプトによって行われたかどうかを判断し得る。ファイルが「信用できる」かどうかは、いくつかの方法で判断され得る。いくつかのそのような方法は、以下で説明するように、認証局によって発行されたデジタル証明書の使用を含む。スクリプトが完全に信用できる場合(すなわち、テスト42=「はい」)、ブラウザは、ステップ44において、スクリプトを実行することができる。コードが頻繁に変化しないとき、スクリプトの直接ソースにかかわらず、コードが完全に信用できることは有用である。たとえば、ウェブベースゲームが完全に信用できる場合、ゲームは、1つのロケーションにおいて開発され、信用できるとして指定された後に様々なウェブサイトに配信され得る。ゲームは、次いで、ゲームが常駐するサーバがモバイルハンドセットに知られていない、または、信頼できない場合でも、受信ブラウザによって信用され得る。スクリプトが信用できる程度(すなわち、ゲームがカメラのようなリソースにアクセスすることができるかどうか、または、モバイルハンドセットからリモートサーバにファイルを転送することができるかどうか)は、コードが信用できるとマークされ、信用証明書内に含まれているときに判断され得、したがって、モバイルデバイスは、スクリプトがアクセスすることができる特定のリソースおよび特権的方法を判断することができる。
【００２０】
スクリプトが完全に信用できない場合(すなわち、テスト42=「いいえ」)、ブラウザは、代替方法を通して信用を判断し得る。ブラウザは、テスト46において、コードを提供したサーバが信用できるかどうかを判断し、信用できる場合、ステップ44において、アクセスを許可し得る。サーバが信用できない場合(すなわち、テスト46=「いいえ」)、ブラウザは、次いでステップ50において、スクリプトが安全でないことを判断し、保護方法へのアクセスを拒否し得る。しかしながら、サーバが信用できるので、ブラウザは、常にスクリプトを単独で実行するとは限らない。代わりに、ブラウザはまた、テスト48において、サーバが特定の方法またはリソースに関して信用できることを検証し得る。サーバが特定の方法またはリソースについて信用できない場合(すなわち、テスト48=「いいえ」)、ブラウザは、ステップ50において、方法へのアクセスを拒否し得る。サーバが特定の方法またはリソースについて信用できる場合(すなわち、テスト48=「はい」)、ブラウザは、ステップ44において、リソースへのアクセスを許可し得る。
【００２１】
図2に示した流れ図は、リソースへのアクセスに対する要求が行われたときにスクリプトに制限付きリソースへのアクセスを許可し得るかどうかを判断する実施形態中に実装され得る。「ランタイム」または実行中実施形態と呼ばれ得るそのような実施形態は、様々な利点および欠点を有する。やはり様々な利点および欠点を有する代替実施形態は、スクリプトが実行される前にスクリプトが必要とするリソースを判断することである。そのような「ロードタイム」または実行前実施形態を実装するために、ウェブブラウザは、実行より前にデジタル証明書を検査し、必要とされ得るリソースのリストを生成し得る。さらなる代替実施形態では、潜在的保護リソースへのアクセスを必要とするスクリプトは、スクリプトのリマークセクション内で必要とされるリソースを示し得る。そのような実施形態では、アクセスされ得る保護リソースを判断するためにスクリプトが実行する前に、スクリプトのリマークセクションが読み取られ得る。モバイルデバイスまたはウェブブラウザが、スクリプトが必要とするリソースのリストを有すると、モバイルデバイスまたはウェブブラウザは、スクリプトの信用ステータスと「バッチ」中のパーミッションセットとのチェックを実行し、スクリプトがそのパーミッションセットを越えてリソースを必要とする場合、スクリプトが実行するのを妨げることができる。
【００２２】
上述のように、様々な実施形態では、ブラウザは、ウェブサイトが信用できるかどうかを、デジタル署名を使用して判断することが可能である。デジタル署名がどのように動作するかについての概観を図3Aに示す。図3Aは、1つまたは複数のサーバ23、26およびパーソナルコンピュータまたはモバイルデバイス28上で実行するソフトウェア命令で実装され得るステップを示す。認証局(CA)サーバ23は、ステップ70において、ウェブサーバ26がドキュメントにデジタル署名するために使用し得る暗号化鍵ペアを生成し得る。コンピュータ分野においてよく知られているように、暗号化鍵は、一般に素数である大きい整数である。よく知られているRSAなど、いくつかの暗号化アルゴリズムは暗号化および復号のために異なる鍵を使用し、一緒にそれらは鍵ペアとして知られる。公開鍵/秘密鍵ペアは、しばしば復号鍵である公開鍵が公開されるかまたはドキュメント中に含まれ、しばしば暗号化鍵である秘密鍵が秘密に保たれる鍵ペアである。公開鍵によってうまく解読され得るファイルまたはコンピュータデータのシーケンスは、秘密鍵によって暗号化されていなければならない。したがって、ウェブサーバ26が、秘密鍵を知る唯一のエンティティである場合、ウェブサーバ26の識別情報が検証され得る。しかしながら、この識別情報検証方法は、公開鍵が検証可能であることを必要とする。クライアントアプリケーションが公開鍵の値に関して誤った場合、アプリケーションは、だまされて悪意のあるエンティティを信用し得る。デジタル証明書は、クライアントアプリケーションが公開鍵を検証するために使用することができるツールである。CAサーバ23は、ステップ71において、ウェブサーバ26の名前およびURLなどの情報、ならびにウェブサーバ26の実際の公開鍵を含んでいる証明書を生成し、それを、それ自体の秘密鍵(すなわちウェブサーバ26の秘密鍵ではない)を用いて暗号化することによって証明書に「署名」し得る。
【００２３】
ウェブサーバ26は、ステップ72において、MD2などのハッシュ技法を使用してJavaScript（登録商標）ファイルなどのドキュメントの指紋を計算することによってドキュメントに署名するプロセスを開始する。ドキュメント指紋が生成されると、ウェブサーバ26は、ステップ74において、秘密鍵を暗号化鍵として使用して指紋を暗号化することによって指紋に「署名」し得る。ウェブサーバ26は、次いで、ステップ76において、元のドキュメントを署名付き指紋とデジタル証明書とともにモバイルハンドセット28に送信し得る。
【００２４】
ステップ77において、ドキュメントがモバイルハンドセット28によって受信され、モバイルハンドセット28は、メモリに記憶されたそのルートセットからCAサーバ23の公開鍵を判断することができる。上記で説明したように、ルートセットは、モバイルハンドセット28が本質的に信用でき得る証明書のセットである(すなわち、モバイルハンドセット28は、そのルートセット中のすべての証明書が真正であると仮定し得る)。復号鍵としてCAサーバ23の公開鍵を使用して、モバイルハンドセットは、ステップ79において、デジタル証明書を解読して、ウェブサーバ26の公開鍵を検証し得る。復号鍵としてウェブサーバ26の公開鍵を用いて、モバイルハンドセット28は、ステップ80において、署名付き指紋を解読して、元の指紋を発見し得る。モバイルハンドセットはまた、ステップ82において、同じハッシュ技法(たとえば、MD2)を使用してドキュメントの指紋を計算し得る。モバイルハンドセットは、次いでステップ84において、相等性について2つの指紋を比較し得る。モバイルハンドセットによって計算された指紋が解読された指紋に等しい場合、モバイルデバイスは、ドキュメントがCAサーバ23によって信用されるソースからのものであり、ドキュメントがウェブサーバ26の制御を離れてから改変されていないことを確認したことになる。したがって、テスト86において、計算され、解読されたドキュメント指紋が等しい場合、ドキュメントは信用でき、そうでない場合、ドキュメントは信用できない。
【００２５】
「信用チェーニング」または本質的に信用できる認証局(「ルート局」)以外のソースによって証明書が発行されることを許可することには、商業的および/または技術的利益があり得る。そのような状況では、モバイルハンドセットは、ルートセットに新しい認証局の証明書を追加することによって新しい認証局を本質的に信用する必要があるか、または新しい認証局がルート局によって信用されることを検証するためのいくつかのステップを実行することになる。このタスクを達成する方法の一例を図3Bに示す。図3Bは、モバイルハンドセットまたはパーソナルコンピュータ上で実行され得るステップを示す。
【００２６】
提示された証明書の信用性を検証しようと試みているモバイルハンドセットは、テスト54において、証明書がルート局によって署名されているかどうかを判断するために証明書を検査することによって開始し得る。提示された証明書は、一般に、署名局(signing authority)の識別情報に関するデータを含む、よく知られているITU-T X.509などのプロトコル規格に準拠する。モバイルハンドセットは、署名局の識別情報をルートセット中の証明書のセットと比較し得る。一致があった場合(すなわち、テスト54=「はい」)、モバイルハンドセットは、ステップ56において、提示された証明書が信用できると仮定し得る。モバイルハンドセットが、現在の証明書をルート局によって署名された証明書と認めない場合、テスト58において、(いくつかのルート証明書のように自己署名されているのとは反対に)証明書が別のサーバによって署名されたかどうかを判断し得る。現在の証明書が別の当局によって署名されていなかった場合(すなわち、テスト58=「いいえ」)、モバイルハンドセットは、ステップ60において、証明書が信用できないと判断し得る。しかしながら、現在の証明書が別の当局によって署名されていた場合(すなわち、テスト58=「はい」)、モバイルハンドセットは、ステップ64において、その当局の証明書を取り出し得る。証明書のチェーンは、一度にすべてが提示され得、または、証明書中で規定されているように要求に応じて認証局から取り出され得る。モバイルハンドセットが新しい証明書の位置を特定すると(すなわちステップ64)、モバイルハンドセットは、新しい証明書について同様のステップを繰り返すことによって、その証明書が信用できるかどうかを判断することができる。たいていの場合、モバイルハンドセットは、最終的に、どの証明書が本質的に信用できる当局からチェーン結合されており、どの証明書がチェーン結合されていないのかを判断することになる。
【００２７】
様々な実施形態は、信用性をより正確なものにするためにパーミッションのシステムを採用し得る。たとえば、ウェブサイトが一部の使用について信用できるとしても、ウェブサイトにモバイルハンドセットへのフルアクセスを許可することは理想的でないことがある。代替的に、一部の認証局は、一部のリソースに信用性を許可し、他のリソースには信用性を許可しない能力があり得る。このタイプの情報は、認証局によって発行されたデジタル証明書に埋め込まれ得る。デジタル証明書が、ウェブサイトのURL、およびURLが登録されているエンティティの名前などの情報を含むことが、当技術分野でよく知られている。実際、デジタル証明書は、2進数、テキスト、または他のどんなものでも、任意のタイプのコンピュータ可読データを保持することができる。いくつかの実施形態では、認証局は、パーミッションを通信するために明確に定義された名前空間中で一連の一意識別子を使用し得る。そのようなリストされたパーミッションは、アクセスするパーミッションがサーバに許可されているモバイルハンドセットのリソースまたはリソースのカテゴリのリストを含み得る。たとえば、信用チェーン中の各証明書が「地理的座標を許可する」という明示的なフレーズあるいは等価のデジタルコードまたはシンボルを含むときのみ、ウェブブラウザは、モバイルハンドセットの地理的座標にアクセスすることをウェブサイトに許可し得る。また、認証局は、ドキュメントに署名するのには有効であるが、別の証明書を発行するのには有効でない証明書を発行することが可能であり、これには、信用チェーン中の可能なリンクの数を制限する効果がある。そのような実施形態では、ウェブブラウザは、証明書中に含まれるパーミッションのリストを読み取ることなどによって、サーバに対して発行されたデジタル証明書に基づいて、要求されたリソースにアクセスするパーミッションがサーバに許可されているかどうかを判断することができる。したがって、ウェブブラウザまたはモバイルデバイスは、証明書に「認証局を許可する」というフレーズあるいは等価のデジタルコードまたはシンボルがないエンティティによって署名された証明書を信用し得ない。
【００２８】
デジタル証明書を組み込んだパーミッション方式に加えて、ユーザは、いくつかのパーミッションをウェブサイトに明示的に許可し得る。たとえば、ユーザは、ウェブサイトが信用できる当局によって証明されていないリソースへのアクセスを必要とするウェブアプリケーションを実行したいと望み得る。このウェブサイトは、ルート局またはそれらの派生局のいずれかと協働することを防ぐビジネス協定を有する、よく知られている商業ウェブサイトであり得る。代替的に、ユーザが個人的に開発したウェブサイトであり得る。ユーザは、URLに基づいてウェブサイトにリソースまたはリソースのグループを明確に許可し得る。このオプションは、セキュリティの観点から欠点を有し得るが、特に知識のあるユーザにとって、欠点を克服する商業利点をも有し得る。
【００２９】
さらなる実施形態では、スクリプト自体、またはスクリプトにアタッチされるデータは、スクリプトに許可されるパーミッションを制限する情報を含み得る。この実施形態では、スクリプトまたはスクリプトにアタッチされるデータは、サーバに対して発行されたデジタル証明書中でアクセスするパーミッションがサーバに許可されたリソースよりも少ないリソースにアクセスを制限し得る。
【００３０】
上述のセキュリティ技法の一部を利用することによって、ウェブブラウジング環境をセキュアにすることができる。そのような環境を可能にする通信を図4Aに示す。図4Aは、様々なシステム間で起こり得るいくつかの通信を示すタイミング図である。信用チェーンを可能にするために、CAサーバ23は、メッセージ105において、モバイルハンドセット28に証明書のルートセットを送り得る。ルートセット証明書のこの通信は、任意の時間に送信され得、一般に、モバイルデバイスに提供される通常サービスの一部として周期的に更新される。CAサーバ23はまた、メッセージ110において、証明書および鍵ペアを作成して、ウェブサーバ26に送り得る。これらのセキュリティツールが所定の位置にあれば、モバイルハンドセット28は、随意のメッセージ115において、ウェブサーバ26によってホスティングされるウェブサイトに随意にブラウズし、デバイスとサーバとの間にセキュアな接続を開くことができる。代替的に、モバイルハンドセット28は、トランスポートレイヤセキュリティ(TLS)などのセキュアな接続を使用するか、または単にドメインネームシステム(DNS)インフラストラクチャに依拠して、サーバ26と通信することができる。モバイルハンドセット28は、次いで、メッセージ120において、ウェブサーバ26にウェブページを要求し得る。ウェブサーバ26は、メッセージ125において、モバイルハンドセット28が実行するための署名付きコードで要求に応答し得る。コードは、図3Aに関して上記で説明したデジタル署名方法と同様の方法でウェブサーバ26によって署名され得るか、または、コードは、HTTP要求を介してCAサーバ23に送られ得、そこでコードは、CAサーバ23によって署名され、HTTP応答を介してウェブサーバ26に戻され得る。このプロセスは、モバイルハンドセット28のユーザがウェブサイトをブラウズし続けるとき、メッセージ120および125において、1回または複数回繰り返され得る。モバイルハンドセット28が、(図3Aに関して上記で説明したように)コードを与えられたデジタル署名を検証する場合、モバイルハンドセット28は、特権的リソース、データまたは方法へのアクセスをスクリプトに与え得、モバイルハンドセット28は、次いで、メッセージ127において、そのような機
密データの一部または全部をサーバ26に送信し得る。そのような機密データを使用して、サーバ26は、次いで、メッセージ129において、機密情報に基づくか、それに応答するかあるいはそれに固有の、ウェブページ、データまたはスクリプトを与え得る。たとえば、メッセージ127中でサーバ26に与えられた要求されたデータがモバイルデバイス28のGPS座標である場合、サーバ26は、ローカルマップまたは近くの会社の電話番号など、デバイスのロケーションに固有のウェブページを与え得る。
【００３１】
代替実施形態では、モバイルデバイス28は、別のサーバからウェブページを受信することとは別に、署名局にデジタル署名を要求し、受信し得る。この実施形態を図3Cおよび図4Bに示す。図3Cを参照すると、プロセスは、図3Aに関して上記で説明したプロセスと同様に、ステップ78において、ウェブページのためのデジタル署名を要求する別個のhttp要求を署名局23または元のウェブアプリケーションプロバイダのサーバに送り、それに応答して署名を受信するモバイルデバイスの追加を進める。署名局23は、ステップ88において、デジタル署名についての要求を受信し、それに応答して、署名局23は、ステップ89において、サーバのメモリに記憶されていることがあるデジタル署名を戻す。この追加のステップは、図4Bに示すメッセージフロー図では、メッセージ130における署名局への署名要求と、それに続く、メッセージ132におけるモバイルデバイスへの署名の返信として示されている。
【００３２】
モバイルハンドセットとウェブサーバがどのように対話するかについてのより詳細な図を図5に示し、図5は、サーバ26およびモバイルデバイス28またはパーソナルコンピュータ上で実行されるソフトウェア命令において実装され得るステップを示す。モバイルハンドセット28のユーザは、ステップ136において、ウェブサーバ26にウェブページを要求することができる。この要求は、よく知られているセルラーデータネットワーク方法を使用して、およびインターネットを介して送信され得る。それに応答して、ウェブサーバ26は、ステップ138において、PHPインタープリタを使用するなどの知られている方法でコードを生成し得る。ウェブサーバ26は、ステップ140において、図3Aに関して上記でより十分に説明した方法を使用して、この動的に生成されたコードに署名し得る。ウェブサーバは、次いで、知られているインターネットおよびセルラーデータネットワーク方法を使用することなどによって、署名付きコードをモバイルデバイスに返信することができる。モバイルデバイスは、署名付きコードを受信すると、ステップ145において、コードを実行し始め得る。ステップ150において、コードが、あるファイルなどの制限付きリソースへのアクセスを要求したとき、モバイルハンドセット28は、ステップ155において、スクリプトの実行を休止して、コードがそのリソースにアクセスするのに信用できるかどうかを検証し得る。この検証は、図3Aに関して上記で説明した方法を使用して実行される。モバイルハンドセットは、コードが信用できると判断した場合、ステップ157において、アクセスを許可し得る。
【００３３】
代替実施形態では、ルート鍵がそうであるように、サーバのためのデジタル証明書がクライアント(すなわち、モバイルデバイス)において事前構成され得る。したがって、この実施形態では、デジタル証明書が、モバイルハンドセットメモリ内ですでに利用可能であり得るので、上記で説明したデジタル証明書を受信するステップは随意である。そのような状況では、アプリケーションを検証し、実行するためのプロセスは、モバイルデバイスが、サーバから実行のためのスクリプトを受信することと、モバイルデバイスが、スクリプトが取得されたサーバが(すでにメモリ中にあるか、または別個に与えられ得る)デジタル証明書中で指定されていることを検証することと、モバイルデバイスが、証明書のコンテンツに従って、サーバに許可されているパーミッションを判断することと、モバイルデバイスが、スクリプトが取得されたサーバに、関連するパーミッションが許可されているときのみ、スクリプトが保護リソースにアクセスすることを可能にすることとを含む。
【００３４】
本明細書で説明するロバストなセキュリティ対策を利用しないウェブブラウジング環境は、スクリプトが、そのスクリプトが発生した特定のサーバ以外のサーバから発生したスクリプトと統合するのを禁止することによって、スクリプト機能を制限することを選択し得る。たとえば、ウェブページは、メニューシステムを生成するためのJavaScript（登録商標）を含み得る。ウェブサイトメニューシステムがニュースウェブサイトまたは天気ウェブサイトへのリンクを有することは有用であり得る。しかしながら、Firefox(登録商標)およびInternet Explorer(登録商標)などのウェブブラウザは、メニュースクリプトがニュースサーバと通信することを許可しないことがある。信用できるウェブブラウジング環境では、そのような禁止は容易に解除され得る。スクリプトが第2のサーバに連絡することを許可するモバイルハンドセットの一例を図6に示し、図6は、システム間で起こり得る通信を示す。モバイルハンドセット28は、ウェブサーバ26上のウェブサイトにナビゲートし得、システムは、メッセージ115において、セキュアな接続を確立し得る。モバイルハンドセット28は、メッセージ120において、ウェブサーバ26にウェブページを要求し得る。ウェブサーバ26は、メッセージ125において、モバイルハンドセット28が実行するための署名付きコードで要求に応答し得る。ウェブサーバ26からのコードを実行することに応答して、モバイルハンドセットは、メッセージ121において、別のウェブサーバ27にスクリプトを要求して、現在のメニュースクリプトの機能を拡張し得る。ウェブサーバ27は、コードを生成し、それに署名し、メッセージ126において、モバイルハンドセット28に署名付きコードを送る。従来のウェブブラウザでは、ウェブブラウザは、ウェブブラウザからのスクリプトの実行を防ぐか、または既存のドキュメントと対話するその能力を制限し得る。
【００３５】
上記で説明した実施形態は、たとえば、セルラー電話、セルラー電話をもつ個人情報端末(PDA)、モバイル電子メール受信機、モバイルウェブアクセスデバイス、および将来開発され得る、ワイヤレスネットワークに接続する他のプロセッサ搭載デバイスなど、様々なモバイルハンドセットのいずれにも実装され得る。一般に、そのようなモバイルハンドセットは、図7に示す構成要素を共通に有する。たとえば、モバイルハンドセット170は、内部メモリ172とディスプレイ173とに結合されたプロセッサ171を含む。さらに、モバイルハンドセット170は、プロセッサ171に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ175に接続される、電磁放射を送信および受信するためのアンテナ174を有する。いくつかの実装形態では、セルラー電話通信に使用されるトランシーバ175ならびにプロセッサ171およびメモリ172の一部分を、ワイヤレスデータリンクを介してデータインターフェースを提供することから、エアインターフェースと呼ぶ。
【００３６】
プロセッサ171は、上記で説明した様々な実施形態の機能を含む、様々な機能を実施するようにソフトウェア命令(アプリケーション)によって構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータあるいは1つまたは複数の多重プロセッサチップであり得る。モバイルハンドセットによっては、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサ171が与えられ得る。一般に、ソフトウェアアプリケーションは、アクセスされ、プロセッサ171にロードされる前に内部メモリ172に記憶され得る。一部のモバイルハンドセットでは、プロセッサ171は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。本明細書では、メモリという用語は、内部メモリ172と、プロセッサ171自体の中のメモリとを含む、プロセッサ171によってアクセス可能なすべてのメモリを指す。ユーザデータファイルは一般にメモリ172に記憶される。多くのモバイルハンドセットでは、メモリ172は、揮発性メモリ、またはフラッシュメモリなどの不揮発性メモリ、あるいは両方の混合であり得る。モバイルハンドセットは、一般に、ユーザ入力を受け取るためのキーパッド176または小型キーボードおよびメニュー選択ボタンまたはロッカースイッチ177を含む。
【００３７】
上記で説明した実施形態は、たとえば、図8に示すパーソナルコンピュータ29など、様々なコンピューティングデバイスのいずれにも実装され得る。そのようなパーソナルコンピュータ29は、一般に、コンピュータハウジング160と、揮発性メモリ162に結合されたプロセッサ161と、ディスクドライブ163などの大容量不揮発性メモリとを含む。コンピュータ29は、プロセッサ161に結合されたフレキシブルディスクドライブ164およびコンパクトディスク(CD)ドライブ165をも含み得る。一般に、コンピュータ29はまた、キーボード166のようなユーザ入力デバイスと、ディスプレイ137とを含むことになる。コンピュータ29は、ユニバーサルシリアルバス(USB)ポート(図示せず)、ならびにプロセッサ161をネットワークに結合するためのネットワーク接続回路(図示せず)など、プロセッサ161に結合された外部メモリデバイスを受けるためのいくつかのコネクタポートをも含み得る。ラップトップ構成では、コンピュータハウジング160は、キーボード166とディスプレイ137とを含む。
【００３８】
1つまたは複数の例示的な実施形態では、説明した機能はハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用でき、コンピュータによってアクセスできる、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フレキシブルディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００３９】
開示した実施形態の前述の説明は、当業者が本発明を実施または使用できるようにするために提供されるものである。これらの実施形態に対する様々な変更は、当業者には容易に明らかとなり、本明細書で定義された一般的な原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４０】
10  通信ネットワーク
16  基地局
18  モバイル交換センター
20  認証局サーバ
22  サーバゲートウェイ
23  サーバゲートウェイ
24  インターネット
26  ウェブサーバ
27  ウェブサーバ
28  モバイルハンドセット
29  パーソナルコンピュータ
137  ディスプレイ
160  コンピュータハウジング
161  プロセッサ
162  揮発性メモリ
163  ディスクドライブ
164  フレキシブルディスクドライブ
165  コンパクトディスクドライブ
166  キーボード
170  モバイルハンドセット
171  プロセッサ
172  内部メモリ
173  ディスプレイ
174  アンテナ
175  セルラー電話トランシーバ
176  キーパッド
177  ロッカースイッチ
【図２】
0005599870.tif 000002
【図３Ｂ】
0005599870.tif 000003
【図７】
0005599870.tif 000004
【図８】
0005599870.tif 000005
【図１】
0005599870.tif 000006
【図３Ａ】
0005599870.tif 000007
【図３Ｃ】
0005599870.tif 000008
【図４Ａ】
0005599870.tif 000009
【図４Ｂ】
0005599870.tif 000010
【図５】
0005599870.tif 000011
【図６】
0005599870.tif 000012