Недорогая защита десктопного приложения с помощью Amazon S3

в 8:33, , рубрики: защита от копирования, хакерство, метки: ,

Я уже больше 8 лет продаю свои программные продукты, и первые лет 5 основной проблемой была даже не реклама, а защита от хакеров. Не я один замечал резкую «просадку» продаж при выходе взломанной версии. — просто почитайте SWRUS или раздел Shareware на RSDN.

Я не буду касаться этичности или законности взлома программ, а расскажу о решении, которое при копеечной стоимости полностью избавило меня от взломов. Думаю, оно применимо для 90% десктопного софта.

Суть проста: перенести данные пользователя к себе на сервер, тогда взлом десктопного инструмента потеряет смысл. Ломать онлайновую систему — задача посложнее, кроме того я легко могу улучшать ее защиту по мере необходимости, что невозможно в случае разошедшейся по торрент-трекерам инсталляхи.

Первые варианты защиты использовали FTP, но проблемы возникали в моменты пиковой нагрузки: не всегда канала сервера хватало на обслуживание аплоада. Кроме того, возникал вопрос целостности файлов — бывали ошибки, что в случае со сжатыми данными попросту «уничтожало» их.

С точки зрения безопасности, свой FTP-сервер может настроить и «злоумышленник», поэтому в итоге появилась комбинация из онлайнового API на моем сервере + хранилище для больших бинарных данных. Хранилище по отдельности, без своего сервера, я тоже не стал бы использовать — при определенном уровне знаний можно и его сделать, в связке же задача многократно усложняется.

Первое время я очень боялся, что данные будут непрерывно расти и со временем я буду переплачивать за защиту. Но по факту оказалось, что при адекватном сжатии и структуре данных объемы — не космические. Сейчас у меня — около 150 гигабайт пользовательских данных, что в случае с Amazon S3 обходится меньше, чем $20 в месяц. Смешная сумма за 100% защиту, не правда ли?

Почему Amazon S3? Это — единственный вариант, который выдержал проверку временем и нагрузкой. Вот уже года три — полет нормальный. Жалоб — нет, проблем — тоже. Кроме того, S3 обеспечивает целостность данных: в бакете не может быть криво залитых файлов. Они там либо есть на 100% и с правильными чексуммами, либо — нет.

Вопросы по скорости доступа к онлайновым данным решаются локальным кешированием — человек и не замечает, что данные — в онлайне. Синхронизация происходит фоном и на работе десктопного инструмента никак не влияет.

Из бонусов:

1. Появилась возможность работы на нескольких компьютерах без переноса файлов. Пользователь просто приходит домой с работы — и все файлы уже под рукой. Не нужно таскать с собой файлы и заботиться об их синхронизации.

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

3. Появилась возможность изменять форматы данных без напряга для пользователя. За последние 3 года мы уже раза три меняли форматы и структуру, причем каждый раз «прозрачно» для пользователя — люди ничего не замечали. А для нас это — огромный бонус, поскольку поддержка старых форматов оборачивается со временем большой головной болью.

4. Появилась возможности делать непрерывные бекапы — пользователь может «откатиться» на любое состояние своих файлов, с самого первого использования продукта. Очень приятно и пару раз реально выручало.

Может возникнуть вопрос доверия: ведь мы теперь теоретически можем «копаться» в данных пользователя без его ведома. На практике такого вопроса не возникало: никто не жаловался, параноиков не было.

В общем, рекомендую.

Автор: MaxPastukhov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js