You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

what's ssl session resumption

  • When a client and server establish an SSL connection for the first time they need to establish ashared key called the master_secret. The master_secret is then used to create all the bulk encryption keys used to protect the traffic. The master_secret is almost invariably established using one of two public key algorithms: RSA or Diffie-Hellman (DH). Unfortunately, both of these algorithms are quite slow. In order to improve performance, SSL contains a "session resumption" feature that allows a client/server pair to skip this time consuming step if they have already established a master_secret in a previous connection. (from Eric Rescorla's article http://www.linuxjournal.com/article/5487)

what's the problem in TS

what we have done

  • we have complete a solution for single server.
    • disable internal session cache(set SSL_SESS_CACHE_NO_INTERNAL).
    • store session cache in a hashtable in memory.
    • hook the get session API and look up session from hashtable by session_id.
    • have a continuation to delete stale cache when hashtable full.

sigle server solution can not slove all the problem

  • when in a cluster mode and have a LB in front, session resumption can not work

what's our plan

  • use http cache in TS to cache ssl sesion
    • make the session_id like http request(http://ssl.session.cache/session_id) as the key
    • make the session as the value
    • use cacheProcessor API to set and get ssl session
    • we can use the cluster through cacheProcessor

we need your advice

  • No labels