-
22-06-2006, 19:06 #1Member
- Registered
- 03/03/04
- Location
- Blankenberge/Gent
- Posts
- 1,105
- iTrader
- 7 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
[PROG]JAVA Programma beveiligen met paswoord
Hallo,
Ik zou moeten een programma maken dat beveiligd is a.d.h.v. een login en een pasword. Meerdere gebruikers zou een mogelijkheid moeten zijn, alsook het aanpassen van wachtwoord en toevoegen van gebruikers...
Nu vraag ik me af hoe ik dit op een zo veilig mogelijke manier kan beveiligen? Het gaat namelijk over zeer gevoelige, financiele informatie...
Dit is wat ik in gedachten had :
- paswoord encrypted opslaan in een bestand m.b.v. JCE (wat is het beste encryption algoritm?? DES?? ).
- CRC checken van bestand om integriteit na te gaan.
Nu heb ik het gevoel dat dit geen zo'n goeie aanpak is. Heeft er iemand een beter idee?? Veiligheid is een absolute prioriteit!
Greetzno votes
-
-
22-06-2006, 19:25 #2
DES is redelijk verouderd en vlot te kraken. AES, Triple DES, Blowfish zijn goeie keuzes, zolang de encryptiesleutel volgoende groot is.
Voor de rest is encryptie wel aangewezen, maar het grote probleem hierbij is dat gegevens met één sleutel geencrypteerd worden terwijl meerdere gebruikers met elk een eigen login noodzakelijk zijn.
Mijn eerste idee zou zijn om de (unieke) sleutel voor de gegevens te encrypteren voor elke gebruiker met als sleutel de login van deze gebruiker.no votes
-
22-06-2006, 19:31 #3Member
- Registered
- 03/03/04
- Location
- Blankenberge/Gent
- Posts
- 1,105
- iTrader
- 7 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Hmm het is mss ook een mogelijkheid zonder username te werken en met enkel 1 paswoord al ik op deze manier een veiliger programma kan maken...
Wat ik me nu ook afvroeg is of dit eigenlijk wel nut heeft omdat ik van plan was om data op te slaan in een postgreSQL database. Hoe veilig zit de data hier dan? Dit paswoord zou ik dan mss best hardcoden in het programma? Of niet? Of is een ander database systeem aangeraden voor gevoelige data?
Greetzno votes
-
22-06-2006, 19:33 #4Member
- Registered
- 06/04/06
- Location
- BXL
- Posts
- 4,415
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/40
Ik heb trouwens overlaatst een interessant artikel gelezen over cache-timing aanvallen op AES.
I caught a glimpse and now it haunts me.no votes
-
22-06-2006, 20:45 #5
Sla geen wachtwoorden op! Ook niet geëncrypteerd!
Maak een MD5 hash van je wachtwoord en sla die op. Als je dan een wachtwoord vraagt dmv een dialog box, dan ga je daar de MD5 hash van berekenen en deze vergelijken met de reeds opgeslagen hash.
Een MD5 hash kan je creëren uit een reeks data(een wachtwoord, een file, etc). Het is zoiets als een CRC, maar dan een unieke sleutel. Een MD5 hash heeft ook altijd dezelfde grootte(kan alleen even niet herinneren hoe groot precies).
Je kan dus data naar MD5 omrekenen, maar niet terug. Dit is een soort van eenwegs-encryptie.
Je hebt dus iets nodig dat een MD5 sleutel kan berekenen.
Je zou ook bijvoorbeeld de MD5 sleutel van elk bestand kunnen berekenen om te zien of de inhoud veranderd is, maar ik weet niet hoe CPU-intensief dat is.[LifeIsDigital.net] - Mijn artikels, open source software en projecten!no votes
-
22-06-2006, 21:14 #6Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Valt goed mee. Wordt vaak gedaan om te controleren op corrupte downloads/isos/.... Alleen moet je het nu niet op immens grote bestanden gaan doen telkens als je programma opstart, zou nogal lomp zijn imho.
Voor de rest volg ik vich volledig in wat hier gezegd wordt.
Gebruik hashing ipv encryptie waar mogelijk.no votes
-
22-06-2006, 21:26 #7Member
- Registered
- 30/09/02
- Location
- Mariakerke
- Posts
- 554
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
no votes
-
22-06-2006, 21:26 #8Op welke manier zijn de financiële gegevens dan afgeschermd?Gebruik hashing ipv encryptie waar mogelijk.no votes
-
22-06-2006, 21:49 #9Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
Als je een hoge mate van beveiliging wil kan je voor de communicatie met PostgreSQL best opteren voor een SSL verbinding (of connecteren via een SSH tunnel). Daarnaast kan je bepaalde kolommen in de DB ook via een functie library (vb. pgcrypto) gaan encrypteren. Nadeel van dat laatste is wel dat je kolommen dan BLOBs (BYTEA) moeten zijn, dus het is niet echt toepasbaar op kolommen waar je op wil zoeken of mee wil rekenen.
Verder gelden de algemene regels : geen makkelijk te raden username/paswoord combinaties gebruiken.PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
22-06-2006, 21:54 #10Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
no votes
-
22-06-2006, 22:01 #11Member
- Registered
- 30/09/02
- Location
- Mariakerke
- Posts
- 554
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
Dat niet, het passwoord kan je immers ook bruteforcen. Ik was eerder aan het denken in de richting van het decompileren van de java-code. Maar ofdat mogelijk is hangt natuurlijk af hoe het programma er uit komt te zien. (gedistribueerd/downloadbare class file met alles in/...)
Misschien moet de threadposter ook eens wat meer info geven hoe hij het juist ziet
no votes
-
22-06-2006, 22:02 #12Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Zelfs al kan hij decompileren, dan heeft hij enkel nog maar de hash en moet hij die hash gaan bruteforcen voor hij het kan gebruiken...
Als je trouwens kan decompileren kan je evengoed je programmacode gaan herschrijven zonder die controle te gebruiken
.
no votes
-
22-06-2006, 22:07 #13Member
- Registered
- 30/09/02
- Location
- Mariakerke
- Posts
- 554
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
Programmacode herschrijven is niet altijd simpel. Zeker niet als deze door programma's vervormd is (kben de naam van die techniek ff kwijt)
Maar waarom nu juist een hash gebruiken, ipv het paswoord zelf?
In mijn ogen is bij gedistribueerde toepassingen het principe van publieke/private sleutel + een challenge redelijk veilig.no votes
-
22-06-2006, 22:12 #14Member
- Registered
- 03/03/04
- Location
- Blankenberge/Gent
- Posts
- 1,105
- iTrader
- 7 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Alrighty, eerst en vooral nen grote merci voor de vele nuttige replies! Kben ier weer volop aant bijleren

