If this is a first time you visiting Scrolls, please register in Fight Club. If you already registered, please authorize on Fight Club start page with your login and password.
Не так сложно научиться приобретать, но очень сложно научиться терять.
Существует три известных цели взлома персонажа: 1. Разрушительный. 2. Корыстный 3. Захват персонажа.
В первом случае злоумышленник, получив контроль над персонажем, уничтожает все вещи и материальные ценности. Во втором случае злоумышленник, передает или пересылает деньги и ценности другому персонажу (иногда своему, иногда первому случайному) Третий случай требует захвата базового почтового ящика, на который зарегистрирован персонаж. Эта проблема игрока и почтовой системы которой он пользуется.
Независимо от целей взлома, для Игрока подобные действия не несут ни одной приятной эмоции, а последствия и вовсе оказываются разрушительными.
Что можно сделать?! Варианты: 1. Увеличить количество паролей для каждой операции (как вариант сделать опциональной) 2. Все передачи на других персонажей требуют банковской авторизации. 3. Сделать опциональную возможность: При входе в игру с другого IP, отличного от предыдущего IP временный запрет на передачи. 4. Разделить процесс регистрации: Имя персонажа и логин для авторизации сделать разными и независимыми друг от друга.
А может ничего не поможет?! Любая дополнительная защита усложняет жизнь и для самого Игрока. Интересно узнать любые другие точки зрения и мнения по данной проблеме.Хотелось бы аргументированных мнений и без безумных идей.
Ваш Тёмный Ангел.
Mood: Задумчивое
Вам запрещено комментирование в скроллах. Причина: Character level to low
«Я могу иметь в своем распоряжении самые совершенные средства, изобретенные человечеством, но если люди не понимают основ, я потрачу на безопасность миллионы, но не получу никакого результата» (С)
Security
02-08-07 @ 12:23
...
ИМХО Второй вариант вполне нейтральный, остальные могут принести больше проблем, чем пользы ...
а помоему как сказали ранее, если по второму варианту сделать ввод пароля только при входе, - из инфы, и тогда всю авторизированную сессию иметь возможность передавать предметы, то будет вполне хорошо.
Во-первых, стоит сказать, что изменения желательно сделать опциональными, чтобы их могли включать только те кто, кому это действительно надо. Иначе шуму будет много. Во-вторых, нельзя обеспечить полной безопасности - против каждого аргумента найдется свой антиаргумент.
Единственное, что можно сделать - это затруднить выполнение разрушающих действий.
Вот мои мысли на этот счет: 1. Предоставить возможность включать контроль по IP, т.е. предоставить возможность задавать список IP, с которых я могу выполнять все операции. В этом случае, заход с другого IP должен затруднить следующие действия: - передача, продажа и выкидывание вещей - растрата более 10% от суммы, но не менее 100 кр. - смена настроек, в том числе и пароля. Выполнение этого предложения позволит мне играть с других IP, например, когда я пришел к друзьям. Но несколько затруднит работу мошеннику.
2. Ввод логина отличного от имени персонажа считаю положительным моментом, но не спасающим от перехвата трафика.
3. Переход на защищенные виды авторизации. Сейчас фактически логин и пароль передаются открытым текстом, а значит легко перехватываются.
4. Предлагаю опциональное использование аппаратных средств защиты, например, USB-брелки. Использовать их можно при высокой стоиомсти персонажа, например, артника. Стоят они в районе $20. Можно придумать механизм их рассылки через диллеров или автоматическая генерация через сайт - это уже детали. Я понимаю, что это немного фантастическое предложение, но все же озвучил его. )))
5. Перейти на динамически генерируемые куки. Поясню. Сейчас куки статические, т.е. они постоянны в течение всей сессии, а значит при перехвате злоумышленник может попытаться повторить сессию. Идея заключается в том, что куки менялись динамически по известным на стороне клиента параметрам. Пример: Сейчас в куки хранится условный номер сессии ввиде числа. Предположим правилами установлено, что куки должны меняться каждые 5 минут. На стороне клиента стоит фрэйм, который обновляется каждые 5 минут. При обновлении он передает номер текущей и предыдущей сессии. Если они правильные - генерится новый номер сессии. Если они неправильные - происходит выход из игры. Соответственно злоумышленнику необходимо перехватить не только текущую сессию, но и предыдущую (предыдущие), что требует кропотливого мониторинга за жертвой, что не всегда доступно.
Нет, ни в коем случае не в куках, - в переменной в JS
Одновременно с этим решается проблема с открытием основного окна БК в подокне, например из инфы. Поскольку подокно не знает о номере предыдущей сессии, то попытка открыть основное окно в нем убьет сессию и игрок вылетит из БК.
Еще добавлю такое предложение. Сделать возможность врменно привязывать вещи к себе. Т.е. примерно такая же привязка, как она есть сейчас, только чтобы игроки сами могли ее ставить и снимать. Для снятия привязки нужен будет некоторый код, например вида md5, который для каждого персонажа должен быть своим.
Пожалуй я немного неточно выразил свои мысли в п.5. своих предложений, вот измененный текст:
5. Перейти на динамически генерируемые куки. Поясню. Сейчас куки статические, т.е. они постоянны в течение всей сессии, а значит при перехвате злоумышленник может попытаться повторить сессию. Идея заключается в том, что куки менялись динамически по известным на стороне клиента параметрам. Пример: Сейчас в куках хранится условный номер сессии (battleid) ввиде числа. Предположим правилами установлено, что куки должны меняться каждые 5 минут. На стороне клиента стоит фрэйм, который обновляется каждые 5 минут. При обновлении он передает номер текущего battleid и предыдущего battleid. Если они правильные - генерится новый номер battleid. Если они неправильные - происходит выход из игры. Соответственно злоумышленнику необходимо перехватить не только текущий battleid, который хранится в куках в данный момент, но и предыдущий (предыдущие) battleid, которые после смены предлагается хранить в переменных JS. А это потребует кропотливого мониторинга за жертвой, что не всегда доступно.
Я могу предположить, что чаще всего перехваты происходят следующими способами
1) использование оставленного подокна БК (н-р, инфа), где легко восстановить основное окно игры; 2) перехват куки при отключенном контроле за IP (хотя непонятно как это происходит, ведь номер сессии надо еще знать). 3) перехват трафика, где видны логин и пароль (при не установленном втором пароле).
предложения 3) и 5) позволяют значительно (!) снизить риск этих видов перехватов, а именно:
1) подокном не воспользуешься, т.к. не известен предыдущий (предыдущие) номера battlepsw. Их не возьмешь из куков. До них можно добаться только через работу JS (например через ввод jаvаscript:... в адресной строке или внедрением вредоносного кода в игру, что очень затруднительно), либо через мониторинг трафика в течение продолжительного времени. Я не зря старался везде писать в скобках про предыдущие battlepsw. Вполне возможно организовать их хранение в массиве JS и по особому алгоритму их использовать для генерации новых. Это очень сильно затруднит (но не исключит совсем) перехвать контроля.
2) Аналогично п.1), т.к. теперь одних куков не хватит
3) а вот для этого я как раз и предлагал сделать пересылку первого пароля не в открытом виде. Сейчас этот способ перехвата мне представляется самым простым. Поставил трассировку трафика на доступ к в каком-нибудь интернет-клубе. После чего, собрал все пароли, проверил у кого нет второго пароля, вот собственно и все...
Я до сих пор не понимаю, почему нельзя использовать стандартную авторизацию WWW-Authenticate. Про HTTPS вообще молчу. Хотя возможно он сильно перегружает серваки...
Мне представляется, что использование HTTPS при авторизации является наиболее лучшим средством от перехватов. При этом сама игра может проходить по HTTP. Для пущей уверенности достаточно поставить еще один небольшой сервак, к которому будет обращаться один из скрытых фреймов по HTTPS и в случае необходимости будет производится блокировка сессии.
Одновремнно с этим можно при долгом отсутствии действий клиента (н-р 15 минут) попросить его ввести своий логин и пароль повторно для подтверждения что он продолжает контролировать персонажа.
Я считаю достаточно надежной комбинацию "мастер-аккаунт"+HTTPS авторизация+динамические куки.
Постоянно обновляющийся фрейм и так есть - это трафик чата, и обновляется он намного чаще чем раз в пять минут.
Кстати, можно весь чат по HTTPS запустить и передавать пламенный привет снифферам. Любой самый низкий уровень безопасности тут сгодится (в сравнении с открытым HTTP любая шифрация HTTPS выигрывает). Лишь бы сервер не перенапрягался от этого.
1. Увеличивать пароли для каждой операции можно, но я думаю лучше доработать систему второго пароля. А точнее: при загрузке второго пароля там цифры стоят всегда в одинаковом порядке, помогло бы смешивание всех цифр перед вводом второго пароля, притом смешивание сделать очень рандомным, вплоть до замеса символов и самой кнопки ввод, - ввести туда дополнительную кнопку "размешать", на которую мы жмем, и вводим свой пароль, только не в одинаковой последовательности а в разной с каждым входом, т.e. пароль остается один а местоположение кнопок всегда разное. 2. Насчет всех передач, требующих банковской авторизации - это будет геморно, имхо. Банковская авторизация нужна в почтовом отделении, так как новые системы передач более менее оправдывают себя. Кнопка "выкинуть предмет" рядом с вещью тоже должна появлятся после банковской авторизации. Как вариант, для передач установить собственный легкий пароль, и при запросе на передачи, вводить этот маленький пароль. Так же в анкете персонажа, - где выбор опций, поставить выбор авто-принятия передачи - галочку, а то я вот поставил автоприем передачи, и не знаю как убрать. =) 3. Насчет этого +. 4. Эта идея используется в других играх, и я думаю что успешно, так как узнать логин у персонажа будет не просто, хотя если поставят троян, то я думаю эта мера будет просто лишней.
Security
02-08-07 @ 13:40
Re: по вариантам
Авторизация происходит один раз, в течение сессии (а не каждый раз при передачи вещей) и само собою сам пользователь может её расторгнуть при необходимости.
Изучите в инвентаре раздел "Банк: выбрать счёт" и поймёте о чём речь.
ИМХО Хорошо сделать как в EVE online, тобишь 4пункт с некоторыми доработками. Я бы предложил как вариант, еще ужесточить условия смены пароля, хотя бы увеличить время его смены.
Согласен с Вазимиром, 4-й пункт есть почти во всех инет-рпг Акаунт+пасворд, потом ввести(выбрать) имя чара А для защиты от выброса вещей можно сделать задержку на 6 часов, чтобы выброшеную вещь можно было вернуть назад. Только как быть с вещами выброшеными в БС не знаю, придется пофиксить баг, чтоб проигравшие шмот из БС не выносили.
Я играю из дома там у меня стоит АДСЛ и тюменский провайдер соответственно, а на работе оприка и внешний ап головной компании в воронеже (ап тоже другой) и как следствие или вечером дома или на работе днем я не смогу передовать !!! По ай пи не вариант или надо сделать возможность нескольких ап как было сказанно выше ... :nono:
небольшой пароль достаточно от 4х символов тот кто переводит или выкидывает вещи независимый от банка и перса здесь обкастовщики и торговцы никак непострадают принемать можно без пароля а тот кто переводит или выкидывает +1 лишнее движение думаю нестоль затруднитьельно
Сделать логин и имя перса, различными друг от друга. По поводу облегчения перехода, прописать скрипт меняющий логин в базе, не изменяя имя персонажа, но привязывая новый логин к имени. При этом разнообразить набор символов в логине, ибо повторений будет мама родная )). Причем после ввода логина, нужно будет вести второй пароль, где уже нужно будет указать Имя персонажа. Также ввести пароль на выход из общаги и на вход в неё, при этом запретить в общаге выбрасывание вещей. Вообщем больше уже не куда ))
для каждого персонажа сгенерить свой код, после того как чел вводит в строчки логин и пароль оно запрошивало где то код(от этого логина) и подставляло его вместо логина - и только если есть форма код + пароль пускало. думаю такое поможет от взлома в клубах(если ничего не откладуется в памяти ПК)
на счёт захвата персонажа и почтового ящика: что бы не захватили ящик можно попробывать сделать такое(чисто мое мнение не уверен поможет ли) при смене ящика в течении 2-3 минут на старый ящик (тот который хотят поменять) приходит код активации смены, в бк после окна смены что бы выдавало окно с полем где его ввести - проверяешь ящик старый - вводишь код активации и только тогда оно поменяется на новый - принцып спионерил у веб мани :)
А если сделать как в программе вебмани: На винте лежит файл с паролями (дополнительными) или настройками, от туда и брать их, нет файла - нет логина, если конечно такое можно реализовать
Мысль об установке пароля на кнопку передач идеальна, к автокастерам это не имеет никакого отношения, если грамотно пересмотреть систему входящих передач кредитов. Однако если взлом уже произошел, инструментов для работы со взломанным фактически не осталось. Хаос имеет слишком много лазеек, для слива и утраты предметов, а 3х дневное заточение, это далеко не тот срок, который достаточен для полного возврата контроля как самостоятельно, так и через коммотдел, отсюда бы начать...