Клиент Unity / сервер NodeJS: как подписать и проверить данные? - PullRequest
0 голосов
/ 14 февраля 2019

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

Как уже упоминалось в заголовке, я использую Unity как клиент и подключаюк серверу nodeJS с помощью socket.io (с активом BestHTTP).

Чего я хочу достичь: пользователь1 получит лицензионный ключ (по электронной почте или с / е), который был подписан моим сервером, введите ключ вприложение, клиент спрашивают сервер, действителен ли ключ и был ли он подписан, и если да, может играть компьютер пользователя user1.Для этого потребуется только подключение к Интернету при «регистрации» лицензионного ключа, а затем я сохраню ключ в хешированном файле или что-то в этом роде, чтобы пользователь 1 мог играть, не обращаясь к серверу каждый раз.Упрощенная версия: пользователь 1 должен быть подключен только один раз (при первом запуске приложения), но мне нужно при каждом запуске проверять, разрешено ли ему играть.

Клиентская сторона (в Unity c #) работаетхорошо, я в основном хеширую ключ и сохраняю его в файле, затем хеширую этот файл, чтобы убедиться, что пользователи не изменяют его.

Но тогда я не знаю, что делать на сервере.боковая сторона.Есть ли API, который может достичь того, что я хочу сделать?Я иду в неправильном направлении?Это первый раз, когда я имею дело с крипто, и я немного растерялся: confused:

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 14 февраля 2019

Premise

Лицензирование вашего программного обеспечения может быть простой или довольно сложной задачей: нет «идеального» ответа на этот запрос, в основном потому, что каждое решение, которое вы выберете, будет «взломано» в некоторых (легкий или трудный путь.

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


Лицензирование

Вероятно, самый простой способ - внедрить сертификат с цифровой подписью, который содержит всю информацию о лицензионном программном обеспечении (включая другие данные, которые помогут вашей системе идентифицировать вредоносное поведение).Использование RSA должно быть хорошим способом.

Вот хороший ответ , который я нашел здесь в Stack Overflow об этой идее (этонаписан на C #, но вы можете проанализировать архитектуру и создать приложение nodejs).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...