Avatar billede jespernerd Nybegynder
18. maj 2009 - 14:56 Der er 10 kommentarer

Beskyttet bedst muligt

Hejsa, nu står jeg og skal lanceret et multiplayer online spil, men der kan både:

- Ændres i parameter (ved login, jeg bruger faktisk kun en parameter som fortæller navnet, det kan jo bare ændres)

- Læse sockets der bliver sendt frem og tilbage fra client og server

- Decrypte java filen og læse dens indhold

- Læse hvor java/class filen er placeret.

Kan nogle give mig nogle gode råd til at beskytte det hele bedst muligt og eventuelt en mulighed for at andre ikke kan logge ind på alle andre brugere via <parameter ?

På forhånd tak
Avatar billede mcb2001 Nybegynder
18. maj 2009 - 15:19 #1
Ingen ide - man skriver lige her for at læse svaret hvis der kommer et :-)
Avatar billede jespernerd Nybegynder
18. maj 2009 - 15:55 #2
Håber lidt på arne_v har lidt gode tips og tricks
Avatar billede mcb2001 Nybegynder
18. maj 2009 - 16:07 #3
Først og fremmest kan jeg vel dele lidt information med dig.

Det er altid til at se hvilke .class filer der bliver kaldt som standard, men hvis du i denne bruger en anonym klasse, vil der også være en $.class fil, som ikke kan ses direkte, og som skal bruges for at decompile .class filen, og derved aflæse hvilke andre .class filer der er.

man kan ALTID aflæse hvad man selv sender via netværket, og dette kan du jo ikke blokkere for. Brugeren skal jo kunne læse alle filer for at programmet virker.
Men du kan certificere dit program, og derved bruge en socket til at hente de andre .class filer og indlæse dem dynamisk i den allerede kørende virtuelle maskine.
Men det er da vel ret omstændigt...

Sidste ting. Hvorfor skrive brugernavn direkte i parameter, hvorfor ikke skrive det i kode? krypter det og dekrypter parameteren i programmet...
Avatar billede mcb2001 Nybegynder
18. maj 2009 - 16:09 #4
og så krypter al din data, både det du sender og det du modtager.
Brug en stadard digital signatur, så er det kun din server der kan bruge data til noget når de først er krypteret...
Avatar billede arne_v Ekspert
19. maj 2009 - 03:57 #5
Jeg ved ikke om jeg kan sige ret meget - jeg tror at du skal starte med at forklare lidt om konteksten.

Hvad snakker vi om:

Java desktop app---------Java server app
Java desktop app---------Java web app
Java applet---------Java server app
Java applet---------Java web app

?

Den Java kode som kører client side er svær at skjule. Brugeren kan få fat i den og decompile den. Obfuscatorer virker kun til en vis grænse.

Men fordelingen af funktionalitet mellem client og server samt protokollen mellem dem bør designes således at det ikke er et problem.

Den Java kode som kører server side kan brugerne ikke få fat på.
Avatar billede jespernerd Nybegynder
15. juni 2009 - 16:42 #6
Det er java applet - java server app.

Serveren er i java.
Applet'en (clienten) er i java.
Avatar billede arne_v Ekspert
16. juni 2009 - 15:37 #7
Mine ideer vil vaere:
- applet koden maa ikke indeholde nogen som helst former for hemmeligheder
- al game logik skal implementeres paa serveren
- du definerer en protokol mellem client og server
- det er altid clients som conencter til server
- foerste funktion er login hvor brugeren skal angive baad brugernavn og password
- ved login validerer serveren brugernavn/password og returnerer et token
- dette token sender client med alle efterfoelgende requests
Avatar billede arne_v Ekspert
04. juli 2009 - 03:25 #8
Jesper ?
Avatar billede jespernerd Nybegynder
20. november 2009 - 16:20 #9
Beklager, så er jeg tilbage.

Jeg har fundet en løsning på SHA kryptering med sockets og Obfucation ved java-kode.


(bruger desuden også parameter såsom brugernavn og kode ved login)

og har puttet det ind i en javascript kode med

<script>document.write('<applet kode....>');</script> og krypteret det med javascript-packer.

Er det godt nok?
Avatar billede arne_v Ekspert
21. november 2009 - 01:30 #10
Det er svært at vurdere udfra det du skriver.

Java obfuskering og JS pakning giver ikke meget sikkerhed.

Men hvis username/password skal indtastes for at kunne noget som helst og det checkes på serveren, så burde du være OK.

PS: SHA er signing ikke kryptering.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester