Проблема безопасности SSL - PullRequest
2 голосов
/ 28 июня 2010

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

Ответы [ 6 ]

9 голосов
/ 28 июня 2010

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

2 голосов
/ 28 июня 2010

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

1 голос
/ 02 июля 2010

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

  1. Сначала шифруется, проходитB одно зашифрованное сообщение [A encryption].
  2. B шифрует сообщение второй раз и передает A дважды зашифрованное сообщение [A шифрование и B шифрование]
  3. A удаляет [Aшифрование] из сообщения, оставляя только [B шифрование], и отправляет сообщение B. B. 1010 *
  4. B теперь имеет сообщение [B encrypted] и знает, как его расшифровать.

Анализатор видит сообщение в зашифрованном виде тремя различными способами: [A], [AB] и [B].

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

Если вам нужен простой пример того, как можно расшифровать сообщение в любом порядке, вы можете использовать XOR в качестве примера метода шифрования.Для клавиш A и B сообщение M и XOR равно ^, тогда

  • M ^ A ^ A = M
  • M ^ A ^ B ^ A ^ B = M
0 голосов
/ 28 декабря 2017

Как сказал Дерек Н, между симметричным и асимметричным шифрованием есть фундаментальные различия. Посмотрите на такие вещи, как протокол обмена ключами DH и шифр RSA, они являются фундаментальными в SSL / TLS. С другой стороны, сравнительно легко расшифровать перехваченные данные ( ROBOT атака ).

Если вам просто нужно убедиться, что ваше общение безопасно, вы можете просто использовать Проверка сервера SSL / TLS , там вы можете увидеть, не используете ли вы рекомендуемые алгоритмы, или посмотреть, не используется ли ваш SSL / TLS. конфигурация совместима с PCI-DSS / HIPAA / NIST.

0 голосов
/ 28 июня 2010

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

См. подробное описание . В этом примере перехватчик может сказать, что соединение использует RSA, RC4 и MD5. Но у них нет личного ключа Amazon, поэтому они не могут получить ключи сеанса.

0 голосов
/ 28 июня 2010

Facebook подписывает свой пакет сертификатом, который Facebook получил от центра сертификации, такого как RapidSLL.

Пока вы доверяете центрам сертификации, что все сертификаты, которые они выдают для facebook.com, действительно принадлежат Facebook.com, соединение безопасно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...