首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

医疗设备的数字验证

医疗设备的数字验证

作者:Microchip Technology Inc资深应用工程师 Jonathan Dillon

简介


对于带有可更换配件或一次性配件的医疗设备,证明正在使用正确的配件可能非常重要。偶尔可能会出现用错配件的情况,例如使用了为相同设备的另一种型号设计的配件,或者使用了适用于其他制造商的设备的配件,这可能会导致安全问题。同样,重复使用一次性配件也可能不卫生并导致性能下降。最关键的是,仿造配件一般达不到同等标准,因而会对系统性能造成严重影响。仿造配件导致的收入损失还可能会影响一些医疗设备的商业模式。

数字验证可提供高度的确定性,确保医疗设备配件正确且为正品,而且对设计的影响极小。当发现配件没有成功通过验证时,系统可按系统设计人员规定的方式进行响应。响应的方式可能不同,比如仅通知操作人员配件验证失败,甚至阻止系统继续运行。

数字验证


数字验证的方案多种多样,包括简单ID系统和数字签名交换等。在硬件层面,数字验证要求在系统和接受验证的配件中嵌入智能。目前许多系统已包含可用于控制验证的嵌入式处理器,配件中的处理器也可以进行修改以实现验证。即使要验证的配件不包含任何嵌入式智能,增加一个低成本和低功耗的小型单片机也相当容易。



图1

另一个物理要求是系统和配件间存在可用于交换数据的双向通信通道。可以使用系统和配件之间的现有通信通道,也可以扩展设备中的通道来实现与配件的通信。如果需要增加通信通道,则UART、I2C、SPI和单线协议(如UNI/O协议)都非常适合,因为它们需要的连接器数量有限、协议实现要求低且有广泛的设备提供硬件支持。对于某些医疗应用,RFID可能很适合,因为它不需要外部电气连接。这样配件和系统可以密封,从而简化了清洁和消毒。

简单的验证可通过传输ID执行,在接收到请求时,配件会将自己的身份告知给系统。使用此方案时,可将配件的单片机替换为存储了ID的串行EEPROM,系统将读取该ID。ID传输可防止出现某些问题,如使用了错误的配件或通过存储的数据判断出配件已被使用过,从而避免意外重复使用一次性配件。此方案的缺点在于安全级别非常低,因为仿造品仅需要重放从有效配件记录的ID。

更安全的方案是质询响应/验证及其衍生方案。在此方案中,系统向配件询问一个问题,只有可信的配件能回答该问题。可信配件能给出正确回答,而仿造品将被系统发现并适当处理。



图2

质询/响应验证的典型实现包括若干个阶段。请参见图2。

1. 系统生成一个随机数字或质询。

2. 将质询发送到配件。

3. 配件以预先安排的不明显的方式修改质询,以创建响应。

4. 配件将响应发送到系统。

5. 同时,系统保留质询的副本并进行修改以确定正确的响应。

6. 系统将正确的响应与配件的响应进行比较。如果匹配,则配件可信。

为实现安全验证,系统需要允许范围广泛的质询,以防仿造者生成可应对所有质询的可信响应查找表。响应为实时计算,而不是存储在配件中,这样可降低存储要求,并使得存储大型表对于仿造者来说不划算。

在确定性数字系统中,生成随机数字用作质询并不简单。几乎没有外部测量方式是真正随机、不可预测并均匀分布的,数量有限的可能质询减少了仿造品需存储的响应数量。一个更加稳定可靠的方法是实现伪随机数字生成算法,其中每个系统都拥有惟一的种子数,该数字很可能是经修改的系统序列号。经过验证的伪随机数字生成算法可产生不重复的数字序列,这些数字在可能的输出值范围内平均分布。输出值序列由初始化算法时使用的种子值决定,每个系统都应该有惟一的种子值,以生成惟一的数字序列。同样,算法的变量应存储在非易失性存储器中,这样在系统掉电时值仍然可以保留。这可防止算法被重新初始化并重复生成相同的数字序列。

