Шифрование данных в Интернете

Have a question? Ask in chat with AI!

шифрование данных в интернетеСтатья нарисовалась с простого вопроса, на что решил собрать информацию в Интернете о теме шифрования данных, что получилось, возможно где-то что-то не понял и вообще на то и он и форум добрые люди подскажут как должно быть правильно…

Содержание статьи о шифровании данных в Интернете

  1. Зачем вообще что-то шифровать в Интернете?
  2. Глоссарий криптографии.
  3. Коротко о шифровании.
  4. Знакомство с HTTPS.
  5. Что значит HTTPS?
  6. Принцип работы безопасного соединения.
  7. Цифровой сертификат.
  8. Что такое MitM-атака?
  9. Вывод. Что же я узнал?

Понятие «Безопасности данных в Интернете» звучит серьезно :). Цель статьи кажется простой, если же рассматривать в контексте применения Баз Данных, — то, кое-где, но сразу появляется мысль: «- А что если данные похитят?», Уместнее даже: «- А если пароли похитят? ».

Лично я вообще не специалист по веб-безопасности, но интересно, же что по поводу безопасности данных говорит мистер Интернет.

Глоссарий криптографии и шифрования данных

Как и каждая область человеческой деятельности криптография имеет свои термины и определения, считаю, стоит сначала ознакомиться с некоторыми понятиями перед тем как рассматривать тему шифрования данных в Интернете.

Цифровой сертификат — цифровой документ, подтверждающий соответствие между открытым (публичным) ключом и информацией, идентифицирующей владельца ключа. Чаще всего сопровождает определенное электронное сообщение и используется, чтобы показать, что открытый ключ принадлежит именно тому владельцу, чьи данные указаны в нем.

Открытый ключ — асимметричные системы шифрования, шифрование в криптографической системе, когда открытый ключ передается по открытому (незащищенном) канала связи и используется для проверки электронных подписей или шифрования сообщений. Для расшифровки сообщений используется закрытый ключ.

Закрытый (секретный, частный) ключ — асимметричные системы шифрования, секретный ключ для расшифровки сообщений.

HTTPS — схема URI, синтаксически идентична http:, обычно использущейся для доступа к ресурсам Интернет.

Схема URI — Унифицированный идентификатор ресурсов — компактный строку букв, который однозначно идентифицирует отдельный абстрактный или физический ресурс. Основное назначение таких идентификаторов — сделать возможной взаимодействие с представлениями ресурсов через сеть, преимущественно Всемирная паутина, используя специальные протоколы. URI определяется схемами, которые определяют синтаксис и соответствующие протоколы. Наиболее распространенной формой URI является унифицированный локатор ресурсов (URL), который неофициально называют веб-адресом.

Что значит HTTPS?

На сегодняшний день (2016) достаточно распространенным является HTTP-протокол обмена данными между браузером юзера и сервером. Недостатком такого протокола является то, что данные передаются открыто и никак не защищены от злоумышленников.

И в некоторых системах, например, платежные системы, данные передаются по HTTPS. Все современные браузеры автоматически поддерживают HTTPS-протокол.

Как работает соединение HTTPS?

Если нам необходимо передать ценную информацию собеседнику, необходимо:

Закрываем ящик с ценной информацией на замок (ключ остается у Вас) и отправляем собеседнику,
Собеседник получает ящик, однако не имеет возможности его открыть (отсутствует ключ на Ваш замок), собеседник также дополнительно устанавливает замок на ящик (ключ оставляет себе) и возвращает ящик,
Получив закрытый ящик назад, Вы снимаете собственный замок -> отправляете собеседнику,
Собеседник открывает собственный замок и получает ценные данные.
То есть для обмена информацией Ваш компьютер и сервер устанавливают общий секретный ключ, затем шифруют информацию с помощью этого ключа. Секретный ключ генерируется для каждого сеанса, его невозможно перехватить и невозможно подобрать — в общем его длина более 100 знаков. Почти идеально, однако еще осталось решить один вопрос — знать, что Ваш собеседник тот, за кого себя выдает.

Для чего нужен цифровой сертификат?

В вопросах доступа к секретной информации злоумышленники могут подделать сообщение таким образом, чтобы корреспонденты даже не догадывались о присутствии третьей стороны (MitM-атака).

HTTPS гарантирует умеренную защиту от нападения «человек посередине» (man-in-the-middle). Однако что такое «человек посередине»?

Для того чтобы подтвердить правдивость того, что Вы именно тот, за кого себя выдаете, созданные Цифровые сертификаты (SSL-сертификат).

