特許第6204986号(P6204986)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6204986同期通信におけるサーバー証明書エラーへの安全な対処
<>
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000002
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000003
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000004
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000005
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000006
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000007
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000008
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000009
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000010
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000011
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000012
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000013
  • 特許6204986-同期通信におけるサーバー証明書エラーへの安全な対処 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6204986
(24)【登録日】2017年9月8日
(45)【発行日】2017年9月27日
(54)【発明の名称】同期通信におけるサーバー証明書エラーへの安全な対処
(51)【国際特許分類】
   H04L 9/32 20060101AFI20170914BHJP
【FI】
   H04L9/00 675B
【請求項の数】19
【全頁数】24
(21)【出願番号】特願2015-531132(P2015-531132)
(86)(22)【出願日】2013年8月30日
(65)【公表番号】特表2015-531559(P2015-531559A)
(43)【公表日】2015年11月2日
(86)【国際出願番号】US2013057425
(87)【国際公開番号】WO2014039373
(87)【国際公開日】20140313
【審査請求日】2016年8月19日
(31)【優先権主張番号】13/608,967
(32)【優先日】2012年9月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】ドラゴミール,エイドリアン
(72)【発明者】
【氏名】デーサーイー,アニーシュ
(72)【発明者】
【氏名】セント・ピエール,ロバート
(72)【発明者】
【氏名】マクルーア,マーク
(72)【発明者】
【氏名】グレイ,ケヴィン
(72)【発明者】
【氏名】イン,ジエンピーン
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 特開2006−270504(JP,A)
【文献】 米国特許出願公開第2006/0143442(US,A1)
【文献】 国際公開第2012/094035(WO,A1)
【文献】 米国特許出願公開第2009/0228986(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
コンピューターによって実装される方法であって、
真の同期サーバーと通信している間に、無効な第1の受信同期サーバーデジタル証明書を受信するステップと、
同期サーバーデジタル証明書の無効性が無視されるべきであるという標識を受信するステップと、
無効な第1の受信同期サーバーデジタル証明書を、永続化される無効な同期サーバーデジタル証明書識別子を介して保存するステップと、
真の同期サーバーへアクセスするための後続の試行の期間中に、真の同期サーバーを偽装している偽装同期サーバーと通信し、偽装同期サーバーから第2の受信同期サーバーデジタル証明書を受信するステップと、
偽装同期サーバーの第2の受信同期サーバーデジタル証明書が真の同期サーバーの前記無効な第1の受信同期サーバーデジタル証明書と一致しないことを前記永続化される無効な同期サーバーデジタル証明書識別子が示すことを検出することに応じて、エラー条件を生成するステップと、
を含む、方法。
【請求項2】
前記エラー条件に応じて、前記偽装同期サーバーとのさらなる同期通信を抑制するステップ、
をさらに含む、請求項1に記載の方法。
【請求項3】
無効性を無視するために起動可能なものとして示されるユーザーインターフェイス要素を含むユーザーインターフェイスを提示するステップ、
をさらに含み、
同期デジタル証明書の無効性が無視されるべきであるという前記標識が、前記ユーザーインターフェイス要素の起動を受信することを含む、
請求項1に記載の方法。
【請求項4】
前記提示するステップは、無効な第1の受信同期サーバーデジタル証明書が無効であることを検出することに応じて実行される、請求項3に記載の方法。
【請求項5】
エラー条件を生成するステップは、警告を表示することを含む、請求項1に記載の方法。
【請求項6】
前記警告は同期が失敗したことを示す、請求項5に記載の方法。
【請求項7】
前記エラー条件に応じて、同期を抑制するステップをさらに含む、請求項1に記載の方法。
【請求項8】
同期アカウントのセットアップ又は初期同期の期間中に、前記第1の受信同期サーバーデジタル証明書を受信するステップと、
前記第1の受信同期サーバーデジタル証明書が無効であると判定するステップと、
前記第1の受信同期サーバーデジタル証明書が無効であると判定するステップに応じて、同期サーバーデジタル証明書の無効性を無視するための選択肢を提示するステップと、
をさらに含む、請求項1に記載の方法。
【請求項9】
前記保存するステップが、電子メールアカウントについての初期同期又はセットアップの期間中に実行され、
前記第2の受信同期サーバーデジタル証明書が、前記電子メールアカウントについての後続の同期の期間中に取得される、
請求項1に記載の方法。
【請求項10】
周知の同期サーバーのリスト上に表れる同期サーバーについてデジタル証明書の無効性を無視することを拒否するステップをさらに含む、請求項1に記載の方法。
【請求項11】
1つ又は複数のプロセッサと、
メモリと、
第1のサーバーとの通信期間中に受信された無効な第1の受信サーバーデジタル証明書について第1の永続化される無効なサーバーデジタル証明書識別子を永続化するように構成される保存済みデジタル証明書ストレージと、
第1のサーバーからのものとして示されるが、実際は第1のサーバーを偽装する偽装サーバーからのものである、後続の受信サーバーデジタル証明書を第1のサーバーとの後続の試行された通信の期間中に受信するように構成され、前記偽装サーバーの前記後続の受信サーバーデジタル証明書は前記第1のサーバーについての第1の永続化される無効なサーバーデジタル証明書識別子と一致しないと判定することに応じて、セキュリティエラーを生成するようにさらに構成されるセキュリティチェッカーと、
を備える、システム。
【請求項12】
前記セキュリティチェッカーが、サーバーデジタル証明書の無効性が無視されるべきであるという標識を受信するようにさらに構成される、
請求項11に記載のシステム。
【請求項13】
前記セキュリティチェッカーが、例外リスト上に現れる電子メールサーバーについてのサーバーデジタル証明書の無効性を無視することを拒否するようにさらに構成される、
請求項12に記載のシステム。
【請求項14】
前記保存済みデジタル証明書ストレージは、サーバー名、又は電子メールアカウントにより無効なサーバーデジタル証明書識別子を記憶する、請求項11に記載のシステム。
【請求項15】
前記セキュリティチェッカーが、偽装サーバーの前記後続の受信サーバーデジタル証明書は前記第1のサーバーについての第1の永続化される無効なサーバーデジタル証明書識別子と一致しないと判定することに応じて、同期を抑制するようにさらに構成される、
請求項11に記載のシステム。
【請求項16】
前記セキュリティチェッカーが、偽装サーバーの前記後続の受信サーバーデジタル証明書は前記第1のサーバーについての第1の永続化される無効なサーバーデジタル証明書識別子と一致しないと判定することに応じて、エラーメッセージを表示するようにさらに構成される、
請求項11に記載のシステム。
【請求項17】
前記システムは、同期処理の期間中にデジタル証明書を比較するよう構成される、検証ロジックをさらに含む、請求項11に記載のシステム。
【請求項18】
電子メールサーバーのIDを確立するための方法を実行するためのコンピューター実行可能命令を含む、コンピューター可読記憶装置であって、前記方法が、
前記電子メールサーバーとの電子メールアカウントの初期同期の期間中、電子メールサーバーIDを示す第1のデジタル証明書を受信するステップと、
前記第1のデジタル証明書が無効であると判定するステップと、
前記第1のデジタル証明書が無効であると判定することに応じて、前記第1のデジタル証明書の無効性を無視するための選択肢を提示するステップと、
前記第1のデジタル証明書の無効性を無視するための選択肢の選択に応じて、
無効な第1のデジタル証明書を保存するステップと、
電子メールアカウントの構成を許可するステップと、
電子メールサーバーを偽装するコンピューターとの後続する通信の期間中に、前記電子メールサーバーを偽装するコンピューターからの後続するデジタル証明書を受信するステップと、
電子メールサーバーを偽装するコンピューターから受信された後続するデジタル証明書が、保存済みの無効な第1のデジタル証明書と一致することをチェックするステップと、
前記電子メールサーバーを偽装するコンピューターから受信された後続するデジタル証明書が前記保存済みの無効な第1のデジタル証明書と一致しないと判定されることに応じて、コンピューターとの更なる通信を抑制するステップと
を実行するステップと、
を含む、コンピューター可読記憶装置。
【請求項19】
コンピューター可読記憶装置であって、コンピューティング装置に
真の同期サーバーとの通信の間に、無効な第1の受信同期サーバーデジタル証明書を受信するステップと、
同期サーバーデジタル証明書の無効性が無視されるべきであるという標識を受信するステップと、
無効な第1の受信同期サーバーデジタル証明書を、永続化される無効な同期サーバーデジタル証明書識別子を介して保存するステップと、
真の同期サーバーへアクセスするための後続の試行の期間中に、真の同期サーバーを偽装している偽装同期サーバーと通信し、偽装同期サーバーから第2の受信同期サーバーデジタル証明書を受信するステップと、
偽装同期サーバーの第2の受信同期サーバーデジタル証明書が真の同期サーバーの前記無効な第1の受信同期サーバーデジタル証明書と一致しないことを前記永続化される無効な同期サーバーデジタル証明書識別子が示すことを検出することに応じて、エラー条件を生成するステップと、
を含む方法を実行させるコンピューター実行可能な命令を備える、コンピューター可読記憶装置。
【発明の詳細な説明】
【背景技術】
【0001】
[001]ソフトウェアセキュリティは、コンピューティング技術の重要な部分であるが、理解が困難であり、一時的なユーザーによって見過ごされてしまうことがある。例えば、デジタル証明書は、コンピューターのIDを確立するために有益な技術である。しかしながら、コンピューティング装置の普通のユーザーは、典型的には、どのようにデジタル証明書が作用するかの詳細に興味がない。
【0002】
[002]デジタル証明書は、証明機関によって発行され得る。証明機関が周知であり、信頼できる場合、コンピューターのIDを確立する信頼できる機関によって発行される証明書は、信頼することができる。
【0003】
[003]しかしながら、証明書が種々の理由のうちのいずれかのために無効であることがよくある。例えば、小企業又は趣味的なユーザーは、周知の機関からデジタル証明書を取得する出費を差し控え、彼ら自身の証明書を発行し、失効した証明書を使用すること等を望むかもしれない。
【0004】
[004]結果として、そのような証明書は、無効であると見なされ、エラーを引き起こし得る。ユーザーは、典型的には、コンピューティング装置を使用することをやめるか、エラーを無視するかのどちらかであろう。そのため、改善の余地がある。
【発明の概要】
【課題を解決するための手段】
【0005】
[005]本概要は、詳細な説明においてさらに後述される概念の集まりを簡略化された形式で紹介するために提供される。本概要は、特許請求の範囲に記載された主題の重要な特徴又は本質的な特徴を識別することを意図されたものではなく、特許請求の範囲に記載された主題の範囲を限定するために使用されることを意図されたものでもない。
【0006】
[006]無効なデジタル証明書の処理は、そのデジタル証明書が無効であっても、同期サーバーのIDを確立するために使用され得る。
[007]同期サーバーデジタル証明書の無効性が無視されるべきであるという標識(indication)が受信され得、(第1の)デジタル証明書は、永続化される無効な同期サーバーデジタル証明書識別子を介して保存され得る。
【0007】
[008]その後(例えば、後続の同期の期間中に)、受信同期サーバーデジタル証明書(incoming synchronization server digital certificate)が第1のデジタル証明書と一致しないことが検出される場合、エラー条件が生成され得る。
【0008】
[009]本明細書において説明されるように、種々の他の特徴及び利点は、所望により、本技術に組み込まれ得る。
【図面の簡単な説明】
【0009】
図1】[010]同期通信における無効なデジタル証明書の処理を実装する例示的なシステムのブロック図である。
図2】[011]無効なデジタル証明書の処理の例示的な方法のフローチャートである。
図3】[012]無効なデジタル証明書の処理の段階を示すブロック図である。
図4】[013]段階的な無効なデジタル証明書の処理の例示的な方法のフローチャートである。
図5】[014]初期同期の期間中に無効なデジタル証明書の処理を実装する例示的なシステムのブロック図である。
図6】[015]初期同期の期間中に無効なデジタル証明書の処理を実装する例示的な方法のフローチャートである。
図7】[016]後続の同期の期間中に無効なデジタル証明書の処理を実装する例示的なシステムのブロック図である。
図8】[017]後続の同期の期間中に無効なデジタル証明書の処理を実装する例示的な方法のフローチャートである。
図9】[018]無効なデジタル証明書の処理のための例示的なユーザーインターフェイスのスクリーンショットである。
図10】[019]本明細書において説明される技術を実装する例示的な方法のフローチャートである。
図11】[020]いくつかの説明される実施形態が実装され得る例示的なコンピューティングシステムの図である。
図12】[021]無効なデジタル証明書の処理について使用され得る例示的なモバイル装置の図である。
図13】[022]本明細書において説明される技術と共に使用され得る例示的なクラウドサポート環境の図である。
【発明を実施するための形態】
【実施例1】
【0010】
例示的な概観
[023]本明細書において説明される技術は、種々の無効なデジタル証明書の処理シナリオのために使用され得る。本技術の採用は、そのような証明書を処理するための安全な技法を提供することができる。本方法及びシステムは、デジタル証明書が無効であると分かる場合でも、同期サーバーのIDを確立することができる。
【0011】
[024]小企業及び趣味的なユーザーは、周知の証明機関によって署名されたデジタル証明書を取得するためのコスト及び努力を費やす必要なく、同期セキュリティ(synchronization security)の方策を提供するために、本技術を活用することができる。
【0012】
[025]本技術は、エンドユーザーにデジタル証明書エラーのよりインテリジェントな処理を提供することを望む者にとって有用となり得る。受益者は、無効な証明書を用いてサーバーを動作させている者を含み得る。エンドユーザーも、エンドユーザーの装置に対する攻撃が回避され得るため、本技術の利益を享受することができる。
【実施例2】
【0013】
無効なデジタル証明書の処理を実装する例示的なシステム
[026]図1は、本明細書において説明されるような、無効なデジタル証明書の処理を実装する例示的なシステム100のブロック図である。
【0014】
[027]コンテキストの目的のために、図1は、ユーザーアカウント195におけるユーザー情報(例えば、電子メール、連絡先、カレンダー情報、タスク等)へのアクセスを提供する同期サーバー180を示す。本例において、同期サーバー180は、無効なデジタル証明書197を提供して、同期サーバー180のIDを確立する。サーバー180は、典型的には、コンピューティング装置110によってネットワーク150を介してアクセスされる。コンピューティング装置110は、モバイルコンピューティング装置等を含む、本明細書において説明される任意のコンピューティングシステムとすることができる。
【0015】
[028]コンピューティング装置110は、同期サーバー180上のユーザー情報にアクセスするための同期クライアント120と、保存済みデジタル証明書ストレージ130とを含み得る。保存済みデジタル証明書ストレージ130は、それぞれのサーバーについて、(例えば、コンピューター読取可能な媒体において)1つ又は複数の永続化される無効なサーバーデジタル証明書識別子137を永続化するように構成される。証明書ストレージ130は、(例えば、証明書識別子をサーバー名に関連付けることによって)特定の保存済みのデジタル証明書が、どのサーバーに関連付けられるかを示すことができる。証明書は、種々の手法のうちのいずれかにおいて保存及び整理され得る。例えば、証明書は、(例えば、サーバー名を特定することによって後で取り出されるように)サーバー名、同期アカウント等によって記憶され得る。本明細書において説明されるように、2つ以上の証明書が同期アカウントごとに保存され得る。
【0016】
[029]実際には、証明書を保存することは、その証明書の完全なコピーを永続化する必要はない。その代わりに、証明書識別子が使用され得る。識別子は完全な証明書であってもよいが、2つの証明書が同じ識別子を有することが事実上不可能であり、同一とならないように、証明書の一部、デジタルダイジェスト、暗号化ハッシュ、サムプリント、又は他の標識情報が、証明書識別子として永続化されてもよい。
【0017】
[030]セキュリティチェッカー140は、サーバーからのものとして示される後続の受信サーバーデジタル証明書を受信するように構成され得る。チェッカー140は、後続の受信サーバーデジタル証明書がそのサーバーについての(例えば、証明書ストレージ130に記憶された識別子によって表される)保存済みの無効なサーバーデジタル証明書と一致しないと判定することに応じて、セキュリティエラー145を生成し得る。本明細書において説明されるように、チェッカー140は、後続の受信デジタル証明書がサーバーについての永続化されたデジタル証明書識別子137と一致しないと判定することに応じて、同期クライアント120による同期を抑制するようにさらに構成され得る。本明細書において説明されるようにエラーメッセージが表示され得 る。
【0018】
[031]同期クライアント120、保存済み証明書ストレージ130、及びセキュリティチェッカー140は、別個の四角形において示されるが、実際には、コンポーネントの境界は変わり得る。例えば、証明書ストレージ130及びセキュリティチェッカー140は、同期クライアント120の一部として実装されてもよい。本技術をなお実装しつつも、他の構成を取り得る。
【0019】
[032]実際には、システム100などの、本明細書において示されるシステムは、付加的な機能性、より多くのサーバー等を有し、より複雑であり得る。
[033]システム100及び本明細書において説明されるその他のシステムのいずれも、後述されるコンピューティングシステム(例えば、処理部、メモリ等)などの、本明細書において説明されるハードウェアコンポーネントのうちのいずれかと共に実装され得る。本明細書中のいずれの例においても、入力、出力、及びツールは、1つ又は複数のコンピューター読取可能な記憶媒体又はコンピューター読取可能な記憶装置に記憶され得る。本明細書において説明される技術は、オペレーティングシステム又はハードウェアの仕様に汎用的なものとすることができ、説明される特徴を活用するための種々の環境のうちのいずれにおいても適用されることができる。
【実施例3】
【0020】
無効なデジタル証明書の処理を実装する例示的な方法
[034]図2は、無効なデジタル証明書の処理の例示的な方法200のフローチャートであり、例えば、図1に示されるシステムにおいて実装され得る。
【0021】
[035]210において、同期サーバーデジタル証明書の無効性は無視されるべきであるという標識が受信される。本明細書において説明されるように、そのような標識は、無効性を無視するために起動可能なものとして示される(例えば、ユーザーインターフェイスの一部として提示される)ユーザーインターフェイス要素の起動であり得る。
【0022】
[036]220において、無効な受信同期サーバーデジタル証明書が(例えば、永続化された無効な同期サーバーデジタル証明書識別子を介して)保存される。本明細書において説明されるように、無効な証明書は、その無効な証明書を提供したサーバーの名前に関連付けられ得る。このようにして、デジタル証明書が無効であっても、サーバーとの信頼関係が確立される。実際には、そのようなデジタル証明書は、本明細書において説明されるような信頼できるネットワーク上で、同期セットアップ又は初期同期の期間中に(例えば、サーバーから)受信され得る。デジタル証明書が受信され得る別の手法は、異なるチャネルを通じて(例えば、証明書を有する印刷文書又は電子文書を介して)のものである。例えば、サーバー管理者は、同期アカウントセットアップ又は初期同期の期間中の使用のためにユーザーにデジタル証明書を提供し得る。
【0023】
[037]管理者は、サーバー証明書を発行した証明機関のデジタル証明書(例えば、ルート証明書)を提供し得る。ルート証明書がインストールされた後は、対応する機関によって発行されるいかなる証明書も信頼できるものとなる。
【0024】
[038]本明細書において説明されるように、デジタル証明書は、デジタル証明書識別子(例えば、永続化された無効な同期サーバーデジタル証明書識別子)を介して保存され得る。
【0025】
[039]230において、(例えば、後続の同期サーバー通信の期間中に受信される)第2の受信証明書が、永続化された無効な同期サーバーデジタル証明書識別子と一致しないことを検出することに応じて、エラー条件が生成される。そのような検出は、第2の受信証明書が第1の受信証明書と一致しないことを永続化された無効な同期サーバーデジタル証明書識別子が示すことを検出することによって、達成され得る。例えば、(例えば、本明細書において説明されるように生成される)第2の受信証明書の識別子は、永続化された証明書の識別子と比較され得る。
【0026】
[040]方法200及び本明細書において説明されるその他の方法のいずれも、1つ若しくは複数のコンピューター読取可能な媒体(例えば、ストレージ若しくは他の有形の媒体)に記憶され、又は1つ若しくは複数のコンピューター読取可能な記憶装置に記憶される、(例えば、コンピューティングシステムに本方法を実行させる)コンピューター実行可能な命令によって実行され得る。
【実施例4】
【0027】
例示的な同期サーバー
[041]本明細書中のいずれの例においても、同期サーバーは、同期クライアントに同期機能性を提供するサーバーであり得る。同期機能性は、電子メール、連絡先、カレンダー情報(例えば、約束、休日等)、タスク、及びこれらの組み合わせを同期させる(例えば、送受信する)ことを含み得る。例えば、個人情報マネージャーは、同期サーバーと通信する(例えば、同期サーバーから情報を送受信するための)同期クライアントを実装又は使用することによって、電子メール、連絡先、カレンダー情報、タスク等へのアクセスをユーザー情報として提供し得る。
【0028】
[042]同期クライアントがデータを送信又は受信するために同期サーバーに接触する場合、この処理は「同期(sync)」と呼ばれることがある。実際には、クライアントは、情報を受信するためにサーバーと周期的に同期する。情報を送信する際、クライアントは、同期を直ちに実行(及び、例えば、サーバーにおいて保留中の任意の情報の受信も)し得る。ユーザーは、装置上で特定の同期サーバーとの1つ又は複数の同期アカウントを(例えば、ユーザー名、電子メールアドレス等を介して)セットアップし得る。
【実施例5】
【0029】
例示的な同期サーバーデジタル証明書
[043]本明細書中のいずれの例においても、同期サーバーデジタル証明書は、同期サーバーのIDを確立するために使用され得る。実際には、デジタル証明書は、サーバーID(例えば、サーバー名、ネットワークアドレス等)、有効期限日、発行者等を含み得る。デジタル署名は、公開鍵基盤規則(public key infrastructure convention)に従って、(例えば、証明書に含まれる)公開鍵をID情報とバインドするために使用され得る。発行者は、デジタル証明書を発行する信頼できるエンティティとしての役割を果たす証明機関であり得る。
【0030】
[044]同期サーバーデジタル証明書が有効であることが分かる場合、公開鍵は実際にサーバーに所属することが合理的な確実性をもって想定されることができ、安全な通信セッションが(例えば、公開鍵を介して)構成されることができる。有効性は、典型的には、周知の証明機関を参照して判定される(例えば、ある証明機関のみが信頼及び容認される)。
【0031】
[045]同期通信において、デジタル証明書が提供された後に、安全な通信セッションは、ユーザーの資格情報、ユーザーコンテンツ(例えば、電子メール、連絡先、カレンダー情報、タスク等)などを暗号化するために使用され得る。
【実施例6】
【0032】
例示的な無効な同期サーバーデジタル証明書
[046]デジタル証明書は、種々の理由のうちのいずれかによって無効となり得る。そのような理由は、サーバーIDが、通信が開始されたサーバーと一致しない(例えば、エンティティXからの証明書を要求した後に、エンティティYについての証明書が受信された)ことを含む。そのような不一致は、証明書中の名前と接触されているサーバーの名前とを比較することによって判定され得る。
【0033】
[047]別の理由は、証明書の有効期限が切れることである。そのような無効性は、現在の日付と証明書の有効期限日とを比較することによって判定され得る。
[048]別の理由は、証明機関が、信頼できる証明機関のリストに存在しないことである。そのような無効性は、証明書の証明機関と信頼できる機関のリストとを比較することによって判定され得る。そのようなリストは、典型的には、クライアントコンピューティング装置上に記憶され、又は取り出される。
【0034】
[049]別の理由は、証明機関の公開鍵が証明書上のデジタル署名は正確ではないことを示すことである。そのような無効性は、(例えば、装置内に記憶され、又はネットワークを介して獲得される)証明機関の公開鍵を取得し、公開鍵暗号化技法を適用してデジタル署名をチェックすることによって判定され得る。
【0035】
[050]他の理由もあり得、本明細書における技術によってサポートされ得る。
【実施例7】
【0036】
例示的なエラー条件
[051]本明細書中のいずれの例においても、後続の受信同期サーバーデジタル証明書が、永続化された同期サーバーデジタル証明書と一致しないことが分かる場合、エラー条件が生成され得る。
【0037】
[052]そのようなエラー条件は、種々のアクションをもたらし得る。例えば、エラー条件に応じて、エラーメッセージが示されてもよく、警告付きのダイアログボックスが表示されてもよく、受信同期サーバーデジタル証明書を提供するコンピューターとの通信が抑制されてもよく、同期アカウントが遮断されてもよく、影響を受けたアカウントについての同期が抑制され(例えば、失敗し)てもよく、同期が失敗したことを示す警告が提示される等でもよい。前述のうちの2つ以上の組み合わせもサポートされる。
【0038】
[053]不一致の証明書を提示するコンピューターとの通信を継続することをユーザーに許可しない場合において、エラーは、「継続不可能(noncontinuable)」と呼ばれることもある。なぜならば、ユーザーは、(例えば、証明書条件が是正されるまで)そのコンピューターとの通信を装置に継続させることを禁止され得る(例えば、継続させる選択肢を与えられない)ためである。
【0039】
[054]一致するデジタル証明書が後続の通信において提供される場合、処理は、通常通り再開し得る。
[055]上級ユーザーについては、エラー条件に関する付加的な情報及びエラーをオーバーライドするための選択肢が提供されてもよい。
【実施例8】
【0040】
例示的なデジタル証明書識別子
[056]本明細書中のいずれの例においても、デジタル証明書識別子は、基礎をなすデジタル証明書を識別するために使用され得る。例えば、証明書自体が証明書を識別するために使用されてもよいが、証明書の一部、証明書の暗号化ハッシュ又はその一部、証明書のデジタルダイジェスト又はその一部、証明書のサムプリント又はその一部等が、デジタル証明書識別子として使用され得る。
【0041】
[057]デジタル証明書を保存する際、そのデジタル証明書の識別子は、後続のデジタル証明書が最初のデジタル証明書と一致するかを(例えば、後続のデジタル証明書についての識別子を生成し、識別子を比較することによって)判定するためにその識別子が後で使用され得るように、永続化され得る。
【実施例9】
【0042】
例示的な一致証明書
[058]本明細書中のいずれの例においても、受信デジタル証明書と永続化されたデジタル証明書とが一致するかを判定することは、この2つのデジタル証明書の内容が同一であるかを比較することによって達成され得る。
【0043】
[059]2つの証明書を(例えば、これらが同一のフィールドを有するかを調べるために)直接比較することよりもむしろ、(例えば、同じ技法によって生成された)証明書の識別子が比較され得る。例えば、受信デジタル証明書の暗号化ハッシュが算出され、最初の無効な証明書の永続化された暗号化ハッシュ(例えば、最初の無効な証明書自体は記憶される必要がない)と比較され得る。従って、ハッシュが一致する場合、IDは保証されることができる。なぜならば、同じ暗号化ハッシュ(例えば、SHA−1等)を備える2つの異なる証明書を有することは事実上不可能であるためである。2つの証明書が一致するかを判定するために、任意の数の他の一致技法及び保存技法が適用され得る。
【実施例10】
【0044】
無効性は無視されるべきであるという例示的な標識
[060]本明細書中のいずれの例においても、同期サーバーデジタル証明書の無効性は無視されるべきであるという標識は、起動可能なユーザー要素の起動を受信することを含み得る。そのようなユーザーインターフェイス要素は、ユーザーインターフェイスの一部として提示され、受信証明書が無効であることを検出することに応じて、行われ得る。
【0045】
[061]そのようなユーザーインターフェイスは、その要素を起動することが証明書の無効性を無視する結果になることを示すように表示され得る。例えば、証明書は無効なものとして検出されたことを伝え、無効性を無視するための選択肢を与えるダイアログボックスが提示され得る。あるいは、無効性は無視されるべきであることを示すためにチェックボックスがチェックされてもよい。必要に応じて、証明書の詳細は、有効性又は無効性を調査によって検証するための、ユーザーによる考慮のために表示され得る。
【0046】
[062]無効性は無視されるべきであることを検出することに応じて、後続の証明書が一致するかを検出するための、本明細書において説明される技法が実装され得る(例えば、現在の受信証明書を、永続化された無効な証明書として保存することを含む)。
【実施例11】
【0047】
例示的な例外リスト
[063]本明細書中のいずれの例においても、サーバー例外リストが記憶され得る。例外リストは、周知の同期サーバー(例えば、hotmail.com、gmail.com、yahoo.com等)を示し得る。周知の同期サーバーの例外リスト上に現れるサーバーについては、デジタル証明書の無効性を無視することが拒否され得る。1つの装置は複数の同期アカウントをサポートし得るため、1つのアカウントについてのサーバーがリスト上に存在する一方で、別のアカウントについてのサーバーはリスト上に存在しない可能性がある。
【実施例12】
【0048】
無効なデジタル証明書の処理の例示的な段階
[064]図3は、無効なデジタル証明書の処理シナリオ300の段階を示すブロック図である。ユーザー情報を送信又は受信するために、情報同期(「同期(sync)」)が実行され得る。本例において、装置310における初期同期段階の期間中に、装置310は、無効な証明書387をネットワーク350上で提供する同期サーバー380(例えば、接触されることが意図される実際の同期サーバー)にアクセスする。実際には、ネットワーク350は、典型的には、社内ネットワーク又はホームネットワークなどの信頼できるネットワークである。本明細書において説明されるように、ユーザーには、証明書の無効性が無視され得ることを示すための機会が与えられ得る。初期同期は、同期アカウントのセットアップ期間中又はセットアップ後に行われ得る。あるいは、説明されたデジタル証明書の処理は、同期セットアップ処理の一部として実行されてもよい。
【0049】
[065]後続の同期段階の期間中、装置310における同期期間中に、装置310は、同期サーバー380へのアクセスを試行するが、現実には、異なる証明書397(例えば、無効な証明書387と同一ではない証明書)を提供する偽装サーバー(impersonating server)390に接続される。実際には、ネットワーク360は、典型的には、公衆ネットワーク(例えば、インターネットカフェ、喫茶店等)などの信頼できないネットワークである。本明細書において説明されるように、ユーザーが証明書387の無効性は無視され得ることを示した場合であっても、証明書387、397の比較は、装置310が異なるサーバーに接続していることを判定することができ、この判定は、サーバー390が真の同期サーバー380を偽装していることを示し得る。そのため、(例えば、証明書397がたまたま無効である場合に)証明書397の無効性を無視するための別の機会をユーザーに与えること、又はサーバー390と通常通り通信することよりもむしろ、エラー条件が、本明細書において説明されるように生成され得る。
【実施例13】
【0050】
段階的な無効なデジタル証明書の処理の例示的な方法
[066]図4は、無効なデジタル証明書の処理の例示的な方法400のフローチャートであり、例えば、図1及び図3に示されるシステムにおいて実装され得る。段階的なアプローチにおいて使用される特徴は、本明細書中のその他の例のいずれにおいても実装され得る。
【0051】
[067]410において、装置における初期同期の期間中に、無効な証明書が保存される。本明細書において説明されるように、保存は、その証明書についての証明書識別子を永続化することによって達成され得る。
【0052】
[068]420において、後続の同期動作は、受信デジタル証明書が保存済みの(例えば、永続化された)証明書と一致しないことを検出することに応じて、遮断される。
【実施例14】
【0053】
初期同期段階の期間中における例示的な無効なデジタル証明書の処理
[069]図5は、(例えば、同期クライアントについての)初期同期の期間中における無効なデジタル証明書の処理を実装する例示的なシステム500のブロック図である。本明細書中のいずれの例においても、初期同期の期間中に発生するものとして説明される処理は、その代わりに、同期アカウントセットアップの期間中に発生してもよい。本例では、通常の同期アカウントセットアップの過程の期間中に、(例えば、ユーザーによって特定されるように)サーバー名510が受信される。サーバー名510は、(例えば、サーバー名510を有する同期サーバーによって提供される)受信デジタル証明書517を獲得するために使用され得る。
【0054】
[070]検証ロジック522は、本明細書において説明されるように、デジタル証明書517が有効であるかを判定するために、デジタル証明書517をチェックし得る。検証ロジック522は、(例えば、証明書に署名した証明機関は既知であることを検証するために)既知の証明機関の証明書515も考慮し得る。検証結果524が生成され得る。本例の目的のために、検証結果524は、受信デジタル証明書517が無効であることを示す。結果として、検証ロジック522(例えば、セキュリティチェッカーの一部)は、無効性が無視されるべきであることを示すために起動可能なユーザーインターフェイス要素を備えるユーザーダイアログを提示するように構成される。(例えば、無効性を無視するための)ユーザーの選択についてのストレージ528は、無効性が無視されるべきであるという標識を維持することができる。受信証明書517は、デジタル証明書ストレージ530に(例えば、証明書識別子として)保存され得る。
【実施例15】
【0055】
初期同期の期間中における無効なデジタル証明書の処理の例示的な方法
[071]図6は、初期同期の期間中における無効なデジタル証明書の処理を実装する例示的な方法600のフローチャートである。
【0056】
[072]610において、初期同期の期間中に、(第1の)受信同期サーバーデジタル証明書が受信される。
[073]620において、受信同期サーバー証明書は無効であることが判定される。
【0057】
[074]630において、(第1の)受信同期サーバーデジタル証明書は無効であると判定することに応じて、同期サーバーデジタル証明書の無効性を無視するための選択肢が提示される。
【0058】
[075]640において、無効性を無視するための標識に応じて、無効なデジタル証明書は、本明細書において説明されるように、(例えば、同期アカウントについてのセットアップの期間中に)後続のセキュリティチェックのために保存される。
【実施例16】
【0059】
後続の同期段階を備える例示的なシステム
[076]図7は、(例えば、初期同期後の、同期クライアントについての)後続の同期の期間中における無効なデジタル証明書の処理を実装する例示的なシステム700のブロック図である。デジタル証明書が同期セットアップの期間中に保存される実装において、説明される技法は、セットアップ後の同期に適用され得る。
【0060】
[077]本例において、比較ロジック722(例えば、セキュリティチェッカーの一部)は、永続化されたデジタル証明書識別子718と後続の受信デジタル証明書719とを受け取り、(例えば、後続の受信デジタル証明書についての証明書識別子を生成することによって)この2つを比較し、比較結果724を提供する。同じサーバー名は、証明書の双方に関連付けられ得る。
【0061】
[078]比較結果724が、証明書識別子718と証明書719とが一致しないことを示す場合、エラー条件745が生成される。
【実施例17】
【0062】
後続の同期段階を備える例示的な方法
[079]図8は、本明細書において説明される初期同期に引き続いて実行される後続の同期の期間中における無効なデジタル証明書の処理を実装する例示的な方法800のフローチャートである。
【0063】
[080]810において、(第2の)受信デジタル証明書が、同期サーバーから(例えば、同期処理の一部として)受信される。
[081]820において、(第2の)受信デジタル証明書は、(例えば、サーバーの名前と関連付けられる)永続化されたデジタル証明書識別子と比較される。
【0064】
[082]830において、結果に基づいて、本方法は、(例えば、証明書が一致する場合)同期サーバーとの通信を許可すること、及び(例えば、証明書が一致しない場合)エラー条件を生成することのどちらかを選択する。そのような選択は、無効性が無視されるべきものとして示されたかも考慮し得る(例えば、無効性が無視されるべきと示されなかった場合、無効性がチェックされ得、無効な証明書は、エラー条件又は警告をもたらし得る)。
【実施例18】
【0065】
例示的なユーザーインターフェイス
[083]本明細書中のいずれの例においても、ユーザーインターフェイスは、エラー条件に直面することに応じて、提示され得る。ユーザーインターフェイスは、エラーが発生したことを示すエラーメッセージを提示し得る。エラーのさらなる詳細は、状況に応じて、望ましいことも、又は望ましくないこともある。例えば、どの同期アカウントが関与するのかをユーザーが判定することができるように、同期サーバー名が表示されてもよい。
【0066】
[084]図9は、無効なデジタル証明書の処理のための例示的なユーザーインターフェイス900のスクリーンショットである。本例において、ユーザーインターフェイス900は、以前に提示された資格情報と異なる資格情報を同期サーバーが提示したことをユーザーに通知するダイアログボックスとして提示される。従って、同期は、抑制される(例えば、不成功に終わる、失敗する等)。
【0067】
[085]その後の同期するための試行は、永続化された証明書と一致するデジタル証明書を獲得し得る。そのため、そうである場合には、同期が再開し得る。
【実施例19】
【0068】
例示的な詳細な方法
[086]図10は、同期サーバーのIDを確立するために、本明細書において説明される技術を実装する例示的な方法1000のフローチャートである。本例では、電子メールサーバーが関与するが、本技術は、他の又は付加的な同期機能性を提供するサーバーに同様に適用されることができる。本明細書におけるいずれの特徴も、本明細書において説明されるいずれの例にも組み込まれることができる。
【0069】
[087]1010において、電子メールサーバーIDを示す第1の電子メールサーバーデジタル証明書が、本明細書において説明されるように(例えば、電子メールサーバーとの電子メールアカウントの初期同期の期間中に)受信される。
【0070】
[088]1020において、第1のデジタル証明書は無効であると判定される。そうではなく、デジタル証明書が有効であると判定される場合、同期は、いかなる問題もなく進行し得る。
【0071】
[089]1030において、第1のデジタル証明書が無効であると判定することに応じて、第1のデジタル証明書の無効性を無視するための選択肢が提示される。
[090]1040において、第1のデジタル証明書の無効性を無視するための選択肢の選択に応じて、無効な第1のデジタル証明書が保存され、同期段階において示された方法が実行される。電子メールアカウントの同期は、許可される。
【0072】
[091]そうではなく、無効性は無視されるべきではないことをユーザーが示す場合、サーバーとの通信は、証明書エラーに起因して、失敗するであろう。同期は、サーバーが有効な証明書を提示するまで、機能しないであろう(又は、本明細書において説明されるように、無効性は無視される)。
【0073】
[092]1050において、(例えば、電子メールサーバーと同じではないかもしれない)コンピューターとの後続の通信の期間中に、後続のデジタル証明書が、このコンピューターから受信される。サーバー証明書がアカウントセットアップの期間中に有効であった場合、サーバー証明書は、後続の同期のために有効なままである必要がある。サーバー証明書がセットアップの期間中に無効であり、継続する(例えば、無効性を無視する)ための選択肢が選択された場合、後続の同期の期間中におけるサーバー証明書のいかなる変化も、エラー条件をトリガーする。
【0074】
[093]1060において、後続のデジタル証明書が、保存済みの無効な第1のデジタル証明書と一致するかがチェックされる。本明細書において説明されるように、証明書識別子は、証明書を比較するために使用され得る。
【0075】
[094]1070において、後続のデジタル証明書が、保存済みの無効な第1のデジタルセキュリティ証明書と一致しないと判定することに応じて、コンピューターとのさらなる通信は抑制される(例えば、同期は失敗する)。エラー条件は、本明細書において説明されるように生成され得る。
【実施例20】
【0076】
同期アカウントごとの複数のサーバー
[095]いずれの例においても、1つの同期アカウントは、2つ以上のサーバー(例えば、電子メールを送信するためのサーバー及び受信するためのサーバー)に関与し得る。本明細書において説明される技法は、双方のサーバーに適用されることができる(例えば、別個の永続化されたデジタル証明書は、それぞれのサーバーについて記憶され得る)。そのような場合には、同期アカウントごとに2つ以上の保存済みのデジタル証明書(例えば、送信サーバーのためのデジタル証明書及び受信サーバーのためのデジタル証明書)が存在し得る。
【0077】
[096]クライアント装置が受信サーバーから情報を受信したが、送信サーバーへはいかなる情報もまだ送信していない場合があり得る。本明細書において説明されるような別個の有効性チェックは、同期処理の適当な部分について必要とされるサーバーとの安全な通信チャネルを確立しようと最初に試行する際に、両サーバーについて行われ得る。
【実施例21】
【0078】
例示的な利点
[097]本明細書中のいずれの例においても、同期セキュリティは、証明書が無効であると分かっても、提供され続けることができる。デジタル証明書は、悪意のない理由により無効となり得るため、そのような技術は、ソフトウェアセキュリティを改善するために有益となり得る。例えば、小企業又は愛好家は、安全な電子メール通信を活用するためにデジタル証明書を備える電子メールサーバーを有することは望むかもしれないが、周知の信頼できる証明機関(例えば、VersiSign等)によって発行されるデジタル証明書を取得するコスト及び努力は費やさないことを望むかもしれない。そのような場合において、コンピューティング装置は、証明書が無効であると分かり得る。しかしながら、本明細書において説明される技術を活用すれば、サーバーIDのある程度の保証が提供されることができる。
【0079】
[098]サーバーと対話する普通の過程において、ユーザーは、エラーを見ることに慣れてしまうことがあり、そのため、そのようなエラーを無視するようにコンピューティング装置に指示し続けるかもしれない。しかしながら、デジタル証明書が、同じサーバーについて以前に保存されたデジタル証明書と一致しない場合、これは、典型的には、サーバーのIDに問題があるという標識である。従って、装置は、通信を遮断して、ユーザーによる誤った決定(例えば、有効性を再び無視すること)を回避することができる。
【0080】
[099]サーバーIDに問題がある(例えば、受信証明書が、同じサーバーについての永続化された証明書と一致しない)ことを検出することによって、種々の攻撃が回避されることができる。1つのそのような攻撃は、攻撃者がユーザーと同期サーバーとの間に介在するため、介入者攻撃と呼ばれる。攻撃は、ユーザーの資格情報(例えば、ユーザー名及びパスワード)を傍受し得、その後、ユーザーの資格情報は、さらなる攻撃において使用され得る。そのような攻撃は、しばらくの間、検出されないままとなり得る。
【0081】
[0100]本明細書において説明されるように、本来の同期サーバーを偽装する介在コンピューターが、システムに保存された永続化された証明書と一致しないデジタル証明書を提示することが検出される場合、そのコンピューターとのさらなる通信は抑制され、偽装コンピューターにユーザーの資格情報を送信することが防止されることができる。
【0082】
[0101]代替案も使用され得るが、無効性の検出時に無効性を無視するための単純なユーザーインターフェイスを提示することは、ユーザーがより複雑なインターフェイス機構をナビゲートする必要(例えば、容認される証明書のリストに証明書を追加すること)を省くことができる。
【実施例22】
【0083】
例示的なコンピューティングシステム
[0102]図11は、説明される技術革新のうちのいくつかが実装され得る適切なコンピューティングシステム1100の一般化された例を例示する。技術革新は、多様な汎用コンピューティングシステム又は専用コンピューティングシステムにおいて実装され得るため、コンピューティングシステム1100は、用途又は機能性の範囲に関するいかなる限定も提案することを意図されない。
【0084】
[0103]図11を参照すると、コンピューティングシステム1100は、1つ又は複数の処理部1100、1115及びメモリ1120、1125を含む。図11において、この基本構成1130は、破線内に含まれる。処理部1110、1115は、コンピューター実行可能な命令を実行する。処理部は、汎用中央処理装置(CPU:central processing unit)、特定用途向け集積回路(ASIC:application−specific integrated circuit)におけるプロセッサ、又は任意の他のタイプのプロセッサとし得る。マルチプロセシングシステムでは、複数の処理部がコンピューター実行可能な命令を実行して、処理能力を増加させる。例えば、図11は、中央処理装置1110及びグラフィックス処理部又は共処理部1115を示す。有形のメモリ1120、1125は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ等)、又は処理部によってアクセス可能な、この2つの何らかの組み合わせであってもよい。メモリ1120、1125は、本明細書において説明される1つ又は複数の技術革新を、処理部による実行に適したコンピューター実行可能な命令の形で実装するソフトウェア1180を記憶する。
【0085】
[0104]コンピューティングシステムは、付加的な機能を有し得る。例えば、コンピューティングシステム1100は、ストレージ1140、1つ又は複数の入力装置1150、1つ又は複数の出力装置1160、及び1つ又は複数の通信接続1170を含む。バス、コントローラ、又はネットワークなどの相互接続機構(図示せず)は、コンピューティングシステム1100のコンポーネントを相互接続する。典型的には、オペレーティングシステムソフトウェア(図示せず)は、コンピューティングシステム1100において実行中の他のソフトウェアのための動作環境を提供し、コンピューティングシステム1100のコンポーネントの活動を調整する。
【0086】
[0105]有形のストレージ1140は、取り外し可能でも、又は取り外し不可能であってもよく、磁気ディスク、磁気テープ若しくは磁気カセット、CD−ROM、DVD、又は非一時的な手法で情報を記憶するために使用されることができ、かつ、コンピューティングシステム1100内でアクセスされることができる任意の他の媒体を含む。ストレージ1140は、本明細書において説明される1つ又は複数の技術革新を実装するソフトウェア1180についての命令を記憶する。
【0087】
[0106]入力装置1150は、キーボード、マウス、ペン、若しくはトラックボール、音声入力装置、スキャン装置、又はコンピューティングシステム1100への入力を提供する別の装置などのタッチ入力装置であり得る。ビデオ符号化の場合、入力装置1150は、カメラ、ビデオカード、TVチューナーカード、又はビデオ入力をアナログ形式若しくはデジタル形式で受け取る同様の装置、又はビデオサンプルをコンピューティングシステム1100に読み出すCD−ROM若しくはCD−RWであり得る。出力装置1160は、ディスプレイ、プリンター、スピーカー、CDライター、又はコンピューティングシステム1100からの出力を提供する別の装置であり得る。
【0088】
[0107]通信接続1170は、別のコンピューティングエンティティとの通信媒体上での通信を可能にする。通信媒体は、コンピューター実行可能な命令、オーディオ若しくはビデオ入力若しくは出力、又は変調データ信号における他のデータなどの情報を伝達する。変調データ信号は、その特性のうちの1つ又は複数が、情報を信号に符号化するような手法で設定又は変更された信号である。限定ではなく例として、通信媒体は、電気搬送波、光搬送波、RF搬送波、又は他の搬送波を使用し得る。
【0089】
[0108]本技術革新は、コンピューター読取可能な媒体の一般的なコンテキストにおいて説明され得る。コンピューター読取可能な媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有形の媒体である。限定ではなく例として、コンピューティングシステム1100の場合、コンピューター読取可能な媒体は、メモリ1120、1125、ストレージ1140、及び上記のうちの任意の組み合わせを含む。
【0090】
[0109]本技術革新は、対象となる実プロセッサ又は仮想プロセッサ上のコンピューティングシステムにおいて実行されるプログラムモジュールに含まれるコンピューター実行可能な命令などの、コンピューター実行可能な命令の一般的なコンテキストにおいて説明され得る。一般的に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラムモジュールの機能性は、様々な実施形態において所望により組み合わせられ、又はプログラムモジュール間で分割され得る。プログラムモジュールについてのコンピューター実行可能な命令は、ローカルコンピューティングシステム又は分散コンピューティングシステム内で実行され得る。
【0091】
[0110]「システム(system)」及び「装置(device)」という用語は、本明細書において互換的に使用される。文脈が他の意味を明確に示さない限り、どちらの用語も、コンピューティングシステム又はコンピューティング装置のタイプに関するいかなる限定も暗示しない。一般に、コンピューティングシステム又はコンピューティング装置は、ローカルであっても、分散されていてもよく、専用ハードウェア及び/又は汎用ハードウェアと本明細書において説明される機能性を実装するソフトウェアとの任意の組み合わせを含み得る。
【0092】
[0111]提示のために、詳細な説明は、「判定する(determine)」及び「使用する(use)」のような用語を使用して、コンピューティングシステムにおけるコンピューター動作を説明する。これらの用語は、コンピューターによって実行される動作についての高レベルの抽象化であり、人間によって実行される行為と混同されるべきではない。これらの用語に対応する実際のコンピューター動作は、実装に応じて変わる。
【実施例23】
【0093】
例示的なモバイル装置
[0112]図12は、全体として1202で示される、種々の随意的なハードウェアコンポーネント及びソフトウェアコンポーネントを含む例示的なモバイル装置1200を描くシステム図である。例示を簡単にするために、全ての接続が示されるわけではないが、モバイル装置における任意のコンポーネント1202は、任意の他のコンポーネントと通信し得る。モバイル装置は、種々のコンピューティング装置(例えば、携帯電話、スマートフォン、ハンドヘルドコンピューター、携帯情報端末(PDA:Personal Digital Assistant)等)のうちの任意のものとすることができ、セルラーネットワーク、衛星ネットワーク、又は他のネットワークなどの1つ又は複数のモバイル通信ネットワーク1204との無線双方向通信を可能にすることができる。
【0094】
[0113]例示されるモバイル装置1200は、信号符号化、データ処理、入力/出力処理、電力制御、及び/又は他の機能などのタスクを実行するためのコントローラ又はプロセッサ1210(例えば、信号プロセッサ、マイクロプロセッサ、ASIC、又は他の制御及び処理ロジック回路)を含み得る。オペレーティングシステム1212は、コンポーネント1202の割り当て及び使用法を制御し、1つ又は複数のアプリケーションプログラム1214をサポートし得る。アプリケーションプログラム1214は、共通のモバイルコンピューティングアプリケーション(例えば、電子メールアプリケーション、カレンダー、連絡先マネージャー、ウェブブラウザ、メッセージングアプリケーション)、又は任意の他のコンピューティングアプリケーションを含み得る。アプリケーションストアにアクセスするための機能性1213も、アプリケーション1214を獲得及び更新するために使用され得る。
【0095】
[0114]例示されるモバイル装置1200は、メモリ1220を含み得る。メモリ1220は、取り外し不可能なメモリ1222及び/又は取り外し可能なメモリ1224を含み得る。取り外し不可能なメモリ1222は、RAM、ROM、フラッシュメモリ、ハードディスク、又は他の周知のメモリストレージ技術を含み得る。取り外し可能なメモリ1224は、フラッシュメモリ、又はGSM(登録商標)通信システムにおいて周知である加入者識別モジュール(SIM:Subscriber Identity Module)カード、又は「スマートカード(smart cards)」などの他の周知のメモリストレージ技術を含み得る。メモリ1220は、オペレーティングシステム1212及びアプリケーション1214を実行させるためのデータ及び/又はコードを記憶するために使用され得る。例示的なデータは、1つ又は複数の有線ネットワーク又は無線ネットワークを介して、1つ若しくは複数のネットワークサーバー若しくは他の装置へ送信され、及び/又は1つ若しくは複数のネットワークサーバー若しくは他の装置から受信されるべきウェブページ、テキスト、画像、音声ファイル、ビデオデータ、又は他のデータセットを含み得る。メモリ1220は、国際移動体加入者識別番号(IMSI:International Mobile Subscriber Identity)などの加入者識別子、及び国際移動体装置識別番号(IMEI:International Mobile Equipment Identifier)などの機器識別子を記憶するために使用され得る。そのような識別子は、ユーザー及び機器を識別するためにネットワークサーバーへ送信され得る。
【0096】
[0115]モバイル装置1200は、タッチスクリーン1232、マイクロフォン1234、カメラ1236、物理キーボード1238、及び/又はトラックボール1240などの1つ又は複数の入力装置1230、並びにスピーカー1252及びディスプレイ1254などの1つ又は複数の出力装置1250をサポートし得る。他の取り得る出力装置(図示せず)は、圧電出力装置又は他の触覚出力装置を含み得る。いくつかの装置は、2つ以上の入力/出力機能を果たし得る。例えば、タッチスクリーン1232とディスプレイ1254とは、単一の入力/出力装置に組み合わされ得る。
【0097】
[0116]無線モデム1260は、本技術分野において充分に理解されるように、アンテナ(図示せず)に結合されることができ、プロセッサ1210と外部装置との間の双方向通信をサポートすることができる。モデム1260は、一般的に示されており、モバイル通信ネットワーク1204と通信するためのセルラーモデム及び/又は他の無線ベースのモデム(例えば、ブルートゥース又はWi−Fi)を含み得る。無線モデム1260は、典型的には、単一のセルラーネットワーク内のデータ及び音声通信のためのGSM(登録商標)ネットワークなどの1つ又は複数のセルラーネットワークとの通信、セルラーネットワーク間の通信、又はモバイル装置と公衆交換電話ネットワーク(PSTN:public switched telephone network)との間の通信のために構成される。
【0098】
[0117]モバイル装置1200は、少なくとも1つの入力/出力ポート1280、電源1282、衛星測位システム(GPS:Global Positioning System)受信器などの衛星ナビゲーションシステム受信器1284、加速度計1286、並びに/又は、USBポート、IEEE1394(FireWire)ポート、及び/若しくはRS−232ポートとし得る物理コネクタ1290をさらに含み得る。任意のコンポーネントが削除されてもよく、他のコンポーネントが追加されてもよいため、例示されるコンポーネント1202は、必須又は包括的ではない。
【実施例24】
【0099】
例示的なクラウドサポート環境
[0118]例示的な環境1300において、クラウド1310は、種々の画面性能を備える、接続される装置1330、1340、1350にサービスを提供する。接続される装置1330は、コンピューター画面1335(例えば、中型の画面)を備える装置を表す。例えば、接続される装置1330は、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブック等などのパーソナルコンピューターであってもよい。接続される装置1340は、モバイル装置画面1345(例えば、小型の画面)を備える装置を表す。例えば、接続される装置1340は、携帯電話、スマートフォン、携帯情報端末、タブレットコンピューター等であってもよい。接続される装置1350は、大型の画面1355を備える装置を表す。例えば、接続される装置1350は、テレビ画面(例えば、スマートテレビ)又はテレビ受像機に接続される別の装置(例えば、セットトップボックス若しくはゲーム機)等であってもよい。接続される装置1330、1340、1350のうちの1つ又は複数は、タッチスクリーン性能を含み得る。タッチスクリーンは、入力を色々な手法で受け取ることができる。例えば、容量性タッチスクリーンは、物体(例えば、指先又はスタイラス)が画面に流れる電流を歪め又は遮断する場合、タッチ入力を検出する。別の例として、タッチスクリーンは、光学センサーを使用して、光学センサーからのビームが遮断される場合にタッチ入力を検出し得る。画面の表面との物理的な接触は、いくつかのタッチスクリーンによって入力が検出されるために必要ではない。画面性能を備えない装置も、例示的な環境1300において使用され得る。例えば、クラウド1310は、ディスプレイを備えない1つ又は複数のコンピューター(例えば、サーバーコンピューター)のためのサービスを提供し得る。
【0100】
[0119]サービスは、クラウド1310によって、サービスプロバイダー1320を通じて又はオンラインサービスの他のプロバイダ(描写せず)を通じて提供され得る。例えば、クラウドサービスは、特定の接続される装置(例えば、接続される装置1330、1340、1350)の画面サイズ、ディスプレイ性能、及び/又はタッチスクリーン性能に合わせてカスタマイズされてもよい。
【0101】
[0120]例示的な環境1300において、クラウド1310は、少なくとも部分的にはサービスプロバイダー1320を使用して、様々な接続される装置1330、1340、1350に、本明細書において説明される技術及び解決策を提供する。例えば、サービスプロバイダー1320は、様々なクラウドベースのサービスについての集中的な解決策を提供し得る。サービスプロバイダー1320は、ユーザー及び/又は装置についての(例えば、接続される装置1330、1340、1350及び/又はこれらそれぞれのユーザーについての)サービス加入を管理し得る。
【実施例25】
【0102】
例示的な実装
[0121]開示される方法のうちのいくつかの動作は、簡便な提示のために特定の順序で説明されるが、こうした説明は、以下に述べられる特定の文言によって特定の順序が必要とされない限り、並べ替えを網羅することが理解されるべきである。例えば、順序的に説明される動作は、いくつかの場合において、並べ替えられ、又は同時に実施されてもよい。さらに、簡単さのために、添付の図面は、開示される方法が他の方法と共に使用され得る様々な手法を示さないことがある。
【0103】
[0122]開示される方法のいずれも、1つ又は複数のコンピューター読取可能な記憶媒体(例えば、1つ若しくは複数の光媒体ディスク、(DRAM若しくはSRAMなどの)揮発性メモリコンポーネント、又は(ハードディスクドライブなどの)不揮発性メモリコンポーネントなどの、非一時的なコンピューター読取可能な媒体)に記憶され、コンピューター(例えば、スマートフォン又はコンピューティングハードウェアを含む他のモバイル装置を含む、任意の市販のコンピューター)上で実行されるコンピューター実行可能な命令として実装されることができる。開示される技法を実装するためのコンピューター実行可能な命令のいずれも、並びに、開示される実施形態の実装期間中に生成及び使用されるデータのいずれも、1つ又は複数のコンピューター読取可能な媒体(例えば、非一時的なコンピューター読取可能な媒体)に記憶され得る。コンピューター実行可能な命令は、例えば、専用ソフトウェアアプリケーション、又はウェブブラウザ若しくは(リモートコンピューティングアプリケーションなどの)他のソフトウェアアプリケーションを介してアクセス若しくはダウンロードされるソフトウェアアプリケーションの一部であり得る。そのようなソフトウェアは、例えば、単一のローカルコンピューター(例えば、任意の適切な市販のコンピューター)上で、又は、1つ若しくは複数のネットワークコンピューターを使用するネットワーク環境において(例えば、インターネット、広域ネットワーク、ローカルエリアネットワーク、(クラウドコンピューティングネットワークなどの)クライアント/サーバーネットワーク、若しくは他のそのようなネットワークを介して)実行され得る。
【0104】
[0123]明確さのために、ソフトウェアベースの実装のうちの、ある選択された態様のみが説明される。本技術分野において周知である他の詳細は省略される。例えば、開示される技術は、いかなる特定のコンピューター言語又はプログラムにも限定されないことが理解されるべきである。例えば、開示される技術は、C++、Java(登録商標)、Perl、JavaScript(登録商標)、Adobe Flash、又は任意の他の適切なプログラミング言語で書かれたソフトウェアによって実装され得る。同じように、開示される技術は、いかなる特定のコンピューター又はハードウェアのタイプにも限定されない。適切なコンピューター及びハードウェアの一定の詳細は周知であり、本開示において詳細に述べられることを必要としない。
【0105】
[0124]さらに、(例えば、コンピューターに、開示される方法のうちのいずれかを実行させるためのコンピューター実行可能な命令を含む)ソフトウェアベースの実施形態のいずれも、適切な通信手段を通じてアップロードされ、ダウンロードされ、又はリモートでアクセスされ得る。そのような適切な通信手段は、例えば、インターネット、ワールドワイドウェブ、イントラネット、ソフトウェアアプリケーション、ケーブル(光ファイバーケーブルを含む)、磁気通信、電磁通信(RF、マイクロ波、及び赤外線通信を含む)、電子通信、又は他のそのような通信手段を含む。
【0106】
[0125]開示される方法、装置、及びシステムは、いかなる形でも限定するものとしてみなされるべきではない。そうではなく、本開示は、単独での、並びに互いの様々な組み合わせ及び小組み合わせにおける、様々な開示される実施形態のあらゆる新規かつ非自明な特徴及び態様に向けられる。開示される方法、装置、及びシステムは、いかなる特定の態様又は特徴又はこれらの組み合わせにも限定されず、開示される実施形態は、任意の1つ又は複数の特定の利点が存在し、又は問題が解決されることも必要としない。
【0107】
非一時的なコンピューター読取可能な媒体
[0126]本明細書におけるコンピューター読取可能な媒体のいずれも、非一時的(例えば、メモリ、磁気ストレージ、光ストレージ等)であり得る。
【0108】
コンピューター読取可能な媒体への記憶
[0127]本明細書において説明される記憶アクションのいずれも、1つ又は複数のコンピューター読取可能な媒体(例えば、コンピューター読取可能な記憶媒体又は他の有形の媒体)に記憶することによって実装され得る。
【0109】
[0128]記憶されるものとして説明されるもののいずれも、1つ又は複数のコンピューター読取可能な媒体(例えば、コンピューター読取可能な記憶媒体又は他の有形の媒体)に記憶され得る。
【0110】
コンピューター読取可能な媒体における方法
[0129]本明細書において説明される方法のいずれも、1つ又は複数のコンピューター読取可能な媒体(例えば、コンピューター読取可能な記憶媒体又は他の有形の媒体)における(例えば、符号化される)コンピューター実行可能な命令によって実装され得る。そのような命令は、コンピューターに、方法を実行させることができる。本明細書において説明される技術は、種々のプログラミング言語で実装され得る。
【0111】
コンピューター読取可能な記憶装置における方法
[0130]本明細書において説明される方法のいずれも、1つ又は複数のコンピューター読取可能な記憶装置(例えば、メモリ、磁気ストレージ、光ストレージ等)に記憶されるコンピューター実行可能な命令によって実装され得る。そのような命令は、コンピューターに、方法を実行させることができる。
【0112】
代替案
[0131]任意の例からの技術は、その他の例のうちの任意の1つ又は複数において説明される技術と組み合わせられ得る。開示される技術の原理が適用され得る多くの取り得る実施形態を考慮して、例示される実施形態は、開示される技術の例であり、開示される技術の範囲への限定として受け止められるべきではないことが認識されるべきである。むしろ、開示される技術の範囲は、以下の特許請求の範囲によって包含されるものを含む。そのため、本発明者らは、本発明者らの発明を、特許請求の範囲の範囲及び精神内に収まるもの全てとして主張する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13