rosalba

Il blog di Rosalba Fiore [Microsoft Certified Trainer]
posts - 398, comments - 583, trackbacks - 4693

My Links

News

Article Categories

Archives

Post Categories

Image Galleries

Al primo posto

Alcune delle Donne Attive

Alcuni dei ferri del mestiere di una MCT

Certificazioni Informatiche

elearning...funziona solo in alcuni casi!!!

Eventi

Gli MCT nel mondo

La mia zone

Link tecnici

Link un pò così

Panoramica altre Community

Post-it Articoli e post di MCT, MVP ect

Windows Vista

[70-340] CAS e la pagina 5 di Google

Ripassando per l'esame ho provato a fare una piccola ricerca su Google, inserisco la parola CAS e mi è toccato spulciare fino a pagina 5 per iniziare a vedere qualche cosa d'attinente per il resto club alpini, società di costruzioni etc.  ovviamente totalmente differente il risultato se inserisco Code Access Security.

L'argomento è talmente interessante che merita un post e dunque.. vediamo cosa posso aggiungere dopo le slide di Santini e Rialdi che per fortuna sono ancora disponibili per il download.

Prima d'attentrarci nei meandri dell'argomento in un mio vecchio post indicavo un articolo su msdn che spiegava il perchè è saggio utilizzare i privilegi minimi.

Quando vogliamo restringere la pericolisità del "danno" di un'applicazione i principali strumenti sono l'utilizzo sapiente della RBS e la CAS. Se per il codice unmanaged la scelta obbligata è la prima per il codice manged utilizzando sapientemente la CAS è possibile granulare correttamente cosa il nostro codice può fare ma anche cosa l'utente può fargli fare.

Il meccanismo utilizzato è quello dell"evidence" ossia un set d'informazioni che identificano con tutta una serie d'informazioni un assembly.  Le informazioni  spaziano dalla directory nella quale esso si trova (application directory), strong name, all'hash queste ed altre informazioni sono membri della System.Security.Policy. Comunque le evidence sono di due tipi le host (es. origine:directory, Url o sito) e le assembly, queste ultime sono del tipo customer user o definite dal developer. Sulle slide che ho ricordato prima trovate riferimenti alla code group  ed ai permessi.

Ci potremmo chiedere se la CAS sostituisce l'operating system securitity? La risposta è NO essa si pone come uno strato su di essa, dunque è un complemento e  non un suo sostituto.

Ok, tutto questo è bello ma come faccio a sapere se un assembly è attendibile e come si configurano i permessi?  Sempre utilizzando .Net Configuration tool si utilizza il nodo CRITERI DI PROTEZIONE RUNTIME

  • Valutare l'assembly: facciamo clic col tasto destro su di esso e scegliamo Valuta Assembly seguendo passo passo il wizard vedremo i permessi che esso ha;
  • Nuovi permessi ed assegnazione: E per aggiungerne? Prima cosa dobbiamo decidere a che livello vogliamo impostarli enterprise, computer, user (il primo si applica a tutta la rete, il secondo a tutte le applicazioni sul PC, il secondo all'utente singolo) Es. presi da mania di grandezza supponiamo di voler creare un nuovo set di permessi che porta il nostro nome per tutta la rete, quindi scegliamo il nodo Enterprise e poi Set di Autorizzazioni, seguendo passo passo la procedura impostiamo prima il nome del set in questo caso "Autorizzazioni di Rosalba" e poi che tipo di autorizzazione dobbiamo dare (dns, internet, contatore di prestazioni, stampa in corso etc etc) e per ciascuna le proprietà. Al termine vedremo sotto le altre (Full Trust, Execution etc) anche quella che abbiamo appena creato. A questo punto come l'assegniamo? Sempre nel nodo Enterprise scegliamo Gruppi di Codice, All Code dunque tasto destro e poi  Nuovo, dunque creiamo un nuovo gruppo di codice e specifichiamo il tipo di condizione per il gruppo di codice (le evidence dette prima ed anche un livello personalizzato mediante XML da scrivere o da importare) dunque gli assegniamo il set di autorizzazioni dunque "Autorizzazioni di Rosalba" e poi fine. Ora mi ridimensiono pure io! 

Questa è la strada facile se vogliamo/dobbiamo utilizzare caspol.exe i parametri sono effettivamente un pò tanti da postare dunque vi rimando a questo in italiano di MSDN

Piccola nota fino ad ora ho utilizzato solo Windows XP PRO, dunque le prove le potete fare tranquillamente anche se non avete Windows Server 2003.

Ma se poi ciò che è previsto dalla CAS non permette alla nostra applicazione? In questo caso ricorriamo alla CAS Assmbly Declarations.

Le ragioni:

  1. gli amministratori utilizzando il tool Permview possono analizzare i permessi che l'assembly richiede, dunque grazie ai metadati può risparmiarsi di leggere pagine e pagine della documentazione che accompagna la nostra applicazione
  2. le risorse utlizzare saranno solo quelle che la nostra applicazione ha il permesso di utilizzare, e l'amministratore capirà dall'eccezione lanciata che cosa è successo sempre che ci siamo ricordati di utilizzare la SecurityAction.RequestMinimum
  3. un attacco alla nostra applicazione non provoca grossi danni essendo essa in una piccola sandbox
  4. sappiamo esattamente i permessi che essa richiede poichè ogni volta che dobbiamo aggiungere una doppiamo dichiararla con SecurityAction.RequestOptional altrimenti viene trovata un'eccezione di tipo System.Security.Policy.PolicyException. 

Il resto...magari la prossima volta oggi è domenica mi  un pò di riposo.

Print | posted on domenica 6 maggio 2007 21:00 | Filed Under [ C# Articoli Tecnici ]

Feedback

Gravatar

# Effexor.

Effexor have any side effects.
29/06/2009 20:11 | Effexor kidney failure.
Gravatar

# Diazepam.

Duration of oral diazepam. Interresults diazepam. Diazepam with mastercard. Diazepam.
30/06/2009 18:53 | What is diazepam.
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET