Есть виртуальный хостинг (мой). Кроме меня никто туда не ходит. Есть пара скриптов на хосте, собирающих инфу, и отдающих её мне по моему запросу. Нужно защитить общение с хостом. Нужна ли для этого сертификация/ssl? Или есть более простые решения (не в ущерб надёжности)?
Сертификат - это и есть простой путь. Генеришь сертификат самостоятельно, для этого тебе потребуется только OpenSSL.
О, да. А после этого удивляешься, почему это твой браузер ничего "необычного" не сказал, когда кулхацкер в интернет-кафе заMITM-ил тебя sslspoof-ом. Просыпайтесь, на улице 2011-й год. Запомните как аксиому: самоподписный сертификат эквивалентен его отсутствию. Возможно, в качестве варианта решения следует попробовать добавить в браузер свой Root CA (тоже самоподписный, лол) а ним уже подписать сертификат для сайта, что бы он идентифицировался как нормальный. Впрочем, я не уверен что это будет работать. Самое адекватное решение - это поднятие OpenVPN или SSH-тоннеля к серверу, по которому уже ходить к HTTP, почте, или что там у тебя.
Хахаха, давно так не смеялся. Видимо простым числам модуля PGP-ключа при факторизации очень важно, были ли они выписаны Verisign-trusted сертификатом, или сгенерены в домашних условиях.
К чему ты это сказал? Какая, блин, факторизация? Типа, это единственная возможная атака на SSL? Ещё раз: смысл в том, что в большинстве современных браузеров менеджмент сертификатов реализован не совсем адекватно, из-за чего "просто невалидный сертификат" проблематично отличить от невалидного сертификата, который был сгенерирован для твоей SSL сессии во время MITM-атаки. Вот здесь всё разжевано: http://nobunkum.ru/issue002/ssl
Cr4sh Сказал я это вот к чему. Сгенерил я самоподписный серт, установил его в трастед-хранилище и залил на сервер. Теперь расскажи мне, каким образом кулхацкер из нитернет-кафе может организовать атаку?
Не весь клиентский софт это умеет делать. И да, есть ещё sslstrip. Конечно, это уже будет не совсем чисто техническая атака, но всё равно очень большая вероятность не заметить тот факт, что в адресной строке браузера внезапно пропала иконка защищённого соединения. Так что VPN/SSH при любых раскладах будут более адекватным решением.
Cr4sh Не понял? Кто не умеет? Проводник не умеет по даблклику на сертификат предлагать проинсталлить его в виндовый сторадж?
Не все используют этот виндовый сторадж (в особенности касается кросс платформенного софта). Алсо, посмотри предыдущий обновлённый пост.
Cr4sh Любой уважающий себя броузер можно настроить предупреждать о покидании защищенного ресурса. Из пацанского-кроссплатформенного на ум приходит только OpenSSL. У него есть вся функциональность по валидации клиента сервером и сервера клиентом. Если программа не работает с виндовым хранилищем, и не реализовала свое собственное локальное хранилище, то это не программа, а студенческая лабораторная работа по информатике.
При этом работать с ним будет эм... мягко говоря не очень удобно. Алсо, бай дефаулт это никто не использует.
Не помню как там в остальных, но в Опере настройки кастомизирются для любого сайта. Можно поставить эту опцию только для своего сайта. Но главное тут не это. Каким образом verisign-трастность спасет от редиректа на незащищенный ресурс? Никаким. Точно также ничего не заметишь, будь у тебя сертификат хоть от самой Хари Кришны.
Trust-ность сертификата есть только потому, что в операционную систему уже включены trusted-сертификаты, то есть то, на что можно опираться. Просто как факт доверия. Функциональность же самого самого рутового сертификата всех сертификатов ничем не отличается от домашнего самоподписанного.
Хорошо, а если такая схема Код (Text): Я -------- MITM -------- СЕРВЕР \ / \ / \ / \________ Д ______ / Кроме основного канала, подверженного атаке в момент передачи ключа, допустим есть ещё дополнительный почтовый канал (защищённый стандартным сертификатом). Если передать через него на сервер копию сертификата, по которому было установлено соединение, (теоретически подверженное митм), можно ли на сервере сопоставить пару ключей Я-MITM и MITM-Сервер (являются ли они комплементарной парой)? И сделать на основании этого выводы?
тогда остается на сервере и на клиенте иметь генератор ключей (работающие синхронно и независимо друг от друга) и этими ключами шифровать траффик?
cresta Тебе нужно доставить сертификат на сервер и убедиться в том, что его по дороге не перехватили. Если сертификат успешно доставлен, и не попал ни в чьи руки, то дальше бояться нечего, и не важно, является он Verising-trusted, или обычным, сгенеренным в домашних условиях самоподписанным сертификатом. Но как убедиться в том, что никто не влез посредине, пока ты заливал серт на сервак? Никак, кроме как заливая сертификат по защищенному соединению, которое, в свою очередь уже должно быть защищено trusted-сертификатом, выданным кем-то из виндового trusted storage. Виндовый trusted storage это как отправная точка доверия. Начинать можно только с нее. Но дело в том, что сертификат на сервер ты заливаешь всего один раз, а все остальное время общаешься с сервером без передачи приватного ключа по сети. Поэтому если никто про тебя не знал в момент заливки сертификата, то после этого во время дальшейней работы нечего бояться - прочитать твое зашифрованное общение можно будет только факторизацией модуля ключа или каким-то сверх-умным анализатором-подбиратором AES-ключей.
_DEN_ Понятно, что уязвимое место - заливка на сервер, дальше ни сертификат, ни ключи мелькать не будут. ssh годится для заливки сертификата на сервер?
cresta Для 100% безопасной заливки на сервер годится любое шифрование, защищенное сертификатом, который выдан тем-то, чей публичный сертификат хранится в trusted storage винды (идущий в комплекте с виндой). И только так.