IP Library Granted Patent US 12,261,838
Granted Patent B2
US 12,261,838 · App. 18/139,498 · Granted Mar 25, 2025

System and method for pre-shared key (PSK) based content signing for tamper resistance

Inventor: Srinivas Kumar (Cupertino, CA)
Assignee: SYMMERA INC.
H04L63/0853H04L9/08H04L9/0819H04L9/083H04L9/085H04L9/088H04L9/0891H04L9/321H04L9/3242H04L9/3247H04L9/3268H04W12/0431H04W12/069H04W12/35H04W12/73
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,261,838
App. No.
18/139,498
Granted
Mar 25, 2025
Kind
B2
Abstract

The method provides an automated and scalable system for the generation, distribution, management of symmetric pre-shared keys (PSKs) to applications executing on headless and mobile devices. It helps achieve device protection, application security, and data protection with data authenticity and confidentiality in intra-device, inter-device, device-to-edge, and device-to-cloud communications. It helps Transport Layer Security (TLS) enabled applications dynamically acquire and renew PSKs and use identity hints for PSK based authentication ceremony during a TLS handshake. It helps client-server applications dynamically acquire and renew PSKs using keyed-hash message authentication code (HMAC) for data integrity and authenticity, content signing, and data encryption for confidentiality. It helps manage and distribute API shared secrets and API access tokens required for authenticated API requests and API security. It helps applications (producers, brokers, and consumers of content) with PSKs for supply chain tamper resistance. It helps real-time low-latency applications with selective encryption of partial messages.

Claims (54)

1. A method of generating, distributing, and managing a lifecycle of a symmetric pre-shared key (PSK) used in certificate-less keyed hash message authentication code (HMAC) based content signing for tamper resistance, for use between applications executing on distributed devices including a producer application executing on a producer device, a consumer application executing respectively on a consumer device, a key distribution service (KDS), a KDS proxy, a KDS interface, a symmetric KDS member M-PSK, a M-PSK identity hint, a tenant identifier, a device group identifier associated with the tenant identifier, a member domain associated with the group identifier, an application identifier associated with the group identifier, a key record, a dynamic host configuration protocol (DHCP) server, and a domain name system (DNS) server, the method comprising:

authenticating, with the KDS, by the producer application executing on the producer device, using the tenant identifier, the symmetric KDS member PSK (M-PSK) and the M-PSK identity hint, wherein the producer device is registered by a DNS hostname on the DNS server configured with the KDS or the KDS proxy, and is configured as a first member of a device group on the KDS; and

creating, by a producer application on the KDS, a symmetric pre-shared key with an associated pre-shared key (PSK) identity hint; and

signing, by the producer application executing on the producer device, digital content using the created pre-shared key; and

generating, by the producer application executing on the producer device, an associated signature manifest with the tenant identifier, the group identifier, the digital signature, and the pre-shared key identity hint; and

sending, by the producer application executing on the producer device to the consumer application executing on the consumer device, the signed digital content and the associated signature manifest; and

authenticating, with the KDS, by the consumer application executing on the consumer device, using the tenant identifier, the symmetric KDS member PSK (M-PSK) and the M-PSK identity hint, wherein the consumer device is registered by a DNS hostname on the DNS server, configured with the KDS or the KDS proxy, and is configured as a second member of the device group on the KDS; and

receiving, by the consumer application, the signed digital content and the associated signature manifest with the tenant identifier, the group identifier, the digital signature, and the pre-shared key identity hint; and

retrieving, by the consumer application from the KDS, using at least the tenant identifier, the group identifier, and the pre-shared key identity hint, the pre-shared key for the pre-shared key identity hint in the received signature manifest; and

verifying, by the consumer application, the received signed digital content using the retrieved pre-shared key to regenerate the digital signature and to compare for a match with the digital signature in the received signature manifest.

2. The method of claim 1 , wherein a device member authentication handshake is performed by the KDS interface on the producer and consumer devices using the tenant identifier, the device member PSK (M-PSK) and the M-PSK identity hint as a first factor of device authentication, and further wherein the session key is generated using a key exchange handshake between the KDS interface and the KDS or the KDS proxy, and further wherein a device member validation is performed as a second factor of device authentication by:

