Symmetric ¡and ¡ ¡ Password-‑based ¡encrypDon ¡ CS642: ¡ ¡ Computer ¡Security ¡ Professor ¡Ristenpart ¡ h9p://www.cs.wisc.edu/~rist/ ¡ rist ¡at ¡cs ¡dot ¡wisc ¡dot ¡edu ¡ University ¡of ¡Wisconsin ¡CS ¡642 ¡
Symmetric ¡encrypDon ¡ key ¡generaDon ¡ R k ¡ Kg ¡ Handled ¡ in ¡TLS ¡key ¡ exchange ¡ K ¡ OpDonal ¡ R ¡ M ¡or ¡ ¡ Enc ¡ C ¡ C ¡ Dec ¡ error ¡ M ¡ C ¡is ¡a ¡ciphertext ¡ Correctness: ¡ ¡D( ¡K ¡, ¡E(K,M,R) ¡) ¡= ¡M ¡ ¡with ¡probability ¡1 ¡over ¡randomness ¡used ¡
In ¡TLS ¡symmetric ¡encrypDon ¡underlies ¡the ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Record ¡Layer ¡ h9p://amazon.com ¡ K ¡ K ¡ R ¡ M ¡or ¡ ¡ C’ ¡ Dec ¡ Enc ¡ C ¡ error ¡ M ¡ What ¡security ¡properDes ¡do ¡we ¡need ¡from ¡symmetric ¡encrypDon? ¡ 1) ¡ConfidenDality: ¡should ¡not ¡learn ¡any ¡informaDon ¡about ¡M ¡ 2) ¡AuthenDcity: ¡ ¡should ¡not ¡be ¡able ¡to ¡forge ¡messages ¡ O\en ¡referred ¡to ¡as ¡AuthenDcated ¡EncrypDon ¡security ¡ ¡
AcDve ¡security ¡of ¡CBC ¡mode ¡ M1 ¡ M2 ¡ M3 ¡ IV ¡ E K ¡ E K ¡ E K ¡ C0 ¡ C1 ¡ C2 ¡ C3 ¡ What ¡about ¡forging ¡a ¡message? ¡ Pick ¡any ¡C0’, ¡C1’ ¡… ¡ M1’ ¡ M1’ ¡ ¡ ¡ ¡ ¡ ¡D ¡ IV ¡ IV ¡ Be9er ¡yet ¡ for ¡any ¡D: ¡ D K ¡ D K ¡ C0’ ¡ C1’ ¡ C0’ ¡ ¡ ¡ ¡ ¡D ¡ ¡ C1’ ¡
Hash ¡funcDons ¡and ¡message ¡ authenDcaDon ¡ Hash ¡funcDon ¡H ¡maps ¡arbitrary ¡bit ¡string ¡to ¡fixed ¡length ¡string ¡of ¡ size ¡m ¡ ¡ MD5: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡m ¡= ¡128 ¡bits ¡ M ¡ H(M) ¡ SHA-‑1: ¡ ¡ ¡ ¡ ¡ ¡m ¡= ¡160 ¡bits ¡ H ¡ SHA-‑256: ¡ ¡m ¡= ¡256 ¡bits ¡ Some ¡security ¡goals: ¡ ¡ ¡ ¡ -‑ collision ¡resistance: ¡can’t ¡find ¡M ¡!= ¡M’ ¡such ¡that ¡H(M) ¡= ¡H(M’) ¡ -‑ preimage ¡resistance: ¡given ¡H(M), ¡can’t ¡find ¡M ¡ -‑ second-‑preimage ¡resistance: ¡given ¡H(M), ¡can’t ¡find ¡M’ ¡s.t. ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡H(M’) ¡= ¡H(M) ¡
Hash ¡funcDon ¡applicaDon ¡example ¡ Password ¡hashing. ¡Choose ¡random ¡salt ¡and ¡store ¡(salt,h) ¡where: ¡ salt ¡|| ¡pw ¡ h ¡ H ¡ The ¡idea: ¡A9acker, ¡given ¡(salt,h), ¡should ¡not ¡be ¡able ¡to ¡recover ¡pw ¡ Or ¡can ¡they? ¡ Rainbow ¡tables ¡speed ¡this ¡ For ¡each ¡guess ¡pw’: ¡ up ¡in ¡pracDce ¡by ¡way ¡of ¡ ¡ ¡ ¡ ¡ ¡If ¡H(salt||pw’) ¡= ¡h ¡then ¡ ¡ precompuDon. ¡Large ¡salts ¡ ¡ ¡ ¡Ret ¡pw’ ¡ make ¡rainbow ¡tables ¡impracDcal ¡
Message ¡authenDcaDon ¡ key ¡generaDon ¡ R k ¡ Kg ¡ OpDonal. ¡If ¡no ¡ randomness, ¡then ¡called ¡ a ¡Message ¡AuthenDcaDon ¡ ¡ Code ¡(MAC) ¡ K ¡ R ¡ M ¡ Tag ¡ T ¡ Ver ¡ 0 ¡or ¡1 ¡ M ¡ T ¡ Correctness: ¡ ¡Ver( ¡K ¡, ¡Tag(K,M,R) ¡) ¡= ¡1 ¡ ¡with ¡probability ¡1 ¡over ¡randomness ¡used ¡ Unforgeability: ¡A9acker ¡can’t ¡find ¡M’,T ¡such ¡that ¡V(K,M’,T) ¡= ¡1 ¡
Recall ¡PRF ¡security ¡ F: ¡{0,1} k ¡x ¡{0,1} * ¡-‑> ¡{0,1} n ¡ Security ¡goal: ¡ ¡ ¡ ¡F(K,M) ¡is ¡indisDnguishable ¡from ¡random ¡n-‑bit ¡string ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡for ¡anyone ¡without ¡K ¡ For ¡M 1 , ¡M 2 , ¡… ¡, ¡M q ¡chosen ¡ U i ¡is ¡fresh ¡n-‑bit ¡uniform ¡string ¡ by ¡adversary ¡and ¡disDnct ¡ F(K,M 1 ) ¡, ¡F(K,M 2 ), ¡… ¡, ¡F(K,M q ) ¡ ¡ U 1 , ¡U 2 , ¡… ¡, ¡U q ¡ Adversary ¡that ¡adapDvely ¡chooses ¡messages ¡but ¡is ¡limited ¡to ¡ “reasonable” ¡q ¡(e.g., ¡q ¡= ¡2 40 ) ¡can’t ¡disDnguish ¡between ¡two ¡vectors ¡ This ¡means ¡outputs ¡of ¡F ¡are ¡ unpredictable: ¡ ¡ Given ¡F(K,M 1 ) ¡, ¡F(K,M 2 ), ¡… ¡, ¡F(K,M q-‑1 ) ¡no ¡a9acker ¡can ¡ predict ¡F(K,M q ) ¡with ¡probability ¡1 ¡/ ¡2 n ¡ + ¡negligible ¡
Any ¡PRF ¡is ¡a ¡good ¡MAC ¡ R k ¡ Kg ¡ OpDonal. ¡If ¡no ¡ randomness, ¡then ¡called ¡ a ¡Message ¡AuthenDcaDon ¡ ¡ Code ¡(MAC) ¡ K ¡ R ¡ M ¡ Tag ¡ T ¡ Ver ¡ 0 ¡or ¡1 ¡ M ¡ T ¡ Correctness: ¡ ¡Ver( ¡K ¡, ¡Tag(K,M,R) ¡) ¡= ¡1 ¡ ¡with ¡probability ¡1 ¡over ¡randomness ¡used ¡ Unforgeability: ¡A9acker ¡can’t ¡find ¡M’,T ¡such ¡that ¡V(K,M’,T) ¡= ¡1 ¡
Any ¡PRF ¡is ¡a ¡good ¡MAC ¡ R k ¡ Kg ¡ key ¡generaDon ¡picks ¡uniform ¡key ¡for ¡F ¡ K ¡ M ¡ M ¡ F(K,M) ¡ T ¡ F(K,M) ¡= ¡T? ¡ 0 ¡or ¡1 ¡ T ¡ How ¡do ¡we ¡instanDate ¡F? ¡
Message ¡authenDcaDon ¡with ¡HMAC ¡ Use ¡a ¡hash ¡funcDon ¡H ¡to ¡build ¡a ¡MAC. ¡ ¡ Kg ¡outputs ¡uniform ¡bit ¡string ¡K ¡ Tag(K,M) ¡= ¡HMAC(K,M) ¡ ¡defined ¡by: ¡ ipad ¡!= ¡opad ¡are ¡constants ¡ K ¡ ¡ ¡ ¡ ¡ipad ¡|| ¡M ¡ H ¡ T ¡ K ¡ ¡ ¡ ¡ ¡ ¡opad ¡ ¡|| ¡h ¡ ¡ ¡ H ¡ To ¡verify ¡a ¡M,T ¡pair, ¡check ¡if ¡HMAC(K,M) ¡= ¡T ¡ ¡ Unforgeability ¡holds ¡if ¡H ¡is ¡a ¡secure ¡PRF ¡when ¡so-‑keyed ¡
Build ¡a ¡new ¡scheme ¡from ¡CBC ¡and ¡HMAC ¡ Kg ¡outputs ¡CBC ¡key ¡K1 ¡and ¡HMAC ¡key ¡K2 ¡ Several ¡ways ¡to ¡combine: ¡ M ¡ (1) ¡ (1) ¡encrypt-‑then-‑mac ¡ ¡ (2) ¡mac-‑then-‑encrypt ¡ K1 ¡ K2 ¡ CBC ¡ HMAC ¡ (3) ¡encrypt-‑and-‑mac ¡ C ¡ T ¡ (3) ¡ M ¡ M ¡ (2) ¡ M ¡|| ¡T ¡ K2 ¡ K2 ¡ K1 ¡ K1 ¡ HMAC ¡ HMAC ¡ CBC ¡ CBC ¡ C ¡ T ¡ C ¡
Build ¡a ¡new ¡scheme ¡from ¡CBC ¡and ¡HMAC ¡ Kg ¡outputs ¡CBC ¡key ¡K1 ¡and ¡HMAC ¡key ¡K2 ¡ Several ¡ways ¡to ¡combine: ¡ M ¡ (1) ¡ (1) ¡encrypt-‑then-‑mac ¡ ¡ (2) ¡mac-‑then-‑encrypt ¡ K1 ¡ K2 ¡ CBC ¡ HMAC ¡ (3) ¡encrypt-‑and-‑mac ¡ C ¡ T ¡ Thm. ¡If ¡encrypDon ¡scheme ¡provides ¡confidenDality ¡against ¡ ¡ passive ¡a9ackers ¡and ¡MAC ¡provides ¡unforgeability, ¡then ¡ ¡ Encrypt-‑then-‑MAC ¡provides ¡secure ¡authenDcated ¡encrypDon ¡
TLS ¡record ¡protocol: ¡MAC-‑Encode-‑Encrypt ¡(MEE) ¡ ¡ Padding ¡is ¡not ¡MAC’d. ¡ SQN + Payload ImplementaDons ¡must ¡ comp method handle ¡padding ¡checks ¡ ¡ MAC very ¡carefully. ¡ MAC tag Payload Padding Encrypt Header Ciphertext HMAC-‑MD5, ¡HMAC-‑SHA1, ¡HMAC-‑SHA256 ¡ ¡ MAC CBC-‑AES128, ¡CBC-‑AES256, ¡CBC-‑3DES, ¡RC4-‑128 ¡ Encrypt
Dedicated ¡authenDcated ¡encrypDon ¡schemes ¡ A"ack ¡ Inventors ¡ Notes ¡ OCB ¡ Rogaway ¡ One-‑pass ¡ (Offset ¡Codebook) ¡ ¡ ¡ GCM ¡ ¡ McGrew, ¡Viega ¡ CTR ¡mode ¡plus ¡specialized ¡MAC ¡ (Galios ¡Counter ¡ Mode) ¡ CWC ¡ Kohno, ¡Viega, ¡WhiDng ¡ CTR ¡mode ¡plus ¡Carter-‑Wegman ¡ MAC ¡ CCM ¡ Housley, ¡Ferguson, ¡ CTR ¡mode ¡plus ¡CBC-‑MAC ¡ WhiDng ¡ EAX ¡ ¡ Wagner, ¡Bellare, ¡ CTR ¡mode ¡plus ¡OMAC ¡ ¡ Rogaway ¡
Symmetric ¡EncrypDon ¡Advice ¡ Never ¡use ¡CTR ¡mode ¡or ¡CBC ¡mode ¡by ¡themselves ¡ Passive ¡security ¡is ¡almost ¡never ¡good ¡enough!! ¡ Encrypt-‑then-‑MAC ¡be9er ¡than ¡MAC-‑then-‑Encrypt, ¡ Encrypt ¡and ¡MAC ¡ Dedicated ¡modes ¡that ¡have ¡been ¡analyzed ¡thoroughly ¡ are ¡also ¡good ¡
Recommend
More recommend