低功耗蓝牙开发权威指南 之 安全

本文详细探讨了低功耗蓝牙(BLE)的安全特性,包括认证的初始认证和密码共享,重新连接时的身份验证,授权的概念,以及完整性、机密性和隐私的重要性。还介绍了BLE中的加密引擎和关键的共享机密,如LTK、STK等,强调了LTK在设备重新连接时的角色,确保连接的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安全概念

1、认证

认证是一种证明身份的方式,用来证实所连接的设备是其声称的设备,而非第三方攻击者。

认证有两种基本方法:

a、初始认证和密码共享。(如去银行开户必须出示本人身份证认证)

b、使用预先共享的密码重新认证。(如取款必须要银行卡和密码认证,证明是账户持有者就可以取款,无论是谁)

执行认证有三种不同方式:

a、在初始配对时,设备使用一个认证算法来验证连接的对端设备。该过程可能设计向一个或两个设备键入秘钥。输入的秘钥用来支持链路加密,继而可以分配那些日后使用的共享机密。只要设备保存了共享机密,即称之为“已绑定”。

b、当重新连接到以前绑定过的设备时,其中的任一设备可以向对端设备发送一个签名的命令来进行身份验证,表明它知道先前分配的共享机密。签名使用了上次绑定是彼此交换的共享机密来创建,因此不

装饰者模式是一种结构型设计模式,它允许你动态地向对象添加行为。通过将对象放入装饰器类中,可以在运行时更改对象的行为。 在咖啡馆中,装饰者模式可以用于根据顾客的选择动态地添加配料并计算价格。我们可以创建一个基础咖啡类,然后创建多个装饰器类来添加不同的配料,并且每个装饰器类都可以计算自己的价格。 下面是一个简单的示例代码: ```java // 基础咖啡类 public abstract class Coffee { protected String description = "Unknown coffee"; public String getDescription() { return description; } public abstract double cost(); } // 浓缩咖啡类 public class Espresso extends Coffee { public Espresso() { description = "Espresso"; } public double cost() { return 1.99; } } // 装饰器类,用于添加牛奶 public class Milk extends Coffee { private Coffee coffee; public Milk(Coffee coffee) { this.coffee = coffee; } public String getDescription() { return coffee.getDescription() + ", Milk"; } public double cost() { return coffee.cost() + 0.5; } } // 装饰器类,用于添加摩卡 public class Mocha extends Coffee { private Coffee coffee; public Mocha(Coffee coffee) { this.coffee = coffee; } public String getDescription() { return coffee.getDescription() + ", Mocha"; } public double cost() { return coffee.cost() + 0.8; } } // 测试代码 public static void main(String[] args) { Coffee coffee = new Espresso(); // 创建一个浓缩咖啡 coffee = new Milk(coffee); // 添加牛奶 coffee = new Mocha(coffee); // 添加摩卡 System.out.println(coffee.getDescription() + " $" + coffee.cost()); } ``` 输出结果为:`Espresso, Milk, Mocha $3.29` 在这个例子中,我们创建了一个基础咖啡类 `Coffee`,并且创建了两个装饰器类 `Milk` 和 `Mocha`。我们可以通过创建不同的装饰器来添加不同的配料。最后,我们创建了一个浓缩咖啡对象 `Espresso`,并且动态地添加了牛奶和摩卡,最终计算出了价格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值