Может ли сервер проверять клиентское приложение, чтобы убедиться, что не было внесено никаких изменений в код? - PullRequest
0 голосов
/ 14 февраля 2012

Возможно, это не возможно, но я бы хотел, чтобы мое серверное приложение не только проверяло имя пользователя и пароль, но и проверяло, что клиентское приложение не было изменено.

Я хотел бы создать идентификаторизменяется с каждой сборкой, но остается неизменным для нескольких прогонов одной и той же сборки.

Я пробовал:

File jarFile = new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI());
int theID = jarFile.lastModified());

Но отметка времени изменяется при размещении на разных машинах.

Я хотел бы иметь класс Validate.c, который генерирует закрытый идентификатор.Validate.class отправляется на сервер, который сравнивает Validate.class с его собственной версией класса, а затем проверяет идентификатор, содержащийся в классе.Будет ли это работать в теории?Или

Ответы [ 2 ]

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

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

Вам нужна функция, называемая удаленная аттестация , гдекакая-то часть аппаратного / программного обеспечения свидетельствует третьей стороне о том, что система находится в определенном состоянии.Единственный способ сделать это - использовать аппаратное обеспечение, называемое Trusted Platform Module . Однако это ограничивает ваше приложение пользователями, использующими определенные версии Windows или, возможно, RedHat Linux, и людьми с аппаратными TPM.Короче говоря, если вы не пишете это для АНБ, это того не стоит.

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

Нет.Ты не сможешь это сделать.Клиент сам выполняет вычисления и отправляет их на сервер.Все, что нужно сделать злоумышленнику, это изучить то, что отправляется с легитимного клиента (будь то жестко заданное значение или вычисление, выполненное клиентом), а затем просто повторить это значение (или вычисление), когда они устанавливают свое собственное соединение ссервер.

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