経済中心に書いてます!

趣味の範囲で…園芸・沖釣り・漢方・医食同源の投稿をします…業務はCX・225指数・FX Pro. …

500円では買えない中身 解剖、アマゾン「買い物ボタン」

2017年03月13日 09時13分44秒 | 市場動向チェックメモ
http://www.nikkei.com/article/DGXMZO12977940W7A210C1000000/?n_cid=DSTPCS003

500円では買えない中身 解剖、アマゾン「買い物ボタン」
(1/4ページ)2017/3/13 6:30日本経済新聞 電子版

日経NETWORK
 ボタンを押すだけで自動的に無線LAN経由でインターネットに接続し、Amazon.co.jp(アマゾン)に商品を注文する――。電子商取引(EC)を大幅に簡略化する、米国でも注目のデバイスが日本に上陸した。アマゾンジャパンは2016年12月5日、「Amazon Dash Button(アマゾンダッシュボタン)」(以下、Dash Button)を発売したのだ(図1)。

図1 注文する商品ごとにAmazon Dash Buttonを購入する。価格は500円で、初回の商品購入時に購入金額から500円差し引かれて実質無料になる

 Dash Buttonの利用者は「Amazonプライム」会員に限られている。500円で販売されているが、初回注文時に500円の割り引きが適用されるので、実質無料で利用できる。

 ボタン型のデバイスが無線通信でインターネットにつながり、Webアプリと連携してサービスを提供するDash Buttonの仕組みは、まさにIoT(モノのインターネット)システムの典型といえる。

 このDash Buttonが、IoTデバイスとしてどのようにデータをやり取りしているのか。Dash Buttonを使った商品注文の操作を試すと同時に、分解などを通じてそのハードウエア構成や通信パケットの詳細も見ていく。

■500円では買えないスペック

 筆者が実際に購入したDash Buttonを分解して基板を確認したところ、ハードウエアは非常に高スペックだった(図2)。化粧箱とボタン本体を含めて、実質無料で配布しているとは思えないレベルである。

図2 Amazon Dash Buttonの内部構造。CPUやメモリー、無線LANやBLE対応のBluetoothチップを搭載している。化粧箱付きの製品として価格500円で販売できるスペックではない

 縦25×横60mmという小さなケースに、無線LANとBluetooth(ブルートゥース)のチップが搭載されていて、汎用的な通信が可能となっている。プロセッサーは、英ARM(アーム)の「Cortex-M4コア」のMCU (Micro Control Unit)を搭載。同程度のスペックのデバイスを購入しようとすると、数千円はかかるのが普通だ。

 電源は単4電池1本。MCUなどが3.3Vの電圧で駆動するので、1.5Vを3.3Vに昇圧するレギュレーターが実装されている。電池は注文回数にして約1000回はもつという。

■Bluetoothか音波で初期設定

 Dash Buttonの初期設定は、スマートフォン(スマホ)にインストールした「Amazonショッピング」アプリから行う(図3)。Amazonアプリでボタン初期設定画面に移動し、ボタンを6秒間押してDash Buttonを起動すると、設定モードになる。この状態でスマホからDash Buttonに接続して、注文時に利用する無線LANのアクセスポイント(AP)の情報を設定する。

図3 Amazon Dash Button初期設定の流れ(抜粋)。ボタンを6秒間押して起動するとLED(発光ダイオード)が青く点灯する。この状態でBluetooth経由でスマホとつながるので、無線LAN接続を設定する。マイクを使って、超音波でも設定可能だ

 APの設定には、2種類の通信方法を用意している。Bluetoothを使う方法と、超音波を使う方法である。Bluetoothがオフの場合には、スマホの近くにDash Buttonを置いて、音波で設定する。

 Dash Buttonと接続先のAPをつなぐ設定では、接続可能なAPの一覧から適切なAPを選び、パスワードを入力する必要がある。この操作はUI(ユーザー・インターフェース)を持たないDash Button単体ではできない。そのため、スマホとDash ButtonをBluetoothか音波でいったんつないでから、アプリ上で無線LANを設定するわけだ。

図4 ボタンの情報を確認。Amazon Dash ButtonではWebサーバーが動作している。アクセスするとシリアル番号や電池残量を確認できる

 このときDash Button上では、「Amazon Configure ME」という名称のAPが動いている。Webサーバーも動作しており、パソコンからWebブラウザーでDash Buttonにアクセスすると、シリアルナンバーやMACマックアドレス、ファームウエアのバージョン、電池残量を確認できる(図4)。

 最後に、ボタンを押したときに注文する商品をリストから選んで、Dash Buttonの設定は完了だ。筆者の場合、設定に数分とかからなかった。

 Dash Buttonを使った商品注文の流れは非常にシンプルだ(図5)。ボタンを押すと、あらかじめ設定してあるAPに接続して、Amazonのショッピングサイトへの商品購入リクエストを送信する。同時に、スマホのAmazonアプリに注文確認の通知が来る。少し遅れて、メールでも通知される。間違ってボタンを押してしまった場合でも、一定時間内ならWebサイトやアプリからキャンセルできる。

図5 商品注文の流れ。ボタンを押すと無線LANで通信して、事前に設定した商品の購入リクエストを送信する。注文状況は専用アプリやメールで通知される

 筆者は当初、Dash Buttonは直接無線LANに接続しないで、スマホとBluetoothで通信して注文処理を実行すると予想していた。電池で動作するIoTデバイスは、たいてい低消費電力のBluetoothを使っており、無線LAN経由で直接TCP (Transmission Control Protocol) で通信するものは少ないからだ。直接無線LANに接続していたのは驚きだった。

