[php] Mcrypt --> IV

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
Om te encrypten en decrypten haal ik mijn IV uit een file buiten de document_root. Als deze nog niet bestaat zal deze aangemaakt worden. Tot zo ver werkt het prima ook het encrypten en decrypten met CBC modus gaat perreft; maar hoe kan ik nu voorkomen dat deze IV file verwijderd kan worden? Door een fout van een gebruiker bijv...

Is het zo in te stellen dat alleen root een file mag verwijderen? maar de gebruike zelf (onder dat proces draait apache) wel bij het bestand mag om te lezen (en naar schrijven)? Of slaan jullie de 'IV' en key informatie anders op?

[ Voor 15% gewijzigd door xces op 12-02-2010 16:16 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Als de gebruiker alleen schrijfrechten heeft op het bestand, maar niet op de directory waar het bestand in staat, dan kan de gebruiker wel het bestand lezen en schrijven, maar niet verwijderen. Een simpele oplossing is dus een bestand aanmaken van de gebruiker in een directory van root.

Dat betekent echter ook dat de gebruiker het bestand niet kan aanmaken (want hij kan niet schrijven in de directory), dus moet je ook als root het bestand aanmaken. Dat kan dan best 0 bytes groot zijn, bijvoorbeeld, zodat de gebruiker de initiële IV kan schrijven.

Acties:
  • 0 Henk 'm!

  • Hipska
  • Registratie: Mei 2008
  • Laatst online: 08-09 09:58
Ik vraag mij hier wel af waarom een file niet zou mogen verwijderd worden, maar wel beschreven.

De gebruiker kan toch evengoed per ongeluk het bestand helemaal leeg schrijven?

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
zonder IV waardes kun je het niet meer decrypten, dus vandaar dat ik een manier zoek hoe ik de IV kan 'bewaren'.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 16:27

MueR

Admin Tweakers Discord

is niet lief

Je wil voorkomen dat iemand een bestand verwijderd? Een bestand wat, als het goed is, in een map staat waar zelfs je script niet mag schrijven? Dus de enige kans is een user die via FTP naar die map gaat en op delete rost? Dat heet pebkac, daar kan je je niet tegen wapenen.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
ghehe dus het bestand buiten de document_root plaatsen is zo'n beetje best practice?

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 16:27

MueR

Admin Tweakers Discord

is niet lief

Ja. Als iemand echt stom genoeg is om zomaar files te gaan deleten is dat vette pech. Je kan eventueel altijd wel lokaal ergens een backup bewaren. Als klanten zoiets zouden doen, krijgen ze gewoon een rekening van me.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
oke; backup dacht ik ook al aan. Doe jij nog iets zoals iedere x tijd een nieuwe IV genereren en alles opnieuw encrypten? p.s. het gaat 'maar' om email en MySQL wachtwoorden van standaard websites.
En wat doe jij met de key; sla jij die buiten de root op of 'bij' de data?

[ Voor 16% gewijzigd door xces op 12-02-2010 17:13 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
xces schreef op vrijdag 12 februari 2010 @ 16:32:
zonder IV waardes kun je het niet meer decrypten, dus vandaar dat ik een manier zoek hoe ik de IV kan 'bewaren'.
Het is gebruikelijk om de IV gewoon plain text in je uitvoer mee te sturen. Hij is tenslotte niet geheim.

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
Dus in feite zou je net zo goed de 1e 'x' karakters van het ge-encrypte gedeelte me kunnen opslaan?

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 17:52
Hoe bedoel je dat?

Het is gebruikelijk om bij encryptie met CBC de IV mee te sturen met de geëncrypte data. Encryptie van "plaintext" levert dan "IV" + "ciphertext" op. Decryptie gebeurt door eerst de IV in te lezen, en vervolgens de ciphertext te decoderen.

Hoe je die data precies codeert maakt niet zoveel uit. Soms wordt alleen de IV voor of achteraan de ciphertext geplakt, soms wordt de IV samen met allerlei metada zoals het gebruikte algoritme, block size, mode of operation, et cetera. Al deze parameters (inclusief de IV) hoeven namelijk niet geheimgehouden te worden. Alleen de codeersleutel is geheim (en natuurlijk de plaintext).

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Topicstarter
Ja dat bedoelde ik dus;
Momenteel sla ik de IV op in een file buiten de document_root en heb ik een algoritme om de key/hash te genereren. Ik dacht juist dat het andersom was; dat de IV niet bekend mocht worden en de key wel.
Dus wat jij zegt bedoelde ik te zeggen :P
Pagina: 1