Microsoft Software Licensing and Protection (SLP) Services

Published 26 May 08 01:17 AM | scoriani 

Qualunque azienda che abbia fondato il proprio business sulla creazione e vendita di software si è posta almeno una volta la domanda su come fare per proteggere la proprietà intellettuale del prodotto realizzato e di evitarne l'utilizzo illegale. Si calcola che l'industria del software a livello mondiale perda qualcosa come 40B$ tra pirateria e contraffazione dei propri prodotti, e non si parla solamente delle grandi realtà multinazionali, ma anche delle piccole software house o system integrator locali che tanto hanno faticato a sviluppare e mettere a punto un proprio prodotto o una soluzione custom per uno o più clienti. Nel tempo sono nate centinaia di soluzioni a questo problema, qualcuna basata su sistemi artigianali e facilmente eludibili, altre su vere e proprie piattaforma di protezione e di gestione delle licenze d'uso. Microsoft è entrata da qualche tempo anche in questo mercato attraverso una soluzione dedicata a chi sviluppa codice managed (leggi che utilizza Microsoft .NET Framework come ambiente di esecuzione) chiamata appunto Microsoft Software Licensing and Protection Services, in breve SLP.

Come funziona?

SLP si differenzia dalle tradizionali tecniche di Obfuscation, Encryption o Code Splitting (con l'utilizzo o meno di dispositivi esterni di sicurezza quali Smart Card o Secure Memory Stick), introducendo il concetto di Secure Virtual Machine (SVM) e di Secure Virtual Machine Language, termini assimilabili in qualche modo al concetto di "Virtual CPU" e relativo linguaggio. Al contrario di tecniche di encryption del Microsoft Intermediate Language (MSIL), che deve essere decrittato prima di essere effettivamente eseguito dal Common Language Runtime (CLR) di Microsoft .NET Framework, il SVML viene eseguito direttamente dalla SVM ospitata direttamente nell'applicazione, formando una coppia univoca diversa per ogni chiave generata dal sistema di gestione delle licenze.

image

In pratica il processo di protezione dell'applicazione aggiunge al ciclo tradizionale di sviluppo una fase nella quale, attraverso uno specifico tool chiamato SLP Code Protector, viene eseguita una attività chiamata Permutation. Le informazioni legate alla erogazione e gestione delle chiavi di licenza sono prodotte attraverso un prodotto chiamato Microsoft SLP Server 2008 o, in piena chiave Software+Services, dai relativi SLP Online Services combinati con gli Activation Packs, ovviamente pacchetti di licenze singole di attivazione.

image

Non essendoci librerie esterne, chiavi esterne o embedded o altro del genere, diventa praticamente impossibile sia eseguire attività di reverse engineering sia violare i termini di licenza definiti.

L'obiettivo di SLP è anche quello di bilanciare le esigenze di protezione della proprietà intellettuale con quelle legate alle performance in fase di esecuzione di una applicazione protetta, per questo in fase definizione del codice da proteggere è possibile indicare quali sono le funzioni contenente la logica chiave, il core business dell'applicazione ed evitare invece quelle parti di codice non particolarmente significative.

Per intenderci, al termine della trasformazione il nostro codice sorgente potrebbe apparire, a chi tentasse di disassemblarlo, una cosa del genere:

image

Ovviamente la componente di back-end che si occupa di generare e gestire le licenze e le relative attivazioni fornisce un ricco set di funzionalità che consentono di creare differenti versioni del proprio applicativo (Es. Enterprise, Standard, ecc.) consentendo agli utenti l'accesso al solo livello di funzionalità acquistate, di creare delle versioni Trial o Time Bombed che scadono dopo un certo periodo di tempo o un determinato utilizzo da parte del cliente, controllando le attivazioni eseguite per ciascuna chiave e fornendo una completa reportistica su qualsiasi evento tracciato dal sistema e relativo alle operazioni legate al licensing eseguite dai propri clienti.

image

A questo punto l'applicazione presenterà all'utilizzatore finale o a chi è deputato alla sua installazione una maschera simile a quella sottostante per l'attiviazione, supportando una moltitudine di modelli di licensing legati all'acquisto, l'utilizzo o l'aggiornamento della propria applicazione.

image

In pratica Microsoft SLP consente a chiunque faccia business sulla rivendita di software pacchettizzato o su commessa, di proteggere la proprietà intellettuale della propria creazione garantendo un corretto ritorno economico da parte dei propri clienti che utilizzeranno una modalità semplice ed intuitiva per l'attivazione e l'utilizzo del software acquistato.

Sicuramente la scelta di limitare la disponibilità di questa soluzione al solo codice managed farà discutere, ma questa è una ulteriore conferma di come Microsoft posizioni in pole position la piattaforma .NET Framework per lo sviluppo di soluzioni su client, server e dispositivi. Sul mercato esistono comunque diversi partner (per esempio Acresso, i nuovi proprietari di InstallShield, tra gli altri) che forniscono soluzioni simili per chi ancora sviluppa nel mondo del codice nativo.

A questo indirizzo (http://www.microsoft.com/slps/resources.aspx) potete trovare una serie di risorse tecniche per approfondire la conoscenza sul tema.

Comments

# Il blog del team MSDN Italia said on May 26, 2008 6:21 PM:

Qualunque azienda che abbia fondato il proprio business sulla creazione e vendita di software si è

# Marco Russo said on June 4, 2008 12:11 PM:

Ieri e oggi ho avuto modo di valutare le caratteristiche di un prodotto/servizio di Microsoft che sicuramente

# Adrian Florea said on June 6, 2008 10:17 AM:

Iata si primul post, scris de Marco Russo , autor a mai multor carti si a mai multor bloguri in italiana

# Adrian Florea said on June 7, 2008 5:20 AM:

Tot despre servicii SLP, in acest post scris de Silvano Coriani care lucreaza in Microsoft Italia, dar

New Comments to this post are disabled

About scoriani

Silvano Coriani fa parte del gruppo Developer and Platform Evangelism di Microsoft per l’Italia, dove si occupa come attività principale del supporto e della divulgazione di contenuti tecnici riguardanti le varie componenti della piattaforma per lo sviluppo di applicazioni sui sistemi operativi Windows, con una particolare predilezione per SQL Server ed il .NET Framework. In precedenza, si è occupato di consulenza, formazione e sviluppo software, in collaborazione con Mondadori Informatica Education, partecipando anche come speaker a diverse conferenze a livello nazionale, come la WPC. Ha iniziato ad occuparsi di informatica con la comparsa dei primi home computer, prima con il Commodore Vic20 poi con il C64, preferendo da subito la lettura dei manuali ai vari videogame disponibili. Dopo aver completato anche gli studi formali sulla materia, ha iniziato la sua carriera occupandosi dello sviluppo di firmware su microprocessori a 8 e 16 bit, in Assembler e C, soprattutto nell’area dell’automazione industriale e del controllo di processo. È passato poi al mondo dello sviluppo su PC, iniziando con applicazioni in C su MS-DOS e proseguendo su quasi tutte le versioni di Windows, prima in C++ per la creazione di componenti e device driver, e successivamente affiancando a quest’ultimo l’utilizzo di Microsoft Visual Basic per la realizzazione di interfacce utente. Da qui poi sono iniziati i primi contatti con SQL Server (6.0 all’epoca) e con gli altri prodotti server della piattaforma Microsoft, utilizzati per lo sviluppo di soluzioni prima client/server e poi distribuite, con l’introduzione di MTS e COM+. L’incontro con il .NET Framework è avvenuto alla sua prima apparizione pubblica, nel Luglio 2000, ed è stato l’inizio di un nuovo corso di studio e approfondimento su questa affascinate piattaforma, sulla quale poi ha realizzato diverse applicazioni commerciali. Nel 2002, insieme a quattro amici, ha fondato DevLeap, un gruppo di professionisti che si occupano di approfondire le tecnologie di sviluppo, di produrre documenti e libri su argomenti di alto livello per la comunità degli sviluppatori, di fornire servizi di consulenza e mentoring alle aziende. Nel 2003 ha scritto il libro “ADO.NET Full Contact”, pubblicato da Mondadori Informatica
Page view tracker