Какова поддержка SHA-2 на разных платформах? - PullRequest
6 голосов
/ 09 марта 2010

Я читал, что SHA-1 исключается из стандарта FIPS 180-2.

Очевидно, что в SHA-1 есть недостатки, которые привели к этому решению. Кто-нибудь может уточнить на основании этого решения? Существуют ли последствия для использования SHA-1 в коммерческих приложениях?

Мои настоящие вопросы:

  • Каково состояние поддержки SHA-2 в различных библиотеках классов и платформ?
  • Должен ли я попытаться перейти на SHA-2 ?

Заинтересованы в основных платформах: .NET, Java, C / C ++, Python, Javascript и т. Д.

Ответы [ 3 ]

5 голосов
/ 09 марта 2010

Sha1, Sha0, md4 и md5 были признаны небезопасными за последние несколько лет. Проблема в том, что если злоумышленник может сгенерировать 2 разных сообщения, которые выдают одинаковый результирующий хэш, это называется коллизией. Это вызывает много проблем для PKI, управления паролями, проверки целостности файлов и многого другого. В настоящее время sha1 обеспечивает только 2 ^ 52 бит безопасности, которые доступны для атакующих. Где как SHA-256 (самый маленький член семейства sha2) обеспечивает 2 ^ 256 бит.

Все платформы должны иметь реализацию SHA-256, хотя не все из них являются нативными. В PHP вы должны использовать расширение mhash. Довольно странно, что некоторые платформы не предоставляют безопасных хеш-функций, я, честно говоря, верю, потому что они не заботятся о безопасности. В случае с PHP я точно знаю, что они не заботятся о безопасности .

В настоящее время в SHA-2 нет ничего плохого, и у него очень большой запас прочности. Вы можете использовать SHA-512, если вы действительно параноик. Sha-3 выйдет в 2012 году, вы должны исправить все, что сможете, с sha-2, как ваши ПАРОЛИ , а затем перейти на SHA-3, когда сможете, но SHA-512 будет ОЧЕНЬ хорош время.

4 голосов
/ 09 марта 2010

Windows Vista и более поздние версии поддерживают SHA-2 в Microsoft Enhanced RSA и AES Cryptographic Provider для CryptoAPI, а .NET Framework поддерживает SHA-2 начиная с .NET 1.1.

1 голос
/ 09 марта 2010

Большинство платформ теперь поддерживают семейство SHA-2. Однако SHA-1 все еще используется во многих приложениях, таких как SSL, и будет использоваться некоторое время.

Конкурс на "ША-3" идет полным ходом. Может быть разумно перейти с SHA-1 на новый стандарт SHA-3, когда он прибудет.

...