Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

jubaanomalyでキーストローク認証

9,084 views

Published on

Jubatusを使ったキーストローク認証を試してみた

  • Be the first to comment

jubaanomalyでキーストローク認証

  1. 1. +Jubaanomalyでキーストローク認証小田哲(@oda_satoshi)
  2. 2. +jubaanomaly Breunigらによって提案された、データサンプルの周辺データ集合の密集度に応じた異常値を割り振る異常検出アルゴリズムLOF(Local Outlier Factor)をサポート オンライン処理、分散処理ができるように改良 0.4.0に新機能として追加
  3. 3. +キーストローク認証 個人ごとにキーボードの打鍵リズムは異なる、という仮説を利用した認証 特殊なハードウェアが不要なため、Web越しの認証として優秀 精度は指紋、静脈などの生体認証に比べれば低いがリスクベース認証におけるリスク算出の一要素としてならば十分利用できる
  4. 4. +予備実験:05000010000015000020000025000030000035000012345㍃秒‘oda.satoshi’を5回入力した時の、タイプ間隔分布
  5. 5. +そのまま入れてもダメらしい [[inf], [inf], [inf], [inf], [inf], [inf], [inf], [inf], [inf], [inf]] (´・ω・`) パラメタチューニング LOFのパラメタを調整する。 fv_converterを調整する。
  6. 6. +LOFのparameterを調整 "parameter" : {"nearest_neighbor_num" : 10,"reverse_nearest_neighbor_num" : 30,"method" : "euclid_lsh","parameter" : {"lsh_num" : 512,"table_num" : 4,"seed" : 1091,"probe_num" : 1,"bin_width" : 256,"retain_projection" : false }}
  7. 7. +距離をすべての点に対して追加のたびに更新すると、オンライン処理しきれない(時間に間に合わない)のでの点から近い順に10点が(10近傍)のみ更新する。対象の周辺点の密度の均一度"nearest_neighbor_num" : 3,"reverse_nearest_neighbor_num" : 10,の点から近い順に3点が(3近傍)がLOFの密度を計算するために使われる点。
  8. 8. +Euclid-LSHのパラメタfv [a, b, c, …] seedを元に整数値にランダム射影[0,…bin_width]lsh_num個probe_numtable_numretain_projectionがfalseだと毎回導出基本的には演算時間、メモリを食う分、精度があがる可能性がある。bin_widthだけは、適切な量子化幅を設定しないとまともな値が出ない。
  9. 9. +converterの調整 FAQ(http://jubat.us/ja/faq.html) 1: それぞれの特徴値を正規化する 近傍探索は各特徴のスケールの違いに影響されます。全ての特徴値を正規化 (0.0 から 1.0 に制限) するか、標準化 (標準偏差が約 1.0 となるように) するのが望ましいでしょう。 converterの設定"num_types": {"KEYINPUT": {"method": "dynamic","path": "libnormalize_num_feature.so","function": "create","max": "50000.0","min": "0.0"}"num_rules": [{"key" : "*", "type" : "KEYINPUT"}]
  10. 10. +それなりに動くように 精度はこれから 100回ぐらい学習しておけばあとは、それなりのスコアが出るようになった。一方、他人が入力すると、とても大きな値 or Infが出る。 Jubatus-exampleに近日公開予定

×