Hydro Client Raindrop 2FA(WordPress Plugin)を試してみよう 前編(下準備編)

HYDRO プロダクツ 解説

ワードプレスにブログを移行したからには、Hydro Raindrop を実装してみたい!こんにちは、ノリヒロです。Hydroの事をもっと多くのユーザーさんにお伝えするべく、今回は第1フェーズ、Raindropの体験方法をお伝えします。記事は2回に分けてお伝えします。第1回前編はワードプレスなしでも体験できる仮想Raindrop(下準備編)、第2回後編はワードプレスユーザーのRaindrop 実装編になります。ワードプレスユーザーでも前編の下準備は必要になりますのでご注意ください。

Raindrop 2FAを試してみよう前編(下準備編)

Raindropを簡単におさらい

Project-Hydroの6フェーズの第1弾Raindrop(雨だれ)。特徴は【認証】です。なお、Raindropには2種類あります。Client Raindrop と Server Side Raindrop です。どちらとも2FAに変わりはありませんが、保護すべき対象、使用者、コストの有無など仕様に違いがあり全くの別プロトコルです。ざっくりとClient Raindropはユーザーが使用する、Server Side Raindropは取引所や銀行等企業が使用する…という認識てOKです。私たちが”Raindrop”の話題をする時は、たいていは”Client Raindrop”の事を話していますし、今回の紹介もこのClient Raindropになります。(以後RaindropはClient Raindropを指します)。

取引所を利用している方なら、1度はスマホにインストールするgoogle authenticator(Google 2段階認証、2FA)を使ったことがあると思います。一定時間でパスワードが変化していくあれですね。Raindropも同種の2FAです。それではGoogle 2FAとは何が違うのでしょうか?Hydrogen公式にアップされているRaindropの紹介動画から抜粋です。

動画の全訳はこちらからどうぞ。

HYDRO Raindrop 2FAを理解してみよう!
HYDRO Raindrop 2FAを理解してみよう!こんにちは、ノリヒロです。HYDROのYoutubeチャンネルに各プロジェクトを説明した動画があります。非常にかわいらしく、わかりやすいので日本語訳をつけてみました。本当は字幕にしたかっ...

Google認証とRaindrop認証の流れを纏めてみました。

違い①:パスワードの作成・管理方法

Google2FAは、【サーバー(ログインサイト)から Google 2FAを インストール時にランダムに生成された秘密鍵(QRコード)+現在時刻】を特定のアルゴリズムで変換した数字6桁です。サーバー保管の秘密鍵とQR等でインストールした秘密鍵が同じなので、同時刻であれば同じパスワードが生成されて、認証可能となるという仕組みですね。あとは、サーバーが保持するQRコードを同時に複数の端末(スマホ)にダウンロードすれば、予備も作れます。パスワードはサイトが作成・管理しているということになりますね。
Hydro Raindropでは、パスワードのキーとなるのは、Hydro Appをダウンロードした際に付与されるHydro IDです。端末を識別するHydro専用のIDで、ブロックチェーン上に記録され、端末と紐づけされています。ログインするサイトではそのIDを登録します。すると、ログインするたびにHydroID専用のパスワードがサイトに表示されます。ユーザーはそのパスワードをHydro Appに入力。HydroAPI経由でブロックチェーン上に情報が伝達されます。ブロックチェーン内では、送信された情報を基に正誤を判定してAPI経由でサイトにアクセスのOKを出します。パスワードはアプリ(が作成したHydro ID、ざっくりいえばユーザー)が作成・管理していることになります。サイト管理とユーザー管理、この違いは大きいですね。

違い②:どこで認証を行うか

Google 2FAでは認証を行うのはサイト自身です。一方Hydro Raindropは認証を行うのはHydr API+ブロックチェーン部分です。①、②とも、Google 2FAはサイトに重心が置かれていますね。

さて、ハッカー君が取引所の暗号通貨を狙っているとします。フィッシングサイト(偽サイト)も作りました。Google 2FAとHydro Raindropはフィッシング対策ができるのでしょうか。

