12
株式会社ソニーコンピュータサイエンス研究所 Kadecot アプリ認証 大和田 茂 (萌家電パパ) 株式会社ソニーコンピュータサイエンス研究所

Kadecot アプリ認証

  • Upload
    sonycsl

  • View
    348

  • Download
    3

Embed Size (px)

Citation preview

株式会社ソニーコンピュータサイエンス研究所

Kadecot アプリ認証

大和田 茂 (萌家電パパ) 株式会社ソニーコンピュータサイエンス研究所

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

概要

• AndroidアプリKadecot (http://kadecot.net)でWebアプリを起動する際に出現する Webアプリ認証の仕組みについて解説します。

ECHONET Lite家電機器やセンサー、ソニー製機器、Hue、IRKitなどをブラウザからJavaScriptで制御可能 Google PlayからダウンロードしAndroidで動作 オープンソースの無料ソフトウェア 標準提供以外のプロトコルも、プラグインとして外部から追加可能

基本機能

● 接続機器一覧取得 ● 機器へのコマンド送信 ● 機器の状態取得 ● 機器の変化通知

APIサーバーKadecot

(カデコ)

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

Kadecotのアカウント

• Kadecotをインストール後初めて起動すると、チュートリアルの後にKadecotのアカウントの設定を求められます。

• この設定は、ユーザーの宅内情報や操作性を怪しいサイトに不用意に渡さないためにとても重要です。

使用許諾 チュートリアル アカウント設定

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

Kadecotのアカウントとは?

• Kadecotのアプリ内(とあなたの脳内)にのみ しか存在してはいけない情報で、新たな Webアプリからの接続リクエストが来た時に、 あなたが逐次許可を出す時に入力する情報です。

• NameもPasswordも個性的なものにしてください。

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

Webアプリから接続があるとこうなります

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

この部分を注意深く確認してください

自分が設定したKadecotの名前になっているか?

アクセスを試みているWebサイト。相手ごとに異なります。(直前に アクセスしていたサイトか?)

要求されているのは 許せるレベルの権限か? (左側の「+」を押して確認)

KadecotのIPアドレス:31413からはじまっているか? (絶対ではありませんが、”192.168”または”172.16”~”172.31”または”10.”から始まっていれば大丈夫なことが多いので、難しければ最低限それだけでも確認してください)

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

確認後にパスワードを入力します

安全そうなら、ここに

インストール時に設定したパスワードを入力。

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

何をやっているのか?

• あるサイトAが初めてKadecotにアクセスしようとすると、接続は一度切断されます。(もちろんその時点で、サイトAはKadecotのIPアドレスを知っています。もしあらかじめサイトAがIPアドレスを聞いて来たら教えておく必要があるかもしれません)

• サイトAはKadecotへのアクセスのための鍵(トークン)をもらうために、一旦Kadecotの認証ページ(前スライドの画像)を開きます。このページはサイトAから提供されるものではなく、Kadecot内にあるものです。

• ユーザーはKadecotに対して自分がKadecotのアカウントを知っていることを伝えるためにパスワードを入力します。

• パスワードが正しければ、KadecotはサイトAのための鍵を生成し、URLの末尾に#... という形で鍵となる文字列をつけてサイトAを開きます。パスワードは伝わりません。

• サイトAは鍵情報を使い、再度Kadecotにアクセスします。サイトAは鍵情報をどこか(通常はブラウザ内)に保存してしまうかもしれませんが、それ自体は悪質な行為ではありません。

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

注意①

• 認証はドメイン単位で行うので、同一のドメインで複数のアプリが動作している場合に、それらを区別することはできません。例えば

http://some.site.com/App1/

http://some.site.com/App2/

–の片方を認証するともう片方もその鍵でアクセスできるようになってしまいます。

–権限も同じになります。

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

注意②

• トークンは通常、localStorageと呼ばれるブラウザ内の記憶領域に保存されます。

• 従って、ブラウザAで認証が完了したとしても、ブラウザBでアクセスしたときに再度認証を要求されることがあります。

• この時、ブラウザBにはブラウザA向けに発行されたものとは違うトークンが発行され、ブラウザA向けのトークンは無効になります。

• 従って、ブラウザAから(旧トークンを使って)再度アクセスしようとしてもうまくいかず、再度認証を要求されることがあります。

※これはKadecotの将来バージョンで変更する可能性が あります。

株式会社ソニーコンピュータサイエンス研究所 株式会社ソニーコンピュータサイエンス研究所

最も重要な注意③

• この方式は、通常のブラウザからのアクセスであればある程度の防護能力を持っていますが、ネイティブアプリと組み合わせて攻撃を受けると脆弱な部分があることがわかっています。

• もちろんそれ以外に想定されていない状況も多々あると考えられるので、この方式をとったことでセキュアだと思わないでください。

• 怪しいアクセスの可能性を感じたら、Kadecotを一度アンインストールして再インストールしてください(上書きでは情報が引き継がれるのでだめです)

株式会社ソニーコンピュータサイエンス研究所

Thank you http://kadecot.net/ http://moekaden.com/

@kadecot_dev @moekaden