※ オープンソースからオープンAPIに変わっています。ソースコードは公開されていませんのでご注意ください。

最近二段階認証が流行です。通常使っているパスワードに加えてスマートフォンを使ったワンタイムパスワードを生成することでセキュリティを担保する仕組みです。確かにセキュアだと思いますが、スマートフォンを持っていないと使えないのが難点です。 さらにセキュアな仕組みとしてワンタイムパスワードがあります。通常、専用デバイスを使って行われますがスマートフォンを使って行おうというのがmOTPになります。

仕組み

mOTPは最初に携帯電話番号を登録します。この部分はデモでは自由入力になっていますが実際にはアプリなどで取得する形になるかと思います。

そしてサーバにアクセスするとSidが生成されます。これはアクセスするたびに別なものが生成されます。そしてサーバサイドでプライベートキーと組み合わせるとワンタイムパスワードが生成されます。専用デバイスのように単体ではできませんが、サーバサイドでチェックするようにすれば停止、開始の管理が容易になりそうです。

デモです。まずSidを生成します。

次に生成されたSidと組み合わせてワンタイムパスワードを生成します。

電話番号がキーになっているのでSIMを盗まれたりすると厄介なことになりそうですが、専用アプリと組み合わせることで手軽なワンタイムパスワードジェネレータとして使えるのではないかと思います。 mOTPはMIT Licenseのオープンソース・ソフトウェアです。 mOTP | mOTP Community Website - An Open Source Phone Verification System missed-call-otp - An Open Source Alternative to SMS One Time Passwords - Google Project Hosting