防止被动窃听
假设在一次会议中,交谈中有两个人突然切换到与会的其他人难以听懂的他们的母语,那么,将会发生什么情况?事实上通过这一方式,他们让这一部分对话免受被动窃听。类似地,BLE设备使用共享密钥对链路进行加密。因此,没有秘钥的设备将无法理解链路加密之后设备之间的对话。保护强度取决于钥匙强度–即获取或猜测钥匙的难易程度。
BLE(4.2或更高版本)使用符合美国联邦信息处理标准(FIPS)的Elliptic Curve Diffie-Hellman(ECDH)算法来生成和交换密钥。之后,这些密钥用于生成其他密钥,也称为DHKey共享密钥。再之后,可通过DHKey共享密钥对链路进行加密或生成另一组密钥对链路进行加密。
在BLE设备中,这一安全通信的基础是在配对过程中建立的。配对过程分为三个阶段:
在第1阶段,配对过程中涉及的两台设备发送配对请求和响应以及配对参数,其中包括设备的性能和安全要求。在此之后,两台设备将根据交换参数的值选择配对方式。
第2阶段涉及设备身份验证和链路加密。该阶段建立的安全性环境可确保设备不受被动窃听和MITM攻击。
如前所述,为防止被动窃听,BLE使用符合FIPS标准的ECDH算法,使设备能够在不安全的信道上建立共享密钥,然后使用该秘钥或其衍生秘钥对链路进行加密。
为便于理解ECDH算法的工作原理,我们给出了非常经典的Alice和Bob示例(参见图5)。Alice和Bob希望建立一个安全的通信链路,然而他们正在通信的信道正在被第三方Eve窃听。
1.Alice和Bob生成了他们自己的私钥和公钥,其中私钥d是从[1到n-1]的随机数,并通过将d乘以G, dG获得公钥Q。
假设Alice的私钥和公钥是dA和QA = dAG,Bob的私钥和公钥分别是dB和QB = dBG。
2.Alice和Bob在不安全的频道上互相分享他们的公钥QA和QB,而该信道正在被Eva窃听。Eve可以拦截QA和QB,但她无法确定私钥。
3.Alice使用自己的私钥QBdA计算共享密钥,Bob则使用QAdB计算共享密钥。请注意,共享密钥是相同的。
S = QBdA = (dBG)dA = (dAQ)dB = QAdB
4.现在,Alice和Bob可使用该共享密钥保护其通信,或使用该共享密钥生成另一个密钥。而Eve则无法计算该密钥,因为她仅仅知道QA和QB。
以上示例假设Alice和Bob都使用相同的域参数。在LE Secure(低功耗安全)连接的情况下,两台设备默认遵循FIPS标准的P-256 ECDH机制。
一旦两台BLE设备成功生成共享密钥,它们就会生成长期密钥(LTK)和MAC(介质访问控制)密钥。MAC密钥用于确认生成的密钥是否正确。成功确认后,两台设备都将使用LTK对链路进行加密。请注意,该LTK永远不会通过无线共享,因此被动窃听者将无法计算LTK,窃听者也将无法拦截两台设备之间交换的信息。
虽然ECDH提供的安全性保护可防止被动窃听,但却并不能阻止设备免受MITM攻击。为防止MITM攻击,基于设备的I / O功能,BLE使用身份验证作为配对过程第2阶段的一部分。
关于作者:
Pushek Madaan现任职于赛普拉斯半导体印度公司,担任高级应用工程师。他主要使用C语言和汇编语言设计用于模拟和数字威廉希尔官方网站
的嵌入式系统应用,同时使用C#开发GUI(图形用户界面)。
Sachin Gupta现任职于赛普拉斯半导体公司物联网业务部,担任资深产品营销工程师。他拥有德里洲际大学(Guru Gobind Singh Indraprastha University)电子与通信学士学位。Sachin在SoC应用开发和产品营销方面拥有9年的经验。
防止被动窃听
假设在一次会议中,交谈中有两个人突然切换到与会的其他人难以听懂的他们的母语,那么,将会发生什么情况?事实上通过这一方式,他们让这一部分对话免受被动窃听。类似地,BLE设备使用共享密钥对链路进行加密。因此,没有秘钥的设备将无法理解链路加密之后设备之间的对话。保护强度取决于钥匙强度–即获取或猜测钥匙的难易程度。
BLE(4.2或更高版本)使用符合美国联邦信息处理标准(FIPS)的Elliptic Curve Diffie-Hellman(ECDH)算法来生成和交换密钥。之后,这些密钥用于生成其他密钥,也称为DHKey共享密钥。再之后,可通过DHKey共享密钥对链路进行加密或生成另一组密钥对链路进行加密。
在BLE设备中,这一安全通信的基础是在配对过程中建立的。配对过程分为三个阶段:
在第1阶段,配对过程中涉及的两台设备发送配对请求和响应以及配对参数,其中包括设备的性能和安全要求。在此之后,两台设备将根据交换参数的值选择配对方式。
第2阶段涉及设备身份验证和链路加密。该阶段建立的安全性环境可确保设备不受被动窃听和MITM攻击。
如前所述,为防止被动窃听,BLE使用符合FIPS标准的ECDH算法,使设备能够在不安全的信道上建立共享密钥,然后使用该秘钥或其衍生秘钥对链路进行加密。
为便于理解ECDH算法的工作原理,我们给出了非常经典的Alice和Bob示例(参见图5)。Alice和Bob希望建立一个安全的通信链路,然而他们正在通信的信道正在被第三方Eve窃听。
1.Alice和Bob生成了他们自己的私钥和公钥,其中私钥d是从[1到n-1]的随机数,并通过将d乘以G, dG获得公钥Q。
假设Alice的私钥和公钥是dA和QA = dAG,Bob的私钥和公钥分别是dB和QB = dBG。
2.Alice和Bob在不安全的频道上互相分享他们的公钥QA和QB,而该信道正在被Eva窃听。Eve可以拦截QA和QB,但她无法确定私钥。
3.Alice使用自己的私钥QBdA计算共享密钥,Bob则使用QAdB计算共享密钥。请注意,共享密钥是相同的。
S = QBdA = (dBG)dA = (dAQ)dB = QAdB
4.现在,Alice和Bob可使用该共享密钥保护其通信,或使用该共享密钥生成另一个密钥。而Eve则无法计算该密钥,因为她仅仅知道QA和QB。
以上示例假设Alice和Bob都使用相同的域参数。在LE Secure(低功耗安全)连接的情况下,两台设备默认遵循FIPS标准的P-256 ECDH机制。
一旦两台BLE设备成功生成共享密钥,它们就会生成长期密钥(LTK)和MAC(介质访问控制)密钥。MAC密钥用于确认生成的密钥是否正确。成功确认后,两台设备都将使用LTK对链路进行加密。请注意,该LTK永远不会通过无线共享,因此被动窃听者将无法计算LTK,窃听者也将无法拦截两台设备之间交换的信息。
虽然ECDH提供的安全性保护可防止被动窃听,但却并不能阻止设备免受MITM攻击。为防止MITM攻击,基于设备的I / O功能,BLE使用身份验证作为配对过程第2阶段的一部分。
关于作者:
Pushek Madaan现任职于赛普拉斯半导体印度公司,担任高级应用工程师。他主要使用C语言和汇编语言设计用于模拟和数字威廉希尔官方网站
的嵌入式系统应用,同时使用C#开发GUI(图形用户界面)。
Sachin Gupta现任职于赛普拉斯半导体公司物联网业务部,担任资深产品营销工程师。他拥有德里洲际大学(Guru Gobind Singh Indraprastha University)电子与通信学士学位。Sachin在SoC应用开发和产品营销方面拥有9年的经验。
举报