尽管设置了 rfcomm 安全设置,Bluez hcidump 仍然清晰
Bluez hcidump is clear despite rfcomm security set
检查以下情况:
我有两个使用 libbluetooth (Bluez) 的 RFCOMM 程序(slave 和 master),分别设置如下:
opt |= RFCOMM_LM;
opt |= RFCOMM_LM_AUTH;
opt |= RFCOMM_LM_ENCRYPT;
opt |= RFCOMM_LM_SECURE;
opt |= RFCOMM_LM;
opt |= RFCOMM_LM_MASTER;
opt |= RFCOMM_LM_AUTH;
opt |= RFCOMM_LM_ENCRYPT;
opt |= RFCOMM_LM_SECURE;
Hciconfig 报告两个适配器都启用了加密和身份验证:
dev@ackbar:$ hciconfig hci0
hci0: 类型:BR/EDR 总线:USB
BD 地址:01:1A:07:00:47:0C ACL MTU:310:10 SCO MTU:64:8
UP 运行 PSCAN 授权加密
RX bytes:10187160 acl:66879 sco:0 events:180556 errors:0
TX bytes:1012442 acl:57039 sco:0 commands:6787 errors:0
dev@ackbar:$ hciconfig hci1
hci1:类型:BR/EDR总线:USB
BD 地址:01:1A:07:00:47:0D ACL MTU:310:10 SCO MTU:64:8
UP 运行 PSCAN 授权加密
RX bytes:2174821 acl:6303221 sco:0 events:100 errors:0
TX bytes:51000 acl:54982 sco:0 commands:3458 errors:0
Wireshark 和 hcidump 都报告两个适配器之间的通信是明文的。我希望安全性通过 encrypted/scrambled 有效负载是显而易见的,类似于查看 Wireshark 中的 SSL/TLS 流量。
Recv: 11111111 应该是: 348djwfoisdfg78sdfsdifods2#@$%^&*ifgyuh
根据原始模式下的 hcidump:
> . E . . . . @ . . . . . 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
这引出了问题:
设置的选项是否也被保密?或者 kernel/OS 在解密后通过(稍后的)挂钩以明文形式发送重组数据。
有没有更好的方法来验证这一点 - 显然使用工具的传统方法是不够的(而且我无法访问硬件嗅探器)? (至少正在使用 bt-agent 检查引脚)。
根据 Whosebug 上的这个回答 (Does Bluetooth encrypt data?) - 我相信数据已被解密并且 hcidump 在该操作发生后以明文形式看到它。
验证这一点的唯一方法是使用昂贵且受限的工具(或可能是软件定义的无线电,例如 ubertooth)。
检查以下情况:
我有两个使用 libbluetooth (Bluez) 的 RFCOMM 程序(slave 和 master),分别设置如下:
opt |= RFCOMM_LM; opt |= RFCOMM_LM_AUTH; opt |= RFCOMM_LM_ENCRYPT; opt |= RFCOMM_LM_SECURE; opt |= RFCOMM_LM; opt |= RFCOMM_LM_MASTER; opt |= RFCOMM_LM_AUTH; opt |= RFCOMM_LM_ENCRYPT; opt |= RFCOMM_LM_SECURE;
Hciconfig 报告两个适配器都启用了加密和身份验证:
dev@ackbar:$ hciconfig hci0
hci0: 类型:BR/EDR 总线:USB BD 地址:01:1A:07:00:47:0C ACL MTU:310:10 SCO MTU:64:8 UP 运行 PSCAN 授权加密 RX bytes:10187160 acl:66879 sco:0 events:180556 errors:0 TX bytes:1012442 acl:57039 sco:0 commands:6787 errors:0
dev@ackbar:$ hciconfig hci1
hci1:类型:BR/EDR总线:USB BD 地址:01:1A:07:00:47:0D ACL MTU:310:10 SCO MTU:64:8 UP 运行 PSCAN 授权加密 RX bytes:2174821 acl:6303221 sco:0 events:100 errors:0 TX bytes:51000 acl:54982 sco:0 commands:3458 errors:0
Wireshark 和 hcidump 都报告两个适配器之间的通信是明文的。我希望安全性通过 encrypted/scrambled 有效负载是显而易见的,类似于查看 Wireshark 中的 SSL/TLS 流量。
Recv: 11111111 应该是: 348djwfoisdfg78sdfsdifods2#@$%^&*ifgyuh
根据原始模式下的 hcidump:
> . E . . . . @ . . . . . 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
这引出了问题:
设置的选项是否也被保密?或者 kernel/OS 在解密后通过(稍后的)挂钩以明文形式发送重组数据。
有没有更好的方法来验证这一点 - 显然使用工具的传统方法是不够的(而且我无法访问硬件嗅探器)? (至少正在使用 bt-agent 检查引脚)。
根据 Whosebug 上的这个回答 (Does Bluetooth encrypt data?) - 我相信数据已被解密并且 hcidump 在该操作发生后以明文形式看到它。
验证这一点的唯一方法是使用昂贵且受限的工具(或可能是软件定义的无线电,例如 ubertooth)。