つながる機器の何が危険ですか
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 を出します。名前もパスワードも聞かれませんでした。
これは、あなた専用のラボだから許されます。もし玄関の鍵の機器が同じ状態なら、誰でも「開いた」と書けてしまいます。
主なリスクと対策
| リスク | 起きること | 対策 |
|---|---|---|
| 初期パスワード | 外から入られる | 使う前に変える |
| 更新がない | 古い弱点が残る | 更新を受け取る |
| 暗号化がない | 通信を読まれる | 暗号化する |
| 認証がない | 誰でも操作できる | 名前とパスワードを求める |
| オフライン | 動作が止まる | 安全な状態に戻す |
学生が入力するセルは、このプレビューでは空白です。
更新と、通信が切れたときの動き
ファームウェアの弱点は、あとから見つかります。更新を出さない機器は、弱点が残ったままになります。
通信が切れた機器は、どう動くかも決めておきます。鍵なら閉まったまま、暖房なら安全な温度で止まるように作ります。