Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP]Generowanie Podpisu cyfrowego
Forum PHP.pl > Forum > Przedszkole
raval
Witam,

Czy ktokolwiek z was, próbował wygenerowac podpis cyfrowy "Signature", za pomocą certyfikatu i klucza prywatnego? Chodzi dokładnie o połączenie SOAP, za pomoca standardu WS-SECURITY, a nie mam pojęcie skąd wziaźć wartość dla SignatureValue.

  1. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  2. xmlns:ns1="http://ws.epuap.gov.pl/zarzadzanieDokumentami">
  3. <SOAP-ENV:Header>
  4. <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
  5. xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  6. <wsse:BinarySecurityToken
  7. EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
  8. ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
  9. wsu:Id="X509-E021829A9DDE2448DB14005718955435">
  10. MIIGbTCCBVWgA......vZzbPcQl8v13Y99MlzC82KA=
  11. </wsse:BinarySecurityToken>
  12. <ds:Signature Id="SIG-E021829A9DDE2448DB14005718955458" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
  13. <ds:SignedInfo>
  14. ....
  15. </ds:SignedInfo>
  16. <ds:SignatureValue>
  17. ....
  18. </ds:SignatureValue>
  19. <ds:KeyInfo Id="KI-E021829A9DDE2448DB14005718955446">
  20. <wsse:SecurityTokenReference wsu:Id="STR-E021829A9DDE2448DB14005718955447">
  21. <wsse:Reference URI="#X509-E021829A9DDE2448DB14005718955435"
  22. ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
  23. </wsse:SecurityTokenReference>
  24. </ds:KeyInfo>
  25. </ds:Signature>
  26. </wsse:Security>
  27. </SOAP-ENV:Header>
  28. <SOAP-ENV:Body>
  29. .....
  30. </SOAP-ENV:Body>
  31. </SOAP-ENV:Envelope>


Uprzejmie prosze o pomoc

Witam,

Z uwagi na weekend, chciałbym ponowić temat.

Po analizie google, doczytałem, że wartośc SignatureValue, można uzyskać za pomoca DigestValue, lub zawartości znacznika SignedInfo. Niestety wszystkie próby zawodzą, wyczerpały mi sie już pomysły i niew iem gdzie dalej szukać
Pyton_000
Może to coś pomoże
http://www.extern.pl/artykuly/ws-security_epuap/#ws-security
raval
Dzięki za odpowiedź. Niestety w tym artykule autor nie wyjaśnił, w jaki dokładnie sposób wygenerował wartość dla SignatureValue. Z tego co zauważyłem, nie jest za wiele wykorzystań standardu ws-security w PHP, ale najgorsze jest to, że nie zostało to nigdzie konkretnie objaśnione.

Może ktoś jeszcze wie z czym to się je? :X
Pyton_000
Napisał że w jego przypadku było to SHA1 z czegoś tam, więc musisz szukać w dokumentacji WebSerwice jak i z czego ma być wygenerowana ta wartość.
raval
Z tego co wyczytałem, to powinno sie wygenerowac z zawartości znacznika SignedInfo. Pomimo prób, w dalszym ciągu otrzymuje błąd:

  1. SoapFault exception: [soapenv:Server.securityException] com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5620E: Signature verification failed: Core validity=false Signed info validity=false Signed info message='SignatureValue mismatched.' Ref[java.util.HashMap$KeyIterator@1f1e1f1e](validity=true message='Ok.' uri='#id-A0ACABE51C676DC8FD13998934435564' type='null'). in
Pyton_000
A czy przypadkiem ten algorym nie jest definiowany w systemie Draco ? Bo tak by wynikało z dokumentacji
raval
W systemie Draco tworzysz tylko aplikację, przypisujesz do niej certyfikat zapisany w formacie base64 i nadajesz uprawnienia. Rodzaj kodowania jest zdefiniowany w XML (przykład ktory dostałem z ePUAP-u), rsa-sha1.
zbyszek90
Witam,
Podłączam się pod temat, mam podobny problem i szczerze nie mam pojęcia jak się za to zabrać. Jeżeli komuś udało się kiedyś rozwiązać taki problem, proszę o pomoc w tym temacie smile.gif
Epuap kosztował 60 mln. a dokumentacje zrobili w stylu "macie i odwalcie się" ;/

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.