performing, by the KDS or the KDS proxy, a DNS reverse lookup of a device member IP address to query for the DNS hostname; and

retrieving, by the KDS or the KDS proxy, the DNS hostname from a resource record in a DNS response; and

comparing and matching, by the KDS or the KDS proxy, the retrieved DNS hostname with the device member identifier in the KDS requests.

3. The method of claim 2 , wherein a device authentication and a plurality of key exchange handshakes are performed over a connection-less UDP or connection-oriented TCP transport protocol, without requiring a security transport protocol.

4. The method of claim 1 , wherein the KDS interface provides a plurality of application programming interfaces (APIs), wherein the producer and consumer applications send a plurality of requests for key operations directly to the KDS and receive a plurality of responses for key operations directly from the KDS, or wherein the producer and consumer applications send a plurality of requests for key operations indirectly through the KDS proxy and receive a plurality of responses for key operations indirectly through the KDS proxy.

5. The method of claim 1 , wherein the producer and consumer devices are registered by a unique DNS hostname in the domain on a local DNS server with an IP address (A) record and a PTR record used in a DNS hostname reverse lookup.

6. The method of claim 1 , wherein on the KDS, the producer and consumer devices are configured as members of a tenancy associated with the tenant identifier and the device group associated with the tenant identifier, and further wherein the device group is configured with key records that include key instances used in generating and verifying digital signatures.

7. The method of claim 1 , wherein a key record configured for the device group on the KDS includes a key expiration timestamp and a key status to manage automatic key renewal, key rotation, and key revocation operations on the KDS.

8. The method of claim 1 , wherein prior to acquiring the pre-shared key from the KDS by the producer application, the pre-shared key is created on the KDS by the producer application with the producer member device as a key creator and with restricted key usage permissions for data authentication, data encryption, content signing, broadcast signing, broadcast encryption, multicast signing, multicast encryption, token signing, or token encryption operations.

9. The method of claim 1 , wherein the acquiring of the pre-shared keys from the KDS by the consumer application restricts key usage based on permissions configured by a key creator.

10. A method of claim 1 , wherein an authenticated member device's request for any key operation, based on the group identifier and the pre-shared key identity hint, is processed by the KDS and permitted based on a match of a member domain with a domain derived from a plurality of resource records retrieved by a DNS reverse lookup for a member device DNS hostname.

11. A method of claim 1 , wherein an authenticated member device's request for any key operation, based on the group identifier, the pre-shared key identity hint, and the application identifier, is processed by the KDS and permitted based on a match with an application identifier associated with the group identifier, wherein the KDS is configured to allow or deny the key operation.

12. A method of claim 1 , wherein device specific information configured as extended custom attributes for a member device is retrieved from the DHCP server using a plurality of extended KDS interface APIs to automate local device configuration and export vendor specific member device information to the KDS.

13. A method of claim 1 , wherein an authenticated member device's request for any key operation, based on the group identifier and the pre-shared key identity hint, is processed by the KDS and permitted based on a match of the member device tenant identifier with an associated license owner identifier retrieved from the DHCP server as a vendor specific member device information.

14. A method of generating, distributing, and managing a lifecycle of a symmetric pre-shared key (PSK) used in certificate-less keyed hash message authentication code (HMAC) based content signing for tamper resistance, for use between applications executing on distributed devices including a producer application executing on a producer device, a consumer application executing respectively on a consumer mobile device, a key distribution service (KDS), a KDS proxy, a KDS interface, a symmetric KDS member M-PSK, a M-PSK identity hint, a tenant identifier, a device group identifier associated with the tenant identifier, a member domain associated with the group identifier, an application identifier associated with the group identifier, a key record, and a domain name system (DNS) server, a device directory service (DDS), and a mobile service provider (MSP) server, the method comprising:

