(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6754149
(24)【登録日】2020年8月25日
(45)【発行日】2020年9月9日
(54)【発明の名称】プログラム、ウェブサーバ、認証方法および認証システム
(51)【国際特許分類】
G06F 21/31 20130101AFI20200831BHJP
G06F 21/62 20130101ALI20200831BHJP
H04L 9/14 20060101ALI20200831BHJP
【FI】
G06F21/31
G06F21/62
H04L9/00 641
【請求項の数】11
【全頁数】17
(21)【出願番号】特願2019-223974(P2019-223974)
(22)【出願日】2019年12月11日
【審査請求日】2019年12月11日
【早期審査対象出願】
(73)【特許権者】
【識別番号】519443136
【氏名又は名称】SingulaNet株式会社
(74)【代理人】
【識別番号】100137338
【弁理士】
【氏名又は名称】辻田 朋子
(72)【発明者】
【氏名】大竹 祐貴
【審査官】
吉田 歩
(56)【参考文献】
【文献】
特開2006−285648(JP,A)
【文献】
特開2015−230713(JP,A)
【文献】
国際公開第2017/134922(WO,A1)
【文献】
株式会社SCC教育事業推進本部セキュリティ教育部,最新 わかりすぎる情報セキュリティの教科書,株式会社エスシーシー(SCC),2016年 2月15日,第1版,p.128,ISBN 978-4-88647-241-0, 特にp.128 第1行−第3行参照
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
G06F 21/62
H04L 9/14
(57)【特許請求の範囲】
【請求項1】
サービスの不正利用を防止するためのプログラムであって、コンピュータを、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信し、
前記第一の鍵を、前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第三の鍵とともに、前記ネットワークからのアクセス制限が施された鍵サーバに送信し、
前記鍵サーバにおける前記第一の鍵及び第三の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、第二の鍵を前記鍵サーバから受信し、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄するように機能させる
プログラム。
【請求項2】
サービスの不正利用を防止するためのプログラムであって、コンピュータを、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信し、
前記第一の鍵を、前記ネットワークからのアクセス制限が施された鍵サーバに送信し、
前記鍵サーバにおける前記第一の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、第二の鍵を前記鍵サーバから受信し、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄するように機能させ、
前記コンピュータを、
前記第二の鍵を前記鍵サーバから受信した後に、前記ユーザ端末にセッションIDを送信して前記ユーザ端末との間でセッションを確立し、
前記ユーザ端末から、前記セッションIDを受信すると、前記セッションIDの有効性を確認し、
前記セッションIDの有効性が確認された場合に、前記サービスサーバにおいて機能を実行するための入力を前記ユーザ端末から受け付けて、当該入力に応じた機能実行依頼を前記サービスサーバに送信して機能を実行させるように更に機能させる
プログラム。
【請求項3】
前記コンピュータを、
前記ユーザ端末から、前記セッションIDとともに前記第一のユーザ識別子を受信し、前記セッションID及び第一のユーザ識別子の有効性を確認するように更に機能させる請求項2に記載のプログラム。
【請求項4】
前記コンピュータを、
前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第二のユーザ識別子を、前記第一の鍵とともに前記鍵サーバに送信し、
前記鍵サーバにおける前記第一の鍵及び第二のユーザ識別子の照合結果として、前記第二の鍵を前記鍵サーバから受信するように更に機能させる請求項1〜3の何れかに記載のプログラム。
【請求項5】
前記コンピュータを、
前記コンピュータへの不正侵入を検知した場合に、前記コンピュータ及び鍵サーバの間通信を遮断するように、更に機能させる請求項1〜4の何れかに記載のプログラム。
【請求項6】
サービスの不正利用を防止するためのウェブサーバであって、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信する手段と、
前記第一の鍵を、前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第三の鍵とともに、前記ネットワークからのアクセス制限が施された鍵サーバに送信する手段と、
前記鍵サーバにおける前記第一の鍵及び第三の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための第二の鍵を、前記鍵サーバから受信する手段と、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせる手段と、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する手段と、
を備えるウェブサーバ。
【請求項7】
サービスの不正利用を防止するためのウェブサーバであって、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信する手段と、
前記第一の鍵を、前記ネットワークからのアクセス制限が施された鍵サーバに送信する手段と、
前記鍵サーバにおける前記第一の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための第二の鍵を、前記鍵サーバから受信する手段と、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせる手段と、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する手段と、
前記第二の鍵を前記鍵サーバから受信した後に、前記ユーザ端末にセッションIDを送信して前記ユーザ端末との間でセッションを確立し、前記ユーザ端末から、前記セッションIDを受信すると、前記セッションIDの有効性を確認し、前記セッションIDの有効性が確認された場合に、前記サービスサーバにおいて機能を実行するための入力を前記ユーザ端末から受け付けて、当該入力に応じた機能実行依頼を前記サービスサーバに送信して機能を実行させる手段と、
を備えるウェブサーバ。
【請求項8】
ネットワークを介してユーザ端末と接続されるウェブサーバと、前記ネットワークからのアクセス制限が施された鍵サーバと、を備えるシステムにおける、サービスの不正利用を防止するための認証方法であって、
前記ウェブサーバが、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、前記ネットワークを介して受信し、
前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第三の鍵を、前記第一の鍵とともに前記鍵サーバに送信し、
前記鍵サーバが、
前記第一の鍵及び第三の鍵を照合し、
前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、前記第一の鍵及び第三の鍵に対応付けて記憶された第二の鍵を前記ウェブサーバに送信し、
前記ウェブサーバが、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する
認証方法。
【請求項9】
ネットワークを介してユーザ端末と接続されるウェブサーバと、前記ネットワークからのアクセス制限が施された鍵サーバと、を備えるシステムにおける、サービスの不正利用を防止するための認証方法であって、
前記ウェブサーバが、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、前記ネットワークを介して受信し、
前記第一の鍵を、前記鍵サーバに送信し、
前記鍵サーバが、
前記第一の鍵を照合し、
前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、前記第一の鍵に対応付けて記憶された第二の鍵を前記ウェブサーバに送信し、
前記ウェブサーバが、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄し、
前記コンピュータが、
前記第二の鍵を前記鍵サーバから受信した後に、前記ユーザ端末にセッションIDを送信して前記ユーザ端末との間でセッションを確立し、
前記ユーザ端末から、前記セッションIDを受信すると、前記セッションIDの有効性を確認し、
前記セッションIDの有効性が確認された場合に、前記サービスサーバにおいて機能を実行するための入力を前記ユーザ端末から受け付けて、当該入力に応じた機能実行依頼を前記サービスサーバに送信して機能を実行させるように更に機能する
認証方法。
【請求項10】
ネットワークを介してユーザ端末と接続されるウェブサーバと、前記ネットワークからのアクセス制限が施された鍵サーバと、を備える認証システムであって、
前記ウェブサーバが、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、前記ネットワークを介して受信し、
前記第一の鍵を、前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第三の鍵とともに前記鍵サーバに送信し、
前記鍵サーバが、
前記第一の鍵及び第三の鍵を照合し、
前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、前記第一の鍵及び第三の鍵に対応付けて記憶された第二の鍵を前記ウェブサーバに送信し、
前記ウェブサーバが、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する
認証システム。
【請求項11】
ネットワークを介してユーザ端末と接続されるウェブサーバと、前記ネットワークからのアクセス制限が施された鍵サーバと、を備える認証システムであって、
前記ウェブサーバが、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、前記ネットワークを介して受信し、
前記第一の鍵を、前記鍵サーバに送信し、
前記鍵サーバが、
前記第一の鍵を照合し、
前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、前記第一の鍵に対応付けて記憶された第二の鍵を前記ウェブサーバに送信し、
前記ウェブサーバが、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄し、
前記コンピュータが、
前記第二の鍵を前記鍵サーバから受信した後に、前記ユーザ端末にセッションIDを送信して前記ユーザ端末との間でセッションを確立し、
前記ユーザ端末から、前記セッションIDを受信すると、前記セッションIDの有効性を確認し、
前記セッションIDの有効性が確認された場合に、前記サービスサーバにおいて機能を実行するための入力を前記ユーザ端末から受け付けて、当該入力に応じた機能実行依頼を前記サービスサーバに送信して機能を実行させるように更に機能させる
認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービスの不正利用を防止するための、プログラム、ウェブサーバ、認証方法および認証システムに関する。
【背景技術】
【0002】
従来から、インターネットを利用したサービスが提供されている。このようなサービスでは、事前に登録されたユーザの情報を利用し、登録ユーザごとにサービスを提供しているが、サービスの不正利用への対策が課題となっている。
【0003】
サービスへのアクセスの認証に関する文献として、例えば特許文献1がある。特許文献1には、ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせがアクセスポリシを満たしアプリケーションが認証される場合、ユーザ機器の他のアプリケーションへアクセスを許可すること無く、組織のネットワーク内のリソースへのアプリケーションアクセスを許可するシステムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2016−513851号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
サービスの不正利用の例として、例えばユーザをフィッシングサイトに誘導し、ログイン情報を入力させてアカウントを盗難されるケースが想定される。二要素認証を利用することでリスクを低減できるが、登録や複数の情報の管理のわずらわしさから敬遠され、二要素認証を利用しないユーザも多い。
【0006】
また、クラッキングによりサービスに侵入し、情報を盗んだりサービスを不正に利用したりする犯罪も懸念される。
【0007】
上記のような現状に鑑みて、本発明は、サービスの不正利用を防止できる新規な技術を提供することを課題とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明は、サービスの不正利用を防止するためのプログラムであって、コンピュータを、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信し、
前記第一の鍵を、前記ネットワークからのアクセス制限が施された鍵サーバに送信し、
前記鍵サーバにおける前記第一の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、第二の鍵を前記鍵サーバから受信し、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄するように機能させる。
【0009】
このような構成とすることで、第二の鍵を入手するために必要な第一の鍵及び第一のユーザ識別子がユーザ端末に記憶されるため、ユーザが覚えている他の情報をフィッシングサイト等により盗み取られた場合でも、不正者は第二の鍵を入手できず、サービスの不正利用を防止できる。また、ユーザ自身が複数の情報を管理しなくても、安全性を高めることができる。更に、ウェブサーバ(前記コンピュータ)ともサービスサーバとも異なる鍵サーバに、サービスを利用するための鍵(第二の鍵)を保存し、サービスの利用後にはウェブサーバが鍵を破棄することで、不正者がサービスを利用するには、ウェブサーバ、鍵サーバ及びサービスサーバの全てに侵入する必要が生じ、より安全性を向上できる。
【0010】
本発明の好ましい形態では、前記コンピュータを、
前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第二のユーザ識別子を、前記第一の鍵とともに前記鍵サーバに送信し、
前記鍵サーバにおける前記第一の鍵及び第二のユーザ識別子の照合結果として、前記第二の鍵を前記鍵サーバから受信するように更に機能させる。
このような構成とすることで、サービスの利用に必要なユーザ識別子(第一のユーザ識別子)と鍵サーバに記憶されるユーザ識別子(第二のユーザ識別子)を異ならせることができ、鍵サーバの情報のみではサービスの利用ができなくなる。これにより、仮に悪意のある者に鍵サーバの管理権限を乗っ取られてしまった場合でも、鍵サーバの情報のみではサービスの利用ができないため、不正利用を防ぐことができる。また、サービスの管理者と鍵サーバの管理者が異なる場合に、鍵サーバの管理者等にサービスを不正利用されてしまうことを防止できる。
【0011】
本発明の好ましい形態では、前記コンピュータを、
前記第一のユーザ識別子又は第一の鍵に対応付けて記憶された、第三の鍵を、前記第一の鍵とともに前記鍵サーバに送信し、
前記鍵サーバにおける前記第一の鍵及び第三の鍵の照合結果として、前記第二の鍵を前記鍵サーバから受信するように更に機能させる。
このような構成とすることで、鍵サーバからサービスを利用するための第二の鍵を入手するために必要な情報が増加し、より安全性を高めることが可能になる。つまり、サービスを不正利用しようとする者は、鍵サーバに保存された第二の鍵を得るために、ウェブサーバ(前記コンピュータ)に保存された第三の鍵を入手する必要があり、結果的に鍵サーバ及びウェブサーバの異なるサーバに侵入する必要が生じるため、攻撃の難易度を高めることができる。
【0012】
本発明の好ましい形態では、前記コンピュータを、
前記コンピュータへの不正侵入を検知した場合に、前記コンピュータ及び鍵サーバの間の通信を遮断するように、更に機能させる。
このような構成とすることで、仮にウェブサーバに不正侵入された場合でも、鍵サーバが記憶する第二の鍵を入手不可能にすることができ、サービスの不正利用を防止できる。また、ウェブサーバともサービスサーバとも分離された鍵サーバにおいてサービスを利用するための鍵(第二の鍵)を管理するため、ウェブサーバ(前記コンピュータ)及び鍵サーバの間の通信を遮断してもサービスサーバで実行中の処理に影響を与えることなく、不正利用を防止できる。
【0013】
本発明の好ましい形態では、前記コンピュータを、
前記第二の鍵を前記鍵サーバから受信した後に、前記ユーザ端末にセッションIDを送信して前記ユーザ端末との間でセッションを確立し、
前記ユーザ端末から、前記セッションIDを受信すると、前記セッションIDの有効性を確認し、
前記セッションIDの有効性が確認された場合に、前記サービスサーバにおいて機能を実行するための入力を前記ユーザ端末から受け付けて、当該入力に応じた機能実行依頼を前記サービスサーバに送信して機能を実行させるように更に機能させる。
このような構成とすることで、ユーザ端末から機能を実行するための入力を受け付けるたびにユーザ認証を行う必要がなくなり、不要な通信を省くことができる。
【0014】
本発明の好ましい形態では、前記コンピュータを、
前記ユーザ端末から、前記セッションIDとともに前記第一のユーザ識別子を受信し、前記セッションID及び第一のユーザ識別子の有効性を確認するように更に機能させる。
このような構成とすることで、セッションIDと併せて第一のユーザ識別子を確認するため、不要な通信を削減しながら安全性の確保が可能になる。
【0015】
上記課題を解決するために、本発明は、サービスの不正利用を防止するためのウェブサーバであって、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信する手段と、
前記第一の鍵を、前記ネットワークからのアクセス制限が施された鍵サーバに送信する手段と、
前記鍵サーバにおける前記第一の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための第二の鍵を、前記鍵サーバから受信する手段と、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせる手段と、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する手段と、を備える。
【0016】
上記課題を解決するために、本発明は、ネットワークを介してユーザ端末と接続されるウェブサーバと、前記ネットワークからのアクセス制限が施された鍵サーバと、を備えるシステムにおける、サービスの不正利用を防止するための認証方法であって、
前記ウェブサーバが、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、前記ネットワークを介して受信し、
前記第一の鍵を、前記鍵サーバに送信し、
前記鍵サーバが、
前記第一の鍵を照合し、
前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、前記第一の鍵に対応付けて記憶された第二の鍵を前記ウェブサーバに送信し、
前記ウェブサーバが、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する。
【0017】
上記課題を解決するために、本発明は、ネットワークを介してユーザ端末と接続されるウェブサーバと、前記ネットワークからのアクセス制限が施された鍵サーバと、を備える認証システムであって、
前記ウェブサーバが、
ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、前記ネットワークを介して受信し、
前記第一の鍵を、前記鍵サーバに送信し、
前記鍵サーバが、
前記第一の鍵を照合し、
前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、前記第一の鍵に対応付けて記憶された第二の鍵を前記ウェブサーバに送信し、
前記ウェブサーバが、
前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、
前記第二の鍵を、前記サービスサーバへの送信後に破棄する。
【発明の効果】
【0018】
本発明によれば、サービスの不正利用を防止できる新規な技術を提供することができる。
【図面の簡単な説明】
【0019】
【
図1】本発明の実施形態における認証システムの構成を示す図である。
【
図2】本発明の実施形態における認証システムの各装置へのアクセスに必要な情報及び各装置が記憶する情報を示す表である。
【
図3】本発明の実施形態における認証システムの機能ブロック図である。
【
図4】本発明の実施形態における認証システムのユーザ登録時の処理を示す図である。
【
図5】本発明の実施形態における認証システムのユーザ認証時の処理を示す図である。
【発明を実施するための形態】
【0020】
以下、図面を用いて、本発明の認証システムについて説明する。なお、以下に示す実施形態は本発明の一例であり、本発明を以下の実施形態に限定するものではなく、様々な構成を採用することもできる。
【0021】
例えば、本実施形態では認証システム1の構成、動作等について説明するが、同様の構成の方法、装置、コンピュータプログラム等も、同様の作用効果を奏することができる。システムを構成する各装置も本発明の概念に含まれる。また、プログラムは、記録媒体に記憶させてもよい。この記録媒体を用いれば、例えばコンピュータにプログラムをインストールすることができる。ここで、プログラムを記憶した記録媒体は、例えばCD−ROM等の非一過性の記録媒体であっても良い。
【0022】
本発明において、第一のユーザ識別子、第二のユーザ識別子、第一の鍵、第二の鍵及び第三の鍵は、ユーザごとに生成されて登録されるものである。即ち、これらは全てユーザごとに異なっている。
【0023】
まず、
図1及び
図2を参照して、本実施形態の認証システムにおけるユーザ認証手順の概要を説明する。
【0024】
図1は、本実施形態の認証システム1の構成を示す図である。認証システム1は、ウェブサーバ2と、鍵サーバ3と、を備えており、ウェブサーバ2はネットワークNWを介して1以上のユーザ端末5と接続される。またウェブサーバ2は、鍵サーバ3及びサービスサーバ4とそれぞれ接続される。ネットワークNWとしてはインターネット等が想定される。一方、ウェブサーバ2及び鍵サーバ3の間の通信と、ウェブサーバ2及びサービスサーバ4の間の通信と、はそれぞれ非公開のネットワークを介して行われ、鍵サーバ3及びサービスサーバ4は、それぞれウェブサーバ2との通信のみが許可される。例えば通信先となるウェブサーバ2のIPアドレスと通信ポートを特定する形で鍵サーバ3及びサービスサーバ4の通信が許可されることが想定される。即ち、ウェブサーバ2を介さない、鍵サーバ3及びサービスサーバ4の間の直接の通信は不可能である。
【0025】
なお、鍵サーバ3やサービスサーバ4が、複数の異なるサービスやその第二の鍵を管理し、各サービスについてウェブサーバ2が存在する形態も想定される。このような場合には、鍵サーバ3やサービスサーバ4が、複数のウェブサーバ2のそれぞれと個別に通信を許可されるようにすればよい。
【0026】
ウェブサーバ2、鍵サーバ3及びサービスサーバ4としては、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の演算装置、RAM(Random Access Memory)等の主記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置、通信手段を含む種々の入出力装置等を備えた、サーバ装置等の一般的なコンピュータ装置を利用することができる。
【0027】
またユーザ端末5としては、演算装置、主記憶装置、補助記憶装置、ネットワークNWへの接続手段や、種々の入出力装置等を備えた、一般的なコンピュータ装置を利用することができる。本実施形態では、例えばスマートフォン、PC(Personal Computer)、タブレット端末等のような任意のコンピュータ装置を用いることを想定する。本実施形態のユーザ端末5は、ユーザ認証を含むサービスの利用に関する各種の処理を行うための、専用のアプリケーションを記憶している。
【0028】
なお、ウェブサーバ2、鍵サーバ3、サービスサーバ4及びユーザ端末5は、それぞれ複数のコンピュータが協働して実現される構成としてもよい。
【0029】
図2に示すように、サービスサーバ4の利用には、ユーザ端末5に保存された第一のユーザ識別子と、鍵サーバ3に保存された第二の鍵と、が必要であり、サービスサーバ4は、この組み合わせによってユーザ認証を行う。
【0030】
ユーザは、ユーザ端末5のローカルアプリを利用するためのキーフレーズのみを覚えておけばよく、ローカルアプリにログインすると、サービスの利用時に、ユーザ端末5に保存された第一のユーザ識別子及び第一の鍵を、ネットワークNWを介してウェブサーバ2に送信する。なお、キーフレーズの形式は問われず、例えばキーフレーズは文字列であってもよいし、ローカルアプリが指紋や虹彩、顔等による生体認証によって利用可能であってもよい。
【0031】
そして、ウェブサーバ2においては、第一のユーザ識別子又は第一の鍵に対応付けて記憶された、鍵サーバ用の第二のユーザ識別子及び第三の鍵が特定される。
【0032】
ウェブサーバ2は鍵サーバ3に第二のユーザ識別子、第一の鍵及び第三の鍵を送信し、鍵サーバ3において照合が成功した場合には、第二のユーザ識別子に対応付けて記憶された第二の鍵を鍵サーバ3が送り返す。
【0033】
そして、ウェブサーバ2が第一のユーザ識別子及び第二の鍵をサービスサーバ4に送信することで、サービスサーバ4においてユーザの認証が行われる。ユーザ認証が成功すると、ユーザ端末からウェブサーバ2に送られた入力に応じて、サービスサーバ4において機能が実行される。
【0034】
本実施形態では、以上のような処理によってユーザの認証を行うことで、サービスの不正利用を防ぐ。鍵サーバ3及びサービスサーバ4は通信先がウェブサーバ2に限定されており、ウェブサーバ2を介さなければ外部からアクセスできないため、外部からの攻撃を受けにくい。
【0035】
更に本実施形態では、仮にウェブサーバ2に対して不正侵入されてしまった場合には、その不正侵入を検知してウェブサーバ2及び鍵サーバ3の間の通信を遮断する。これにより、万が一クラッキングにより管理者ユーザのアクセス情報が不正入手されてしまった場合でも、ウェブサーバ2及び鍵サーバ3の間の通信が遮断された瞬間に第二の鍵が入手できなくなり、サービスの不正利用を防ぐことができる。なお、ウェブサーバ2への侵入の検知や、ウェブサーバ2及び鍵サーバ3の間の通信の遮断の処理は、ウェブサーバ2側で行われてもよいし、鍵サーバ3側で行われてもよい。
【0036】
また、本実施形態ではウェブサーバ2及び鍵サーバ3の間の通信を遮断することにより、仮にウェブサーバ2に不正侵入された場合にもサービスの不正利用を防ぐが、これに加えて、更にウェブサーバ2及びサービスサーバ4の間の通信が同様に遮断されるようにしてもよい。
【0037】
図3は、本実施形態の認証システム1の機能ブロック図である。ウェブサーバ2は、ユーザ識別子受信手段21と、ユーザ照合手段22と、第一の鍵送信手段23と、セッション管理手段24と、機能実行依頼送信手段25と、記憶部26と、を備える。
【0038】
鍵サーバ3は、鍵受信手段31と、鍵照合手段32と、第二の鍵送信手段33と、記憶部34と、を備える。
【0039】
サービスサーバ4は、ユーザ認証手段41と、機能実行手段42と、記憶部43と、を備える。
【0040】
ユーザ端末5は、入力手段51と、出力手段52と、認証手段53と、記憶部54と、を備える。
【0041】
ユーザ識別子受信手段21は、ユーザ端末5に記憶された第一の鍵とともに、ユーザ端末5に記憶された第一のユーザ識別子を、ネットワークNWを介して受信する手段として機能する。
【0042】
ユーザ照合手段22は、ユーザ識別子受信手段21が受信した第一のユーザ識別子に対応付けて記憶部26に記憶された第二のユーザ識別子及び第三の鍵を特定する。
【0043】
第一の鍵送信手段23は、第一の鍵を、ネットワークNWから隔離された鍵サーバ3に送信する手段として機能し、ユーザ識別子受信手段21が受信した第一の鍵とともに、ユーザ照合手段22が特定した第二のユーザ識別子及び第三の鍵を、鍵サーバ3に送信する。
【0044】
鍵サーバ3では、第一の鍵送信手段23によって送信された、第一の鍵、第二のユーザ識別子及び第三の鍵を、鍵受信手段31が受信する。
【0045】
鍵照合手段32は、鍵受信手段31が受信した第一の鍵、第二のユーザ識別子及び第三の鍵の組み合わせを照合する。即ち、記憶部34に記憶された第二のユーザ識別子、第一の鍵及び第三の鍵の組み合わせとの一致を確認する。そして照合に成功した場合、鍵照合手段32は、受信した第二のユーザ識別子や第一の鍵、第三の鍵に対応付けて記憶部34に記憶された第二の鍵を特定する。
【0046】
第二の鍵送信手段33は、鍵照合手段32が特定した第二の鍵を、ウェブサーバ2に送り返す。
【0047】
ウェブサーバ2では、セッション管理手段24が、鍵サーバ3における第一の鍵の照合結果として、ネットワーク及び鍵サーバ3から隔離されたサービスサーバ4において機能を実行するための第二の鍵を、鍵サーバ3から受信する手段として機能し、第二の鍵送信手段33が送信した第二の鍵を受信する。
【0048】
セッション管理手段24は更に、第二の鍵を鍵サーバ3から受信した後に、ユーザ端末5にセッションIDを送信してユーザ端末5との間でセッションを確立する手段、及び、ユーザ端末5から、セッションIDを受信すると、セッションIDの有効性を確認する手段、としても機能する。本実施形態では、セッション開始時に、セッションIDとともに第一のユーザ識別子をユーザ端末5に送信する。また、セッションIDの受信時には、併せて第一のユーザ識別子を受信し、セッションID及び第一のユーザ識別子の組み合わせにより、セッションIDの有効性を確認する。
【0049】
機能実行依頼送信手段25は、第一のユーザ識別子及び第二の鍵をサービスサーバ4に送信することでサービスサーバ4にユーザ認証を行わせる手段として機能する。また、機能実行依頼送信手段25は、セッションIDの有効性が確認された場合に、サービスサーバ4において機能を実行するための入力をユーザ端末5から受け付けて、当該入力に応じた機能実行依頼をサービスサーバ4に送信して機能を実行させる手段としても機能する。
【0050】
サービスサーバ4では、ユーザ認証手段41が、機能実行依頼送信手段25が送信した第一のユーザ識別子及び第二の鍵を受信して、記憶部43に記憶された第一のユーザ識別子及び第二の鍵の組み合わせとの一致を確認することで、ユーザ認証を行う。
【0051】
機能実行時には、機能実行手段42が、機能実行依頼送信手段25が送信した機能実行依頼を受信し、指定された機能を実行する。サービスサーバ4において実行される機能としては、任意のサービスにおける様々な処理が含まれる。例えば、暗号資産等のトークンの発行、送受信、残高確認や、データの登録と保存、検索、参照、再生、また、データの販売や流通に関する機能等に関する処理が挙げられる。
【0052】
ウェブサーバ2は、ユーザ認証の完了後に、第二の鍵を破棄する。このようにウェブサーバ2が第二の鍵を必要以上に保存せず、破棄することにより、安全性を保つことができる。なお、第二の鍵の破棄のタイミングは、サービスサーバ4における機能実行のためにウェブサーバ2で第二の鍵を利用する必要がなくなった時とすることが好ましい。例えば、機能実行依頼の送信のたびにユーザ認証を行う場合には、ウェブサーバ2及びユーザ端末5の間のセッション終了時とすればよい。また、ウェブサーバ2からサービスサーバ4に第二の鍵を送信してユーザ認証を行い、その後はウェブサーバ2とサービスサーバ4との間でセッションを確立して、第二の鍵を必要とせずセッションIDの確認により機能を実行する場合には、ユーザ認証の完了時にウェブサーバ2において第二の鍵を破棄することが好ましい。
【0053】
次に、ユーザ登録及び認証時の処理を、図面を用いて具体的に説明する。
図4は、ユーザ登録時の処理の一例を示す図である。ユーザ登録時には、まずステップS101においてユーザ端末5の入力手段51が、ユーザからキーフレーズの入力を受け付ける。前述の通り、キーフレーズとしては文字列を受け付けてもよいし、カメラやその他のセンサを用いて、ユーザの生体情報の入力を受け付けてもよい。
【0054】
次にステップS102で出力手段52がネットワークNWを介してウェブサーバ2にキーフレーズを送信し、ステップS103でウェブサーバ2が鍵サーバ3に対するユーザ登録依頼を生成して、ステップS104でキーフレーズとともに鍵サーバ3に送信する。
【0055】
鍵サーバ3は、受信したキーフレーズに基づいて第一のユーザ識別子を生成し、ステップS106でウェブサーバ2に送り返す。
【0056】
これに対しウェブサーバ2は、サービスサーバ4に問い合わせて登録済みの第一のユーザ識別子を参照し、ステップS105で生成された第一のユーザ識別子との重複の有無を確認する。
【0057】
なお、本実施形態では、サービスサーバ4は鍵サーバ3と同一のユーザ識別子生成アルゴリズムを実装しており、ステップS105における第一のユーザ識別子生成処理は、サービスサーバ4において実行されてもよい。この場合、第一のユーザ識別子生成後すぐにサービスサーバ4において第一のユーザ識別子の重複チェック(ステップS107)を実行し、結果をサービスサーバ4からウェブサーバ2に送信するようにしてもよい。
【0058】
登録済みの第一のユーザ識別子との重複がある場合にはステップS101に戻って再度ユーザにキーフレーズの入力を求める。一方、重複がない場合には、ウェブサーバ2が鍵サーバ3に対して第一の鍵、第二の鍵、第三の鍵及び第二のユーザ識別子の生成依頼を送信する。またサービスサーバ4では、ステップS108において第一のユーザ識別子を保存し、第二の鍵を生成及び保存する。
【0059】
ステップS109では、鍵サーバ3が第一の鍵、第二の鍵、第三の鍵及び第二のユーザ識別子を生成して、相互に対応付けて記憶部34に格納する。本実施形態の鍵サーバ3及びサービスサーバ4は、第二の鍵を生成する同一のアルゴリズムを実装しているため、ここで生成及び保存される第二の鍵は、サービスサーバ4において保存されたものと同一になる。
【0060】
そして鍵サーバ3は、ステップS110で、第一のユーザ識別子、第二のユーザ識別子、第一の鍵及び第三の鍵を、ウェブサーバ2と共有済みの共通鍵で暗号化し、暗号化された、第一のユーザ識別子、第二のユーザ識別子、第一の鍵及び第三の鍵を、ステップS111でウェブサーバ2に送信する。
【0061】
ウェブサーバ2は、受信した暗号化データを、鍵サーバ3と共有済みの共通鍵を用いてステップS112で復号化し、第一のユーザ識別子、第二のユーザ識別子及び第三の鍵を記憶部26に保存する。第一の鍵はウェブサーバ2には保存せず、続くステップS113でユーザ端末5に送信する。
【0062】
ステップS113では、第一のユーザ識別子及び第一の鍵が、ユーザ端末5に送信され、ステップS114で記憶部54に格納される。
【0063】
以上のようにして、
図2に示した情報が、ウェブサーバ2、鍵サーバ3、サービスサーバ4及びユーザ端末5のそれぞれに記憶されることで、ユーザ登録を行うことができる。なお、上記の処理は一例であり、任意の設計変更が可能である。例えば、サービスサーバ4における第一のユーザ識別子及び第二の鍵の生成及び保存(ステップS108)は、任意のタイミングで行われればよい。
【0064】
図5は、サービス利用におけるユーザ認証時の処理の一例を示す図である。まずステップS201で、ユーザ端末5の入力手段51を介して入力されたキーフレーズを、認証手段53が確認する。即ち、入力されたキーフレーズを記憶部54に記憶されたキーフレーズと比較し、一致するかを確認する。
【0065】
キーフレーズの検証が成功すると、ステップS202に進んで、ユーザ端末5が、記憶部54に記憶された第一のユーザ識別子及び第一の鍵をウェブサーバ2に送信する。
【0066】
ウェブサーバ2では、ユーザ識別子受信手段21がこれらの情報を受信し、ステップS203でユーザ照合手段22が、記憶部26に登録済みの情報と照合する。そしてステップS204で、ユーザ照合手段22が、第一のユーザ識別子に対応付けて記憶された第二のユーザ識別子及び第三の鍵を特定する。
【0067】
ステップS205では第一の鍵送信手段23が、第二のユーザ識別子、第一の鍵及び第三の鍵を、鍵サーバ3に送信する。
【0068】
鍵サーバ3では、鍵受信手段31がこれらの情報を受信し、ステップS206で鍵照合手段32が、記憶部34に登録済みの情報と照合して、受信した情報に対応付けて記憶された第二の鍵を特定する。そして第二の鍵送信手段33が、ステップS207で第二の鍵を共通鍵で暗号化し、ステップS208でウェブサーバ2に対して送信する。
【0069】
ウェブサーバ2では、ステップS209でセッション管理手段24が暗号化された第二の鍵を受信して共通鍵で復号化し、メモリ内にのみ一時的に保持する。そしてセッション管理手段24が、ステップS210でユーザ端末5にセッションID及び第一のユーザ識別子を送信してセッションを確立し、ステップS211ではユーザ端末5がユーザから、サービスサーバ4において機能を実行するための入力を受け付ける。機能を実行するための入力とは、例えば実行する機能を指定したり、処理内容を特定したりする入力を指す。
【0070】
ここで、ユーザ端末5においては、ステップS210でセッションIDとともに受信した第一のユーザ識別子が、ステップS202で送信した第一のユーザ識別子と一致する場合にのみ、続くステップS211で機能を実行するための入力を受け付ける。
【0071】
次にステップS212でユーザ端末5が、セッションID及び第一のユーザ識別子とともに、機能を実行するための入力をウェブサーバ2に送信し、ステップS213でセッション管理手段24がセッションID及び第一のユーザ識別子の組み合わせによりその有効性を確認する。
【0072】
有効性が確認されると、ステップS214において、機能実行依頼送信手段25が、第一のユーザ識別子及び第二の鍵をサービスサーバ4に送信する。そして、ステップS215で、ユーザ認証手段41が、第一のユーザ識別子及び第二の鍵の組み合わせによりユーザ認証を行う。
【0073】
また、ステップS214で機能実行依頼についても送信され、ステップS215で機能実行手段42が機能実行依頼に基づく機能を実行してもよい。機能実行依頼は、第一のユーザ識別子及び第二の鍵とともに送信されてもよいし、第一のユーザ識別子及び第二の鍵によってユーザ認証が行われた後に送信されてもよい。
【0074】
そして、ユーザ認証が完了し、ウェブサーバ2において第二の鍵を保持する必要がなくなると、ステップS216でウェブサーバ2は第二の鍵を破棄する。
【0075】
以上のように、ウェブサーバ2及び鍵サーバ3に保存された情報を用いて、サービスサーバ4でユーザ認証を行うことにより、不正利用を防ぐことができる。
【0076】
特にウェブサーバ2及びサービスサーバ4とは別の、鍵サーバ3において、サービスサーバ4を利用するための第二の鍵を保存し、ユーザ認証の際にウェブサーバ2を介して第二の鍵を取得する構成としたことにより、仮にウェブサーバ2に不正侵入されてしまっても、ウェブサーバ2及び鍵サーバ3の間の通信を遮断することにより、サービスの不正利用を防ぐことができる。
【符号の説明】
【0077】
1 :認証システム
2 :ウェブサーバ
3 :鍵サーバ
4 :サービスサーバ
5 :ユーザ端末
21 :ユーザ識別子受信手段
22 :ユーザ照合手段
23 :第一の鍵送信手段
24 :セッション管理手段
25 :機能実行依頼送信手段
26 :記憶部
31 :鍵受信手段
32 :鍵照合手段
33 :第二の鍵送信手段
34 :記憶部
41 :ユーザ認証手段
42 :機能実行手段
43 :記憶部
51 :入力手段
52 :出力手段
53 :認証手段
54 :記憶部
NW :ネットワーク
【要約】
【課題】
サービスの不正利用を防止できる新規な技術を提供すること。
【解決手段】
サービスの不正利用を防止するためのプログラムであって、コンピュータを、ユーザ端末に記憶された第一の鍵とともに、前記ユーザ端末に記憶された第一のユーザ識別子を、ネットワークを介して受信し、前記第一の鍵を、前記ネットワークからのアクセス制限が施された鍵サーバに送信し、前記鍵サーバにおける前記第一の鍵の照合結果として、前記ネットワーク及び鍵サーバからのアクセス制限が施されたサービスサーバにおいて機能を実行するための、第二の鍵を前記鍵サーバから受信し、前記第一のユーザ識別子及び第二の鍵を前記サービスサーバに送信することで前記サービスサーバにユーザ認証を行わせ、前記第二の鍵を、前記サービスサーバへの送信後に破棄するように機能させる。
【選択図】
図1