SSL сертификат — это цифровая подпись домена, обеспечивает безопасное соединение и передачу данных между сервером и клиентом. Сертификат устанавливается на сервер и гарантирует, что обмен данными между сайтом и клиентом происходит по защищенной линии связи с применением htpps-протоколу.

Сертификаты выдает «паспортный стол :)» — Центр Сертификации, правдивость которого не подлежит, например, ресурс — Ukrnames.

Любой сервер, который хочет установить безопасное соединение с Вами, должен иметь сертификат.

Сертификат устанавливает:

  1. Что лицо, которому он выдан существует.
  2. Что лицо владеет сервером (сайтом), который указан в сертификате.

Сертификаты выдают Центры Сертификации. Задача Центра Сертификации — подтверждать подлинность ключей с помощью сертификатов электронной подписи.

В сертификате указаны данные, удостоверяющие личность и подпись, свидетельствует правдивость данного сертификата.

Проверка подлинности сертификата, это первое, что выполняет браузер при установлении безопасного HTTPS-связи.

Пользователю для HTTPS-соединения сертификат не нужен.

Вывод. Что же я узнал?

Коротко:

  • https-протокол безопасный протокол передачи секретных данных.
  • Передача данных шифруется открытым ключом SSL-сертификата, что владелец сайта.
  • Достоверность Сертификата подтверждает Центр Сертификации.
  • Современные браузеры перед тем как отправлять данные автоматически проверяют
  • достоверность Сертификата и устанавливают https-протокол соединения.

P.S. Между прочим. TCP портом по умолчанию для HTTPS является 443 (для HTTP — 80).

P.S.S. Согласно заявлению Google рейтинг сайтов по https-протоколу будет выше.


6 комментариев для “0

  1. По представленному выше материала, возможно у будут существенные предложения замечания, так как я то почитал информацию, но на собственном сайте безопасную передачу данных не устанавливал, поэтому тут было бы уместно рассмотреть дополнительно вопрос «Как установить на своем сайте https-протокол соединения? «

  2. Где-то я вам там на сайте оставил сообщение: функция md5 () касается хеширования, но не шифрования.
    Отличие между ними: функции для дехеширования (обратный процесс до хеширования) не существует, один и тот же хэш можно получить передавая функции хеширования различные параметры.

  3. Между прочим, я еще раньше видел что у тебя ресурс на протоколе https, тебе не сложно было бы в пять предложений уложиться рассказав как перевести сайт с http на https, а то я был нашел где-то инфу, но сейчас не осилил что они хотели сказать.

  4. Особой сложности нет, но надо иметь хотя бы небольшой опыт использования Linux + Git.
    Есть открытый проект letsencrypt.org/ целью которого — сделать интернет безопасным с помощью раз раздачи бесплатных сертификатов для https.
    Относительно твоей статьи на сайте, то лучше дождаться обновления сайта. Я уже его начал переписывать на вторую версию Angular. Нынешнее состояние сайта по сути находится в «глубокой альфе», на нем даже метку нужную трудно сейчас найти. Но процесс переписывания затянется, к сожалению еще не на один месяц …
    Кстати, кажется я где-то краем уха слышал, что для пользователей cPanel есть возможность получить сертификаты от letsencrypt по упрощенной схеме. Погугли, должно быть…

  5. Кажется вы еще пропустили момент что сертификаты могут быть различными по так называемому «классу защиты» и чем они отличаются — то есть b, a, a + и тд

    Для разработки на локалке или просто в локальной сети можно использовать самоподписанный сертификат — просто сгенерировать — digitalocean.com/community/ … untu-14-04
    при заходе на сайт с таким сертификатом шифрование будет работать, однако при первом входе на сайт нужно будет обозначить сайт как доверенный / добавить в исключения как надежный

    Купленный или полученный бесплатно у одного из центров сертификации подписан сертификат будет без этого «небольшого недостатка».

  6. Применительно к теме шифрования, то еще вопрос для чего его лучше использовать.
    Если цель — это сохранение чужих паролей в таком виде, чтобы их можно было проверить, но нельзя было расшифровать, то для этого подходит хэш (md5, hash …).
    Если же вам нужно хранить, например, собственные пароли, то тогда действительно — лучше шифровать.
    Итак, если вы хотите хранить зашифрованный пароль в MySQL или MariaDB, то тип данных нужно выбирать BLOB (допустимые и некоторые другие типы, но я точно знаю про BLOB).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Предыдущая запись Кто такие Junior Developer, Middle Developer, Senior Developer?
Следующая запись Поисковая система для детей Kiddle