Форум программистов, компьютерный форум, киберфорум
Сети и средства коммуникаций
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 14
1

Защищенность данных через https

29.07.2013, 15:10. Показов 3834. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Пришел к Вам на форум в надежде найти вопрос на один ответ.

Я получаю доступ в интернет через компьютер (прокси) – стоящий в соседней комнате. Меня интересует следующий момент. При отправке логина и пароля на сайт следующего формата https://www.site.net есть возможность перехватить логин и пароль на компьютере-прокси?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2013, 15:10
Ответы с готовыми решениями:

не заходит через https
На машине интернет через прокси. Через хром не заход вообще, через мазилу на почту Яндекса корява ...

Отправка данных JSON через POST-запрос на сервер https
Прошу помочь, может кто имел опыт отправки и получения данных посредством json через POST-запрос на...

Проверить txt файл на защищённость
Здравствуйте уважаемые профессионалы. Есть зашифрованный текстовый файл. Надо проверить...

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

13
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
29.07.2013, 15:37 2
Цитата Сообщение от Duxant22 Посмотреть сообщение
При отправке логина и пароля на сайт следующего формата https://www.site.net есть возможность перехватить логин и пароль на компьютере-прокси?
Нет. SSL-трафик шифруется ДО прокси. На прокси он уже приходит шифрованным.
Прокси может выдать себя за сервер, для клиента, и за клиента, для сервера, но
для этого ему нужно будет выполнить махинацию с сертификатами. Не имея
настоящего SSL-сертификата, установленного в браузер пользователя, это приведет к
выдаче соответствующего предупреждения. А некоторые программные интерфейсы
вообще по умолчанию отвергают HTTPS-сессию, если используется неизвестный
SSL-сертификат.

Несколько путано, но надеюсь, объяснил понятно.
0
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 14
29.07.2013, 16:30  [ТС] 3
Цитата Сообщение от Убежденный Посмотреть сообщение
Нет. SSL-трафик шифруется ДО прокси. На прокси он уже приходит шифрованным.
Прокси может выдать себя за сервер, для клиента, и за клиента, для сервера, но
для этого ему нужно будет выполнить махинацию с сертификатами. Не имея
настоящего SSL-сертификата, установленного в браузер пользователя, это приведет к
выдаче соответствующего предупреждения. А некоторые программные интерфейсы
вообще по умолчанию отвергают HTTPS-сессию, если используется неизвестный
SSL-сертификат.

Несколько путано, но надеюсь, объяснил понятно.

Большое спасибо за развернутый ответ. В целом некоторые моменты прояснились. Осталось еще два вопроса.

1. Во сколько балов (по 10-ти бальной шкале) вы бы оценили сохранность логина/пароля при авторизации на сайт по обычному http и по https? (при использовании прокси сервера как связующее звено между компьютером и интернетом)

2. После авторизации на сайт в прокси сервере сохраняются данные о сертификате. Эти данные в дальнейшем могут быть использованы для описанной Вами подмены "клиент сервер"? скажем на следующий день
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
29.07.2013, 17:44 4
Цитата Сообщение от Duxant22 Посмотреть сообщение
1. Во сколько балов (по 10-ти бальной шкале) вы бы оценили сохранность логина/пароля при авторизации на сайт по обычному http и по https? (при использовании прокси сервера как связующее звено между компьютером и интернетом)
HTTP - 0 баллов.
HTTPS - 8 баллов (1 балл на теоретическую возможность подмены сертификата, и еще
один на атаку самого сервера).

Цитата Сообщение от Duxant22 Посмотреть сообщение
2. После авторизации на сайт в прокси сервере сохраняются данные о сертификате. Эти данные в дальнейшем могут быть использованы для описанной Вами подмены "клиент сервер"? скажем на следующий день
Не могут. Сам сертификат никакой ценности не представляет.
В установке SSL-сессии используется ассиметричная криптография - одна часть ключа шифрования
находится на клиенте (он извлекает ее из SSL-сертификата), вторая держится на сервере в
строгом секрете. Ключи криптографически связаны: если есть два связанных ключа А и B, то данные,
зашифрованные ключом А, могут быть расшифрованы только ключом B. И наоборот. Но практически
невозможно за разумное время найти такой ключ C, который мог бы расшифровывать данные,
зашифрованные ключом А или B.

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