Google 2FAの場合:ID、パスワード、2FAを偽サイトに入力してしまいました。偽サイトでは「ログインOK」という文字が出ますが、もちろん架空のログインです。ハッカーは手に入れた情報をサイトに間髪入れずに入力します。当然サイトの持っている情報と一致しますので…本人としてログイン出来てしまいました。哀れ、Google 2FAはセキュリティを突破されてしまうのでありました。
Hydro Raindropの場合:ID、パスワード、2FA用Hydro IDをフィッシングサイトに入力してしまいました。しめしめ。ハッカー君は本サイトにアクセスしHydro IDを入力します。ここでハッカー君、焦っています。そうです。IDに紐づいたパスワードは6桁、ランダム発行です。当たる確率は10の6乗で100万分の1。しかもHydro IDを発行した端末でしか入力する効力がないのです。結局のところ、ハッカー君が成功させるためには、ログインをしたいサイト、HydroApp、Hydroサイトに同時にアクセスできるようになる必要があります。これは厳しい!ハッカー君は諦めました。Raindropの勝利です!

サイトに管理が集中するGoogle2FAはフィッシング対策には不十分ですね。一方のRaindropはHydro ID(及びその端末)がトリガーとなっており、紐づけはHydroAPI(Hydroサイト)で行います。両方を同時にアクセスできるのは、真正な保有者以外考えにくいですね。Hydro Raindrop の素晴らしさが目立つ結果となりました。

また、スマホの紛失、故障時にも対応ができるのがHydro 2FAの強みです。先ほども申し上げましたが、Google 2FAではバックアップの際には秘密鍵(かそれをQRコードにしたもの)が必要となります。しかもそのキーはダウンロードする際に1回こっきりの表示です。ダウンロード時のチャンスを逃したら一度削除後、再ダウンロードをしなければなりません。しかも取引所ごとに違うわけです。これは大変ですね。

一方Hydro 2FAでは、必要なものはシードワード(英単語12個)とHydro IDのみ。この2つをメモっておけば紛失、故障時にもすぐに復元が出来ます。シードワードはHydro Appでいつでも確認できるのでメモるのは簡単。この点でも優れているといえるのではないでしょうか。

最後に1点。Raindropは単体での機能ではありません。Hydro 【ID】 と言えば…そうです、第2フェーズに予定されているSnowflake(ID管理)に、Raindropは統合されます。詳細は別の機会にしますが、Hydro IDを EINというイーサリアム専用の個別IDに紐づけをしてDappのID管理をまとめちゃおう…という構想です。アプリっていちいちログインするの、面倒ですよね。これからDappは増えていくと思います。そんなDappのID管理が簡単に出来たら素晴らしいと思いませんか?

