【これまで関わったプロジェクト】歩行データから認証
DX顧問となって頂ける方を募集しております。LINE友だち追加で簡単!3秒で登録完了です。案件はLINEにて配信しておりますので、足元稼働予定がない方でも、お気軽に御登録頂けましたら幸いです。LINEはこちらから。
過去プロジェクトで携わった、変わった認証
今は、パソコンで、スマホで、あらゆるところで認証が起こっています。認証というのは、本人かどうかを判断するもので、広く捉えると古くから行われていました。
「鍵を開ける」というのも、認証の一つです。認証するものを構築する上で、基本的に大切な考え方は、「いかに破られないか」であることは簡単に想像出来ると思います(もちろんこれだけではなくて、間違って他の人を認証しないこと、などもあります)。例えば鍵の場合には、鍵屋さんなどの特殊な人でない限り、鍵を偽造しない限り開けられないので、立派に認証ができています。最近では指紋認証や、顔認証もスマートフォンで出来るようになっていますね。
今回は、過去携わったデータ分析のコンサルティングで、実証性検証を行ったものを紹介したいと思います。上のような認証の分野で、少し変わった認証技術に関わりました。これは「ビヘイビア認証」と呼ばれるものです。ビヘイビアとは、ふるまいのことです。
ビヘイビア認証?なんじゃそら?となるかもしれません。一言でいうと、「人物の物理的な動きを読み取って、本人かどうか認証する」というものです。
人間は当たり前の話ですが日々行動しています。なんらかの読み取りが可能な機械でこの行動を読み取って、認証を行うというものです。
ここでいうふるまいにも、「どのふるまいを読み取るのか」という問題があります。例えば、ウェブサイトでの行動を読み取る、という考え方もあります。この場合には、キータッチやマウスの動き、タイミングで読み取ります。これはこれで認証が可能です。
このプロジェクトでは、「人の歩行パターン」を認証対象にしました。そして、パターン自体の読み取るのは、「スマートフォン」で行うことにしました。これができれば、例えば
会社などのセキュリティドアにセキュリティカードをかざす必要なく、ドアが開く
スマートフォンを持ってPCの前に座ると、何らかのクラウドサービスが既にログイン済になっている
といったことのように、利用の能性が広がります。もちろんこれらを実現するには他にいくつも超えないといけない技術的な障壁がありますが、少なくとも「歩行パターンをスマホで読み取って認証する」という肝心、要のコンセプト自体は、確認できます。このお話の場合、それが本丸です。それが確認できないと、全て成り立ちません。なので実証性検証が必要でした。これがこのプロジェクトの始まりでした。
わたしの大好きな宮崎の都井岬です。野生の馬がいます。内容とは全く関係ありません。
2. これまでのスマートフォンを使った認証
これまでのスマートフォンを使った認証にも、いくつかの種類があります。
まず最初に、いわゆるパスワードや指紋、顔、タッチスクリーンを使ったものです。広く普及している認証方法ですね。これらと比べてビヘイビア認証の場合は、「ユーザーによる自発的な認証行動」が不要です。ユーザーが認証のために何か行動をする必要がありません。普段生活しているだけで、認証してくれるんです。便利ですよね。しかも「タッチスクリーン認証」はロボットによって模倣されやすいというデメリットがあります。
次に、GPSやマイクを使った認証というものもあります。しかしこちらは、非常にプライベートな情報となるために、ユーザーへの認可が必要になります。画面に良くこんな画面出てきますよね?これで「許可しない」を押されると、認証そのものができなくなってしまいます。
こういうやつです。
そして何よりユーザーは嫌がる傾向があります。自分が今どこにいるのか、常にサーバーに送られていたら、嫌だ、という方も多いでしょう。
一方歩行パターンによる認証は特徴として「模倣されにくい」ということが上げられます。では構築の概要を見てみましょう。
3. 構築概要
構築の概要を説明しようと思うのですが、資料は無いので、記憶をベースに書いており、一部誤りがあるかもしれないこと、ご了承下さい。
スマートフォンの歩行パターンによる認証をどうやって実現したのかというと、大きく分けて認証を行うために機械も勉強をしないといけません。これを「訓練」といいます。一方機械は訓練した後は、歩行データが誰によるものなのかを、訓練データに基づいて、答えてくれます。これを「推論」といいます。
訓練
まずは訓練です。
スマートフォンに乗せるアプリを構築。
アプリを立ち上げ、スマートフォンをお知りのポケットに入れ、周りの方にご協力頂き、歩いて頂く
各人の歩行データをサーバーに送信
サーバーにて、歩行データから特徴ベクトルを抽出
サーバー側で訓練
推論
つぎに推論です。
APIサーバーを立ち上げる
アプリを立ち上げ、歩行データを取得し、特徴ベクトルに変えた上で、APIサーバーに送信
APIサーバーは推論結果を返す
※APIサーバーとは、ブラウザなので見れるものではなくて、なにかこちらから情報を投げると、答えを返してくれるものと理解して頂いて問題ありません。
※特徴ベクトルとは、そのデータを識別できるようにデータ化したものです。
恐らく学習データはもっと多ければ多いほど良いのかとは思いますが、正しく推論結果は出来ていました。実証性検証としては成功ではないかと思います。ここではざっくり歩行データと書いてありますが、スマートフォンは実は、ユーザーによる認可無しで取得できるデータがあります。今回は、そのうち、加速度センサとジャイロセンサを使いました。加速度センサとはスマホの「真っ直ぐな動き」を測り、ジャイロセンサはスマホの「回転」や「向き」を測ります。
ここまで実証性を検証できれば、後は様々な事業に展開できると思います。
また、今回はMicrosoft Azure内のサービスを様々に利用しました。Microsoft Azureとは、AWS(Amazon Web Services)等と同系統のサービスで、開発しなくても画面上で設定するだけで、様々なことを自動化してくれるサービスです。
スマホからのデータの取得: azure stream analytics、azure IoT Hub, Blob
特徴ベクトルへの変換: Data Factory, Batch Service
訓練: ML Studio
また、特徴ベクトルの変換はPythonで実装しました。このpythonを、Azure上のBatch Serviceというサービス上に置き、歩行データがスマートフォンから送信される度にAzure上に保存され、保存されることをきっかけに、歩行データから特徴ベクトルの変換プログラムが走り、順次変換していくイメージです。
4. 実証性検証として次に取り組むべきであったこと
本プロジェクトでは、歩行のみを認証対象としましたが、バックグラウンドで認証するのであれば、歩行以外のビヘイビアも見なければいけません。誰しもずっと歩いてはいないですよね?なので、歩いている、座っている、などいくつかの行動パターンに大別し、その後推論を行う、という手段を取るのがが良いかと思っています。