Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 19.07.2011, 01:16   #1
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Скремблирование как бюджетная защита данных.

Здравствуйте!

Может ли кто похвастаться успешным опытом применения скремблирования для защиты передаваемых между сервером и клиентом данных?

Собственно размышления навеяны этим постом на Хабре.

Лично я думаю, что применять тяжелые, на мой взгляд алгоритмы типа Blowfish не оправдано, хотя я полный нуб в этом вопросе, так что буду рад если Вы мне скажете куда копать.

Скремблирование приглянулось за счет его быстродействия, в приведенном выше посте используется всего 3 xor и 1 or операции для (де)кодирования данных. Что, по моему мнению, здорово - это отсутствие необходимости передавать клиенту ключ, который все - равно можно без проблем отловить, хотя в данном подходе талантливый реверс - инженер может щелкнуть всю защиту за некоторое время и без проблем шифровать поддельные данные для отправки их на сервер.

Может есть более надежные техники? Ткните пожалуйста!

Я в курсе, что защитить данные на 100%, да что там даже на 40%, нельзя, но все - же хочется отсеять максимум "нелегалов".
(Offline)
 
Ответить с цитированием
Старый 19.07.2011, 20:33   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Скремблирование как бюджетная защита данных.

Одно дело криптование общей ифнормации, другое дело создание алгоритма создающего хеш код. Если расчитывать уникальный хеш для пакета и слать его на сервер, то на сервере, по тому же механизму данные будут проверяться (после получения данных, создание хеша, и сравнение).
Это весьма затрюдняет подделку данных, т.к. требуется в любом случае тогда знать алгоритм создания хеша данных.
Далее ключик, есть ещё насчёт ключика более сложный подход, почитай тут. Суть в том что декриптовать данные не удастся без приватного ключика, а он всё равно остаётся на стороне сервера. Клиент же знает только публичную часть ключика. Такой подход затрудник скрамблера даже декриптовать пакет.
Далее, токены - можно сделать систему генерации токенов, которые будут использоваться для подсчёта пакетов на стороне сервера и клиента, при посылках, и также использоваться для криптования пакета. Токен сильно затруднит, т.к. общение с сервером будет ограничено в колличестве сообщений позволенных на токен.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Baisangur (21.07.2011)
Старый 20.07.2011, 00:05   #3
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Скремблирование как бюджетная защита данных.

MoKa, благодарю, очень полезную статьи привел с Википедии, разбираюсь.
Если не ошибаюсь на основе публичного ключа базируется RSA?
Насчет токенов тоже интересно, у меня была похожая идея, но слегка в другом ракурсе, я подумал, что было бы неплохо в уже зашифрованном по старому ключу пакете, слать новый ключ, а клиент, получив новый ключ, будет шифровать следующий пакет и расшифровать следующий, полученный пакет этим, новым ключом. Получается, что здесь на токен один пакет, можно конечно, сделать кол-во пакетов на токен рандомным.
(Offline)
 
Ответить с цитированием
Старый 20.07.2011, 00:15   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Скремблирование как бюджетная защита данных.

Также зависит от задачи, если это приложение с сообщением не чаще в 200мс (небольшим), то генерация токенов ещё терпима. Я бы делал генерацию и выдачу токенов на определённое колличество пакетов, при этом там важно чтобы отсутствие нового токена, не заставляло ждать очередь.
Также тут важно не перегнуть, а то, если реализовать сложную систему токенов, и лохануться где-то, то взломав её, народ будет довольный ходить и радоваться, а ты потратишь на её разработку много времени.
RSA - об этом и речь, я просто не помню всех этих терминов..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Baisangur (21.07.2011)
Старый 20.07.2011, 00:39   #5
Baisangur
ПроЭктировщик
 
Аватар для Baisangur
 
Регистрация: 10.03.2009
Адрес: Казахстан->Кустанай
Сообщений: 147
Написано 12 полезных сообщений
(для 23 пользователей)
Ответ: Скремблирование как бюджетная защита данных.

MoKa, ты прав насчет "лохануться", кажется прочитав статью на Хабре я решил собрать очередной велосипед. Почитал сейчас статью с Вики, узнал, что на основе открытого ключа работают RSA, PGP и Twofish порожденный RSA, следовательно если уже есть отлаженные способы шифровки, а главная ценность в них ключ, а не алгоритм, то писать свое - это только ради тренировки, но ни в коем случае не для рабочей системы. Тем более, как оказалось, скорость шифрования, даже у такого тяжеловеса как RSA, 30 кб/c, что явно превосходит потребности современной клиент - серверной системы, на мой взгляд.

Кстати, информация для потомков:
Используя RSA based шифрование, необходимо помнить, что ключ, размерностью ниже 1024 бит, в условиях современных вычислительных мощностей, более не актуален. Также настоятельно советуют как можно быстрее переползать и с 1024 битного ключа, т.к. сегодняшняя планка это взлом шифрованного сообщения с 768 битным ключом.

Чтобы вдруг не наткнуться, в поисках подходящего алгоритма, на OpenSSL, вот отличная замена www.cryptopp.com
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (20.07.2011)
Старый 21.07.2011, 00:32   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Скремблирование как бюджетная защита данных.

главная ценность в них ключ, а не алгоритм
Собственно:
http://ru.wikipedia.org/wiki/Принцип_Керкгоффса
в засекреченном виде держится только определённый набор параметров алгоритма, называемый ключом, а остальные детали могут быть открыты без снижения стойкости алгоритма ниже допустимых значений.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Baisangur (21.07.2011), moka (21.07.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 08:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com