Denis Gladkikh
Russian   |  English

Выбранный тег: SSL


Хеш-функции и безопасная аутентификация

В продолжение этой [2] статьи – сегодня хочу рассказать и поговорить про хеш-функции, с этого, можно сказать, начинается криптография. Итак, известно, что хеш-функция (называют так же операция хеширования) – это некоторое преобразование строки любой длины в строку данных фиксированной длины. На практике, чаще всего, встречаются два алгоритма хеширования – MD5 и SHA1, вероятность коллизий (получение одинаковых хеш-значений с разных сообщений) для MD-5, например, уже найдена. Стандартный пример использования: скачивание больших файлов – чтобы проверить, что архив скачался удачно – рядом со ссылкой скачивания кладут, например, его хеш-значение MD5, и скачавший может запросто проверить что архив не поврежден.



Криптография. Сертификаты. Знакомство с SSL.

Этой статьей я бы хотел начать небольшую серию топиков о том, как работать с сертификатами, а так же в каких задачах и как их можно применить. К сожалению, в свое время, когда мне пришлось знакомиться с этой темой – мне удалось найти очень мало литературы, которая бы в полной мере описывала точно мне нужную информацию о том, как использовать сертификаты в моем ASP.NET приложении. На данном этапе я не могу назвать себя экспертом, но все же хочу этой серией топиков поделиться тем, что я узнал, а так же, надеюсь, избавить в будущем кого-то от поиска информации.

В университетах на профильных специальностях (математика и информатика), обычно, присутствуют курсы по криптографии. У кого мало знакомства с данной темой, а так же для освежения, приведу пару примеров, где можно и нужно использовать криптографию. Потому, если вы хорошо знакомы с терминами криптографии и SSL, то вы можете пропустить эту часть. Так же с удовольствием приму конструктивные комментариев и предложений на эту тему. В следующих топиках, я постараюсь рассказать, о том как можно создавать сертификаты для тестирования и разработки, а так же как можно настроить аутентификацию при помощи сертификатов, ну и что еще придет в голову. На данный момент за мной уже числится одна статья про использование сертификатов под названием “Использование сертификатов: Подпись данных на стороне клиента.”



Использование сертификатов: Подпись данных на стороне клиента.

Одно из назначений для сертификата – это подписывание данных. Цель подписи может быть различной – валидация клиента или просто проверка достоверности данных.
Одна из задач, которая у вас может возникнуть – это подписать некоторые данные на стороне клиента в браузере пользователя. Такая задача может возникнуть тогда, когда пользователь подает некоторые важные данные, и для того, чтобы он в будущем не отказывался со словами «Это делал не я!» от этих данных. Для этого могут служить сертификаты. Подробнее о сертификатах и о SSL можно узнать где угодно, достаточно в поисковике набрать «SSL сертификаты» и информации об их назначении и о необходимости будет предостаточно.

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