IP Library Granted Patent US 7,802,099
Granted Patent B2
US 7,802,099 · App. 11/542,573 · Granted Sep 21, 2010

Method and apparatus for establishing a secure connection

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 7,802,099
App. No.
11/542,573
Granted
Sep 21, 2010
Kind
B2
Abstract

One embodiment of the present invention provides a system that establishes a secure connection with a peer. During operation, the system obtains an identity for the peer. Next, the system looks up the identity for the peer in a local store, which contains identities for trusted peers. If this lookup fails, the system asks a user if the peer can be trusted. If the user indicates that the peer can be trusted, the system establishes a secure connection with the peer.

Claims (66)

1. A method for establishing a secure connection with a peer, comprising:

obtaining an identity for the peer, wherein a digital certificate represents the identity for the peer;

looking up the identity for the peer in a local store, which contains identities for trusted peers; and

when trust cannot be established based on the identity, asking a user if the peer can be trusted;

if the user indicates that the peer can be trusted,

causing a secure connection to be established with the peer, wherein establishing the secure connection with the peer involves:

starting with an unauthenticated connection with the peer;

importing the digital certificate for the peer into the local store;

if the digital certificate for the peer is a self-signed digital certificate, performing an out-of-band exchange to confirm the validity of the self-signed digital certificate, wherein the out-of-band exchange involves:

selecting words from a dictionary based on a secure hash algorithm (SHA) hash;

showing the words to the user; and

receiving an indication that the user has confirmed the words verbally; and

establishing the secure connection with the peer using the unauthenticated connection and the digital certificate for the peer; and

if the user indicates that the peer cannot be trusted, taking a remedial action.

2. The method of claim 1 , wherein obtaining the identity for the peer involves performing a service discovery operation to obtain the identity for the peer and also to obtain an unauthenticated connection with the peer.

3. The method of claim 1 , wherein the secure connection is a Secure Sockets Layer (SSL) connection or a Transport Layer Security (TLS) connection.

4. The method of claim 1 , wherein the local store is an operating system keychain.

5. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for establishing a secure connection with a peer, the method comprising:

obtaining an identity for the peer, wherein a digital certificate represents the identity for the peer;

looking up the identity for the peer in a local store, which contains identities for trusted peers; and

when trust cannot be established based on the identity, asking a user if the peer can be trusted, and

if the user indicates that the peer can be trusted,

causing a secure connection to be established with the peer, wherein establishing the secure connection with the peer involves:

starting with an unauthenticated connection with the peer;

importing the digital certificate for the peer into the local store;

if the digital certificate for the peer is a self-signed digital certificate, performing an out-of-band exchange to confirm the validity of the self-signed digital certificate, wherein the out-of-band exchange involves:

selecting words from a dictionary based on a secure hash algorithm (SHA) hash;

showing the words to the user; and

receiving an indication that the user has confirmed the words verbally; and

establishing the secure connection with the peer using the unauthenticated connection and the digital certificate for the peer; and

if the user indicates that the peer cannot be trusted, taking a remedial action.

6. The computer-readable storage medium of claim 5 , wherein obtaining the identity for the peer involves performing a service discovery operation to obtain the identity for the peer and also to obtain an unauthenticated connection with the peer.

7. The computer-readable storage medium of claim 5 , wherein the secure connection is a Secure Sockets Layer (SSL) connection or a Transport Layer Security (TLS) connection.

8. The computer-readable storage medium of claim 5 , wherein the local store is an operating system keychain.

9. An apparatus for establishing a secure connection with a peer, comprising:

an identity-obtaining mechanism configured to obtain an identity for the peer, wherein the identity for the peer can be represented by a digital certificate for the peer;

a lookup mechanism configured to look up the identity for the peer in a local store, which contains identities for trusted peers, wherein a digital certificate represents the identity for the peer; and

when trust cannot be established based on the identity, a connection-establishing mechanism is configured to ask a user if the peer can be trusted;

if the user indicates that the peer can be trusted, the connection-establishing mechanism is configured to establish the secure connection with the peer by:

starting with an unauthenticated connection with the peer;

importing the digital certificate for the peer into the local store;

if the digital certificate for the peer is a self-signed digital certificate, performing an out-of-band exchange to confirm the validity of the self-signed digital certificate, wherein the out-of-band exchange involves:

selecting words from a dictionary based on a secure hash algorithm (SHA) hash;

showing the words to the user; and

receiving an indication that the user has confirmed the words verbally; and

establishing the secure connection with the peer using the unauthenticated connection and the digital certificate for the peer; and

if the user indicates that the peer cannot be trusted, the connection-establishing mechanism is configured to take a remedial action.

10. The apparatus of claim 9 , wherein the identity-obtaining mechanism is configured to perform a service discovery operation to obtain the identity for the peer and also to obtain an unauthenticated connection with the peer.

11. The apparatus of claim 9 , wherein the secure connection is a Secure Sockets Layer (SSL) connection or a Transport Layer Security (TLS) connection.

12. The apparatus of claim 9 , wherein the local store is an operating system keychain.

13. A function library embedded on a non-transitory computer-readable storage medium, wherein the function library includes a first function for establishing a secure connection with a peer, wherein the first function is configured to:

obtain an identity for the peer, wherein a digital certificate represents the identity for the peer;

look up the identity for the peer in a local store, which contains identities for trusted peers; and

when trust cannot be established based on the identity, to ask a user if the peer can be trusted, and

if the user indicates that the peer can be trusted, to cause a secure connection to be established with the peer, wherein when establishing the secure connection with the peer, the first function is configured to:

start with an unauthenticated connection with the peer;

import the digital certificate for the peer into the local store;

if the digital certificate for the peer is a self-signed digital certificate, perform an out-of-band exchange to confirm the validity of the self-signed digital certificate, wherein the out-of-band exchange involves:

selecting words from a dictionary based on a secure hash algorithm hash;

showing the words to the user; and

receiving an indication that the user has confirmed the words verbally; and

establish the secure connection with the peer using the unauthenticated connection and the digital certificate for the peer; and

if the user indicates that the peer cannot be trusted, the first function is configured to take remedial action.

14. The function library of claim 13 , wherein the function library includes a second function for creating a private/public key pair and a corresponding a digital certificate for a given node.

15. The function library of claim 13 , wherein the function library includes a third function for importing a digital certificate for a peer into a local store.

16. The function library of claim 13 , wherein while obtaining the identity for the peer, the first function is configured to perform a service discovery operation to obtain the identity for the peer and also to obtain an unauthenticated connection with the peer.

Assignments (1)
CHANGE OF NAME Recorded May 7, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019265/0922 →