(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-13
(54)【発明の名称】コードベースの二要素認証
(51)【国際特許分類】
G06F 21/31 20130101AFI20240606BHJP
G06F 21/33 20130101ALI20240606BHJP
G06F 21/42 20130101ALI20240606BHJP
G06F 21/36 20130101ALI20240606BHJP
【FI】
G06F21/31
G06F21/33
G06F21/42
G06F21/36
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023573162
(86)(22)【出願日】2022-06-28
(85)【翻訳文提出日】2023-11-27
(86)【国際出願番号】 US2022035293
(87)【国際公開番号】W WO2023278426
(87)【国際公開日】2023-01-05
(32)【優先日】2021-06-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-06-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(71)【出願人】
【識別番号】596102126
【氏名又は名称】ソニー ピクチャーズ エンターテインメント インコーポレイテッド
(74)【代理人】
【識別番号】100092093
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】ディール エリック
(72)【発明者】
【氏名】ルドラバトラ チャイタニヤ
(57)【要約】
ユーザ装置からリモートサービスにアクセスするためのユーザアカウントを認証することが、リモートサービスによって提供される、ユーザ装置上に表示された機械可読画像コードを、モバイル装置を使用して取り込むことと、画像コードに埋め込まれた対応するセッションコードを抽出して呼び出すことと、ストレージ内に電話トークンが存在するかどうかを判定することと、(a)ストレージ内に電話トークンが存在する場合、電話トークンをリモートサービスに送信すること、又は(b)ストレージ内に電話トークンが存在しない場合、ユーザにユーザ名及びパスワードを含む認証情報を入力するように促して、入力された認証情報をリモートサービスに送信すること、の一方を行うことと、セッションコードが有効であり、かつ認証情報が有効であり又は電話トークンが確認された場合に、ユーザ装置のリモートサービスへのアクセスを受け取ることと、を含む。
【選択図】 なし
【特許請求の範囲】
【請求項1】
ユーザ装置からリモートサービスにアクセスするためのユーザアカウントを認証する方法であって、
前記リモートサービスによって提供される、前記ユーザ装置上に表示された機械可読画像コードを、モバイル装置を使用して取り込むことと、
前記機械可読画像コードに埋め込まれた対応するセッションコードを抽出して呼び出すことと、
ストレージ内に電話トークンが存在するかどうかを判定することと、
(a)前記ストレージ内に前記電話トークンが存在する場合、前記電話トークンを前記リモートサービスに送信すること、又は(b)前記ストレージ内に前記電話トークンが存在しない場合、ユーザにユーザ名及びパスワードを含む認証情報を入力するように促して、該入力された認証情報を前記リモートサービスに送信すること、の一方を行うことと、
前記セッションコードが有効であり、かつ前記認証情報が有効であり又は前記電話トークンが確認された場合に、前記ユーザ装置の前記リモートサービスへのアクセスを受け取ることと、
を含むことを特徴とする方法。
【請求項2】
前記機械可読画像コードは、クイックレスポンス(QR)コードを含む、
請求項1に記載の方法。
【請求項3】
前記ユーザ装置は、テレビ、コンピュータ又はゲーム機のうちの1つである、
請求項1に記載の方法。
【請求項4】
前記ユーザ装置にインストールされたリモートサービスアプリケーションによって前記機械可読画像コードを表示することをさらに含む、
請求項1に記載の方法。
【請求項5】
前記リモート装置から前記電話トークンが受け取られた時に、前記電話トークンを前記モバイル装置の前記ストレージに記憶することをさらに含む、
請求項1に記載の方法。
【請求項6】
ユーザ装置からリモートサービスにアクセスするためのユーザアカウントを認証するリモートサービス方法であって、
モバイル装置からセッションコードを受け取ることと、
前記セッションコードがセット構造内の保留中のセッションコードのうちの1つに一致するかどうかを判定することと、
前記一致したセッションコードを前記セット構造から削除することと、
電話トークン又は前記ユーザアカウントの認証情報を受け取ることと、
(a)前記認証情報が受け取られた場合、前記認証情報の有効性を判定すること、又は(b)前記認証情報が受け取られない場合、前記リモートサービスの認証情報データベース内に前記電話トークンが存在するかどうかを判定すること、の一方を行うことと、
前記認証情報が有効であると判定された場合、前記電話トークンを生成して前記ユーザ装置に送信することと、
前記認証情報を使用して、前記ユーザ装置にインストールされたリモートサービスアプリケーションに前記リモートサービスへのアクセスを許可することと、
を含むことを特徴とする方法。
【請求項7】
前記セッションコードを生成して前記セット構造に記憶することと、
前記記憶されたセッションコードを使用して機械可読画像コードを生成することと、
前記生成された機械可読画像コードを、前記ユーザ装置にインストールされた前記リモートサービスアプリケーションに送信することと、
をさらに含む、請求項6に記載のリモートサービス方法。
【請求項8】
前記認証情報は、ユーザ名及びパスワードを含み、前記認証情報の前記有効性を判定することは、
前記パスワードをソルト化してsaltedpasswordを生成することと、
前記認証情報データベース内に{ユーザ名、saltedPassword}のペアが存在するかどうかをチェックすることと、
を含み、
前記saltedPasswordは、パスワード及びソルトの組み合わせにハッシュ関数を適用した結果であり、
ソルトは乱数である、
請求項6に記載のリモートサービス方法。
【請求項9】
前記電話トークンは、ユーザ名を含むJava Web Tokenである、
請求項6に記載のリモートサービス方法。
【請求項10】
前記電話トークンをソルト化ハッシュとして前記認証情報データベースに記憶することをさらに含む、
請求項6に記載のリモートサービス方法。
【請求項11】
前記モバイル装置に前記電話トークンを送信して、前記モバイル装置のストレージに前記電話トークンを記憶することをさらに含む、
請求項6に記載のリモートサービス方法。
【請求項12】
前記セッションコードは、該セッションコードの使用を制限する有効期限を含む、
請求項6に記載のリモートサービス方法。
【請求項13】
前記電話トークンは、該電話トークンの使用を制限する有効期限を含む、
請求項6に記載のリモートサービス方法。
【請求項14】
リモートサービスにアクセスするためのユーザアカウントを認証するシステムであって、
前記リモートサービスによって提供される機械可読画像コードを表示するリモートサービスアプリケーションを含むユーザ装置と、
前記リモートサービスにアクセスするための前記機械可読画像コードを取り込み、前記機械可読画像コードに埋め込まれた対応するセッションコードを抽出して呼び出し、前記抽出されたセッションコード、及び(a)自機のストレージ内の電話トークン又は(b)ユーザから取得された認証情報の一方を前記リモートサービスに送信して、前記認証情報が有効である場合、又は前記電話トークンが確認された場合に、前記ユーザ装置の前記リモートサービスへのアクセスを受け取る、モバイル装置と、
を含む、ことを特徴とするシステム。
【請求項15】
前記機械可読画像コードは、クイックレスポンス(QR)コードを含む、
請求項14に記載のシステム。
【請求項16】
前記ユーザ装置は、テレビ、コンピュータ又はゲーム機のうちの1つである、
請求項14に記載のシステム。
【請求項17】
前記モバイル装置から前記セッションコードを受け取り、前記セッションコードが前記セット構造内の保留中のセッションコードのうちの1つに一致するかどうかを判定し、前記一致したセッションコードを前記セット構造から削除する、リモートサービスをさらに含み、
前記リモートサービスは、前記電話トークン又は前記ユーザアカウントの前記認証情報を受け取り、(a)前記認証情報の有効性、又は(b)前記リモートサービスの認証情報データベースにおける前記電話トークンの存在を判定し、
前記リモートサービスは、前記セッションコードが前記セット構造内の前記保留中のセッションコードのうちの1つに一致し、かつ(a)前記認証情報が有効であり、又は(b)前記電話トークンが前記リモートサービスの前記認証情報データベース内に存在する場合に、前記リモートサービスのための前記ユーザ装置にインストールされた前記リモートサービスアプリケーションへのアクセスを許可する、
請求項14に記載のシステム。
【請求項18】
前記セッションコードは、該セッションコードの使用を制限する有効期限を含む、
請求項17に記載のシステム。
【請求項19】
前記電話トークンは、ユーザ名を含むJava Web Tokenである、
請求項14に記載のシステム。
【請求項20】
前記電話トークンは、該電話トークンの使用を制限する有効期限を含む、
請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願との相互参照〕
本出願は、2021年6月30日に出願された「QRコードベースの二要素認証(QR Code-Based Two Factor Authentication)」という名称の同時係属中の米国仮特許出願第63/217,029号の米国特許法第119条に基づく優先権の利益を主張するものである。上記出願の開示は、引用により本明細書に組み入れられる。
【0002】
本開示は、二要素認証に関し、具体的には、ユーザ装置においてリモートサービスにアクセスするためのユーザアカウントの認証に関する。
【背景技術】
【0003】
スマートTV、セットトップボックス、又はApple TV(TM)などの専用装置上で動作する多くのストリーミングサービスはユーザ認証を必要とする。多くの場合、この認証は使い勝手が悪く、特に新たなアクセス毎に認証義務がある場合にはなおさらである。例えば、リモコン装置のみを使用する場合、複雑なパスワードを入力する作業はすぐに面倒になってしまうことがある。
【0004】
ほとんどの従来のソリューションは、伝統的なユーザ名とパスワードとの組み合わせを使用する。しかしながら、この組み合わせは使い勝手が悪く、安全でない場合もある。ソリューションの中には、登録電話を用いた伝統的な二要素認証(2FA)を使用するものもある。このサービスは、ユーザの登録済みモバイル装置にSMSを介してコードを送信する。このソリューションでも、ユーザはリモコン装置を介して自身の認証情報を入力する必要がある。他のソリューションには、既に登録済みの装置にコードを送信することによってユーザの装置を登録するものもある。この場合も、ユーザはリモコン装置を使用して認証情報を入力しなければならない。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示は、リモートサービスにアクセスするためのユーザアカウントの認証を提供する。
【0006】
1つの実装では、ユーザ装置からリモートサービスにアクセスするためのユーザアカウントを認証する方法を開示する。方法は、リモートサービスによって提供される、ユーザ装置上に表示された機械可読画像コードを、モバイル装置を使用して取り込むことを含む。方法は、画像コードに埋め込まれた対応するセッションコードを抽出して呼び出すことも含む。方法は、ストレージ内に電話トークンが存在するかどうかを判定することと、(a)ストレージ内に電話トークンが存在する場合、電話トークンをリモートサービスに送信すること、又は(b)ストレージ内に電話トークンが存在しない場合、ユーザにユーザ名及びパスワードを含む認証情報を入力するように促して、入力された認証情報をリモートサービスに送信すること、の一方を行うことと、をさらに含む。方法は、セッションコードが有効であり、かつ認証情報が有効であり又は電話トークンが確認された場合に、ユーザ装置のリモートサービスへのアクセスを受け取ることをさらに含む。
【0007】
別の実装では、ユーザ装置においてリモートサービスにアクセスするためのユーザアカウントを認証するリモートサービス方法を開示する。この方法は、モバイル装置からセッションコードを受け取ることと、セッションコードがセット構造内の保留中のセッションコードのうちの1つに一致するかどうかを判定することと、一致したセッションコードをセット構造から削除することと、を含む。方法は、電話トークン又はユーザアカウントの認証情報を受け取ることと、(a)認証情報が受け取られた場合、認証情報の有効性を判定すること、又は(b)認証情報が受け取られない場合、リモートサービスの認証情報データベース内に電話トークンが存在するかどうかを判定すること、の一方を行うことと、をさらに含む。方法は、認証情報が有効であると判定された場合、電話トークンを生成してユーザ装置に送信することと、認証情報を使用して、ユーザ装置にインストールされたリモートサービスアプリケーションにリモートサービスへのアクセスを許可することと、をさらに含む。
【0008】
さらに別の実装では、リモートサービスにアクセスするためのユーザアカウントを認証するシステムが、ユーザ装置、モバイル装置、及びリモートサービスを含む。ユーザ装置は、リモートサービスによって提供される機械可読画像コードを表示するリモートサービスアプリケーションを含む。モバイル装置は、リモートサービスにアクセスするための機械可読画像コードを取り込み、機械可読画像コードに埋め込まれた対応するセッションコードを抽出して呼び出す。また、モバイル装置は、抽出されたセッションコード、及び(a)モバイル装置のストレージ内の電話トークン又は(b)ユーザから取得された認証情報の一方をリモートサービスに送信して、認証情報が有効である場合、又は電話トークンが確認された場合に、ユーザ装置のリモートサービスへのアクセスを受け取る。
【0009】
本開示の態様を一例として示す本明細書からは、他の特徴及び利点も明らかになるはずである。
【0010】
同じ部分を同じ参照数字によって示す添付図面を検討することにより、本開示の詳細をその構造及び動作の両方に関して部分的に入手することができる。
【図面の簡単な説明】
【0011】
【
図1】本開示の1つの実装による、ユーザ装置においてリモートサービスにアクセスするためのユーザアカウントを認証するプロセスのフロー図である。
【
図2】本開示の1つの実装による、リモートサービスにアクセスするためのユーザアカウントを認証するリモートサービスプロセスのフロー図である。
【
図3】本開示の1つの実装による、リモートサービスにアクセスするためのユーザアカウントを認証するシステムのブロック図である。
【
図4A】本開示の1つの実装によるコンピュータシステム及びユーザの表現である。
【
図4B】本開示の1つの実装による、認証アプリケーションをホストするコンピュータシステムを示す機能ブロック図である。
【発明を実施するための形態】
【0012】
上述したように、多くのストリーミングサービスのユーザ認証は使い勝手が悪いことが多く、リモコン装置のみを使用する場合にはすぐに作業が面倒になってしまうことがある。従って、ユーザアカウントを認証する単純な方法が必要とされている。
【0013】
本開示のいくつかの実装は、ユーザアカウントを認証する方法及びシステムを提供する。1つの実装では、サーバシステムが、セッションコードを含む機械可読コード(例えば、クイックレスポンス(QR)コード)をユーザ装置に提供する。ユーザは、モバイル装置を使用してユーザ装置からQRコードの画像を取り込み、QRコードからセッションコードを抽出する。モバイル装置は、セッションコードをサーバシステムに戻す。すると、サーバシステムは、受け取った情報を認証して、サーバシステムが提供するサービスへのアクセスを(ディスプレイを含む)ユーザ装置に許可する。1つの例では、サーバシステムがコンテンツストリーミングサービスを提供する。別の例では、ディスプレイ装置が、インターネットを通じてリモートサービスシステムに接続されたテレビである。
【0014】
実装において提供する機能は、限定するわけではないが、以下の項目のうちの1つ又は2つ以上を含むことができる。
(a)セッションコードを作成し、セッションコードを含む画像コード(QRコードなど)を作成すること、
(b)画像コードの取り込み画像からセッションコードを抽出すること、
(c)将来的なトランザクションについてモバイル装置を識別するためのモバイル装置用トークンを作成すること、及び、
(d)セッションコード及びユーザ認証情報、又はセッションコード及びトークンを使用してユーザ装置を認証すること。
【0015】
以下の説明を読んだ後には、様々な実装及び用途における本開示の実装方法が明らかになるであろう。本明細書では本開示の様々な実装について説明するが、これらの実装はほんの一例として提示するものであり、限定ではないと理解されたい。従って、様々な実装の詳細な説明は、本開示の範囲又は外延を限定するものとして解釈すべきではない。
【0016】
1つの実装では、コンテンツサービスが、サーバシステム(例えば、リモートサービス)からインターネットを介してテレビ、コンピュータ又はゲーム機などのユーザ装置にビデオデータを送信することによってストリーミングビデオを提供する。1つの実装では、ユーザ装置が、リモート/ストリーミングサービスに接続するアプリケーションを含む。ユーザは、アプリケーションを起動してリモート/ストリーミングサービスにアクセスする。
【0017】
例えば、ユーザは、テレビを通じてストリーミングサービスにアクセスするために、モバイル装置を使用してサーバシステムとの間でテレビを認証する。ユーザは、(インターネットに接続された)テレビを通じてサービスへのアクセスを要求する。サーバシステムは、セッションコードを作成するとともに、セッションコードを示すQRコードを作成する。サーバシステムは、インターネットを通じてテレビにQRコードを送信する。テレビは、受け取ったQRコードを表示する。ユーザは、モバイル装置のカメラを使用してQRコードの画像を取り込む。モバイル装置は、QRコード画像からセッションコードを抽出又は導出する。
【0018】
1つの実装では、モバイル装置が、サーバシステムから受け取られたセッションコード及びトークンを使用する。モバイル装置は、トークンを有していない場合には、トークンを使用せずにセッションコードをサーバシステムに送信する。サーバシステムはセッションコードを検証し、モバイル装置にユーザ認証情報(ユーザ名及びパスワードなど)を要求する。モバイル装置は、(未だユーザ認証情報を記憶していない場合には)ユーザにユーザ認証情報を要求してこれを受け取り、その後に認証情報をサーバシステムに送信する。サーバシステムは、認証情報を検証する。サーバシステムは、検証後にテレビにストリーミングサービスへのアクセスを許可する。認証されたテレビは、サーバシステムにビデオデータを要求し、これを受け取って表示することができる。サーバは、ユーザに関連するトークン(例えば、ユーザ名)も作成して記憶し、このトークンをモバイル装置に送信する。モバイル装置は、将来的な要求のためにトークンを記憶する。
【0019】
モバイル装置は、以前にサーバシステムからトークンを受け取っている場合、セッションコード及びトークンをサーバシステムに送信する。サーバシステムは、セッションコード及びトークンを検証する。サーバシステムは、検証後にテレビにストリーミングサービスへのアクセスを許可する。認証されたテレビは、サーバシステムにビデオデータを要求し、これを受け取って表示することができる。
【0020】
図1は、本開示の1つの実装による、ユーザ装置においてリモートサービスにアクセスするためのユーザアカウントを認証するプロセス100のフロー図である。1つの実装では、ユーザ装置を使用してリモートサービスにアクセスするために、ブロック110において、ユーザがモバイル装置を使用して、ユーザ装置上に表示された画像コード(例えば、QRコード)を取り込む。画像コードは、バーコード、近距離無線通信(NFC)タグ、SnapTags、画像認識(Image Recognition)、Bluetoothビーコンなどの他のコード又はタグを含むこともできる。1つの実装では、ユーザ装置が、テレビ、コンピュータ又はゲーム機のうちの1つである。1つの実装では、ユーザ装置にインストールされたリモートサービスアプリケーションによってQRコードが表示される。
【0021】
ブロック110においてQRコードが取り込まれると、ブロック112において、モバイル装置が、QRコードに埋め込まれた対応するロケーションコード(例えば、ユニフォームリソースロケータ(URL))を抽出して呼び出す。この機能は、モバイル装置の最近のオペレーティングシステム内にしばしば存在する。いくつかの実装では、モバイル装置が、対応するセッションコードを抽出してリモートサービスに送信することもできる。モバイル装置は、ブロック120において、自機のストレージに電話トークンを有しているかどうかを判定するチェックを行う。モバイル装置は、既に電話トークンを有していると判定した場合、ブロック130において電話トークンをリモートサービスに送信し、ブロック132において確認を待つ。
【0022】
一方で、モバイル装置は、電話トークンを有していないと判定した場合、ブロック122においてユーザにユーザ名及びパスワードを含む認証情報を入力するように促す。ブロック140において、モバイル装置は、受け取った認証情報をリモートサービスに送信する。次に、ブロック150において、モバイル装置は、電話トークンを保持するトークン応答を待つ。モバイル装置は、ブロック160において(未だモバイル装置がトークンを記憶していない場合にはトークンと共に)確認を受け取ると、ブロック170においてセキュアなストレージにトークンを記憶する。さらに、モバイル装置が確認を受け取ると、サーバシステムは、ユーザ装置にストリーミングサービスへのアクセスを許可する。この結果、認証されたユーザ装置は、リモートサービスにビデオデータを要求し、これを受け取って表示することができる。
【0023】
特定の実装では、ユーザ装置からリモートサービスにアクセスするためのユーザアカウントを認証する方法を開示する。この方法は、リモートサービスによって提供される、ユーザ装置上に表示された機械可読画像コードを、モバイル装置を使用して取り込むことと、画像コードに埋め込まれた対応するセッションコードを抽出して呼び出すことと、ストレージ内に電話トークンが存在するかどうかを判定することと、(a)ストレージ内に電話トークンが存在する場合、電話トークンをリモートサービスに送信すること、又は(b)ストレージ内に電話トークンが存在しない場合、ユーザにユーザ名及びパスワードを含む認証情報を入力するように促して、入力された認証情報をリモートサービスに送信すること、の一方を行うことと、セッションコードが有効であり、かつ認証情報が有効であり又は電話トークンが確認された場合に、ユーザ装置のリモートサービスへのアクセスを受け取ることと、を含む。
【0024】
1つの実装では、機械可読画像コードがクイックレスポンス(QR)コードを含む。1つの実装では、ユーザ装置が、テレビ、コンピュータ又はゲーム機のうちの1つである。1つの実装では、方法が、ユーザ装置にインストールされたリモートサービスアプリケーションによって機械可読画像コードを表示することをさらに含む。1つの実装では、方法が、リモート装置から電話トークンが受け取られた時に、電話トークンをモバイル装置のストレージに記憶することをさらに含む。
【0025】
図2は、本開示の1つの実装による、リモートサービスにアクセスするためのユーザアカウントを認証するリモートサービスプロセス200のフロー図である。最初に、リモートサービスは、ユーザアカウントを認証するために、(a)セッションコード(例えば、256ビットのノンスセッションコード(nonce session code))を生成してこのコードをセット構造(set structure)に記憶するステップと、(b)記憶されたセッションコードを使用して、(例えば、RFC2045標準に従って2進数を文字列に符号化するURLlbase64によって定められる)QRコードを生成するステップと、(c)生成されたQRコードを、ユーザ装置にインストールされた上述したようなリモートサービスアプリケーションに送信するステップと、を実行する。
【0026】
図2の例示的な実装では、ブロック210において、リモートサービスが、モバイル装置によって送信されたQRコードを受け取って(例えば、base64符号化されたコードを復号することによって)セッションコードを抽出する。リモートサービスは、ブロック220において、抽出されたコードが保留中のセッションコードのうちの1つであるかどうかを判定する。リモートサービスは、取り出されたコードが保留中のセッションコードのうちの1つであるとブロック220において判定した場合、対応するセッションコードをセット構造から削除する。次に、リモートサービスは、ブロック222において、ユーザの認証情報(例えば、ユーザ名及びパスワード)を提供するための応答要求メッセージをモバイル装置に送信する。
【0027】
リモートサービスは、ブロック230においてモバイル装置が認証情報で応答したと判定した場合、ブロック234において認証情報の有効性をチェックする。1つの実装では、リモートサービスが、saltedPasswordを計算して{ユーザ名、saltedPassword}のペアがリモートサービスの認証情報データベース内に存在するかどうかをチェックすることによって認証情報を検証する。1つの実装では、saltedPassword=SHA512(password|salt)であり、ソルトは512ビットの乱数である。リモートサービスは、ブロック234において認証情報が有効であると判定すると、ブロック240において電話トークンを生成し、生成された電話トークンをユーザ装置に送信する。1つの実装では、電話トークンが、ユーザ名(username)を含むJava Web Token(例えば、256ビットのnonce)である。1つの実装では、リモートサービスが、電話トークンをソルト化ハッシュなどとして認証情報データベースに記憶することも行う。モバイル装置は、その後のリモートサービスの使用時に、迅速なアクセスのために、取り込まれたコード及び記憶された電話トークンの両方を送信する。
【0028】
一方で、リモートサービスは、ブロック230においてモバイル装置が認証情報で応答しなかったと判定した場合、ブロック232において、モバイル装置が電話トークンで応答したかどうか、及びその電話トークンがリモートサービスの認証情報データベース内に存在するかどうかを判定するチェックを行う。ブロック232において、モバイル装置が電話トークンで応答してリモートサービスの認証情報データベース内にその電話トークンが存在すると判定された場合、リモートサービスは、(電話トークンに関連する)ユーザ名を含むJava Web Tokenを生成し、これをユーザ装置に送信することができる。なお、Java Web Tokenは、ユーザ名のみを伝えて電話トークンを伝えない。ブロック232及びブロック234における試験(すなわち、既知のトークン及び認証情報の有効性試験)に合格すると、リモートサービスは、ブロック250においてそのユーザのユーザ名についてアプリケーションへのアクセスを許可する。モバイル装置が電話トークンを有していないという理由で認証情報で応答した場合、リモートサービスは、モバイル装置に電話トークンを返送してモバイル装置のストレージにセキュアに記憶することも行う。
【0029】
1つの実装では、リモートサービスがセッションコードに有効期限を追加してセキュリティを強化する。従って、有効期限後にモバイル装置が応答した場合は認証に失敗する恐れがある。別の実装では、電話トークンも有効期限を有する。従って、有効期限切れのトークンが提示された場合には、モバイル装置に対して有効なユーザ名及びパスワードを提示するように命令することができる。さらに別の実装では、リモートサービスが、電話トークンの値又は新しさにかかわらず認証情報の提示をランダムに要求する。さらなる実施形態では、リモートサービスが、ユーザ名に関連する電話トークンの数を制限する。
【0030】
1つの実装では、ユーザ装置からリモートサービスにアクセスするためのユーザアカウントを認証するリモートサービス方法を開示する。この方法は、モバイル装置からセッションコードを受け取ることと、セッションコードがセット構造内の保留中のセッションコードのうちの1つに一致するかどうかを判定することと、一致したセッションコードをセット構造から削除することと、電話トークン又はユーザアカウントの認証情報を受け取ることと、(a)認証情報が受け取られた場合、認証情報の有効性を判定すること、又は(b)認証情報が受け取られない場合、リモートサービスの認証情報データベース内に電話トークンが存在するかどうかを判定すること、の一方を行うことと、認証情報が有効であると判定された場合、電話トークンを生成してユーザ装置に送信することと、認証情報を使用して、ユーザ装置にインストールされたリモートサービスアプリケーションにリモートサービスへのアクセスを許可することと、を含む。
【0031】
1つの実装では、方法が、セッションコードを生成してセット構造に記憶することと、記憶されたセッションコードを使用して機械可読画像コードを生成することと、生成された機械可読画像コードを、ユーザ装置にインストールされたリモートサービスアプリケーションに送信することと、をさらに含む。1つの実装では、認証情報がユーザ名及びパスワードを含み、認証情報の有効性を判定することが、パスワードをソルト化してsaltedpasswordを生成することと、認証情報データベース内に{ユーザ名、saltedPassword}のペアが存在するかどうかをチェックすることとを含み、saltedPasswordはパスワード及びソルトの組み合わせにハッシュ関数を適用した結果であり、ソルトは乱数である。1つの実装では、電話トークンが、ユーザ名を含むJava Web Tokenである。1つの実装では、方法が、電話トークンをソルト化ハッシュとして認証情報データベースに記憶することをさらに含む。1つの実装では、方法が、モバイル装置に電話トークンを送信してモバイル装置のストレージに電話トークンを記憶することをさらに含む。1つの実装では、セッションコードが、セッションコードの使用を制限する有効期限を含む。1つの実装では、電話トークンが、電話トークンの使用を制限する有効期限を含む。
【0032】
図3は、本開示の1つの実装による、リモートサービスにアクセスするためのユーザアカウントを認証するシステム300のブロック図である。
図3の例示的な実装では、システム300が、ユーザ装置310、モバイル装置320、及びリモートサービス330を含む。1つの実装では、システム300のブロック320、330、340が、1又は2以上のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又はその他の同等の集積又はディスクリート論理回路を含むハードウェアで完全に構成される。
【0033】
図3の例示的な実装では、リモートサービス330にアクセスするために、ユーザ装置310上に表示されたQRコードをモバイル装置320を使用して取り込む。1つの実装では、ユーザ装置310が、テレビ、コンピュータ又はゲーム機のうちの1つである。1つの実装では、ユーザ装置310にインストールされたリモートサービスアプリケーション312によってQRコードが表示される。モバイル装置320は、QRコードが取り込まれると、QRコードに埋め込まれた対応するURLを抽出して呼び出す。モバイル装置320は、自機のストレージ内に電話トークンを有しているかどうかをチェックする。モバイル装置320は、既に電話トークンを有している場合には、電話トークンをリモートサービス330に送信して確認を待つ。
【0034】
一方で、モバイル装置320は、電話トークンを有していない場合には、ユーザにユーザ名及びパスワードを含む認証情報を入力するように促す。次に、モバイル装置320は、受け取った認証情報をリモートサービス330に送信する。その後、モバイル装置320は、電話トークンを保持するトークン応答を待つ。モバイル装置320は、(モバイル装置が未だ電話トークンを有していない場合には電話トークンと共に)確認を受け取ると、電話トークンをストレージに記憶する。さらに、モバイル装置320が確認を受け取ると、リモートサービス330は、ユーザ装置310にストリーミングサービスへのアクセスを許可する。この結果、認証されたユーザ装置は、リモートサービスにビデオデータを要求し、これを受け取って表示することができる。
【0035】
図3の例示的な実装では、リモートサービス330が、モバイル装置320によって送信されたQRコードを受け取って(例えば、base64符号化されたコードを復号することによって)セッションコードを抽出する。リモートサービス330は、抽出されたコードが保留中のセッションコードのうちの1つであるかどうかをチェックする。リモートサービス330は、抽出されたコードが保留中のセッションコードのうちの1つである場合(かつトークンなしで送信された場合)、対応するセッションコードをセット構造から削除し、ユーザの認証情報(例えば、ユーザ名及びパスワード)を提供するための要求応答メッセージをモバイル装置320に送信する。モバイル装置320が認証情報で応答した場合、リモートサービス330は認証情報の有効性をチェックする。認証情報が有効である場合、リモートサービス330は電話トークンを生成し、生成された電話トークンをユーザ装置310に送信する。モバイル装置320は、その後のリモートサービス330の使用時に、迅速なアクセスのために、取り込まれたコード及び記憶された電話トークンの両方を送信する。
【0036】
一方で、モバイル装置320が認証情報で応答せずに電話トークンで応答した場合、リモートサービス330は、リモートサービス320の認証情報データベース内にその電話トークンが存在するかどうかをチェックする。リモートサービス330の認証情報データベース内に電話トークンが存在する場合、リモートサービス330は、電話トークンに関連するユーザ名を含むJava Web Tokenを生成し、これをユーザ装置310に送信する。トークン又は認証情報の有効性試験のいずれかに合格した場合、リモートサービス330は、そのユーザのユーザ名についてアプリケーションへのアクセスを許可する。リモートサービス330は、モバイル装置320にモバイル装置トークンを返送してモバイル装置320のストレージにセキュアに記憶することも行う。
【0037】
特定の実装では、リモートサービスにアクセスするためのユーザアカウントを認証するシステムを開示する。このシステムは、リモートサービスによって提供される機械可読画像コードを表示するリモートサービスアプリケーションを含むユーザ装置と、リモートサービスにアクセスするための機械可読画像コードを取り込み、機械可読画像コードに埋め込まれた対応するセッションコードを抽出して呼び出し、抽出されたセッションコード、及び(a)自機のストレージ内の電話トークン又は(b)ユーザから取得した認証情報の一方をリモートサービスに送信して、認証情報が有効である場合、又は電話トークンが確認された場合に、ユーザ装置のリモートサービスへのアクセスを受け取るモバイル装置と、を含む。
【0038】
1つの実装では、機械可読画像コードがクイックレスポンス(QR)コードを含む。1つの実装では、ユーザ装置が、テレビ、コンピュータ又はゲーム機のうちの1つである。1つの実装では、システムが、モバイル装置からロケーションコードを受け取ってセッションコードを抽出し、抽出されたセッションコードがセット構造内の保留中のセッションコードのうちの1つに一致するかどうかを判定するリモートサービスをさらに含み、このリモートサービスは、電話トークン又はユーザアカウントの認証情報を受け取り、(a)認証情報の有効性、又は(b)リモートサービスの認証情報データベースにおける電話トークンの存在を判定し、(a)認証情報が有効である場合、又は(b)リモートサービスの認証情報データベース内に電話トークンが存在する場合に、リモートサービスのためのユーザ装置にインストールされたリモートサービスアプリケーションへのアクセスを許可する。1つの実装では、セッションコードが、セッションコードの使用を制限する有効期限を含む。1つの実装では、電話トークンが、ユーザ名を含むJava Web Tokenである。1つの実装では、電話トークンが、電話トークンの使用を制限する有効期限を含む。
【0039】
図4Aは、本開示の実装によるコンピュータシステム400及びユーザ402の表現である。ユーザ402は、コンピュータシステム400を使用して、
図1及び
図2のプロセス100、200、並びに
図3のシステム300に関するリモートサービスにアクセスするためのユーザアカウントを認証する認証アプリケーション490を実行する。
【0040】
コンピュータシステム400は、
図4Bの認証アプリケーション490を記憶して実行する。また、コンピュータシステム400は、ソフトウェアプログラム404と通信することができる。ソフトウェアプログラム404は、認証アプリケーション490のためのソフトウェアコードを含むことができる。以下でさらに説明するように、ソフトウェアプログラム404は、CD、DVD又はストレージドライブなどの外部媒体にロードすることができる。
【0041】
さらに、コンピュータシステム400は、ネットワーク480に接続することができる。ネットワーク480は、例えばクライアント-サーバアーキテクチャ、ピアツーピアネットワークアーキテクチャ又はその他のタイプのアーキテクチャなどの、様々な異なるアーキテクチャで接続することができる。例えば、ネットワーク480は、レンズパラメータシフティングアプリケーション490内で使用されるエンジン及びデータを協調させるサーバ485と通信することができる。また、ネットワークは異なるタイプのネットワークであることもできる。例えば、ネットワーク480は、インターネット、ローカルエリアネットワーク又はローカルエリアネットワークのいずれかの変形形態、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、イントラネット又はエクストラネット、或いは無線ネットワークであることができる。
【0042】
図4Bは、本開示の実装による、認証アプリケーション490をホストするコンピュータシステム400を示す機能ブロック図である。コントローラ410はプログラマブルプロセッサであり、コンピュータシステム400及びそのコンポーネントの動作を制御する。コントローラ410は、メモリ420又は埋め込みコントローラメモリ(図示せず)から(例えば、コンピュータプログラムの形態の)命令をロードし、これらの命令を実行してデータ処理などを行うようにシステムを制御する。コントローラ410は、その実行において、認証アプリケーション490にソフトウェアシステムを提供する。或いは、このサービスは、コントローラ410又はコンピュータシステム400内の別のハードウェアコンポーネントとして実装することもできる。
【0043】
メモリ420は、コンピュータシステム400の他のコンポーネントによって使用されるデータを一時的に記憶する。1つの実装では、メモリ420がRAMとして実装される。1つの実装では、メモリ420が、フラッシュメモリ及び/又はROMなどの長期又は固定メモリも含む。
【0044】
ストレージ430は、コンピュータシステム400の他のコンポーネントによって使用されるデータを一時的に又は長期にわたって記憶する。例えば、ストレージ430は、認証アプリケーション490によって使用されるデータを記憶する。1つの実装では、ストレージ430がハードディスクドライブである。
【0045】
媒体装置440は、取り外し可能媒体を受け取り、挿入された媒体に対してデータの読み取り及び/又は書き込みを行う。例えば、1つの実装では、媒体装置440が光ディスクドライブである。
【0046】
ユーザインターフェイス450は、コンピュータシステム400のユーザからのユーザ入力を受け入れてユーザ402に情報を提示するコンポーネントを含む。1つの実装では、ユーザインターフェイス450が、キーボード、マウス、オーディオスピーカ及びディスプレイを含む。別の実装では、ユーザインターフェイス450が、ユーザによって装着されてユーザ入力としての目の動きを収集するために使用されるヘッドセットも含む。コントローラ410は、ユーザ402からの入力を使用してコンピュータシステム400の動作を調整する。
【0047】
I/Oインターフェイス460は、外部記憶装置又は補助装置(例えば、プリンタ又はPDA)などの対応するI/O装置に接続するための1又は2以上のI/Oポートを含む。1つの実装では、I/Oインターフェイス460のポートが、USBポート、PCMCIAポート、シリアルポート及び/又はパラレルポートなどのポートを含む。別の実装では、I/Oインターフェイス460が、外部装置と無線で通信するための無線インターフェイスを含む。
【0048】
ネットワークインターフェイス470は、イーサネット接続をサポートするRJ-45、又は(限定するわけではないが802.11を含む)「Wi-Fi」インターフェイスなどの有線及び/又は無線ネットワーク接続を含む。
【0049】
コンピュータシステム400は、コンピュータシステムに特有のさらなるハードウェア及びソフトウェア(例えば、電源システム、冷却システム、オペレーティングシステム)を含むが、これらのコンポーネントは、単純にするために
図4Bには具体的に示していない。他の実装では、コンピュータシステムの異なる構成(例えば、異なるバス、又はストレージ構成、又はマルチプロセッサ構成)を使用することもできる。
【0050】
本明細書に開示した実装の説明は、本発明をいずれかの当業者が実施又は利用できるように行ったものである。当業者には、これらの実装の数多くの修正が容易に明らかになると思われ、また本明細書で定める原理は、本発明の趣旨又は範囲から逸脱することなく他の実装にも適用することができる。例えば、リモートサービスは、ビデオデータ、音楽データ、画像データ、教育データ又は医療データなどの様々な種類の情報及びデータを提供することができる。他の実装では、バイオメトリック情報、セキュリティ質問又は暗号化パスワードなどのコードの代わりに、又はこのようなコードに加えて、別の形態の認証を使用することもできる。このように、本開示は、本明細書に示す実装に限定されることを意図するものではなく、本明細書に開示する原理及び新規の特徴と一致する最も広い範囲を許容すべきものである。従って、さらなる変形及び実装も可能である。
【0051】
本開示の特定の実装では、必ずしも上述した各実施例の全ての特徴が必要なわけではない。さらに、本明細書に示す説明及び図面は、本発明によって幅広く検討される主題を表すものであると理解されたい。さらに、本開示の範囲は、当業者に明らかになると考えられる他の実装を完全に含み、従って添付の特許請求の範囲以外のものによって限定されるものではないと理解されたい。
【国際調査報告】