Improve crypto ordering for Encrypt-then-MAC (EtM) mode MAC algorithms.
authordjm <djm@openbsd.org>
Fri, 8 Jul 2016 03:44:42 +0000 (03:44 +0000)
committerdjm <djm@openbsd.org>
Fri, 8 Jul 2016 03:44:42 +0000 (03:44 +0000)
commit1045ebf084960002a55b3c8d984126886d9b3c09
treeac3cd6081cfc80864a2c31d111ada5c194450416
parent3c5178a3e53a091314e52a9107c6783396e063b5
Improve crypto ordering for Encrypt-then-MAC (EtM) mode MAC algorithms.

Previously we were computing the MAC, decrypting the packet and then
checking the MAC. This gave rise to the possibility of creating a
side-channel oracle in the decryption step, though no such oracle has
been identified.

This adds a mac_check() function that computes and checks the MAC in
one pass, and uses it to advance MAC checking for EtM algorithms to
before payload decryption.

Reported by Jean Paul Degabriele, Kenny Paterson, Torben Hansen and
Martin Albrecht. feedback and ok markus@
usr.bin/ssh/mac.c
usr.bin/ssh/mac.h
usr.bin/ssh/packet.c