Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

Шифрование данных для Web-Server а   Найти похожие ветки 

 
Ega23 ©   (2008-02-26 11:38) [0]

Народ, вот какой вопрос: если мне из браузера надо авторизоваться на WebServer, то каким образом на сервер передаются мои логин-пароль?
В явном виде, или в шифрованном?
Дайте ссылку почитать на эту тему...


 
Рамиль ©   (2008-02-26 11:40) [1]

http в открытом
https в шифрованном


 
Kerk ©   (2008-02-26 11:40) [2]

Способов авторизации очень много
Уточни о каком ты говоришь
---

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


 
Ega23 ©   (2008-02-26 11:46) [3]


> Уточни о каком ты говоришь


Есть СУБД с какими-то данными. Для неё разрабатывается тонкий клиент - вся логика уходит на WebServer, пользователь только тыкает ссылки в браузере и смотрит полученные страницы.
есть список действий, доступный пользователю. Зависит от его "роли доступа", т.е., фактически, от логин-пароль.
Собственно, перед началом работы пользователь вводит логин-пароль в html-форме и это дело уходит на сервер, где уже формируется контент, разрешённый данной роли.

собственно вопрос: в каком виде этот логи-пароль на сервер уходит?
В виде http://www.xxx.ru/main$uid=user&pwd=pass  ?  
Или всё-таки как-то более хитрым способом?


 
Kerk ©   (2008-02-26 11:50) [4]


> Собственно, перед началом работы пользователь вводит логин-
> пароль в html-форме и это дело уходит на сервер, где уже
> формируется контент, разрешённый данной роли.
>
> собственно вопрос: в каком виде этот логи-пароль на сервер
> уходит?
> В виде http://www.xxx.ru/main$uid=user&pwd=pass  ?  
> Или всё-таки как-то более хитрым способом?

Так и уходит. Копай в сторону SSL, тогда вообще весь трафик будет шифроваться


 
Kerk ©   (2008-02-26 11:54) [5]

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


 
clickmaker ©   (2008-02-26 12:06) [6]


> собственно вопрос: в каком виде этот логи-пароль на сервер
> уходит?
> В виде http://www.xxx.ru/main$uid=user&pwd=pass  ?

если через submit формы и у нее action=post, что через post, т.е. не как часть урла


 
clickmaker ©   (2008-02-26 12:14) [7]

PS. в любом случае рекомендовал бы передавать уже хэш пароля


 
Ega23 ©   (2008-02-26 12:17) [8]


> PS. в любом случае рекомендовал бы передавать уже хэш пароля


А как его в браузере получить?
Ткните носом в ссылку какую-нибудь (чтобы я вас не мучил своими вопросами глупыми), где это простым доступным способом описано, а то я этим никогда раньше не занимался и практически полный ноль в этих делах.


 
clickmaker ©   (2008-02-26 12:20) [9]


> [8] Ega23 ©   (26.02.08 12:17)
>
> > PS. в любом случае рекомендовал бы передавать уже хэш
> пароля
>
>
> А как его в браузере получить?

средствами языка, на котором пишется страница.
в php - MD5(), SHA1(), к примеру


 
Kerk ©   (2008-02-26 12:25) [10]


> Ega23 ©   (26.02.08 12:17) [8]

Special For You :)
http://forum.antichat.ru/thread47802.html


 
Kerk ©   (2008-02-26 12:26) [11]

Но как основное средство защиты - это ничего не меняет. Какая разница злоумышленнику, что перехватывать? Пароль или его хэш? Всяко, что поймал, то и передаешь серверу для авторизации.


 
DiamondShark ©   (2008-02-26 12:31) [12]


> А как его в браузере получить?

Известно как: вычислить.
Хинт: В браузере есть скрипты.

В тырнете полно реализаций хэшей на VBScript и JavaScript.


 
DiamondShark ©   (2008-02-26 12:33) [13]


> clickmaker ©   (26.02.08 12:20) [9]

Какой ещё пыхэпэ, если хэш надо в браузере считать?


 
clickmaker ©   (2008-02-26 12:37) [14]


> [13] DiamondShark ©   (26.02.08 12:33)

ну-да, ну-да... это меня переклинило на передачу из веб-сервера в базу )


 
Ega23 ©   (2008-02-26 12:53) [15]

Так, с хэшированием понятно, дальше сам разберусь, всем спасибо!

Возник ещё один теоретический вопрос:
Вот есть СУБД (минимальный набор - Oracle, MSSQL, Postgres), вот к ней - клиент. Данные из БД на клиент гонятся по TCP.
А есть ли на этом уровне защита данных? Т.е. я послал запрос типа Select * from Table1. Как мне ответ защитить во время передачи, и вооще, можно ли это сделать стандартными средствами? Или свой "недопротокол" придётся накручивать?


 
Eraser ©   (2008-02-26 12:56) [16]