通过加密质询或将质询传递给称为安全哈希的单向数学函数可执行质询的修改。两种方法均不明显,并且不会在响应连续输入的输出中产生任何可识别的趋势,因为可满足修改的要求。修改需要不明显,因为质询和响应均可被通信通道上的窃听行为监视。加密和安全哈希算法非常适合于这种修改,因为尝试确定修改方式需要大量的数字计算和质询-响应对。对称的基于模块的加密方式(如AES、TDES 和XTEA)适合于基于单片机的验证,因为它们只需要很少的RAM和程序空间,且计算效率高。这些特性允许您使用低成本单片机。高效意味着可执行相对较少的指令来进行加密,使单片机在完成加密后进入低功耗状态,从而减少总电流。基于模块的加密方式可一次加密多个字节并生成大小匹配的结果。这三种加密算法均属于公共领域,其安全性经过国际分析,且加密强度已获得充分认可。安全哈希算法与质询的校验和相似,其中混杂了一个秘密值,通过该值可确定计算是否由可信设备执行。哈希算法与加密不同,不是一对一映射。因此,无法根据结果恢复原始输入,因为结果可能由多组输入数据产生。适合的安全哈希算法为HMAC-SHA-1 和HMAC-SHA-256。但它们需要多很多的RAM和程序存储器才能实现,因此需要更昂贵的单片机。

对于安全哈希和加密算法,输入数据的修改方法由密钥决定。此密钥需要秘密保存,因为它决定了系统的安全性,而不是所选的加密方式。该方法称为Kerchoff原理,此原理认为,知道所采用的算法并不会使安全性失效,因为密钥决定了输入的修改方式。为确保密钥秘密保存,应将其放在无法轻易读出的系统存储器(如处理器闪存或EEPROM)中。同样,将密钥存储在单片机的片上存储器中并启用安全功能阻止其被下载可防止密钥识别。类似地,应小心管理在系统设计期间和生产环境中的密钥处理和识别,以防泄密。

一些算法支持不同大小的密钥,较大的密钥可提供增强的安全性,但代价是需要更多计算和资源来执行加密。所有加密方案都不能防止暴力攻击。利用已知的输入输出数据对,使用渐进的密钥序列对输入进行加密,直到产生匹配输出。即使对于较小的密钥,这也会需要大量计算,但随着计算能力的稳步增长,有必要采用单片机适用范围内的最大密钥,因为密钥数量随着密钥大小呈指数级增长,从而可增加暴力攻击所需的时间。密钥应随机选择,以便密钥是可能范围内的任何值,这将使暴力攻击提前尝试到密钥的可能性变低。从数学角度看,暴力攻击有可能第一次尝试就找到密钥,但考虑到密钥的可能性非常多,第一次就找到密钥几乎不可能。

可以增加生成可信响应表所需的时间,使其足以阻碍暴力攻击。这可以通过实现延时(如相邻验证之间需要间隔五秒)以及对通信的最大可接受数据传输率加以限制(限制接收质询的频率)来实现。增加质询的位数可以使表大小呈指数级增长,从而使仿造品的存储成本极高。此外,还存在质询大于密文块大小的方法。定期重新验证可防止以可信配件启动系统,然后在验证后替换为其他配件的情况。

通过同时质询多个配件可减少生成良好响应表所需的时间。但是,所需时间可能仍然很长,并且表仍然需要大量存储空间。



图3

有一种增强质询响应方案的方法,为每个可信配件都配备一个单独的加密密钥。该设置为每个配件都提供了对质询的惟一响应,但需要系统存储所有可信配件的加密密钥或能够推导出所需密钥。两种方法都需要配件有一个序列号,以便确定所需密钥,但从存储角度看,推导出所需密钥更高效。为此,系统使用特别秘密的主密钥来加密配件的序列号,如图3 所示。此运算的结果用作验证的加密密钥。必须采取措施保护主密钥,因为如果主密钥被破解,该方案将无法检测复制品。但是,只有系统需要知道该密钥,因为配件的序列号在制造配件时就为已知,而且秘密的主密钥也已确定,因而每个配件的加密密钥都是固定的。因此,只需要使用配件的序列号和加密密钥对配件进行编程,无需主密钥。

此方案的优点是,不能同时质询多个设备,因为每个设备的响应都不同。此外,即使某个经过验证的配件被破解,也只能生产与该配件具有相同序列号的复制品。系统一旦检测到,即可将此序列号列入黑名单。

增加数字验证可以使系统自动记录配件的序列号,而且如果在序列号中加入失效日期,还可以管理失效日期的撤消和实施。数字验证使用加密作为修改手段,不执行解密。但是,解密需要相似的资源和代码段,可能需要在系统和配件之间增加安全通信。单片机中的非易失性存储器可用来存储附加数据,从而将校准与配件紧密捆绑在一起,并允许记录使用情况数据。

结论


医疗配件的数字验证可提高安全性,具体体现在可预防意外用错情况、防止一次性配件的不卫生重用以及阻止仿造配件的传播,同时还保护了收入流。使用低成本和低功率的小型单片机即可轻松满足硬件要求。现有大量适合的通信通道。加密块密文需要极少的RAM,可在小型单片机上高效实现。
返回列表