Permalänk
Medlem

Teorin bakom licensnycklar?

Hejsan.

Jag håller på att leta lite information om teorierna bakom licensnycklar. Hur man skapar egna och hur man kontrollerar giltigheten på dem.
Den nivån som jag klarar av att utveckla det här själv ligger på nivå med att ta en unik sak på datorn (t.ex. datornamnet) salta det med något och sedan skicka till en databas för kontroll om det existerar. Men det faller på att då kan man inte ge ut licensnyckeln i förväg för att använda vid t.ex. en installation utan att veta datornamnet på just den datorn. Det som skulle behövas är en lite mer matematisk infallsvinkel på hur man ska lösa det här.

Det jag skulle vilja ha lite tips på bra läsning om är hur man utvecklar sina egna licensnycklar och verifierar dem både lokalt och mot en server. En högskole- eller universitetsuppsats, bok eller webbsidor som tar upp ämnet skulle uppskattas.

Om det är så att det löser sig på olika sätt beroende på vilket språk det ska skrivas i (vilket jag finner osannolikt), så är det java som ska användas.

Tack på förhand och hoppas att ni har överseende med eventuellt dravel.

//Stefan

Visa signatur

Jag är konstig. Är du?
----
http://posera.nu/

Permalänk
Medlem

nu har jag inte läst på om detta överhuvudtaget, men jag kan lätt konstatera att metoderna varierar.

Om jag skulle göra ett sådant system så skulle jag nog använda en egen variant.

Hur de fungerar? Ja, om det inte är sådana som du beskrev som där direkt anpassade för en specifik mottagare så är de ju genererade som du redan vet.

Det är ju bara att du gör en generator som ger dig en sträng på 20 tecken där varje tecken skapas via en viss regel...

tecken1 = random av [1-5 och b-f]
tecken2 = random av [3-6 och h-l]

mja, hitta på nåt system där som är roligt att koda.
Sen gör du sådär med dina 20 tecken eller vad det är.

Sen när du läser in en nyckel så kör du ju denna kontroll baklänges. Kolla om tecken1 är inom de regler du har definierat, och fortsätt så med varje tecken.

Dock är detta system ganska lätt att knäcka om man har tittat på ett gäng olika nycklar...

Så då kan du ju krångla till det och göra tecken beroende av varandra. Om första tecknet är en siffra så blir fjärde tecknet automatiskt en bokstav. Om något tal är mindre än fem så blir nästa bokstav senare än J i alfabetet.

Det är bara att rocka loss och ha kul...

Det där håller definitivt måtten ur säkerhetsaspekt förutsatt att det inte är en bank-applikation eller nåt.

Men det ska tilläggas att jag ALDRIG har undersökt sånna här system eller gjort något, utan jag har bara en "naturlig" vision av hur jag själv skulle ha gjort ett sånt här system.

Permalänk
Medlem

totoo:
Tack för tipsen, fick liknande på fb.
Dock så är jag lite orolig över vilken säkerhet det ligger på om man knåpar ihop någonting helt själv. Det kommer nämnligen att användas av en aplikation med en licenskostnad på mellan 4000kr och 50000kr.

Så då är frågan hur man kommer fram till hur säkert det är när man väl har kommit på någonting.

Visa signatur

Jag är konstig. Är du?
----
http://posera.nu/

Permalänk
Medlem

Alltså när folk knäcker nycklar så gräver de generellt fram infon de behöver ur koden. Förutsatt att folk har tillgång till applikationens filer (som man har när man har installerat mjukvaran lokalt, som ett vanligt pc-program alltså) så går det alltid att gräva fram det man behöver ur dina binärfiler om man vet hur man disassemblar lite. Det kommer du aldrig komma ifrån.

Det är skillnad om man jobbar mot nätet eller liknande när alla kontroller sköts i din server etc.

Men det jag beskrev håller lätt för vettigt användande. Jag skulle iaf förlita mig på den metoden för mitt egna bolags produkter iaf. Garanterat!

Permalänk
Medlem

Mjukvaran släpps som open source så det blir lite klurigt. Och vill folk komma runt licensdelen så gör dem det. Det som det här ska vara till för att skydda sig mot vanligt folk.
Dock så riktar den här mjukvaran sig mot större organisationer (som förhoppningsvis är någorlunda ärliga). De som använder det just nu som jag vet är STIM, Canon Svenska AB, Pöyry Group, Lärarförbundet och Stenflo Konsult.
Du kan läsa mer här om du är nyfiken på vad det är för någonting:
http://domainpatrol.org/

Och jag misstänker att efterson det är os så blir det nog nödvändigt med en callback funktion...