> Ega23 ©   (26.02.08 12:53) [15]

вроде есть свои встроенные средства защиты коммуникационных каналов, зависит от субд. а вообще обычно сервер на localhost"е находится.


 
Ega23 ©   (2008-02-26 12:58) [17]


> а вообще обычно сервер на localhost"е находится.


Вот как раз возможен вариант его нахождения где-то в другом месте. Вероятность небольшая, но тем-не-менее...


 
Ega23 ©   (2008-02-26 12:59) [18]


> вроде есть свои встроенные средства защиты коммуникационных
> каналов, зависит от субд.


Ткни в ссылочку, если есть...


 
DiamondShark ©   (2008-02-26 13:01) [19]


> Kerk ©   (26.02.08 12:25) [10]
>
> > Ega23 ©   (26.02.08 12:17) [8]
>
> Special For You :)
> http://forum.antichat.ru/thread47802.html

За что ты его так?


> Kerk ©   (26.02.08 12:26) [11]
> Но как основное средство защиты - это ничего не меняет.
> Какая разница злоумышленнику, что перехватывать? Пароль
> или его хэш? Всяко, что поймал, то и передаешь серверу для
> авторизации.

Дык, это не так делается!
Ясен пень, если передаётся хэш только пароля, то это монопенисуально передаче самого пароля.
Обычно делается некое подобие challenge/response протокола.

1. Клиент с формой авторизации получает многобайтную случайную последовательность (challenge), сервер запоминает challenge в сессии клиента.
2. Клиент шифрует challenge, используя в качестве ключа хэш пароля.
3. Клиент передаёт имя и зашифрованный challenge.
4. Сервер по имени добывает из базы хэш пароля, шифрует challenge и сравнивает с полученным от клиента.

Этот метод сносно защищает пароль, но не защищает от перехвата сессии.


 
DiamondShark ©   (2008-02-26 13:04) [20]


> Ega23 ©   (26.02.08 12:53) [15]

За всех не скажу, но MSSQL умеет шифровать трафик.
Оракл, вроде бы, тоже.

Есть другой вариант: поверх открытого TCP канала поднимаешь какой-нибудь защищённый VPN, а уже по виртуальному каналу коннектишься к SQL-серверу.


 
palva ©   (2008-02-26 13:05) [21]


> Ega23 ©   (26.02.08 12:53) [15]
> Так, с хэшированием понятно, дальше сам разберусь, всем спасибо!


Не надо передавать хэш. Это создаст дополнительную уязвимость.
Надо передавать сам пароль. Только под https.


 
Kerk ©   (2008-02-26 13:07) [22]


> DiamondShark ©   (26.02.08 13:01) [19]
> Дык, это не так делается!

Проще и надежнее заюзать SSL, чем делать то, что ты описал :)


 
Reindeer Moss Eater ©   (2008-02-26 13:09) [23]

Этот метод сносно защищает пароль, но не защищает от перехвата сессии.

Можно и сессию защитить если в полный рост использовать diggest авторизацию (nonce, ncount, etc)
Но шттпс конечно же проще.


 
BiN ©   (2008-02-26 13:14) [24]


> Ega23 ©   (26.02.08 11:38)

Олег, в промышленных масштабах ssl предпочтительнее, хотя его использование несколько влияет на производительность. Помимо защиты данных здесь еще играет роль фактор однозначной идентификации сервера. К тому же инженерная часть работы всегда обходится дешевле, чем разработка, пусть и на js. Настройка узла iis для работы с ssl занимает пару минут при наличии корректного сертификата.
А что касается шифрования  трафика между субд и клиентом.. Ты же вроде как делаешь трехзвенку, то есть клиент у тебя не подключается напрямую к базе, нет?


 
DiamondShark ©   (2008-02-26 13:14) [25]


> Проще и надежнее заюзать SSL, чем делать то, что ты описал
> :)

Для SSL гравицапа нужна.

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

А так конечно, проще и надёжнее, кто ж спорит.


 
Ega23 ©   (2008-02-26 13:18) [26]


> А что касается шифрования  трафика между субд и клиентом.
> . Ты же вроде как делаешь трехзвенку, то есть клиент у тебя
> не подключается напрямую к базе, нет?


