(57)【特許請求の範囲】
【請求項１】
少なくとも１つのデータ・プロセッサによって実行される方法であって、
ユーザのユーザ・デバイスから、前記ユーザのパスワードと、前記ユーザ・デバイスを前記ユーザが属する組織中で一意に識別する識別子と、前記ユーザによって前記ユーザ・デバイスを介してアクセスされる複数の組織サーバを含むリストとを受け付けることと、
前記ユーザのための鍵ペアを形成することであって、前記鍵ペアが公開鍵および秘密鍵を含み、前記秘密鍵が、前記ユーザに固有である、前記形成することと、
前記秘密鍵をパスフレーズを使用して暗号化することにより暗号化済み秘密鍵を生成することであって、前記パスフレーズが、前記パスワードと、前記識別子とを含み、前記暗号化済み秘密鍵が、前記パスワードと、前記識別子とを含む、前記生成することと、
前記暗号化済み秘密鍵を前記ユーザ・デバイスに格納し、前記公開鍵を、前記リストに含まれる前記複数の組織サーバのそれぞれに格納することと、
前記パスワードおよび前記識別子と共に、前記暗号化済み秘密鍵を前記ユーザ・デバイスから前記リストに含まれる前記複数の組織サーバのうち少なくとも１つの組織サーバにアクセスする際に経由されるサーバ接続クライアントに提供し、前記暗号化済み秘密鍵を復号して前記暗号化済み秘密鍵に含まれるパスワードおよび識別子を取得し、前記取得されたパスワードおよび識別子が、前記暗号化済み秘密鍵と共に提供された前記パスワードおよび前記識別子と一致する場合にのみ、前記ユーザが前記少なくとも１つの組織サーバにアクセスできるようにすること
を含む方法。
【請求項２】
前記識別子が前記ユーザ・デバイスの媒体アクセス制御（ＭＡＣ）アドレスを含む、請求項１に記載の方法。
【請求項３】
前記サーバ接続クライアントは、セキュア・シェル（ＳＳＨ）クライアントである、請求項１または２に記載の方法。
【請求項４】
前記ユーザの前記パスワードと、前記ユーザ・デバイスを一意に識別する前記識別子とのうちの少なくとも一方が変更されたことに応じて、前記ユーザのための新しい鍵ペアを形成し、結果として得られた新しい秘密鍵を、前記パスワードと前記識別子とのうちの前記変更された少なくとも一方を使用して暗号化することにより新しい暗号化済み秘密鍵を生成し、前記新しい暗号化済み秘密鍵を前記ユーザ・デバイスに格納し、結果として得られた新しい公開鍵を前記複数の組織サーバのそれぞれに格納することをさらに含む、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記組織中での前記ユーザのステータスが変更されたことに応じて、前記ユーザがアクセスできた組織サーバを前記リストから識別し、前記リスト中のすべての組織サーバから前記ユーザの前記公開鍵を除去することをさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記暗号化済みの秘密鍵と、前記公開鍵と、前記デバイスの前記識別子と、前記リストとを少なくとも含むユーザ情報をメモリに記憶することをさらに含み、前記ユーザ情報が前記ユーザを前記組織中で一意に識別する組織ユーザ識別子に関連付けられる、請求項１ないし５のいずれかに記載の方法。
【請求項７】
ソフトウェア命令を記憶した少なくとも１つのメモリに接続された少なくとも１つのデータ・プロセッサを備えるシステムであって、前記少なくとも１つのデータ・プロセッサによる前記ソフトウェア命令の実行が、
ユーザのユーザ・デバイスから、前記ユーザのパスワードと、前記ユーザ・デバイスを前記ユーザが属する組織中で一意に識別する識別子と、前記ユーザによって前記ユーザ・デバイスを介してアクセスされる複数の組織サーバを含むリストとを受け付けることと、
前記ユーザのための鍵ペアを形成することであって、前記鍵ペアが公開鍵および秘密鍵を含み、前記秘密鍵が、前記ユーザに固有である、前記形成することと、
前記秘密鍵をパスフレーズを使用して暗号化することにより暗号化済み秘密鍵を生成することであって、前記パスフレーズが、前記パスワードと、前記識別子とを含み、前記暗号化済み秘密鍵が、前記パスワードと、前記識別子とを含む、前記生成することと、
前記暗号化済み秘密鍵を前記ユーザ・デバイスに格納し、前記公開鍵を、前記リストに含まれる前記複数の組織サーバのそれぞれに格納することと、
前記パスワードおよび前記識別子と共に、前記暗号化済み秘密鍵を前記ユーザ・デバイスから前記リストに含まれる前記複数の組織サーバのうち少なくとも１つの組織サーバにアクセスする際に経由されるサーバ接続クライアントに提供し、前記暗号化済み秘密鍵を復号して前記暗号化済み秘密鍵に含まれるパスワードおよび識別子を取得し、前記取得されたパスワードおよび識別子が、前記暗号化済み秘密鍵と共に提供された前記パスワードおよび前記識別子と一致する場合にのみ、前記ユーザが前記少なくとも１つの組織サーバにアクセスできるようにすること
を前記システムに行わせる、システム。
【請求項８】
前記識別子が前記ユーザ・デバイスの媒体アクセス制御（ＭＡＣ）アドレスを含む、請求項７に記載のシステム。
【請求項９】
前記サーバ接続クライアントは、セキュア・シェル（ＳＳＨ）クライアントである、請求項７または８に記載のシステム。
【請求項１０】
前記少なくとも１つのデータ・プロセッサによる前記ソフトウェア命令の実行がさらに、前記ユーザの前記パスワードと、前記ユーザ・デバイスを一意に識別する前記識別子とのうちの少なくとも一方が変更されたことに応じて、前記ユーザのための新しい鍵ペアを形成し、結果として得られた新しい秘密鍵を、前記パスワードと前記識別子とのうちの前記変更された少なくとも一方を使用して暗号化することにより新しい暗号化済み秘密鍵を生成し、前記新しい暗号化済み秘密鍵を前記ユーザ・デバイスに格納し、結果として得られた新しい公開鍵を前記複数の組織サーバのそれぞれに格納すること、を前記システムに行わせる、請求項７ないし９のいずれかに記載のシステム。
【請求項１１】
前記少なくとも１つのデータ・プロセッサによる前記ソフトウェア命令の実行がさらに、前記組織中での前記ユーザのステータスが変更されたことに応じて、前記ユーザがアクセスできた組織サーバを前記リストから識別し、前記リスト中のすべての組織サーバから前記ユーザの前記公開鍵を除去すること、を前記システムに行わせる、請求項７ないし１０のいずれかに記載のシステム。
【請求項１２】
前記少なくとも１つのデータ・プロセッサによる前記ソフトウェア命令の実行がさらに、前記暗号化済みの秘密鍵と、前記公開鍵と、前記デバイスの前記識別子と、前記リストとを少なくとも含むユーザ情報を記憶すること、を前記システムに行わせ、前記ユーザ情報が前記ユーザを前記組織中で一意に識別する組織ユーザ識別子に関連付けられる、請求項７ないし１１のいずれかに記載のシステム。
【請求項１３】
コンピュータ可読媒体上のソフトウェア命令を含むコンピュータ・プログラムであって、コンピュータに、
ユーザのユーザ・デバイスから、前記ユーザのパスワードと、前記ユーザ・デバイスを前記ユーザが属する組織中で一意に識別する識別子と、前記ユーザによって前記ユーザ・デバイスを介してアクセスされる複数の組織サーバを含むリストとを受け付けることと、
前記ユーザのための鍵ペアを形成することであって、前記鍵ペアが公開鍵および秘密鍵を含み、前記秘密鍵が、前記ユーザに固有である、前記形成することと、
前記秘密鍵をパスフレーズを使用して暗号化することにより暗号化済み秘密鍵を生成することであって、前記パスフレーズが、前記パスワードと、前記識別子とを含み、前記暗号化済み秘密鍵が、前記パスワードと、前記識別子とを含む、前記生成することと、
前記暗号化済み秘密鍵を前記ユーザ・デバイスに格納し、前記公開鍵を、前記リストに含まれる前記複数の組織サーバのそれぞれに格納することと、
前記パスワードおよび前記識別子と共に、前記暗号化済み秘密鍵を前記ユーザ・デバイスから前記リストに含まれる前記複数の組織サーバのうち少なくとも１つの組織サーバにアクセスする際に経由されるサーバ接続クライアントに提供し、前記暗号化済み秘密鍵を復号して前記暗号化済み秘密鍵に含まれるパスワードおよび識別子を取得し、前記取得されたパスワードおよび識別子が、前記暗号化済み秘密鍵と共に提供された前記パスワードおよび前記識別子と一致する場合にのみ、前記ユーザが前記少なくとも１つの組織サーバにアクセスできるようにすること
を実行させる、コンピュータ・プログラム。
【請求項１４】
前記識別子が前記ユーザ・デバイスの媒体アクセス制御（ＭＡＣ）アドレスを含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記サーバ接続クライアントは、セキュア・シェル（ＳＳＨ）クライアントである、請求項１３または１４に記載のコンピュータ・プログラム。
【請求項１６】
前記コンピュータに、
前記ユーザの前記パスワードと、前記ユーザ・デバイスを一意に識別する前記識別子とのうちの少なくとも一方が変更されたことに応じて、前記ユーザのための新しい鍵ペアを形成し、結果として得られた新しい秘密鍵を、前記パスワードと前記識別子とのうちの前記変更された少なくとも一方を使用して暗号化することにより新しい暗号化済み秘密鍵を生成し、前記新しい暗号化済み秘密鍵を前記ユーザ・デバイスに格納し、結果として得られた新しい公開鍵を前記複数の組織サーバのそれぞれに格納することと、
前記組織中での前記ユーザのステータスが変更されたことに応じて、前記ユーザがアクセスできた組織サーバを前記リストから識別し、前記リスト中のすべての組織サーバから前記ユーザの前記公開鍵を除去すること
をさらに実行させる、請求項１３ないし１５のいずれかに記載のコンピュータ・プログラム。
【請求項１７】
前記コンピュータに、前記暗号化済みの秘密鍵と、前記公開鍵と、前記デバイスの前記識別子と、前記リストとを少なくとも含むユーザ情報をメモリに記憶すること、を更に実行させ、前記ユーザ情報が前記ユーザを前記組織中で一意に識別する組織ユーザ識別子に関連付けられる、請求項１３ないし１６のいずれかに記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は一般に、認証鍵ペアを使用してユーザが通信ネットワークを介してサーバに安全にアクセスできるようにする、データ処理システム、ソフトウェア、および方法に関する。
【背景技術】
【０００２】
鍵ベースの認証は、一般に、パスワードベースの認証よりも安全であると考えられる。セキュア・シェル（ＳＳＨ）など、いくつかのツールは、鍵ベースの認証とパスワードベースの認証との両方に対するサポートを提供する。ＳＳＨについては、例えば、RFC 4253, "The Secure Shell (SSH) Transport LayerProtocol", T. Ylonen and C. Lonvick, 2006において一般に参照することができる。
【０００３】
識別（identity）の妥当性検査を補助するために、ＳＳＨは、鍵管理能力および関連エージェントを有する。公開鍵認証を用いて構成されたとき、鍵は、ユーザの識別をリモートＳＳＨホストに対して証明する。ＳＳＨベースの識別は、公開鍵と秘密鍵という２つの部分からなる。秘密ＳＳＨ鍵は、アウトバウンドＳＳＨ接続のためのユーザの識別であり、機密に維持されるべきである。ユーザがリモート・ホストまたはサーバへのＳＳＨまたはＳＣＰセッションを開始するとき、ユーザは、ＳＳＨクライアントを介して、リモート・ホストまたはサーバへのアクセスを得る。
【０００４】
秘密鍵は、決してクライアントを離れるべきでなく、「パスフレーズ」を使用して暗号化されるべきである。秘密鍵が紛失したかまたは盗まれたときは、新しい鍵ペアが再生成されるべきであり、組織（enterprise）は、すべてのパスワードベースのＳＳＨ認証をディセーブルにすることができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】RFC 4253, "The Secure Shell(SSH) Transport Layer Protocol", T. Ylonen and C. Lonvick, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＳＨなどのツールによって使用される秘密鍵と公開鍵（鍵ペア）の管理は、組織セキュリティおよびコンプライアンスを確実にするために重要である。法人（corporation）、営利もしくは非営利団体（organization）、または行政機関など、大きい組織は、通常、数百万個の鍵ペアを追跡する必要がある。不正流用される秘密鍵は、組織にとって大きいセキュリティ・リスクとなり得る。さらに、秘密鍵を所有するユーザが組織を去るときは、組織の１つまたは複数のサーバ上に記憶されたどのような対応する公開鍵も無効化／除去することが重要である。一般的なルールとして、秘密鍵は、共有されるべきでなく、理想的には、共有されることが防止されるべきである。
【０００７】
鍵管理のための現在利用可能なツールおよび技法は、これらおよび他の問題に十分に対処しない。
【課題を解決するための手段】
【０００８】
本発明の非限定的な一態様によれば、ユーザのための鍵ペアを形成することであって、鍵ペアが公開鍵および秘密鍵を含み、秘密鍵が、ユーザに固有であり、パスフレーズを使用して暗号化され、パスフレーズが、ユーザの組織パスワードと、ユーザが組織にアクセスするためのデバイスを組織中で一意に識別する識別子とを含む、形成することと、秘密鍵をユーザ・デバイスに記憶し、公開鍵を、ユーザによってアクセスされる少なくとも１つの組織サーバに記憶することと、を含む方法が提供される。
【０００９】
一実施形態では、ユーザは、セキュア・シェル（ＳＳＨ）クライアントを介して組織サーバにアクセスする。
【００１０】
一実施形態では、方法はさらに、パスワードおよび識別子と共に、秘密鍵をユーザ・デバイスからＳＳＨクライアントに提供し、秘密鍵を復号して復号済みのパスワードおよび識別子を取得し、復号済みのパスワードおよび識別子が、秘密鍵と共に提供されたパスワードおよび識別子と一致する場合にのみ、ユーザが組織サーバにアクセスできるようにすること、を含む。しかし、本発明がＳＳＨクライアントの使用に限定されないことは理解されるであろう。
【００１１】
本発明の別の非限定的な態様によれば、ソフトウェア命令を記憶した少なくとも１つのメモリに接続された少なくとも１つのデータ・プロセッサを備えるシステムが提供される。このシステム中では、少なくとも１つのデータ・プロセッサによるソフトウェア命令の実行が、ユーザのための鍵ペアを形成することであって、鍵ペアが公開鍵および秘密鍵を含み、秘密鍵が、ユーザに固有であり、パスフレーズを使用して暗号化され、パスフレーズが、ユーザの組織パスワードと、ユーザが組織にアクセスするためのデバイスを組織中で一意に識別する識別子とを含む、形成することと、秘密鍵をユーザのデバイスに記憶し、公開鍵を、ユーザによってアクセスされる少なくとも１つの組織サーバに記憶することと、を前記システムに行わせる。
【００１２】
本発明のさらに別の非限定的な態様によれば、コンピュータ可読媒体上のソフトウェア命令を含むコンピュータ・プログラム製品が提供される。コンピュータを使用してソフトウェア命令を実行する結果として、ユーザのための鍵ペアを形成することであって、鍵ペアが公開鍵および秘密鍵を含み、秘密鍵が、ユーザに固有であり、パスフレーズを使用して暗号化され、パスフレーズが、ユーザの組織パスワードと、ユーザが組織にアクセスするためのデバイスを組織中で一意に識別する識別子とを含む、形成することと、秘密鍵をユーザのデバイスに記憶し、公開鍵を、ユーザによってアクセスされる少なくとも１つの組織サーバに記憶することと、を含む動作が実施される。
【００１３】
次に、単なる例として、後続の図面を参照しながら本発明の好ましい一実施形態について述べる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による鍵管理システムのブロック図および信号流れ図である。
【図２】図１に示されるシステムのコンポーネントの１つまたは複数を実現するのに使用できるデータ処理システム２００の一実施形態の非限定的な例を提示する図である。
【図３】本発明の方法の一実施形態の例による論理流れ図（フロー・チャート）、ならびに、本発明の実施形態によるコンピュータ・ソフトウェアの実行の結果を示す図である。
【発明を実施するための形態】
【００１５】
序論として、鍵管理は、理想的には、組織ユーザ識別子（ＩＤ）およびパスワードの管理と同じくらいシームレスであるべきである。通常の組織パスワード失効ポリシーの場合と同様、理想的には、ユーザの組織パスワードが失効したときは常に、ユーザの１つまたは複数のセキュリティ鍵は失効すべきである。さらに、組織ユーザが覚える必要のあるパスワードが１つだけであり、所有する必要のある秘密鍵が１つだけであれば、好ましいであろう。さらに、ユーザが複数の秘密鍵を必要とする場合は、理想的には、このユーザに関連するすべての秘密鍵は、例えばユーザがこの組織にもはや関連しなくなった場合に、失効すべきである。さらにまた、組織パスワードが失効したときは、対応するどのような秘密鍵もまた失効すべきであることが望ましい。また、ユーザが新しいデバイスを入手した場合、またはユーザのデバイスが置き忘れられたか盗まれた場合は、秘密鍵もまた失効すべきである。
【００１６】
本明細書で考察されるように、秘密鍵は、ユーザに固有である（少なくとも当該の組織または団体内では）。すなわち、秘密鍵は、（その組織または団体の）単一のユーザによってしか所有できない。加えて、通常、秘密鍵は、少数のデバイス上で有効であり、これらのデバイスはまた、同じユーザによって所有されるかまたは制御されるかあるいはその両方がなされるものである。
【００１７】
鍵のアカウンタビリティは、重要なセキュリティ考慮事項である。というのは、組織は、監査要件またはコンプライアンス要件あるいはその両方のため、すべての鍵を追跡する必要がある場合があるからである。組織はまた、鍵（秘密鍵と公開鍵の両方）の所有権も追跡できるべきである。さらに、組織が秘密鍵を常に追跡している必要がある場合は、好ましくは、クライアント・コンピュータ上に、すなわち、組織に関連するサーバに組織ユーザがアクセスする際に経由されるコンピューティング・デバイス上に、暗号化された秘密鍵が記憶されるべきである。これらの考慮事項はまた、組織が公衆クラウド・サービスなどのサード・パーティ・サービスを提供するときにも重要となり得る。一般に、組織ユーザ鍵管理は、明確に定義されたアプリケーション・プログラム・インタフェース（ＡＰＩ）に基づくべきである。
【００１８】
様々な鍵ベースおよびパスワードベースの認証アプローチを比較することは、有益である。例えば、ＳＳＨ鍵認証の場合、秘密鍵はワイヤを介して送られることは決してなく（すなわち決して曝されず）、認証は、ユーザが有するもの（鍵）に基づく。単一の秘密鍵を使用して、複数のサーバにログインすることができる。しかし、秘密鍵は、不正流用される可能性があり、したがって、パスフレーズの使用などによってセキュリティ保護されるべきである。一般に、秘密鍵はクライアントによって管理され、公開鍵はサーバによって管理される。秘密鍵はまた、いくつかのコマンドの実行を制限するのに使用することもでき、また、非対話式ログインを達成するのに使用することもできる。
【００１９】
ＳＳＨパスワード認証の場合、ユーザのパスワードは、サーバ認証のためにワイヤを介して送られる（サーバがパスワードを管理する）。この場合、認証は、ユーザが知っているもの（パスワード）に基づく。複数のパスワードが必要とされることがあり、これらのパスワードは、通常は平文で記録され、したがって不正流用されやすい。ＳＳＨパスワード認証は、一般に、コマンドの制限も非対話式ログインもサポートしない。
【００２０】
セキュリティ考慮事項は、中間者攻撃（man in the middle attack）の危険を含み得る。中間者攻撃では、安全なチャネル上でもパスワードが傍受される可能性がある。また、パスワード認証の場合、ブルート・フォース攻撃が成功する可能性もより高い。
【００２１】
本発明の様々な実施形態は、有益なことに、前述のおよび他の問題に対処し、これらの問題の解決を試みる。
【００２２】
本発明の様々な実施形態による鍵管理の教示を実施できるシステム１００のブロック図を示すための図１を参照する。システム１００は、以下のものに限定されないが、公開会社（company）、非公開会社、営利もしくは非営利団体、または行政機関などの、組織において実装することができる。いくつかの実施形態では、システム１００は、組織のコンピュータ上で稼働するソフトウェアとして実装することができ、他の実施形態では、システム１００は、クラウド・コンピューティング環境において少なくとも１つのバーチャル・マシン上で、全体的または部分的に実装することができる。
【００２３】
システム１００は、本発明の実施形態によれば、識別および鍵管理システムまたはツール１０２を含み、この識別および鍵管理システムまたはツール１０２は、鍵生成サブシステムまたはツール１０２Ａと、鍵管理ストア１０２Ｂとを備える。システム１００はまた、１つまたは複数のサーバ１０４と、組織の従業員に関係する情報が記憶される組織ディレクトリ１０６と、ＳＳＨクライアント１０８と、少なくとも１つのクライアント・コンピュータ１１０とを含む。クライアント・コンピュータ１１０は、従業員によって使用されるものであり、デスクトップＰＣ、ラップトップＰＣ、ワークステーション、または、タブレット・コンピュータや、スマートフォンのような通信デバイス等の、モバイル・デバイスなど、任意の適切な形をとることができる。クライアント・コンピュータ１１０は、組織イントラネットと接続される。
【００２４】
動作時、「１」としてラベル付けされた図１の信号流れ線を参照すると、ユーザは、以下の情報を入力してから「鍵ペアを生成する」制御またはボタンを作動化するよう、クライアント・コンピュータ１１０におけるＡＰＩを介して促される。
ａ）組織ユーザＩＤおよびイントラネット・パスワード。
ｂ）ユーザの公開鍵が記憶されることになる、ユーザによってアクセスされるサーバ１０４のリスト。
ｃ）サーバ１０４とのＳＳＨセッションを確立するのに使用されることになる、クライアント・コンピュータ１１０の媒体アクセス制御（ＭＡＣ）アドレス。いくつかの実施形態では、ＭＡＣアドレスは、ユーザの直接関与なしにクライアント・コンピュータ１１０から出力されてよい。
【００２５】
秘密鍵が複数のクライアント・コンピュータによって共有されないことを確実にするために、秘密鍵は、ＭＡＣアドレスを使用して暗号化されてよい。秘密鍵が複数のクライアント・コンピュータにわたって共有されることを組織が許可する場合は、別の実施形態では、ＭＡＣアドレスは使用されず、クライアント・コンピュータ１１０の固有のモバイルＩＤなど、ユーザが有する他の何らかのメカニズムが採用される。いずれの場合も、秘密鍵の暗号化は、クライアント・コンピュータを組織中で一意に識別するクライアント・コンピュータ１１０の識別子を、部分的に使用することが好ましい。
【００２６】
「２」としてラベル付けされた図１の信号流れ線を参照すると、鍵生成ツール１０２Ａは、組織ディレクトリ１０６を使用して、入力された組織ＩＤおよびイントラネット・パスワードの有効性を検証する。
【００２７】
このユーザ情報が正しいと仮定すると、また、「３」としてラベル付けされた図１の信号流れ線を参照すると、鍵生成ツール１０２Ａは、鍵ペアを生成し、公開鍵および秘密鍵を他の関連情報と共に鍵管理ストア１０２Ｂに記憶する。組織ユーザＩＤ（例えば従業員番号）が、この情報を記憶するための１次キーとして使用されてよい。記憶される情報は、非限定的な例として、公開鍵と、有効なイントラネット・パスワードおよび（例えば）クライアント・コンピュータ１１０のＭＡＣアドレスを使用して暗号化された秘密鍵と、ユーザがアクセスしたいと望む適切なサーバ１０４のリストと、クライアント・コンピュータ１１０のＭＡＣアドレス（またはクライアント・コンピュータ１１０を組織中で一意に識別する他の何らかの情報）と、を含むことができる。
【００２８】
鍵ペアの秘密鍵を作成するのに使用される暗号化アルゴリズムは、非限定的な例として、ディジタル署名アルゴリズム（ＤＳＡ）暗号化、リベスト・シャミア・エーデルマン（ＲＳＡ）暗号化、ディフィー・ヘルマン（ＤＨ）暗号化、のうちの１つであってよい。
【００２９】
「４」としてラベル付けされた図１の信号流れ線を参照すると、鍵生成ツール１０２Ａは、鍵ペアの公開鍵１０４Ａを、リストされたサーバ１０４のすべてに記憶する。
【００３０】
「５」としてラベル付けされた図１の信号流れ線を参照すると、鍵生成ツール１０２Ａは次いで、鍵ペアの暗号化済みの秘密鍵１１０Ａをクライアント・コンピュータ１１０に記憶する。上で説明したように、秘密鍵は、組織パスワードおよびＭＡＣアドレスを使用して暗号化されている。組織パスワードおよびＭＡＣアドレスは、秘密鍵１１０Ａを保護するための「パスフレーズ」パスワードと考えることができる。秘密鍵１１０Ａは、平文で見られることは決してない（次のステップで説明するように、ＳＳＨクライアント・ツール１０８を除いては）。
【００３１】
「４」および「５」としてラベル付けされた動作の実行順序は、逆でもよい。
【００３２】
「６」としてラベル付けされた図１の信号流れ線を参照すると、あとで新しいＳＳＨセッションがユーザによって必要とされたとき、ＳＳＨクライアント・ツール１０８（例えば、ＰｕＴＴＹとして知られるＳＳＨクライアントの修正バージョンに基づくもの）が作動化され、ユーザによって選択された接続先サーバ１０４（ターゲット・サーバ１０４）の識別子が、クライアント・コンピュータ１１０に記憶された暗号化済み秘密鍵１１０Ａと共に、ＳＳＨクライアント・ツール１０８に通知される。これは、まず組織ユーザＩＤおよびパスワードをＳＳＨクライアント１０８に入力することによって達成することができる。ＳＳＨクライアント１０８は、組織ディレクトリ１０６を用いて、ユーザＩＤおよびパスワードの有効性を検証することができる。
【００３３】
「７」としてラベル付けされた図１の信号流れ線を参照すると、ＳＳＨクライアント・ツール１０８は次いで、入力されたクライアント・コンピュータ１１０のＭＡＣアドレスおよびパスワードを使用して、暗号化済みの秘密鍵１１０Ａを復号する。
【００３４】
「８」としてラベル付けされた図１の信号流れ線を参照すると、組織ユーザＩＤおよびパスワードが検証されたと仮定し、受け取られたクライアント・コンピュータ１１０のＭＡＣアドレスが復号済みの「パスフレーズ」パスワードと一致すると仮定すると、ＳＳＨクライアント１０８は、ターゲット・サーバ１０４とのＳＳＨセッションを確立する。
【００３５】
「９」としてラベル付けされた図１の信号流れ線を参照すると、パスワードが無効である場合、または入力されたＭＡＣアドレスが復号済みのＭＡＣアドレスと一致しない場合は、ＳＳＨクライアント１０８は、ターゲット・サーバ１０４とのＳＳＨセッションを確立せず、その代り、鍵生成ツール１０２Ａに失敗を通知する。鍵生成ツール１０２Ａは次いで、鍵ペアを再生成するオプションをユーザに与えることができる。
【００３６】
組織パスワードが、失効しているか、または他の何らかの理由で組織ユーザによって変更されなければならない場合は、組織ユーザは通知を受けることができ、鍵生成ツール１０２Ａへのリンクが組織ユーザに送られる。これはまた、ユーザが新しいユーザ・デバイス（例えば新しいラップトップ）を手に入れた場合にも行われる。サーバのリストが取得され、このサーバのリストは、ユーザが接続したいと望むすべてのサーバ１０４を選択するために、組織ユーザに提示される。任意選択で、クライアント・コンピュータＭＡＣアドレスも取得されてよい。
【００３７】
鍵生成ツール１０２Ａは次いで、ユーザに関連するサーバ１０４上の、ユーザのすべての公開鍵１０４Ａを無効化する。公開鍵１０４Ａをサーバ１０４から除去するのに適したツールの１つは、ＩＢＭ（Ｒ）Ｅｎｄｐｏｉｎｔ  Ｍａｎａｇｅｒとして知られるものである。鍵生成ツール１０２Ａは次いで、新しいデバイスＭＡＣアドレス、またはユーザの新しいパスワード、あるいはその両方を使用して、図１に関して説明したようにユーザの鍵ペアを再生成する。
【００３８】
組織ユーザが組織を去り、もはや組織内での有効なユーザ・パスワードを有しないとき、または場合によっては、組織内でのユーザの役割が変化し、それにより、ユーザによってアクセスされる少なくとも１つのサーバがもはやユーザの新しい役割に関係がない場合など、ユーザのステータスに変化があったときは、鍵生成ツール１０２Ａは、ユーザに関連するサーバ１０４のセットを識別し、ユーザに関連するすべてのサーバ１０４上のすべての公開鍵１０４Ａを無効化することができる。
【００３９】
図２に、図１に示されたシステム１００のコンポーネントの１つまたは複数を実現するのに使用できるデータ処理システム２００の一実施形態の非限定的な例を示す。例えば、データ処理システム２００は、前述の様々な動作のすべてまたはいくつかを実施するように構成されたコンピュータ可読プログラム命令（ソフトウェア（ＳＷ））を記憶したメモリなど、少なくとも１つのコンピュータ可読媒体と接続された、少なくとも１つのデータ・プロセッサ２０２を備える。例えば、コンピュータ可読プログラム命令２０２Ａは、鍵生成ツール１０２Ａの機能性を実行するように構成されてよく、適切なインタフェース（Ｉ／Ｆ）２０６を介してクライアント・コンピュータ１１０と接続される。インタフェース２０６は、有線インタフェースとワイヤレス・インタフェース（例えば、光学インタフェースまたは無線周波数（ＲＦ）インタフェースあるいはその両方）とのうちの一方または両方を含むことができる。インタフェース２０６は、組織イントラネット（例えば、ＬＡＮまたはＷＬＡＮ）の一部を形成すると考えることができるが、インターネットなどのワイド・エリア・ネットワーク（ＷＡＮ）に接続する能力を備えることもできる。
【００４０】
メモリ２０４は、鍵管理ストア１０２Ｂを含むように構成され、個々のユーザごとに、例えば、ユーザの暗号化済みの鍵ペアと、ユーザに関連するサーバのリストと、他のユーザ関連情報とを記録することができる。このユーザ関連情報は、非限定的な例として、ユーザの（例えばイントラネット）パスワード、ユーザのアクセス・デバイス（本実施形態では、クライアント・コンピュータ１１０）のＭＡＣアドレス（または他の固有の識別情報、あるいはその両方）、およびユーザの組織ＩＤ、を含む。データ・プロセッサ２０２はまた、データ・プロセッサ２０２の場所に対してローカルまたはリモートであってよいサーバ１０４ともインタフェースされる。データ・プロセッサ２０２はまた、組織ディレクトリ１０６（メモリ２０４中にあってもよい）ともインタフェースされる。コンピュータ可読プログラム命令２０２Ａもまた、メモリ２０４中にあってもよい。
【００４１】
鍵生成ツール１０２Ａの機能性がローカルＳＷ２０２Ａに含まれない場合、鍵生成ツール１０２Ａの機能性は、データ・プロセッサ２０２と同じ場所に位置するか、または、データ・プロセッサ２０２からリモートに位置し、１つもしくは複数の適切で安全なインタフェースを介して接続される、別個のプロセッサ、システムまたはサブシステム中にあってもよい。
【００４２】
いくつかの非限定的な実施形態では、鍵生成ツール１０２Ａの機能性は、組織によって加入されるサービスとして実装されてもよい。この場合、鍵生成ツール１０２Ａは、ローカルにインストールされて操作されてもよく、または、リモートに接続されて操作されてもよい。
【００４３】
いくつかの実施形態では、データ処理システム２００は、組織において物理的に配置して実装することができ、他のいくつかの実施形態では、データ処理システム２００ならびに関連するモジュール、サブシステムおよびメモリ（例えばメモリ２０４）のいくつかまたはすべては、組織自体またはサード・パーティ・クラウド・プロバイダによってクラウド中でホストされる１つまたは複数の仮想システムとして実装することができる。
【００４４】
一般に、鍵生成ツール１０２Ａを含むがこれに限定されない本発明の実施形態を実装する任意のコンピュータ・プログラム製品は、同じプラットフォーム上で具体化されてもよく、または、コンピュータ・プログラム製品と鍵生成ツール１０２Ａは、異なるプラットフォーム上で具体化されてもよく、この１つまたは複数のプラットフォームは、ハードウェアによる実装と、仮想のクラウドベースの実装とのうちの一方または両方を含むことができる。
【００４５】
本発明の実施形態の様々な例では、ユーザは、修正されたＳＳＨクライアント（ＰｕＴＴＹの修正バージョンなど。すなわち、ディレクトリ・サーバに接続する能力、またはユーザのイントラネット・パスワードとコンピュータＭＡＣアドレスとを使用して秘密鍵を復号する能力、あるいはその両方の能力を有するバージョンなど）を介して、ターゲット・サーバにアクセスすることができる。別法として、ユーザは、ジャンプ・サーバ（またはジャンプ・ホスト）、すなわち、デバイスを別個のセキュリティ・ゾーン中で管理するのに通常使用される、ネットワーク上の専用コンピュータを介して、ネットワークにアクセスすることもできる。この実施形態は、ユーザがサーバにアクセスする際に経由されるＳＳＨクライアントを修正する機会がない場合に、特に有益である。
【００４６】
本発明の教示は、ＳＳＨ接続だけでなく、鍵を用いて認証される他の接続（例えばＨＴＴＰＳ）にも適用可能である。
【００４７】
本発明の実施形態は、少なくとも１つのデータ・プロセッサによって実装される、または少なくとも１つのデータ・プロセッサを用いて実装される、方法、コンピュータ・プログラムおよびシステムを提供する。方法は、組織の従業員を一意に識別する向上した組織ユーザおよびパスワード能力を有する組織識別管理を提供する。
【００４８】
本発明の実施形態によれば、組織ユーザは鍵ペアのセットを所有することができ、ユーザの組織パスワードが失効したときは常に、鍵ペアのセットのうちのすべての鍵ペアがリフレッシュされるものとすることができる。
【００４９】
図３を参照すると、本発明の実施形態は、その一態様では、少なくとも１つのデータ・プロセッサによって実装される方法を提供し、方法は、ユーザのための鍵ペアを形成すること（ブロック３Ａ）を含む。鍵ペアは公開鍵および秘密鍵を含み、秘密鍵は、ユーザに固有（組織中で）であり、パスフレーズを使用して暗号化され、パスフレーズは、ユーザの組織パスワードと、ユーザが組織にアクセスするためのデバイスを組織中で一意に識別する識別子と、を含む。方法はさらに、秘密鍵をユーザのデバイスに記憶し、公開鍵を、ユーザによってアクセスされる少なくとも１つの組織サーバに記憶すること（ブロック３Ｂ）を含む。
【００５０】
この方法では、識別子は、デバイスの媒体アクセス制御（ＭＡＣ）アドレスを含むことができ、ユーザは、セキュア・シェル（ＳＳＨ）クライアントを介して組織サーバにアクセスすることができる。
【００５１】
ブロック３Ｃを参照すると、方法はさらに、パスワードおよび識別子と共に、秘密鍵をユーザ・デバイスからＳＳＨクライアントに提供し、秘密鍵を復号して復号済みのパスワードおよび識別子を取得し、復号済みのパスワードおよび識別子が、秘密鍵と共に提供されたパスワードおよび識別子と一致する場合にのみ、ユーザが組織サーバにアクセスできるようにすること、を含む。
【００５２】
ブロック３Ｄを参照すると、方法はさらに、暗号化済みの秘密鍵と、公開鍵と、デバイスの識別子と、ユーザによってアクセス可能な組織サーバのリストと、を少なくとも含むユーザ情報を、メモリに記憶することを含むことができる。ユーザ情報は、組織ユーザ識別子に関連付けられる。
【００５３】
ブロック３Ｅを参照すると、方法はさらに、ユーザの組織パスワードと、デバイスを一意に識別する識別子とのうちの少なくとも一方が変更されたことに応じて、組織パスワードと識別子とのうちの変更された少なくとも一方を使用してユーザのための新しい鍵ペアを形成し、結果として得られた新しい秘密鍵をユーザ・デバイスに記憶し、結果として得られた新しい公開鍵を組織サーバに記憶することを含む。
【００５４】
ブロック３Ｆを参照すると、方法はさらに、組織中でのユーザのステータスが変更されたことに応じて、ユーザがアクセスできた組織サーバをサーバのリストから識別し、リスト中のすべての組織サーバからユーザの公開鍵を除去することを含む。
【００５５】
本発明はまた、方法を実行するように構成されたシステムおよびコンピュータ・プログラム製品も包含することができる。このコンピュータ・プログラム製品は、本発明の態様をプロセッサに遂行させるためのコンピュータ可読プログラム命令を有する１つまたは複数のコンピュータ可読ストレージ媒体を含むことができる。
【００５６】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、以下のものに限定されないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、消去可能プログラム可能な読取専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、ディジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、機械的にエンコードされたデバイス（命令が記録された、パンチカード、または溝の中の隆起構造）、およびこれらの任意の適切な組合せを含む。本明細書におけるコンピュータ可読ストレージ媒体は、電波もしくは他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を介して伝搬する電磁波（例えば、光ファイバ・ケーブルの中を通る光パルス）、またはワイヤを介して伝送される電気信号など、一時的な信号自体であると解釈されるべきではない。
【００５７】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードされてよく、あるいは、ネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含むことができる。各コンピューティング／処理デバイス中の、ネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、コンピュータ可読プログラム命令をネットワークから受け取り、これらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に記憶されるように転送する。
【００５８】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データであってよく、または、Ｓｍａｌｌｔａｌｋ（Ｒ）やＣ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含めた、１つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードとオブジェクト・コードとのいずれかであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されるか、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で実行され部分的にリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行される場合がある。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを使用してインターネット経由で）行われてもよい。いくつかの実施形態では、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）、を例えば含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【００５９】
本明細書では、本発明の態様が、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の、フローチャート説明またはブロック図あるいはその両方に関して記述される。フローチャート説明またはブロック図あるいはその両方の各ブロック、および、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ可読プログラム命令によって実装できることは理解されるであろう。
【００６０】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実装する手段をもたらすように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを生み出すことができるものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為の態様を実装する命令を含む製造品を構成するように、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに、特定の方式で機能するよう指示することができるものであってもよい。
【００６１】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロック中で指定される機能／行為を実装するように、コンピュータ実装プロセスが生み出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させるものであってもよい。
【００６２】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、モジュール、セグメント、または命令の一部を表すことができ、これは、指定される論理機能を実装するための１つまたは複数の実行可能命令を含む。いくつかの代替実装形態では、ブロック中で示される機能は、図中で示される順序とは異なる順序で生じる場合がある。例えば、関連する機能性に応じて、連続して示される２つのブロックが実際にはほぼ同時に実行される場合もあり、またはこれらのブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明あるいはその両方の各ブロック、および、ブロック図またはフローチャート説明あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を実施するかまたは専用ハードウェアとコンピュータ命令との組合せを遂行する、専用ハードウェアベースのシステムによって実装できることにも留意されるであろう。
【００６３】
本明細書で使用される用語は、特定の実施形態を記述するためのものに過ぎず、本発明を限定するものとはしない。本明細書において、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、コンテキストが明確にそうでないと示さない限り、複数形も含むものとする。さらに、用語「含む、備える」（「ｃｏｍｐｒｉｓｅｓ」または「ｃｏｍｐｒｉｓｉｎｇ」あるいはその両方）」が本明細書で使用されるとき、これらは、記載された特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組合せの存在を指定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはそれらの組合せの存在または追加を排除しないことも、理解されるであろう。
【００６４】
以下の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素の、対応する構造、材料、行為、および均等物は、具体的に請求される他の特許請求要素との組合せで機能を実施するための任意の構造、材料、または行為を含むものとする。
【００６５】
本発明の様々な実施形態についての記述は、例証の目的で提示したものであり、網羅的なもの、または開示される形の実施形態に限定されるものとはしない。述べた実施形態の範囲および思想を逸脱することなく、多くの変更および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に勝る技術的改善、を最もうまく説明するために、または、本明細書で開示される実施形態を他の当業者が理解できるようにするために、選ばれたものである。
【００６６】
したがって、以上の記述を添付の図面および添付の特許請求の範囲と共に読めば、以上の記述に鑑みて様々な変更および適応が当業者には明らかになるであろう。いくつかの例に過ぎないが、他の類似のまたは等価な安全接続システム、鍵ペア生成アルゴリズム、またはシステム・アーキテクチャ、あるいはそれらの組合せが、当業者によって使用されることも可能である。しかし、本発明の教示の、すべてのそのような変更および類似の変更も、やはり本発明の範囲内に入ることになる。
【図１】
0006691545.tif 000002
【図２】
0006691545.tif 000003
【図３】
0006691545.tif 000004