https - showing session key in URL?
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
https - showing session key in URL?
Есть приложение на сервлетах.
Также есть логин через https и после успешного окончания SSL транзакции, пользователь видит в URL-ах свой session key=xxxxxxxxxx
Если он скопирует URL и закроет окно, и потом откроет новое с этим самым URL, его пускают обратно в его сессию, то есть безо всяких паролей и проч.
Типа session key живет полчаса с момента выдачи.
Может я ошибаюсь, но мне кажется это не безопасно аттачить session key в УРЛу. Хотя всей механики https не знаю, может оно и ничего.
Скажите если ли какие-то веские причины по которым эти session key в https сессии присобачивают к УРЛу, а не хранят как session value, например?
Спасибо,
Сабина
Также есть логин через https и после успешного окончания SSL транзакции, пользователь видит в URL-ах свой session key=xxxxxxxxxx
Если он скопирует URL и закроет окно, и потом откроет новое с этим самым URL, его пускают обратно в его сессию, то есть безо всяких паролей и проч.
Типа session key живет полчаса с момента выдачи.
Может я ошибаюсь, но мне кажется это не безопасно аттачить session key в УРЛу. Хотя всей механики https не знаю, может оно и ничего.
Скажите если ли какие-то веские причины по которым эти session key в https сессии присобачивают к УРЛу, а не хранят как session value, например?
Спасибо,
Сабина
Last edited by Sabina on 01 Feb 2004 08:21, edited 1 time in total.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: https - showing session key in URL?
сорри дубль получился
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: https - showing session key in URL?
Sabina wrote:Есть приложение на сервлетах.
Также есть логин через https и после успешного окончания SSL транзакции, пользователь видит в URL-ах свой session key=xxxxxxxxxx
Если он скопирует URL и закроет окно, и потом откроет новое с этим самым URL, его пускают обратно в его сессию, то есть безо всяких паролей и проч.
Типа session key живет полчаса с момента выдачи.
Может я ошибаюсь, но мне кажется это не безопасно аттачить session key в УРЛу. Хотя всей механики https не знаю, может оно и ничего.
Скажите если ли какие-то веские причины по которым эти session key в https сессии присобачивают к УРЛу, а не хранят как session value, например?
Спасибо,
Сабина
Насколько я знаю/помню - стандартный паттерн во всяких апликейшн серверах -
сессион кey стараются хранить в куки, онако не у всех оно енейблед. Поетому сразу после создания сессии - когда она нью, сессия записывается в куки и в PATH_INFO. Здесь вы ее можете видеть - если посмотрите пропертис линков.
Следующий раз если на сервер придет сессия из куков, он забывает про PATH_INFO и пользуется только куками. Иначе - все время PATH_INFO и Вы будете видеть сессию в УРЛ. И здесь ноу вей ту превент копи УРЛа на другой компьютер анлес сам сервер еще и IP чекает - в реальной жизни - никто как правило IP не чакает. Если вопрос был почему сессия не в PATH_INFO, а в обычных параметрах строки - так тож делают, принципиальной разницы с PATH_INFO нет, только PATH_INFO легче хедлить.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: https - showing session key in URL?
A. Fig Lee wrote:Насколько я знаю/помню - стандартный паттерн во всяких апликейшн серверах -
сессион кey стараются хранить в куки, онако не у всех оно енейблед. Поетому сразу после создания сессии - когда она нью, сессия записывается в куки и в PATH_INFO. Здесь вы ее можете видеть - если посмотрите пропертис линков.
Про session ID я согласна, что encodeURL ее к УРЛу аттачит, если cookie disabled. А вот зачем session key показывать? Можно же их хранить в session value...
Хотя опять-таки может в https свои методы, может там только session key является идентификатором сессии?
А если и есть возможность не показывать session key, то кто знает, может сервер его восстанавливает по session ID из УРЛа и опять пускает...
Со вчерашнего дня пытаюсь найти что-нибудь толковое по https но нигде именно этот момента не описывается. И главное хоть бы исходники этих страниц были....
Сабина
-
- Уже с Приветом
- Posts: 1545
- Joined: 03 Feb 1999 10:01
Re: https - showing session key in URL?
Sabina wrote:A. Fig Lee wrote:Насколько я знаю/помню - стандартный паттерн во всяких апликейшн серверах -
сессион кey стараются хранить в куки, онако не у всех оно енейблед. Поетому сразу после создания сессии - когда она нью, сессия записывается в куки и в PATH_INFO. Здесь вы ее можете видеть - если посмотрите пропертис линков.
Про session ID я согласна, что encodeURL ее к УРЛу аттачит, если cookie disabled. А вот зачем session key показывать? Можно же их хранить в session value...
Хотя опять-таки может в https свои методы, может там только session key является идентификатором сессии?
А если и есть возможность не показывать session key, то кто знает, может сервер его восстанавливает по session ID из УРЛа и опять пускает...
Со вчерашнего дня пытаюсь найти что-нибудь толковое по https но нигде именно этот момента не описывается. И главное хоть бы исходники этих страниц были....
Сабина
Чей-то я не понял. Session Key -- это который симметричный ключ, используемый уже после стадии handshake? Браузер с сервером сами договариваются, генерят уникальный для этого сеанса ключ и им пользуются. Никогда не видел, чтобы он в урле сидел. Это точно именно ключ?
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Re: https - showing session key in URL?
Dedal wrote:Чей-то я не понял. Session Key -- это который симметричный ключ, используемый уже после стадии handshake? Браузер с сервером сами договариваются, генерят уникальный для этого сеанса ключ и им пользуются. Никогда не видел, чтобы он в урле сидел. Это точно именно ключ?
Вот именно, он самый (...?session key=xxxxxxx) там в УРЛе и сидит. Очень хочется узнать как его оттуда убрать. В простом сервлете, я бы sessionID показала, а key спрятала в value, а этот https кто его знает?
Сабина
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
Re: https - showing session key in URL?
Sabina wrote:Dedal wrote:Чей-то я не понял. Session Key -- это который симметричный ключ, используемый уже после стадии handshake? Браузер с сервером сами договариваются, генерят уникальный для этого сеанса ключ и им пользуются. Никогда не видел, чтобы он в урле сидел. Это точно именно ключ?
Вот именно, он самый (...?session key=xxxxxxx) там в УРЛе и сидит. Очень хочется узнать как его оттуда убрать. В простом сервлете, я бы sessionID показала, а key спрятала в value, а этот https кто его знает?
Сабина
Тот session key, который иногда пишут в url не имеет никакого отношения к шифровальным ключам. Просто уникальный номер сессии для ее сохранения на сервере какое-то время.
-
- Уже с Приветом
- Posts: 13316
- Joined: 13 Jun 1999 09:01
- Location: Yekaterinburg -> Montreal
Re: https - showing session key in URL?
Sabina wrote:Может я ошибаюсь, но мне кажется это не безопасно аттачить session key в УРЛу. Хотя всей механики https не знаю, может оно и ничего.
Поясните, пожалуйста, что именно небезопасно и в каком случае?
https ни чем не отличается в данном случае от http.
-
- Уже с Приветом
- Posts: 3640
- Joined: 13 Sep 1999 09:01
- Location: Canada
Я так понимаю, что session key в данном случае - просто какой-то уникальный (для данной сессии) идентификатор. Собственно, к протоколу https он, видимо, никакого отношения не имеет, поскольку генерируется приложением.
Проверить это можно просто переключившись с https на http, если есть такая возможность.
Видимо, смущает двусмысленность самого названия session key?
Проверить это можно просто переключившись с https на http, если есть такая возможность.
Видимо, смущает двусмысленность самого названия session key?
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
-
- Уже с Приветом
- Posts: 815
- Joined: 23 Nov 2003 02:29
- Location: UA, VA
-
- Уже с Приветом
- Posts: 815
- Joined: 23 Nov 2003 02:29
- Location: UA, VA
-
- Уже с Приветом
- Posts: 3640
- Joined: 13 Sep 1999 09:01
- Location: Canada
Смущает то, что если сделать paste этого URL-а в новое окно предварительно закрыв старое, сервер пускает безо всяких подтверждений паролей и проч.
Это как раз говорит о том, что этот ключ был выдан самим приложением.
Потому как новое окно будет означать новый физический канал и новый encryption key. Стало быть, простое копирование ничего не даст. Если же работает, значит само приложение нормально принимает старый session key для другой (физически) сессии. Непорядок.
И вообще, я не очень уверен, что сам ключ шифрования, который выбирается на стадии https handshake, доступен приложению для манипуляции. По идее, он должен быть скрыт в недрах уровня tls.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
И вообще, я не очень уверен, что сам ключ шифрования, который выбирается на стадии https handshake, доступен приложению для манипуляции. По идее, он должен быть скрыт в недрах уровня tls.
Вот отсюда следует, что session key имеет смысл в связке с подписью и private key:
SA secure SSL session begins when a web browser submits a request for a secured web page. When this occurs the web server responds by sending the appropriate certificate/public key. After checking the signature on the certificate, the web browser generates a session key. The session key is encrypted using the public key and is sent back to the web server. The server uses the corresponding private key to decrypt the session key. Since the server and the browser both have the same session key, all information transferred between the web site and web browser is secured with the session key.
Тогда вопрос, а что же в том приложении сделано не так? Может им надо сразу дезактивировать этот session key если окно закрылось, не важно с или без log out. А у них он живет на сервере полчаса и поэтому его можно использовать в течение этого промежутка времени из любого другого окна.
Сабина
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Вот еще картинки загадочные..
http://www.cs.nyu.edu/artg/research/ibm/ibm_slides/sld018.htm
Это они о чем интересно в "Session Key reused"?
Cабина
http://www.cs.nyu.edu/artg/research/ibm/ibm_slides/sld018.htm
Это они о чем интересно в "Session Key reused"?
Cабина
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Вот еще картинки загадочные..
http://www.cs.nyu.edu/artg/research/ibm/ibm_slides/sld019.htm
Это они о чем интересно в "Session Key reused"?
Cабина
http://www.cs.nyu.edu/artg/research/ibm/ibm_slides/sld019.htm
Это они о чем интересно в "Session Key reused"?
Cабина
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Sabina,
Вы путаете 2 разные session - SSL session нигде не светится и для юзера прозрачна.
HTTP Session, которую обычно хранят или в куки или в хидден вариаблес или в УРЛ - не имеет к ней отножения.
HTTP session - ага, можно скопировать, если не куки в другой компьютер - да собственно и куки можно.
Вы путаете 2 разные session - SSL session нигде не светится и для юзера прозрачна.
HTTP Session, которую обычно хранят или в куки или в хидден вариаблес или в УРЛ - не имеет к ней отножения.
HTTP session - ага, можно скопировать, если не куки в другой компьютер - да собственно и куки можно.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 1407
- Joined: 07 Jan 2003 19:51
- Location: НорКа
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
-
- Уже с Приветом
- Posts: 956
- Joined: 04 Mar 2002 10:01
Я все-таки еще раз повторю, для ясности.
Тот session key, который вы видите в браузере, к шифрованию не имеет отношения. Ключ для шифрования генерируется внутрях сервера, более того, https вообще ничем от http не отличается, так как все шифрование делается на уровне ssl (а поверх него идет обычный http)
А служит этот ключик для сохранения http сессии (не ssl), то бишь для того же, для чего часто используются куки. Что касается вообще не хранить сессию, то это часто невозможно - при хардверной кластеризации к примеру (когда все идет на свитч с hardware encryption, который раскидывает дальше по серверам в зависимости от загрузки) вообще тогда работать не будет, ибо никто не гарантирует что при каждом обращении браузера ему дадут один и тот же сервер.
Тот session key, который вы видите в браузере, к шифрованию не имеет отношения. Ключ для шифрования генерируется внутрях сервера, более того, https вообще ничем от http не отличается, так как все шифрование делается на уровне ssl (а поверх него идет обычный http)
А служит этот ключик для сохранения http сессии (не ssl), то бишь для того же, для чего часто используются куки. Что касается вообще не хранить сессию, то это часто невозможно - при хардверной кластеризации к примеру (когда все идет на свитч с hardware encryption, который раскидывает дальше по серверам в зависимости от загрузки) вообще тогда работать не будет, ибо никто не гарантирует что при каждом обращении браузера ему дадут один и тот же сервер.
-
- Уже с Приветом
- Posts: 1407
- Joined: 07 Jan 2003 19:51
- Location: НорКа
То есть окончательный ответ "Это именно так, потому что так должно быть" ?
Видимо, да.
С другой стороны особой угрозы безопасности здесь нет: действительно, если скопировать url целиком, можно открыть другое окошко в ту же сессию... ну так не нужно копировать url и всем его раздавать Тем более, как уже указывалось, IP стоит все же проверять, но опционально -- иначе суппорт департмент будет забит недовольными пользователями модемов, имеющими привычку уходить в офф-лайн на время заполнения формы.
Единственная проблема тут может случиться в инернет-кафе: человек ушел, лог-офф сделать забыл, просто окно закрыл, а сразу за ним супостат сел, и давай хистори смотреть... Ну тут уж не знаю, наверное, надо красными буквами логофф-ремайндер написать, других путей пока не предвидится.
-
- Уже с Приветом
- Posts: 3640
- Joined: 13 Sep 1999 09:01
- Location: Canada
Тогда вопрос, а что же в том приложении сделано не так? Может им надо
сразу дезактивировать этот session key если окно закрылось, не важно с или без log out. А у них он живет на сервере полчаса и поэтому его можно использовать в течение этого промежутка времени из любого другого окна
Всё-таки, насколько я понял, вся путаница из-за названия. Если бы эта переменная называлась sessionId, то никаких вопросов бы не возникло, так?
Как мне кажетсся, та часть Web-application, которая отвечает за сохранение HTTP сессии (для stateless протокола, кстати) генерирует этот ключ, чтобы все прочие запросы от данного authenticated клиента считались принадлежащими ему же без повторной authentication.
По поводу же процитированного фрагмента - я не сказал, что такое решение неправильно. Оно может быть менее безопасно, потому как выданный access token может быть использован на другом (других) каналах (сокетах).
Подшпионить и использовать некий параметр, являющийся частью URL и явно присутствующий во всех запросах проще, чем вклиниться в установленное TCP-соединение.
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
В данном случае https используется только для шифрования пароля который клиент отдает серверу в процессе логина. На этом секурити заканчивается
Сервер отдает клиенту sessionID, что бы потом идентифицировать его при всех последующих запросах.
В большинстве случаем обходяться этим
Если надо шифровать трафик, то прийдеться из https не вылазить вообще, что даже при умеренных нагрузках вынуждает ставить dedicated https device
Сервер отдает клиенту sessionID, что бы потом идентифицировать его при всех последующих запросах.
В большинстве случаем обходяться этим
Если надо шифровать трафик, то прийдеться из https не вылазить вообще, что даже при умеренных нагрузках вынуждает ставить dedicated https device
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Strannik223 wrote:Сервер отдает клиенту sessionID, что бы потом идентифицировать его при всех последующих запросах.
То есть этот session key - он и есть session ID по идее? Или по крайней мере нечто ему эквивалентное...
Я правильно поняла, что вы тоже согласны с тем, что это нормально? Имеется в виду это нормально, что УРЛ с этим session key можно скопировать в другое окно и сервер беспрепятственно позволит продолжать там свою сессию ..
Сабина