Шифрование при подключении https

September 20, 2018

Please reload

Недавние посты

Как писать объявления для контекстной рекламы - основы основ

June 4, 2018

1/1
Please reload

Избранные посты

О шифровании или Попробуй спрятаться от Большого брата

November 2, 2018

 

На разных этапах передачи данных трафик может перехватываться и анализироваться. Поэтому для обеспечения безопасности нужно сделать так, чтобы даже получив передаваемые данные, их было нельзя понять (а значит, использовать: изъять из них пароль, номер банковской карты или что-то еще).

 

Давайте представим что мы попали в мир антиутопии 1984, написанной Джорджем Оруэллом, и что “Большой Брат смотрит на нас”, кругом все хотят подслушать наш разговор (что по большому счету правда), а нам надо поговорить, но так, чтобы никто не понял того, о чем идет речь. 

 

Это ты, брат?

 

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

 

В интернете такие вещи реализуются с помощью сертификатов SSL/TLS. О них мы вам уже рассказывали, напомним, что они важны и нужны. А вот о том, как идет шифрование, вы узнаете дальше.

 

Основы шифровки

 

Есть разные способы зашифровать данные. Шифрование - это преобразование одной последовательности цифр в другую. Шифрование состоит из функции, преобразующей данные, и некоторого количества ключей - данных, передаваемых в эту функцию.

 

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

 

Это происходит примерно так:

 

Нам надо договориться, как поговорить так, чтобы мы друг друга поняли, а окружающие нас - нет. Нам надо договориться на каком языке нам общаться. чтобы скрыть наш диалог от окружающих. Мы сообщаем нашему собеседнику:
- Я говорю по-русски, английски, древнегречески и на латыни."

Наш собеседник рассуждает примерно так: я знаю русский, английский и иврит. То есть мой собеседник поймет меня, если мы будем говорить по-русски или по-английски. Так как мы в Англии, безопаснее будет говорить по-русски:

- Давайте будем говорить по-русски

 

Способ шифрования выбран.

 

Ключ к шифру

 

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

  1. Мы пересылаем два числа, назовем их g и p - это открытый ключ - его знаем и мы и наш собеседник.

  2. Мы загадываем число a - некоторое произвольное число.

  3. Сайт загадывает число b - также некоторое произвольное число.

  4. Мы отправляем сайту остаток от деления (g^a)/p, назовем его числом A.

  5. Он присылает нам остаток от деления (g^b)/p, назовем его числом B.

  6. Мы считаем число, которое будет нашим ключом как остаток от деления (B^a)/p

  7. Сайт считает ключ как остаток от деления (A^b)/p
    При этом ключ у нас и ключ у сайта всегда получатся одинаковыми. А любой, кто слушает наш трафик не имеет чисел a и b, ведь мы их никому не пересылали.

Шаги 1-7 повторяются при каждом соединении, из-за чего человеку, даже имеющему доступ к вашему трафику вмешаться в него будет очень и очень непросто.

 

И снова к примеру:

 

Давайте предположим что только каждая буква с некоторым номером будет что-то значить. Однако сообщить этот номер открыто мы не можем - мало ли кто из нашего окружения говорит по-русски. Поэтому мы воспользовавшись алгоритмом, описанным сверху выберем 2 числа, например g = 27 и p = 5
1) Мы говорим нашему собеседнику: 27 и 5
2) Загадываем число, например 2
3) Наш спутник тоже загадывает число, допустим 5 (мы его не знаем)
4) Мы возводим 27 в степень 2 и берем остаток от деления получившегося числа на 5:
(27^2) = 729; остаток от деления на 5 получается 4.
Говорим собеседнику - у меня получилась четверка

5) Наш собеседник возводит 25 в степень 5 и берет остаток от его деления на 5:
(25^5) = 14348907; остаток от деления на 5 получается 2

Наш собеседник говорит нам: у меня получилась двойка
6) Мы берем получившуюся двойку, возводим её в степень 2 и берем её остаток от деления:
2^2 = 4; Остаток от 4/5 будет равен 4
7) Наш коллега берет нашу четверку, возводит её в степень 5 и берет остаток от деления:
4^5 = 1024; Остаток от 1024/5 Будет снова равен 4

И у нас и у нашего собеседника получилось 4 - число о котором знает он и мы, однако окружающие получить это число не могут.

 

 

Получите шифровку

 

Далее все общение происходит зашифрованными с помощью выбранных функций и ключей данными


Допустим мы хотим сказать нашему коллеге:
 - big brother is watching you
Переводим его на русский:
 - Большой Брат смотрит на тебя
И добавляем между каждым символом еще 3 (так чтобы значение имел только каждый 4й:

 - ныхба рогпвль тьрцхш гяонагйтым тъкБпр рнгшаррптк усйитму аорт  тис рестиминт он разнавдай и т и ершиб емя

А наш собеседник, вполне нас поняв говорит:

 - енгярым ых зымыны тазы ю

Берем каждую четвертую букву:

 -> Я знаю


Переводим на английский -> I know
Вот она, исходная фраза нашего собеседника

 

Если бы люди действительно делали так при общении - это было бы очень сложно и неудобно. Но для машины все эти операции практически незаметны. Поэтому мы получаем достаточно надежный способ передачи данных. Ну и конечно реальные алгоритмы шифрования много сложнее простого выбора энной буквы. Поэтому при соединении с сайтом по протоколу https:// ваши данные достаточно надежно защищены.

А на сегодня все. Помните о безопасности: закрывайте дверь на ключ, а на сайт ставьте сертификаты. И никогда не забывайте: Большой Брат смотрит на вас.

 

 

Share on Facebook
Share on Twitter
Please reload

Мы в соцсетях
Please reload

Поиск по тегам