Omdat ik beveiliging vrij interessant vind ben ik bezig met OpenSSL binnen PHP en dit heb ik allemaal werkende nu;
- nieuw keypair aanmaken
- public -> private encryptie
- private -> public encryptie
Allemaal leuk en aardig, maar ik heb er alleen serverside iets aan. Wat ik wil is bij een form onsubmit de data encrypten met de public key. Nu heb ik hier zelf uiteraard naar gezocht en kwam ik terecht op de volgende pagina : http://www-cs-students.stanford.edu/~tjw/jsbn/
Daar staan scripts die het zouden moeten kunnen dus, blij
Maar... de public key die ik nodig heb om te encrypten is niet de gewone key, maar een zogeheten 'modulus' die je kunt extracten uit je key.
Als ik die heb zou ik, zover ik begrijp, kunnen doen wat ik wil dus en veilig data oversturen zonder direct gebruik te maken van https. Het probleem is nu : hoe kan ik die modulus extracten uit mn key in PHP ? Ik kan er nergens een functie voor vinden namelijk. Ik hoopte dat de functie 'openssl_pkey_get_details' me de modulus kon verschaffen maar dit blijkt niet het geval, helaas.
Iemand een idee?
edit:
de informatie die ik terugkrijgen uit de openssl_pkey_get_details() :
Is dat dan toch de modulus
Deze code is namelijk veel korter dan het javascript voorbeeld op die site.
edit2:
als ik die key invoer bij de demo (http://www-cs-students.stanford.edu/~tjw/jsbn/rsa.html) RSA public key en ik de string 'test' ga encoden krijg ik een bepaalde value in 'Ciphertext (base64):'
Als ik die probeer te decoden krijg ik de volgende error in OpenSSL :
error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02
error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed
- nieuw keypair aanmaken
- public -> private encryptie
- private -> public encryptie
Allemaal leuk en aardig, maar ik heb er alleen serverside iets aan. Wat ik wil is bij een form onsubmit de data encrypten met de public key. Nu heb ik hier zelf uiteraard naar gezocht en kwam ik terecht op de volgende pagina : http://www-cs-students.stanford.edu/~tjw/jsbn/
Daar staan scripts die het zouden moeten kunnen dus, blij
Als ik die heb zou ik, zover ik begrijp, kunnen doen wat ik wil dus en veilig data oversturen zonder direct gebruik te maken van https. Het probleem is nu : hoe kan ik die modulus extracten uit mn key in PHP ? Ik kan er nergens een functie voor vinden namelijk. Ik hoopte dat de functie 'openssl_pkey_get_details' me de modulus kon verschaffen maar dit blijkt niet het geval, helaas.
Iemand een idee?
edit:
de informatie die ik terugkrijgen uit de openssl_pkey_get_details() :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| Array ( [bits] => 1024 [key] => -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNmkgZwY4zaPKQIUwYkscfszR4 bBbn3nYikUl5ihSXfPy93lfHAD7v2wjA9uSl3ZV/10f6KFad+qq4/8HGcjxZf76o mSZjTXLjDCqalFpac6UcyW+69HmJcUN4ob0LG5uirWZGk7rvCeGenGiiPhTVuWo1 XD9Aym12FmGpSg5gSQIDAQAB -----END PUBLIC KEY----- [type] => 0 ) |
Is dat dan toch de modulus
edit2:
als ik die key invoer bij de demo (http://www-cs-students.stanford.edu/~tjw/jsbn/rsa.html) RSA public key en ik de string 'test' ga encoden krijg ik een bepaalde value in 'Ciphertext (base64):'
Als ik die probeer te decoden krijg ik de volgende error in OpenSSL :
error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02
error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed
[ Voor 31% gewijzigd door Cartman! op 16-02-2007 12:15 ]