1. 物联网中身份信息的重要性
设备身份信息是物联网中最重要的安全挑战之一。如果身份管理错误,则任何人都可以访问你所有的设备,风险很大。
正确使用可能会稍微增加设备的生产成本,但是如果采用较弱的身份识别方法,消费者会对你的安全能力失去信心,同时也会损害你的品牌影响力。
2. 案例:
几年前,我们对特斯拉Model S进行了逆向工程。它使用VPN连接回特斯拉运营中心(Mothership)。
每辆汽车都获得了唯一的VPN密钥和证书。每个VPN证书都由汽车的VIN –车辆识别号识别。由于我们没有密钥或证书,因此无法以连接到另一台车的VPN。
一旦连接到VPN后,各种客户端将连接到Web服务器,发送和接收数据以及固件更新。
目的是Web客户端使用与VPN相同的标识符发出的请求。
我们很快发现,VPN身份与Web客户端使用的身份信息之间没有链接。我们可以为这些更改VIN。
尽管VPN通道是使用唯一的,通过加密保证的身份信息,但Web请求并非如此--它们只是使用短的字母数字字符串。一个简短的字母数字字符串,位于许多车辆的仪表板上,在任何方式看来都不是机密信息。
我们将我们的VIN更改为另一个Tesla VIN,并且可能会完全伪装成另一辆车。
这里有明显的问题:非机密信息可以轻松被克隆用作身份信息。
(顺便说一句,VPN通道具有强身份识别性,但这对我们而言并不重要-Web服务器并未意识到这一点。当弱身份包裹在强身份中时,我们称为“身份验证解耦”)。
3. 其他不良身份信息识别方法
设备经常会使用MAC地址来标识自己,它是设备独有的。因此,通过Wi-Fi或蓝牙连接的设备通常会使用其MAC地址将自己标识到云平台。
为什么?因为这样做很便宜。设备上已经有一条独特的信息-无需在工厂生成信息。物联网开发人员正在寻找该设备特有的东西,以便从其他设备中识别出来。他们认为无法检查身份是否真实。
4. 通过MAC识别
在此示例中,设备与ID15-6e-f3-79-a0-12一起发出请求,并说“嗨,我是设备15-6e-f3-79-a0-12”,平台会说“是的,嗨,很酷,是你”。
问题是作为攻击者,我们只能克隆该身份。MAC地址通常只是在本地网络上广播或打印在设备本身上。
如果我们无法访问设备或本地网络怎么办?我们可以通过暴力攻击找到有效的标识符吗?
MAC为6个八位位组,即2 ^ 48。当然有很多排列方式吗?好吧,那就是如果我们使用所有的48位。
如你所知,MAC地址的前三个字节称为OUI。组织上唯一的标识符。这意味着我们已经在该标识符中丢失了三个字节的随机性。因此,它归结为最后三个字节。
我们从2 ^ 48(这个数字很大)下降到2 ^ 24或约1,680万个ID。
我们经常发现,仅使用了最后两个字节,所以现在我们只有2 ^ 16,即约65,000个ID,这些通常也顺序使用。
如果我能找到一种方法来确定其中哪些ID有效,那么我们也许能够像这些设备一样连接到平台并进行恶意操作。
5. 设备枚举
平台上对有效设备和无效设备的响应之间的差异使你可以确定存在哪些MAC地址。例如,如果我们连接到平台并说“嗨,我是设备15-6e-f3-79-a0-12”,而平台回复“ 你好,15-6e-f3-79-a0-12”,然后就知道设备是真实的。
如果我说我是设备15-6e-f3-79-bd-fa,并且服务答复“我不知道你是谁”,那么我们知道该设备不是真实的,并且没有连接到平台–枚举漏洞
特斯拉可以做到这一点。VIN最有名,只有很少一部分是顺序的。我们可以轻松地在平台上找到其他有效的车辆。
6. 改善身份
理想情况下,我们希望设备不具有容易被访问,容易枚举或容易被推断的信息(例如顺序串行或MAC)的身份。我们正在寻找一种可以密码保证的身份。我们可以挑战一些有难度的事情。我们可以对设备说“用你的私钥签名这部分数据,然后我会信任你”。
它从不传输该私钥,但是我们拥有相应的公钥,因此可以使用这些私钥对该消息进行签名,然后进行验证。
无法再从公开可见的信息中克隆身份-因此我们已解决了部分问题。
7. 提取私钥
这就是硬件安全性的重要所在。私钥需要安全地存储在设备上,否则很容易受到损害。
通常,密钥只是作为文件存储在设备上。如果通过串行或网络获得外壳,我们可以读出这些密钥。
有时我们无法获得外壳,因此我们会回退到使用JTAG或碎片化内存提取。这是使用PCB上的JTAG端口进行连接的示例:
尽管可以通过加密保护身份信息,但仍可以通过物理访问来克隆它。
我们该如何解决?对于某些设备,这可能不是问题。安装在房屋内的IP摄像机可能不需要进一步保护密钥和证书。全市范围内的智能照明系统可能会将节点放置在攻击者可及的范围内。
安全元件可用于将密钥固定在安全的黑匣子中。这个黑匣子可以使用密钥对数据进行加密和签名,但是我们永远无法提取密钥。现在,克隆身份变得非常具有挑战性。
不过,我们仍然可以从设备上移除安全元件,并在其他地方使用它。
8. 密钥分配
你如何以及何时安全地获取IoT设备的关键材料?
你是否将钥匙发送到远东的工厂?这会增加成本,特别是因为可能必须在线上接通设备的电源才能加载密钥
你如何确保出厂时钥匙的完整性?
当你将密钥加载到生产线上的系统时,如何确保密钥的完整性?许多物联网设备制造商在设备安全性方面苦苦挣扎,更不用说接收和加载密钥所需的自己的IT系统的安全性了。
你怎么知道你的制造商实际上正确地加载了密钥,而不仅仅是在每个设备上闪烁相同的密钥?我们看了一个摄像头系统,在配置脚本中检查不当可能导致多个摄像头以相同的身份离开!
你怎么知道有人没有复制你的密钥?内幕攻击还是其他?
其他选项包括让用户在首次使用时配置设备,也许使用智能手机作为传递密钥的途径,但是拦截或篡改该配置过程是一个现实问题。
9. 结论
如果没有加密的声音源和身份存储,IoT设备尤其容易受到其云平台的危害。
通常,无需其他身份验证控制即可发现其他设备并连接到它们。
当该设备是照相机,麦克风或收集其他敏感数据时,用户对该设备的信任可能会受到严重破坏。
声明:本文来自汽车信息安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。