2015年7月12日日曜日

外部サイトの運営者がava.pmang.jpアカウントの本人確認を行う方法

登場人物


  • 利用者 (ava.pmang.jpのアカウントの所有者)
  • 運営者 (ava.pmang.jpではない外部サイトを運営する人)

目的


  • 利用者は運営者にアカウントのログイン情報(パスワード等)は教えたくない
  • 運営者はなりすましを防ぐために、不特定多数の利用者の本人確認を行いたい

目標


  • 運営者は利用者からアカウントのログイン情報を一切聞かずにアカウントの本人確認を行い、その利用者に対し外部サイト用のログインパスワードを発行する

流れ


  • (a)利用者は運営者に対し、ava.pmang.jpアカウントのキャラクター名を通知する。これはWebサイト上のフォームに記入する形で実現できる
  • (b)運営者は通知されたキャラクター名の存在確認をする。これはava.pmang.jp上のキャラクター検索の結果により判別できる。また、既に本人確認済みのキャラクター名であれば手続きを中止する
  • (c)運営者は利用者に対してトークンのペアと、ava.pmang.jpの掲示板のURLを通知する。運営者はWebサイト上で(a)のリクエストに対するレスポンスとしてこれらを通知する。運営者はキャラクター名・発行したトークンのペアを組として記録しておく。トークンのペアはそれぞれトークンO,Sとし、これらは毎回異なる値を発行し、十分な暗号強度を持つ必要がある
  • (d)利用者はava.pmang.jpにログインし、指定されたava.pmang.jpの掲示板にトークンOを書き込む
  • (e)利用者は運営者にトークンSを通知する。これはWebサイト上のフォームに記入する形で実現できる
  • (f)運営者は右記の事項を確認する。(1)ava.pmang.jpの掲示板にトークンOが書き込まれたこと。(2)掲示板に書き込んだキャラクター名・トークンのペアが(c)で発行したものであることを確認する
  • (g)運営者は利用者に対しトークンXを発行する。運営者はWebサイト上で(e)のリクエストに対するレスポンスとしてこれらを通知する。運営者はキャラクター名と発行したトークンを組として記録しておく。トークンは毎回異なる値を発行し、十分な暗号強度を持つ必要がある。
  • (h)利用者はトークンXを記憶し、外部サイトのログイン情報として利用する

解説


本人確認としては「本人にしか成し得ないこと」をしてもらい、「本人しか知り得ないこと」をもって認証する必要がある。

(a)について、ここではWebフォームと限定したが、メールアドレスを聞いて良いのであれば、本人認証が簡略化されるためいくつかの手順を省略できるが、その方法についてはここでは触れない。

(b)のキャラクターの存在確認についてはいくつかの問題がある。まず、なぜ存在確認が必要かというと、存在しないキャラクターについて認証ができてしまうと、今後新しく作られるキャラクターの乗っ取りが可能になってしまうからである。ただ、実は(a)-(h)の手順を踏んでも、今後新しく作られるキャラクターの乗っ取りは可能で、これは既に削除されたキャラクター名であれば、再度同じ名前でキャラクターが作成可能であるというava.pmang.jpの仕様に起因する。ava.pmang.jpにおいてキャラクター名はアカウントを特定する一意な識別子として利用できないのである。例えば悪意のあるAと善意のBがいたとき、Bが再来週「びろーん」というキャラクターを作成するとAに予告した場合、Aは「キャラクター名変更(7日)」を購入して自身のアカウントのキャラクター名を「びろーん」に変更し、外部サイト上で「びろーん」の認証をすると、その後Bが「びろーん」のキャラクター名でアカウントを作成したとき、Aは外部サイト上でBのアカウントを乗っ取ることができる。これを完全に防ぐためには、外部サイトのログイン毎に(a)-(h)の手続きを実行すれば良いが、それは面倒なので(1)本人確認を定期的に行う(2)本人確認を自動的に行うスクリプトを配布する等の妥協案が考えられるが、やはり面倒である。ava.pmang.jp側がセキュアな認可用のAPI(OAuth等)を提供してくれれば話は早いので、提供してほしい。

(c)については適当な乱数のトークンのペアを発行するのが良い。トークンSは運営者と利用者しか知り得ない情報であるため、運営者が利用者の本人確認をするために利用するが、もし通知手段にメールアドレスが利用可能であればトークンSは発行する必要がない。また、トークンOが毎回異なる値とする理由は、外部サイトの本人認証を行うために書き込んだという意図を明確にするためである。例えば、ある掲示板に多くの人が外部サイトの本人確認のために「ありがとうございます」と書き込んでいた場合、外部サイトの本人確認の意志のない第三者が便乗して「ありがとうございます」とその掲示板に書き込む可能性がある。そのとき、悪意のある利用者が総当り攻撃でトークンSを特定する動機が生まれてしまう。これは(a)-(h)間でタイムアウト処理が必要なことを意味する。

(g)-(h)について、本人確認後の本人認証にパスワード方式を用いたが、これは本人認証ができる手段であればなんでも良く、メールアドレスのワンタイムパスワードでも、TwitterアカウントのOAuthでも良いが、ここではなるべく利用者の情報を収集しないという方針だったので、パスワード方式とした。ただ、利用者がパスワードを忘れた場合、パスワードの再発行には(a)-(h)の手順を最初からやる必要があり大変不便である。

結論


ava.pmang.jp側がセキュアな認可用のAPIを提供してくれたらなぁ

2015年2月11日水曜日

祝11111勝

