BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/review/archive/1999/16-02-99.html

16 февраля 1999, #63

InfoWorld подвел итоги прошедшего года. В категории Golden Guardian, присуждаемой лучшему безопасностному продукту, в компанию солидных firewall'ов и вирутальных сетей попали Nmap и L0phtCrack. А вы говорите, underground... Операционная система года - Red Hat Linux.


Не удается покончить с темой "CGI authentication". Выжимка из переписки с Павлом Маминым:

Прочитал статью Алексея Звягина и отклик на него на www.hackzone.ru

У этого метода есть, по крайней мере, два минуса:

1) номер содержится в HTML-файле и, если человек выйдет покурить на пару минут, то я могу заглянуть в кэш к его браузеру и воспользоваться его логином. Даже если код генерировался с использованием ip-адреса, остается проблема прокси или подделки ip-адреса.

2) чтобы в HTML-запросе типа GET не фигурировал этот номер, Алексей Звягин предлагает переход именно с помощью кнопки в составе формы (<input type=button ...>). Это не всегда удобно - иногда хотелось-бы переходить по страницам просто по href'у.

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

В моих CGI-скриптах давно уже используется по некоторым параметрам более совершенный механизм:

Пароль передается только один раз и хранится в специальной базе, поддерживаемой CGI-скриптом, в течение нескольких минут. Вместе с этим паролем там же хранится login пользователя, IP-адрес (или адрес его proxy-сервера) и, что самое главное, Cookie-код, генерируемый в данный момент всеми WWW-браузерами (параметр среды окружения HTTP_COOKIE) - по крайней мере IE, NS, Opera и Lynx. При проверке этой базы и обнаружения там информации о том, что данный пользователь уже зарегистрировался и его время еще не вышло, это время продлевается.

Единственный способ обойтись без кукиев, и в тоже время обойтись без повторной аутентификации, это, по моему мнению, каждый раз при переходе перегенерировать номер (но тогда возникает проблема с Back'ом), время жизни аутентификации сократить до минимума (скажем, 2 минуты) и вставить REFRESH с этим временем (минус макс. допустимое время на выкачивание страницы) на каждую страницу. Но в этом случае всплывает другая проблема - надо очень быстро заполнять формы, чтобы не потерять данные при перезагрузке страницы.

Посмотреть, как работает указанный мной механизм, можно по адресу http://banner.sco.ru - это баннерная сеть для г.Екатеринбурга.

До сих пор я довольно настороженно относился к cookies, используя их лишь в качестве вспомогательного средства. Черт его знает, может и правда пора пересмотреть свои взгляды. Основная проблема тут в тех нескольких процентах посетителей, отключающих куки. Так что главную роль тут играет мотивация - такого пользователя (по определению более придирчивого) еще надо убедить, что куки тут используются ему исключительно во благо, и ежели он их сейчас не включит, то до скончания века себе этого не простит. Свежей иллюстрацией обратного служит недавний пример из BANNERS.

И в заключение этой темы (я надеюсь :) ) - немного о том, как решается эта задача в Байконуре - сервере приложений от Epsylon Technologies. Сперва письмо от Дениса Танаева:

Привет!

Вот я прочитал письмо Алексея Звягина про аутентификацию, и не могу удержаться от того, чтобы не ответить. Для начала несколько выкладок:
1) априори считается что канал прослушиваемый. Так что аутентификация (и возможно идентификация) без использования средств шифрования траффика невозможна. Впрочем, у всех есть возможность меня опровергнуть.
2) Далее, каждый нормальный Web сервер должен уметь держать контекст клиента.

И еще. Для идентификации личности в www средствами _протокола_ предусмотрена возможность а)идентифицировать пользователя по IP (плохо) б)идентифицировать пользователя по IP + cookie ( при использовании cookies у броузера этот метод гарантирует узнаваемость уникального пользователя. Естественно, надо посмотреть на пункт 1, и вспомнить анекдот про неуловимого Джо)

Таким образом, можно обойтись только первым вводом UserID + Pass, далее выдавать человеку cookie, по которому этот пользователь однозначно определяется. А вот если еще в Web сервере и сессия хранится, и он сам (в смысле прозрачно для программиста) занимается идентификацией пользователя (наш Байконур, например, такое делает), то вообще просто замечательно. Можно даже у cookie поставить expiration period до, скажем, 2010 года, чтобы потом, при следующем запросе этого человека на логин можно было бы его предварительно идентифицировать (и вывести уже готовый UserID в форму логина). Просто, по моему мнению, слишком много труда уходит у людей на то, чтобы создавать себе препятствия, которые потом героически преодолеваются.

