US-12621128-B2 - System and method for establishing and maintaining trust for secure communications
Abstract
In a trust framework that enables secure communication, a configurer establishes an initial set of potential trusted relationships between a client and one or more anchors associated with one or more hosts. Once configured, the client can use a trusted relationship to securely communicate with a host without reliance on trusted third parties.
Inventors
- W. Daniel Hillis
Assignees
- APPLIED INVENTION, LLC
Dates
- Publication Date
- 20260505
- Application Date
- 20220609
Claims (20)
- 1 . A computer implemented system for establishing and maintaining trust in a secure communication system comprising: a client, a host, an anchor associated with said host, and a sustained bond state, stored by said client, wherein said host has a secure channel of communication with said anchor, and wherein said sustained bond state provides a trusted identity relationship with said anchor enabling said client to establish a secure connection with said host, wherein said sustained bond state comprises a shared secret shared by said client and said anchor, wherein said client uses said shared secret to verify an identity of said anchor upon establishing said secure connection, and wherein said client verifies said identity of said anchor by transmitting a nonce to said anchor, encoding said nonce with said shared secret, and comparing said encoded nonce with an encoded nonce received from said anchor.
- 2 . The system of claim 1 , wherein said anchor is associated with said host in a one-to-one relationship.
- 3 . The system of claim 1 , wherein said anchor is associated with multiple hosts within said secure communication system.
- 4 . The system of claim 1 , wherein said anchor is implemented in a distributed fashion.
- 5 . The system of claim 1 , wherein said client and said host open said secure connection based on said shared secret.
- 6 . The system of claim 1 , wherein said sustained bond state comprises a public key currently in use by said anchor.
- 7 . The system of claim 6 , wherein said client and said anchor use said public key to establish a shared secret and open said secure connection based on said shared secret.
- 8 . The system of claim 1 , wherein said sustained bond state is provided to said client by a configurer.
- 9 . The system of claim 8 , wherein said configurer comprises any of: a manufacturer of a device on which said client resides, a vendor of the device on which said client resides, and a configuration process operated by an enterprise that manages the device on which said client resides.
- 10 . A computer implemented system for establishing and maintaining trust in a secure communication system comprising: a client, a host, an anchor associated with said host, and a sustained bond state, stored by said client, wherein said host has a secure channel of communication with said anchor, and wherein said sustained bond state provides a trusted identity relationship with said anchor enabling said client to establish a secure connection with said host; wherein said sustained bond state comprises a hash code, wherein said hash code is stored within a key entry within said sustained bond state comprising said hash code and a specification of the hash function used to generate said hash code.
- 11 . The system of claim 10 , wherein said client receives a candidate public key and associated candidate encryption parameters from said anchor, hashes said candidate public key and associated candidate encryption parameters using said hash function, and compares the resulting hash code with said hash code.
- 12 . The system of claim 11 , wherein if said resulting hash code matches said hash code, said client and said anchor use said candidate public key to establish a shared secret and open said secure connection based on said shared secret.
- 13 . The system of claim 10 , wherein said anchor stores a list of key pairs.
- 14 . The system of claim 13 , wherein said key entry is within a set of key entries and, upon or after establishing a secure connection with said anchor, said client updates said set of key entries based on said list of key pairs.
- 15 . A computer implemented system for establishing and maintaining trust in a secure communication system comprising: a client, a host, an anchor associated with said host, and a sustained bond state, stored by said client, wherein said host has a secure channel of communication with said anchor, and wherein said sustained bond state provides a trusted identity relationship with said anchor enabling said client to establish a secure connection with said host, wherein said client establishes a new sustained bond with a new anchor via a sustained bond between said anchor and said new anchor, wherein said client establishes said new sustained bond by receiving one or more hash codes and hash function specifications from said anchor and storing them within a new sustained bond state.
- 16 . A method for establishing and maintaining trust in a secure communication system comprising: associating an anchor with a host, establishing a secure channel of communication between said host and said anchor, storing, by a client, a sustained bond state that provides a trusted identity relationship between said client and said anchor, and said client using said trusted identity relationship to establish a secure connection with said host, wherein said sustained bond state comprises a hash code, wherein said hash code is stored within a key entry within said sustained bond state comprising said hash code and a specification of the hash function used to generate said hash code.
- 17 . The method of claim 16 , wherein said sustained bond state comprises a shared secret shared by said client and said anchor.
- 18 . The method of claim 17 , wherein said client uses said shared secret to verify an identity of said anchor upon establishing said secure connection.
- 19 . The method of claim 17 , wherein said client and said host open said secure connection based on said shared secret.
- 20 . The method of claim 16 , wherein said sustained bond state comprises a public key currently in use by said anchor.
Description
CROSS-REFERENCE TO RELATED APPLICATION(S) This application claims priority to U.S. provisional patent application Ser. No. 63/209,047, filed 2021 Jun. 10, entitled “System and Method for Establishing Trust for Secure Communications”, and is related to U.S. non-provisional patent application Ser. No. 17/091,944, filed 2020 Nov. 6, entitled “A Secure Communication System”, each of which is incorporated herein in its entirety by this reference thereto. TECHNICAL FIELD The invention pertains to the field of communication networks and, in particular, systems for and methods of establishing and maintaining trust for secure communication between parties. BACKGROUND Establishing and maintaining trust is a fundamental challenge faced in the design and operation of a secure communication system. In particular, a communication system must assure that a client can reliably connect to and communicate with a host based on the name of the host. To do so, many existing communication systems require the client to place trust in third parties. For example, a client may need to rely upon a domain name system (DNS) to reliably convert a host name into a network address, and upon intermediate routers to reliably route traffic to the address provided by the DNS. Finally, the communication system must assure the client that the party reached at that address is indeed the host. That is, the client must be able to trust that the host is the entity that is specified by the name. To meet this last requirement, many existing systems, such as the widely adopted Transport Layer Security (TLS) and its predecessor Secure Sockets Layer (SSL), allow one party to authenticate its identity to the other using digital certificates within a public key infrastructure (PKI) grounded in asymmetric cryptographic techniques. Specifically, a digital certificate, issued by a certificate authority, allows a party named in the certificate to demonstrate that it is the certified owner of a public key. Once ownership of the public key has been demonstrated (i.e. a certificate has been presented and verified), another party (e.g. a client) may trust that subsequent communications, via connections secured by the public key and corresponding private key, originated from the certified party (e.g. a host). The effectiveness of such an approach depends upon the certificate authority. As in the case of the DNS and routers, the certificate authority is often a trusted third party. Of course, a certificate authority compromised by an adversary results in a complete loss of trust in any certificates issued by the authority subsequent to the compromise. Fortunately, such incidents are rare, but they have occurred. Less nefarious opportunities for compromised security also exist, especially in those cases where the certificate authority endeavors to verify that the ‘real-world’ identity of the certificate recipient matches the named identity of the certificate. Even an honest and uncompromised certificate authority may have difficulty reliably ascertaining the real-world identity of a party requesting a certificate. Moreover, in practice, the thoroughness and reliability of such verification measures vary significantly. It would thus be advantageous to provide a system for and a method of establishing and maintaining trust in a secure communication system that do not rely upon third parties. Especially, it would be advantageous to assure a client, without reliance on a third party such as a certificate authority, that the identity of a host with which it is communicating matches the name of the host. Because such a client would normally rely on the integrity of its software configuration, this could be accomplished by storing within the configuration a public key for each potential host in association with the host's name. The host could then prove its identity by demonstrating that it has access to the private key corresponding to that public key. Such an approach, however, has two significant disadvantages. First, it requires a large amount of storage for the public keys of every potential host. Second, it makes no provision for the host changing its key or its encryption algorithm after the client is configured. It would thus be advantageous to provide a system for and a method of establishing and maintaining trust in a secure communication system that use relatively little storage and provide a mechanism for the host to change its key or its encryption algorithm. BRIEF DESCRIPTION OF THE DRAWINGS The foregoing aspects are better understood from the following detailed description of the invention with reference to the drawings, in which: FIG. 1 shows a schematic representation of a client using sustained bonds to securely communicate with several hosts according to an embodiment of the invention. FIG. 2 shows a schematic representation of an ordered set of key entries stored by a client in a sustained bond state according to an embodiment of the invention. FIG. 3 s