少し余談となってしまいましたが、今回はこれまでにお伝えした①Hydro Appの設定、②Hydrogen公式HPへの登録&連携、③Hydrogen公式をサイトに見立ててRaindropを試す この3つを準備編として行います。簡単におさらい…というつもりが、長くなってしまいましたが…これも愛ゆえ(笑。
大変申し訳ございませんが、ワタクシ自身は数か月前に①と②を終えてしまっているため、画像の提供ができません…サンプル取り忘れました…。このブログをご覧いただいた気さくなハイドラーさん、もしいらっしゃいましたら、要所要所のスクリーンショットをいただけると助かります!!ご検討いただけるようでしたら、TwitterのDMお待ちしております。それでは行きますね!

スマホでHydroApp(アプリ)をダウンロード&設定

Hydro IDを取得します。androidはGoogle playから、IOSはApp storeから「Hydro」で検索して「Hydro: Security & Identity」のアプリを見つけましょう。疑似アプリに注意してください。今回はandroidで試してみます。


アプリをインストールして開いたら、この画面。スマホをシェイクします!この行為であなたのHydroIDが決定します。本当です。(実際フリフリしたか…記憶がありません(笑。


左側がTOP画面です。赤く囲まれた部分があなたのHYDRO IDです。英数字混合の7桁になります。これからHydroのシステムを扱っていくうえで何度も必要となるIDですね。これでID発行の目標は達成ですが、使い方をざっと説明します。
IDの左にある人型のアイコンを選択すると、右側の画面(Account Settings)に移行します。この画面でいろいろ設定ができます。

View Seed Words:スマホ紛失時等のバックアップに必要な英単語12語を確認できます。1~12まで順番に英単語が並んでいます。これをコピーしてどこかに保存しておきましょう。英単語だけでなく順番も必要です
PIN Protection:スリープから復帰する際のパスワードを4桁で設定できます。スマホでいうところの画面ロックですね。この設定は任意です。

その下(privacy policy以下)はInformationです(外部リンクに接続)ので、特に必要はありません。

Hydrogen公式HPへの登録&スマホとの連携

次はHydrogenplatform.com(hydro公式HP)へのアカウント登録です。登録は右上の「Sign Up」から行います。
リンクはこちら。https://www.hydrogenplatform.com/

Sign Up画面です。登録はDeveloperとして行います。えっ?!プログラムとか何もわからないし、そもそもDeveloperじゃないし?そこは気にしてはいけません。というかDeveloperという名目でないとアカウントが作れないので(笑。そもそもHydrogenのHPは「Developer用」に作られた経緯があるのでその名残ではないかなぁと思われます。特にDeveloperであることを証明することはないです。
First Name, Last Name, E-mail, Password(★項目)は必須です。Passwordは8-64文字で大文字+小文字英字混合でかつ数字を1文字以上入れてください。
その後チェックボックスに2つチェックをしてSIGN UPを押します。

ここからはサンプル画像がないので、スミマセンが記憶とイメージ画像でお伝えします。実際の画像をいただくことができましたら、随時差し替えていきますので宜しくお願い致します。記憶が確かなら…ログイン後すぐにHydroIDを求められたような気がしますが、定かではありません…。

ログイン後のDashboard(スタート画面)です。ワタクシは既にHydroのAPI登録を済ませていますのでこのような画面ですが、新規登録時にはまっさらの状態となっていると思います。右上にある水色のアイコンが初期設定のアイコンです。そこにマウスをあてて「Account setting」を選択します。


Account Settingsの「Blockchain Two Factor Authentication」のOFF/ONボタンを【ON】へ。HydroIDの入力を求められるので記入します。右側に「Verified(確認済)」が付いたら認証OKです。


認証がOKになると、スマホアプリのほうも「Hydrogen Developer Portal ⇒ Linked」になります。これで用意は整いました!!

HydroAppを使ってRaindropを試してみよう

それでは早速Hydrogenサイトを利用してRaindropを試してみましょう。これまでの対応でHydroIDは既にブロックチェーン上に記録されており、 Hydroサイト、HydrogenAPI、HydroAppの連携も済んでいます。各項目のかっこ()内はプログラム内部の解説を行っています。どのようにAPIとブロックチェーンが動いていくかも確認できますね。

 

1
①HYDROGENの公式HPログイン画面。登録したE-mailとPasswordを入力して「LOG IN」をします。(さあ、2FA認証の開始です。)
Inked2_LI
②HydroモバイルAPPへ入力するための6桁のパスワードが出現します。今回は「121212」とします。(ログインしたいサイトからHydroIDに紐づいたパスワードが出されました)
Screenshot_2018-09-20-00-03-38
③HYDRO アプリに移動します。TOPにある「Hydrogen Developer portal」を選択します。ログインするための入力画面が開きますので、先ほどの「121212」のパスワードを入力して「Continue」を押します。(HydroIDに紐づいたパスワードをHydroAppに入力します。「Contiune」を押すと、パスワードとHydroIDはAPIを通してブロックチェーンへ送られます。ブロックチェーンは判断後、正誤をAPIを通してサイトに返します)
Inked2_LI
④アプリでの送信が確認できたらサイトへ戻り、「Authenticate(確認)」を押します。パスワードが正しければログインができます。(サイトにはブロックチェーンから送られた正誤判定が返って来ています。「Authentivate」を押すことでその正誤が判明する事になります。今回は無事ログインできました!)

いかがでしたでしょうか。そんなに難しくはなかったですね!次回はいよいよワードプレスRaindrop実装になります。少し工程が増えますが、考え方は変わりません。わかりやすくするため、内部の動きを少しはしょったりしていますがそのところはご勘弁を。何かご質問・ここが間違っているよ~ってところがありましたら、コメントでもTwitterでもOKです。どしどしどうぞ。もちろん、今回の画像提供もぜひご検討よろしくお願い致します(笑。

コメント