Это все очень примерное описание того, как работает SSL/TLS/HTTPS.
Лучше Вам обратиться к более четким источникам.
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
30.07.2013, 06:46 5
Не имея
настоящего SSL-сертификата, установленного в браузер пользователя, это приведет к
выдаче соответствующего предупреждения
Из броузера нетрудно выдернуть все открытые ключи
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
30.07.2013, 10:43 6
Цитата Сообщение от odip Посмотреть сообщение
Из броузера нетрудно выдернуть все открытые ключи
И что это даст ? Закрытые ключи-то все равно недоступны.
0
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 14
30.07.2013, 11:35  [ТС] 7
Цитата Сообщение от Убежденный Посмотреть сообщение
HTTP - 0 баллов.
HTTPS - 8 баллов (1 балл на теоретическую возможность подмены сертификата, и еще
один на атаку самого сервера).



Не могут. Сам сертификат никакой ценности не представляет.
В установке SSL-сессии используется ассиметричная криптография - одна часть ключа шифрования
находится на клиенте (он извлекает ее из SSL-сертификата), вторая держится на сервере в
строгом секрете. Ключи криптографически связаны: если есть два связанных ключа А и B, то данные,
зашифрованные ключом А, могут быть расшифрованы только ключом B. И наоборот. Но практически
невозможно за разумное время найти такой ключ C, который мог бы расшифровывать данные,
зашифрованные ключом А или B.

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

Это все очень примерное описание того, как работает SSL/TLS/HTTPS.
Лучше Вам обратиться к более четким источникам.
Мне подсказали одну статью на тему безопасности шифрования (ссылка http://habrahabr.ru/post/46321/). Там есть такой абзац:

Чтобы далее «читать» весь трафик пользователя, промежуточный сервер подменяет сертификат на свой. Т.е. он просто сам подключается к клиенту со своим сертификатом, и в то же время подключается к удаленному серверу. Клиенту приходит «левый» сертификат от сервера-злоумышленника, а браузер сообщает пользователю об опасности (такие сертификаты всегда не подписаны). У пользователя остается выбор: принять сертификат и работать с сайтом, либо отказаться его принимать, но и работать с сайтом тогда уже не получится. Иногда пользователи вообще игнорируют содержимое сертификатов и машинально принимают любые переданные им.

Если пользователь принимает сертификат-подделку, то трафик будет идти по следующей схеме:

клиент <= SSL-соединение => сервер-прослушка <= SSL-соединение => сервер назначения
Я правильно понимаю что если прокси сервер захочет подменить сертификат то я в 100% случаев получу предупреждение от браузера? Каким бы софтом для подмены сертификата прокси-сервер не пользовался
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
30.07.2013, 11:40 8
Цитата Сообщение от Duxant22 Посмотреть сообщение
Я правильно понимаю что если прокси сервер захочет подменить сертификат то я в 100% случаев получу предупреждение от браузера? Каким бы софтом для подмены сертификата прокси-сервер не пользовалс
Есть софт, который ставит свои сертификаты в браузеры. Так действует Fiddler, например.
И когда он перехватывает HTTPS, в браузере предупреждений нет.
1
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 14
19.08.2013, 12:27  [ТС] 9
Извините, что поднимаю данную тему еще раз, но у меня возник еще один вопрос.
Зайдя на сайт через https можно получить информацию о сертификате (в хроме – клик по зеленому значку замка, слева от адресной строки).
Открыв «информацию о сертификате» и перейдя во вкладку «состав» можно увидеть много полей, например:

- Версия
- Серийный номер
- Действителен с
- Действителен по
- Идентификатор ключа
- Отпечаток
И т.д.

Многие из этих полей (или может быть все) имеют постоянные данные, которые не меняются при повторном открытие сайта.

Собственно сам вопрос:

При «фальсификации» сертификата промежуточный компьютер (прокси сервер) сможет подделать сертификат так что он ничем не будет отличаться от оригинального? Или если знать какие данные забиты в ключевых полях оригинального сертификата то можно, сравнив вручную, определить «подделку»?
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
19.08.2013, 13:10 10
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Duxant22 Посмотреть сообщение
При «фальсификации» сертификата промежуточный компьютер (прокси сервер) сможет подделать сертификат так что он ничем не будет отличаться от оригинального? Или если знать какие данные забиты в ключевых полях оригинального сертификата то можно, сравнив вручную, определить «подделку»?
Я уже отвечал на этот вопрос выше.
Поищите в интернете информацию о том, как работает ассиметричная криптография и
почему ей "можно доверять". И как построена система доверия сертификатов, что такое
центры сертификации, цепочки сертификатов и т.д.

Добавлено через 7 минут
Подслушать защищенный трафик можно двумя способами.

1) Получить доступ к секретному ключу сервера.
Как Вы понимаете, похищение секретного ключа от gmail, к примеру, крайне маловероятно.