Visa signatur

Jag är konstig. Är du?
----
http://posera.nu/

Permalänk

Som du säger, man kan ju gå förbi det om man vill. Varför ska du då be folk att skriva in registreringsnyckel från början?
Seriösa företag kommer nog betala ändå, oavsett om du har registreringsnycklar eller inte.

Permalänk
Avstängd

Totoos ansats är ju väldigt enkel att knäcka. Vill du använda nånting som inte går att matematiskt knäcka (om inte P=NP) så kan du använda en erkänd hashfunktion. De används flitigt inom kryptografin för att verifiera att någon verkligen är den personen han utger sig för att vara. Dvs han har korrekt identitet - och inte är någon jäkel som försöker bluffa. Hashfunktioner används för just det. Du kanske kan modifiera sättet lite så det passar dig.

(Offtopic: Här på swe skulle det väl vanligaste svaret varit i något i stil med: "Sök. Använd google. Ärthjärna" och folk skulle skriva att de håller med om det och att det inte är oartigt att svara så.)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emilsson
(Offtopic: Här på swe skulle det väl vanligaste svaret varit i något i stil med: "Sök. Använd google. Ärthjärna" och folk skulle skriva att de håller med om det och att det inte är oartigt att svara så.)

Det är därför det är så skönt att ha en hyvens kille som dig själv här, som alltid är trevlig, ödmjuk, tillmötesgående, aldrig är upphov till bråk och alltid är beredd att dela med sig!

Visa signatur

Brass knuckles and a 2x4

Permalänk
Medlem

Eller, beroende på hur du har skrivit koden, så kan någon ta och kolla var du branchar för just licens-grejerna, och helt enkelt ersätta branchinstruktionen med ett NOOP eller göra den till en unconditional branch (beroende på hur den fungerar, naturligtvis).

Kort sagt, jag tvivlar på att du kommer lyckas göra programmet oknäckbart.

Visa signatur

Mina boktips: Clean codeHead First Design PatternsHead First Object-oriented Analysis and Design
Innovation distinguishes between a leader and a follower. — Steve Jobs

Permalänk
Avstängd
Permalänk
Medlem

Det går inte göra ett bombsäkert system, säg något valfritt program och vilken 14-åring som helst kan leta fram en crack/serial till programmet inom 10min.

Så lägg inte ner för allt för mycket tid på ett säkert antipiratsystem, antingen håller det svensson borta eller så gör det det inte. Piraterna kommer alltid att komma förbi det i vilket fall.

Permalänk
Avstängd

Ja, det är en sak om det matematiska mekanismen bakom är oknäckbar - och en annan sak om man väljer att försöka kringgå matematiska mekanismen istället. Nu för tiden är de kryptografiska protokollen såsom El Gamal, Schnorr, Diffie-Hellman, som bygger på Diskreta Logaritmproblemet, primtalsfaktorisering, etc oknäckbara rent matematiskt, så då försöker hackare gå runt dem istället genom att modifiera i bytecoden så skyddet aldrig aktiveras. Så, du kan använda en matematisk oknäckbar mekanism, men det är ingen garanti.

Permalänk
Medlem

Eftersom mjukvaran uppenbarligen ska släppas som OS, så är det lika bra att skippa snacket om "perfekta" licensnycklar, om man kan se koden så är det nog inte ett allt för stort problem att modifiera koden så att verifieringsfunktionen i programmet alltid svarar att en nyckel är godkänd..

En call-home verifering går ju att besegra på samma sätt, skit i att ringa hem, och svara att koden är godkänd direkt helt enkelt..

Men trådskaparen har väl redan insett detta, han vill ju bara ha en enkel licensnyckelsveriferare/genererare som ska sätta käppar i hjulet för vanliga medelsvennson som inte är så hajj på att komma runt kopieringsskydd...

Så diskussionen ang. vilket system som är bäst, eller varför han inte kommer att få ett "säkert" skydd kan vi väl skippa (även om det är väldigt intressant, så är det ju inte riktigt vad trådskaparen är ute efter)...

Tycker totoo:s förslag låter ganska vettigt, visst det är ingen större säkerhet i det kanske, men det är hyffsat lätt att implementera, och bara vetenskapen om att man behöver licensnycklar till ett program bör nog avskräcka den målgrupp han riktar skyddet mot.
För att minska chansen att någon kan skriva in en godtycklig sträng som accepteras kan du med fördel använda "kontrollsiffror" på olika platser i koden, alltså siffror/bokstäver vars värde beror på de tidigare/kommande tecknen i koden.

Visa signatur

The difference between stupidity and genius - the latter has limits