Первый вопрос заключался в том, как браузер использует SHA-1 в контексте SSL. Полный ответ можно найти here. Короткий ответ заключается в том, что SHA-1 используется для подтверждения того, что сертификат, предлагаемый в качестве доказательства, является тем же, который был подписан CA.
Что касается второго вопроса (Но что, если атака «человек в середине» заменит все данные, включая сертификат, и подписанный SHA-1 предложил себя?). Слово «Подпись» - это ключ. Человек-в-середине может заменить сертификат. Однако этому сертификату не будет доверять браузер, потому что он не будет подписан центром сертификации. Злоумышленник не может сгенерировать сертификат, подписанный CA, потому что он/она не знает закрытый ключ CA.
Есть несколько очень хороших статей о SSL. Вы их читали? Например: http://security.stackexchange.com/questions/59566/ssl-certificate-chain-verification или http://security.stackexchange.com/questions/20803/how-does-ssl-tls-work –
Здесь это еще одна статья, которая напрямую отвечает на ваш вопрос и вкратце объясняет, как SSL использует SHA-1 https://konklone.com/post/why-google-is-hurrying-the-web-to-kill-sha-1 –
@ MichałKomorowski Спасибо для хороших статей, и я получил еще один вопрос после прочтения [почему-google-hurrying-the-web-to-kill-sha-1] (https://konklone.com/post/why-google-is- hurry-the-web-to-kill-sha-1): как говорится в статье, браузер использует ** SHA-1 ** для расчета сертификата, если результат соответствует ** подписанному SHA-1 **, который предоставлен сертификат как доказательство, тогда браузер может быть уверен, что предлагаемый сертификат является тем же, что и сертификат, подписанный центром сертификации. Но что, если атака «человек в середине» заменит все данные, включая сертификат, и ** подписанный SHA-1 ** предложил? – huachengzan