A method of enabling a proxy to participate in a secure communication
between a client and a set of servers. The method begins by establishing a
first secure session between the client and the proxy. Upon verifying the
first secure session, the method continues by establishing a second secure
session between the client and the proxy. In the second secure session,
the client requests the proxy to act as a conduit to a first server.
Thereafter, the client and the first server negotiate a first session
master secret. Using the first secure session, this first session master
secret is then provided by the client to the proxy to enable the proxy to
participate in secure communications between the client and the first
server. After receiving the first session master secret, the proxy
generates cryptographic information that enables it to provide a given
service (e.g., transcoding) on the client's behalf and without the first
server's knowledge or participation. If data from a second server is
required during the processing of a given client request to the first
server, the proxy issues a request to the client to tunnel back through
the proxy to the second server using the same protocol.