IoTの認証セキュリティ
本記事ではセキスペ 過去問(H.30/秋 午後I 問3)を例題として解説する中でIoTを含む認証セキュリティの理解を深めます。
※IPA公式サイトから実際の問題を使用しております。
1.前提知識
- 共通鍵
- 公開鍵
2.知識のインプット
MAC(Message Authentication Code)
MACとは文書を認証(完全性の保証)するための情報を表す。
仕組みとしては事前に送信者と受信者が共有鍵を使用してメッセージのやり取りを十する。
共有鍵を使用してやり取りするので共有鍵が適切にやり取りを実施する者間のみで共有されている場合はそのメッセージが改竄されていことを検証できる。
ただし、あくまで、特定の共有鍵をしてメッセージが作成されていることは証明できるものの、作成者の正当化を保証することはできない。
共有鍵を何らかの手段で第三者が取得した場合には第三者によよって作成されたメッセージであっても判別が不可能である。
この性質上、第三者に認証局を置くようなパターンでは作成者本人の正当性は証明できない。
HMAC
HMACとはMACの認証方法(共有鍵)に加えHash関数を用いてメッセージのやり取りを実現する手法を表す。
3.背景
近年、IoT機器が増加しており、そのセキュリティ対策も重要になってきている。
IoT機器はネットワーク経由だけでなく、物理的なアクセスも可能なので、それも考慮してセキュリティ設計をする必要がある。
家庭用ゲーム機を題材に、IoT機器と複数のサーバ間での認証連携について設計する能力、およびIoT機器のセキュリティ対策を検討する能力を問う。
4.過去問の要約
5.解説
①MACは、認証サーバのFQDNと利用者IDに対して、ハッシュ関数を共有鍵と組み合わせて使用し、生成する。
これは共有鍵+ハッシュ関数なのでHMACとなります。
②この問題への対策
この問題とは、認証トークンに格納される情報が不足しているということです。
認証サーバのFQDNと利用者IDしか利用していないので、この状態だと一度利用者IDが発行されれば、他のゲームサーバのURLが分かれば購入したゲーム以外にもアクセスできてしまうことになります。
そのため、どのゲームを購入したのかが判別できるよう、ゲームプログラムIDが必要fらると考えられます。
③認証トークンをゲームサーバ管理者が不正に生成できてしまう
この問題に関しては、共有鍵はゲームサーバ全体で同じ共有鍵を利用しているので利用者IDさえわかってしまえば、不正に認証トークンを生成できてしまいます。
④その設計にしたとしても、不正にゲームプログラムが利用できる認証トークンをゲームサーバ管理者が生成できててしまいます。
その設計とは共有鍵をゲームプログラムごとに別々にする設計を指します。
こちらはゲームプログラムごとに共有鍵を分けたとしてもMAC生成にゲームサーバ側が所有している共有鍵を利用している時点で上記の③と同様ゲームサーバ管理者は不正に認証トークンが生成できてしまいます。
また、その範囲としてはゲームサーバ上の全てのゲームプログラムに対して同様のことが言えます。
文書内のa,b,cにはそれぞれ以下が入ります。
a:認証サーバ b:公開鍵 c:秘密鍵
⑤攻撃者がゲーム機Vを購入すれば、専用OSを改竄せずに、ゲーム機V内のクライアント証明書と鍵CをPCなどから不正に使用できます。
これは文書内に記載のある通り証明書、鍵データは搭載するSSDに格納してあるとあるので、ゲーム機からSSDを取り出し別PCに取り付ければ利用ができてしまう危険性があります。
⑥内部構造や内部データを解析されにくい性質
この性質のことを耐タンパ性といいます。例としては、ICチップなどパッケージを開けると中身が破壊される仕組みにしたり、外気や光を検知して内容が消去される半導体メモリ等があります。
⑦ハッシュ値リストを保護するための方法
こちらは文書中にもあるTPMに保存することで実現できます。TPMとはセキュリティチップのことでOSやハードウェアから独立して機能するため、外部からの攻撃に強い特徴があります。