2013-03-30 2 views
5

Я не уверен, если этот вопрос является более подходящим для Stackoverflow или суперпользователя или какого StackExchange сайта ...процесс запуска и команда скрыть параметры линии из диспетчера задач

В основном я запускаю приложение третьей стороны из C# с Process.Start с несколькими параметрами командной строки. Одним из параметров командной строки является пароль.

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

Может ли кто-нибудь подумать о способе запуска процесса, который каким-то образом скрывает параметры командной строки? Это вообще возможно?

Спасибо!

EDIT:

Это обертка службы Windows для plink.exe (SSH/Putty материал). Он будет запрашивать пароль, если я не указать пароль в командной строке, но я получаю это странное предупреждение:

Plink.exe - 3/30/2013 2:40:47 PM - Attempting keyboard-interactive authentication 
Plink.exe - 3/30/2013 2:40:47 PM - Server refused keyboard-interactive authentication 
Plink.exe - 3/30/2013 2:40:49 PM - [email protected]'s password: 

Я и для перенаправления стандартного ввода, но, возможно, я буду продолжать искать, чтобы и посмотрим, смогу ли я обойти это. Кроме того, как рекомендовал Дэвид Хеффернан, я буду смотреть дальше в «Пейнт». Спасибо всем, я опубликую обновление после того, как выясню лучшее решение!

+0

Часто ли используется стороннее приложение? Как и в, новые версии и все. Кроме того, где это развертывается? На вашем сервере или на клиентских ПК? – Filip

+0

Я не думаю, что это сработает - но просто для удовольствия - это консольное приложение? Что произойдет, если вы не предоставите пароль? Выключает ли она командную строку для ввода? это одна мысль - вы можете подумать о потоке ввода в консоль (например, [this] (http://stackoverflow.com/questions/6721396/repeatably-feeding-input-to-a-process-standard-input)) - I думаю, что сработало, если я хорошо помню - но это длинный запертый :) – NSGaga

+0

Спасибо, ребята, за комментарии/ответ. В основном я пишу службу Windows, в которой используется plink.exe (от создателя Putty.exe для соединений SSH) для создания полупостоянных туннелей SSH. –

ответ

3

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

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

1

Если вы установили ACL для нового процесса, он должен ограничивать, кто может читать информацию о командной строке. Пустой ACL, не предоставляющий никаких разрешений, может заблокировать доступ к администраторам, использующим диспетчер задач, хотя я предполагаю, что это не так. (Обратите внимание, что пустой дескриптор безопасности не то же самое, как пустой ACL. Один косвенно дает разрешение каждому, другой косвенно отрицает.)

Конечно, администратор всегда может заменить plink.exe с чем-то, что магазины пароль где-то. Поэтому я не уверен, что беспокоиться о том, что администратор может видеть с помощью диспетчера задач, имеет смысл!

Смежные вопросы