2) В момент установки соединения (SSL Handshake) дать клиенту свой сертификат, выдав
его за сертификат сервера.

Пункт 2 - это единственная практическая возможность, по сути.
Но она упирается в то, что доверия самопальным сертификатам нет.

Сертификаты проверяются клиентами (т.е. браузерами), факт установки соединения с сервером,
который использует неизвестный сертификат, элементарно отслеживается. Все нормальные (да и
ненормальные тоже) браузеры выдают предупреждение.

А если вы сделаете точно такой же сертификат, как у google, байт в байт, то не сможете
расшифровывать трафик, т.к. вам нужен будет точно такой же секретный ключ, как у сервера google.
Потому что открытый и закрытый ключи криптографически связаны.
3
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 14
19.08.2013, 14:34  [ТС] 11
Цитата Сообщение от Убежденный Посмотреть сообщение
Я уже отвечал на этот вопрос выше.
Поищите в интернете информацию о том, как работает ассиметричная криптография и
почему ей "можно доверять". И как построена система доверия сертификатов, что такое
центры сертификации, цепочки сертификатов и т.д.

Добавлено через 7 минут
Подслушать защищенный трафик можно двумя способами.

1) Получить доступ к секретному ключу сервера.
Как Вы понимаете, похищение секретного ключа от gmail, к примеру, крайне маловероятно.

2) В момент установки соединения (SSL Handshake) дать клиенту свой сертификат, выдав
его за сертификат сервера.

Пункт 2 - это единственная практическая возможность, по сути.
Но она упирается в то, что доверия самопальным сертификатам нет.

Сертификаты проверяются клиентами (т.е. браузерами), факт установки соединения с сервером,
который использует неизвестный сертификат, элементарно отслеживается. Все нормальные (да и
ненормальные тоже) браузеры выдают предупреждение.

А если вы сделаете точно такой же сертификат, как у google, байт в байт, то не сможете
расшифровывать трафик, т.к. вам нужен будет точно такой же секретный ключ, как у сервера google.
Потому что открытый и закрытый ключи криптографически связаны.
Еще раз извините, что мусолю одно и то же, скорее всего вы уже дали ответ на вопрос который меня интересует, но я просто его еще не осознал.
Если у вас еще есть немного терпения, то давайте на простом примере.

Есть «компьютер А» с выходом в интернет через провайдера которому я ПОЛНОСТЬЮ доверяю.
Есть «компьютер Б» который может быть подвержен атаке «человек посередине» (Man in the middle).

На «компьютере А» я захожу на сайт где вводится логин и пароль. Вручную открываю данные о сертификате и переписываю поле «серийный номер» сертификата.

Далее захожу с «компьютера Б». Открываю тот же сайт и опять же вручную открываю данные о сертификате.

В случае атаки «человек посередине» (Man in the middle):
Будет ли совпадать серийный номер сертификата на компьютере А с серийным номером на компьютере Б?
Возможно ли при атаке «человек посередине» (Man in the middle) сделать фальшивый сертификат с таким же серийным номером как и у настоящего сертификата?
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
19.08.2013, 15:18 12
Цитата Сообщение от Duxant22 Посмотреть сообщение
В случае атаки «человек посередине» (Man in the middle):
Будет ли совпадать серийный номер сертификата на компьютере А с серийным номером на компьютере Б?
Возможно ли при атаке «человек посередине» (Man in the middle) сделать фальшивый сертификат с таким же серийным номером как и у настоящего сертификата?
Серийный номер может быть точно таким же. Как и остальные данные.
Эта информация ничем не защищена. Вы можете встретить поддельный сертификат, который
на 99% идентичен оригинальному. Но одна деталь не может быть такой же, как у оригинала.
Это открытый ключ. Как я уже писал, открытый и закрытый ключи криптографически связаны.
Если данные зашифрованы первым ключом, их можно расшифровать только вторым. И наоборот.
Но практически невозможно за разумное время найти третий ключ, которым можно было бы
заменить один из ключей из этой пары, также как и невозможно, зная один ключей из пары,
найти второй. Именно по этой причине злоумышленник не может использовать открытый ключ
из оригинального сертификата - он не знает второй "половинки" ключа, а без нее все
бессмысленно. Ему придется сделать сертификат со своей парой ключей, но насколько бы
не был такой сертификат схож с оригиналом, это уже будет другой сертификат, и браузеры
его сразу же отвергнут. Даже если в свойствах будет сказано "мамой клянусь, выдан Symantec".

