Автор |
Сообщение |
AlexRock Гуру |
|
У меня есть клиент и служба на сервере. Почему-то я встречал пока только такие варианты реализации этих вещей, где используются сессии. Прямо с места начинают говорить о них, как дело заходит до авторизации пользователя, как будто это само собой разумеещееся и альтернатив нет. Зачем они нужны? Я вижу единственный вариант надобности только в том, чтобы при каждом обращении клиента к службе не передавать логин и пароль для аутентификации. Но ведь заметной нагрузки это не представляет, а канал у меня шифруется, поэтому потребность в сессии я не вижу. А минус её в том, что её надо ещё как-то оргиназовать на сервере, а мне лень - проще передавать логин и пароль каждый раз.
Вот, например, работая в личном кабинете Дома.ру надо при каждом действии вводить пароль и логин. И кто-то говорил, что несмотря на больший объём работы для пользователя, это якобы повышает безопасность. Это что, передовые разработки в области безопасности у Дома, или наоборот, они пользуются неудобным вариантом из-за лени организовать сессии, а безопасность от этого не зависит?
Подкиньте, пожалуйста, статей на тему "Сессии - за и против", а то поисковики в основном про PHP выдают, как будто сессии только с ним и ассоциируются. Меня PHP вообще не интересует, а нужна информация по сессиям вобщем - чем хороши, чем плохи и какие им есть альтернативы. |
|
|
|
|
djlab Гуру Предупреждений : 1
|
|
AlexRock писал(а): |
или наоборот |
у них допилить биллинг до вменяемого состояния не кому просто. |
|
|
|
|
Estet Форумчанин |
|
Сессии как правильно было замечено используются для идентификации пользователя. Сессии как правило хранятся в куках.
Как вам например удобно было бы вводить каждый раз логин пароль здесь на форуме на каждый чих? |
|
|
|
|
AlexRock Гуру |
|
Estet писал(а): |
Как вам например удобно было бы вводить каждый раз логин пароль здесь на форуме на каждый чих? |
А если только один раз при запуске программы, а потом всё время хранить в оперативке, пока работает приложение, и вставлять их в каждое сообщение запроса к службе? Напоминаю, что общение между клиентом и службой идёт по шифрованному каналу. |
|
|
|
|
Art009 Продвинутый форумчанин Предупреждений : 1
|
|
Estet писал(а): |
Сессии как правило хранятся в куках |
а у меня в зачётке |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
Ха-ха, Алекс снова остался без ответа. |
|
|
|
|
sever Продвинутый форумчанин |
|
AlexRock писал(а): |
Напоминаю, что общение между клиентом и службой идёт по шифрованному каналу |
А ключи у вас как часто меняются, я думаю если при каждом запросе будут валить одни и теже пакеты ктонибудь может послушать и перебрать. |
|
|
|
|
Richard Ferlow Гуру Предупреждений : 2
|
|
Estet
Не совсем так. сессии и кукис все же чуть разные вещи. однако в кукисах хранят идентификатор сессии, который может соответствовать уже авторизованному пользователю.
с точки зрения браузера, сессия, которую на стороне клиента никак не сохранили после закрытия браузера пропадет у клиента.
AlexRock
логин и пароль каждый раз передавать - не есть хорошо. с точки зрения логики это пользователь у тебя каждый раз будет переавторизовываться. к тому же пароль с логином придется в кукисах хранить, что так же не очень хорошо. |
|
|
|
|
ultrancux Продвинутый форумчанин |
|
AlexRock
WCF на каждый контракт логин и пароль передаёт?
|
|
|
|
|
AlexRock Гуру |
|
sever писал(а): |
А ключи у вас как часто меняются, я думаю если при каждом запросе будут валить одни и теже пакеты ктонибудь может послушать и перебрать. |
У меня два варианта пока - шифрование на базе сертификатов (здесь прослушка не страшна, ибо сертификаты изначально поставляются вместе с клиентом и в сообщениях закрытые ключи не передаются - максимум открытые для идентификации той же службы, например) и генерация нового ключа на каждый запрос к службе. Во-втором случае ключь будет встраиваться в сообщение по определённому алгоритму (попытка спрятать ключ в сообщении), но сам алгоритм прятания меняться не будет. Второй вариант мне меньше нравится, ибо таки да, можно попытаться подобрать.
Richard Ferlow писал(а): |
логин и пароль каждый раз передавать - не есть хорошо. с точки зрения логики это пользователь у тебя каждый раз будет переавторизовываться. к тому же пароль с логином придется в кукисах хранить, что так же не очень хорошо. |
Вообще, планировалось, что пользователь будет сам вводить пароль и логин при каждом запуске приложения, а во время работы приложения они будут в ОЗУ. Хранить пароли на стороне клиента не планируется - максимум, результаты вычисления необратимой функции (хеши или что-то в этом роде - я ещё толком не разбирался).
ultrancux писал(а): |
WCF на каждый контракт логин и пароль передаёт? |
WCF передаёт всё, что программист пожелает. Логины и пароли - это моя придумка аутентификации и авторизации клиента. Просто, чтобы не гнать их по открытому каналу (даже если не каждый раз при обращении, а всего один при авторизации), я сделал зашифрованный на уровне сообщений. Только вот проблема встала, как шифровать и как ключи передавать.
Кстати, кто тут говорил, что можно будет подобрать ключи. Навряд ли - у меня нельзя получить от службы зашифрованный ответ (там аутентификация проходит при каждом запросе к любой функции - поэтому и логин-пароль нужны в каждом сообщении), если логин, пароль и айпи не совпадают по базе данных пользователей. Точнее, от клиента к службе можно прослушать, а обратно - нет. Но у клиента-то тоже будет каждый раз меняться ключ, так что... Разве что злоумышленнику удастся вычислить алгоритм прятания ключа в сообщении клиента.
Вообще, взломать становится куда легче, если злоумышленник и есть клиент. Тут уже и сертификаты не помогут - ведь их от копирования и эскпорта ключей не защитишь... Хотя, если запретить экспортировать закрытый ключ... Вобщем, всё это пока для меня очень сложно, поэтому решаться всё будет походу дела. |
|
|
|
|
1ddr Гуру Предупреждений : 1
|
|
А если клиент хочет сломать, чтобы авторизироваться под другим юзером, получив пароли и логины? И чисто теоритически если пароли и логины лежат в озу не зашифрованные, то почему их нельзя слить авторизированному пользователю? Или я чего ваще не так понял. |
|
|
|
|
AlexRock Гуру |
|
1ddr
Ну, говорят, что экзешники на Лабвью ещё никто не ломал.
Пароли и логины других юзеров находятся у других юзеров и в БД на сервере. Их от юзеров никто не скрывает. Я и говорил, что если злоумышленником является сам обладатель клиента, то ему легче будет выяснить, в какие места сообщения ныкается ключ шифрования. Вот только какие операции делаются с частями этого ключа, чтобы его восстановить, ему будет неизвестно, т. к. они зашиты в клиенте. Т. е. ключ тоже своего рода шифруется. |
|
|
|
|
|
Аватары: Вкл|Выкл ЮзерИнфо: Вкл|Выкл Подписи: Вкл|Выкл
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|
|