authenticating, with the KDS, by the producer application executing on the producer device, using the tenant identifier, the symmetric KDS member PSK (M-PSK) and the M-PSK identity hint, wherein the producer device is registered by a DNS hostname on the DNS server configured with the KDS or the KDS proxy, and is configured as a first member of a device group on the KDS;

creating, by a producer application on the KDS, a symmetric pre-shared key with an associated pre-shared key (PSK) identity hint;

signing, by the producer application executing on the producer device, digital content using the created pre-shared key;

generating, by the producer application executing on the producer device, an associated signature manifest with the tenant identifier, the group identifier, the digital signature, and the pre-shared key identity hint;

sending, by the producer application executing on the producer device to the consumer application executing on the consumer mobile device, the signed digital content and the associated signature manifest;

authenticating, with the KDS, by the consumer application executing on the consumer mobile device, using the tenant identifier, the symmetric KDS member PSK (M-PSK) and the M-PSK identity hint, wherein the consumer mobile device is registered by an international mobile subscriber identity (IMSI) on the MSP server, configured with the KDS or the KDS proxy, and is configured as a second member of the device group on the KDS;

receiving, by the consumer application, the signed digital content and the associated signature manifest with the tenant identifier, the group identifier, the digital signature, and the pre-shared key identity hint;

retrieving, by the consumer application from the KDS, using at least the tenant identifier, the group identifier and the pre-shared key identity hint, the pre-shared key for the pre-shared key identity hint in the received signature manifest; and

verifying, by the consumer application, the received signed digital content using the retrieved pre-shared key to regenerate the digital signature and to compare for a match with the digital signature in the received signature manifest.

15. The method of claim 14 , wherein a device member authentication handshake is performed by the KDS interface on the producer device using the tenant identifier, the device member PSK (M-PSK) and the M-PSK identity hint as a first factor of device authentication, and further wherein the session key is generated using a key exchange handshake between the KDS interface and the KDS or the KDS proxy, and further wherein a device member validation is performed as a second factor of device authentication by:

performing, by the KDS or the KDS proxy, a DNS reverse lookup of a device member IP address to query for the DNS hostname; and

retrieving, by the KDS or the KDS proxy, the DNS hostname from a resource record in a DNS response; and

comparing and matching, by the KDS or the KDS proxy, the retrieved DNS hostname with the device member identifier in the KDS requests.

16. The method of claim 14 , wherein a device authentication and a plurality of key exchange handshakes are performed over a connection-less UDP or connection-oriented TCP transport protocol, without requiring a security transport protocol.

17. The method of claim 14 , wherein a device member authentication handshake is performed by the KDS interface on the consumer mobile devices using the device member PSK (M-PSK) and the M-PSK identity hint, and further wherein the session key is generated using a key exchange handshake between the KDS interface and the KDS or the KDS proxy, and further wherein the device member validation is performed by:

receiving, by the KDS from the consumer mobile device, an integrated circuit card identifier (ICCID), an international mobile equipment identity (IMEI), and an IMSI information of the consumer mobile device; and

sending, by the KDS to the consumer mobile device, a nonce for signing by a SIM on the consumer mobile device using an authentication key stored securely with the SIM, wherein a storage location is in a card circuitry or on an applet on the SIM; and

receiving, by the KDS from the consumer mobile device, the signed nonce; and

sending, by the KDS to the mobile services provider of the consumer mobile device, the nonce and the IMSI for signing using an associated authentication key of the consumer mobile device; and

authenticating, by the KDS, the consumer mobile device by comparing and matching the signed nonces received from the consumer mobile device and the mobile service provider to authenticate and validate the consumer mobile device.

18. The method of claim 14 , wherein the KDS interface provides a plurality of application programming interfaces (APIs), wherein the producer and consumer applications send a plurality of requests for key operations directly to the KDS and receive a plurality of responses for key operations directly from the KDS, or wherein the producer and consumer applications send a plurality of requests for key operations indirectly through the KDS proxy and receive a plurality of responses for key operations indirectly through the KDS proxy.