Ну "клиентом" в данном случае WebServer выступает. В принципе это дело с одной стороны несколько параноидально - шифровать траффик между AppServer и СУБД, с другой стороны прецедент всё-таки может быть и против него не попрёшь.
Что касается общения между клиентом (браузером) и WebServer-ом, то, по всей видимости, действительно SSL проще всего использовать...


 
Kerk ©   (2008-02-26 13:23) [27]


> Ega23 ©   (26.02.08 13:18) [26]

Тока не зажимайте $100 на сертификат от VeriSign. Чтоб уж совсем по взрослому :)


 
Ega23 ©   (2008-02-26 13:26) [28]


> Тока не зажимайте $100 на сертификат от VeriSign. Чтоб уж
> совсем по взрослому :)


Ну это уже не я решаю. Но есть сильное подозрение, что с этим всё в порядке будет...


 
Пробегал...   (2008-02-26 13:30) [29]

clickmaker ©   (26.02.08 12:14) [7]
PS. в любом случае рекомендовал бы передавать уже хэш пароля


clickmaker ©   (26.02.08 12:20) [9]
средствами языка, на котором пишется страница.
в php - MD5(), SHA1(), к примеру


Ну ты хоть думай то, что пишешь ;)

Kerk ©   (26.02.08 12:26) [11]
Какая разница злоумышленнику, что перехватывать? Пароль или его хэш? Всяко, что поймал, то и передаешь серверу для авторизации.


ну в случае MD5 да. Поэтому надо копать в сторону Kerberos ;)


 
BiN ©   (2008-02-26 13:30) [30]


> Ega23 ©   (26.02.08 13:18) [26]
>
>
> Ну "клиентом" в данном случае WebServer выступает. В принципе
> это дело с одной стороны несколько параноидально - шифровать
> траффик между AppServer и СУБД, с другой стороны прецедент
> всё-таки может быть и против него не попрёшь.


Например, настройка шифрования для MSSQL подробно описана в поставляемой документации aka Books Online. Статья Encrypting Connections to SQL Server. Кстати, доступна и русская версия books online.


 
oldman ©   (2008-02-26 13:31) [31]


> Ega23 ©  


Ты там куда вляпался?
То ему word и excel файлы надо на пароли проверять,
то web-защиту курежит...


 
Ega23 ©   (2008-02-26 13:38) [32]


> то web-защиту курежит...


Скорее наоборот...  :)


> Например, настройка шифрования для MSSQL подробно описана
> в поставляемой документации aka Books Online. Статья Encrypting
> Connections to SQL Server. Кстати, доступна и русская версия
> books online.
>


Тут вот какое дело... Для конкретной СУБД вполне вероятно это и есть. Про MSSQL знаю точно, про Oracle - не знаю (но скорее всего - тоже есть), про Postgres ничего сказать не могу. Хотелось бы какой-нибудь стандартный механизм, типа ODBC->Strong Encryption
Но на ODBC нельзя заложиться, т.к. не исключен вариант нахождения Веб-Сервера под *никсом.
Вобщем, пока кроме какого-то своего сервиса пока в бошку ничего не лезет...  :(


 
boriskb ©   (2008-02-26 13:41) [33]

> Ты там куда вляпался?


:)
Действительно интересно
И к тому же ветка про "однокласники"... то бишь - как из ничего чего-нибудь утащить :))

Олег, сухари то хоть насушены? :)


 
Petr V. Abramov ©   (2008-02-26 13:43) [34]


> Ega23 ©   (26.02.08 13:18) [26]

это уже настройками клиента СУБД делается.


 
Плохиш ©   (2008-02-26 13:58) [35]


> Ega23 ©   (26.02.08 13:38) [32]


> про Postgres ничего сказать не могу

В 8х SSL включается.

> Но на ODBC нельзя заложиться, т.к. не исключен вариант нахождения
> Веб-Сервера под *никсом.

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


 
Ega23 ©   (2008-02-26 16:53) [36]

Так, едем дальше.
Ну вот прописал я в httpd.conf
LoadModule ssl_module modules/mod_ssl.so

А что я должен увидеть? при наличии сертификата я смогу зайти на localhost и через http и через https ?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.009 c
15-1204380753
Unbekannt
2008-03-01 17:12
2008.04.13
Оборзевшие спамеры


2-1206014820
Andrewtitoff
2008-03-20 15:07
2008.04.13
Как сделать скриншот экрана


15-1204178474
SteepeWolf
2008-02-28 09:01
2008.04.13
Восстановление данных


15-1204017202
Правильный_Вася
2008-02-26 12:13
2008.04.13
FireBird - альтернатива


6-1185177400
Dmitry_177
2007-07-23 11:56
2008.04.13
Сокеты: разрыв соединения для последующего соединения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский