Прежде всего, ни SHA-1, ни что-либо, связанное с SHA-2, не являются алгоритмом «шифрования». Это хеш-функции. В SSL хэш-функции используются главным образом для обеспечения целостности, а не конфиденциальности, посредством конструкции HMAC . Хеш-функция принимает входные данные произвольной длины и создает выходные данные с фиксированной длиной, что является своего рода «дайджестом» входных данных; операция не должна быть обратимой.
Хеш-функция является «общедоступной»: нет конфиденциальных данных, нет ключа; каждый может вычислить вывод хеш-функции на любом заданном входе. «Код аутентификации сообщения» (MAC) является своего рода «хэш-ключом»: секретный ключ (т. Е. Произвольный набор битов) также вводится в процесс, поэтому знание ключа необходимо для (пере) вычисления выход MAC. Это используется для проверки целостности (отправитель использует ключ для вычисления MAC, получатель использует ключ для повторного вычисления MAC; если MAC совпадает, то данные верны, потому что злоумышленник, не зная ключа, не мог иметь изменил данные и вычислил действительный MAC для измененных данных).
HMAC - это конструкция, которая превращает хеш-функцию (например, SHA-1) в MAC. TLS (это текущее стандартное имя SSL) использует HMAC. Выход HMAC, когда используется с данной хеш-функцией h , имеет тот же размер, что и выход h . Этот вывод может быть условно усечен: HMAC / SHA-1 номинально выдает 160-битный выход, но в некоторых протоколах принято хранить только первые 96 бит. Такое усечение не происходит в SSL.
Стандарт FIPS 180-3 определяет пять хеш-функций, названных SHA-1, SHA-224, SHA-256, SHA-384 и SHA-512, с длинами вывода 160, 224, 256 384 и 512 бит соответственно. Функции SHA-224, SHA-256, SHA-384 и SHA-512 в разговорной речи известны как «SHA-2», поэтому «SHA-2» - это не одна функция, а семейство из четырех хеш-функций.
Спецификация TLS определяет наборов шифров . Набор шифров - это набор криптографических алгоритмов, которые клиент и сервер согласовывают на начальном этапе соединения («рукопожатие»). Среди алгоритмов есть MAC для использования для обеспечения целостности данных. Некоторые из стандартных наборов шифров указывают, что MAC должен быть «HMAC с SHA-256», то есть чем-то, что использует одну из функций SHA-2.
Итак, ответ на ваш вопрос таков: «просто настройте клиент и сервер для использования одного из наборов шифров с HMAC / SHA-256». Если ваша реализация SSL не поддерживает такие комплекты шифров, вам придется изменить ее, что повлечет за собой достаточно глубокое понимание того, как работает SSL; необходимо прочитать и понять полный RFC 5246.