web-dev-qa-db-ja.com

無線制御デバイスと安全に通信するにはどうすればよいですか?

私が無線で制御されているドローンを持っているとしましょう。私を除いて、誰もそれを制御してデータを取得できないようにしたいと思います。

データを暗号で暗号化し、暗号化されたデータのみを送受信することで、データを保護する問題を解決できました。ただし、ドローンの制御には役立ちません。たとえば、ドローンを右に移動するように指示した場合、他の誰かがそのコマンドを傍受して、まったく同じデータを再送信するだけで、望ましくない瞬間に再度実行できませんか?

どうすればこれを防ぐことができますか?また、このソリューションは有効ですが、パケット損失はわずかでもありますか?

5
user50213

ドローンを制御する方法は一般に2つあります。ラジオ受信機とデータトランシーバー(従来はテレメトリリンク)。これは、デバイス、オートパイロットハードウェアなどによって実際に異なります。すべてにWiFiを使用するものさえあります。レシーバーは通常、受信専用であり、受信した信号を [〜#〜] ppm [〜#〜] または [〜#〜] pwm [〜#〜] 信号に変換しますトランシーバー、スピードコントローラーなど。通常、トランシーバーはデータをシリアルに変換するか、 I²C などの別のデータバスに接続します。

しかし、オートパイロットへの受信機とテレメトリ無線の両方を備えた従来のドローンがあるとしましょう。両方のセキュリティに対処する必要があるかもしれません。あなたは暗号化について言及し、これは機密性を提供しますが、あなたが本当に求めているのは認証です。コマンドを送信する無線が本当に自分のものであることをどのように確認できますか?

ラジオ受信機は通常、ガレージのドアに似たペアリング方法を使用します。この方法では、使用前にキーまたはシーケンスが交換されます。このようにして、送信機(パイロットによるハンドヘルドユニット)は、ドローン内の受信機または複数の受信機とペアになります。このペアリングを実現する方法はいくつかあります。多くのプロトコルとペアリング方法をサポートする Deviation のソースコードを見ることができます。これらは、しばしば リプレイ攻撃 に対して脆弱です。

トランシーバーにはさまざまな構成があります。以前は、多くの場合 [〜#〜] fhss [〜#〜] を使用して通信を「保護」していました。より現実的には、FHSSは干渉を回避します。いくつかの概念実証の引き継ぎ方法が デモンストレーション済み になっています。無線通信を保護するための一般的な常識は、TLSなどの相互に認証されたプロトコルを使用することです。各プロトコルには独自のソリューションが必要ですが、私は認証に焦点を当てますが、そのためには暗号化を行う必要があります。確かに、事前共有キーはあなたのソリューションを満たすかもしれません。

ただし、干渉を回避するためにできることはほとんどなく、通信が失われたり重大な干渉が発生したりした場合のフェイルセーフが必要です。レシーバーは通常、必要な帯域幅が非常に少なく、多くのレシーバーは同じスペースで安全に動作できます。したがって、意図しない干渉があっても、問題にはならない場合があります。データトランシーバーとWiFiベースのユニットは、干渉の影響をはるかに受けやすく、通信が途絶えるリスクがあります。

4
mike_b