Grey_Wolf Posted September 20, 2008 Report Share Posted September 20, 2008 Vai kaads Reali ir njemies ar HanzaNet norekjinu sistemu ? Nesanak uzgeneret vajadziigo Atslegu --- Dotais algoritms ir : -------------------------------- Digitālā paraksta MAC008 vērtība tiek aprēķināta, izmantojot publisko atslēgu algoritmu RSA un “hash” algoritmu SHA-1. Aprēķinā tiek ņemti vērā arī pieprasījuma parametru garumi, t.s. arī tukšie pieprasījuma lauki. MAC008(x1,x2,…,xn) := RSA( SHA-1(p(x1 )|| x1|| p(x2 )|| x2 || … ||p( xn )||xn),e,n) kur: || - simbolu rindu konkatenācija; x1, x2, …, xn - pieprasījuma parametri; p(xi) – parametra garuma funkcija. Funkcija atgriež parametra garumu kā 3-ciparu rindu. Nulles garuma gadījumā – ‘000’. e, n - RSA parametri. -------------- Siikaak dati seit Skript algoritms Sheit izveidoju f-ju function skriptesana($strings) { $strings2=sha1($strings); $fp=fopen("mans.key","r"); $priv_key=fread($fp,8192); fclose($fp); $res = openssl_get_privatekey($priv_key); openssl_private_encrypt($strings2,$crypttext,$res); $crypttext2=base64_encode($crypttext); return $crypttext2; } (Strings tiek uzgenerets pareizi ) privata atslega arii ir pareiza, jo ar Publisko var atvert bez prolemam ... Ispejams ka kautkur Esmu pieljavis kljudu ... Link to comment Share on other sites More sharing options...
bubu Posted September 20, 2008 Report Share Posted September 20, 2008 Es īsti nez kā tās atslēgas tev tur glabājas, bet moš fails jāver binārajā režīmā? fopen(.., "rb") ? Un vai php funkcija openssl_private_encrypt izmanto tādu pašu rsa enkriptēšanu kā prasīts? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 20, 2008 Author Report Share Posted September 20, 2008 Un vai php funkcija openssl_private_encrypt izmanto tādu pašu rsa enkriptēšanu kā prasīts? NU vinji itkaa ir noradijushi ka Izmantot OpenSLL biblioteku ... Vai dotaa funkcija izmanto to pashu --> nezinu, tapeec jautaju , varbuut kaads ir veidojis so dalju un var izpaliidzeet... Link to comment Share on other sites More sharing options...
Toms Posted September 20, 2008 Report Share Posted September 20, 2008 Nesanāk atslēgu uztaisīt vai ko..? # SIGN # make binary signature /usr/local/ssl/bin/openssl dgst -sha1 -out sample.sig -sign keyfile.pem sample.txt # encode signature with base64 /usr/local/ssl/bin/openssl enc -base64 -in sample.sig -out sample.b64 # VERIFY # extract public key from certificate /usr/local/ssl/bin/openssl x509 -in certfile.pem -pubkey -noout -out pubkey.pem # decode signature /usr/local/ssl/bin/openssl enc -d -base64 -in sample.b64 -out sample.sig # verify signature /usr/local/ssl/bin/openssl dgst -sha1 -verify pubkey.pem -binary -signature sample.sig sample.txt /** * Verifies opensll signature. * * @param string $str Data to verify * @param string $signature Signature to check * @return boolean <code>true</code> if signature matches */ function _verify($str, $signature) { $filename1 = tempnam('hanzanet/', 'hansanet1-'); $fd = fopen($filename1, 'w+'); fwrite($fd, $str); fclose($fd); $filename2 = tempnam('hanzanet/', 'hansanet2-'); $fd = fopen($filename2, 'w+'); fwrite($fd, $signature); fclose($fd); $return = shell_exec('openssl dgst -sha1 -verify hanzanet/bank-pub-key.pem -binary -signature ' . $filename2 . ' ' . $filename1); unlink($filename1); unlink($filename2); return strstr($return, 'Verified OK'); } Varbūt noder.. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 20, 2008 Author Report Share Posted September 20, 2008 Nesanāk atslēgu uztaisīt vai ko..? Varbūt noder.. Nesanak nogeneret atslegu kas jasuuta pasham HanzaNEt ( vertiba VK_MAC ) .. idejiski tiek izveidoots Strings no parejam padodamajam vertiibam un tad ar Privato atslegu + SHA 1 + BASE 64 noskripteets .. Jep .. Sitais jau varetu buut ir Stipri tuvak patiesiibai .. vieniigi jaskataas kaa ir ar piekljusanu shellam ... Link to comment Share on other sites More sharing options...
Toms Posted September 20, 2008 Report Share Posted September 20, 2008 Izmantoju Win32OpenSSL, lai uzģenerētu visu nepieciešamo. Uzģenerēt sertifikātu un privāto atslēgu: openssl req -newkey rsa:1024 -x509 -out certificate.pem -keyout private_key.pem -sha1 -nodes No privātās atslēgas uzģenerēt publisko atslēgu, kas jāsūta prom: openssl rsa -pubout -in private_key.pem -out public_key.pem Lai uzģenerētu sertifikāta request: Openssl req –new –out certificate_request.pem –key private_key.pem No sertifikāta iegūt publisko atslēgu (PHP): die(shell_exec('openssl x509 -in hanzanet/bank-cert.pem -pubkey -noout -out bank-pub-key.pem 2>1')); Ar šo info būtu jāpietiek.. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 20, 2008 Author Report Share Posted September 20, 2008 Toms --> ne iisti publisko Privato atslegu vajag ... Tur mazliet ir cits staaats ... Preciizaak vajag digitalo Parakstu kas katru reizi atskjiras , jo atskjiras sakotneji izmantotie dati ... tb ir NOTEIKTA parauga datu strings (katru reizi atskjiras, jo iekljau Unikalaas vertiibas ..) kursh jasokodee izmantojot RSA + SHA 1 (RSA iznmanto Jau gatavu Privato atslegu ) to visu sapako ar base64 un pievieno Postejamiem datiem ... Idejiski tas ir lai Banka Var parbaudiit ka Suutiijums tiesam nak no pareizaas puses ... Varetu teikt Autentifikacija .. Link to comment Share on other sites More sharing options...
bubu Posted September 20, 2008 Report Share Posted September 20, 2008 Tas saucas digitālais paraksts. Link to comment Share on other sites More sharing options...
v3rb0 Posted September 20, 2008 Report Share Posted September 20, 2008 Varetu teikt Autentifikacija .. autentifikacija - useris uzdodas par admini. autorizācija - pārbauda ka useris zina vai ir ticis pie kaut kā tāda, kas ir jābūt tikai adminim. Link to comment Share on other sites More sharing options...
Toms Posted September 20, 2008 Report Share Posted September 20, 2008 (edited) $signature = shell_exec('openssl dgst -sha1 -sign ' . $keyLocation . ' ' . $filename); $VK_MAC = base64_encode($signature); Kur $keyLocation ir tavas atslēgas atrašanās vieta un $filename ir tas fails, kurš satur visu saģenerēto info. Domāju, ka to info, ko tu šeit domāji: (Strings tiek uzgenerets pareizi ) Edited September 20, 2008 by Toms Link to comment Share on other sites More sharing options...
Recommended Posts