Dag beste mensen,
Al geruime tijd surf ik over het Internet met een vraag waar ik niet snel een goed antwoord op kan vinden. Namelijk, ik wil mijn (class) library zodanig beveiligen dat het alleen mag worden gebruikt door mij geselecteerde andere assemblys (zoals applicaties).
In de eerste instantie dacht ik aan een check binnen de class library alvorens een functie wordt aangesproken. Zo'n check kan bijvoorbeeld zijn:
1. Controleren op de public key token van de aanroepende assembly (de applicatie). En dit a.d.h. van een lijst (opgeslagen intern in de class library) controleren op het toestaan voor gebruik.
2. Vorm van een licensing in de class library. Bijvoorbeeld, een static functie beschikbaar stellen welke door de aanroepende assembly eerst moet worden aangesproken, alvorens een andere functie wordt uitgevoerd. Zo'n functie binnen de class library controleert of de register key dan in orde is.
Met name dit laatste punt heb ik moeite om eraan te beginnen. Want is dit de goede manier? Zelf zat ik te denken aan een register informatie, bestaande uit een naam en een code.
De ingebouwde controle functie in de class library controleert dit dan als volgt:
a. breid de naam uit met andere informatie zoals de class library public token key
b. maakt er een SHA Hash van
c. en controleert dit met de register key welke door de applicatie met de naam mee wordt gegeven.
Zijn de beide strings identiek, dan is het gebruik van de class library toegestaan.
Nadeel: disassemblers als ILDASM kunnen je toegang tot deze manier geven.
Maar om terug te komen tot mijn vraag: wat is de beste manier om mijn class librarys zodanig te beveiligen dat niet door andere gebruikt kunnen worden, maar alleen door een geselecteerde groep van applicaties.
Ik hoop dat de vraag duidelijk is.
Al geruime tijd surf ik over het Internet met een vraag waar ik niet snel een goed antwoord op kan vinden. Namelijk, ik wil mijn (class) library zodanig beveiligen dat het alleen mag worden gebruikt door mij geselecteerde andere assemblys (zoals applicaties).
In de eerste instantie dacht ik aan een check binnen de class library alvorens een functie wordt aangesproken. Zo'n check kan bijvoorbeeld zijn:
1. Controleren op de public key token van de aanroepende assembly (de applicatie). En dit a.d.h. van een lijst (opgeslagen intern in de class library) controleren op het toestaan voor gebruik.
2. Vorm van een licensing in de class library. Bijvoorbeeld, een static functie beschikbaar stellen welke door de aanroepende assembly eerst moet worden aangesproken, alvorens een andere functie wordt uitgevoerd. Zo'n functie binnen de class library controleert of de register key dan in orde is.
Met name dit laatste punt heb ik moeite om eraan te beginnen. Want is dit de goede manier? Zelf zat ik te denken aan een register informatie, bestaande uit een naam en een code.
De ingebouwde controle functie in de class library controleert dit dan als volgt:
a. breid de naam uit met andere informatie zoals de class library public token key
b. maakt er een SHA Hash van
c. en controleert dit met de register key welke door de applicatie met de naam mee wordt gegeven.
Zijn de beide strings identiek, dan is het gebruik van de class library toegestaan.
Nadeel: disassemblers als ILDASM kunnen je toegang tot deze manier geven.
Maar om terug te komen tot mijn vraag: wat is de beste manier om mijn class librarys zodanig te beveiligen dat niet door andere gebruikt kunnen worden, maar alleen door een geselecteerde groep van applicaties.
Ik hoop dat de vraag duidelijk is.