Size: a a a

2020 April 25

SK

Sergei Khomutov in Modern::Perl
Может кто подскажет решение.
Есть задача: поставить клиенту веб приложение(есно на perl) которое он может использовать только по лицензии.
Приложение должно запускаться на сервере клиента в докер контейнере. Соответственно у  клиента полный доступ к этому серверу.
Надо запрещать использование приложения если истекла лицензия .  
Как этого добиться ?
Есть идея генерировать сертификат с использвонием ca, и валидировать его в приложении.
Но если у клиента есть доступ в контейнер, то он легко может получить доступ к ca сертификату, или модифицировать приложение.
Или можно как то запретить доступ в  контейнер ?
источник

VG

Vadim Goncharov in Modern::Perl
выносишь в XS-модуль парочку критичных функций, проверки делаешь в нём
источник

SK

Sergei Khomutov in Modern::Perl
Vadim Goncharov
выносишь в XS-модуль парочку критичных функций, проверки делаешь в нём
Это приложение на Catalyst , нет там ничего критичного. Все можно переписать/обойти.
источник

VG

Vadim Goncharov in Modern::Perl
ну, если всё можно переписать, тогда никак
источник

AP

Andrei Protasovitski in Modern::Perl
источник

SK

Sergei Khomutov in Modern::Perl
Vadim Goncharov
ну, если всё можно переписать, тогда никак
Да и даже если не переписать, серт модно перегенирировать.
источник

a

allter in Modern::Perl
В общем, единственный способ защититься - поставлять железный сервер с соответствующими защитами.
источник

VG

Vadim Goncharov in Modern::Perl
Sergei Khomutov
Да и даже если не переписать, серт модно перегенирировать.
так проверять его в XS
источник

SK

Sergei Khomutov in Modern::Perl
Vadim Goncharov
так проверять его в XS
Захардкодить фингерппинт что ли ? Такое себе. Много минус у такого подхода
источник

VG

Vadim Goncharov in Modern::Perl
да тыщу способов придумать можно
источник

IB

Ivan Bessarabov in Modern::Perl
Sergei Khomutov
Может кто подскажет решение.
Есть задача: поставить клиенту веб приложение(есно на perl) которое он может использовать только по лицензии.
Приложение должно запускаться на сервере клиента в докер контейнере. Соответственно у  клиента полный доступ к этому серверу.
Надо запрещать использование приложения если истекла лицензия .  
Как этого добиться ?
Есть идея генерировать сертификат с использвонием ca, и валидировать его в приложении.
Но если у клиента есть доступ в контейнер, то он легко может получить доступ к ca сертификату, или модифицировать приложение.
Или можно как то запретить доступ в  контейнер ?
Если у человека есть код, то этот код можно разобрать и поправить. Единственный способ защититься — это чтобы у человека кода не было. В локальном docker контенере должна работать только очень маленькая прослойка, которая через API общается с сервером, который и делает всю работу.

Но такое решение не всегда возможно.
источник

VG

Vadim Goncharov in Modern::Perl
Ivan Bessarabov
Если у человека есть код, то этот код можно разобрать и поправить. Единственный способ защититься — это чтобы у человека кода не было. В локальном docker контенере должна работать только очень маленькая прослойка, которая через API общается с сервером, который и делает всю работу.

Но такое решение не всегда возможно.
ваще, немножко не так
источник

AB

Alex Bush in Modern::Perl
Договор составить, нанять адвокатов
источник

SK

Sergei Khomutov in Modern::Perl
Vadim Goncharov
да тыщу способов придумать можно
Да, подскажешь парочку ? )
источник

VG

Vadim Goncharov in Modern::Perl
затраты человека должны превышать стоимость лицензии
источник

VG

Vadim Goncharov in Modern::Perl
например, если он не понимает Си, ему придется сишника нанять
источник

SK

Sergei Khomutov in Modern::Perl
Ivan Bessarabov
Если у человека есть код, то этот код можно разобрать и поправить. Единственный способ защититься — это чтобы у человека кода не было. В локальном docker контенере должна работать только очень маленькая прослойка, которая через API общается с сервером, который и делает всю работу.

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

IB

Ivan Bessarabov in Modern::Perl
Тогда никак. Можно всячечески уложноять, но техническая возможность всегда будет.
источник

SG

Stanislav G in Modern::Perl
Короче, геморой с разбором кода должен быть больше, чем желание халявы
источник

VG

Vadim Goncharov in Modern::Perl
ну во-первых, если клиент "может всё переписать" - зачем он вообще заказывал, сам бы и написал))
источник