蓝牙密钥如何保护免受中间人攻击

8

我正在阅读《Bluetooth低功耗:开发者手册》,对于MITM的保护感到困惑。

该书指出,在交换配对信息之后,双方都会生成一个随机数。随着随机数的生成,确认值也被计算出来。然后,确认值在双方之间进行交换,接着是随机数的揭示。

在配对过程中,交换的消息就像这样。

[Apr 25 18:04:43.919]  [SMP Send]  LE SMP Pairing Request Command
[Apr 25 16:53:09.005]  [SMP Receive]  LE SMP Pairing Response Command 
[Apr 25 16:53:09.019]  [SMP Send]  LE SMP Pairing Confirm Command 
[Apr 25 16:53:14.016]  [SMP Receive]  LE SMP Pairing Confirm Command 
[Apr 25 16:53:14.017]  [SMP Send]  LE SMP Pairing Random Command 
[Apr 25 16:53:14.076]  [SMP Receive]  LE SMP Pairing Random Command 

这本书声称这可以防止中间人攻击,因为中间人需要猜测2^128个随机数来计算确认值。
我的问题是,这如何有助于防止中间人攻击?我的意思是,如果我是中间人,我只需将确认号从一端传递到另一端,甚至不需要进行计算。
我确定我肯定漏掉了什么。

我为只提供链接而道歉,但很难对视频进行简要概括:http://www.wimp.com/howencryption/ - Jeremy J Starcher
@JeremyJStarcher:从该过程的描述(随机数在最后揭示)来看,它并不像是Diffie-Hellman密钥交换。 - Perseids
2
相关链接:https://dev59.com/uWMl5IYBdhLWcg3w_bHj#18087908 - Perseids
这些时间戳不是按顺序排列的。 - guest
时间戳可能是日志工具中的一个错误。这些日志是直接从日志工具中复制的。我认为这也是根据规范设计的顺序。 - Negative Zero
2个回答

1
你没有理解什么是中间人攻击。
仅仅将从一个设备接收到的数据传递给另一个设备并不意味着你是中间人攻击者,只是一个中间人而已。
要进行“攻击”,你必须在传递数据之前实际上对数据进行修改,而不被接收方注意到。理想情况下,你不仅会破坏通信,还会进行有意义的更改(例如,用你的银行账户号码替换目标账户号码,同时保留发送者的签名,这样你就可以得到钱而不是原始发送者)。
如果你在拦截(发送之前)的数据上没有进行任何修改,那么你只是一个中转站

1
攻击并不一定是意图;MITM可能只是对数据感兴趣;数据可能非常重要,没有必要进行攻击/修改,因此这取决于情况;仅揭示数据本身就足够具有破坏性!!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接