Так что проверять доверие сертификата по серийному номеру точно также ненадежно, как и
по его названию. А вот проверка ключа или, что еще проще, отпечатка (thumbprint, это
просто sha-1 хэш самого сертификата) - да, определенную защиту гарантирует.

Упоминавшиеся в тексте "невозможно" следует относить к практической невозможности
на сегодняшний день, с использованием текущих вычислительных технологий. Не исключено,
что через несколько десятков лет или даже раньше эти утверждения не будут истинными
.
1
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 14
19.08.2013, 15:31  [ТС] 13
Цитата Сообщение от Убежденный Посмотреть сообщение
Серийный номер может быть точно таким же. Как и остальные данные.
Эта информация ничем не защищена. Вы можете встретить поддельный сертификат, который
на 99% идентичен оригинальному. Но одна деталь не может быть такой же, как у оригинала.
Это открытый ключ. Как я уже писал, открытый и закрытый ключи криптографически связаны.
Если данные зашифрованы первым ключом, их можно расшифровать только вторым. И наоборот.
Но практически невозможно за разумное время найти третий ключ, которым можно было бы
заменить один из ключей из этой пары, также как и невозможно, зная один ключей из пары,
найти второй. Именно по этой причине злоумышленник не может использовать открытый ключ
из оригинального сертификата - он не знает второй "половинки" ключа, а без нее все
бессмысленно. Ему придется сделать сертификат со своей парой ключей, но насколько бы
не был такой сертификат схож с оригиналом, это уже будет другой сертификат, и браузеры
его сразу же отвергнут. Даже если в свойствах будет сказано "мамой клянусь, выдан Symantec".

Так что проверять доверие сертификата по серийному номеру точно также ненадежно, как и
по его названию. А вот проверка ключа или, что еще проще, отпечатка (thumbprint, это
просто sha-1 хэш самого сертификата) - да, определенную защиту гарантирует.

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

Открытый ключ RSA (2048 Bits)
Алгоритм отпечатка sha1
Отпечаток

При обновлении окна – данные в этих полях не меняются, то есть они постоянные.

Я правильно понял что если вышеперечисленные три поля будут по содержанию совпадать на доверенном (компьютер А) и на подозрительном (компьютер Б) то это означает что нету атаки «человек по середине» и в открывшемся окне можно вводит логин/пароль без опасения что он попадет в третьи руки?
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
19.08.2013, 15:47 14
Цитата Сообщение от Duxant22 Посмотреть сообщение
Я правильно понял что если вышеперечисленные три поля будут по содержанию совпадать на доверенном (компьютер А) и на подозрительном (компьютер Б) то это означает что нету атаки «человек по середине» и в открывшемся окне можно вводит логин/пароль без опасения что он попадет в третьи руки?
Да, правильно.
Но при одном условии: компьютер А не должен быть скомпрометирован и злоумышленник не
должен иметь к нему доступа (физически или удаленно).

Добавлено через 2 минуты
Хотите наглядный эксперимент ?
Зайдите на какой-нибудь защищенный сайт и запишите параметры сертификата, который он выдает.
А затем поставьте Fiddler (сниффер HTTPS), зайдите на этот сайт снова и сравните параметры.
1
19.08.2013, 15:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2013, 15:47
Помогаю со студенческими работами здесь

Защищённость Windows 7 находится под вопросом
Программист из Виржинии Рафаэль Ривера (Rafael Rivera) сообщает, что ему стали доступны некоторые...

WSDL через HTTPS
Всем привет. Есть программа, которая работала с jira через wsdl по http. Админы решили перевести...

Регистрация через HTTPS
Я написал RMI Сервер с регистрацией, теперь мне нужно чтобы данные для регистрации передавались...

Подключение по https через IdSSLIOHandlerSocketOpenSSL
Всем привет! Столкнулся с вот такой задачкой, с виду не сложной, но тем не менее поставила меня в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru