クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

IoT機器のセキュリティリスク

このレッスンのあとで: つながる機器の主なリスクを挙げ、それぞれの対策を言うことができる。

50分のレッスンコマンド3件MQTT メッセージングラボ:機器がブローカーと話す仕組みをブラウザーで

つながる機器の何が危険ですか

IoT機器とは、インターネットにつながる小さな機器のことです。つないだ瞬間から、外の人にも話しかけられるようになります。

このレッスンでは、初期パスワード、更新、暗号化、通信が切れたときの動きを見て、主なリスクを挙げます。

このレッスンのゴール

メモ

つながる機器の主なリスクを挙げ、それぞれの対策を言うことができる。

キーワード

ことばいみれい
初期パスワード出荷されたときから決まっている合言葉admin
ファームウェア機器の中に入っている、動かすためのソフト
更新ファームウェアを新しい版に入れかえること
暗号化通信の中身を、他人に読めなくすること
認証相手が誰かを、名前とパスワードなどで確かめること
オフラインネットワークにつながっていない状態

学生が入力するセルは、このプレビューでは空白です。

初期パスワードは最初に変える

多くの機器は、admin や 1234 のような初期パスワードで出荷されます。同じ型の機器は、すべて同じパスワードです。

攻撃する人は、ネットの中を探して、初期パスワードのまま残った機器を見つけます。使い始める前に、機器ごとに別のパスワードへ変えます。

このラボが省いているもの

重要

ラボのブローカーは、名前もパスワードも要りません。実機では、認証と暗号化が必要です。ラボで安全なのは、あなた専用の環境で、外から届かないからです。実機で同じことをしてはいけません。

ブローカーの設定ファイルを読む

コマンド
docker exec broker cat /tmp/mosquitto.conf

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

設定の3行が認証なしを示す

設定は3行です。listener 1883 は、ポート1883で受け付けます。persistence false は、止めると保存を忘れます。

大事なのは allow_anonymous true です。名前のない人も、読み書きできる、という意味です。

よくある間違い

注意

「家のネットワークの中だから、パスワードは要らない」と考える人が多くいます。1台でも弱い機器があれば、そこから家の中の全部に届きます。内側でも、機器ごとにパスワードを持たせます。

誰でも鍵のメッセージを書ける

コマンド
docker exec broker mosquitto_pub -t home/lock/front -r -m unlocked

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

書いたメッセージを読み返す

コマンド
docker exec broker mosquitto_sub -t home/lock/front -v -C 1 -W 3

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

認証がないと誰でも書ける

2つ目の Run は、いつも home/lock/front unlocked を出します。名前もパスワードも聞かれませんでした。

これは、あなた専用のラボだから許されます。もし玄関の鍵の機器が同じ状態なら、誰でも「開いた」と書けてしまいます。

主なリスクと対策

リスク起きること対策
初期パスワード外から入られる使う前に変える
更新がない古い弱点が残る更新を受け取る
暗号化がない通信を読まれる暗号化する
認証がない誰でも操作できる名前とパスワードを求める
オフライン動作が止まる安全な状態に戻す

学生が入力するセルは、このプレビューでは空白です。

更新と、通信が切れたときの動き

ファームウェアの弱点は、あとから見つかります。更新を出さない機器は、弱点が残ったままになります。

通信が切れた機器は、どう動くかも決めておきます。鍵なら閉まったまま、暖房なら安全な温度で止まるように作ります。

このラボとソースについて: MQTT メッセージングラボ:機器がブローカーと話す仕組みをブラウザーで

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。