■IoTでもセキュリティーに十分な配慮

 筆者がDash Buttonを検証してもう一つ驚いたことは、十分過ぎるハードウエアスペックや無線LAN通信に加えて、TLS (Transport Layer Security)による暗号化通信をしていたことだ。図6は、実際にボタンを押したときに発生する通信について、フリーのパケットキャプチャーソフトである「Wireshark」でパケットをキャプチャーした結果である。

図6 Amazon Dash Buttonの通信パケット。Dash ButtonをiPhoneのテザリング機能で接続して、ボタンを押したときに発行されるiPhoneのパケットをキャプチャーした。サーバーとTLSで暗号化通信していることがわかる。TLSの暗号化スイート(Cipher Suite)は、ここで決定された「TLS_RSA_WITH_AES_128_CBC_SHA」を含め計6種類観測された

 Dash Buttonでボタンを押すとまず、NTPサーバー(Network Time Protocol :IPネットワークで時刻合わせをするためのサーバー)と、Amazonのサイトへの通信用サーバー(dash-button-jp.amazon.com)のIPアドレスをDNSサーバー(Domain Name System :IPネットワークで名前解決をするためのサーバー)に問い合わせる。その後、NTPリクエストを送信すると同時に、Amazonのサイトへの接続を開始する。キャプチャーしたパケットを見ると、この通信がTLSで暗号化されているとわかる。

 Dash Buttonのように電池容量と性能が限られているデバイスで、TLSを利用して通信経路の暗号化や購入リクエストの認証をしているのは本当に驚きだ。TLSは、Dash Buttonのようにハードウエアリソースが限られたデバイスでは敬遠されがちである。処理負荷が非常に高いからだ。

 しかし、Dash Buttonは平然とTLSを利用している。試しに筆者は、DNSを詐称して、特定のTLSサーバーとDash Buttonを通信させる中間者攻撃を行ってみた。攻撃を通じてTLS通信の内容を解明しようとしたが、失敗した。これは、TLS通信はデータの暗号化だけで、認証には利用していないのではないか、という可能性を疑った攻撃である。しかし検証の結果を見る限り、暗号化はもちろん、認証にもTLSを利用していると考えられる。

 筆者は以前、あるデバイスの開発で組み込み向けのTLS(mbed TLS)を実装して苦労した。暗号化のために多くのCipher Suite(サイファー スイート:暗号化通信のための暗号方式や暗号アルゴリズムなどの組み合わせを定義したもの)を使おうとすると、デバイスの容量制限にひっかかってしまうのだ。一方、決まり切ったものに限定して実装するとセキュリティーの懸念がある。組み込み型のデバイスの開発では、このバランスが非常に重要になる。Dash Buttonは、6種類のCipher Suiteを利用できる。

 Dash Buttonを検証してみて、このようなIoTデバイスでも、TLSの重要性、つまりセキュリティーが必須であると改めて認識させられた。

■クラウドとの連携で真価発揮

 最後に、Dash Buttonの応用といえる、「AWS IoTボタン」についても説明しておこう。今回検証したDash Buttonの将来的な真価は、米アマゾンウェブサービスが提供するクラウドサービス「Amazon Web Services(AWS)」との連携にあると筆者は考えている。そのためのデバイスが、AWS IoTボタンである。国内では未発売だが、米国では既に提供されている。

 AWS IoTボタンは、ボタンを押したときの動作を「AWS IoT」と連携してプログラミング可能なデバイスである(図7)。AWS IoTは、IoTデバイスとAWSの各種サービスとのゲートウエイとして動作するサービスだ。AWS IoTボタンとの通信プロトコルには、MQTT(MQ Telemetry Transport:IoTシステムにおける少量データの伝送に適した通信プロトコル)を使う。

図7 AWS IoTボタンによるAmazon IoTとの連携。Amazon Dash Buttonの開発用端末である「AWS IoTボタン」を使うと、ボタンの操作に応じたデータをAWS(Amazon Web Services)上のサービスにMQTTメッセージとして送れる。送られたデータを、AWS上で加工や分析、アクションの実行に利用する

 AWS IoTボタンを押すと、クリックや長押しなど、ボタンの操作に応じたデータ(MQTTメッセージ)が発行される。メッセージはAWS IoTを介してAWSのサービスに渡される。このとき、データを連携するためのプログラミングは必要ない。データをAmazon DynamoDB、Amazon SNSといったAWS上のどのサービスに渡すかは、AWS IoTの管理画面で設定したルールによって決まる。メッセージの内容に応じて異なる動作をするルールを設定できる。

 集めたデータは、AWS上で分析/加工したり、データを基に各種のアクションを実行したりできる。AWS IoTボタン以外でも、IoT家電やスマホなど、MQTTやWebSocketウェブソケットを利用できるデバイスがあれば、AWS IoTは利用可能だ。

 こうした仕組みにより、デバイスを起点とした様々なサービスを提供できる。例えば、AWS IoTボタンを押したらSNS(ソーシャル・ネットワーキング・サービス)へメッセージを投稿する、自宅の鍵(スマートロック)を開く/閉じる、照明をオン/オフする、といった処理を実行可能だ。AWSのプログラム実行環境サービスであるAWS Lambda(ラムダ)を利用すれば、MQTTメッセージを扱うシステムでも簡単に構築できる。

 AWS IoTボタンを使えば、ボタンの用途はショッピング以外にも大きく広がる。筆者はこのボタンが、サービス、物理デバイスの両面からの、アマゾンのIoTに対する本気の表れだと感じている。

(GMOインターネット 特命担当技術分析官 新里祐教)
ジャンル:
ウェブログ
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« 実は外国人より好成績だった... | トップ | 1月の機械受注3.2%減 市場... »
最近の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
ブログ作成者から承認されるまでトラックバックは反映されません。