Liberty für sichere Anwendungen optimieren
Sie können Liberty optimieren, um die Leistung für sichere Anwendungen zu maximieren.
Informationen zu diesem Vorgang
Wenn Sie Ihre WebSphere-Anwendungsumgebung sichern, müssen Sie sich darüber im Klaren sein, welche Auswirkungen die Sicherheit auf die Leistung haben kann. Innerhalb einer Anwendungsserverumgebung können aktive Anwendungen oft an Leistung einbüßen, weil Sicherheitstasks wie Verschlüsselung, Authentifizierung und Berechtigung zu einer erhöhten Prozessorauslastung führen. Diese Services können die Pfade von Anwendungsserveranforderungen verlängern, d. h., für jede Anforderung sind mehr Ressourcen erforderlich, und der Anwendungsdurchsatz nimmt ab.
In den meisten Fällen können Sie die Leistungseinbußen aufgrund sicherheitsrelevanter Operationen reduzieren oder vollständig verhindern, indem Sie die Leistung optimieren. Sie können die Ressourcen, die von Sicherheitsservices verwendet werden, anpassen und nur die Services auswählen, die von einer bestimmten Anwendung oder Umgebung benötigt werden. Die bestmögliche Leistung zu erzielen, ohne auf notwendige Sicherheitsfeatures zu verzichten, setzt ein Verständnis Ihrer Netztopologie und des Sicherheitsbedarfs Ihrer Anwendungen voraus.
Vorgehensweise
- Wählen Sie die Verbindungen aus, die Sie verschlüsseln möchten.
In einer Umgebung mit WebSphere Application Server können Sie die folgenden Transporte verschlüsseln:
- HTTP-Datenverkehr zum Web-Server
- HTTP-Verkehr vom Web-Server zum Anwendungsserver
- SOAP/JMX-Datenverkehr
- Dateiübertragungsservice
- Web-Services über HTTP
Wenn Sie festlegen, welchen Datenverkehr Sie über verschlüsselte Verbindungen transportieren möchten, berücksichtigen Sie, ob das Netz, das die kommunizierenden Systeme verbindet, privat oder öffentlich ist. Es gibt eine bedeutende Menge Ressourcen, die verwendet werden, um eine gesicherte Verbindung einzurichten und den Datenverkehr über diese Verbindung zu verschlüsseln und zu entschlüsseln. Sie können signifikante Leistungsverbesserungen erzielen, indem Sie keine Verschlüsselung über ein gesichertes Netz voraussetzen. Wenn Ihre Anwendung nicht voraussetzt, dass Datenverkehr vom Client zum HTTP-Server und vom HTTP-Server zum Anwendungsserver verschlüsselt wird, könnten Sie SSL nur für den Verkehr vom Client zum HTTP-Server verwenden und so die Anzahl der Ressourcen, die von der Sicherheitseinrichtung benötigt werden, reduzieren.
- Aktivieren Sie Advanced Encryption Standard (AES) im Chip.
Wenn Sie IBM® SDK Java™ Technology Edition Version 7 Serviceaktualisierung 3 oder höher verwenden und einen Intel-Prozessor verwenden, der den Instruktionssatz "Advanced Encryption Standard New Instructions (AES-NI)" verwendet, können Sie eine Leistungsverbesserung erzielen, indem Sie die AES-Verschlüsselung im Chip nutzen. Mit diesen Features können Sie die AES-Verschlüsselung und -Entschlüsselung mit Hardwareanweisungen und ohne zusätzliche Software ausführen.
Um die AES-NI-Verwendung zu aktivieren, fügen Sie die folgende Eigenschaft der JVM-Befehlszeile oder der Datei jvm.options hinzu:
com.ibm.crypto.provider.doAESInHardware=true
Fügen Sie die folgende Eigenschaft der JVM-Befehlszeile oder der Datei jvm.options hinzu, um zu prüfen, ob der Prozessor den AES-NI-Instruktionssatz unterstützt:
com.ibm.crypto.provider.AESNITrace=true
Weitere Informationen finden Sie im Artikel Intel Advanced Encryption Standard New Instructions.
- Wählen Sie die Länge des Chiffrierschlüssels aus.
In einigen Fällen wird die Bitlänge eines Chiffrierschlüssels durch die Regelungen für die Übertragung bestimmter Datentypen definiert. In diesen Fällen können Chiffrier- und Schlüsselwert, die für eine bestimmte SSL-Verbindung ausgewählt werden, vorab festgelegt werden. Für Situationen, in denen die Schlüssellänge nicht reguliert ist, müssen Sie die entsprechenden Ressourcen, die der Sicherheitsfunktion zuzuordnen sind, auswählen, damit die Leistung nicht mehr als nötig reduziert wird. Beispielsweise bietet ein Chiffrierwert mit 256 Bit eine stärkere Verschlüsselung als ein entsprechender Chiffrierwert mit 128 Bit. Die Entschlüsselung von Nachrichten mit einer stärkeren Verschlüsselung erfordert mehr Verarbeitungszeit.
Wenn Sie Ihre Entscheidung über den auszuwählenden Verschlüsselungsgrad treffen, berücksichtigen Sie, welchen Typs die Daten sind, die über ein Netz übertragen werden. Beispielsweise benötigen sensible Informationen wie Datensätze zu finanziellen Transaktionen oder Krankenakten die maximale Sicherheit. Berücksichtigen Sie auch, wer Zugriff auf das Netz hat. Wenn das Netz von einer Firewall geschützt wird, können Sie in Erwägung ziehen, den Verschlüsselungsgrad zu verringern oder die Daten eventuell sogar über eine nicht verschlüsselte Verbindung zu übertragen.
Weitere Informationen zur Konfiguration von SSL-Einstellungen in Liberty finden Sie unter SSL-Konfigurationsattribute.
- Definieren Sie Keepalive-Anforderungen für die Verbindung.
Im Protokoll "Secure Socket Layer (SSL)" verwendet der ursprüngliche Handshake einen öffentlichen Chiffrierschlüssel, um den Austausch eines privaten Schlüssels gegen einen schnelleren privaten Chiffrierschlüssel zu ermöglichen. Diese schnellere Verschlüsselung wird verwendet, um die Kommunikation über den ursprünglichen Handshake hinaus zu verschlüsseln und entschlüsseln. Weil die für nachfolgende Kommunikation verwendete Verschlüsselung schneller ist als die für den ursprünglichen Handshake verwendete, ist es hinsichtlich der Leistung wichtig, die Anzahl von SSL-Handshakes zu begrenzen, die im Anwendungsserver ausgeführt werden. Sie können dieses Ergebnis erzielen, indem Sie eine SSL-Verbindung durch Steigerung der Sitzungsaffinität verlängern.
Eine Möglichkeit, die Dauer einer einzelnen SSL-Verbindung zu verlängern, besteht darin, persistente HTTP-Keepalive-Verbindungen zu aktivieren. Die Verlängerung verhindert, dass bei nachfolgenden Anforderungen SSL-Handshakes durchgeführt werden. Sie können sich vergewissern, dass persistente Verbindungen aktiviert sind, indem Sie sicherstellen, dass das Attribut "keepAliveEnabled" im Element "httpOptions" in der Datei server.xml auf true gesetzt ist. Der Standardwert ist true.
Eine andere Methode, persistente Verbindungen zu optimieren, besteht darin, die maximale Anzahl aufeinanderfolgender Anforderungen für eine einzelne HTTP-Verbindung festzulegen. Wenn Ihre Clients nacheinander mehr als 100 Anforderungen absetzen, sollten Sie in Erwägung ziehen, den Wert des Attributs "maxKeepAliveRequests" im Elment "httpOptions" in der Datei server.xml zu erhöhen. Der Standardwert ist "100".
Weitere Informationen zu den Keepalive-Verbindungsattributen finden Sie unter Java Servlets 3.0.
- Legen Sie die Einstellungen für den Authentifizierungscache fest.
Da die Erstellung eines Authentifizierungssubjekts die Prozessorauslastung erhöhen kann, stellt Liberty einen Authentifizierungscache bereit, in dem ein Subjekt nach der erfolgreichen Authentifizierung eines Benutzers gespeichert werden kann. Um alle Vorteile dieses Service zu nutzen, müssen Sie sicherstellen, dass er aktiviert ist und für den Benutzer- und Anwendungsbedarf optimiert ist.
Achten Sie darauf, dass der Authentifizierungscache nicht inaktiviert wird. Standardmäßig ist der Authentifizierungscache aktiviert, was zur Leistungsverbesserung beiträgt.
Ziehen Sie in Erwägung, den Zeitlimitwert des Authentifizierungscache zu ändern. Die Erhöhung des Zeitlimitwerts bewirkt, dass Subjekte länger im Authentifizierungscache bleiben können, und reduziert die Anzahl der erforderlichen erneuten Authentifizierungen. Allerdings erhöht dies Veränderung des Zeitlimitwerts auch das Risiko, dass Benutzerberechtigungen im Vergleich zu einem geänderten externen Repository (z. B. LDAP) nicht mehr aktuell sind. Setzen Sie das Zeitlimit des Authentifizierungscache so, dass die geschätzte Länge von Clientsitzungen wiedergegeben wird. Sie können das Cachezeitlimit festlegen, indem Sie im Element "authCache" in der Datei server.xml einen beliebigen Wert für das Zeitlimitattribut setzen. Der Standardwert ist 600 Sekunden.
Wenn Sie Authentifizierungszeiten haben, die länger sind als erwartet, oder wenn Sie mehr Datenverkehr zu einem externen Authentifizierungsrepository feststellen als erwartet, ist möglicherweise der Authentifizierungscache voll. Ist der Authentifizierungscache voll, werden Subjekte entfernt. Es gibt keine Eins-zu-eins-Zuordnung von authentifizierten Benutzern zu Authentifizierungscacheeinträgen. Die Anzahl der Einträge im Cache pro Benutzer ist von anderen Sicherheitskonfigurationen abhängig. Hinsichtlich der zu wählenden maximalen Größe des Authentifizierungscache hat es sich bewährt, einen Wert festzulegen, der größer ist als die Anzahl eindeutig authentifizierter Benutzer, die gleichzeitig auf den Server zugreifen. Wenn Sie die maximale Größe des Authentifizierungscache nach dieser Regel festlegen, verhindern Sie damit, dass Subjekte aus dem Cache entfernt werden, bevor das Zeitlimit abläuft. Sie können die maximale Größe des Authentifizierungscache ändern, indem Sie den Wert des Attributs "maxSize" im Element "authCache" in der Datei server.xml setzen. Der Wert für die Standardgröße ist "25000".
Weitere Informationen finden Sie unter Authentifizierungscache in Liberty konfigurieren.
- Konfigurieren Sie die Einstellungen für die Affinität der HTTP-Sitzung.
Eine der leistungsintensivsten Operationen in einer sicheren Anwendungsumgebung, ist die Erstkonfiguration, einschließlich SSL-Handshake und Authentifizierung. In Clusterumgebungen kann die Leistung abnehmen, wenn ein Web-Client auf verschiedene Anwendungsserver zugreift. Um die erhöhte Prozessorauslastung beim SSL-Handshake und bei der erneuten Authentifizierung zu vermeiden, muss die HTTP-Sitzungsaffinität konfiguriert werden.
Die HTTP-Sitzungsaffinität stellt sicher, dass aufeinanderfolgende Clientanforderungen an denselben Anwendungsserver weitergeleitet werden. Die HTTP-Sitzungsaffinität unterstützt die Leistung auf verschiedene Weise, insbesondere verhindert sie die erhöhte Prozessorauslastung beim SSL-Handshake und bei der erneuten Authentifizierung. Ziehen Sie die Dokumentation zu Ihrem HTTP-Server zur Lastausgleichsfunktion zu Rate. Dort finden Sie Anweisungen zur Konfiguration der HTTP-Sitzungsaffinität.
Weitere Informationen finden Sie unter Sitzungspersistenz für Liberty konfigurieren.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_tun_sec
Dateiname: twlp_tun_sec.html