Схема работы такая: на хост приходит клиент. Байконур смотрит на Cookie+IP (или только IP, но такую идентификацию в документации рекомендуется ставить только в определённых случаях). Если такой комбинации еще не было, то он заводит себе client`а (терминология из документации) и ClientID (это внутренний идентификатор клиента). Далее, если этот клиент просто берёт страницу, то байконур её просто отдаёт. Если же клиент обращается к приложению, то байконур передаёт запрос этого client`а и его ClientID приложению, в котором содержится список всех client`ов данного приложения с их контекстами. Приложение вибирает нужный контекст, и только теперь в текущем контексте обращается к тому, что написал программист. Чуствуешь, с чего начинает писать программист? С логики клиента, а не с логики распознавания клиента. Кстати, похожий алгоритм есть в Kiva (Netscape) Application Server.

Причем схема Cookie+IP - лишь один, хоть и самый распространенный, из четырех поддерживаемых байконуром механизмов идентификации/аутентификации по http (а байконур поддерживает не только этот протокол; в других протоколах используются другие схемы).

Denis Tanayev, Epsylon Technologies.
http://www.taxxi.com

Ситуация, когда уходит головная боль по идентификации - просто мечта. Но это еще не конец. Природное занудство заставило меня поинтересоваться - можно ли написать свой модуль идентификации, реализующий какую-то свою выстраданную схему. Это было бы очень утешительно для пароноика типа меня, хотя и сама по себе схема Cookie+IP выглядит достаточно надежно (по словам Дениса, за полгода эксплуатации образцово-показательного сайта http://www.games.demo.ru/ недовольных замечено не было). Ответ меня несказанно порадовал - можно.

Ну что сказать. Вообще, общение со знакомыми, использующими Байконур в своих разработках, уже давно вызывает у меня повышенное слюноотделение :)


Свежий привет от Мирабилиса. Мало им своих старых дырок. Как известно, в icq'99 (находящейся в состоянии глубокой беты, но тем не менее активно использующейся), появился этакий встроенный мини-веб-сервер, спрятавшийся под пунктом меню "My ICQ Page". Реализован он как и все остальное в этом уродце. Счастливые владельцы последней версии могут проверить это прямо сейчас, активизировав его и пройдя сюда. И всего-то несколько сотен точек к url приписали...


Здесь собирается команда, решившая написать TF(полную копию TF1) для Quake2. Мне, как человеку, к 3d-шутерам равнодушному (ну разве что после завалишинских вкусных описаний поддавшемуся на провокацию и поставившему HalfLife, да и то не игры ради, а токмо чтобы посмотреть "в деле" свою карточку - надоело, знаете, ли, на трехмерные screen saver'ы любоваться), это мало о чем говорит, но если эти слова пробудили в вас что-то пробудили, и вы чувствуете в себе талант программиста - вам прямая дорога сюда. Обещается, между прочим, всемирная слава.

Кстати, на idSoftware сегодня опять призывают освободить Кевина (в понедельник случилась 4-я годовщина его отсидки). За известие спасибо Александру Прокофьеву.


На The International PGP Home Page объявлено о завершении процесса сканирования и вычитывания исходников PGP6, так что в скором времени ожидается PGP6.0.2i. Особо нетерпеливые могут скачать исходные тексты и попробовать собрать их самостоятельно. Впрочем, учитывая факт, что оригинальная PGP 6.0.2 давно раздается с того же сайта, переход на международную версию имеет смысл только при возвращении в нее поддержки RSA-ключей.

Кстати, не так давно появившийся макровирус Калигула занимается поиском связок секретных ключей PGP и пересыланием их куда надо. Так что ключики-то того, берегите.


Напоследок - еще пара ссылок. Security Zone в первую очередь предлагает большую подборку всевозможного софта - от Photoshop'а и FrontPage до сканеров, флудеров и т.п. Плюс тексты на соответствующие темы - криптография, взлом Unix и Windows, carding, phreaking, serials и т.п.

И еще одна страница, посвященная коллекционированию информации о троянцах. Тут же - ссылка на очередное чудо с душевным названием, версия 2.12 которого уже отлавливается AVP, в ответ на что автор немедленно выпустил версию 2.14. Налицо очередная гонка вооружений. Глядишь, скоро дорастем и до полиморфных троянцев.


У вас есть новость или ссылка, заслуживающие внимания наших читателей ? Пишите.

«     »






  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach