OpenAMのリスクベース認証について (1)

 今回は、OpenAM 12.0が提供する「リスクベース認証」機能について紹介します。

■ リスクベース認証とは

 一般的にリスクベース認証とは、システムに対するユーザーのアクセスの仕方が、通常と大きく異なる場合に、認証失敗にしたり、追加の認証を要求する機能のことを指します。この機能を使うと、例えば、普段は業務時間内に東京からiPhoneでアクセスしているユーザーが、深夜に中国からデスクトップPCでアクセスしてきた場合に、本人ではない不正なアクセスの可能性が高いと判断して、追加のワンタイムパスワード認証を要求することができます。
riskbasedauthn
これにより、流出したIDとパスワードでログインが試行されたとしても、追加の認証で不正ログインを抑止できる可能性が高くなります。

 追加の認証には何を使用しても構いませんが、日本のインターネットバンキングなどでは、事前にユーザーが登録した、いわゆる「秘密の質問と回答」を要求することが多いようです。「秘密の質問と回答」は推測される可能性が少なからずあるので、あまりお勧めはできませんが、1段階の認証の場合よりもはるかに不正ログインが難しくなります。OpenAM 12.0には「秘密の質問と回答」を実現する機能はありませんが、ワンタイムパスワード認証などのいろいろな認証モジュールを使用することができます。

[参考] Risk-based authentication
http://en.wikipedia.org/wiki/Risk-based_authentication

■ OpenAMが提供するリスクベース認証

 OpenAMでは、リスクベース認証を実現するモジュールとして、以下が提供されています。

認証モジュール名 概要 導入されたバージョン
アダプティブリスク認証 ログイン時の地理的位置、最終ログインからの経過時間や認証失敗回数、IPアドレスの履歴などで、本人ではないリスクを判断する認証モジュール。 10.0.0
デバイスプリント認証 ログイン時に収集したユーザーのデバイスプリント(使用しているOSの画面解像度や色深度、インストールされているフォントの種類、ブラウザの種類やバージョンなど)により、本人ではないリスクを判断する認証モジュール。デバイスプリントが、以前取得したものと大きく異なっていれば、追加で何らかの認証を要求できます。 11.0.0
デバイスID(一致)認証、デバイスID(保存)認証 上記デバイスプリント認証がモジュール分割されたもの。
詳しいことは後述します。
12.0.0

※デバイスプリント認証モジュールが取得する「デバイスプリント」とは以下のようなJSON形式の情報で、ユーザデータストア(一般的にはLDAPサーバー)内にあるユーザーエントリーの「DevicePrintProfiles」属性にマルチバリューで保存されます。

{
    "devicePrint": {
        "appCodeName": "Mozilla", 
        "appName": "Netscape", 
        "appVersion": "5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36", 
        "fonts": {
            "installedFonts": "cursive;fantasy;Arial;Bookman Old Style;Bradley Hand ITC;Century;Century Gothic;Comic Sans MS;Courier;Courier New;Georgia;Impact;Lucida Console;Monotype Corsiva;Papyrus;Tahoma;Times;Times New Roman;Trebuchet MS;Verdana;"
        }, 
        "geolocation": {}, 
        "language": "ja", 
        "platform": "Win32", 
        "plugins": {
            "installedPlugins": "pepflashplayer.dll;internal-remoting-viewer;ppGoogleNaClPluginChrome.dll;pdf.dll;nppdf32.dll;npGoogleUpdate3.dll;npctrl.dll;NPSWF32_15_0_0_152.dll;"
        }, 
        "product": "Gecko", 
        "productSub": "20030107", 
        "screen": {
            "screenColourDepth": 24, 
            "screenHeight": 1080, 
            "screenWidth": 1920
        }, 
        "timezone": {
            "timezone": -540
        }, 
        "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36", 
        "vendor": "Google Inc."
    }, 
    "lastSelectedDate": 1413443786031, 
    "name": "Profile: 16/10/2014 16:16", 
    "selectionCounter": 1, 
    "uuid": "512ee515-4649-4b93-821f-279dd3abceb9"
}

 アダプティブリスク認証とデバイスプリント認証については、11.0.0がリリースされた頃に@ITでも紹介しましたので、概要はこちらを参照して下さい。

[参考] @IT OSSによるアイデンティティ管理(2):
不正ログインを食い止めろ! OpenAMで認証強化
http://www.atmarkit.co.jp/ait/articles/1310/17/news003.html

■ OpenAM 12.0.0での変更点

 OpenAM 12.0.0では、デバイスプリント認証が無くなり、代わりにデバイスID(一致)認証、デバイスID(保存)認証が追加されています。もともとリスクベース認証は、10.0.0で追加されたアダプティブリスク認証だけでしたが、11.0.0の開発中にSyntegrityという企業からデバイスプリント認証が提供されました。

 このモジュールは、クライアント端末の情報を解析して本人かどうかを判断するのが特徴で、アダプティブリスク認証には無い機能を提供しましたが、内部にHOTP認証モジュールを含んでおり、柔軟性と拡張性に若干欠けている点が問題でした。

 この点を考慮して、OpenAM 12.0.0では以下のようにデバイスプリント認証モジュールを、3つの認証モジュールに分割しています。

divMod

 この中のHOTP認証モジュールは、OpenSSOの頃から存在する認証のモジュールで、ワンタイムパスワードをユーザーに要求します。また、デバイスID(一致)認証モジュールはデバイスプリントの取得と判定を行い、デバイスID(保存)認証モジュールはデバイスプリントをユーザデータストア(デフォルトは組み込みのOpenDJサーバー)に保存します。

 この3つでOpenAM 11.0のデバイスプリント認証と同等の機能になります。基本的には、以下のような構成で認証連鎖を作成します。デバイスプリント認証やデバイスID認証を使用するためには、その前段階でユーザーIDを取得する必要があるので、データストア認証やLDAP認証などを認証連鎖の最初に設定します。
devchain
 なお、OpenAM 11.0のデバイスプリント認証を使用している場合は、12.0にアップグレードした後も継続してデバイスプリント認証を使用することができます。

  デバイスID(一致)認証モジュールは、OpenAM 12.0.0で新たに追加された「スクリプト認証モジュール」の上に実装されています。スクリプト認証モジュールは、ユーザーがJavaScriptやGroovyで実装したスクリプトを認証の際に実行するモジュールで、単独では(=スクリプトが無ければ)何も機能しません。デバイスプリントの取得・判定処理を実装したJavaScriptを組み込んだスクリプト認証モジュールが、デバイスID(一致)認証モジュールということになります。[デバイスID(一致)認証モジュール] = [スクリプト認証モジュール] + [デバイスプリントの取得・判定処理を実装したJavaScript]

 では、実際に設定を行って、動作検証してみましょう。と、思いましたが、それについてはまた次回にします。

広告

OpenAMのリスクベース認証について (1)」への1件のフィードバック

  1. ピンバック: OpenAMのリスクベース認証について(2) | OSS ∞ Lab

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中