TLS PRF
TLS 1.0〜1.2でマスターシークレットとセッション鍵の導出に使われた疑似乱数関数。TLS 1.3でHKDFに置き換えられた。
中核はP_hashで、HMACを連鎖させ、各ステップで前の出力とシードを入力しながら、必要なバイト数が得られるまで繰り返す。プレマスターシークレットと双方の乱数値からまず48バイトのマスターシークレットを導き、そこから両方向の暗号鍵、MAC鍵、IVを収めた鍵ブロックを作る。
TLS 1.0と1.1は保険をかけ、P_MD5とP_SHA1をXORした。どちらかのハッシュが持ちこたえることを期待したのである。TLS 1.2(RFC 5246、2008年)では既定がP_SHA256に変わった。この設計はマスターシークレットとハンドシェイクの結び付けにも弱点を抱えており、2014年にトリプルハンドシェイク攻撃で突かれた。対策が拡張マスターシークレット(RFC 7627)である。TLS 1.3では仕組み全体がHKDFに置き換えられた。