Eerst en vooral, hashing of encryptie, ik zou sowieso in het programma nog een lange, willekeurige string (20 tekens ofzo?) voor en na het paswoord plakken, en die string dan hashen of encrypten. Kwestie van dictionary attacks toch onmogelijk te maken.
Ik weet echter niet hoe gemakkellijk het is om een java class te decompilen?? Hoe kan ik dit tegengaan? (Bestaat er niet zoiets als javad ? )
@Krueger : Het programma zal niet echt widely verspreidt worden. Ik schat hooguit een tiental klanten, lokaal dan nog...
Om eerlijk te zijn is dit men eerste grote, "echte" programma dat ik ga maken...
@dJeez : SSL is veronderstel ik enkel voor als de database server op een andere pc draait zodat ze geen data via het netwerk zouden kunnen onderscheppen? Of sla ik hier de bal mis? In eerste instantie zou ik met een database werken die lokaal draait... Dit klinkt misschien een beetje paranoia, maar stel dat er iemand de pc in handen krijgt waarop de database staat (en dus wss ook het programma), is er dan een manier om te voorkomen dat deze persoon de de inhoud van de database te weten komt?
EDIT :In dit geval zit tik toch weer met een hardcoded paswoord right??if(MD5Hash(password) == eenBepaaldeString) then
Inorde
else
print("fout passwoord");
Greetzno votes
-
22-06-2006, 22:20 #15Member
- Registered
- 30/09/02
- Location
- Mariakerke
- Posts
- 554
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
Java decompileren is zeer eenvoudig, met 1 klik kan je de broncode perfect lezen.
no votes
