Panoramica della sicurezza in Windows Form
Prima del rilascio di .NET Framework, tutto il codice in esecuzione nel computer di un utente aveva gli stessi diritti o le stesse autorizzazioni per accedere alle risorse che un utente del computer aveva. Ad esempio, se l'utente è stato autorizzato ad accedere al file system, il codice è stato autorizzato ad accedere al file system; se l'utente è stato autorizzato ad accedere a un database, il codice è stato autorizzato ad accedere a tale database. Anche se questi diritti o autorizzazioni possono essere accettabili per il codice nei file eseguibili che l'utente ha installato in modo esplicito nel computer locale, potrebbe non essere accettabile per codice potenzialmente dannoso proveniente da Internet o da una Intranet locale. Questo codice non deve essere in grado di accedere alle risorse del computer dell'utente senza autorizzazione.
.NET Framework introduce un'infrastruttura denominata Sicurezza accesso al codice che consente di distinguere le autorizzazioni o i diritti del codice dai diritti di cui dispone l'utente. Per impostazione predefinita, il codice proveniente da Internet e intranet può essere eseguito solo in quello che è noto come attendibilità parziale. L'attendibilità parziale presenta un'applicazione a una serie di restrizioni: tra le altre cose, un'applicazione è limitata dall'accesso al disco rigido locale e non può eseguire codice non gestito. .NET Framework controlla le risorse a cui è consentito accedere il codice in base all'identità del codice: da dove proviene, se ha un assembly Strong-Named, se è firmato con un certificato e così via.
La tecnologia ClickOnce, utilizzata per distribuire applicazioni Windows Forms, aiuta a semplificare lo sviluppo di applicazioni che vengono eseguite in attendibilità parziale, con attendibilità totale o in attendibilità parziale con autorizzazioni elevate. ClickOnce offre funzionalità come l'elevazione delle autorizzazioni e la distribuzione di applicazioni attendibili, in modo che l'applicazione possa richiedere autorizzazioni attendibili o elevate dall'utente locale in modo responsabile.
Informazioni sulla sicurezza in .NET Framework
La sicurezza dell'accesso al codice consente di considerare attendibile il codice in gradi diversi, a seconda della provenienza del codice e di altri aspetti dell'identità del codice. Per altre informazioni sull'evidenza usata da Common Language Runtime per determinare i criteri di sicurezza, vedere Evidence. Aiuta a proteggere i sistemi informatici da codice dannoso e protegge il codice attendibile da compromissioni della sicurezza intenzionali o accidentali. La sicurezza dell'accesso al codice offre anche un maggiore controllo sulle azioni che l'applicazione può eseguire, perché è possibile specificare solo le autorizzazioni necessarie per l'applicazione. La sicurezza dell'accesso al codice influisce su tutto il codice gestito destinato a Common Language Runtime, anche se tale codice non esegue un singolo controllo delle autorizzazioni di sicurezza dall'accesso al codice. Per ulteriori informazioni sulla sicurezza nel .NET Framework, vedere Concetti chiave sulla sicurezza e Nozioni di base sulla sicurezza e l'accesso al codice.
Se l'utente esegue un file eseguibile di Windows Form direttamente da un server Web o da una condivisione file, il grado di attendibilità concesso all'applicazione dipende dalla posizione in cui risiede il codice e dalla modalità di avvio. Quando un'applicazione viene eseguita, viene valutata automaticamente e riceve un set di autorizzazioni denominato da Common Language Runtime. Per impostazione predefinita, al codice del computer locale viene concesso il set di autorizzazioni Attendibilità completa, al codice di una rete locale viene concesso il set di autorizzazioni Intranet locale e al codice da Internet viene concesso il set di autorizzazioni Internet.
Nota
In .NET Framework versione 1.0 Service Pack 1 e Service Pack 2 il gruppo di codice dell'area Internet riceve il set di autorizzazioni Nothing. In tutte le altre versioni di .NET Framework, il gruppo di codice dell'area Internet riceve il set di autorizzazioni Internet.
Le autorizzazioni predefinite concesse in ognuno di questi set di autorizzazioni sono elencate nell'argomento Criterio di sicurezza predefinito. A seconda delle autorizzazioni ricevute dall'applicazione, viene eseguita correttamente o genera un'eccezione di sicurezza.
Molte applicazioni Windows Form verranno distribuite tramite ClickOnce. Gli strumenti usati per generare una distribuzione ClickOnce hanno impostazioni predefinite di sicurezza diverse rispetto a quelle descritte in precedenza. Per altre informazioni, vedere la discussione seguente.
Le autorizzazioni effettive concesse all'applicazione possono essere diverse dai valori predefiniti, perché i criteri di sicurezza possono essere modificati; ciò significa che l'applicazione può avere l'autorizzazione per un computer, ma non in un altro.
Sviluppo di un'applicazione Windows Form più sicura
La sicurezza è importante in tutti i passaggi dello sviluppo di applicazioni. Per iniziare, esaminare e seguire le linee guida per la codifica sicura.
Successivamente, decidere se l'applicazione deve essere eseguita in modalità con attendibilità totale o se deve essere eseguita in modalità con attendibilità parziale. L'esecuzione dell'applicazione con attendibilità totale semplifica l'accesso alle risorse nel computer locale, ma espone l'applicazione e i relativi utenti a rischi di sicurezza elevati se non si progetta e si sviluppa l'applicazione in modo rigoroso in base all'argomento Linee guida per la codifica sicura. L'esecuzione dell'applicazione in attendibilità parziale semplifica lo sviluppo di un'applicazione più sicura e riduce molto il rischio, ma richiede più pianificazione per implementare determinate funzionalità.
Se si sceglie un trust parziale (ossia i set di autorizzazioni Internet o Intranet locale), si decida come si desidera che l'applicazione si comporti in questo ambiente. Windows Form offre modi alternativi e più sicuri per implementare le funzionalità in un ambiente semi-attendibile. Alcune parti dell'applicazione, ad esempio l'accesso ai dati, possono essere progettate e scritte in modo diverso per ambienti parzialmente attendibili e attendibilità totale. Alcune funzionalità di Windows Form, ad esempio le impostazioni dell'applicazione, sono progettate per funzionare con attendibilità parziale. Per altre informazioni, vedere Panoramica delle impostazioni dell'applicazione .
Se l'applicazione necessita di più autorizzazioni rispetto all'attendibilità parziale consentita, ma non si vuole eseguire con attendibilità totale, è possibile eseguire in attendibilità parziale mentre si asserisce solo quelle autorizzazioni aggiuntive necessarie. Ad esempio, se vuoi eseguire in un ambiente con attendibilità parziale, ma è necessario concedere all'applicazione l'accesso in sola lettura a una directory nel file system dell'utente, puoi richiedere FileIOPermission specificamente per quella directory. Usato correttamente, questo approccio può offrire all'applicazione una maggiore funzionalità e ridurre al minimo i rischi di sicurezza per gli utenti.
Quando si sviluppa un'applicazione che verrà eseguita con attendibilità parziale, tenere traccia delle autorizzazioni che l'applicazione deve eseguire e quali autorizzazioni l'applicazione potrebbe usare facoltativamente. Quando tutte le autorizzazioni sono note, è necessario effettuare una richiesta dichiarativa per l'autorizzazione a livello di applicazione. La richiesta di autorizzazioni informa il runtime di .NET Framework sulle autorizzazioni necessarie per l'applicazione e sulle autorizzazioni non desiderate in modo specifico. Per altre informazioni sulla richiesta di autorizzazioni, vedere Richiesta di autorizzazioni.
Quando si richiedono autorizzazioni facoltative, è necessario gestire le eccezioni di sicurezza che verranno generate se l'applicazione esegue un'azione che richiede autorizzazioni non concesse. La gestione appropriata del SecurityException garantisce che l'applicazione possa continuare a funzionare. L'applicazione può usare l'eccezione per determinare se una funzionalità deve diventare disabilitata per l'utente. Ad esempio, un'applicazione può disabilitare l'opzione di menu Salva se l'autorizzazione sul file richiesta non è concessa.
In alcuni casi, è difficile sapere se sono state dichiarate tutte le autorizzazioni appropriate. Una chiamata al metodo che sembra innocua a prima vista, ad esempio, può accedere al file system a un certo punto durante l'esecuzione. Se non si distribuisce l'applicazione con tutte le autorizzazioni necessarie, può funzionare correttamente durante il debug sul desktop, ma fallire quando viene rilasciata. Sia .NET Framework 2.0 SDK che Visual Studio 2005 contengono strumenti per calcolare le autorizzazioni necessarie per un'applicazione: rispettivamente lo strumento da riga di comando MT.exe e la funzionalità Calcola autorizzazioni di Visual Studio.
Negli argomenti seguenti vengono descritte altre funzionalità di sicurezza di Windows Form.
Argomento | Descrizione |
---|---|
- accesso più sicuro a file e dati in Windows Form | Viene descritto come accedere a file e dati in un ambiente parzialmente attendibile. |
- stampa più sicura in Windows Form | Viene descritto come accedere alle funzionalità di stampa in un ambiente parzialmente attendibile. |
- considerazioni aggiuntive sulla sicurezza in Windows Form | Descrive come eseguire la manipolazione delle finestre, utilizzando gli Appunti e facendo chiamate a codice non gestito in un ambiente di fiducia parziale. |
Distribuzione di un'applicazione con le autorizzazioni appropriate
Il mezzo più comune per distribuire un'applicazione Windows Form in un computer client è ClickOnce, una tecnologia di distribuzione che descrive tutti i componenti necessari per l'esecuzione dell'applicazione. ClickOnce usa file XML denominati manifesti per descrivere gli assembly e i file che costituiscono l'applicazione e anche le autorizzazioni richieste dall'applicazione.
ClickOnce dispone di due tecnologie per richiedere autorizzazioni elevate in un computer client. Entrambe le tecnologie si basano sull'uso dei certificati Authenticode. I certificati consentono di garantire agli utenti che l'applicazione proviene da un'origine attendibile.
Nella tabella seguente vengono descritte queste tecnologie.
Tecnologia per permessi elevati | Descrizione |
---|---|
Elevazione delle autorizzazioni | Richiede all'utente una finestra di dialogo di sicurezza la prima volta che viene eseguita l'applicazione. La finestra di dialogo di elevazione delle autorizzazioni informa l'utente su chi ha pubblicato l'applicazione, in modo che possa prendere una decisione informata sull'eventuale concessione di fiducia aggiuntiva. |
Distribuzione di applicazioni attendibili | Coinvolge un amministratore di sistema che esegue un'installazione una tantum del certificato Authenticode di un editore in un computer client. Da questo punto in poi, tutte le applicazioni firmate con il certificato sono considerate attendibili e possono essere eseguite con attendibilità totale nel computer locale senza ulteriori richieste. |
La tecnologia scelta dipende dall'ambiente di distribuzione. Per ulteriori informazioni, vedere Scelta di una strategia di distribuzione ClickOnce.
Per impostazione predefinita, le applicazioni ClickOnce distribuite con Visual Studio o gli strumenti di .NET Framework SDK (Mage.exe e MageUI.exe) sono configurate per l'esecuzione in un computer client con attendibilità totale. Se si distribuisce l'applicazione usando un trust parziale o usando solo alcune autorizzazioni aggiuntive, sarà necessario modificare questa impostazione predefinita. A tale scopo, è possibile usare Visual Studio o lo strumento .NET Framework SDK MageUI.exe quando si configura la distribuzione. Per altre informazioni su come usare MageUI.exe, vedere Procedura dettagliata: Distribuzione manuale di un'applicazione ClickOnce. Vedere anche Procedura: Impostare autorizzazioni personalizzate per un'applicazione ClickOnce o Procedura: Impostare autorizzazioni personalizzate per un'applicazione ClickOnce.
Per altre informazioni sugli aspetti di sicurezza di ClickOnce e elevazione delle autorizzazioni, vedere Protezione delle applicazioni ClickOnce. Per altre informazioni sulla distribuzione di applicazioni attendibili, vedere Panoramica della distribuzione di applicazioni attendibili.
Test dell'applicazione
Se l'applicazione Windows Forms è stata distribuita tramite Visual Studio, è possibile abilitare il debug in modalità di attendibilità parziale o con un set di autorizzazioni ristrette dall'ambiente di sviluppo. Vedere anche Procedura: Eseguire il debug di un'applicazione ClickOnce con autorizzazioni limitate.
Vedere anche
- Sicurezza di Windows Forms
- nozioni di base sulla sicurezza dall'accesso al codice
- Sicurezza e distribuzione ClickOnce
- panoramica della distribuzione di applicazioni attendibili
- Mage.exe (strumento di generazione e modifica del manifesto)
- MageUI.exe (strumento di generazione e modifica del manifesto, client grafico)
.NET Desktop feedback