[PHP] Database rijen 'signen'

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig een PHP script te maken om waarbij het noodzakelijk om te kunnen zien of een db rij na het 'signen' is verandert of niet.

Dit is de bedoeling:

Gebruiker1 tekent rij 1 met zijn wachtwoord (private key), wat er gebeurt is:
er wordt een md5 hash berekend van de velden die ik noodzaklijk acht en die hash wordt geencrypt met de 'private key'

Gebruiker2 controleert rij1 met de md5 hash van het wachtwoord van gebruiker1 (public key)(deze staat in de db), wat er gebeurt is:
de signature wordt gedecrypt met de 'public key' en de uitkomst daarvan is de md5 hash van de db rij, gebruiker2 geneert nogmaals die md5 hash en vergelijkt ze. Als ze overeenkomen is de handtekening geldig.

In principe is dit dus gewoon public/private key encryption. Maar minder veilig dan de versie waarvoor je moet gaan werken met certificaten.

Weet iemand een algorithme of heeft iemand een script waarmee je public/private key verification kan doen zonder gebruik te maken van certificaten (dus openSSL of PGP).

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Verwijderd schreef op 13 October 2003 @ 11:27:
Ik ben bezig een PHP script te maken om waarbij het noodzakelijk om te kunnen zien of een db rij na het 'signen' is verandert of niet.
Als ik het zo lees gaat het meer over het beveiligen van data, niet over het beveiligen van dataverkeer (SSL)?
Gebruiker1 tekent rij 1 met zijn wachtwoord (private key), wat er gebeurt is:
er wordt een md5 hash berekend van de velden die ik noodzaklijk acht en die hash wordt geencrypt met de 'private key'

Weet iemand een algorithme of heeft iemand een script waarmee je public/private key verification kan doen zonder gebruik te maken van certificaten (dus openSSL of PGP).
Dan kom je al snel op een oplossing met javascript en één of ander MD5-algoritme. Dit is uiteraard ook toepasbaar

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MD5 is slechts deel van de oplossing...

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Heb je het topic achter de link gelezen?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja maar dat gaat niet over validity signing toch? Alleen over de transfer van data server <-> client

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Dan vervang je 'wachtwoord' toch door 'willekeurigveld'?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
??? volgens mij maak ik mezelf niet heel duidelijk dan...

Ik wil een algorithme dat dit kan:

encrypten met een private key
decrypten met een public key

maar encrypten met de public key != encrypten met de private key
en private key != public key

md5 heb ik alleen nodig voor de hashes en dat is gewoon standaard php spul

Het heeft niets te maken met inloggen ofzo

Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Misschien heb je iets aan de standaard encryptie methode van php? Volgens mij werkt die ook zonder certificaten.

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja maar die zijn niet met behulp van keys...daarmee kun je niet valideren als je de 'key' niet weet

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Maar jij zegt dat het wachtwoord van gebruiker 1 een private key en een public key is? Dan is public key == private key, want: wachtwoord gebruiker 1 == wachtwoord gebruiker 1. Wat wil je precies dan? Een manier waarop je een de private en de public key verschillend maakt?

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Michali schreef op 13 oktober 2003 @ 15:29:
Maar jij zegt dat het wachtwoord van gebruiker 1 een private key en een public key is? Dan is public key == private key, want: wachtwoord gebruiker 1 == wachtwoord gebruiker 1. Wat wil je precies dan? Een manier waarop je een de private en de public key verschillend maakt?
Wat ik begreep van hem is dat:
code:
1
md5(private_key) == public_key(md5)

maw: gebruikt dus de md5 van private_key als public key md5. :?

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Verwijderd schreef op 13 October 2003 @ 14:07:
Ja maar die zijn niet met behulp van keys...
Eg wel!
string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv])
Key is the key with which the data will be encrypted.
http://nl.php.net/manual/nl/function.mcrypt-encrypt.php

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nee dus...dat is symetrische encryptie met 1 key en niet 2 (dus geen keyS)

En zo bedoelde ik het met de keys:

Private key: Wachtwoord van de gebruiker (dit staat niet in de database)
Public key: md5 hash van het wachtwoord (dit staat WEL in de database)

In andere woorden met de private key kun je de public genereren maar niet andersom...

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
volgens mij begrijp je nog niet precies hoe encryptie mbv keys werkt. MD5 hashes worden doorgaans niet gebruikt als keys. Lees eens de documentatie van SSH door, en lees wat over RSA. Waarom zou je zelf iets geinigs verzinnen wat toch niet in de buurt kom van de veiligheid die RSA of DSA je kunnen bieden.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Omdat de manier waarop zij het willen te uitgebreid is...Plus dat je dan met certificaten moet gaan werken.

Ik wil gewoon een asymetrische (met 2 keys) encryptie algorithme dat dus WEL met twee zelf gekozen keys kan werken.

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Dan voldoet MD5 dus niet. Bij asymmetrische encryptie hoort een paar van een private en public key onlosmakelijk bij elkaar. Met MD5 zijn er meerdere strings die eenzelfde hash op kunnen leveren. En met een gegeven hash kun je nooit de oorspronkelijke string terug halen.

Het feit dat je een MD5 van een wachtwoord opslaat maakt het nog geen public key.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb de oplossing al gevonden met behulp van RSA

Afbeeldingslocatie: Http://admin.nuralstorm.net/beveiliging.gif
Pagina: 1