[PHP+.NET] encryption+decryption *

Pagina: 1
Acties:

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 23:39
Heb hier de volgende situatie,
Wij zijn bezig met het maken van een beheerssysteem, deze krijgt een front die geprogrammeerd is op het .Net framework (in VB.NET). Hiermee maken wij connectie met een site, waar de centrale db staat om gegevens vanaf te halen. Omdat het om nogal vertrouwelijke en bedrijfskritische informatie gaat, moet de data (in XML formaat, maar dat maakt eigenlijk niet veel uit) geëncrypt worden verstuurd en op de front bij de klant worden gedecrypt.
Om gegevens uit de centrale db te halen gebruiken we php, ten eerste omdat we daar al scripts voor hebben en ten tweede omdat de hoster geen .NET ondersteund.
We kunnen wel naar een andere hoster gaan, maar er is nog niet echt betaalbare hosting voor .NET.
Dus nu eindelijk mijn vraag: Hoe kan ik data in PHP encrypten (mcrypt_decrypt) en deze met .NET decrypten?
We zijn al bezig geweest met de functie mcrypt_decrypt met dezelfde CIPHERS maar als ik dit probeer te decrypten krijg ik de geencrypte data niet terug.
Hier in de search kan ik de combinatie van encryption en decryption tussen .net en php niet vinden dus ik hoop dat jullie kunnen helpen.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

een encryptie logaritme gebruiken die je zelf bouwt in PHP en dus de bijbehorende decryptie weet en dus ook de decryptie kan bouwen onder .net ?

Bovendien staat er dat je op de front van de klant wilt decrypten, als jij dus onder .net gaat decrypten is dat ook nog eens aan de server zijde en dus nog steeds niet bij de front van de klant.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 23:39
Het is mogelijk om te encrypten onder php en te decrypten op .NET, alleen krijg ik het niet aan het werk.
Bovendien staat er dat je op de front van de klant wilt decrypten, als jij dus onder .net gaat decrypten is dat ook nog eens aan de server zijde en dus nog steeds niet bij de front van de klant
Ik moet dus op de server (PHP) decrypten, de front logged in op de server en vraagt om de data, die krijgt hij dus geencrypted terug van het php script en moet dus nog worden gedecrypted op de front (.NET) om alles weer te geven.

En ja, ik zou natuurlijk mijn eigen encryptie kunnen maken, maar ik gebruik liever een encrytie die niet makkelijk te breken is en die al heeft bewezen dat het werkt

[ Voor 14% gewijzigd door CodeIT op 09-06-2003 17:04 ]


Verwijderd

Mijns inziens denk je verkeerd na over de beveiliging. Mijns inziens kan je beter je HTTP connectie beveiligen met SSL of certificaten dan je gegevens te encrypten binnen je applicatielaag.

Verwijderd

ssl werkt gewoon goed, zie het nut niet waarom je het apart moet encrypten/decrypten, waar ssl dat allemaal doet met public key encryptie, anders zou je zelf de sleutel moeten door gaan geven, want die is per server ook anders. bij de meeste kan je zelf wel een sleutel aangeven en een vector, maar ja. ssl is toch iets makkelijker.

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 23:39
hmmz, ssl dus, weet ik dus echt niets van, hoop dat de hoster het ondersteund, ik ga maar eens googlen.

Verwijderd

Hier staat een klein stukje uitleg over SSL / HTTPS: http://www.sergey.com/web_course/part_12.html#sec_ssl

Een meer technisch verhaal over SSL staat hier: http://www.pseudonym.org/ssl/ssl_intro.html

Overigens zorgt dit alleen voor encryptie tussen zender en ontvanger, maar het schermt het de server niet af van onbedoelde ontvangers. Doorvoor kan je bijvoorbeeld standaard HTTP authentication gebruiken.

HTH :)

Edit:
Nog wat meer info van de MS kant:
http://msdn.microsoft.com...etsec/html/SecNetHT16.asp


Edit 2:
Natuurlijk moet je juist een SSL certificaat aan de PHP server kant opzetten, want de .Net server is natuurlijk de client in deze communicatie, dus negeer het bovenstaande. Je zult dat dus met je hosting provider moeten bespreken.

[ Voor 35% gewijzigd door Verwijderd op 09-06-2003 19:18 ]


  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 23:39
Dank je wel voor de links, ik denk toch maar dat ik dus een mailtje stuur naar mijn provider of hun het ondersteunen.

Ik heb op de eerste link het stappenplan gelezen hoe de browser en de server met elkaar onderhandelen, maar dat is in dit geval anders omdat de .NET applicatie alles moet checken qua certificates enz.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 23:34
Ik zit momenteel met hezelfde probleem, maar dan met VB6.
Je zou eens kunnen kijken aar de CryptoSys API op www.cryptosys.net
Momenteel ben ik daar ook mee aan het experimenteren, krijg het alleen nog niet voor elkaar.

Encrypten en decrypten lukt prima (Blowfish), ik krijg alleen andere ciphertexten dan met mcrypt, ookal gebruik i kdezelfde key's, IV's en modes. Mocht je het ook gaan proberen en krijg jij het wel voor elkaar; laat me dan even weten hoe :)

Ik doe het overigens buiten een PHPscript om, en breek met VB direct de MySQL server aan (met MyODBC). SSL zou een optie kunnen zijn. Met behulp van een programmatje als 'stunnel' (stunnel.org) kan je MySQL ook via SSL benaderen, dit is alleen voor mij geen optie.
Vandaar dat ook ik nog naar een mogelijkheid zoek om Blowfish/Rijndeal256 te decrypten in VB...
Pagina: 1