CN111343613B - 在过程控制系统中建立安全的低能量无线通信的方法和装置 - Google Patents
在过程控制系统中建立安全的低能量无线通信的方法和装置 Download PDFInfo
- Publication number
- CN111343613B CN111343613B CN201911311931.2A CN201911311931A CN111343613B CN 111343613 B CN111343613 B CN 111343613B CN 201911311931 A CN201911311931 A CN 201911311931A CN 111343613 B CN111343613 B CN 111343613B
- Authority
- CN
- China
- Prior art keywords
- field device
- message
- key
- remote device
- ble
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 303
- 238000000034 method Methods 0.000 title claims abstract description 197
- 238000004886 process control Methods 0.000 title claims abstract description 34
- 230000008569 process Effects 0.000 claims description 110
- 238000012795 verification Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 19
- 239000012530 fluid Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000009795 derivation Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000012369 In process control Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010965 in-process control Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002985 plastic film Substances 0.000 description 1
- 229920006255 plastic film Polymers 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1475—Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/40—Security arrangements using identity modules
- H04W12/47—Security arrangements using identity modules using near field communication [NFC] or radio frequency identification [RFID] modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Selective Calling Equipment (AREA)
Abstract
公开了在过程控制系统中建立安全的低能量无线通信的方法和装置。示例性现场设备包括蓝牙低能量(BLE)接口,用于通过未配对的BLE连接从远程设备接收第一初始化消息。第一初始化消息包括明文消息,该明文消息包含认证内容。认证内容基于可用于远程设备的私有认证令牌使用中间件来生成。现场设备还包括BLE消息分析器,用于基于认证内容使用由现场设备存储的认证令牌来验证明文消息。
Description
相关申请
本申请要求于2018年12月18日提交的美国临时申请号No.62/781,355的优先权,通过引用方式将该临时申请的全部内容并入本文。
技术领域
本公开内容总体上涉及过程控制系统,更具体地,涉及在过程控制系统中建立安全的低能量无线通信的方法和装置。
背景技术
实现工业通信协议以管理与位于工业过程控制环境中的现场设备以及其它类型的过程装备相关联的工业过程控制操作。这种工业通信协议的示例包括高速通道可寻址远程换能器(HART)通信协议、PROFIBUS通信协议、FOUNDATION Fieldbus通信协议、MODBUS通信协议等。
实现蓝牙低能量(BLE)通信协议作为无线个域网通信协议,该通信协议促进BLE兼容设备之间的无线通信。这种BLE兼容设备的示例通常包括台式计算机、膝上型计算机、平板设备、智能手机和个人数字助理(PDA)。常规地,根据BLE通信协议来格式化的数据与根据上述工业通信协议来格式化的数据不兼容。
发明内容
公开了在过程控制系统中建立安全的低能量无线通信的方法和装置。一种示例性现场设备包括蓝牙低能量(BLE)接口,用于通过未配对的BLE连接从远程设备接收第一初始化消息。所述第一初始化消息包括具有消息认证码(MAC)的明文消息。所述MAC基于可用于所述远程设备的私有认证令牌使用中间件来生成。所述现场设备还包括BLE消息分析器,用于基于所述MAC使用由所述现场设备存储的所述私有认证令牌来验证所述明文消息。
一种非暂时性计算机可读介质,其包括示例性指令,所述示例性指令在被执行时使过程控制系统中的现场设备通过未配对的蓝牙低能量(BLE)连接至少从远程设备接收第一初始化消息。所述第一初始化消息包括具有消息认证码(MAC)的明文消息。所述MAC基于可用于所述远程设备的私有认证令牌使用中间件来生成。所述示例性指令还使机器基于所述MAC使用由所述现场设备存储的所述私有认证令牌来验证所述明文消息。
公开了一种在远程设备与过程控制系统中的现场设备之间建立安全无线连接的示例性方法。所述示例性方法包括:在过程控制系统中的现场设备处,通过未配对的蓝牙低能量(BLE)连接从远程设备接收第一初始化消息。所述第一初始化消息包括具有消息认证码(MAC)的明文消息。所述MAC基于可用于所述远程设备的私有认证令牌使用中间件来生成。所述示例性方法还包括:基于所述MAC使用由所述现场设备存储的所述私有认证令牌来验证所述明文消息。
附图说明
图1是根据本公开内容的教导的、包括示例性现场设备的示例性环境的示意图,该示例性现场设备具有示例性BLE通信装置以与示例性远程设备进行通信。
图2是图1的示例性现场设备的示例性实现方式的框图。
图3是图1的示例性远程设备的示例性实现方式的框图。
图4例示了描绘图1和/或图2的示例性现场设备与图1和/或图3的远程设备建立安全协定的示例性数据流程图。
图5例示了描绘图1和/或图2的示例性现场设备与图1或图3的远程设备建立安全协定的另一示例性数据流程图。
图6和图7是表示可以被执行以实现图1和/或图2的示例性现场设备的机器可读指令的流程图。
图8和图9是表示可以被执行以实现图1和/或图3的示例性远程设备的机器可读指令的流程图。
图10是被构造为执行图6和图7的指令以实现图1和/或图2的示例性现场设备的示例性处理平台的框图。
图11是被构造为执行图8和图9的指令以实现图1和/或图3的示例性远程设备的示例性处理平台的框图。
附图未按比例绘制。通常,在整个附图和随附的书面描述中将使用相同的附图标记来指代相同或相似的部分。
具体实施方式
近年来,技术已在工业应用中得到越来越多的利用,以促进设备之间的通信。蓝牙是一种用于在工业、科学和医学(ISM)无线电频带(例如2.4至2.4835GHz)中使用短波长超高频无线电波在短距离上交换数据的无线技术标准。在工业应用(例如过程控制系统)中实现蓝牙的常规方法包括将工业协议通信器(例如高速通道可寻址远程换能器(HART)调制解调器)通信地耦合到典型的蓝牙无线电装置(例如,基于蓝牙核心规范5.0版来操作的蓝牙无线电装置)。
现场设备(例如,具有足够功率预算来操作蓝牙无线电装置的现场设备)可以将HART信息封装在蓝牙分组中,并将蓝牙分组发送到远程客户端,其中远程客户端通过典型的蓝牙无线电装置接收该信息,该典型的蓝牙无线电装置通过总线通信地耦合到主处理器。在这样的示例中,典型的蓝牙无线电装置可以发送或接收信息而无需担心可用功率预算。如本文所使用的,术语“功率预算”是指可供现场设备的部件用来执行操作(例如,过程控制操作、BLE操作、通信操作等)的电功率(例如,基于电压、电流等的电功率)。例如,远程客户端可以使用整个可允许的功率预算来发送信息,以增加典型蓝牙无线电装置的范围和/或数据吞吐量。
通常,由于功率预算的约束,标准的蓝牙无线电装置尚未被集成到某些过程控制系统现场设备(诸如阀定位器或其它低功率仪器)中。例如,阀定位器可以基于由外部数据采集和控制系统提供的4-20毫安电流回路按功率预算进行操作。在这样的示例中,阀定位器可以利用大部分的可用功率预算来执行阀定位器的主要功能(例如,主要过程控制功能)。在一些示例中,当阀定位器使用了大部分的可用功率预算时,功率约束可被施加在标准的蓝牙无线电装置上。在一些示例中,与在阀定位器上可用于潜在的蓝牙接口的小于3毫瓦(mW)的示例性功率预算相比,标准的蓝牙集成电路使用大约150mw的功率来运行。例如,在阀定位器的功率预算中可能没有足够的功率供标准的蓝牙无线电装置用于在现场设备与另一个设备(例如,另一个现场设备、远程设备等)之间提供有效的通信路径。结果,基于低功率现场设备的受约束或限制的功率预算,标准的蓝牙无线电装置可能不是低功率现场设备用于与另一设备进行通信操作的理想选择。
蓝牙低能量(蓝牙LE或BLE)是一种基于标准蓝牙技术的无线通信技术(例如,在2.4-2.4835GHz ISM频带的相同通信或频谱范围内运行),旨在提供显著降低的功耗和成本,同时保持与经典蓝牙的通信范围类似的通信范围。然而,BLE在结构上与经典蓝牙不同,并且与经典蓝牙不兼容。例如,与经典蓝牙相比,BLE使用不同的信道集。在这样的示例中,相比于经典蓝牙的79个1MHz信道,BLE可具有40个2MHz信道。在其它示例中,BLE不支持用于替换串行通信接口(例如RS-232通信、RS-485通信等)的串行端口配置文件(SPP)。
本文公开的示例使用BLE来形成一个或多个低功率设备之间的通信桥接,以提高通信的互操作性,降低执行通信的成本和复杂性,并提高设备之间的通信速度。在一些公开的示例中,BLE通信装置促进一个或多个客户端设备(例如,远程手持设备,诸如EmersonAMS TREXTM)与服务器设备(例如,现场设备、控制器、阀定位器等等)之间的通信。BLE通信装置可以被并入到现场设备中和/或通信地耦合到现场设备,诸如本地控制器、无外设(headless)控制器(例如,PLC型设备)、阀定位器、压力变送器、温度变送器、液位变送器等。BLE通信装置可以用于建立与一个或多个客户端设备、一个或多个现场设备等、和/或其组合的对等通信。
当数据像BLE无线通信一样通过空中传送时,信息的安全性日益受到关注。除了其它关注,存在中间人(MitM)攻击的风险,其中恶意设备可以接收、拦截、阻止、篡改(tamper)和/或操纵无线传输中的数据。更具体地,被动MitM涉及在特定信道上侦听或监听的设备。主动信号注入MitM涉及拦截设备之间传送的消息并将不同的信息注入传输中的设备。主动中继MitM涉及通过拦截两个设备之间传送的通信并将(可能更改的)信息中继到预期的接收方设备来防止这两个设备之间的直接通信的设备。主动中断涉及防止或阻塞信号到达预期的接收方设备的设备。
本文公开的示例通过在现场设备和远程设备的BLE配对过程中实施各种登录或认证过程以在设备之间建立安全的无线连接,来降低MitM攻击和其它形式的安全问题的可能性。有许多现有的认证过程用于在设备之间建立安全连接(不论有线还是无线)。许多这样的安全协议涉及建立和/或交换用于对这些设备之间传送的消息进行加密和/或认证的安全密钥。为了使此类方法正常运行,需要有管理安全密钥的系统。在许多计算机网络(例如,互联网)中,实现传输层系统(TLS)协议,其中服务器(例如,web服务器)促进密钥管理。例如,当客户端设备寻求访问特定服务器时,服务器可以通过获取先前存储的与客户端设备和/或用户有关的信息(例如用户ID和/或密码等)来确认客户端设备和/或与客户端设备相关联的用户是否可以受信任。此外,客户端设备通常能够通过检验由服务器提供给客户端的数字证书来确认服务器的可信度。
与许多典型网络中的web服务器和/或其它服务器不同,过程控制系统中的现场设备通常是具有超出其最初设计功能的有限功能的嵌入式设备。因此,现场设备不具有执行密钥管理功能的能力,该密钥管理功能包括存储与可能想要访问该现场设备的不同客户端设备和/或用户相关联的信息。实际上,许多现场设备是无外设设备,其不包括使用户能够输入密码和/或其它认证信息的显示器、键盘和/或其它用户接口。此外,现场设备通常是无法提供可以由客户端设备检验的数字证书的独立设备。因此,在与过程控制系统中的现场设备建立安全无线连接的方面存在许多独特的技术挑战。
本文公开的示例通过在中间件级别实现密钥管理而不是依赖于现场设备来克服了上述技术挑战。也就是说,不是现场设备(可与服务器相比)收集和/或获取关于远程客户端设备的信息以确认该远程设备是否合法,而是在某些示例中,远程设备(通过中间件)独立地获取安全密钥(例如,从对用户名、密码和/或其它用户输入数据进行操作的哈希或其它安全性过程导出的令牌)。然后,将由远程设备获取的安全密钥用作与现场设备建立安全连接的基础。如本文所使用的,中间件是指独立于用于请求与现场设备的连接的远程设备上的面向用户的应用但是促进远程设备与现场设备进行连接的软件。更具体地,中间件是指在远程设备上执行的软件,该软件提供安全密钥管理能力和/或实现安全密钥的导出(derivation)。中间件无需连接到互联网或其它远程服务器。然而,在某些示例中,中间件可以与远程服务器连接。在本文公开的一些示例中,已经发生了向远程设备供应(并且由现场设备单独存储)认证令牌,该认证令牌使远程设备能够获取或导出安全密钥。认证令牌的供应可以以任何合适的方式来实现。
在一些示例中,在认证令牌可用于远程设备和现场设备两者的情况下,通过首先在两个设备之间启用未配对的BLE连接来建立安全连接。如本文所使用的,未配对的BLE连接是指既未加密也未认证的开放通信信道。在一些示例中,两个设备交换初始化消息(例如,客户端/服务器问候(client/server hello))以建立用于建立安全连接的参数。此后,确定用于通信会话的适当秘密密钥以用于对后续消息进行加密。尽管这在设备之间建立了加密信道,但通信信道可能尚未进行认证。因此,本文公开的示例还实现了用于认证寻求彼此连接的设备的合法性的过程。替代地,在一些示例中,如下面更全面地描述的,在单个过程期间同时建立加密和认证。
由于初始化消息是在开放的或未配对的BLE连接上传送的,因此消息以明文(例如,未加密)的形式传送。然而,在某些示例中,基于认证码对明文进行认证,以便两个设备都可以确认消息在运输中是否被篡改。在一些示例中,现场设备可以支持使得能够建立和/或交换会话秘密密钥以及对设备进行进一步认证的多个不同的登录或认证过程。如上所述,在其它示例中,认证和秘密会话密钥的建立是在现场设备与远程客户端设备之间的交换消息的单个过程期间完成的。实现的特定过程可以取决于远程设备寻求与现场设备连接的情况。在一些示例中,在现场设备和远程设备都可以访问私有(例如,秘密)认证令牌的情况下,过程可以依赖于认证令牌来建立安全协定和/或认证远程设备。在一些这样的示例中,认证是基于预共享密钥(PSK)认证过程。在其它示例中,认证基于具有PSK的椭圆曲线Diffie-Hellman临时(Elliptic-Curve Diffie-Hellman Ephemeral,ECDHE)过程(在此简称为ECDHE-PSK过程)。在ECDHE-PSK过程中,PSK用于对Diffie-Helman(DH)密钥进行认证或签名,以确保它们在传输期间不会被篡改。PSK过程和ECDHE-PSK过程都有各自的优缺点。在安全性方面,ECDHE-PSK过程比PSK过程更好,这是因为ECDHE-PSK从不通过空中传送用于特定通信会话的秘密密钥,以使得即使传输被拦截并且认证令牌遭到破坏或丢失(例如,变为公开),传输对于独特会话也是安全的。也就是说,ECDHE-PSK方法提供了通常所说的完美前向安全性,其可以防止被动和主动MitM攻击。此外,不具有PSK认证的ECDHE过程只能防止被动(侦听)MitM攻击。相比之下,如果丢失了认证令牌,则PSK方法(不具有ECDHE过程)无法防止被拦截消息的解密(例如,被动MitM攻击)。
另一方面,在功耗方面,PSK过程比ECDHE-PSK方法更好,这是因为它需要显著更少的功率。实现较低的功耗是可能的,这是因为PSK过程依赖于对称密码库,相对于花费更多时间以及因此要求更多功耗的非对称密码的更复杂计算,对称密码库实现相对快速的计算。如上所述,功耗是过程控制系统中的重要因素,因为现场设备(例如,现场设备102)受制于严格的功率预算。此外,许多现场设备被构造为本质安全的,这导致设备可以存储的能量的量受到限制。例如,许多现场设备被限制为存储300μJ以满足本质安全的要求。用于在许多现有的BLE设备中实现ECDHE认证过程的计算是计算密集型的,并且使用大约1800μJ,使得这些过程在工业过程控制设置中是不可行的。本文公开的示例以小于200μJ的能量(例如在100至200μJ之间)实现ECDHE计算。尽管传统的ECDHE方法在许多本质安全的现场设备的限制内是不可能的,但是根据本文的教导实现的ECDHE过程的能量要求仍然显著高于执行PSK认证过程所需的能量的量。例如,用于执行PSK过程的计算可以小于1μJ。因此,尽管当根据本文公开内容的教导来实现时,ECDHE-PSK过程在过程控制设置中是可能的,但是在需要更多能量可用于现场设备以执行其它任务的情况下,PSK过程可能仍然是优选的。特别地,与ECDHE过程相比,PSK过程导致对现场设备102的大容量电源(bulk power supply)进行充电的明显更少的延迟。
如上所述,PSK过程和ECDHE-PSK过程都基于可用于现场设备和远程设备两者的认证令牌。在某些情况下,认证令牌可能不可用(例如,在新的远程设备被供应有认证令牌之前和/或在密码主管(crypto officer)初始化新安装并投用的现场设备之前)。在一些这样的情况下,可以实现具有椭圆曲线数字签名算法(ECDSA)的椭圆曲线Diffie-Hellman临时(ECDHE)过程(在本文中简称为ECDHE-ECDSA过程)。除了使用数字信号算法(DSA)而非PSK对DH密钥进行签名或认证外,ECDHE-ECDSA过程与ECDHE-PSK过程相似。ECDSA的困难在于它涉及要管理的另一公钥/私钥对。ECDSA通常使用证书(例如,X.509)来实现,该证书可以由管理准许客户端设备的访问的服务器更新或撤销。然而,在过程控制系统的上下文中,由于现场设备未连接到互联网,因此现场设备(可与典型的在线安全设置中的服务器相比)无法更新或撤销证书。因此,在某些示例中,ECDHE-ECDSA依赖于受控的公开密钥而不是依赖于证书。此外,为了提高安全性并克服不能基于秘密令牌来认证用户,实现ECDHE-ECDSA过程(或其它过程中的任何一个)的示例可能还需要针对用户存在性的测试来确认用户的实际存在性以减轻来自位于远程的设备(例如用作远程用户与现场设备之间的桥接的手持设备)的未授权(例如,恶意)登录。
如以下进一步描述的,PSK认证过程、ECDHE-PSK认证过程和ECDHE-ECDSA认证过程适应于过程控制系统的上下文中出现的独特技术情况,以在远程设备与现场设备之间建立加密和认证的BLE连接。如上所述,一个独特的挑战是现场设备不具有作为典型web服务器操作的能力来收集和管理多个不同远程客户端设备的安全信息。因此,在一些示例中,所公开的示例的认证过程的部分通过现场设备向客户端设备提供识别信息(例如,独特标识符(UID))以与相关安全信息(例如,口令码(passcode)或认证令牌)相关联来保留该典型方法。
图1是包括示例性现场设备102的示例环境100的示意图,该示例性现场设备102具有示例性BLE通信装置104,以通过示例性网络108(在本文中称为BLE网络108)桥接现场设备102与示例性远程设备106之间的通信。在所示示例中,远程设备106被表示为便携式手持设备。然而,远程设备106可以是能够经由BLE网络108进行通信的任何合适的部件。此外,尽管图1示出了与一个远程设备106通信的现场设备102,在一些示例中,现场设备102可以经由BLE网络通信地耦合到多个远程设备。类似地,远程设备106可以在BLE网络108上通信地耦合到多个现场设备和/或其它远程设备。
在所示的示例中,现场设备102耦合到在过程控制环境112中操作的流体流动控制组件110。所示示例的流体流动控制组件110是气动致动的阀组件。替代地,流体流动控制组件110可以是任何其它类型的与过程控制相关的组件(例如,电致动的阀组件、液压致动的阀组件、电机、泵等)。
在图1的所示示例中,现场设备102包括与流体流动控制组件110耦接的外壳114,该流动控制组件110至少包括致动器116和阀118(例如,蝶形阀、截止阀等)。尽管在所示示例中BLE通信装置104包括在外壳114中,但是在其它示例中,BLE通信装置104可以位于其它地方。所示示例的致动器116通过来自气动管连接件120的气动压力变化而被激活。替代地,致动器116可以通过来自电连接件的电信号、来自液压管连接件的液压流量等的变化而被激活。
在图1的所示示例中,现场设备102是阀控制器。替代地,现场设备102可以是控制器(例如,本地单回路过程控制器)、压力变送器、温度变送器、液位变送器、pH变送器、阀定位器等。所示示例的现场设备102控制、测量和/或监视与流体流动控制组件110相关联的一个或多个过程控制操作。例如,现场设备102可以被实现为控制器,该控制器控制、测量和/或监视可操作地耦接到阀118的致动器116的操作,并且将与该操作相对应的信息发送到诸如远程设备106和/或分布式控制系统(DCS)122之类的外部设备。在这样的示例中,控制器可以控制致动器116的操作和/或阀118的位置(例如,阀经由致动器116打开或关闭的程度)。在一些示例中,现场设备102可以独立于与DCS 122的任何连接来与远程设备106通信。
在图1的所示示例中,现场设备102基于根据工业通信协议而格式化的并通过工业通信网络向现场设备102传送和/或从现场设备102传送的数据(例如,控制命令、控制信号等)来控制、测量和/或监视与流体流动控制组件110相关联的一个或多个过程控制操作(例如,打开阀118、校准阀118、关闭阀118等的过程控制操作)。在一些示例中,工业通信协议可以是HART通信协议、PROFIBUS通信协议、FOUNDATION Fieldbus通信协议、或MODBUS通信协议中的一个。
在图1的所示示例中,现场设备102使用BLE通信装置104经由BLE网络108来与远程设备106进行通信。在图1中,示例性天线124被嵌入在现场设备102的面板中和/或以其它方式耦接到现场设备102的面板(例如,前面板、侧面板等)(例如,在外壳114的前面板中)。替代地,天线124可以耦接到现场设备102的任何其它部分。在一些示例中,现场设备102向远程设备106传送诸如与流体流动控制组件110相对应的过程控制参数之类的现场设备信息。示例性过程控制参数可以包括致动器压力、供应压力、阀位置等。在一些示例中,现场设备102向远程设备106传送诸如现场设备102的配置信息、诊断信息等的现场设备信息。示例性配置信息、诊断信息等可以包括现场设备102的已登录用户的身份、内部事件日志、控制器的校准版本、控制器的固件版本、流体流动控制组件110的型号等。在一些示例中,现场设备102向远程设备106传送诸如警报信息之类的现场设备信息。示例性警报信息可以包括校准错误、缺少位置反馈警报、低供应压力告警、安全异常、使用BLE无线电装置的端口的安全异常等。另外地或者替代地,可以使用BLE通信装置104将任何其它现场设备信息传送到远程设备106。
在一些示例中,远程设备106使用BLE通信装置104经由BLE网络108将信息传送到现场设备102。例如,远程设备106可以从现场设备102获得诸如控制器的固件版本之类的配置信息。响应于远程设备106确定固件版本不是当前的,远程设备106可以将固件的当前版本下载到现场设备102。在其它示例中,远程设备106可以经由BLE网络108配置与流体流动控制组件110相关联的一个或多个参数。例如,远程设备106可以调节现场设备102的过压告警设置、测量参数的单位、过程控制变量的最小和/或最大范围设置等,以控制、测量和/或以其它方式监视流体流动控制组件110。
通过BLE网络108无线地执行这些动作,降低了在流体流动控制组件110上和/或以其它方式与流体流动控制组件110相关联地执行操作(例如,维护操作、技术人员操作、用户操作等)的复杂度。例如,在不存在BLE网络108的情况下,可能需要获得热作业许可证(hotwork permit)来打开外壳114以访问控制器。在其它示例中,在对现场设备102上执行作业之前,可能需要关闭过程控制环境112中的过程控制操作,以防止潜在的电火花引起危险气体环境的爆炸。BLE通信装置104通过经由BLE网络108促进现场设备102与远程设备106之间的通信来降低执行操作的复杂度。尽管通过BLE网络108的通信降低了如上所列出的某些复杂度,但是建立BLE连接引入了安全风险。因此,本文公开的示例促进现场设备102与远程设备106之间的安全协定的建立,以使得能够在它们之间进行加密和认证的通信,这减少(例如,避免)包括MitM攻击的各种潜在安全威胁。
图2是图1的示例性现场设备102的示例性实现方式的框图。如图2所示,示例性现场设备102包括示例性现场设备微控制器单元(MCU)202、示例性本地用户接口204和示例性BLE通信装置104。示例性BLE通信装置104包括示例性BLE通信接口206、示例性BLE消息生成器208、示例性BLE消息分析器210、示例性BLE通信控制器212和示例性数据库214。尽管在图2中将BLE通信装置104示为在现场设备102内,但是在其它示例中,BLE通信装置104可以与现场设备102分离但与之通信地耦合。
在图2的所示示例中,现场设备MCU 202以由现场设备102所支持的工业通信协议定义的格式(例如,数据格式)向BLE通信装置104发送数据分组和/或从BLE通信装置104接收数据分组。在所示的示例中,BLE通信装置104执行和/或以其它方式促进现场设备MCU202与外部BLE兼容设备(诸如图1的远程设备106)之间的通信操作。也就是说,在一些示例中,BLE通信装置104基于BLE通信协议将通过BLE网络108(图1)接收的数据转换成与要提供给现场设备MCU 202的合适的工业通信协议相对应的格式。同样地,在一些示例中,BLE通信装置104基于工业通信协议将从现场设备MCU 202接收的数据转换成适合于与远程设备106进行BLE通信的格式。
在一些示例中,本地用户接口204与一个或多个输出机构(例如,显示器、一个或多个指示灯(例如,LED)、扬声器等)相关联,以在现场设备的位置处向用户提供输出信号。经由本地用户接口204生成的输出信号可以向用户提供与现场设备MCU 202和/或BLE通信装置104相关联的信息。作为一个示例,一旦已经认证了远程设备106,使得在现场设备102与远程设备106之间建立了安全协定,则现场设备102的本地用户接口204可以使显示器或发光二极管(LED)闪烁以向位于现场设备102附近的远程设备106的用户提供现场设备102的积极设备识别。以此方式,远程设备用户可以确认他们已经与他们打算连接的特定设备建立了安全连接。
另外地或替代地,在一些示例中,本地用户接口204与一个或多个输入机构(例如,触摸屏、键盘、一个或多个按钮或开关等)相关联,以使用户能够在现场设备的位置处向现场设备MCU 202和/或BLE通信装置104提供输入信号和/或命令。作为一个示例,示例性现场设备102的用户接口204可以与简单的按钮或开关相关联以打开或关闭与BLE通信接口206相关联的BLE无线电装置。在一些示例中,可以省略这样的开关,以使得当向现场设备102和/或BLE通信装置104供电时,BLE无线电装置始终处于开启(on)。
尽管本地用户接口204被示为与BLE通信装置104分离,但是在一些示例中,本地用户接口204可以被并入BLE通信装置104内。在其它示例中,BLE通信装置104可以包括与现场设备102的本地用户接口204不同的、单独的本地用户接口。在一些示例中,本地用户接口204可以被省略和/或不包括任何输出机构和/或任何输入机构。也就是说,在一些示例中,现场设备102是无外设设备,使得位于该设备附近的用户无法直接与该设备对接。这样的无外设设备对无线通信认证带来了独特的挑战,因为用户无法独立于未认证的无线通信来输入密码或其它认证信息。
如上所述,所示示例的示例性BLE通信接口206与BLE无线电装置相关联,以通过BLE通信连接(例如,通过BLE网络108)向一个或多个远程设备106发送数据和/或从一个或多个远程设备106接收数据。在图2的所示示例中,BLE消息生成器208生成将经由BLE通信接口206在BLE网络108上发送的消息。图2的示例性BLE消息分析器210分析和/或处理经由BLE通信接口206接收的消息。提供示例性BLE通信控制器212以控制BLE通信装置104的各种部件和/或功能的操作。此外,在一些示例中,BLE通信控制器212执行与现场设备102所支持的不同认证过程相关联的计算。尽管示例性BLE通信接口206、示例性BLE消息生成器208、示例性BLE消息分析器210和示例性BLE通信控制器212被示为图2的BLE通信装置104的单独的块、部件或结构,但是在一些示例中,BLE通信控制器212(或其相关联的功能)可以被并入在BLE通信装置104的一个或多个其它部件或结构中和/或用BLE通信装置104的一个或多个其它部件或结构来实现。
在一些示例中,示例性BLE通信接口206、示例性BLE消息生成器208、示例性BLE消息分析器210和/或示例性BLE通信控制器212组合地进行操作以促进对与远程设备106的连接的认证。也就是说,在一些示例中,BLE消息生成器208和BLE消息分析器210生成并分析经由BLE通信接口206与远程设备106来回地传送的一系列特定消息,该远程设备106请求与现场设备102连接以建立两个设备之间的安全协定。在认证过程期间发送和接收的特定消息取决于用于建立安全协定的特定安全过程。在一些示例中,现场设备102可以支持多个不同的安全过程。因此,在一些示例中,在现场设备102与远程设备106之间传送的初始消息可以指定和/或建立要遵循的特定过程。下面结合图4和图5提供关于示例性现场设备102可以支持的不同认证过程的进一步细节。在一些示例中,用于认证过程的特定参数和/或其它关联数据存储在示例性数据库214中。一些参数可以作为对于特定远程设备106的特定通信会话来说独特的会话特定值(例如,会话密钥)来生成。其它参数包括用于与一个或多个不同远程设备106的会话的多个不同通信会话的秘密密钥和/或认证令牌。
虽然在图2中例示了实现图1的示例性现场设备102的示例性方式,但是可以组合、划分、重新布置、省略、消除和/或以任何其它方式实现图2中例示的元件、过程和/或设备中的一个或多个。此外,示例性现场设备MCU 202、示例性本地用户接口204、示例性BLE通信接口206、示例性BLE消息生成器208、示例性BLE消息分析器210、示例性BLE通信控制器212、示例性数据库214和/或更一般地图2的示例性现场设备102可以由硬件、软件、固件、和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例性现场设备MCU 202、示例性本地用户接口204、示例性BLE通信接口206、示例性BLE消息生成器208、示例性BLE消息分析器210、示例性BLE通信控制器212、示例性数据库214和/或更一般地示例性现场设备102中的任何一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例性现场设备MCU 202、示例性本地用户接口204、示例性BLE通信接口206、示例性BLE消息生成器208、示例性BLE消息分析器210、示例性BLE通信控制器212和/或示例性数据库214中的至少一个在此明确定义为包括非暂时性计算机可读存储设备或存储盘,诸如包括软件和/或固件的存储器、数字多功能盘(DVD)、压缩盘(CD)、蓝光盘等。此外,图1的示例性现场设备102可以包括除了图2中所示的那些元件、过程和/或设备之外或代替图2中所示的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可以包括一个以上的任何或全部所示的元件、过程和设备。如本文所使用的,短语“进行通信”,包括其变体,包括直接通信和/或通过一个或多个中间部件的间接通信,并且不需要直接的物理(例如,有线)通信和/或不断的通信,而是另外包括按定期间隔、调度间隔、非周期性间隔和/或一次性事件的选择性通信。
图3是图1的示例性远程设备106的示例性实现方式的框图。如图3所示,远程设备106包括示例性BLE通信接口302、示例性BLE消息生成器304、示例性BLE消息分析器306、示例性BLE通信控制器308、示例性数据库310、示例性用户接口312和示例性通信接口314。
在图3中,示例性BLE通信接口302与BLE无线电装置相关联,以通过BLE通信连接(例如,通过BLE网络108)向现场设备102(或其它设备)发送数据和/或从现场设备102(或其它设备)接收数据。图3的示例性BLE消息生成器304生成将经由BLE通信接口302在BLE网络108上发送的消息。图3的示例性BLE消息分析器306分析和/或处理经由BLE通信接口302接收的消息。提供示例性BLE通信控制器308以控制远程设备106的各种部件和/或功能的操作。此外,在一些示例中,BLE通信控制器308执行与现场设备102所支持的不同认证过程相关联的计算。尽管示例性BLE通信接口302、示例性BLE消息生成器304、示例性BLE消息分析器306和示例性BLE通信控制器308被示为图3的远程设备106的单独的块、部件或结构,但是在一些示例中,BLE通信控制器308(或其相关联的功能)可以被并入在远程设备106的一个或多个其它部件或结构中和/或用远程设备106的一个或多个其它部件或结构来实现。
在一些示例中,示例性BLE通信接口302、示例性BLE消息生成器304、示例性BLE消息分析器306和/或示例性BLE通信控制器308组合地进行操作以实现对远程设备106与现场设备102的连接的请求和认证。也就是说,在一些示例中,BLE消息生成器304和BLE消息分析器306生成并分析经由BLE通信接口302在现场设备102与远程设备106之间传送的一系列特定消息,直到远程设备106被授权通过安全的、经过认证的信道与现场设备102进行通信为止。在认证过程期间发送和接收的特定消息取决于用于建立安全协定的特定安全过程。在一些示例中,现场设备102可以支持多个不同的安全过程。因此,在一些示例中,在现场设备102与远程设备106之间传送的初始消息可以涉及远程设备106确定现场设备102支持什么过程和/或要遵循什么过程。如上所述,下面结合图4和图5提供关于不同认证过程的进一步细节。在一些示例中,用于认证过程的特定参数和/或其它关联数据存储在示例性数据库310中。一些参数可以作为对于与特定远程设备106的特定通信会话来说独特的会话特定值来生成。其它参数包括用于与一个或多个现场设备102(和/或其它设备)的多个不同通信会话的秘密密钥和/或认证令牌。
在所示示例中,用户接口312使远程设备106的用户能够输入实现特定认证过程和/或出于任何其它原因可能需要的输入。此外,用户接口312可以向用户提供输出,以提示用户输入合适的输入和/或执行与认证过程相关联的特定任务。此外,用户接口312可以提供认证过程的状态和/或提供任何其它相关信息。
图2的示例性通信接口314使远程设备能够独立于BLE网络108与外部设备通信。在一些示例中,经由通信接口314与设备的通信使远程设备106能够获取、访问或生成在本文公开的特定认证过程期间使用的适当的安全密钥(例如,认证令牌)。在一些示例中,图2的通信接口314与移动网络和/或Wi-Fi网络对接,以经由外部网络(例如,互联网)无线地获得对远程服务器的访问。
虽然在图3中例示了实现图1的远程设备106的示例性方式,但是可以组合、划分、重新布置、省略、消除和/或以任何其它方式实现图3中例示的元件、过程和/或设备中的一个或多个。此外,示例性BLE通信接口302、示例性BLE消息生成器304、示例性BLE消息分析器306、示例性BLE通信控制器308、示例性数据库310、示例性用户接口312、示例性通信接口314和/或更一般地图3的示例性远程设备106可以由硬件、软件、固件、和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例性BLE通信接口302、示例性BLE消息生成器304、示例性BLE消息分析器306、示例性BLE通信控制器308、示例性数据库310、示例性用户接口312、示例性通信接口314中的任何一个和/或更一般地示例性远程设备106中的任何一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例性BLE通信接口302、示例性BLE消息生成器304、示例性BLE消息分析器306、示例性BLE通信控制器308、示例性数据库310、示例性用户接口312和/或示例性通信接口314中的至少一个在此明确定义为包括非暂时性计算机可读存储设备或存储盘,诸如包括软件和/或固件的存储器、数字多功能盘(DVD)、压缩盘(CD)、蓝光盘等。此外,图1的示例性远程设备106可以包括除图3中所示的那些元件、过程和/或设备之外或者代替图3中所示出的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可以包括一个以上的任何或全部所示的元件、过程和设备。如本文所使用的,短语“进行通信”,包括其变体,包括直接通信和/或通过一个或多个中间部件的间接通信,并且不需要直接的物理(例如,有线)通信和/或不断的通信,而是另外包括按定期间隔、调度间隔、非周期性间隔和/或一次性事件的选择性通信。
如上所述,现场设备102可以使用多个不同的登录或认证过程来认证远程设备106以通过BLE网络108进行安全通信。实现的特定过程可以取决于现场设备102或远程设备106所支持的过程,和/或取决于远程设备106尝试连接至现场设备102所处的特定情形。在一些示例中,在现场设备102和远程设备106两者可以访问私有(例如,秘密)认证令牌的情况下,过程可以依赖于认证令牌来建立安全协定。在一些这样的示例中,认证是基于预共享密钥(PSK)过程或具有用于对DH密钥进行签名的PSK的椭圆曲线Diffie-Hellman临时(ECDHE)过程(在本文中简称为ECDHE-PSK过程)。在一些示例中,当认证令牌不可用时,可以将椭圆曲线Diffie-Hellman临时(ECDHE)过程与用于对DH密钥进行签名的椭圆曲线数字签名算法(ECDSA)一起使用(在本文中简称为ECDHE-ECDSA过程)。PSK和ECDHE-PSK过程的示例性实现方式由图4和图5的数据流程图表示。
详细地转向附图,图4是描绘了图1和/或图2的现场设备102的BLE通信装置104基于PSK认证过程与图1和/或图3的远程设备106建立安全协定的示例性数据流程图400。结合图4描述的BLE通信装置104的操作可以对应于可由图10的处理器平台1000执行以与图1和/或图3的远程设备106建立安全协定的机器可读指令。结合图4描述的远程设备106的操作可以对应于可由图11的处理器平台1100执行以与图1和/或图2的现场设备102和/或更具体地BLE通信装置104建立安全协定的机器可读指令。
图5中表示的PSK过程的示例性数据流程开始于当远程设备106的用户402启用现场设备102上的BLE无线电装置时,例如通过用户402翻转与现场设备102的本地用户接口204相关联的开关来打开无线电装置。在一些示例中,该第一操作404是可选的。也就是说,在一些示例中,只要现场设备102通电,BLE无线电装置可以总是开启。一旦启用BLE,下一个操作406涉及用户402打开在远程设备106上运行和/或以其它方式执行的应用。该应用可以启动对通过BLE网络108在远程设备106的附近(例如,信号范围内)检测到的设备的发现。在第二操作406之后,远程设备106在第三操作408处从BLE通信装置104获得通告的BLE连接数据。一旦启用BLE无线电装置,BLE通信装置104就开始发送该数据。因此,在总是启用无线电装置的示例中,BLE通信装置104总是(例如,以周期性间隔重复)通告BLE连接数据。
在一些示例中,由BLE通信装置104在第三操作408处提供的通告数据包括用于独特地标识现场设备102的独特标识符(例如,UID)。在一些示例中,UID可以是通用的独特标识符(UUID)。在通告数据中提供现场设备标识符(如结合图4所描述的)可以简化认证过程,因为远程设备106可以使用该标识符来确定用于与现场设备连接的正确认证令牌(例如,PSK)。也就是说,标识符用于将正确的口令码(例如,正确的PSK)匹配到正确的硬件(例如,正确的现场设备)。在一些示例中,设备标识符在每次广播时不包括在通告数据中,而是以周期性或非周期性的基础(例如,每十次广播通告数据)提供。
在第四操作410处,用户402从由远程设备106生成的已发现设备的列表中选择设备。例如,用户402可以在应用中选择设备类型,其中设备类型对应于图1和/或图2的现场设备102。在第五操作412处,远程设备106和BLE通信装置104发起未配对的BLE连接(例如,未加密和未认证的开放通信信道)。在这样的示例中,数据信道可以促进以未认证的明文的数据分组的传送。尽管BLE通信装置104可以在第三操作408期间提供现场设备标识符(例如,UID),但是在图4的其它示例性实现方式中,BLE通信装置104可以在建立未配对的BLE连接之后(例如在第六操作414期间)在单独的通信中另外地或替代地提供现场设备标识符。另外,在一些示例中,BLE通信装置104还在第六操作414期间提供服务器随机数(servernonce)。服务器随机数是由BLE通信装置104生成的随机数(random number),其用于基于哈希的MAC(HMAC)并且用于减少拒绝服务攻击,如下面进一步讨论的。作为随机数,服务器随机数确保远程设备106与现场设备102之间的每个单独的通信会话是基于独特的HMAC。在一些示例中,根据服务器随机数和独特的现场设备标识符两者来计算HMAC,使得HMAC对于每个通信会话是独特的(基于该随机数)并且对于特定的设备是独特的(基于该标识符)。
在图4中的第七操作416处,用户402输入短PSK。由用户402在第七操作416处输入的短PSK不同于用作为进行设备认证和加密的认证令牌的PSK。为了清楚起见,短PSK在本文中被称为“短”PSK或口令码,而用作认证令牌的PSK在本文中被称为“长”PSK或简称为PSK。口令码(例如,短PSK)是用于生成和/或获取长PSK的密钥。在某些示例中,长PSK是256位字符串,其对应于77位以10为基数的数字。77位数字对于大多数人来说太长以致于无法手动输入,使得替代地使用短得多(例如,长16个字符)的口令码(例如,短PSK),可以根据该口令码导出和/或以其它方式获取PSK(例如,长PSK)。可以以任何合适的方式将短PSK提供给用户402。在某些示例中,默认的短PSK被初始地提供为独特的出厂默认值,该出厂默认值以通过移除终端盖进行访问的方式印刷在终端块上。更特别地,在某些示例中,短PSK被直接印刷在电子组件上或印刷在附着到电子组件的标签(sticker)上。此外,在某些示例中,短PSK的出厂默认值也可以被印刷在无线电电子板上(直接地或在标签上),以确保即使将无线电电子板替换为具有短PSK的出厂默认值的不同的板,也可以确认该默认值。在某些示例中,在不拆解现场设备的情况下,用户将看不到出厂默认的短PSK值。
在一些示例中,将出厂默认值用作短PSK被限制于当现场设备正在初始化或新安装在过程控制系统中时。也就是说,在先前未在现场设备上提供和建立独特的PSK(例如,长PSK)的情况下,用户402可以使用出厂默认值(例如,短PSK)来与现场设备MCU 202初始地建立安全连接。然而,一旦初始地已连接,则可能要求用户402建立新的用户特定的PSK(例如,新的长PSK),该新的用户特定的PSK用于建立与现场设备的后续连接。另外地或替代地,用户402可以在该初始设置期间建立密码主管PSK。在一些示例中,可以为与不同角色相关联的不同类型的个体(例如,工厂默认管理员、空中(OTA)管理员、OTA用户、观察者等)建立多个不同的长PSK。在初始化期间,现场设备经由通过出厂默认值(例如,默认的短PSK)建立的加密信道来接收用户特定的长PSK和/或密码主管长PSK(和/或相应的短PSK,可以根据该短PSK导出长PSK)。此后,当用户402后续寻求连接或登录到现场设备时,使用新创建的长PSK。此外,在某些这样的示例中,在该初始化过程之后,出厂默认的PSK将不再可用于连接到现场设备。
在第八操作418处,远程设备106获取和/或生成PSK(例如,用作用于建立加密连接的认证令牌的长PSK)。在一些示例中,基于用户402在第七操作416处输入的信息(例如,口令码或短PSK),远程设备106获取和/或生成PSK。例如,可以基于对短PSK执行的任何适当的密钥导出函数来生成长PSK(例如,通过对口令码进行设定次数的哈希化)。在其它示例中,长PSK可以独立于口令码来定义,并存储在基于口令码进行访问和/或获取的安全位置。在典型的基于web的安全系统中,用户可以输入用户名和密码来连接到特定服务器。然而,如上所述,现场设备通常是独立设备,其不具有使用基于身份的登录(例如,基于用户名和密码)来管理安全密钥的存储器容量或能力。因此,在一些示例中,用户特定的PSK(例如,用于标准用户或密码主管的长PSK)由与远程设备106相关联的中间件来管理,其中,中间件促进基于用户输入的短PSK来生成和/或获取长PSK。因此,在一些示例中,用户402在第八操作416处生成和/或获取长PSK可以通过用户首先输入与短PSK相关联的用户名和密码来完成,使用基于密码的密钥导出功能2(Password-Based Key Derivation Function 2,PBKDF2)过程和/或由远程设备106上的中间件来处理与短PSK相关联的该用户名和密码以获取长PSK。在一些这样的示例中,结合通过云端(例如,互联网)访问的第三方密钥管理服务,使用双因素认证过程来获取长PSK。在一些示例中,远程设备106可以自托管密钥存储管理器,通过该密钥存储管理器使用一次性口令码(OTP)、基于哈希的MAC(HMAC)一次性口令码(HOTP)、基于时间的一次性口令码(TOTP)、个人身份检验(PIV)、针对用户存在性的测试(TUP)、客户端到认证器协议(CTAP)和/或任何其它合适的方法来获取长PSK。
由于现场设备102不能像在线设置中的web服务器通常所做的那样实现密钥管理,因此在中间件上实现用于生成、管理和/或获取PSK(例如,用作认证令牌的长PSK)的上述方法。现场设备不被配备为实现密钥管理,因为它们通常被制造为具有超出其设计用途的有限功能的嵌入式系统。因此,现场设备通常不能为经由多个不同的远程设备寻求与该设备连接的多个不同的用户存储和跟踪认证令牌。此外,许多现场设备是没有可使用户能够输入口令码或提供其它认证信息的键盘或显示器的无外设设备。
在第九操作420处,BLE通信装置104获取PSK。在一些示例中,BLE通信装置104从数据库214获取PSK。更具体地,在一些示例中,PSK由现场设备102存储为加密值,该加密值可以利用在运行时期间从用于现场设备102的独特设备标识符(例如,UID)导出的密钥来解密。加密密钥可以存储在现场设备102的RAM中以获取令牌。
在远程设备106和BLE通信装置104都具有对私有(例如,秘密)认证令牌(例如,长PSK)的访问的情况下,远程设备106和BLE通信装置104可以使用已认证的明文来传送数据。也就是说,在设备之间传送的消息是明文(即,未加密的),但是与基于私有认证令牌生成的消息认证码(MAC)一起传送。因此,在第十操作422处,远程设备106发送客户端问候(clienthello)作为第一初始化消息,以建立与现场设备的安全连接。在一些示例中,客户端问候包括以下项中的一项或多项:(a)使用PSK的服务器随机数(在第六操作414处提供)的HMAC签名,(b)客户端(例如,远程设备)生成的随机数(nonce),(c)协议版本,(d)临时登录(例如,以初始化现场设备)或作为用户或密码主管登录的请求,(e)设备验证询问(attestationchallenge),以及(f)对积极设备识别的请求。由于客户端问候是通过未加密的、未认证的数据信道传输的,因此客户端问候是作为明文传输的。因此,在客户端问候中使用PSK(项(a))的服务器随机数的HMAC用于认证明文消息并确认该消息未被例如主动的MitM篡改。此外,服务器随机数的HMAC可以促进快速检测来自寻求连接到现场设备的非预期用户的随意请求(casual request)和/或拒绝服务攻击。在一些示例中,当生成HMAC时,现场设备标识符(在第六操作414处随同服务器随机数提供)也可以与服务器随机数一起使用。
在一些示例中,如果客户端问候不包括服务器随机数的HMAC,则BLE通信装置104自动拒绝来自远程设备106的请求并终止连接。以此方式,与随意请求和/或拒绝服务攻击相关联的远程设备可以被快速地从BLE网络108中移除(甚至在服务器问候(server hello)之前),使得这样的设备不阻塞网络(例如,作为拒绝服务攻击的一部分)。因此,在一些示例中,在第十一操作424处,BLE通信装置104在执行任何其它动作之前(除了在第九操作420处已经获取和/或生成了PSK之外)检验HMAC签名。尽管在所示示例中将第九操作420示出为发生在客户端问候(第十操作422)之前,但是在一些示例中,BLE通信装置104可以直到客户端问候之后(例如,在BLE通信装置104检验HMAC签名的第十一操作424之前)才生成和/或获取PSK。如果HMAC的检验失败,则BLE通信装置104终止与远程设备106的连接。如果HMAC通过检验,则过程继续。
客户端生成的随机数(项(b))是由远程设备106生成的随机数,其用作salt以确保每个消息都是独特的。在一些示例中,由于在第六操作414处基于由BLE通信装置104先前提供的服务器随机数,消息将已经是独特的,因此可以不必要地省略客户端生成的随机数。
在一些示例中,在例如设备被配置为仅支持单个协议的情况下,可以在客户端问候中省略协议版本(项(c))。客户端问候中的项(d)定义用户希望与现场设备连接的许可级别。不同的许可级别可以包括未认证的(例如,匿名)用户、已认证的用户(与用户特定的PSK相关联)和密码主管(与密码主管PSK相关联)。
作为客户端问候的可选组成部分,可以省略设备验证询问(项(e))和对积极设备识别的请求(项(f))。如果在客户端问候中包括对积极设备识别的请求,则在第十二操作426处,BLE通信装置104将该请求提供给现场设备MCU 202,于是现场设备MCU 202随后生成合适的输出信号。在一些示例中,输出信号是视觉信号,例如,打开或闪烁发光二极管(LED)、闪烁显示器、在显示器上显示消息、和/或任何其它合适的输出。另外地或替代地,可以经由扬声器可听地产生输出信号。在一些示例中,第十二操作426是可选的,因此可以省略。
在第十三操作428处,BLE通信装置104发送服务器问候作为第二初始化消息,以在远程设备106和与BLE通信装置104相关联的现场设备102之间建立安全连接。服务器问候包括以下项中的一项或多项:(a)协议版本,(b)服务器(例如,现场设备)生成的随机数(nonce),(c)设备标识符,(d)允许的登录过程,(e)8字节或9字节的随机初始化向量(IV),(f)设备验证响应,(g)积极设备识别返回码,以及(h)服务器完成消息。由于客户端问候是通过未加密的、未认证的数据通道传输的,因此客户端问候是作为明文传输的。然而,服务器完成消息(项(h))对应于使用PSK的客户端/服务器握手记录(transcript)的HMAC。也就是说,服务器完成消息对应于客户端问候中包括的所有项(a)-(f)和服务器问候中包括的所有项(a)-(g)的哈希。换而言之,服务器问候通过使用PSK的整个客户端/服务器握手记录的HMAC来签名,以使远程设备106能够检验客户端问候和服务器问候均未受到例如MitM的篡改。这是可能的,因为远程设备106可以基于远程设备106先前发送的客户端问候和包括在服务器问候中的内容(不包括服务器完成消息),使用PSK独立地生成相同的HMAC。
在一些示例中,在例如设备被配置为仅支持单个协议的情况下,可以省略协议版本(项(a))。出于类似的原因,在某些示例中,也可以省略允许的登录过程(项(d))。在一些示例中,所提供的允许的过程(项(d))是基于客户端问候中包含的信息(例如,基于客户端问候是否请求作为认证用户或密码主管登录)。在一些示例中,消息中提供的该允许的过程是基于现场设备102所支持的过程。在仅单个认证过程受支持并且远程设备106被配置为基于单个认证过程与现场设备102连接的示例中,可以与客户端/服务器问候一起执行针对通信会话的密钥交换。但是,在多个登录过程可用的情况下,在指定了要实现的特定过程之后,密钥交换与客户端/服务器问候分开发生。
服务器问候中的服务器生成的随机数(项(b))是由BLE通信装置104生成的随机数,其用作为用于服务器完成消息(项(h))的salt。在一些示例中,服务器生成的随机数(项(b))可以被省略,因为服务器随机数是由BLE通信装置104先前在第六操作414处提供的。
在一些示例中,设备标识符(项(c))是在如上所述的客户端-服务器握手之前提供的相同标识符(例如,UID)(例如,包括在通告数据中和/或在第六操作414处的单独通信中)。因此,在一些示例中,可以省略项(c)。服务器问候中(和/或在第三操作408处发送的数据中)包括的UID用于克服在与过程控制系统中的现场设备进行连接方面独特出现的一些技术挑战。如上所述,过程控制系统中的现场设备通常是独立设备,不能像执行安全密钥管理的web服务器那样,为与多个不同用户相关联的多个客户端设备收集和存储设备标识信息。因此,在本文公开的示例中,并不是现场设备102(可与TLS上下文中的web服务器相比)收集关于远程客户端设备的信息,过程是相反的。也就是说,现场设备102提供关于其自身的信息(例如,UID),以随后使远程设备106能够将特定的现场设备与关联的认证令牌进行关联。
在此示例中,对初始化矢量(项(d))进行格式化,以促进使用高级加密标准256位(AES-256)加密标准进行加密。在其它示例中,可以对初始化向量进行格式化,以促进使用高级加密标准128位(AES-128)加密标准)进行加密。设备验证响应(项(f))包括可以由远程设备检验的已知的公开值。在一些示例中,响应于客户端问候中的设备验证询问(项(e))而提供设备验证响应。因此,如果在客户端问候中省略设备验证询问,则在服务器问候中也省略设备验证响应。类似地,响应于客户端问候中对积极设备识别(项(f))的请求而提供服务器问候中的积极设备识别返回码(项(g)),但是在客户端问候中的该请求被省略时在服务器问候中省略积极设备识别返回码。
在一些示例中,在第十和第十三操作422、428处发送的初始化消息类似于与传输层传输(TLS)握手协议相关联的客户端问候和服务器问候。然而,与标准TLS协议还存在一些差异。除其它事项外,TLS协议通常涉及web服务器,该web服务器可以发布数字证书进行检验,存储用户标识信息(例如,用户名、密码等),和/或存储客户端标识信息(例如,IP地址和/或媒体访问控制(MAC)地址),以例如撤消某些设备的特权和/或将其列入黑名单。相比之下,现场设备不是web服务器并且未连接到互联网,但是通常是独立设备,该独立设备不具有发布可以检验的证书或存储用户和/或设备标识信息以供将来参考的能力。尽管在远程设备106与BLE通信装置104之间发送的初始化消息不遵循标准的TLS协议,但是出于解释的目的,该消息在本文中被称为客户端问候和服务器问候。
在第十四操作430处,远程设备106检验服务器完成消息。如上所述,远程设备基于先前发送的客户端问候中包括的所有项以及服务器问候中除服务器完成消息(项(h))以外的所有项,使用PSK独立地生成HMAC。如果独立生成的HMAC与服务器完成消息匹配,则远程设备106能够检验通过服务器完成消息。如果检验失败,则远程设备106终止与BLE通信装置104的连接。如果检验通过服务器完成消息,则远程设备106在第十五操作432处发送客户端完成消息(例如,第三初始化消息)。与客户端问候和服务器问候一样,客户端完成消息作为未加密的明文消息来发送。然而,客户端完成消息的内容是使用PSK的客户端/服务器握手记录的HMAC。客户端完成消息与服务器完成消息不同,因为客户端完成消息在所得的HMAC中包括服务器完成消息。也就是说,客户端完成消息对应于客户端问候中包括的所有项(a)-(f)、服务器问候中包括的所有项(a)-(g)以及服务器问候中包括的项(i)(即,服务器完成消息)的哈希。
发送整个客户端/服务器握手记录的HMAC(包括服务器完成消息)使得BLE通信装置104能够在第十六操作434处通过基于先前收到的客户端问候和先前发送的服务器问候使用PSK独立地生成HMAC来检验客户端完成消息。一旦已经检验通过了客户端完成消息,则BLE通信装置104在第十七操作436处生成用于通信会话的秘密会话密钥。在表示示例性PSK认证过程的图4的所示示例中,秘密密钥被生成为随机数。利用生成的秘密密钥,BLE通信装置104在第十八操作438处经由加密的数据信道以加密的消息将秘密密钥发送到远程设备106。在所示的示例中,BLE通信装置104使用高级加密标准256位(AES-256)加密标准对消息进行加密。替代地,可以使用其它加密标准(例如,AES-128)对消息进行加密。该消息基于PSK进行加密。也就是说,PSK用作密钥加密密钥(KEK)以将秘密会话密钥传输到远程设备106。由于远程设备106具有对PSK的访问,因此远程设备106将能够解密消息并获得用于会话的秘密密钥。
假设客户端完成消息和服务器完成消息中没有错误,则BLE通信装置104能够认证远程设备106。因此,在第十九和第二十操作440、442处,远程设备106和BLE通信装置104都基于在第十操作422处发送的客户端问候中所指示的许可级别来授权用户402和/或关联的远程设备106。此后,这些设备可以以安全方式通信。
图5是描绘了图1和/或图2的现场设备102的BLE通信装置104基于示例性ECDHE-PSK认证过程与图1和/或图3的远程设备106建立安全协定的示例性数据流程图500。结合图5描述的BLE通信装置104的操作可以对应于可由图10的处理器平台1000执行以与图1和/或图3的远程设备106建立安全协定的机器可读指令。结合图5描述的远程设备106的操作可以对应于可由图11的处理器平台1100执行以与图1和/或图2的现场设备102和/或更具体地BLE通信装置104建立安全协定的机器可读指令。
图5中表示的ECDHE-PSK过程的示例性数据流程与图4中表示的PSK过程大部分相同,除了密钥的生成和交换外。例如,图5中的前九个操作504-520与以上列出的图4中的前九个操作404-420相同。与图4中一样,尽管图5中的第九操作520被示为与第八操作418并行发生,但在一些示例中,BLE通信装置104直到从远程设备106接收到客户端问候之后才获取和/或生成PSK。
图5中的第十操作522涉及远程设备106生成公开和私有椭圆曲线Diffie-Hellman临时(ECDHE)密钥对,其中基于PSK生成公开密钥。例如,远程设备106基于第一私有DH密钥和PSK生成第一公开Diffie-Hellman密钥(DH密钥)。BLE通信装置104类似地基于第二私有DH密钥和PSK生成第二公开DH密钥。然而,在一些示例中,直到已经检验了从远程设备106发送的客户端问候中的HMAC签名之后,BLE通信装置104才执行用于生成公开和私有DH密钥的计算。当在第五操作412中建立的未配对的BLE连接是基于随意请求和/或拒绝服务攻击时,该操作顺序通过避免ECDHE计算而节省处理和相关联的能量成本来提高了效率。这对于图5的ECDHE-PSK认证过程特别重要,因为与PSK过程相比,生成DH密钥是计算密集型的任务,使得ECDHE计算比PSK计算使用的能量要多得多。例如,虽然PSK过程的计算可能小于1μJ,但为BLE连接使用通常的ECDHE过程来计算DH密钥所使用的能量的量约为1800μJ。这对于通常具有严格功率预算(例如,被限制为存储不超过约300μJ)的现场设备是存在问题的。为了克服该限制,可以根据本公开内容中的教导修改通常用于BLE连接的标准ECDHE计算,以使用小于200μJ来实现ECDHE计算。在某些示例中,所使用的能量可低至100μJ。通过使用FourQ曲线而不是过去使用的其它椭圆曲线实现ECDHE计算,可以实现这些相对较小的能量需求。这降低了所使用的能量的量,因为FourQ曲线基于扭曲的Edwards曲线,扭曲的Edwards曲线可以通过将计算分为多个较小的乘法运算然后将结果相加以计算有效的方式作为自同态(endomorphism)来处理。
为了进一步减少ECDHE-PSK过程的功率要求,在一些示例中,由BLE通信装置104生成的公开和/或私有DH密钥可能不会每次都新生成。而是,在一些示例中,仅在与一个或多个远程设备的特定数量的通信会话之后和/或在特定时间段之后(例如,一天一次)和/或基于任何其它定期或非定期调度,可以更新(例如,基于新值重新生成)相同的密钥。因此,在一些示例中,由现场设备生成的相同的DH密钥可以用于与一个或多个远程设备的多于一个通信会话。认证过程仍然是临时的,并且每次都产生独特的秘密会话密钥,因为远程设备106为每个通信会话生成新的公开和私有密钥。在其它示例中,为了增加安全性,为BLE通信装置104与远程设备的每个通信会话生成新的DH密钥。
在第十一操作524处,远程设备106发送客户端问候作为用于在设备之间建立安全通信的第一初始化消息。在一些示例中,在图5中的第十一操作524处发送的客户端问候基本上与在图4中的第十操作422处发送的客户端问候相同。更具体地,在图5中的第十一操作524处发送的客户端问候是明文消息,该明文消息包括上面针对图4中的客户端问候列出的相同的项,加上在第十操作522处生成的、由远程设备106生成的第一公开DH密钥。如上所述,客户端问候包括使用PSK生成的服务器随机数的HMAC。服务器随机数的HMAC用于对共享的DH密钥进行签名或认证。在一些示例中,HMAC还可以基于现场设备标识符。
在接收到客户端问候之后,BLE通信装置104在第十二操作526处检验其中包含的HMAC签名。如果检验失败(例如,指示随意请求和/或拒绝服务攻击),则BLE通信装置104终止与远程设备106的连接。如上所述,在其它计算之前执行服务器随机数的HMAC的检验以提高效率。
假设在客户端问候中包括对积极设备识别的请求,则在第十三操作528处BLE通信装置104将该请求提供给现场设备MCU 202,于是现场设备MCU 202随后以上面结合图4的第十二操作426描述的类似方式生成合适的输出信号。在第十四操作530处,BLE通信装置104生成公开和私有ECDHE密钥对,如上所述,其中公开密钥基于PSK来生成。
在第十五操作532处,BLE通信装置104发送服务器问候作为用于在设备之间建立安全通信的第二初始化消息。在一些示例中,在图5中的第十五操作532处发送的服务器问候与在图4中的第十三操作428处发送的服务器问候基本相同。更具体地,在图5中的第十五操作532处发送的服务器问候是明文消息,该明文消息包括上面针对图4中的服务器问候列出的相同的项,加上在第十四操作530处由BLE通信装置104生成的第二公开DH密钥。如上所述,使用PSK的整个客户端/服务器握手记录的HMAC用于对共享的DH密钥进行签名或认证。显然,为包括在图5中的服务器问候中而生成的服务器完成消息将与图4中生成的服务器完成消息不同,这是因为图5的服务器完成消息将包括第一和第二公开DH密钥作为哈希的一部分。
图5中的第十六、第十七和第十八操作534-538与图4中的相应操作430-434相同。也就是说,远程设备106通过独立地生成客户端/服务器握手记录来检验服务器完成消息,然后发送客户端完成消息,该客户端完成消息然后由BLE通信装置104进行检验。
假设客户端完成消息和服务器完成消息中没有错误,则BLE通信装置104能够认证远程设备106。因此,第十九和第二十操作540、542涉及远程设备106和BLE通信装置104基于共享的公开DH密钥和存储的私有DH密钥来单独地生成ECDHE秘密会话密钥。在第二十一和第二十二操作544、546处,远程设备106和BLE通信装置104两者都基于在第十一操作524处发送的客户端问候中指示的许可级别来授权用户402和/或关联的远程设备106。此后,这些设备可以以安全方式进行通信。
在图6和图7中示出了表示用于实现图1和/或图2的现场设备102的示例性硬件逻辑、机器可读指令、硬件实现的状态机、和/或其任何组合的流程图。机器可读指令可以是可执行程序或可执行程序的一部分,该可执行程序或可执行程序的一部分用于由计算机处理器(例如下面结合图10讨论的示例性处理器平台1000中所示的处理器1012)执行。该程序可以体现在被存储在非暂时性计算机可读存储器(例如CD-ROM、软盘、硬盘驱动器、DVD、蓝光盘、或与处理器1012相关联的存储器)上的软件中,但是整个程序和/或其部分可以替代地由处理器1012以外的设备执行,和/或体现在固件或专用硬件中。此外,尽管参考图6和图7所示的流程图描述示例性程序,但是可以替代地使用实现示例性现场设备102的许多其它方法。例如,可以改变框的执行顺序,和/或可以改变、消除或组合所描述的一些框。另外地或替代地,任何或所有框可以由被构造为执行相应的操作的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)实现,而无需执行软件或固件。
如上所述,图6和图7的示例性过程可以使用可执行指令(例如,计算机和/或机器可读指令)来实现,该可执行指令存储在非暂时性计算机和/或机器可读介质上,例如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或任何其它存储设备或存储盘,其中信息被存储达任何持续时间(例如,延长的时间段、永久地、短暂地、临时缓冲和/或用于信息的缓存)。如本文所使用的,术语“非暂时性计算机可读介质”被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。
“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括”或“包含”(例如,包含、包括、包含有、包括有、具有等)作为前言(preamble)或在任何种类的权利要求记载中时,应理解为在不超出相应权利要求或记载的范围的情况下,可以存在附加的要素、项等。如本文所使用的,当例如在权利要求的前言中使用短语“至少”作为过渡术语时,其以与术语“包含”和“包括”是开放式的相同的方式是开放式的。术语“和/或”例如以诸如A、B和/或C的形式使用时,是指A、B、C的任何组合或子集,例如(1)仅A,(2)仅B,(3)仅C,(4)A与B,(5)A与C,(6)B与C,以及(7)A与B与C。如本文在描述结构、部件、项、对象和/或事物的上下文中所使用的,短语“A和B中的至少一个”旨在指包括以下中任何一个的实现:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。类似地,如本文在描述结构、部件、项、对象和/或事物的上下文中所使用的,短语“A或B中的至少一个”旨在指包括以下中任何一个的实现:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。如本文在描述过程、指令、动作和/或步骤的运行或执行的上下文中所使用的,短语“A和B中的至少一个”旨在指包括以下中任何一个的实现:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。类似地,如本文在描述过程、指令、动作、活动和/或步骤的运行或执行的上下文中所使用的,短语“A或B中的至少一个”旨在指包括以下中的任何一个的实现:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。
详细地转向流程图,图6是表示可被执行以实现图1和/图2的示例性现场设备102的替代示例性机器可读指令的流程图。更具体地,图6表示由执行PSK认证过程的现场设备102实现的示例性过程(例如,对应于图4的数据流程图400)。图6的示例性过程开始于:在框602处,示例性现场设备MCU 202确定BLE无线电装置是否被启用。在一些示例中,该确定是基于用户是否已经翻转与示例性本地用户接口204相关联的开关来激活BLE无线电装置。在一些示例中,BLE无线电装置与示例性BLE通信接口206相关联,使得BLE通信接口206在框602处进行确定。如果BLE无线电装置未被启用,则控制保留在框602处。如果BLE无线电装置被启用,则控制前进到框604。在一些示例中,可以总是启用BLE无线电装置。在这样的示例中,框602可以被省略。
在框604处,示例性BLE通信接口206通告BLE连接数据。在一些示例中,BLE连接数据可以包括用于现场设备102的独特标识符(例如,UID)。独特标识符被包括在连接数据中,以使远程设备106能够将特定的现场设备102与作为本文公开的密钥管理方案的一部分的适当的认证令牌或PSK进行关联。这与基于web的设置中的典型方法相反,在基于web的设置中的典型方法中,服务器从客户端设备收集标识信息。在框606处,示例性BLE通信接口206与远程设备(例如,远程设备106)建立未配对的BLE连接。在框608处,示例性BLE通信接口206发送服务器随机数(nonce)。在框610处,示例性BLE通信接口206获取用于现场设备102的PSK(例如,认证令牌)。在一些示例中,PSK被存储在示例性数据库214中。在框612处,示例性BLE通信接口206接收带有服务器随机数的HMAC的明文客户端问候。在一些示例中,使用PSK来生成HMAC。在框614处,示例性BLE消息分析器210基于HMAC来确定客户端问候是否被认证。如果否,则控制前进到框632,在框632处,示例性BLE通信控制器212终止与远程设备106的连接。此后,因为远程设备106不可被认证(例如,经由作为认证令牌的PSK),所以图6的示例性过程结束。
如果示例性BLE消息分析器210基于PSK的哈希确定客户端问候被认证(框614),则控制前进至框616,在框616处,示例性BLE通信控制器212确定客户端问候是否包括对积极识别现场设备102的请求。如果是,则控制前进到框618,在框618处,示例性本地用户接口204生成输出信号以识别现场设备。此后,控制前进到框620。如果客户端问候不包括对积极识别现场设备102的请求,则控制直接前进到框620。
在框620处,示例性BLE通信接口206将带有服务器完成消息的服务器问候发送到远程设备106。如上所述,服务器完成消息对应于客户端问候(在框612处被接收)中包括的所有项和服务器问候中包括的所有项(除了服务器完成消息本身以外)的哈希。在框622处,示例性BLE通信接口206从远程设备106接收客户端完成消息。客户端完成消息包括客户端问候(在框612处被接收)中包括的所有项和服务器问候中包括的所有项(包括服务器完成消息本身)的哈希。
在框624处,示例性BLE消息分析器210确定客户端完成消息是否可被检验。在一些示例中,通过独立地生成的客户端/服务器握手记录的哈希并将其与客户端完成消息进行比较,来完成客户端完成消息的检验。如果客户端完成消息不可被检验,则控制前进到框632,在框632处,BLE通信接口206终止与远程设备106的连接。如果客户端完成消息可被检验,则控制前进到框626,在框626处,示例性BLE通信控制器212生成秘密会话密钥。在一些示例中,秘密会话密钥是基于随机数为当前通信会话生成的。在框628处,示例性BLE通信接口206发送使用PSK加密的秘密会话密钥。在框630处,示例性BLE通信控制器212基于客户端问候(在框612处被接收)中的请求的许可级别来授权远程设备106。此后,图6的示例性过程结束。
图7是表示可以被执行以实现图1和/或图2的示例性现场设备102的替代示例性机器可读指令的流程图。更具体地,图7表示由执行ECDHE-PSK认证过程的现场设备102实现的示例性过程(例如,对应于图5的数据流程图500)。图7的示例性过程以与图6的示例性过程相同的方式开始。例如,图7中的框702-710与图6的框602-610相同。在框712处,示例性BLE通信接口206接收带有服务器随机数的HMAC(使用PSK生成)和带有由远程设备106生成的公开DH密钥的明文客户端问候。
图7的框714-718和732与图6的框614-618和632基本相似。然而,如果示例性BLE通信控制器212确定客户端问候不包括对积极识别现场设备102的请求,则控制前进到框720,在框720处,示例性BLE通信接口206生成DHE公开/私有密钥对。此后,图7的框722-726与框620-624基本相似,除了在图7的框722处发送的服务器问候和相关联的服务器完成消息将不同于图6的服务器问候之外,因为图7中的服务器问候包括在框720处生成的公开DH密钥。结果,由于客户端问候和服务问候两者中包括公开DH密钥,因此在图7的框726处接收的客户端完成消息也将与在图6的框622处接收的客户端完成消息不同。
在框728处,示例性BLE通信控制器212生成ECDHE秘密会话密钥。在一些示例中,基于在框720处生成的私有公开密钥和在框712处从远程设备接收的公开DH密钥,为当前通信会话生成秘密会话密钥。在框730处,示例性BLE通信控制器212基于客户端问候(在框712处被接收)中的请求的许可级别来授权远程设备106。此后,图7的示例性过程结束。
在图8和图9中示出了表示用于实现图1和/或图3的远程设备106的示例性硬件逻辑、机器可读指令、硬件实现的状态机、和/或其任何组合的流程图。机器可读指令可以是可执行程序或可执行程序的一部分,该可执行程序或可执行程序的一部分用于由计算机处理器(例如下面结合图11讨论的示例性处理器平台1100中所示的处理器1112)执行。该程序可以体现在被存储在非暂时性计算机可读存储介质(例如CD-ROM、软盘、硬盘驱动器、DVD、蓝光盘、或与处理器1112相关联的存储器)上的软件中,但是整个程序和/或其部分可以替代地由处理器1112以外的设备执行,和/或体现在固件或专用硬件中。此外,尽管参考图8和图9所示的流程图描述示例性程序,但是可以替代地使用实现示例性远程设备106的许多其它方法。例如,可以改变框的执行顺序,和/或可以改变、消除或组合所描述的一些框。另外地或替代地,任何或所有框可以由被构造为执行相应的操作的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现,而无需执行软件或固件。
如上所述,图8至图9的示例性过程可以使用可执行指令(例如,计算机和/或机器可读指令)来实现,该可执行指令存储在非暂时性计算机和/或机器可读介质上,例如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或任何其它存储设备或存储盘,其中信息被存储达任何持续时间(例如,延长的时间段、永久地、短暂地、临时缓冲和/或用于信息缓存)。
图8是表示可以被执行以实现图1和/或图3的示例性远程设备106的替代示例性机器可读指令的流程图。更具体地,图8表示由执行PSK认证过程的远程设备106实现的示例性过程(例如,对应于图4的数据流程图400)。图8的示例性过程开始于:在框802处,示例性BLE通信控制器308打开BLE连接应用。结果,BLE通信接口302可以开始检测对数据(例如在图6的框604处由现场设备102通告的数据)进行通告的其它设备。在框804处,示例性用户接口312显示附近检测到的BLE设备的列表。在该示例中,该列表包括现场设备102。在框806处,示例性用户接口312接收从列表中对现场设备102的选择。在框808处,示例性BLE通信接口302与现场设备102建立未配对的BLE连接。
在框810处,示例性用户接口312从现场设备102接收服务器随机数。这对应于在图6的框608处发送的服务器随机数。在框812处,示例性用户接口312基于用户输入的输入来接收口令码(例如,短PSK)。在框814处,示例性BLE通信控制器308基于用户输入的输入来获取和/或生成用于现场设备102的PSK(例如,长PSK)。在一些示例中,使用中间件来获取和/或生成PSK。在一些示例中,通过经由示例性通信接口314与第三方密钥管理服务进行通信来获取和/或生成PSK。在框816处,BLE通信接口302发送带有服务器随机数的HMAC(使用PSK生成)的明文客户端问候。这对应于在图6的框612处由现场设备接收的客户端问候。此后,在框818处,BLE通信接口302从现场设备接收带有服务器完成消息的服务器问候。这对应于在图6的框620处发送的服务器问候。
在框820处,BLE消息分析器306确定服务器完成消息是否可被检验。在一些示例中,通过独立地生成客户端/服务器握手记录的哈希并将其与服务器完成消息进行比较,来完成服务器完成消息的检验。如果不可检验服务器完成消息,则控制前进到框828,在框828处,BLE通信接口206终止与现场设备102的连接。此后,图8的示例性过程结束。如果客户端完成消息可以被检验(框820),则控制前进到框822,在框822处,示例性BLE通信接口302发送客户端完成消息。这对应于在图6的框622处由现场设备102接收的客户端完成消息。在框824处,示例性BLE通信接口302接收使用PSK加密的秘密会话密钥(对应于在图6的框628处发送的消息)。在框826处,示例性BLE通信控制器308基于客户端问候中的请求的许可级别(在框816处发送)来授权远程设备106。此后,图8的示例性过程结束。
图9是表示可以被执行以实现图1和/或3的示例性远程设备106的替代示例性机器可读指令的流程图。更具体地,图9表示由执行ECDHE-PSK认证过程的远程设备106实现的示例过程(例如,对应于图5的数据流程图500)。图9的示例性过程以与图8的示例性过程相同的方式开始。例如,图9的框902-914与图8的框802-812相同。在框916处,示例性BLE通信控制器308生成DHE公开/私有密钥对。在框918处,示例性BLE通信接口302发送带有服务器随机数的HMAC(使用PSK生成)和带有由远程设备106生成的公开DH密钥的明文客户端问候。这对应于在图7的框712处由现场设备102接收的客户端问候。此后,在框920处,BLE通信接口302从现场设备接收带有由现场设备102生成的公开DH密钥和服务器完成消息的服务器问候。这对应于在图7的框720处发送的服务器问候。
在框922处,BLE消息分析器306确定服务器完成消息是否可被检验。在一些示例中,通过独立地生成客户端/服务器握手记录的HMAC并将其与服务器完成消息进行比较,来完成服务器完成消息的检验。如果服务器完成消息不可被检验,则控制前进到框930,在框930处,BLE通信接口302终止与现场设备102的连接。此后,图9的示例性过程结束。如果客户端完成消息可被检验(框922),则控制前进到框924,在框924处,示例性BLE通信接口302发送客户端完成消息。这对应于在图7的框722处由现场设备102接收的客户端完成消息。在框926处,示例性BLE通信接口302生成ECDHE秘密会话密钥。在一些示例中,基于在框916处生成的私有公开密钥和在框920处从现场设备接收的公开DH密钥,为当前通信会话生成秘密会话密钥。以此方式,在框920处生成的ECDHE秘密会话密钥将匹配在图7的框726处由现场设备102生成的ECDHE秘密会话密钥。在框928处,示例性BLE通信控制器308基于客户端问候中的请求的许可级别(在框918处发送)来授权远程设备106。此后,图9的示例性过程结束。
图10是被构造为执行图6和图7的指令以实现图1和/或图2的现场设备102的示例性处理器平台1000的框图。处理器平台1000可以是例如服务器、个人计算机、工作站、自学习机(例如神经网络)、移动设备(例如蜂窝电话、智能电话、平板设备(诸如iPadTM))、个人数字助理(PDA)、互联网设备、或任何其它类型的计算设备。
所示示例的处理器平台1000包括处理器1012。所示示例的处理器1012是硬件。例如,处理器1012可以由来自任何期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在该示例中,处理器实现示例性现场设备MCU 202、示例性BLE消息生成器208、示例性BLE消息分析器210和示例性BLE通信控制器212。
所示示例的处理器1012包括本地存储器1013(例如,高速缓存)。所示示例的处理器1012经由总线1018与包括易失性存储器1014和非易失性存储器1016的主存储器通信。易失性存储器1014可以由同步动态随机存取存储器(SDRAM)、动态随机存储器、动态随机存取存储器/>和/或任何其它类型的随机存取存储器设备来实现。非易失性存储器1016可以由闪存和/或任何其它期望类型的存储设备来实现。对主存储器1014、1016的访问由存储器控制器控制。
所示示例的处理器平台1000还包括接口电路1020。接口电路1020可以通过任何类型的接口标准(例如以太网接口、通用串行总线(USB)、蓝接口、近场通信(NFC)接口和/或PCI Express接口)来实现。在该示例中,接口电路1020实现示例性本地用户接口204和示例性BLE通信接口206。
在所示示例中,一个或多个输入设备1022连接到接口电路1020。输入设备1022允许用户将数据和/或命令输入到处理器1012中。输入设备可以由例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、isopoint和/或语音识别系统来实现。
一个或多个输出设备1024也连接到所示示例的接口电路1020。输出设备1024可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、平面转换(in-place switching,IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路1020通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
所示示例的接口电路1020还包括通信设备,诸如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络1026与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、视线(line-of-site)无线系统、蜂窝电话系统等。
所示示例的处理器平台1000还包括用于存储软件和/或数据的一个或多个大容量存储装置1028。这种大容量存储装置1028的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、独立盘冗余阵列(RAID)系统和数字多功能盘(DVD)驱动器。在该示例中,大容量存储装置1028实现示例性数据库214。
图6和图7的机器可执行指令1032可以存储在大容量存储装置1028、易失性存储器1014、非易失性存储器1016中,和/或存储在可移动的非暂时性计算机可读存储介质(诸如CD或DVD)上。
图11是被构造为执行图8和图9的指令以实现图1和/或图3的远程设备106的示例性处理器平台1100的框图。处理器平台1100可以是例如服务器、个人计算机、工作站、自学习机(例如神经网络)、移动设备(例如蜂窝电话、智能电话、平板设备(如iPadTM))、个人数字助理(PDA)、互联网设备、或任何其它类型的计算设备。
所示示例的处理器平台1100包括处理器1112。所示示例的处理器1112是硬件。例如,处理器1112可以由来自任何期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在该示例中,处理器实现示例性BLE消息生成器304、示例性BLE消息分析器306和示例性BLE通信控制器308。
所示示例的处理器1112包括本地存储器1113(例如,高速缓存)。所示示例的处理器1112经由总线1118与包括易失性存储器1114和非易失性存储器1116的主存储器通信。易失性存储器1114可以由同步动态随机存取存储器(SDRAM)、动态随机存储器、动态随机存取存储器/>和/或任何其它类型的随机存取存储器设备来实现。非易失性存储器1116可以由闪存和/或任何其它期望类型的存储器设备来实现。对主存储器1114、1116的访问由存储器控制器控制。
所示示例的处理器平台1100还包括接口电路1120。接口电路1120可以通过任何类型的接口标准(例如以太网接口、通用串行总线(USB)、蓝接口、近场通信(NFC)接口和/或PCI Express接口)来实现。在该示例中,接口电路1120实现示例性BLE通信接口302、示例性用户接口312和示例性通信接口314。
在所示示例中,一个或多个输入设备1122连接到接口电路1120。输入设备1122允许用户将数据和/或命令输入到处理器1112中。输入设备可以由例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、isopoint和/或语音识别系统来实现。
一个或多个输出设备1124也连接到所示示例的接口电路1120。输出设备1124可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、平面转换(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路1120通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
所示示例的接口电路1120还包括通信设备,诸如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络1126与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、视线无线系统、蜂窝电话系统等。
所示示例的处理器平台1100还包括用于存储软件和/或数据的一个或多个大容量存储装置1128。这种大容量存储装置1128的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统和数字多功能盘(DVD)驱动器。在该示例中,大容量存储装置1128实现示例性数据库310。
图8和图9的机器可执行指令1132可以存储在大容量存储装置1128、易失性存储器1114、非易失性存储器1116中,和/或存储在可移动的非暂时性计算机可读存储介质(诸如CD或DVD)上。
根据前述内容,将理解,已经公开了示例方法、装置和制品,其使得能够基于多个不同的登录或认证过程通过BLE网络在现场设备与远程设备之间建立安全(加密和认证)的无线连接。本文公开的示例克服了在过程控制系统中的现场设备的情形中特别出现的技术挑战。特别地,现场设备通常是独立设备,其被实现为嵌入式系统而没有键盘、显示器或其它用户接口来实现与用户的交互。结果,用于由服务器实现安全密钥管理的典型方法不能由现场设备来完成。此外,现场设备通常具有严格的功率预算,从而防止通常为BLE网络实现的某些认证过程所需的计算密集型的计算。这些挑战通过在网络的客户端侧使用中间件实现密钥管理来克服,以卸载处理和存储器需求,如果在其它情形下将现场设备用作典型服务器,则处理和存储器需求原本将施加在现场设备上。此外,实现了对现有认证过程的修改,其使得能够进行更有效的计算,从而使得能够在许多现场设备的能量限制内执行该过程。因此,所公开的方法、装置和制品涉及计算机功能上的一个或多个改进。
尽管本文已经公开了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,该专利涵盖了完全落入本专利权利要求范围内的所有方法、装置和制品。
Claims (51)
1.一种现场设备,包括:
蓝牙低能量(BLE)通信接口,以通过未配对的BLE连接从远程设备接收第一初始化消息,所述第一初始化消息包括明文消息,所述明文消息包含认证内容,所述认证内容是基于使用中间件而可用于所述远程设备的私有认证令牌来生成的;以及
BLE消息分析器,以基于所述认证内容使用由所述现场设备存储的所述私有认证令牌来验证所述明文消息,所述BLE通信接口通过所述未配对的BLE连接向所述远程设备发送第二初始化消息,所述第二初始化消息包括第一基于哈希的消息认证码(HMAC),所述第一HMAC是基于(i)所述第一初始化消息的内容和(ii)除了所述第一HMAC以外的所述第二初始化消息的内容,所述第一HMAC使用所述私有认证令牌来生成。
2.根据权利要求1所述的现场设备,其中,所述BLE通信接口发送用于所述现场设备的独特标识符,以促进所述远程设备对所述私有认证令牌的获取。
3.根据权利要求1所述的现场设备,其中,所述BLE通信接口从所述远程设备接收客户端完成消息,所述客户端完成消息包括(i)所述第一初始化消息的内容和(ii)包括所述第一HMAC的所述第二初始化消息的内容的第二HMAC,所述第二HMAC使用所述私有认证令牌来生成,所述现场设备还包括BLE通信控制器,用于通过独立地生成所述第二HMAC来检验所述客户端完成消息。
4.根据权利要求1所述的现场设备,还包括BLE通信控制器,用于执行以下操作:
生成第二公开Diffie-Helman(DH)密钥;以及
基于所述第二公开DH密钥和由所述远程设备生成的第一公开DH密钥,生成用于所述现场设备与所述远程设备之间的通信会话的秘密会话密钥,所述第一初始化消息的内容包括所述第一公开DH密钥,所述第二初始化消息的内容包括所述第二公开DH密钥。
5.根据权利要求4所述的现场设备,其中,所述通信会话是第一通信会话,并且所述秘密会话密钥是第一秘密会话密钥,所述BLE通信控制器基于所述第二公开DH密钥生成用于第二通信会话的第二秘密会话密钥。
6.根据权利要求4所述的现场设备,其中,所述BLE通信控制器使用小于200μJ来生成所述第二公开DH密钥。
7.根据权利要求4所述的现场设备,其中,所述BLE通信控制器基于FourQ椭圆曲线来生成所述第二公开DH密钥。
8.根据权利要求1所述的现场设备,其中,所述第二初始化消息标识多个允许的认证过程中的至少一个认证过程,以在所述远程设备与所述现场设备之间建立安全协定。
9.根据权利要求8所述的现场设备,其中,所述多个允许的认证过程包括预共享密钥(PSK)过程、椭圆曲线Diffie-Hellman临时(ECDHE)过程、或椭圆曲线数字签名算法(ECDSA)中的至少一个。
10.根据权利要求8所述的现场设备,还包括BLE通信控制器,用于生成用于所述现场设备与所述远程设备之间的通信会话的秘密密钥,所述秘密密钥根据所述多个允许的认证过程中的所述至少一个认证过程来生成。
11.根据权利要求10所述的现场设备,其中,所述BLE通信接口向所述远程设备发送第一加密消息,所述第一加密消息包括所述秘密密钥,所述第一加密消息是基于所述私有认证令牌进行加密的。
12.根据权利要求10所述的现场设备,其中,所述BLE通信控制器生成第二公开Diffie-Helman(DH)密钥,并基于从所述远程设备接收的第一公开DH密钥生成所述秘密密钥,所述BLE通信接口向所述远程设备发送所述第二公开DH密钥,以使所述远程设备能够单独地生成所述秘密密钥。
13.根据权利要求1所述的现场设备,其中,所述BLE通信接口从所述远程设备接收检验消息,所述检验消息是基于所述私有认证令牌进行加密的,所述现场设备还包括BLE通信控制器,用于在所述检验消息确认对所述远程设备的认证时授权所述现场设备与所述远程设备之间的通信。
14.根据权利要求1所述的现场设备,其中,所述认证内容包括基于所述私有认证令牌生成的消息认证码(MAC)。
15.根据权利要求1所述的现场设备,其中,所述BLE通信接口使用所述私有认证令牌来发送随机数的基于哈希的消息认证码(HMAC)。
16.根据权利要求15所述的现场设备,还包括BLE通信控制器,用于在无法基于所述HMAC验证所述明文消息时自动终止与所述远程设备的所述未配对的BLE连接。
17.根据权利要求1所述的现场设备,还包括BLE通信控制器,用于响应于来自所述远程设备的对提供积极设备识别的请求而生成用于积极地识别所述现场设备的输出信号。
18.一种非暂时性计算机可读介质,其包括指令,所述指令在被执行时使过程控制系统中的现场设备至少执行以下操作:
通过未配对的蓝牙低能量(BLE)连接从远程设备接收第一初始化消息,所述第一初始化消息包括明文消息,所述明文消息包含认证内容,所述认证内容是基于使用中间件而可用于所述远程设备的私有认证令牌来生成的;
基于所述认证内容使用由所述现场设备存储的所述私有认证令牌来验证所述明文消息;以及
通过所述未配对的BLE连接向所述远程设备发送第二初始化消息,所述第二初始化消息包括第一基于哈希的消息认证码(HMAC),所述第一HMAC是基于(i)所述第一初始化消息的内容和(ii)除了所述第一HMAC以外的所述第二初始化消息的内容,所述第一HMAC使用所述私有认证令牌来生成。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备发送用于所述现场设备的独特标识符,以促进所述远程设备对所述私有认证令牌的获取。
20.根据权利要求18所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备检验从所述远程设备接收的客户端完成消息,所述客户端完成消息包括(i)所述初始化消息的所述内容和(ii)包括所述第一HMAC的所述第二初始化消息的内容的第二HMAC,所述第二HMAC使用所述私有认证令牌来生成。
21.根据权利要求18所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备执行以下操作:
生成第二公开Diffie-Helman(DH)密钥;以及
基于所述第二公开DH密钥和由所述远程设备生成的第一公开DH密钥,生成用于所述现场设备与所述远程设备之间的通信会话的秘密会话密钥,所述第一初始化消息的内容包括所述第一公开DH密钥,所述第二初始化消息的内容包括所述第二公开DH密钥。
22.根据权利要求21所述的非暂时性计算机可读介质,其中,所述通信会话是第一通信会话,并且所述秘密会话密钥是第一秘密会话密钥,所述指令还使所述现场设备基于所述第二公开DH密钥来生成用于第二通信会话的第二秘密会话密钥。
23.根据权利要求21所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备使用小于200μJ来生成所述第二公开DH密钥。
24.根据权利要求21所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备基于FourQ椭圆曲线来生成所述第二公开DH密钥。
25.根据权利要求18所述的非暂时性计算机可读介质,其中,所述第二初始化消息标识多个允许的认证过程中的至少一个认证过程,以在所述远程设备与所述现场设备之间建立安全协定。
26.根据权利要求25所述的非暂时性计算机可读介质,其中,所述多个允许的认证过程包括预共享密钥(PSK)过程、椭圆曲线Diffie-Hellman临时(ECDHE)过程、或椭圆曲线数字签名算法(ECDSA)中的至少一个。
27.根据权利要求25所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备生成用于所述现场设备与所述远程设备之间的通信会话的秘密密钥,所述秘密密钥根据所述多个允许的认证过程中的所述至少一个认证过程来生成。
28.根据权利要求27所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备向所述远程设备发送第一加密消息,所述第一加密消息包括所述秘密密钥,所述第一加密消息是基于所述私有认证令牌进行加密的。
29.根据权利要求27所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备执行以下操作:
生成第二公开Diffie-Helman(DH)密钥;
向所述远程设备发送所述第二公开DH密钥;以及
基于从所述远程设备接收的第一公开DH密钥来生成所述秘密密钥。
30.根据权利要求18所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备执行以下操作:
从所述远程设备接收检验消息,所述检验消息是基于所述私有认证令牌进行加密的;以及
当所述检验消息确认对所述远程设备的认证时,授权所述现场设备与所述远程设备之间的通信。
31.根据权利要求18所述的非暂时性计算机可读介质,其中,所述认证内容包括基于所述私有认证令牌生成的消息认证码(MAC)。
32.根据权利要求18所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备执行以下操作:
生成随机数:以及
使用所述私有认证令牌来发送所述随机数的基于哈希的消息认证码(HMAC)。
33.根据权利要求32所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备在无法基于所述HMAC验证所述明文消息时自动终止与所述远程设备的所述未配对的BLE连接。
34.根据权利要求18所述的非暂时性计算机可读介质,其中,所述指令还使所述现场设备响应于来自所述远程设备的对提供积极设备识别的请求而生成用于积极地识别所述现场设备的输出信号,所述输出信号包括使与所述现场设备相关联的显示器或指示灯中的至少一个闪烁。
35.一种在远程设备与过程控制系统中的现场设备之间建立安全无线连接的方法,所述方法包括:
在所述过程控制系统中的所述现场设备处,通过未配对的蓝牙低能量(BLE)连接从所述远程设备接收第一初始化消息,所述第一初始化消息包括明文消息,所述明文消息包含认证内容,所述认证内容是基于使用中间件而可用于所述远程设备的私有认证令牌来生成的;
基于所述认证内容使用由所述现场设备存储的所述私有认证令牌来验证所述明文消息;以及
由所述现场设备通过所述未配对的BLE连接向所述远程设备发送第二初始化消息,所述第二初始化消息包括第一基于哈希的消息认证码(HMAC),所述第一HMAC是基于(i)所述第一初始化消息的内容和(ii)除了所述第一HMAC以外的所述第二初始化消息的内容,所述第一HMAC使用所述私有认证令牌来生成。
36.根据权利要求35所述的方法,还包括:由所述现场设备发送用于所述现场设备的独特标识符,以促进所述远程设备对所述私有认证令牌的获取。
37.根据权利要求35所述的方法,还包括:检验从所述远程设备接收的客户端完成消息,所述客户端完成消息包括(i)所述第一初始化消息的内容和(ii)包括所述第一HMAC的所述第二初始化消息的内容的第二HMAC,所述第二HMAC使用所述私有认证令牌来生成。
38.根据权利要求35所述的方法,还包括:
生成第二公开Diffie-Helman(DH)密钥;以及
基于所述第二公开DH密钥和由所述远程设备生成的第一公开DH密钥,生成用于所述现场设备与所述远程设备之间的通信会话的秘密会话密钥,所述第一初始化消息的内容包括所述第一公开DH密钥,所述第二初始化消息的内容包括所述第二公开DH密钥。
39.根据权利要求38所述的方法,其中,所述通信会话是第一通信会话,并且所述秘密会话密钥是第一秘密会话密钥,所述方法还包括:基于所述第二公开DH密钥来生成用于第二通信会话的第二秘密会话密钥。
40.根据权利要求38所述的方法,还包括:使用小于200μJ来生成所述第二公开DH密钥。
41.根据权利要求38所述的方法,还包括:基于FourQ椭圆曲线来生成所述第二公开DH密钥。
42.根据权利要求35所述的方法,其中,所述第二初始化消息标识多个允许的认证过程中的至少一个认证过程,以在所述远程设备与所述现场设备之间建立安全协定。
43.根据权利要求42所述的方法,其中,所述多个允许的认证过程包括预共享密钥(PSK)过程、椭圆曲线Diffie-Hellman临时(ECDHE)过程、或椭圆曲线数字签名算法(ECDSA)中的至少一个。
44.根据权利要求42所述的方法,还包括:在所述现场设备处,生成用于所述现场设备与所述远程设备之间的通信会话的秘密密钥,所述秘密密钥根据所述多个允许的认证过程中的所述至少一个认证过程来生成。
45.根据权利要求44所述的方法,还包括:由所述现场设备向所述远程设备发送第一加密消息,所述第一加密消息包括所述秘密密钥,所述第一加密消息是基于所述私有认证令牌进行加密的。
46.根据权利要求44所述的方法,还包括:
在所述现场设备处,生成第二公开Diffie-Helman(DH)密钥;
向所述远程设备发送第二公开DH密钥;以及
在所述现场设备处,基于从所述远程设备接收的第一公开DH密钥来生成所述秘密密钥。
47.根据权利要求35所述的方法,还包括:
在所述现场设备处,从所述远程设备接收检验消息,所述检验消息是基于所述私有认证令牌进行加密的;以及
当所述检验消息确认对所述远程设备的认证时,授权所述现场设备与所述远程设备之间的通信。
48.根据权利要求35所述的方法,其中,所述认证内容包括基于所述私有认证令牌来生成的消息认证码(MAC)。
49.根据权利要求35所述的方法,还包括:使用所述私有认证令牌来发送随机数的基于哈希的消息认证码(HMAC)。
50.根据权利要求49所述的方法,还包括:当无法基于所述HMAC来验证所述明文消息时,自动终止与所述远程设备的所述未配对的BLE连接。
51.根据权利要求35所述的方法,还包括:响应于来自所述远程设备的对提供积极设备识别的请求,由所述现场设备生成用于积极地识别所述现场设备的输出信号,所述输出信号包括使与所述现场设备相关联的显示器或指示灯中的至少一个闪烁。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862781355P | 2018-12-18 | 2018-12-18 | |
US62/781,355 | 2018-12-18 | ||
US16/549,168 | 2019-08-23 | ||
US16/549,168 US11533598B2 (en) | 2018-12-18 | 2019-08-23 | Methods and apparatus to establish secure low energy wireless communications in a process control system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111343613A CN111343613A (zh) | 2020-06-26 |
CN111343613B true CN111343613B (zh) | 2024-06-25 |
Family
ID=71072038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911311931.2A Active CN111343613B (zh) | 2018-12-18 | 2019-12-18 | 在过程控制系统中建立安全的低能量无线通信的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11533598B2 (zh) |
CN (1) | CN111343613B (zh) |
WO (1) | WO2020131540A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7010863B2 (ja) * | 2019-02-18 | 2022-01-26 | ファナック株式会社 | 制御装置、プログラム、及び無線通信機器 |
US11330094B2 (en) | 2019-03-29 | 2022-05-10 | Snap Inc. | Eyewear with customizable notifications |
EP3767849A1 (en) * | 2019-07-18 | 2021-01-20 | Nagravision SA | A hardware component and a method for implementing a camouflage of current traces generated by a digital system |
EP3829108A1 (en) * | 2019-11-29 | 2021-06-02 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and remote sharing method |
WO2022021087A1 (zh) * | 2020-07-28 | 2022-02-03 | 华为技术有限公司 | 一种蓝牙节点配对方法及相关装置 |
US11716206B2 (en) * | 2020-11-02 | 2023-08-01 | International Business Machines Corporation | Certificate based security using post quantum cryptography |
TWI749892B (zh) * | 2020-11-23 | 2021-12-11 | 中華電信股份有限公司 | 安全傳輸系統及其方法 |
US11757659B2 (en) | 2020-12-01 | 2023-09-12 | International Business Machines Corporation | Post-quantum certificate binding |
US11343146B1 (en) * | 2021-01-14 | 2022-05-24 | Dell Products L.P. | Automatically determining configuration-based issue resolutions across multiple devices using machine learning models |
DE102023100650A1 (de) * | 2023-01-12 | 2024-07-18 | Krohne S.A.S. | Verfahren zur Initialisierung einer Kommunikationsverbindung zwischen einem Feldgerät und einem Bediengerät |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880889B1 (en) * | 2007-03-02 | 2014-11-04 | Citigroup Global Markets, Inc. | Systems and methods for remote authorization of financial transactions using public key infrastructure (PKI) |
GB201221433D0 (en) * | 2012-11-28 | 2013-01-09 | Hoverkey Ltd | A method and system of providing authentication of user access to a computer resource on a mobile device |
US9363010B2 (en) * | 2012-12-03 | 2016-06-07 | Samsung Electronics Co., Ltd. | Mobile terminal and method of controlling function of the mobile terminal |
WO2017132136A1 (en) * | 2016-01-26 | 2017-08-03 | Google Inc. | Secure connections for low-power devices |
US9990783B2 (en) * | 2016-02-16 | 2018-06-05 | GM Global Technology Operations LLC | Regulating vehicle access using cryptographic methods |
EP3419240B1 (en) * | 2017-06-20 | 2023-09-06 | Bitwards Oy | Secure access to resources |
US11729612B2 (en) * | 2018-03-08 | 2023-08-15 | Cypress Semiconductor Corporation | Secure BLE just works pairing method against man-in-the-middle attack |
-
2019
- 2019-08-23 US US16/549,168 patent/US11533598B2/en active Active
- 2019-12-12 WO PCT/US2019/065847 patent/WO2020131540A1/en active Application Filing
- 2019-12-18 CN CN201911311931.2A patent/CN111343613B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2020131540A1 (en) | 2020-06-25 |
US11533598B2 (en) | 2022-12-20 |
US20200196122A1 (en) | 2020-06-18 |
CN111343613A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111343613B (zh) | 在过程控制系统中建立安全的低能量无线通信的方法和装置 | |
WO2019120091A1 (zh) | 身份认证方法、系统及计算设备 | |
US11563775B2 (en) | Systems and methods for securely pairing a transmiting device with a receiving device | |
JP6976949B2 (ja) | サーバーと医療デバイスとの間の鍵配布のための方法及びシステム | |
CN107637039B (zh) | 执行所有者转移的系统和转移设备所有权的方法和系统 | |
US11736304B2 (en) | Secure authentication of remote equipment | |
US20170214664A1 (en) | Secure connections for low power devices | |
WO2015180691A1 (zh) | 验证信息的密钥协商方法及装置 | |
US20200302043A1 (en) | Authentication system | |
JP6807153B2 (ja) | セキュアな聴覚装置の通信のための装置および関係する方法 | |
WO2021093722A1 (zh) | 控制方法、装置和系统 | |
US10972912B1 (en) | Dynamic establishment of trust between locally connected devices | |
CN113411187A (zh) | 身份认证方法和系统、存储介质及处理器 | |
EP3624394B1 (en) | Establishing a protected communication channel through a ttp | |
KR102377045B1 (ko) | 하드웨어 보안 모듈을 이용한 클라우드를 통한 IoT(Internet of Thing) 디바이스 인증 시스템 및 방법 | |
CN116961973A (zh) | 数据传输方法、装置、电子设备及计算机可读存储介质 | |
WO2016003310A1 (en) | Bootstrapping a device to a wireless network | |
CN117240475B (zh) | 一种智能门锁的通信方法、系统、设备及介质 | |
US11528144B1 (en) | Optimized access in a service environment | |
US11785005B2 (en) | Secure tunneling with implicit device identification | |
Weber et al. | How to Prevent Misuse of IoTAG? | |
KR20170013141A (ko) | 클라이언트 인증 방법, 클라이언트의 동작 방법, 서버, 및 통신 소프트웨어 | |
CN118215044A (zh) | 用于无线通信的方法、无线端口连接设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |