Sto facendo ancora dei test e quindi preferisco ritardare di qualche giorno un post più completo a tal proposito.
Il succo è questo: nei framework 1.0 e 1.1 è possibile fare tampering di un assembly firmato con strong name senza che la CAS lanci la SecurityException.
La cosa più buffa è che, al contrario di quello che sostiene MSDN (cioè che gli strong name prevengono il tampering), le specifiche ECMA dicono il contrario, indicando lo strong name esclusivamente per eseguire un buon versioning.
Rimando a questo proposito all'amico Valery (che ricordo ancora dai tempi della vecchia mailing list su DCOM) che in un post ed in uno successivo combatte una battaglia contro gli strong name ad uso di security.... e come dargli torto?
Microsoft sembra silente ma sotto sotto ci ha lavorato, tanto che nella Win2K3 SP1 il bug è stato fissato. La scoperta è stata casuale perchè stavo sperimentando la tecnica di fare tampering quando mi sono accorto che su Win2K3 non funzionava. È stato a quel punto che ho capito che era solo grazie alla SP1 ed infatti XP si è fatto bucare dolcemente...
A questo punto non potrò non parlarne al prossimo workshop di Giovedi ...
Nel frattempo date retta a Valery e non usate lo strong name per fidarvi di un assembly!