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

Вниз

Безопастная передача пароля по http   Найти похожие ветки 

 
Дмитрий С ©   (2010-09-23 11:01) [0]

Требуется безопасно передать логин и пароль по http (https не допускается) для авторизации. Т.е. сервер получает логин и пароль(или его хеш, который сможет проверить), взамен отдает идентификатор сессии (sid). Из всего этого необходимо скрыть только пароль, так, чтобы перехватив запрос по сети - нельзя было: во-первых, узнать пароль, во-вторых, авторизоваться используя такой же запрос.
Какие идеи?


 
Дмитрий Тимохов   (2010-09-23 11:02) [1]

клиент то кто? браузер?
ну шифруй чем-нибудь.


 
Ega23 ©   (2010-09-23 11:11) [2]

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


 
han_malign   (2010-09-23 11:26) [3]


> авторизоваться используя такой же запрос

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

Можно просто sid рассчитать на стороне клиента на основания "соли" - еще и принцип черного ящика добавится...


 
Дмитрий С ©   (2010-09-23 11:31) [4]


> Дмитрий Тимохов   (23.09.10 11:02) [1]

Браузер, я не стал уточнять, чтобы не возникало вопросов по поводу, причем тут дельфи.


> Ega23 ©   (23.09.10 11:11) [2]

Вот я не могу пока придумать общий алгоритм. Скрыть пароль - плевое дело, а вот не дать авторизоваться таким же запросом - тут сложнее.
Например, сервер передал клиенту ключ, а как потом сервер узнает, что этот ключ он именно этому клиенту передал?
Разве что на сервере вести учет использованных ключей.


 
Ega23 ©   (2010-09-23 11:34) [5]


> Например, сервер передал клиенту ключ, а как потом сервер
> узнает, что этот ключ он именно этому клиенту передал?


Так временный SID на авторизацию назначается.


 
Плохиш ©   (2010-09-23 11:39) [6]


> Браузер, я не стал уточнять

А какой из общеизвестных браузеров шифрует пароли?


 
Ega23 ©   (2010-09-23 11:42) [7]


> А какой из общеизвестных браузеров шифрует пароли?


Алгоритмы известны, реализаций их - вагон и меленькая тележка на куче языков.


 
Плохиш ©   (2010-09-23 11:56) [8]


> Ega23 ©   (23.09.10 11:42) [7]

Э я так и не понял,

> А какой из общеизвестных браузеров шифрует пароли?

по протоколу http.

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


 
Ega23 ©   (2010-09-23 12:06) [9]


> Вопрос данной ветки имеет смысл только для своего веб-сервиса
> и самописного клиента, какой-нибуть файерфокс в качестве
> клиента не попользуешь.


С фигали?
Гуглим "реализация AES, Java Script"
И браузер тут совсем не при чём.


 
DiamondShark ©   (2010-09-23 12:34) [10]


> Плохиш ©   (23.09.10 11:39) [6]
> А какой из общеизвестных браузеров шифрует пароли?

Щито значит "шифрует пароли"?

Из "общеизвестных браузеров" только очень старые или не очень "общеизвестные" не поддерживают какой-нибудь метод HTTP Authentication вдобавок к Basic. Уж Digest точно поддерживают чуть более, чем все.
NTLM и Kerberos точно поддерживает ИЕ, и ещё не помню кто.


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

Мне вот тоже кажется, что ОПа интересует не HTTP Authentication на уровне браузера, а самопальная реализация на прикладном уровне.
Хотя, таки да, непонятно, чем стандартный механизм не угодил. Тот же Digest в 93,1415926535897932384626433832795% случаев -- вполне подходящее решение.


> какой-нибуть файерфокс в качестве клиента не попользуешь.

Да ладна! ЖСкрипт на что в руки даден?


 
Плохиш ©   (2010-09-23 16:54) [11]


> Ega23 ©   (23.09.10 12:06) [9]

По первым ссылкам понравилось, что мелкийсофт вокруг XMLHttpRequest накрутил :-)

> DiamondShark ©   (23.09.10 12:34) [10]


> какой-нибудь метод HTTP Authentication

Вот за это спасибо, будем почитать.


 
Ega23 ©   (2010-09-23 17:07) [12]


> По первым ссылкам понравилось, что мелкийсофт вокруг XMLHttpRequest
> накрутил :-)


Ну это старая песня.


/** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08        **
** Code licensed under Creative Commons Attribution-ShareAlike License      **
** http://creativecommons.org/licenses/by-sa/2.0/                           **/
function XHConn()
{

 var xmlhttp, bComplete = false;
 try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
 catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
 catch (e) { try { xmlhttp = new XMLHttpRequest(); }
 catch (e) { xmlhttp = false; }}}
 if (!xmlhttp) return null;
 ......


 
Cobalt ©   (2010-09-24 12:05) [13]

а если использовать HTTPS?


 
Дрон   (2010-09-24 14:07) [14]

> Cobalt ©   (24.09.10 12:05) [13]
> а если использовать HTTPS?

С сертификатом, видимо, лень возиться.


 
Ega23 ©   (2010-09-24 14:09) [15]


> а если использовать HTTPS?


Читай внимательнее [0]


> Требуется безопасно передать логин и пароль по http (https не допускается) для авторизации.



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

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

Наверх





Память: 0.48 MB
Время: 0.004 c
2-1286938887
Василич
2010-10-13 07:01
2011.01.09
Русские буквы в Debug/Local Variables


9-1187680845
max_
2007-08-21 11:20
2011.01.09
DirectDraw - Поверхности


2-1286809709
v_a_belousov
2010-10-11 19:08
2011.01.09
Использование нестандартных форм. Скины для программы


15-1285572618
12
2010-09-27 11:30
2011.01.09
TDBLookupComboBox, не работает должным образом


11-1227688343
Danger
2008-11-26 11:32
2011.01.09
Насчет работы с com-портом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский