Когда дело доходит до ключей, в криптографии есть мнение: одно использование, один ключ.
Это дает первый уровень обоснования использования отдельных ключей в каждом направлении: каждое направление — это различное использование ключа.
Следующий уровень — проиллюстрировать, какой класс атак это предотвращает. То есть: зеркальные атаки. Представьте, что ключ шифрования и (отдельный) ключ аутентификации используются в обоих направлениях. По крайней мере, вероятно, что злоумышленник может взять зашифрованный и аутентифицированный фрагмент данных, отправленный сервером, и повторно передать его на сервер, как если бы он пришел от клиента. Обнажая подробности в протоколе, этот фрагмент данных будет проходить аутентификацию и расшифровываться, как если бы он был получен от клиента. Это идет вразрез с более простым изложением цели протокола и является прорывом (возможность использования зависит от деталей, которые мы не хотим рассматривать). В отличие от ситуации с использованием других ключей: аутентификация не проходит (а расшифровка, если она происходит, дает мусор).
Дополнение: Существуют и другие эффективные способы предотвращения зеркальных атак (например, указание предполагаемого получателя в аутентифицированных криптограммах). Иногда есть веские причины использовать это, а не несколько ключей (например, минимизация объема памяти открытого канала).