wtorek, marca 06, 2007

Bezpieczeństwo WS
Jak to jest z tym bezpieczeństwem? Jest wiele rozwiązań. Właściwie przynajmniej trzy:
  • W3C ma swoje dokumenty na temat ochrony XML i SOAP. Trzy standardy:
    • XML Encryption - szyfrowanie (za kodowanie całości lub części XML odpowiada <EncryptionMethod>),
    • XML Signature - podpisywanie jest to podpis cyfrowy (skrót),
    • SOAP Security Extension: Digital Signature (http://www.w3.org/TR/SOAP-dsig/)
  • OASIC (Organization for the Advancement of Structured Information Standards) wydało w 2001 r najnowszą wersję SAML (Security Assertion Markup Language) członkowie - Boeing, Citrix, HP, IBM, Microsoft, Netscape, and Sun. Korzysta z XML Signature oraz SSL/TLS i wymaga nakładów na PKI.
  • a w kwietniu 2002 WS-I (Web Services Interoperability Organization) - IBM i MS - opublikowała początkową specyfikację WS-Security (Web Services Security Language). Członkowie - IBM, Microsoft, and VeriSign. Brak SSO oraz nie wymagaja infrastruktury kluczy, zabezpieczają pojedyńczą tranzakcję. Nagłówek zawiera element z tokenem zawierajacym informacje o autentykacji (X.509 lub żeton Kerberosa), autoryzacji wystawcy, może być również podpisany.
Porównanie: SAML zapewnia SSO, ale jest wolniejszy i wymaga infrastruktury, WS-Security chroni pojedyńczy komunikat.
Implementacje również wybierają różne rozwiązania np. Liberty Alliance (http://www.projectliberty.org/) posługuje się SAML, podczas gdy MS wybrał w swym rozwiązaniu TrustdBridge (http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnwebsrv/html/wsfederate.asp?frame=true) WS-Security.
Cel całej tej zabawy zapewnienie komunikatom SOAP:
  1. integrity,
  2. confidentiality,
  3. authentication,
  4. authorization
Uwaga: samo SSL nie wystarcza kiedy przesyłamy komunikaty poza scenariusz point-to-point. Szyfrowanie z kolei, dostępne poprzez standardy lub S/MIME lub PGP nie są wystarczające, gdyż szyfrują całość komunikatu a tu chodzi o szyfrowanie fragmentów, inne fragmenty są widoczne np. dla osób weryfikujacych przesyłkę. Dlatego wymyślono XML Encryption.
Inne linki:
  1. http://www.onjava.com/pub/a/onjava/2005/02/09/wssecurity.html - wstęp z punktu widzenia Java i w oparciu o standardu, które wszyscy mają gdzieś.
  2. http://www.onjava.com/pub/a/onjava/2005/03/30/wssecurity2.html?page=1 - cz.2
  3. Coraz więcej mówi się o współdziałaniu MS .NET i Java
  4. Jak rozwiązuje to Google w swoim API
  5. The Project The XML Security project is aimed at providing implementation of security standards for XML. Currently the focus is on the W3C standards :XML-Signature Syntax and Processing; and XML Encryption Syntax and Processing. Once these are implemented, XML Key Management is likely to be the next focus for the project. Two libraries are currently available. A Java library, which includes a mature Digital Signature implementation. Encryption is currently under development. A C++ library is also now available. Functionality is currently more basic than that provided by the Java library. http://xml.apache.org/security/
  6. http://xml.apache.org/security/faq.html - świetne wprowadzenie
  7. Klasyka:
    1. http://www.w3c.org/Signature
    2. http://www.w3c.org/Encryption
    3. http://www.cacr.math.uwaterloo.ca/hac/ Applied Cryptography
    4. http://www.w3c.org/Signature
    5. http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/xml_security.html -bezpieczeństwo XML
    6. http://webservices.xml.com/pub/a/ws/2003/01/15/ends.html -
  8. http://forum.java.sun.com/index.jspa - świetna strona początkowa do forum Java (na różne tematy)
  9. http://pywebsvcs.sourceforge.net/ -pyhon też ma, ale co z implementacją bezpieczenstwa?
  10. Googel/yahoo - search: securing WS/webservice/AJAX/zope/php/python/AHAH tez
  11. Z drugiej strony po co szukać w starociach, lepiej przyjrzeć się nowością implementowanym w JSE 1.6 i NetBeans
  12. http://java.sun.com/products/plugin/1.3/docs/jsobject.html - interakcja applet - javascript
  13. http://java.sun.com/docs/books/tutorial/networking/ -sieciowanie w Javie
  14. http://forum.webcity.pl/index.php?s=e46b296c82f1dedc085ee20ce27dc2bf&showtopic=4433&pid=29711&st=0&#entry29711 - ajax uproszczony
  15. http://advajax.anakin.us/index-pl.htm
  16. http://www-128.ibm.com/developerworks/views/webservices/libraryview.jsp?search_by=python+web+services+developer
  17. http://www.javaworld.com/cgi-bin/mailto/x_java.cgi - Bardzo ważny przykład szyfrowanie/deszyfrowania XML przy pomocy Java i JSR od IBM
  18. http://www.javaworld.com/javaworld/jw-10-2002/jw-1011-securexml.html?page=1
  19. http://webservices.xml.com/pub/a/ws/2003/01/15/ends.html - przykłady XML Signature
  20. http://digger.computerworld.pl/
  21. http://www.javaworld.com/javaworld/jw-09-2006/jw-0911-jsf.html
  22. http://xml.sys-con.com/read/307584.htm

Brak komentarzy: