Bezpieczeństwo
Zapewnienie bezpieczeństwa było jednym z
głównych celów projektantów języka Java. Z
tego powodu sam język oferuje wiele zabezpieczeń
wewnętrznych i ograniczeń – jak np. Sandbox,
zarządzany przez Security Managera.
Bezpieczeństwo na poziomie aplikacji i komunikacji
zapewnia wiele bibliotek pozwalających zastosować
nawet bardzo zaawansowane standardy bezpieczeństwa.
Dzięki temu możemy oferować naszym Klientom prawie
dowolny poziom bezpieczeństwa ich aplikacji w
różnych jego aspektach:
Zabezpieczone przed nieautoryzowanym użyciem lub podsłuchaniem
- Autentykacja i kontrola
dostępu: możliwość stosowania
różnego rodzaju logowania dzięki wielu
dostępnym modułom. W szczególności LDAP i
Active Directory
- Kryptografia:
podpisy cyfrowe, certyfikaty (symetryczne, asymetryczne,
strumieniowe i blokowe), generatory kluczy, jak
również standardy szyfrowania: RSA, DSA, AES,
potrójny DES, SHA, PKCS#5, RC2, RC4
- Bezpieczna komunikacja:
Transport Layer Security (TLS), Secure Sockets Layer
(SSL), Kerberos (dostępny przez GSS-API) oraz Simple
Authentication and Security Layer (SASL). Pełne
wsparcie HTTPS przez SSL/TLS
- PKI (Public Key
Infrastructure): CRLs X.509, PKIX (RFC 3280),
On-line Certificate Status Protocol (OCSP), PKCS#11,
PKCS#12, LDAP
Wysoki poziom dostępności. W celu
osiągnięcia sukcesu aplikacje muszą być stale
dostępne. Aby to uzyskać, stosuje się:
- Klastry (clustering)
oraz zapewnienie płynnego przejmowania zadań w
przypadku awarii (transparent failover),
co wymaga uwzględnienia takich możliwości w
czasie pisania aplikacji
- Optymalizację obciążenia
(load balancing) pozwalającą na
równomierne rozkładanie obciążenia
pomiędzy różne instancje wg zdefiniowanego
algorytmu