假设我有一架通过无线电控制的无人机,我想确保除了我之外没有其他人可以控制和获取数据。
我可以用密码加密数据,只来回发送加密数据,这解决了保护数据的问题。然而,它并不能帮助我控制我的无人机。例如,如果我告诉我的无人机向右移动,其他人不能通过重新发送完全相同的数据来拦截该命令并在不希望的时刻再次执行它吗?
我怎样才能防止这种情况?此外,这种解决方案在丢包量不小的情况下仍然有效吗?
假设我有一架通过无线电控制的无人机,我想确保除了我之外没有其他人可以控制和获取数据。
我可以用密码加密数据,只来回发送加密数据,这解决了保护数据的问题。然而,它并不能帮助我控制我的无人机。例如,如果我告诉我的无人机向右移动,其他人不能通过重新发送完全相同的数据来拦截该命令并在不希望的时刻再次执行它吗?
我怎样才能防止这种情况?此外,这种解决方案在丢包量不小的情况下仍然有效吗?
通常有两种控制无人机的方法。无线电接收器和数据收发器(传统的遥测链路)。这确实因设备、自动驾驶仪硬件等而异。有些人甚至将 WiFi 用于一切。接收器通常是仅接收的,并将接收到的信号转换为PPM或PWM信号,以供速度控制器、伺服系统等使用。收发器通常将数据转换为串行数据或可能连接到其他数据总线,例如I²C。
但是,假设您有一架传统的无人机,其自动驾驶仪具有接收器和遥测无线电,您可能需要解决两者的安全问题。您提到加密,这提供了机密性,但我认为您真正追求的是身份验证。你如何确保发送命令的无线电真的是你的?
无线电接收器通常使用配对方法,类似于车库门,在使用前交换密钥或序列。通过这种方式,发射器(飞行员的手持单元)与无人机中的一个或多个接收器配对。这种配对有多种实现方式,你可以查看Deviation的源代码,它支持多种协议和配对方法。这些经常容易受到重放攻击。
收发器有各种配置。过去,许多人使用FHSS来“保护”通信。更实际地,FHSS 提供了干扰避免。一些概念证明接管方法已经得到证明。这里保护无线电通信的一些常识性事情是使用相互验证的协议,例如 TLS。每个协议都需要自己的解决方案,但我会专注于身份验证,这可能涉及加密来实现。当然,预共享密钥可能会满足您的解决方案。
但是,您几乎无法避免干扰,并且应该在通信丢失或发生严重干扰时采取一些故障保护措施。接收器通常只需要很少的带宽,而且许多接收器通常可以安全地在同一空间内运行。因此,即使有意外干扰,也可能不是问题。数据收发器和基于 WiFi 的单元将更容易受到干扰,并面临通信中断的风险。
该解决方案是一个时间敏感的进化密钥。没有相同的子区间以相同的方式加密两次。另一种看待它的方式是,整个飞行时间是具有数据传输速率的间隔。速率乘以时间得出总位数。例如,如果它需要每秒 1 GB 的加密传输数据来控制无人机,并且飞行时间是 480 小时,那么加密飞行控制数据的密钥实际上会随着无人机飞行而被消耗。在这种特殊情况下,比特流必须是 172.8 万 GB 的随机数据,在起飞前被记录为单个流密钥。传输中引入的熵防止了模仿者的黑客攻击,因为没有两秒的飞行具有相同的随机比特流调制。但是,这是军事级别的情报。不是你常见的遥控玩具。这些无人机可以携带任何东西,包括核武器。