Das Rechnen in der Cloud mag zwar günstig sein, ist aber nicht kostenlos.
Die überwiegende Mehrheit der heutigen Apps wird über sicheres HTTP bereitgestellt. Damit ist TLS oder das zunehmend verpönte SSL gemeint. Es bedeutet Kryptografie, was traditionell mit Leistungsproblemen übersetzt wird.
Dank des technischen Fortschritts sind CPUs heute unglaublich schnell und in viele Client- (und Server-)Hardware ist einst spezialisierte kryptografische Hardware nativ integriert. Das bedeutet, dass die Geschwindigkeit für die Kryptografie pro Verbindung kein so großes Problem mehr darstellt wie früher.
Das heißt aber nicht, dass die Kryptografie nicht weiterhin eine Quelle von Leistungs- und Betriebskosten ist.
Die meisten Argumente, die das Vorbringen entkräften, Kryptografie sei eine bedeutende Quelle von Leistungsproblemen, basieren auf einfachen Szenarien, an denen ein Client und ein Server beteiligt sind. Das ist ein Verschlüsselungsvorgang und ein Entschlüsselungsvorgang. Und in solchen Szenarien haben die Neinsager meist recht. Die durch die Ver- und Entschlüsselung verursachte Latenz ist minimal und stellt im Allgemeinen ein weniger bedenkliches Problem dar als der TCP- und netzwerkbezogene Overhead.
Heutige Applications bestehen jedoch nicht aus einem einzigen Endpunkt. Es gibt mehrere Vermittler und Proxys, die eine Nachricht durchlaufen muss, bevor dieser „einzelne Endpunkt“ jemals erreicht wird. Dabei handelt es sich um Endpunkte für Sicherheit und Zugriffskontrolle sowie Lastausgleich und Routing. Jeder muss die Nachricht im Klartext prüfen, um seine zugewiesene Rolle im komplexen Tanz des modernen Datenpfad ausführen zu können.
An diesem Punkt beginnt das Argument zu bröckeln, dass Kryptografie nicht so teuer sei. Ein einzelner Endpunkt allein verursacht nur eine sehr geringe Verzögerung. Wenn diese einzelnen Verzögerungen jedoch mehrfach an jedem einzelnen Endpunkt im Datenpfad wiederholt werden, summieren sie sich zu einem spürbareren und – insbesondere im Fall der öffentlichen Cloud – betrieblich kostspieligen Ergebnis.
Kryptographie ist naturgemäß ein rechenintensiver Prozess. Das bedeutet, dass zum Verschlüsseln oder Entschlüsseln einer Nachricht wesentlich mehr CPU-Zyklen erforderlich sind als zum Ausführen der Geschäftslogik. In der Cloud entsprechen CPU-Zyklen den ausgegebenen Geldbeträgen. Im Allgemeinen handelt es sich dabei um akzeptierte Kosten, da es darum geht, Kapitalkosten in Betriebsausgaben umzuwandeln.
Wenn Sie eine Nachricht jedoch mehrmals entschlüsseln und verschlüsseln müssen, summieren sich die Kosten. Effektiv zahlen Sie für denselben kryptografischen Vorgang mehrfach . Was bei einmaliger Ausführung rechnerisch nur einen Cent kostet, kostet bei fünfmaliger Ausführung plötzlich fünf Cent. Wenn man die Hunderttausenden von Transaktionen im Laufe eines Tages (oder einer Stunde) durchrechnet, sind die daraus resultierenden Kosten atemberaubend.
Bedenken Sie auch, dass jeder CPU-Zyklus, der durch die kryptografische Verarbeitung verbraucht wird, ein CPU-Zyklus ist, der nicht für die Geschäftslogik verwendet wird. Dies bedeutet, dass die Skalierung früher erfolgt, als Sie vielleicht möchten, was noch mehr Kosten verursacht, da jede zusätzliche Instanz gestartet wird, um die Last zu bewältigen.
Es genügt zu sagen, dass „SSL überall“ nicht zu „Überall entschlüsseln“-Architekturen in der Cloud führen sollte.
Um die Kosten zu senken und die Effizienz der CPUs, für die Sie bezahlen, zu maximieren, lohnt es sich, Ihre Cloud-basierte Architektur nach dem Prinzip „Einmal entschlüsseln“ zu entwerfen. „Einmal entschlüsseln“ bedeutet, dass Sie die Anzahl der Endpunkte im Datenpfad minimieren sollten, die Nachrichten während der Übertragung entschlüsseln und erneut verschlüsseln müssen.
Dies erfordert Weitsicht und eine sorgfältige Prüfung der sechzehn verschiedenen Application , die Sie heute zum Sichern und Skalieren von Applications verwenden. Wenn Sie keinen Bestimmungen oder Anforderungen unterliegen, die eine Ende-zu-Ende-Verschlüsselung vorschreiben, gestalten Sie Ihren Datenpfad so, dass Nachrichten möglichst früh entschlüsselt werden, um zu vermeiden, dass später zusätzliche Zyklen für die Entschlüsselung verschwendet werden. Wenn Sie eine Ende-zu-Ende-Verschlüsselung aufrechterhalten müssen, können Sie Ihre Rechenressourcen durch die Kombination der Dienste, wann immer möglich, möglichst effizient nutzen.
Durch die Kombination der verfügbaren Dienste (z. B. Lastenausgleich mit Web Application Firewall) auf einer einzigen Plattform müssen Sie Nachrichten während der Übertragung seltener entschlüsseln. Dies hat den zusätzlichen Vorteil, dass die Anzahl der Verbindungen und die Verweildauer im Netzwerk reduziert werden, was sich in Leistungsvorteilen für Benutzer und Verbraucher niederschlägt. Die wirkliche Ersparnis liegt jedoch in den CPU-Zyklen, die nicht für wiederholtes Entschlüsseln und Neuverschlüsseln aufgewendet werden.
Es mag wie Zeitverschwendung erscheinen, die Auswirkungen der Verschlüsselung und Entschlüsselung auf eine App zu berücksichtigen, die heute nur wenig genutzt wird. Die paar Cent reichen sicherlich nicht aus, um die Kosten des Aufwands zu decken. Aber wenn Apps mit der Zeit wachsen, skalieren und ihre Lebensdauer verlängern, summieren sich diese paar Cents zu Beträgen, die eine große Wirkung haben. Ganz zu schweigen davon, dass sich Mikrosekunden genauso summieren wie Centstücke. Wenn Sie die Auswirkungen der Kryptografie über den gesamten Datenpfad hinweg berücksichtigen, können Sie langfristig sowohl für die Benutzer als auch für das Unternehmen Vorteile erzielen.