2016-05-23 4 views
2

センサーノード間でやり取りされるメッセージを暗号化します。Contiki/Coojaシミュレータでメッセージの暗号化を有効にする方法は?

Tmote Skyなどの実際のハードウェアセンサーノードにアクセスしなくても、それを実行できますか?

ソフトウェア暗号化/ブロック暗号は、Tmote Skyノードでのみシミュレートできますか?ハードウェア暗号化アルゴリズムを使用する必要がある場合は、実際のセンサーノードを用意する必要がありますか?

また、対称暗号化では実際のセンサーノードが必要ですが、非対称暗号化もエミュレートされたノードでも動作することがあります。

すべてのドキュメントまたは説明が参考になります。

答えて

0

llsecはセキュリティスタックです。例えば、反リプレイllsec_driverはリプレイ攻撃を避ける。
純粋な暗号化(論理セキュリティなし)については、ハードウェアブースト(一部のプラットフォーム用)(暗号化段落でcontiki-os blogのチェック)ですべてのプラットフォーム(skymoteだけでなく)でソフトウェア暗号化を利用できます。
クワはエミュレータであり、シミュレータではありません(Cooja in depth)。したがって、ハードウェアからすべてをシミュレートします。したがって、テストを行うために実際のモットは必要ありません。
対称および非対称暗号化では、論理的な観点で違いがあります。しかし、ハードウェア上でも同じです。キーを表すビットを送信します。なぜエミュレーションで違うのか分かりません。
ハードウェア暗号化の場合、moteがサポートしている場合は可能です。そうでない場合はできません。 (エミュレートされているかどうか)。
お役に立てば幸いです。

1

ContikiにはLLSEC(リンクレイヤセキュリティ)レイヤがあります。このレイヤーは、ハードウェアに直接アクセスするのではなく、一般的なAESドライバAPIを使用するため、ハードウェアに依存しません。 Contikiには複数のAESドライバが実装されています。ソフトウェア専用のバージョンと、CC2420(Tmote Skyの無線チップ)を含むハードウェアアクセラレーションバージョンがいくつかあります。

Coojaの問題点は、CC2420のHWアクセラレーション機能がmspsimエミュレータで実装されていないことです。実際のTmote Skyノードとは対照的に、Hoの加速はCoojaでは機能しません。明示的な構成で、ソフトウェアベースのAESドライバを選択する必要があります。

#define AES_128_CONF aes_128_driver 

一番下の行は、AES暗号化がCoojaに動作しますが、遅くなるということです。今

LLSECの構成例

- そこに少しLLSECドキュメントは周りですが、基本的なセットアップは、この README fileで説明されています。有効にするために、あなたの project_conf.hにこれらの行を追加します

noncoresec

#undef LLSEC802154_CONF_ENABLED 
#define LLSEC802154_CONF_ENABLED   1 
#undef NETSTACK_CONF_FRAMER 
#define NETSTACK_CONF_FRAMER    noncoresec_framer 
#undef NETSTACK_CONF_LLSEC 
#define NETSTACK_CONF_LLSEC    noncoresec_driver 
#undef NONCORESEC_CONF_SEC_LVL 
#define NONCORESEC_CONF_SEC_LVL   1 

NONCORESEC_CONF_SEC_LVLは、MICの長さ、および 暗号化が有効かどうかを定義します。

重要PARAMTERは、ここでは0x0から0x07のに数値で、IEEE 802.15.4フレーマセキュリティレベルに対応する、NONCORESEC_CONF_SEC_LVLあります。

は、暗号化を有効に0x4のにそれを設定するには:

#define NONCORESEC_CONF_SEC_LVL 0x4 

他の値は次のとおりです。

  • は0x00ませセキュリティデータは暗号化されません。データの真正性は検証されません。
  • 0x01 AES-CBC-MAC-32 MIC-32データは暗号化されていません。データの真正性が検証されます。
  • 0x02 AES-CBC-MAC-64 MIC-64データは暗号化されていません。データの真正性が検証されます。
  • 0x03 AES-CBC-MAC-128 MIC-128データは暗号化されません。データの真正性が検証されます。
  • 0x04 AES-CTR ENCデータが暗号化されています。データの真正性は検証されません。
  • 0x05 AES-CCM-32 AES-CCM-32データが暗号化されています。データの真正性が検証されます。
  • 0x06 AES-CCM-64 AES-CCM-64データが暗号化されています。データの真正性が検証されます。
  • 0x07 AES-CCM-128 AES-CCM-128データが暗号化されています。データの真正性が検証されます。

は、暗号化と認証の両方を有効に0x5、0x6にまたはを0x7にレベルを設定します。

もう1つの有用な設定パラメータは、ネットワーク全体の共有鍵NONCORESEC_CONF_KEYです。

その他の質問については、ハードウェアアクセラレーションのサポートはありませんセンサノードでの非対称暗号化。また、メインラインのContikiには、ソフトウェアベースの実装はありません。このOSでは、リンク層のセキュリティとは対照的に、エンドツーエンドのセキュリティのサポートはまだありません。 です。ContikiのDTLSとIPSECを開発したいくつかのプロジェクトですが、これはこの答えを超えています。

関連する問題