19. The method of claim 14 , wherein on the KDS, the producer and consumer devices are configured as members of a tenancy associated with the tenant identifier and the device group associated with the tenant identifier, and further wherein the device group is configured with key records that include key instances used in generating and verifying digital signatures.

20. The method of claim 14 , wherein a key record configured for the device group on the KDS includes a key expiration timestamp and a key status to manage automatic key renewal, key rotation, and key revocation operations on the KDS.

21. The method of claim 14 , wherein prior to acquiring the pre-shared keys from the KDS by the consumer application, the pre-shared keys are created on the KDS by the producer application with the producer member device as a key creator and with restricted key usage permissions for data authentication, data encryption, content signing, broadcast signing, broadcast encryption, multicast signing, multicast encryption, token signing, or token encryption operations.

22. The method of claim 14 , wherein the acquiring of the pre-shared keys from the KDS by the consumer application restricts key usage based on permissions configured by a key creator.

23. A method of claim 14 , wherein an authenticated member device's request for any key operation, based on the group identifier and the pre-shared key identity hint, is processed by the KDS and permitted based on a match of a member domain with a domain derived from a plurality of resource records retrieved by a DNS reverse lookup for a member device DNS hostname.

24. A method of claim 14 , wherein an authenticated member device's request for any key operation, based on the group identifier, the pre-shared key identity hint, and the application identifier, is processed by the KDS and permitted based on a match with an application identifier associated with the group identifier, wherein the KDS is configured to allow or deny the key operation.

