2013-03-30 17 views
5

non sono sicuro se questa domanda è più appropriato per StackOverflow o SuperUser o cosa sito StackExchange ...processo di lancio e di comando nascondere i parametri della riga da Task Manager

Fondamentalmente Sto lanciando un app di terze parti da C# con Process.Start con diversi parametri della riga di comando. Uno di questi parametri della riga di comando è una password.

Penso che sto facendo un ottimo lavoro di protezione della password ovunque nella mia app, tranne se si apre la scheda Processi in Task Manager, è possibile aggiungere la colonna "Riga di comando" e vedere tutte quelle riga di comando parametri.

Qualcuno può pensare a un modo per avviare un processo che in qualche modo ha i parametri della riga di comando nascosti? Ciò è effettivamente possibile?

Grazie!

EDIT:

Questo è un wrapper di servizio di Windows per plink.exe (SSH/Putty roba). Vi verrà chiesto di inserire una password se non specificare la password nella riga di comando, ma ottengo questo strano avvertimento:

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: 

Ho specificato per reindirizzare l'input standard, ma forse continuerà cercando in a e vedere se riesco a risolverlo. Inoltre, come raccomandato da David Heffernan, esaminerò ulteriormente il Pageant. Grazie a tutti - pubblicherò un aggiornamento una volta trovata una soluzione migliore!

+0

l'app di terze parti cambia spesso? Come in, nuove versioni e tutto. Inoltre, dove viene distribuito? Sul tuo server o PC del cliente? – Filip

+0

Non credo che funzionerebbe neanche - ma solo per divertimento - è un'app per console? Cosa succede se non si fornisce la password? Sputa la riga di comando per entrare di nuovo? questo è un pensiero - potrei pensare all'input dello streaming su una console (ad es. [this] (http://stackoverflow.com/questions/6721396/repeatably-feeding-input-to-a-process-standard-input)) - I penso che abbia funzionato se ricordo bene - ma è una lunga pausa :) – NSGaga

+0

Grazie ragazzi per i commenti/risposta. Fondamentalmente sto scrivendo un servizio di Windows che utilizza plink.exe (dal creatore di Putty.exe per le connessioni SSH) per stabilire tunnel SSH semi-permanenti. –

risposta

3

Non c'è modo di passare un argomento da riga di comando a un processo, in modo che il processo possa vederlo, ma tutto il resto del sistema non può.

Questo è un difetto evidente e quando i programmi consentono di passare le password come argomenti, di solito è fatto per comodità per l'utente che non è interessato agli intercettatori. Programmi ben progettati forniranno, in aggiunta, altri metodi di autenticazione sicuri.

1

Se si imposta un ACL per il nuovo processo, è necessario limitare chi può leggere le informazioni della riga di comando. Un ACL vuoto, senza autorizzazioni, potrebbe bloccare l'accesso agli amministratori che utilizzano Task Manager, anche se la mia prima ipotesi è che non lo farà. (Si noti che un descrittore di protezione vuota è non la stessa cosa di un'ACL vuoto. Uno concede implicitamente il permesso a tutti, l'altro nega implicitamente esso.)

Naturalmente, un amministratore può sempre sostituire plink.exe con qualcosa che i negozi la password da qualche parte Quindi non sono sicuro che preoccuparsi di ciò che l'amministratore può vedere con Task Manager ha senso!

Problemi correlati