AVA歴3ヶ月半(約105日間)でようやく11111勝目をカウントしました。
悲願達成です。
ありがとうございました。




なんか新しいジャンルのゲームやりたいけど、人口が多いのやりたいという二律背反があって困ってます。結局、気がつくと護衛やってます。ソリティアばっかりやってる人みたいです。

2015年2月9日月曜日

AVA Rating閉鎖に関して

もう閉鎖して、3週間近く経ってほとぼりも冷めただろうから、ひっそりと書いておきます。


2015年1月19日月曜日

AVAODL2015 Season1活動報告

各位、大会お疲れ様でした。

Rule 6は優勝こそ逃してしまいましたが、7勝1敗で2位となかなか健闘したかと思います。

初日から全ての試合が6-6の最終ラウンドにもつれ込む大接戦で、大会気分を満喫できる非常にエキサイティングな試合ばかりでした。二日目の後半は安定して勝ててたので、もしかしてひょっとすると実は練習不足だったのでは、という気がしなくもないです。

大会の動画は夜一さんのタイムシフトに残ってます。緊張感あって良いコンテンツです。

2015年1月4日日曜日

AVAODL2015 Season1爆破リーグ出場の案内

あけましておめでとうございます。
今年もRule 6はODLに出場します

≪参加登録受付期間≫
2014/12/24(水)当ページ公開後 ~ 2015/1/5(月)12:00まで

≪試合実施日≫
2015/1/17(土)17:00~
2015/1/18(日)17:00


クランメンバーが丁度10人だったので全員エントリーしました。1/4の深夜になってから慌てて最小人数の3人を確保して、とりあえずのエントリーです。連絡遅くなってすいません……。

参加したい人&できる人の連絡お待ちしております。

2014年9月29日月曜日

AVAODL2014 Season3活動報告

各位、大会お疲れ様でした。

Rule 6は優勝こそ逃してしまいましたが、6勝2敗3位となかなか健闘したかと思います。
次の大会出場はいつになるかわかりませんが、その時はまたよろしくおねがいします。

以下、大会の記録を残しておきます。



2014年9月24日水曜日

アシストシステムの影響について

ちょっと古い話題になってしまうのですが、2013年8月14日のアップデートでアシストシステムが導入されました。

詳細についてはリンク先を見て頂きたいのですが、簡単に言うと「キルしなくてもよりダメージ与えた1人のプレイヤーにスコア0.5が加算される」というシステムです。

これによって若干SDのインフレが発生したのが気になっていたのですが、長らく調査が面倒でさぼっていました。しかし、2014年6月24日のアップデートでクラン戦結果にアシストスコアが反映されるようになったので、手元のデータだけで調査が可能になりました。

というか、これまで反映されてなかったのかよ、という話ですが、これによってCrock AVAさんみたいに毎日全プレイヤーのSDを収集しなくても、影響を調査できるようになった訳です。

……というわけで、アシストシステムの影響がどの程度だったのかについて簡単に調査してみました。

下記のグラフはクラン戦結果における、SDの推移を表したものです。
微妙に用途の怪しいdifference chart
黒線がその日1日の合計S/D、色線が集計開始日からその日までの合計S/D、色付きのエリアはその2つの差を塗りつぶしたものです。そのままだとギザギザになって分かりにくいので1週間ごとに平均を取って滑らかにしてます。
2014年6月前まではSD 1.11くらいで、それ以降から急にSD 1.25くらいに上がっているのが分かるかと思います。これの差はアシストシステムの反映による影響と見て良さそうです。

0.14。思ったより小さいかなぁという印象です。


所感。
このシステム、競技性よりもプレイフィール向上の為のものな気がします。良いですね。

2014年9月22日月曜日

美しい花もいつか枯れるように

過去の栄光を引きずる行為は見苦しいものです。
しかし、誰しも現在の自分に満足しているわけではありません。
他に誇るものが無くなったとき、人は過去にすがることしかできないのです。
自信を取り戻すまで、温かく見守ってあげるのが大人の対応ではないでしょうか。

全く関係のない話ですが、私もすっかり呆けたFPSプレイヤーになった感が否めません。

2013年7月あたりをピークに急速に衰えるmemetor

ODL前のメンバーの出席率を嘆いている場合ではない気がします。

グラフに関する補足
上のグラフはhttp://avar.memetor.net/singles/27244/time_series_ratingの"27244"の部分をそれぞれのIDに変えると見れるようです。
まだ作りかけっぽいですね。
最初期にはAVA Ratingもグラフが付いていたのですが、いつのまにか消されていて、また復活させようとかいう感じで、なんだか迷走していますね。

2014年8月31日日曜日

ODL出場者募集

AVA ODL 2014 Season 3が開幕します。
当クランRule 6では出場者を募集します。

2014/9/7 追記: ODLの募集は締め切りました。

≪参加登録受付期間≫
2014/9/8(月)12:00まで

≪試合実施日≫
2014/9/27(土)18:00~
2014/9/28(日)18:00~

また、現クランメンバー人数では出場が困難な可能性があるため、下記の条件にいくつか当てはまる人は連絡お待ちしています。

・ODL出たい、出れる
・TeamSpeak 3を使える(使う気がある)
・大人
・内輪ネタにめげない
・練習全然しないメンバーにめげない
・クランメンバーが数ヶ月単位で別ゲーに移住しててもめげない

連絡先はこの記事のコメント欄、AVAのゲーム内の「memetor」、steamIDの「memetor」までお願いします。
出場リーグは面子次第ですが、マスターは厳しいと思います。