検索
連載

産業向けIoTに不可欠なセキュリティ機能の解説Bluetooth mesh入門(4)(3/3 ページ)

IoT(モノのインターネット)では、セキュリティが最も重要な要素の一つと言っても過言ではありません。Bluetooth meshネットワークは、セキュリティを最優先にした設計となっています。本記事では、Bluetooth meshネットワークが備えるセキュリティ機能と、セキュリティ対策について解説します。

Share
Tweet
LINE
Hatena
前のページへ |       

各種暗号化

 Bluetooth meshネットワークのほとんどのセキュリティ機能は、業界標準の暗号化アルゴリズムと手続に基づいています。これらについては本シリーズの他のセキュリティ関連記事でも触れますが、最も重要なものについて、ここで解説します。

 Bluetooth meshのスタックで使用されるセキュリティ関数には、主にAES-CMACとAES-CCMの2つがあります。この2つが基本的な暗号化・認証関数であり、キー生成に使用する他の全ての関数がこれらに基づいています。

AES-CMAC

 CMAC(Cipher-based Message Authentication Code)は、どのような長さの入力からでも、固定長128ビットの認証値を生成します。AES-CMACアルゴリズムを使用してたMAC(メッセージ認証コード)生成式は、次のように表せます。

MAC = AES-CMACk(m)

 この式で、AES-CMACへの入力は次の通りです。

  • k - 128-ビットのキー
  • m - 認証対象の可変長データ

 AES-CMACは優れたエラー検出能力を持っています。チェックサムやエラー検出コードなどの検証方法では、データの偶発的な変更しか検出できない可能性がありますが、AES-CMACは偶発的な変更に加え、許可なく意図的に行われたデータ変更をも検出するよう設計されています。この関数について詳しくは、その仕様であるRFC4493を参照してください。

AES-CCM

 AES-CCMは、汎用的な認証付き暗号化アルゴリズムで、ブロック暗号での使用を意図したものです。Bluetooth meshの仕様では、全ての場合にAES-CCMを基本的な暗号化・認証関数として使用しています。AES-CCMを使用するための式は次のようになります。

ciphertext, MIC = AES-CCMk (n,m,a)

 AES-CCMへの入力は4つあります。

  • k - 128ビットのキー
  • n - 104ビットの使い捨てランダム値(nonce)
  • m - 暗号化、認証する可変長データ
  • a - 認証対象ではあるが、暗号化されていない可変長データで、「Additional Data(追加データ)」とも呼ばれます。この入力パラメータは、長さが0バイトであることも可能です。

 AES-CCMの出力は2つあります。

  • ciphertext - 暗号化された可変長データ
  • MIC - mとaのMIC(メッセージの整合性チェック)値

 図3は、Bluetooth meshのネットワーク層またはその上のトランスポート層からの平文のペイロードがAES-CCMで処理される様子を示しています。入力は暗号化キー、nonce、平文のペイロードです。暗号化されたペイロードとMICが出力されます。


図3 AES-CCMによるパケットのペイロードの暗号化と認証

ソルトの生成

 Bluetooth meshのセキュリティでは、AES-CMACを使用する「s1」というソルト生成関数が用意されています。先述したように、AES-CMACにはkとmという2つの入力パラメータがあります。ただし、ソルト生成の場合は入力パラメータmだけが変動値になります。kは常に128ビットの値「0x0000 0000 0000 0000 0000 0000 0000 0000」に設定されます。これはBluetooth meshの仕様では「ゼロ」として示されています。


図4 ソルト生成関数

 ソルト生成関数への入力は次の通りです。

m - 0でない8ビット配列またはASCII文字列

 出力は128ビットのMAC値です。s1の生成式は次のようになります。

s1(m) = AES-CMACZERO(m)

その他のセキュリティ関数

 各種キー生成等に使用されるその他のセキュリティ関数の定義については、Bluetooth meshネットワーク仕様のセクション3.8.2「Security Toolbox」を参照してください。その全てが、AES-CMACおよびソルト生成関数s1に基づいています(ソルト生成関数もAES-CMACに基づいています)。


特別監修:アリオン株式会社
アリオンは、IT/IoT製品の品質検証や規格ロゴ認証、相互接続・互換性、性能評価、比較試験といった総合的な第三者検証ソリューションを提供する製品品質検証および技術コンサルティング企業です。アリオンにはBluetooth SIGから認定を受けた、製品認証をサポートするBQC(Bluetooth認証コンサルタント)が在籍しています。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る