首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BTLE配对:代码从何而来?

BTLE配对:代码从何而来?
EN

Security用户
提问于 2014-11-17 13:19:45
回答 2查看 2.5K关注 0票数 3

当尝试配对2个蓝牙设备(例如2 iPhones)时,会出现一个弹出窗口,它需要输入显示在另一个设备上的代码。我知道带外认证的概念,以及为什么它是必要的.

  1. 设备A生成一个代码。
  2. 设备A请求设备B输入代码。
  3. 设备B向用户显示弹出窗口。
  4. 设备B将输入的代码发送到设备A。
  5. 设备A将接收到的代码与先前生成的代码进行比较。

不过,我现正尝试回答以下问题:

  • 首先,代码是如何计算的?从键盘上?
  • 从设备B发送代码到设备A不是要受到被动的MITM攻击吗?这个通信是如何认证的?
EN

回答 2

Security用户

回答已采纳

发布于 2014-11-17 13:36:22

这背后的想法是,由设备A生成的代码必须单独传送到设备B。任何通信方法都可以做到:电子邮件、短信、电话等等。

回答你的问题:

首先,代码是如何计算的?从键盘上?

这取决于设备的软件。一些供应商将产生一个随机的4位引脚。一些将生成一个密码。这取决于供应商如何产生它,以及他们想要有多少熵。TeamViewer在其远程桌面软件中使用这种类型的方法。它们允许用户选择密码的长度和类型。使用密钥对来生成密码似乎有些过火,而且它们很可能使用某种类型的伪随机数生成器。

从设备B发送代码到设备A不是要受到被动的MITM攻击吗?这个通信是如何认证的?

这取决于如何/是否保护通信。有可能使用安全协议加密设备之间的通信。这可以是一个标准化的协议,比如SSL/TLS,也可以是专有的。只要以某种方式保护通信,密码就会被加密发送到设备,并且不太可能受到MitM攻击。

如果密码被清晰地发送给每个人看,那么是的,我会说MitM攻击是非常可能的。

票数 1
EN

Security用户

发布于 2016-03-08 08:40:51

蓝牙4.0配对依赖于两个设备都同意相同的128位“临时键”。在大多数实际情况下,密钥是从密码生成的(零扩展)。根据规范,密码是伪随机生成的.

(所有来自https://www.bluetooth.com/specifications/adopted-specifications的引号)

Passkey条目STK生成方法使用用户在设备之间从带外传递的6个数字数字。一个6位数字随机生成的密码实现了大约20位的熵。

该规范还确定哪个设备生成(并显示)密钥,以及哪个设备需要用户输入。

蓝牙配对协议使用“比特承诺”方案,旨在防止MitM攻击。基本上,这两个设备根据多个参数交换“确认值”,包括临时密钥(密码)和私有随机数。在稍后阶段公开私有随机数,证明设备在处理开始时确实知道密码。

passkey入口方法提供了防止主动“中间人”攻击的保护措施,因为在每次调用该方法时,活动的中间人将获得成功的概率为0.000001。

该方案被发现存在根本缺陷,允许活跃的MITM攻击者在飞行中确定密码,并在配对前假装它是已知的。有关该漏洞的详细描述可以在这里找到:https://eprint.iacr.org/2013/309.pdf

票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/73031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档