Безопасный обмен паролем между двумя приложениями - PullRequest
1 голос
/ 06 мая 2019

Я пишу программу, которая похожа на швейцарский армейский нож, который нужен моим коллегам в повседневной работе.Одной из особенностей этого инструмента является возможность удаленного подключения к клиенту и управления им.У нас уже есть приложение под названием Dameware Mini Remote Control , не написанное нами, которое выполняет эту точную работу.Мое приложение просто запускает это программное обеспечение в процессе и передает имя пользователя и пароль, которые пользователь ввел заранее.

В документации к инструменту Dameware говорится, что процесс должен вызываться с такими аргументами: "dwrcc.exe [-? | - ?:] [-c:] [-h:] [-m: имя_компьютера] [-u: имя_пользователя] [-p: пароль | -p: "пароль"] [-d: домен] [-o: TCPport] [-s: SharedSecret] [-r:] [-vnc:] [-a: 0 | 1 | 2] [-prxa: MRCproxyAddress] [-prxp: MRCproxyPort] [-prxsMRCproxySecret] [-v:] [-md:] [-i: n] [-x:] [-bh: CentralServerHostAddress] [-bpn: CentralServerPortNumber] [-bu: CentralServerUserName] [-bps: CentralServerUserPassword] "

Меня беспокоит, что предоставление пароля в опции -p небезопасно, потому что это в основном простой текст.

Вот часть моего кода, где я предоставляю аргументы командной строки:

proc.StartInfo.Arguments = $"-c: -h: -x: -m:{TxtHostname} -d:{MainUI.Credentials.DomainName} -u:{MainUI.Credentials.UserName} -p:{LoginCredentials.Decrypt(MainUI.Credentials.EncryptedPassword)}";

Есть ли безопасный способ передачи пароля приложению Dameware внутри процесса?

Любые предложения приветствуются.

1 Ответ

2 голосов
/ 06 мая 2019

Это вообще невозможно.Если единственным вариантом является передача пароля через параметр командной строки, у вас есть только эта опция.

Однако это было бы возможно, если целевое приложение поддерживает другой способ получения пароля.Это зависит от приложения и не относится к каждому приложению.

Поскольку я не знаком с Dameware Mini Remote Control, я не могу сказать, существует ли такая опция в данном конкретном случае.

...