Wireless communication security for analyte monitoring systems
Techniques for performing application-layer security are disclosed. In certain embodiments, analyte data may be obtained from an analyte sensor operatively coupled to a sensor electronics module of an analyte sensor system. Thereafter, the analyte data may be encrypted, in an application layer of a protocol stack of the sensor electronics module using a session key established between the analyte sensor system and a display device. The encrypted analyte data may then be transmitted to a display device.
1 . A computer-implemented method for transmitting analyte data performed by a sensor electronics module of an analyte sensor system, comprising:
establishing a shared secret with a display device;
receiving a first challenge message from the display device;
generating a second challenge message based, at least in part, on an authentication key derived from the shared secret;
generating a first challenge response message based, at least in part, on the authentication key and the first challenge message;
transmitting the first challenge response message and the second challenge message to the display device;
obtaining the analyte data from an analyte sensor operatively coupled to the sensor electronics module;
encrypting, in an application layer of a protocol stack of the sensor electronics module, the analyte data using a session key established between the analyte sensor system and the display device based, at least in part, on the shared secret, the first challenge message, and the second challenge message; and
transmitting the encrypted analyte data to the display device.
2 . The computer-implemented method of claim 1 , wherein establishing the shared secret with the display device is based on a juggling password authenticated key exchange using elliptic curve cryptography (EC-JPAKE) protocol.
3 . The computer-implemented method of claim 1 , further comprising generating a data protection key (DPK) and a device identification key (DIK).
4 . The computer-implemented method of claim 3 , wherein the DPK and the DIK are generated based, at least in part, on the shared secret, the first challenge message, and the second challenge message.
5 . The computer-implemented method of claim 3 , further comprising generating an intermediate password authenticated key exchange key (PAKEkey) based, at least in part, on the shared secret, the first challenge message, and the second challenge message.
6 . The computer-implemented method of claim 5 , wherein the DPK and DIK are generated based on a public key infrastructure (PKI) private key of the analyte sensor system, a PKI public key of the display device, and the intermediate PAKEkey.
7 . The computer-implemented method of claim 3 , further comprising:
receiving, from the display device, a second challenge response message;
generating a third challenge response message based, at least in part, on the authentication key and the second challenge message;
verifying that the second challenge response message received from the display device matches the third challenge response message generated by the sensor electronics module; and
transmitting, based on the verifying, an authentication completion message to the display device.
8 . The computer-implemented method of claim 7 , further comprising:
maintaining a list of device identification keys (DIKs) and corresponding data protection keys (DPKs) associated with one or more display devices;
receiving a first identification field and a first random number from a display device of the one or more display devices;
selecting, from the list of DIKs, a DIK associated with the display device;
generating a second identification field based on the selected DIK associated with the display device and the first random number received form the display device; and
verifying that the first identification field received from the display device matches the second identification field generated by the sensor electronics module.
9 . The computer-implemented method of claim 8 , wherein the first identification field and the second identification field are padded based on a cryptography standard.
10 . The computer-implemented method of claim 8 , further comprising:
generating, based on the verifying, a second random number;
generating a third identification field based on the selected DIK associated with the display device and a second random number;
transmitting the third identification field and the second random number to the display device; and
generating the session key and a nonce based on the first random number, the second random number, and a DPK corresponding to the selected DIK associated with the display device.
11 . The computer-implemented method of claim 10 , wherein the third identification field is padded based on a cryptography standard.
12 . The computer-implemented method of claim 1 , further comprising:
encrypting, in a lower layer of the protocol stack of the sensor electronics module, the encrypted analyte data using a protocol-specific security key established between the analyte sensor system and the display device to obtain two-level encrypted analyte data, wherein transmitting the encrypted analyte data to the display device comprises transmitting the two-level encrypted analyte data to the display device.
13 . A computer-implemented method for communicating analyte data performed by a display device, comprising:
establishing a shared secret with an analyte sensor system;
generating a first challenge message based on an authentication key derived from the shared secret;
transmitting the first challenge message to the analyte sensor system;
receiving, from the analyte sensor system, a first challenge response message and a second challenge message;
receiving encrypted analyte data from the analyte sensor system; and
decrypting, in an application layer of a protocol stack of the display device, the encrypted analyte data using a session key established between the analyte sensor system and the display device based, at least in part, on the shared secret, the first challenge message, and the second challenge message.
14 . The computer-implemented method of claim 13 , wherein establishing the shared secret with the display device is based on a juggling password authenticated key exchange using elliptic curve cryptography (EC-JPAKE) protocol.
15 . The computer-implemented method of claim 13 , further comprising:
generating a second challenge response message based, at least in part, on an authentication key derived from the shared secret and the first challenge message; and
verifying that the first challenge response message received from the analyte sensor system matches the second challenge response message generated by the display device.
16 . The computer-implemented method of claim 15 , further comprising generating a data protection key (DPK) and a device identification key (DIK).
17 . The computer-implemented method of claim 16 , further comprising:
generating, based on the verifying, a third challenge response message based, at least in part, on the authentication key and the second challenge message;
transmitting the third challenge response message to the analyte sensor system; and
receiving, based on the third challenge response message, an authentication completion message from the analyte sensor system.
18 . The computer-implemented method of claim 17 , further comprising:
generating a first identification field based on the DIK and a first random number;
transmitting the first identification field and the first random number to the analyte sensor system;
receiving, based on the first identification field and the first random number, a second identification field and a second random number from the analyte sensor system;
generating a third identification field based on the DIK and the second random number; and
verifying that the second identification field received from the analyte sensor system matches the third identification field generated by the display device.
19 . The computer-implemented method claim 18 , further comprising generating, based on the verifying, the session key and a nonce based on the DPK, the first random number, and the second random number.
20 . The computer-implemented method of claim 13 , wherein:
the encrypted analyte data is encrypted twice based on the session key and a protocol-specific security key; and
the computer-implemented method further comprises decrypting, in a lower layer of the protocol stack of the display device, the encrypted analyte data using the protocol-specific security key established between the analyte sensor system and the display device to obtain application layer encryption (ALE)-encrypted analyte data, wherein decrypting the encrypted analyte data comprises decrypting the ALE-encrypted analyte data using the session key.