Общая защита паролем && Реализация в ActionScript 3

68
7

Мой проект для этого лета - сделать многопользовательскую онлайн-флеш игру. Я мог бы использовать некоторые советы, поскольку раньше я никогда не применял безопасную систему входа, не говоря уже об этом в ActionScript.


Моя настройка прямо сейчас представляет собой отправку/получение игровых данных .swf на/с сервера Java, который связывается с базой данных MySQL об учетной записи.


1) Как мне вообще идти? Я думал, что, возможно, мне нужно, чтобы мой .swf зашифровал пароль, отправьте его (заново зашифруйте его сервер?), А затем сохраните его в базе данных.


2) Я уверен, что могу найти множество руководств по шифрованию на Java. Может ли кто-нибудь рекомендовать библиотеку ActionScript или даже просто общий алгоритм шифрования (чтобы я мог самостоятельно искать эквивалент AS), который был бы приемлемым для этой задачи?


Кроме того, моя игра общается через XMLSocket. Я не думаю, что это должно вызвать какие-либо проблемы безопасности, но, пожалуйста, дайте мне знать, если я ошибаюсь.

спросил(а) 2009-07-25T06:59:00+04:00 11 лет назад
1
Решение
55

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


Поэтому лучший подход заключается в хешировании пароля с помощью nonce (число используется только один раз), т.е. случайная строка и временная метка и вместо этого отправляют ее. Затем я отправил хешированную строку, nonce и timestamp в формате xml на ваш сервер db, который затем попытался бы воспроизвести хешированный пароль, используя пароль, который вы сохранили для пользователя.


Вот как это делает спецификация W3C usernameToken. см. http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-os-UsernameTokenProfile.pdf


<UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-utility-1.0.xsd">
<Username>jon</wsse:Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">9JSGeXj+zpvEp42I20K/1bg8rCE=</Password>
<Nonce>TaF3g5F37wSHtSdY</Nonce>
<Created>2009-07-25T10:29:34Z</:Created>
</UsernameToken>

Однако это может привести к нежелательной сложности.

Таким образом, вы можете просто просто хешировать пароль и отправить его на сервер, который затем будет хешировать свою версию пароля, и если он будет соответствовать вашему адресу. Хотя в конце дня вы должны спросить себя, насколько безопасен фактический .swf файл, потому что вы можете декомпилировать их и просто перепрыгнуть через исходный логин. Однако для этой большей части этого будет достаточно.


В хэш-жало я обычно использую as3crypto (code.google.com/p/as3crypto/), но я знаю, что пакет utode utils имеет реализацию md5 и sha-1.


Что касается сокета xml, это будет нормально, если у вас есть файл политики межсайтовой политики в приложении action script, который позволяет ему разговаривать с этим доменом, а другой - в домене, который позволяет flash разговаривать с Это. в противном случае вы можете получить ошибки безопасности.


Надеюсь, что это поможет.


Джон

ответил(а) 2009-07-25T12:36:00+04:00 11 лет назад
39

Здесь есть ссылка о шифровании в md5 с ActionScript (я просто искал ее в google), так как это наиболее часто используемый алгоритм шифрования. Вы не должны зашифровывать его на сервере, но использовать безопасное соединение с базой данных и сравнивать зашифрованные в сообщении зашифрованные пароли в базе данных.

ответил(а) 2009-07-25T07:53:00+04:00 11 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема