none
Безопасная передача пароля с сервера на клиент RRS feed

  • Вопрос

  • Задача учебная. Понимаю, что с точки зрения безопасности - это абсолютно неверно, но все же.

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

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

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

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

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

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

    2 декабря 2019 г. 12:26