Как лицензировать или защитить backand сервер от взлома?
Есть проект на микросервисах, который нужно будет запускать у клиентов на серверах. Начальство требует сделать защиту, которая бы блокировала бы некоторые функции, в случае отсутствия лицензии. Т.е примерно как ultimate версия Intellej Idea. Проблема в том, что Idea это десктоп, а мне требуется как то защитить набор из микросервисов.
Каким путем это можно сделать? Возможно уже есть какие-нибудь готовые решения
Готовых решений нет. Каждый велосипедит по-своему. Я в своё время велосипедил ID железки, на которой запущен софт и сравнивал с ID железки из лицензии. Не совпадает - пошел нахер.
Егор Лепихин в моём случае это был серийник HDD, серийник CPU и серийник MotherBoard, от них взят хэш, и зашифрован закрытым ключом. В софте на стороне клиента я мог это расшифровать открытой частью ключа. Можно и MAC заюзать, если есть уверенность, что он не меняется.
Евгений, Согласен с комментом выше, если не затруднит оформите его пожалуйста в виде ответа. Идея с закрытым/открытым ключом крутая, но я не могу пока представить как мне это реализовать для защиты микросервисов. Пока есть варианты либо дергать каждый раз сервер лицензий и спрашивать(по id железок) разрешение на действие, либо сделать так, чтобы сервер лицензий периодически отсылал файл с лицензией в микросервис, чтобы тот мог как то проверять этот файлик перед каждым действием. Заранее спасибо!
С точки зрения лицензирования, какая разница где запущенно приложение, на десктопе или на сервере?
Сделайте точно так-же как и Jetbrains:
1. Сервер активации на вашей стороне: ваши микросервисы пусть ходят и проверяют что там с лицензией.
1.1. Сервер активации, развернутый на стороне клиента, но который ходит все-равно к вам.
2. Ключ: какой-то зашифрованный файл с информацией о лицензии.