PR

矢田:このRaspberry Piには「IBM Cloud」に接続するAIスピーカーのサンプルアプリが入っているようです。AIスピーカーの機能を起動すると、マイクから音声を録音し、WAVファイルに変換してからクラウドへ送信しています。クラウド上で、音声データを認識してテキストデータに変換し、それをIBMのAI機能「Watson Assistant」で解析して必要なアクションを判断しているようです。応答メッセージもWAVファイルで送信されて、Raspberry Piはそれを再生するだけのようです。

片岡:基本的な構成はAmazon Echo DotやGoogle Home Miniと同じだな。

神崎:このAIスピーカーの呼びかけ音は何ですか?

矢田:AIスピーカーのアプリがNode-REDで記述されていて、Webブラウザーで開いたNode-REDの画面でボタンを押すのが呼びかけの代わりになるみたい。

神崎:ウェイクワードとかアクションボタンはないんですか?

矢田:ウェイクワードを認識するプログラムがまだ入っていないみたい。だから、Node-REDの画面でボタンを押すしかないわね。

片岡:AIスピーカーとしての作り込みは不完全だが、基本的な機能は試せそうだな。では、実験3として自作AIスピーカーの通信をキャプチャーしてみよう(図7)。

図7●自作のAIスピーカーで実験(実験3)
図7●自作のAIスピーカーで実験(実験3)
Raspberry Pi上にIBM Cloudに接続するサンプルアプリを搭載することで、市販のAIスピーカーでは難しい動作をさせた。
[画像のクリックで拡大表示]

 自作AIスピーカーのパケットをキャプチャーしたところ、実験1や2と同様のパケットが観測できた(図8左)。Node-REDのボタンを押すと音声データを送信する短いトラフィックが発生し、処理が終了するとトラフィックが発生しない状態に戻る。

図8●自作AIスピーカーの通信パケットのキャプチャー結果(実験3と実験4)
図8●自作AIスピーカーの通信パケットのキャプチャー結果(実験3と実験4)
市販のAIスピーカーと同様に、TLS(HTTPS)で暗号化したパケットを「169.48.115.62」というIPアドレスに対して通信していた。「169.48.115.62」というIPアドレスの所有者をwhoisで調べると「SoftLayer Technologies(IBM Bluemix)」だった。処理を起動するイベントを5秒ごとに実行するように変更すると、連続して音声データを送るようになった。
[画像のクリックで拡大表示]

神崎:自作AIスピーカーの実験3でも、市販AIスピーカーと同じような傾向になりましたね。やはりTLSで暗号化していますし。

片岡:少なくとも、会話の音声データが常にクラウド側へ流れているわけではなさそうだ。ん?どうした。浮かない顔をして。

矢田:確かに、今回のサンプルアプリではそうよ。でも例えば、AIスピーカー機能の起動イベントを続けて発生させれば、音声データをほぼ連続してクラウドへ送ることができるかも。

神崎:そんなことできるの?

矢田:実験3で使ったサンプルアプリは、Node-REDのボタンを1回押すと1回だけ起動イベントが発生する設定よ。それを変更して、例えば5秒間隔で繰り返しイベントが発生する設定にすれば、ほぼ連続して起動イベントを発生させられるわ。それなら、連続的にマイクから拾った音声をクラウドへ送ってしまいそう。

片岡:面白そうだ。実験4としてやってみよう。

 Node-REDのノードを書き換えて、5秒ごとに起動のイベントを発生させるようにして、実験3と同様の調査を行った。すると、連続して音声データをクラウドへ送るようになった(図8右)。

神崎:小間切れとはいえ、会話が常にクラウドへ漏れている状態だ。

矢田:会話が筒抜けのようで、怖いでしょ。

片岡:なるほど、自作AIスピーカーは実装次第で何でもできてしまうので、注意が必要だな。

 そこへ吉田さんが再び登場した。

吉田:実験はどうなった?

矢田:これこれこうで…。市販製品は安心できますが、自作AIスピーカーは実装次第で会話が筒抜けになる危険性がありそうです。

吉田:やっぱり実装依存なのね。これから音声認識に対応した様々な機器が出てくるでしょうけど、必要以上の情報が収集されてしまう危険性があるわね。

神崎:クラウド以外への音声データの漏洩は大丈夫でしょうか?

矢田:クラウドとAIスピーカーの間はHTTPSでセキュアな暗号通信を行っているから大丈夫でしょ。

片岡:HTTPSでも中間者攻撃のような手口を使われると漏洩する危険性があるぞ。

吉田:原理的にはできそうね。

片岡:怪しげな製品だと、初めからそのように実装されているかもしれないな。

神崎:じゃあ、異様に安い製品や、プレゼントとかでもらった製品は気を付けないと。

▼AIスピーカーのサンプルアプリ
「IBM Cloud」のサービスを使用する自作AIスピーカー向けのサンプルプログラムは、自作AIスピーカーの書籍や技術系雑誌などでよく紹介されている。アプリケーションはNode-REDで記述できる。
▼WAVファイル
WAVはWAVEの省略形。米マイクロソフトと米IBMが開発した音声データ記録用のフォーマット。
▼Watson Assistant
IBM CloudのAIアシスタントサービス。Googleアシスタントと同様の機能を持つ。
▼Node-RED
IoTシステムの開発によく使われる開発環境。Webブラウザー上のグラフィカルな環境で、ノードと呼ばれる機能ブロックを線でつないでデータの流れ(フロー)を記述するだけでサービスを開発できる。
▼中間者攻撃
本来通信する相手同士の間に割り込み、すべての通信を中継してデータを盗聴する攻撃手法。AIスピーカーや音声対応の機器のプログラムがマルウエアなどにより書き換えられると、第三者のサーバーと通信するようになって中間者攻撃を受ける可能性もある。そうなると会話を盗聴されてしまう。