25. A method of claim 14 , wherein an authenticated member device's request for any key operation, based on the group identifier and the pre-shared key identity hint, is processed by the KDS and permitted based on a match of the member device tenant identifier with an associated license owner identifier retrieved from the DDS as a vendor specific member device information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2024
From: KUMAR, SRINIVAS
To: SYMMERA INC.
Reel/Frame 068326/0742 →
Continuity (2)
Provisional Application 63454612 · Mar 24, 2023
Related Publication 20240323027A1 · Sep 26, 2024
References Cited (107)
US 6226618B1 · Downs et al. · 2001 [cited by applicant]
US 6574609B1 · Downs et al. · 2003 [cited by applicant]
US 6587837B1 · Spagna et al. · 2003 [cited by applicant]
US 6859791B1 · Spagna et al. · 2005 [cited by applicant]
US 6983371B1 · Hurtado et al. · 2006 [cited by applicant]
US 7110984B1 · Spagna et al. · 2006 [cited by applicant]
US 7228437B2 · Spagna et al. · 2007 [cited by applicant]
US 7346580B2 · Lisanke et al. · 2008 [cited by applicant]
US 7487128B2 · Spagna et al. · 2009 [cited by applicant]
US 8180708B2 · Hurtado et al. · 2012 [cited by applicant]
US 9565172B2 · Ståhl · 2017 [cited by applicant]
US 10057243B1 · Kumar et al. · 2018 [cited by applicant]
US 10162968B1 · Kumar et al. · 2018 [cited by applicant]
US 10250383B1 · Kumar et al. · 2019 [cited by applicant]
US 10326797B1 · Murray · 2019 [cited by examiner]
US 10341321B2 · Kumar et al. · 2019 [cited by applicant]
US 10469480B2 · Kumar et al. · 2019 [cited by applicant]
US 10492069B2 · Gupta et al. · 2019 [cited by applicant]
US 10505920B2 · Kumar et al. · 2019 [cited by applicant]
US 10587586B2 · Kumar et al. · 2020 [cited by applicant]
US 10657261B2 · Kumar et al. · 2020 [cited by applicant]
US 10764040B2 · Kumar et al. · 2020 [cited by applicant]
US 10979419B2 · Kumar et al. · 2021 [cited by applicant]
US 11025627B2 · Li et al. · 2021 [cited by applicant]
US 11134379B2 · Shi · 2021 [cited by examiner]
US 11153344B2 · Hayton · 2021 [cited by applicant]
US 11206134B2 · Kumar et al. · 2021 [cited by applicant]
US 11303616B2 · Kumar et al. · 2022 [cited by applicant]
US 11349675B2 · Kim et al. · 2022 [cited by applicant]
US 11403402B2 · Kumar et al. · 2022 [cited by applicant]
US 11444753B1 · Williams et al. · 2022 [cited by applicant]
US 11451959B2 · Windsor et al. · 2022 [cited by applicant]
US 11595217B2 · Kumar et al. · 2023 [cited by applicant]
US 11627464B2 · Ficara et al. · 2023 [cited by applicant]
US 11716622B2 · Sloane · 2023 [cited by applicant]
US 20020002468A1 · Spagna et al. · 2002 [cited by applicant]
US 20020107803A1 · Lisanke et al. · 2002 [cited by applicant]
US 20030110130A1 · Pelletier · 2003 [cited by applicant]
US 20030185395A1 · Lee et al. · 2003 [cited by applicant]
US 20050251491A1 · Medina et al. · 2005 [cited by applicant]
US 20060089912A1 · Spagna et al. · 2006 [cited by applicant]
US 20080172747A1 · Hurtado et al. · 2008 [cited by applicant]
US 20090185685A1 · DeRobertis · 2009 [cited by examiner]
US 20100008500A1 · Lisanke et al. · 2010 [cited by applicant]
US 20100293370A1 · Xiao · 2010 [cited by examiner]
US 20120042160A1 · Nakhjiri · 2012 [cited by examiner]
US 20130159724A1 · Kim · 2013 [cited by examiner]
US 20150180662A1 · Cui · 2015 [cited by examiner]
US 20160156626A1 · Roth · 2016 [cited by examiner]
US 20160364553A1 · Smith et al. · 2016 [cited by applicant]
US 20170041296A1 · Ford et al. · 2017 [cited by applicant]
US 20170272944A1 · Link, II · 2017 [cited by examiner]
US 20180082083A1 · Smith et al. · 2018 [cited by applicant]
US 20180123784A1 · Gehrmann · 2018 [cited by applicant]
US 20180367506A1 · Ford et al. · 2018 [cited by applicant]
US 20190149989A1 · Moriya et al. · 2019 [cited by applicant]
US 20190222560A1 · Ford et al. · 2019 [cited by applicant]
US 20190320477A1 · Korber · 2019 [cited by applicant]
US 20190327209A1 · Seferiadis · 2019 [cited by examiner]
US 20200008029A1 · Cao · 2020 [cited by examiner]
US 20200145409A1 · Pochuev et al. · 2020 [cited by applicant]
US 20200162917A1 · Anantha et al. · 2020 [cited by applicant]
US 20200186365A1 · Kumar et al. · 2020 [cited by applicant]
US 20200295933A1 · Link, II · 2020 [cited by examiner]
US 20200382957A1 · Johnson · 2020 [cited by applicant]
US 20200396067A1 · Barker · 2020 [cited by applicant]
US 20200396604A1 · Olshansky et al. · 2020 [cited by applicant]
US 20210050999A1 · Huang et al. · 2021 [cited by applicant]
US 20210099873A1 · Windsor et al. · 2021 [cited by applicant]
US 20210194681A1 · Nix · 2021 [cited by applicant]
US 20210377252A1 · Monro · 2021 [cited by examiner]
US 20220006652A1 · Mishra et al. · 2022 [cited by applicant]
US 20220045930A1 · Williams · 2022 [cited by applicant]
US 20220060899A1 · Harding et al. · 2022 [cited by applicant]
US 20220294609A1 · Williams et al. · 2022 [cited by applicant]
US 20220376898A1 · Kaliski, Jr. et al. · 2022 [cited by applicant]
US 20220393865A1 · Williams et al. · 2022 [cited by applicant]
US 20220393866A1 · Williams et al. · 2022 [cited by applicant]
US 20220407688A1 · Childe et al. · 2022 [cited by applicant]
US 20220417742A1 · Dey et al. · 2022 [cited by applicant]
US 20230020193A1 · Williams et al. · 2023 [cited by applicant]
US 20230057469A1 · Hoole et al. · 2023 [cited by applicant]
US 20230163958A1 · Sheng · 2023 [cited by examiner]
US 20230229758A1 · Terpstra et al. · 2023 [cited by applicant]
US 20230269099A1 · Medvinsky · 2023 [cited by examiner]
US 20240214802A1 · Gupta et al. · 2024 [cited by applicant]
US 20240349052A1 · Madappa · 2024 [cited by applicant]
US 20240406726A1 · Yang et al. · 2024 [cited by applicant]
WO 2023022724A1 · 2023 [cited by applicant]
WO 2023034121A1 · 2023 [cited by applicant]
R. Housley, Guidance for External Pre-Shared Key (PSK) Usage in TLS (RFC9257), Original Publication Date: Jul. 1, 2022 IP.com No. IPCOM000271272D, IP.com Electronic Publication Date: Nov. 19, 2022, 14 pages (Year: 2022). [cited by examiner]
Diogo Domingues Regateiro, “Supporting Pre-shared Keys in Closed Implementations of TLS”, academia.edu , 8 pages (Year: 2017). [cited by examiner]
Non-Final Office Action issued on Dec. 4, 2024, in corresponding U.S. Appl. No. 18/139,486 (32 pages). [cited by applicant]
Arqit announces QuantumCloud powered b AWS, Dec. 9, 2022, 4 pps. [cited by applicant]
Raza et al, “Security Considerations for the WirelessHART Protocol”, IEEE, 2009, 8 pps. [cited by applicant]
Raza et al, “S3K: Scalable Security with Symmetric Keys—DTLS Key Establishment for the Internet of Things”, Jun. 1, 2015, 11 pps. [cited by applicant]
Siddiqa et al, “Scalable Asymmetric Security Mechanism for Internet of Things”, International Journal of Advanced Computer Science and Applications, vol. 11, No. 8, 2020, pp. 365-373. [cited by applicant]
Vohra, Meenakshi “Internet key exchange (IKE) based secure wireless and mobile networks” [online] San Jose State University, May 2004 [retrieved Jul. 5, 2023]. Retrieved from the Internet: URL: https://scholarworks.sjsu… [cited by applicant]
“Symmetric Identity Based Device Attestation” [online] TrustedComputing Group, Jan. 2020 [retrieved Jul. 5, 2023]. Retrieved from the Internet: URL: https://trustedcomputinggroup.org/wp-content/uploads/TCG_DICE_SymIDAtt… [cited by applicant]
Eronen, Ed et al. “R.F.C. 4279: Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)” [online] R.F.C., Dec. 2005 [retrieved Jul. 5, 2023] Retrieved from the Internet: URL: https://www.rfc-editor.org/rfc/rfc427… [cited by applicant]
Raza, Shahid et al. “S3K: Scalable Security With Symmetric Keys—DTLS Key Establishment for the Internet of Things” [online] IEEE, Jan. 2016 [retrieved Jul. 5, 2023]. Retrieved from the Internet: URL: https://ieeexplore.… [cited by applicant]
Non-Final Office Action, datedf Aug. 17, 2023, issued in corresponding U.S. Appl. No. 18/206,426, 17 ogs. [cited by applicant]
Notice of Allowance, dated Aug. 17, 2023, issued in corresponding U.S. Appl. No. 18/206,399, 17 pgs. [cited by applicant]
S. Maksuti et al., “Automated and Secure Onboarding for System of Systems,” in IEEE Access, vol. 9, pp. 111095-111113, 2021. ( Year: 2021). [cited by applicant]
Boskov, Ivana Arsen et al. “Time-to-Provision Evaluation of IoT Devices Using Automated Zero-Touch Provisioning.” GLOBECOM 2020—2020 IEEE Global Communications Conference (2020): pp. 1-7. (Year: 2020). [cited by applicant]
Notice of Allowance, dated Jan. 24, 2024, issued in corresponding U.S. Appl. No. 18/377,866, 48 pages. [cited by applicant]
Notice of Allowance, issued on Jan. 16, 2025, in corresponding U.S. Appl. No. 18/139,508, 47 pages. [cited by applicant]
Cited By (1)
US 12,483,548