DE112018004210T5 - Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung in Cloud-Systemen - Google Patents

Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung in Cloud-Systemen Download PDF

Info

Publication number
DE112018004210T5
DE112018004210T5 DE112018004210.3T DE112018004210T DE112018004210T5 DE 112018004210 T5 DE112018004210 T5 DE 112018004210T5 DE 112018004210 T DE112018004210 T DE 112018004210T DE 112018004210 T5 DE112018004210 T5 DE 112018004210T5
Authority
DE
Germany
Prior art keywords
function
control level
software
secure
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018004210.3T
Other languages
English (en)
Inventor
Victor Brown
Jeb Linton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018004210T5 publication Critical patent/DE112018004210T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/12Flow control between communication endpoints using signalling between network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Abstract

Es wird eine sichere prozessorbasierte Enklave verwendet, um eine oder mehrere durch Software definiertes Steuerfunktionen oder -elemente in einer Cloud-Umgebung wie zum Beispiel einer hyperkonvergenten Cloud, die Datenverarbeitungsknoten enthält, zu schützen. Eine oder mehrere sichere Enklaven werden innerhalb der Umgebung instanziiert. Eine Steuerungsebene wie zum Beispiel ein auf NFV beruhendes Steuerungsebenen-Element wird innerhalb der sicheren Enklave per Hosting zur Verfügung gestellt, die ihrerseits darin instanziiert ist, wobei sie virtualisiert oder containerisiert sein kann. Die Steuerungsebene weist eine zugehörige Datenebene auf, deren Elemente sich über einen oder mehrere der Datenverarbeitungsknoten erstrecken. Eine oder mehrere APIs stellen Verbindungsmöglichkeiten zwischen der Steuerungsebene und den verschiedenen Datenebenen-Elementen bereit, die sich außerhalb der sicheren Enklave befinden. Die auf NFV beruhende Steuerungsebene stellt der verteilten Datenebene über die APIs Konfigurationsinformationen (z.B. eine Weiterleitungstabelle) bereit. Indem die Steuerungsebene unter Verwendung von hauptspeicherinternem Arbeitslastschutz sicher per Hosting zur Verfügung gestellt wird, stellt der Ansatz die Integrität zum Ladezeitpunkt sicher und schützt in Echtzeit vor Beeinträchtigungen, z.B. durch privilegierte Angreifer oder andere Systemprozesse.

Description

  • HINTERGRUND DER ERFINDUNG
  • Technisches Gebiet
  • Diese Offenbarung betrifft allgemein Datenverarbeitungssysteme in einer Rechenzentrumsbetriebsumgebung.
  • Hintergrund des Standes der Technik
  • Ein allgemein bekanntes Informationstechnologie- (IT-) Bereitstellungsmodell ist Cloud-Computing, durch das gemeinsam genutzte Ressourcen, Software und Daten nach Bedarf an Computer und andere Einheiten über das Internet bereitgestellt werden. Durch Cloud-Computing werden IT-Kosten und Komplexitäten erheblich verringert, während die Arbeitslastoptimierung und Servicebereitstellung verbessert werden. Cloud-Computing-Ressourcen sind üblicherweise in großen Serverfarmen untergebracht, die eine oder mehrere Netzwerkanwendungen ausführen, üblicherweise unter Verwendung einer virtualisierten Architektur, bei der Anwendungen innerhalb virtueller Server oder sogenannter „virtueller Maschinen“ (VMs) laufen, die auf physische Server in einer Rechenzentrumseinrichtung abgebildet werden. Die virtuellen Maschinen laufen üblicherweise auf einem Hypervisor, bei dem es sich um ein Steuerprogramm handelt, das den virtuellen Maschinen physische Ressourcen zuordnet.
  • Es ist auch allgemein bekannt, innerhalb einer Cloud-Computing-Umgebung mehrere IT-Komponenten wie zum Beispiel Server, Speichereinheiten usw. in einem einzelnen Datenverarbeitungspaket zu gruppieren, um eine sogenannte konvergente Infrastruktur zu erzeugen. In jüngerer Zeit wurde dieser Begriff noch erweitert, um eine hyperkonvergente Infrastruktur (HCl, hyper-converged infrastructure) bereitzustellen, die sich auf eine vollständig durch Software definierte Infrastruktur bezieht, in der sämtliche Elemente virtualisiert sind. Diese hyperkonvergenten Lösungen ermöglichen ein Erlebnis ähnlich einer öffentlichen Cloud durch eine lokale Infrastruktur mit Virtualisierungs- und Automatisierungsfunktionen. Sie stellen eine Kombination aus zuverlässigem Speicher, schnellen Netzwerken, Skalierbarkeit und extrem leistungsfähiger Datenverarbeitung in modularen, skalierbaren Bausteinen bereit. Bei Bedarf ist es einfach, den Cluster durch Hinzufügen von Knoten zu erweitern. Eine im Handel erhältliche Lösung dieser Art ist IBM® Hyperconverged Systems auf der Basis von Nutanix, eine hyperkonvergente Infrastrukturlösung (HCl), welche die Nutanix Enterprise Cloud Platform Software mit IBM Power® Systemen kombiniert. Die integrierte Lösung zielt auf anspruchsvolle transaktionale und kognitive Analysearbeitslasten mit einer leicht zu verwaltenden und einfach zu skalierenden Infrastruktur ab.
  • In aktuellen hyperkonvergenten Cloud-Lösungen ist eine Vernetzung durch Software definiert, und zwar in Form von Steuerungsebenen-Funktionen für eine Netzwerkfunktionsvirtualisierung (NFV, Network Function Virtualization), die nicht an spezialisierte Hardware gebunden sind, sondern stattdessen als redundante, hochverfügbare virtualisierte oder containerisierte Elemente dienen. Diese können aus grundlegenden Funktionen der Weiterleitungs-/Vermittlungssteuerungsebene, aus einem Lastenausgleich, einer Firewall und/oder komplexeren Netzwerkfunktionen auf höherer Ebene wie zum Beispiel Firewalls der nächsten Generation, bestehen. Im Betrieb stellen sie Konfigurationsinformationen an eine hochgradig verteilte Datenebene z.B. über einen Satz von gemeinsamen APIs bereit. In aktuellen Systemen sind diese kritischen Funktionen jedoch nicht unbedingt mit einer besonderen Absicherung der Integrität oder Widerstandsfähigkeit gegen privilegierte Angriffe versehen, wodurch ermöglicht wird, dass ein privilegierter Angreifer auf Systemebene oder ein beeinträchtigter Prozess systemweite Beeinträchtigungen oder Ausfälle verursacht, z.B. durch Angreifen der Netzwerksteuerungsebenen-Funktionen.
  • Es bleibt die Notwendigkeit, dieses Problem anzugehen.
  • KURZDARSTELLUNG
  • Es wird eine sichere prozessorbasierte Enklave verwendet, um eine oder mehrere durch Software definiertes Steuerfunktionen oder -elemente in einer Cloud-Umgebung wie zum Beispiel einer hyperkonvergenten Cloud, die Datenverarbeitungsknoten enthält, zu schützen. Eine oder mehrere sichere Enklaven werden innerhalb der Umgebung instanziiert. Eine Steuerungsebene wie zum Beispiel ein auf NFV beruhendes Steuerungsebenen-Element wird innerhalb der sicheren Enklave per Hosting zur Verfügung gestellt, die ihrerseits darin instanziiert ist und virtualisiert oder containerisiert sein kann. Die Steuerungsebene weist eine zugehörige Datenebene auf, deren Elemente sich über einen oder mehrere der Datenverarbeitungsknoten erstrecken. Eine oder mehrere APIs stellen Verbindungsmöglichkeiten zwischen der Steuerungsebene und den verschiedenen Datenebenen-Elementen bereit, die sich außerhalb der sicheren Enklave befinden. Die auf NFV beruhende Steuerungsebene stellt der verteilten Datenebene über die APIs Konfigurationsinformationen (z.B. eine Weiterleitungstabelle) bereit. Indem die Steuerungsebene unter Verwendung von hauptspeicherinternem Arbeitslastschutz sicher per Hosting zur Verfügung gestellt wird, stellt der Ansatz die Integrität zum Ladezeitpunkt sicher und schützt in Echtzeit vor Beeinträchtigungen, z.B. durch privilegierte Angreifer oder andere Systemprozesse, die bösartig sein können.
  • Vorstehend wurden einige der einschlägigeren Merkmale des dargelegten Gegenstands umrissen. Diese Merkmale sollten als lediglich veranschaulichend aufgefasst werden. Durch Anwenden des dargelegten Gegenstands auf unterschiedliche Weise oder durch Abändern des Gegenstands können viele andere vorteilhafte Ergebnisse erreicht werden, wie nachfolgend beschrieben wird.
  • Figurenliste
  • Um ein vollständigeres Verständnis des Gegenstands und dessen Vorteile zu ermöglichen, wird nun Bezug auf die folgenden Beschreibungen in Verbindung mit den beigefügten Zeichnungen genommen, in denen:
    • 1 ein beispielhaftes Blockschaubild einer verteilten Datenverarbeitungsumgebung darstellt, in der beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
    • 2 ein beispielhaftes Blockschaubild eines Datenverarbeitungssystems zeigt, in dem beispielhafte Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können;
    • 3 eine beispielhafte Cloud-Datenverarbeitungsarchitektur veranschaulicht, in welcher der dargelegte Gegenstand umgesetzt werden kann;
    • 4 eine beispielhafte Betriebsumgebung veranschaulicht, in der eine netzwerkbasierte Appliance eingesetzt werden kann, um einen Einsatz eines oder mehrerer auf Cloud beruhender Angebote zu ermöglichen;
    • 5 eine hyperkonvergente Cloud-Infrastruktur zeigt, in der die Techniken dieser Offenbarung umgesetzt werden; und
    • 6 ein repräsentatives durch Software definiertes Netzwerk zeigt, in dem der sichere prozessorbasierte Enklaven-Ansatz zum Schützen einer oder mehrerer Steuerungsebenen-Funktionen verwendet wird.
  • AUSFÜHRLICHE BESCHREIBUNG EINER VERANSCHAULICHENDEN AUSFÜHRUNGSFORM
  • Unter Bezugnahme auf die Zeichnungen, und insbesondere unter Bezugnahme auf die 1 bis 2, werden nun beispielhafte Schaubilder von Datenverarbeitungsumgebungen bereitgestellt, in denen veranschaulichende Ausführungsformen der Offenbarung umgesetzt werden können. Man sollte sich bewusst sein, dass die 1 bis 2 lediglich beispielhaft sind und keinerlei Einschränkungen in Bezug auf die Umgebungen anführen oder mit sich bringen sollen, in denen Aspekte oder Ausführungsformen des dargelegten Gegenstands umgesetzt werden können. Es können viele Abwandlungen an den abgebildeten Umgebungen vorgenommen werden, ohne von dem Gedanken und Umfang des dargelegten Gegenstands abzuweichen.
  • Client-Server-Technologien
  • Unter Bezugnahme auf die Zeichnungen zeigt 1 eine bildhafte Darstellung eines beispielhaften verteilten Datenverarbeitungssystems, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 kann ein Netzwerk von Computern enthalten, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das verteilte Datenverarbeitungssystem 100 enthält mindestens ein Netzwerk 102, bei dem es sich um das Medium handelt, das zum Bereitstellen von Datenübertragungsverbindungen zwischen verschiedenen Einheiten und Computern verwendet wird, die innerhalb des verteilten Datenverarbeitungssystems 100 miteinander verbunden sind. Das Netzwerk 102 kann zum Beispiel drahtgestützte Verbindungen, drahtlose Datenübertragungsverbindungen oder Lichtwellenleiter-Kabel enthalten.
  • In dem abgebildeten Beispiel sind ein Server 104 und ein Server 106 gemeinsam mit der Speichereinheit 108 mit dem Netzwerk 102 verbunden. Außerdem sind Clients 110, 112 und 114 auch mit dem Netzwerk 102 verbunden. Bei diesen Clients 110, 112 und 114 kann es sich zum Beispiel um Personal Computer, Netzwerkcomputer oder dergleichen handeln. In dem abgebildeten Beispiel stellt der Server 104 den Clients 110, 112 und 114 Daten wie Startdateien, Betriebssystemabbilder sowie Anwendungen bereit. Bei den Clients 110, 112 und 114 handelt es sich in dem abgebildeten Beispiel um Clients des Servers 104. Das verteilte Datenverarbeitungssystem 100 kann zusätzliche Server, Clients und andere Einheiten beinhalten, die nicht gezeigt sind.
  • In dem abgebildeten Beispiel handelt es sich bei dem verteilten Datenverarbeitungssystem 100 um das Internet, wobei das Netzwerk 102 eine weltweite Sammlung von Netzwerken und Gateways darstellt, die für den Datenaustausch untereinander die Protokoll-Suite von Transmission Control Protocol/Internet Protocol (TCP/IP) verwenden. Im Zentrum des Internet liegt ein Backbone von Hochgeschwindigkeits-Datenübertragungsleitungen zwischen Hauptknoten bzw. Host-Computern, die aus tausenden kommerziellen, Regierungs-, Bildungs- sowie anderen Computersystemen bestehen, die Daten und Nachrichten weiterleiten. Natürlich kann das verteilte Datenverarbeitungssystem 100 auch so umgesetzt sein, dass es eine Reihe verschiedener Arten von Netzwerken wie zum Beispiel ein Intranet, ein lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) oder dergleichen enthält. Wie oben angeführt wurde, soll 1 als Beispiel dienen, nicht als bauliche Einschränkung für verschiedene Ausführungsformen des offenbarten Gegenstands, und deshalb sind die bestimmten in 1 gezeigten Elemente nicht als Einschränkung bezüglich der Umgebungen anzusehen, in denen die veranschaulichenden Ausführungsformen der vorliegenden Erfindung umgesetzt werden können.
  • Unter Bezugnahme auf 2 ist ein Blockschaubild eines beispielhaften Datenverarbeitungssystems gezeigt, in dem Aspekte der veranschaulichenden Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 ist ein Beispiel eines Computers wie zum Beispiel des Clients 110 in 1, in dem sich durch einen Computer verwendbarer Code bzw. Anweisungen befinden können, welche die Prozesse für veranschaulichende Ausführungsformen der Offenbarung umsetzen.
  • Unter Bezugnahme auf 2 ist ein Blockschaubild eines Datenverarbeitungssystems gezeigt, in dem veranschaulichende Ausführungsformen umgesetzt werden können. Das Datenverarbeitungssystem 200 ist ein Beispiel eines Computers wie zum Beispiel des Servers 104 oder des Clients 110 in 1, in dem sich durch einen Computer verwendbarer Programmcode bzw. Anweisungen, welche die Prozesse umsetzen, für die veranschaulichenden Ausführungsformen befinden können. In diesem veranschaulichenden Beispiel beinhaltet das Datenverarbeitungssystem 200 ein Datenübertragungsnetz 202, das den Austausch von Daten zwischen einer Prozessoreinheit 204, einem Hauptspeicher 206, einem dauerhaften Speicher 208, einer Datenübertragungseinheit 210, einer Eingabe/Ausgabe- (E/A-) Einheit 212 und einer Anzeige 214 bereitstellt.
  • Die Prozessoreinheit 204 dient zur Ausführung von Software-Anweisungen, die in den Hauptspeicher 206 geladen werden können. Abhängig von der jeweiligen Ausführung kann es sich bei der Prozessoreinheit 204 um einen Satz von einem oder mehreren Prozessoren oder einen Multiprozessorkern handeln. Des Weiteren kann die Prozessoreinheit 204 unter Verwendung einer oder mehrerer heterogener Prozessorsysteme ausgeführt sein, in denen ein Hauptprozessor mit Nebenprozessoren auf einem einzigen Chip vorhanden ist. Als weiteres veranschaulichendes Beispiel kann es sich bei der Prozessoreinheit 204 um ein symmetrisches Multiprozessor- (SMP-) System handeln, das mehrere Prozessoren desselben Typs enthält.
  • Der Hauptspeicher 206 und der dauerhafte Speicher 208 sind Beispiele von Speichereinheiten. Eine Speichereinheit ist eine beliebige Hardware, die Daten entweder auf vorübergehender Grundlage und/oder auf dauerhafter Grundlage speichern kann. Der Hauptspeicher 206 kann in diesen Beispielen beispielsweise ein Direktzugriffsspeicher oder jede beliebige andere geeignete flüchtige oder nichtflüchtige Speichereinheit sein. Abhängig von der jeweiligen Ausführung kann der dauerhafte Speicher 208 verschiedene Formen annehmen. Zum Beispiel kann der dauerhafte Speicher 208 eine oder mehrere Komponenten oder Einheiten enthalten. Zum Beispiel kann es sich bei dem dauerhaften Speicher 208 um ein Festplattenlaufwerk, einen Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine Kombination aus diesen handeln. Die von dem dauerhaften Speicher 208 verwendeten Medien können auch auswechselbar sein. Es kann zum Beispiel ein Wechselplattenlaufwerk für den dauerhaften Speicher 208 verwendet werden.
  • Die Datenübertragungseinheit 210 sorgt in diesen Beispielen für die Datenübertragung zu anderen Datenverarbeitungssystemen oder -einheiten. In diesen Beispielen ist die Datenübertragungseinheit 210 eine Netzwerkschnittstellenkarte. Die Datenübertragungseinheit 210 kann die Datenübertragung durch Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen.
  • Die Eingabe/Ausgabe-Einheit 212 ermöglicht die Eingabe und Ausgabe von Daten von/zu anderen Einheiten, die gegebenenfalls mit dem Datenverarbeitungssystem 200 verbunden sind. Die Eingabe/Ausgabe-Einheit 212 kann zum Beispiel eine Verbindung für Benutzereingaben über eine Tastatur und eine Maus bereitstellen. Des Weiteren kann die Eingabe/Ausgabe-Einheit 212 Daten an einen Drucker ausgeben. Die Anzeige 214 stellt einen Mechanismus zur Anzeige von Daten für einen Benutzer bereit.
  • Anweisungen für das Betriebssystem und Anwendungen oder Programme befinden sich auf dem dauerhaften Speicher 208. Diese Anweisungen können in den Hauptspeicher 206 geladen werden, um von der Prozessoreinheit 204 ausgeführt zu werden. Die Prozesse der verschiedenen Ausführungsformen können von der Prozessoreinheit 204 unter Verwendung von auf einem Computer ausgeführten Anweisungen durchgeführt werden, die sich in einem Speicher wie dem Hauptspeicher 206 befinden können. Diese Anweisungen werden Programmcode, von einem Computer verwendbarer Programmcode oder durch einen Computer lesbarer Programmcode, der von einem Prozessor in der Prozessoreinheit 204 gelesen und ausgeführt werden kann, genannt. Der Programmcode in den verschiedenen Ausführungsformen kann in verschiedenen physischen oder greifbaren, durch einen Computer lesbaren Medien wie dem Hauptspeicher 206 oder dem dauerhaften Speicher 208 enthalten sein.
  • Der Programmcode 216 befindet sich in einer funktionalen Form auf einem durch einen Computer lesbaren Medium 218, das wahlweise austauschbar ist und zur Ausführung durch die Prozessoreinheit 204 in das Datenverarbeitungssystem 200 geladen oder auf dieses übertragen werden kann. Der Programmcode 216 und das durch einen Computer lesbare Medium 218 bilden in diesen Beispielen ein Computerprogrammprodukt 220. In einem Beispiel kann das durch einen Computer lesbare Medium 218 eine physische Form wie zum Beispiel eine optische oder magnetische Platte aufweisen, die zur Übertragung auf eine Speichereinheit wie ein Festplattenlaufwerk, das Teil des dauerhaften Speichers 208 ist, in ein Laufwerk oder eine andere Einheit, die Teil des dauerhaften Speichers 208 ist, eingeschoben oder eingelegt wird. In einer physischen Form kann das durch einen Computer lesbare Medium 218 auch die Form eines dauerhaften Speichers wie ein Festplattenlaufwerk, ein Thumb-Drive oder ein Flash-Speicher annehmen, der mit dem Datenverarbeitungssystem 200 verbunden ist. Die physische Form des durch einen Computer lesbaren Mediums 218 wird auch durch einen Computer beschreibbares Speichermedium genannt. In einigen Fällen kann das durch einen Computer beschreibbare Medium 218 auch nicht austauschbar sein.
  • Alternativ kann der Programmcode 216 über eine Datenübertragungsverbindung mit der Datenübertragungseinheit 210 und/oder durch eine Verbindung mit der Eingabe/AusgabeEinheit 212 von dem durch einen Computer lesbaren Medium 218 auf das Datenverarbeitungssystem 200 übertragen werden. In den veranschaulichenden Beispielen können die Datenübertragungsverbindung und/oder die Verbindung physisch oder drahtlos sein. Das durch einen Computer lesbare Medium kann auch die Form von nicht-physischen Medien wie Datenübertragungsverbindungen oder drahtlosen, den Programmcode enthaltenden Übertragungen annehmen. Die verschiedenen für das Datenverarbeitungssystem 200 dargestellten Komponenten stellen keine baulichen Einschränkungen für die Art und Weise, in der verschiedene Ausführungsformen umgesetzt werden können, dar. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem realisiert werden, das zusätzlich zu oder an Stelle der für das Datenverarbeitungssystem 200 dargestellten Komponenten andere Komponenten enthält. Andere in 2 gezeigte Komponenten können abweichend von den gezeigten veranschaulichenden Beispielen variiert werden. Als ein Beispiel kann es sich bei der Speichereinheit in dem Datenverarbeitungssystem 200 um jede beliebige Hardware-Vorrichtung handeln, die Daten speichern kann. Der Hauptspeicher 206, der dauerhafte Speicher 208 und das durch einen Computer lesbare Medium 218 sind Beispiele von Speichereinheiten in physischer Form.
  • In einem anderen Beispiel kann ein Bussystem zur Realisierung des Datenübertragungsnetzes 202 verwendet werden und dabei aus einem oder mehreren Bussen wie einem Systembus oder einem Eingabe/Ausgabe-Bus bestehen. Natürlich kann das Bussystem unter Verwendung einer beliebigen Art einer Architektur ausgeführt werden, die eine Übertragung von Daten zwischen verschiedenen an das Bussystem angeschlossenen Komponenten oder Einheiten gewährleistet. Außerdem kann eine Datenübertragungseinheit eine oder mehrere für das Senden und Empfangen von Daten verwendete Einheiten wie einen Modem oder einen Netzwerkadapter enthalten. Des Weiteren kann ein Hauptspeicher zum Beispiel der Hauptspeicher 206 oder ein Cachespeicher sein, wie man ihn in einem Schnittstellen- und Speicher-Steuereinheiten-Hub findet, der in dem Datenübertragungsnetz 202 vorhanden sein kann.
  • Computerprogrammcode zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie zum Beispiel Java™, Smalltalk, C++, C#, Objective-C oder dergleichen sowie herkömmliche prozedurale Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
  • Ein Fachmann wird verstehen, dass die in den 1-2 abgebildete Hardware je nach Umsetzung variieren kann. Zusätzlich oder an Stelle der in den 1 bis 2 abgebildeten Hardware können andere interne Hardware- oder Peripherie-Einheiten wie Flash-Speicher, gleichwertige nichtflüchtige Speicher bzw. optische Plattenlaufwerke und dergleichen verwendet werden. Ebenso können die Prozesse der veranschaulichenden Ausführungsformen auf ein anderes Multiprozessor-Datenverarbeitungssystem als das vorher erwähnte SMP-System angewendet werden, ohne von dem Gedanken und dem Umfang des offenbarten Gegenstands abzuweichen.
  • Wie ersichtlich werden wird, können die hierin beschriebenen Techniken zusammen innerhalb des wie in 1 veranschaulichten Standard-Client-Server-Konzepts funktionieren, in denen Client-Maschinen mit einem über das Internet zugänglichen, auf dem Web beruhenden Portal Daten austauschen, das auf einer Reihe von einer oder mehrerer Maschinen ausgeführt wird. Endbenutzer bedienen mit dem Internet verbindbare Einheiten (z.B. Desktop-Computer, Notebook-Computer, Internet-fähige mobile Einheiten oder dergleichen), die in der Lage sind, auf das Portal zuzugreifen und mit diesem Daten auszutauschen. Üblicherweise handelt es sich bei jeder Client- bzw. Server-Maschine um ein wie in 2 veranschaulichtes Datenverarbeitungssystem, das Hardware und Software aufweist, und diese Einheiten tauschen über ein Netzwerk wie das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes beliebige andere Datenübertragungsmedium bzw. jede beliebige andere Datenübertragungsverbindung Daten miteinander aus. Ein Datenverarbeitungssystem enthält üblicherweise einen oder mehrere Prozessoren, ein Betriebssystem, eine oder mehrere Anwendungen und ein oder mehrere Dienstprogramme. Die Anwendungen auf dem Datenverarbeitungssystem stellen native Unterstützung für Web-Services bereit, darunter unter anderem, und ohne Einschränkung, Unterstützung für HTTP, SOAP, XML, WSDL, UDDI sowie WSFL. Informationen bezüglich SOAP, WSDL, UDDI und WSFL sind von dem World Wide Web Consortium (W3C) erhältlich, das für das Entwickeln und Pflegen dieser Standards zuständig ist; weitere Informationen bezüglich HTTP und XML sind von der Internet Engineering Task Force (IETF) erhältlich. Vertrautheit mit diesen Standards wird vorausgesetzt.
  • Cloud-Computing-Modell
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften umfassen, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle, die alle in „Draft NIST Working Definition of Cloud Computing“ von Peter Mell und Tim Grance vom 7. Oktober 2009 ausführlicher beschrieben und definiert sind.
  • Insbesondere sind die folgenden typische Eigenschaften:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Die Dienstmodelle lauten üblicherweise wie folgt:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Einsatzmodelle lauten üblicherweise wie folgt:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist. Ein repräsentativer Cloud-Computing-Knoten ist oben in 2 veranschaulicht. Insbesondere gibt es in einem Cloud-Computing-Knoten ein Computersystem/einen Server, das/der mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen bzw. -Konfigurationen betriebsfähig ist. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/Server geeignet sein können, gehören Personal-ComputerSysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten enthalten, und dergleichen, aber nicht darauf beschränkt. Das Computersystem/der Server kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen, z.B. Programmmodulen, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter Hauptspeichereinheiten.
  • Unter Bezugnahme auf 3 wird als zusätzlicher Hintergrund eine Reihe von funktionalen Abstraktionsschichten gezeigt, die durch eine Cloud-Computing-Umgebung bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    • Eine Hardware- und Software-Schicht 300 umfasst Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Mainframe-Computer, in einem Beispiel IBM® zSeries®-Systeme, auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server, in einem Beispiel IBM pSeries®-Systeme, IBM xSeries®-Systeme, IBM BladeCenter®-Systeme, Speichereinheiten, Netzwerke sowie Netzwerkkomponenten. Zu Beispielen für Software-Komponenten gehören Netzwerk-Anwendungsserver-Software, in einem Beispiel IBM WebSphere®-Anwendungsserver-Software, sowie Datenbank-Software, in einem Beispiel IBM DB2®-Datenbank-Software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere sowie DB2 sind Marken von International Business Machines Corporation, die in vielen Jurisdiktionen weltweit eingetragen sind).
  • Eine Virtualisierungsschicht 302 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server, virtueller Speicher, virtuelle Netzwerke, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme sowie virtuelle Clients.
  • In einem Beispiel kann eine Verwaltungsschicht 304 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Messen und Preisfindung stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einer SLA bereit.
  • Eine Arbeitslastschicht 306 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation, Software-Entwicklung und Lebenszyklusverwaltung, Bereitstellung von Ausbildung in virtuellen Klassenzimmern, Datenanalytikverarbeitung, Transaktionsverarbeitung und andere (z.B. unternehmensspezifische Funktionen in einer privaten Cloud).
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Folglich weist eine repräsentative Cloud-Computing-Umgebung eine Reihe von übergeordneten funktionalen Komponenten auf, die eine Front-End-Identitätsverwaltungseinheit, eine Funktionskomponente für Geschäftsunterstützungsdienste (BSS, Business Support Services), eine Funktionskomponente für Betriebsunterstützungsdienste (OSS, Operational Support Services) und die Datenverarbeitungs-Cloud-Komponente enthalten. Die Identitätsverwaltungseinheit ist dafür zuständig, eine Schnittstelle zu anfragenden Clients zu bieten, um eine Identitätsverwaltung bereitzustellen, und diese Komponente kann mit einem oder mehreren bekannten Systemen umgesetzt werden, wie zum Beispiel der von IBM Corporation aus Armonk, New York erhältliche Tivoli Federated Identity Manager (TFIM). Unter entsprechenden Umständen kann die TFIM zum Bereitstellen von föderiertem Single-Sign-On (F-SSO, federated single sign-on) an andere Cloud-Komponenten verwendet werden. Die Komponente für Betriebsunterstützungsdienste stellt bestimmte administrative Funktionen wie Unterstützung der Rechnungsstellung bereit. Die Komponente für Betriebsunterstützungsdienste wird dazu verwendet, eine Bereitstellung und Verwaltung der anderen Cloud-Komponenten wie zum Beispiel Instanzen virtueller Maschinen (VM) bereitzustellen. Bei einer virtuellen Maschine handelt es sich um ein Betriebssystem oder eine Anwendungsumgebung, die in Software installiert ist, aber eine Hardware-Maschine nachahmt. Die Cloud-Komponente stellt die Hauptdatenverarbeitungsressourcen dar, bei denen es sich üblicherweise um eine Mehrzahl von Instanzen virtueller Maschinen handelt, die dazu verwendet werden, eine Zielanwendung auszuführen, die für einen Zugang über die Cloud zur Verfügung gestellt wird. Eine oder mehrere Datenbanken werden zum Speichern von Verzeichnis-, Protokoll- und anderen Arbeitsdaten verwendet. All diese Komponenten (darunter die Front-End-Identitätsverwaltungseinheit) befinden sich „innerhalb“ der Cloud, wobei dies aber keine Anforderung ist. In einer alternativen Ausführungsform kann die Identitätsverwaltungseinheit extern zu der Cloud betrieben werden. Der Dienstanbieter kann auch außerhalb der Cloud betrieben werden.
  • Einige Clouds beruhen auf nicht-traditionellen IP-Netzwerken. So kann eine Cloud zum Beispiel auf zweistufigen, CLOS-basierten Netzwerken mit speziellem Single-Layer-IP-Routing unter Verwendung von Hashwerten von MAC-Adressen beruhen. Die hierin beschriebenen Techniken können in derartigen nicht-herkömmlichen Clouds verwendet werden.
  • Die meisten heute verfügbaren, auf Cloud beruhenden Dienste werden entweder über Bare-Metal- oder virtuelle Maschinen (VMs) bereitgestellt, es können jedoch auch „Container“-Technologien verwendet werden. Bare-Metal-Umgebungen sind Umgebungen, in denen Anwendungen von einer Basis von dedizierten Cloud-Infrastrukturen und Betriebssystemplattformen aus installiert, ausgeführt und bereitgestellt werden. Derartige Umgebungen verwenden dedizierte und spezifische Hardware- und Betriebssystem-Konfigurationen. Eine virtuelle Maschine hingegen ist ein vollständiger Gast-Host, der innerhalb eines Host-Systems läuft. Bei der Verwendung von virtuellen Maschinen werden Anwendungen installiert, verpackt und ausgeführt, und zwar unter der Steuerung eines Hypervisors, der die Hardwareumgebung virtualisiert. Container hingegen stellen eine Betriebsumgebung bereit, in der lediglich die wesentlichen Teile der Anwendung (manchmal auch als Cloud-Dienste bezeichnet) und deren Abhängigkeiten enthalten sind, und es können mehrere Container innerhalb einer einzelnen Instanz eines Betriebssystems wie zum Beispiel Linux laufen. Docker ist eine Virtualisierungsplattform, die sich einen einzelnen Linux-Kernel mit allen laufenden Instanzen (genannt Container) teilt. Ein einzelner Docker-Container ist schlank, da er auf einem gemeinsam genutzten Kernel läuft, wodurch verfügbare Ressourcen effizient genutzt werden. Container werden von vielen Entwicklern von Cloud-Platform-as-a-Service (PaaS) der nächsten Generation ausgiebig verwendet. So ist zum Beispiel, und ohne Einschränkung, IBM® Bluemix™ eine PaaS-Cloud-Plattform, die IBM Container zum Ausführen von Docker-Containern verwendet. Da ein Docker-Container auf dem vorhandenen Betriebssystem und mit gemeinsam genutzten Binärdateien läuft, ist er kompakter als eine VM; daher ist eine Containerlösung oftmals schneller und hat geringere Speicheranforderungen.
  • 4 veranschaulicht eine übliche IT-Infrastruktur, die eine auf VM beruhende Virtualisierung von Ressourcen unterstützt und in der die nachfolgend beschriebenen Techniken dieser Offenbarung in einer Ausführungsform umgesetzt werden können. Zu Erläuterungszwecken ist das IT-Rechenzentrum, das gemeinsam genutzte (öffentliche) Ressourcen bereitstellt, der „Anbieter“, und ein Kunde oder ein Unternehmen, der/das diese gemeinsam genutzten Ressourcen zum Hosten, Speichern und Verwalten seiner Daten und Anwendungen (in allen Formen) nutzt, ist der „Abonnent“ (oder „Kunde“ oder „Tenant“). In 4 wird eine beispielhafte Hosting-Umgebung für virtuelle Maschinen (hierin abwechselnd als Rechenzentrum oder „Cloud“ bezeichnet) veranschaulicht. Diese Umgebung weist Host-Maschinen (HVs) 402 (z.B. Server oder ähnliche physische Maschinen-Datenverarbeitungseinheiten) auf, die an ein physisches Rechenzentrumsnetzwerk 404 angeschlossen sind, üblicherweise über ein Hypervisor-Verwaltungs-VLAN 406. Wenngleich nicht explizit abgebildet, umfasst die Umgebung üblicherweise auch Einrichtungen für den Lastenausgleich, Netzwerkdaten-Vermittlungseinheiten (z.B. Top-of-Rack-Vermittlungseinheiten), Firewalls und dergleichen. Wie in 4 gezeigt ist, sind die physischen Server 402 jeweils so gestaltet, dass sie eine oder mehrere virtuelle Maschinen (VMs) 408 unter Verwendung von Virtualisierungstechnologie dynamisch bereitstellen. Eine derartige Technologie ist auf dem Markt erhältlich, z.B. von VMware® oder anderen Anbietern. Server-Virtualisierung ist eine Technik, die im Stand der Technik allgemein bekannt ist. Wie dargestellt, können mehrere VMs in einer einzelnen Host-Maschine untergebracht sein und die CPU, den Hauptspeicher und andere Ressourcen der Host-Maschine gemeinsam nutzen, wodurch die Auslastung des Rechenzentrums eines Unternehmens erhöht wird. In dieser Umgebung werden Tenant-Anwendungen 410 in Netzwerk-Appliances 412 per Hosting zur Verfügung gestellt, und Tenant-Daten werden in Datenspeichern und Datenbanken 414 gespeichert. Die Anwendungen und Datenspeicher sind mit dem physischen Rechenzentrumsnetzwerk 404 verbunden, üblicherweise über ein Netzwerk-Verwaltungs-/Speicher-VLAN 416. Gemeinsam stellen die virtuellen Maschinen, Anwendungen und Tenant-Daten eine für Abonnenten zugängliche virtualisierte Ressourcenverwaltungsdomäne 405 dar. Über diese Domäne können die Mitarbeiter des Abonnenten (unter Verwendung verschiedener rollenabhängiger Berechtigungen) auf virtualisierte Ressourcen, die ihnen von dem Anbieter zugeordnet wurden und die durch eine physische IT-Infrastruktur unterstützt werden, zugreifen und diese verwalten. Der untere Teil der Infrastruktur veranschaulicht eine für den Anbieter zugängliche Verwaltungsdomäne 415. Diese Domäne weist ein Anbieter-Mitarbeiter-Verwaltungsportal 418, die BSS/OSS-Verwaltungsfunktionen 420, verschiedene Identitäts- und Zugriffsverwaltungsfunktionen 422, einen Sicherheitsrichtlinien-Server 424 und Verwaltungsfunktionen 426 zum Verwalten der Server-Images 428 auf. Diese Funktionen sind über ein Management-VLAN 430 mit dem physischen Rechenzentrumsnetzwerk verbunden. Die Mitarbeiter des Anbieters verfügen über spezielle Berechtigungen (und vielleicht über spezifische Clients/Netzwerke), von denen aus sie Zugriff auf die Betriebs- und Geschäftsunterstützungsdienste (OSS/BSS, Operational and Business Support Services) haben, die sie zum Verwalten der IT-Rechenzentrumsinfrastruktur (z.B. Hardware- und Softwareinstallationen, Konfigurationen, Überwachung, technische Unterstützung, Abrechnung und dergleichen) verwenden.
  • Verallgemeinernd sieht die Cloud-Computing-Infrastruktur eine auf virtuellen Maschinen oder Containern beruhende Hosting-Umgebung vor, die über ein Netzwerk verbundene Host-Maschinen (z.B. Server oder ähnliche physische Maschinen-Datenverarbeitungseinheiten) und ein oder mehrere Verwaltungsserver aufweist. Üblicherweise sind die physischen Server jeweils so gestaltet, dass sie eine oder mehrere virtuelle Maschinen oder Container unter Verwendung von Virtualisierungstechnologie wie zum Beispiel VMware ESX/ESXi oder Docker dynamisch bereitstellen.
  • In einer nicht einschränkenden Umsetzung sind repräsentative Plattformtechnologien ohne Einschränkung IBM System x® Server mit VMware vSphere 4.1 Update 1 und 5.0.
  • Es ist im Stand der Technik auch bekannt, Cloud-Architekturen wie zum Beispiel die vorstehend beschriebene so zu konfigurieren oder bereitzustellen, dass sie Mechanismen und Systeme umfassen, die allgemein betrieben werden, um Informationen über verfügbare Cloud-Plattformen, Topologien und Funktionen zu sammeln (oder anderweitig von anderen Datenquellen zu erhalten). Üblicherweise kann Cloud-Sicherheit mit verschiedenen Techniken umgesetzt und durchgesetzt werden, die ohne Einschränkung darauf virtuelle Perimeternetze (DMZs), Netzwerkaufteilung, Speicherisolierung, einen Einsatz von Abwehrsystemen gegen Angriffe von außen (IPS, Intrusion Prevention System), einen Einsatz von Sicherheitsinformationen und Ereignisverwaltung (SIEM, Security Information and Event Management), umgekehrte Proxies, Firewalls, SSL-Datenübertragung, Konfiguration mit vorhandener SIEM, Mehrfaktor-Identitätsnachweis, risikobasierten Identitätsnachweis und andere umfassen.
  • Cloud-Anwendungspakete können unter Verwendung einer Platform-as-a-Service- (PaaS-) Infrastruktur wie zum Beispiel die offene Cloud-Management-Plattform IBM® Cloud (auch bekannt als SmartCloud® Orchestrator) oder IBM® Bluemix ™ bereitgestellt werden. Die Cloud-Computing-Umgebung kann auch verschiedene Einsatz- und Verwaltungs-Tools umfassen. Zum Beispiel enthält IBM Cloud den IBM® Cloud Manager mit OpenStack. Der Cloud Manager ist ein Selbstbedienungsportal für eine vereinfachte Cloud-Verwaltung für den Cloud-Endbenutzer. Der Cloud Manager mit OpenStack ermöglicht es dem Benutzer, mit virtuellen Appliances und Arbeitslasten zu arbeiten, wobei der Fokus auf den Blickwinkel des Endbenutzers und nicht auf den Blickwinkel des IT- oder Systemadministrators gelegt wird. Selbstbedienungsfunktionen vereinfachen den Prozess des Ausführens vieler gängiger öffentlicher oder privater Cloud-Arbeitsschritte wie zum Beispiel das Vorsehen und Entziehen von Servern (ein Prozess, der als Bereitstellen (deploying) bekannt ist), das Entwerfen und Klonen von Bereitstellungen, das Erstellen von Bereitstellungs-Momentaufnahmen, das Hochfahren und Herunterfahren von Servern und das Ändern der Größe von bestehenden Server.
  • Schützen von verwendeten Daten durch sichere Enklaven
  • Nachfolgend werden zusätzliche Einzelheiten zum Hintergrund des Gegenstands dieser Offenbarung bereitgestellt.
  • Digitale Daten werden manchmal als in einer von drei Phasen befindlich beschrieben: verwendete Daten, bewegte Daten und ruhende Daten. Verwendete Daten beziehen sich auf Daten in Computerhauptspeicher. Aufgrund ihrer Art sind verwendete Daten für Unternehmen, Regierungsbehörden und andere Institutionen von zunehmender Bedeutung.
  • Insbesondere enthalten verwendete Daten (d.h. in dem Hauptspeicher) häufig sensible Daten, darunter, ohne Einschränkung darauf, digitale Zertifikate, Verschlüsselungsschlüssel, geistiges Eigentum (Software-Algorithmen, Konstruktionsdaten) und personenbezogene Daten. So ermöglicht das Kompromittieren von verwendeten Daten einen Zugriff auf verschlüsselte ruhende Daten und bewegte Daten.
  • Verwendete Daten werden üblicherweise häufig auf eine von mehreren Arten geschützt. Verschlüsselung, welche die Sichtbarkeit von Daten im Falle eines unbefugten Zugriffs oder Diebstahls verhindert, wird häufig zum Schutz von bewegten Daten und ruhenden Daten verwendet und wird zunehmend auch als bevorzugtes Verfahren zum Schützen von verwendeten Daten anerkannt. Zu diesem Zweck gab es mehrere Projekte, die Lösungen zum Verschlüsseln von Hauptspeicher vorschlagen oder bereitstellen. So ist es zum Beispiel bekannt, Hauptspeicher so zu verschlüsseln, dass lediglich das Programm des Benutzers darauf zugreifen kann; dies wird über einen Schlüssel erreicht, der an einem speziellen Hardware-Ort auf der Prozessorseite platziert wird und der bei jedem Lese- oder Schreibvorgang in einem Hauptspeicher zum Entschlüsseln oder Verschlüsseln der Daten verwendet werden kann. Ein anderer Ansatz zum Schützen von verwendeten Daten ist CPUbasierte Schlüsselspeicherung. Bei diesem Ansatz ändern Betriebssystem-Kernel-Patches das Betriebssystem derart, dass CPU-Register zum Speichern von Verschlüsselungsschlüsseln verwendet werden, anstatt Verschlüsselungsschlüssel in RAM zu behalten. Insbesondere werden die Schlüssel innerhalb der CPU und nicht in RAM behalten, damit Verschlüsselungsschlüssel für ruhende Daten vor Angriffen geschützt sind, die andernfalls die Verschlüsselungsschlüssel in dem Hauptspeicher gefährden könnten.
  • Noch ein anderer Ansatz zum Schützen von verwendeten Daten ist eine „Enklave“, wobei es sich um private Bereiche in einem Hauptspeicher handelt. Enklaven-Daten sind verschlüsselt, während sie sich in RAM befinden, sind aber als Klartext innerhalb der CPU und des CPU-Caches verfügbar. Ein Enklaven-Ansatz unterscheidet sich von einer einfachen Speicherverschlüsselung dadurch, dass er spezielle Register und Schaltkreise verwendet, die zwischen der Hauptspeichereinheit und dem Prozessor sitzen und die den für das Entschlüsseln/Verschlüsseln der Daten aus dem/in den Hauptspeicher notwendigen Schlüssel enthalten, und vorzugsweise wird der Schlüssel an keinem anderen Ort (einschließlich des Betriebssystems) gespeichert. Spezielle atomare Anweisungen stellen sicher, dass diese Register der einzige Ort sind, an dem der Schlüssel gespeichert ist. Zu im Handel erhältlichen Beispielen für diesen Ansatz gehören Intel Software Guard Extensions (SGX), IBM Power9 SMF und die früheren IBM SecureBlue++-Architekturen. Bei SGX handelt es sich zum Beispiel um einen Satz von Anweisungen, der es dem Code auf Benutzerebene ermöglicht, eine Enklave zuzuordnen, die im Gegensatz zum normalen Prozess-Hauptspeicher auch vor Prozessen geschützt ist, die auf höheren Berechtigungsstufen laufen. In einer üblichen Lösung dieser Art enthält ein „sicherer“ Prozessor einen CPU-Kern, in dem sichere ausführbare Programme und Daten im Klartext sichtbar sind, aber nur dann, wenn der Kern das sichere ausführbare Programm ausführt. Vor einer derartigen Ausführung werden der sichere ausführbare Code und die Daten (zusammen ein sicheres Objekt) in einem zugehörigen externen Speicher in einer verschlüsselten Form gespeichert, so dass der Code und die Daten für andere Software oder andere derartige sichere Objekte nicht sichtbar sind. Der sichere ausführbare Code und die Daten sind ebenfalls nicht sichtbar, da sie von dem Hauptspeicher zu dem CPU-Kern übertragen werden. Ein Verschlüsselungsschlüssel für das sichere Objekt wird erzeugt oder einem Verwaltungsmodul bereitgestellt, und das sichere Objekt wird anhand dieses Verschlüsselungsschlüssels verschlüsselt. Zur Laufzeit werden verschiedene Steuerungstechniken verwendet, um das Entschlüsseln von sensiblen Daten des sicheren Objekts auf dem Weg von dem externen Speicher zu der CPU und dem verschlüsselten Weg von der CPU zu dem externen Speicher zu ermöglichen. Weitere Einzelheiten zu diesem Prozess finden sich zum Beispiel in den U.S. Patenten Nr. 8 578 175 und 8 954 752 , deren Offenbarungen durch Bezugnahme in das vorliegende Dokument aufgenommen werden.
  • Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung für Cloud-Systeme
  • Mit dem oben genannten Hintergrund werden nun die Techniken dieser Offenbarung beschrieben. Wie ersichtlich sein wird, nutzen die Techniken hierin Entwicklungen in Datenübertragungsnetzwerken, die als softwaredefinierte Netzwerke (SDN, Software Defined Networks) und Netzwerkfunktionsvirtualisierung (NFV, Network Function Virtualization) bekannt sind. SDN und NFV nutzen IT-Cloud-Architekturen, um die Datenübertragungshardware von der Software zu trennen und brechen damit mit dem herkömmlichen Architekturmodell von Netzwerkgeräten, bei dem die Netzwerkfunktion als eine Appliance implementiert wird, die sowohl Hardware als auch Software zum Beispiel von einem Anbieter aufweist. Anstelle einer einzelnen Netzwerk-Appliance wird bei SDN und NFV die Vermittlungshardware standardisiert, und die Netzwerk-Software wird getrennt, virtualisiert und in der Cloud bereitgestellt, wodurch Kosten gesenkt werden und Netzwerkfunktionen schneller und einfacher einzusetzen sowie dynamisch abzuändern und zu skalieren sind.
  • Gemäß dieser Offenbarung werden eine sichere prozessorbasierte Enklave und ein zugehöriger hauptspeicherinterner Schutz verwendet, um eine oder mehrere softwaredefinierte Steuerfunktionen oder -elemente in einer Cloud-Umgebung wie zum Beispiel einer hyperkonvergenten Cloud zu schützen. Die softwaredefinierte Funktion kann von unterschiedlicher Art sein, z.B. eine Netzwerkfunktion, eine Speicherfunktion, eine Leistungsfunktion, eine Orchestrierungsfunktion und so weiter.
  • In einer bevorzugten Ausführungsform, die nun beschrieben wird, handelt es sich bei der softwaredefinierten Funktion um eine Netzwerkfunktion und insbesondere eine Steuerungsebene. Beim Weiterleiten ist eine Steuerungsebene in der Lage, eine Netzwerktopologie zu ermitteln und eine Weiterleitungstabelle zu erstellen und zu pflegen, die festlegt, wie Pakete weiterzuleiten sind. Eine Weiterleitungstabelle enthält üblicherweise eine Liste von Zieladressen und ausgehenden Schnittstellen, die diesen Adressen zugehörig sind. Zu Steuerungsebenen-Funktionen gehören das Verwalten von Weiterleitungsprotokollen, das Festlegen unterschiedlicher Dienstgüte (QoS, Quality of Service) und so weiter. Die Steuerungsebene wird von der Daten- (oder Weiterleitungs-) Ebene unterschieden, die üblicherweise verteilt ist und die zum Weiterleiten von Netzwerkverkehr entlang eines oder mehrerer Pfade zu Zielen gemäß den von der Steuerungsebene in der Weiterleitungstabelle bereitgestellten Informationen verwendet wird. In einigen Weiterleitungsarchitekturen verfügt die Datenebene über eine eigene Datenbank, die mit der von der Steuerungsebene bereitgestellten Weiterleitungstabelle gefüllt wird. Die Datenebene hat die eigentliche Verantwortung für das Empfangen und Verarbeiten der Datenpakete.
  • Der Ansatz hier ist es, Steuerungsebenen-Funktionen für eine Netzwerkfunktionsvirtualisierung (NFV) vorzusehen, die nicht an spezialisierte Hardware gebunden sind, sondern stattdessen als redundante, hochverfügbare virtualisierte oder containerisierte Elemente dienen. Diese können aus grundlegenden Funktionen der Weiterleitungs-/Vermittlungssteuerungsebene, aus einem Lastenausgleich, einer Firewall und/oder komplexeren Netzwerkfunktionen auf höherer Ebene wie zum Beispiel Firewalls der nächsten Generation, bestehen.
  • 5 zeigt ein grundlegendes Umsetzungsszenario. In dieser Ausführungsform ist die Cloud-Infrastruktur 500 eine hyperkonvergente Cloud, die mehrere Datenverarbeitungsknoten 502 aufweist. Die Datenverarbeitungsknoten können auf virtuellen Maschinen, auf Containern oder sogar auf Bare-Metal umgesetzt sein, wie vorstehend beschrieben. Gemäß dieser Offenbarung werden eine oder mehrere sichere Enklaven 504 innerhalb der Umgebung auf eine bekannte Weise instanziiert. Somit, und wie beschrieben, kann die sichere Enklave unter Verwendung von sicheren, prozessorbasierten, hauptspeicherinternen Sicherheitsmechanismen für verwendete Daten umgesetzt werden. Wie ebenfalls abgebildet ist, wird eine Steuerungsebene wie zum Beispiel ein auf NFV beruhendes Steuerungsebenen-Element 506 innerhalb der sicheren Enklave 504, die auf einem Datenverarbeitungsknoten 502a umgesetzt ist, per Hosting zur Verfügung gestellt. In dieser Ausführungsform wird die Steuerungsebene 506 per Hosting zur Verfügung gestellt und ist somit innerhalb der sicheren Enklave isoliert, die ihrerseits entweder innerhalb einer VM oder innerhalb eines Container instanziiert ist. Der Steuerungsebene 506 ist eine Datenebene 508 zugehörig, deren Elemente vorzugsweise (als eine verteilte Netzwerkdatenebene) über einen oder mehrere Datenverarbeitungsknoten verteilt sind. Somit, und wie abgebildet, weist die Datenebene 508 einen Teil auf, der auf dem Datenverarbeitungsknoten 502a unterstützt wird, der die virtualisierte oder containerisierte sichere Enklave unterstützt, welche die Steuerungsebene per Hosting zur Verfügung stellt, sowie andere Teile, die auf den anderen Datenverarbeitungsknoten 502b und 502c unterstützt werden. Vorzugsweise wird der Teil der Datenebene, der auf dem Datenverarbeitungsknoten 502a unterstützt wird, nicht innerhalb der sicheren Enklave ausgeführt, welche die Steuerungsebene per Hosting zur Verfügung stellt.
  • Verbindungsmöglichkeiten 510 werden zwischen der Steuerungsebene 506 in der sicheren Enklave 504 und den verschiedenen Datenebenen-Elementen bereitgestellt, die sich außerhalb der sicheren Enklave befinden. In einer bevorzugten Ausführungsform werden die Verbindungsmöglichkeiten 510 über eine oder mehrere Schnittstellen zur Anwendungsprogrammierung (APIs) bereitgestellt. Vorzugsweise handelt es sich bei mindestens einer derartigen API um eine extern bereitgestellte API, so dass andere Netzwerk- und Sicherheitsfunktionen zum Teil über die innerhalb der Enklave gesicherte Steuerungsebene verwaltet oder gesteuert werden können. Im Betrieb stellt die auf NFV beruhende Steuerungsebene 506 der verteilten Datenebene über diese Schnittstellen die Steuerungs- und Konfigurationsinformationen (z.B. die Weiterleitungstabelle(n)) bereit.
  • Auch wenn 5 das Steuerungsebenen-Element (die softwaredefinierte Funktion) darstellt, das innerhalb der sicheren Enklave 504 per Hosting zur Verfügung gestellt wird, die innerhalb einer virtuellen Maschine oder eines Containers instanziiert ist, besteht ein alternativer Ansatz darin, die softwaredefinierte Funktion als virtuelle Maschine oder Container innerhalb der sicheren Enklave zu instanziieren.
  • Somit wird gemäß dieser Offenbarung die Steuerungsebene unter Verwendung von hauptspeicherinternem Arbeitslastschutz sicher per Hosting zur Verfügung gestellt, um sowohl Integrität zum Ladezeitpunkt sicherzustellen als auch um in Echtzeit gegen eine Beeinträchtigung (der Steuerungsebene) zu versichern, z.B. durch privilegierte Angreifer oder andere Systemprozesse, die bösartig sein können. Zu nicht einschränkenden Beispielen für sichere Speichertechnologie, die diesen Schutz für die Steuerungsebenen-Funktion(en) bereitstellen kann, gehören Intel SGX und/oder IBM Power9 SMF, die, wie oben angemerkt, darauf ausgelegt sind, sensible Arbeitslasten vor dieser Klasse von Angriffen zu schützen. Wie ebenfalls angemerkt, kann die sichere Enklave, die in dieser Klasse von sicherer Prozessortechnologie bereitgestellt wird, die Form von virtuellen Maschinen oder Containern wie zum Beispiel Docker-Containern annehmen. Durch Bereitstellen der Steuerungsebene per Hosting auf diese Weise wird ein hauptspeicherinterner Schutz auf ein oder mehrere Netzwerkfunktionsvirtualisierungs- (NFV-) Elemente für ein hyperkonvergentes softwaredefiniertes Netzwerk (SDN) angewendet. Die geschützte Hauptspeicher-Enklave kann sich auch die kryptografische Integritätsprüfung während der Ladezeit zu Nutze machen, die von den vertrauenswürdigen Datenverarbeitungsgrundfunktionen wie zum Beispiel Intel TXT und Power Secure Boot bereitgestellt werden. In einer repräsentativen, aber nicht einschränkenden Ausführungsform umfassen repräsentative NFV-Funktionen, die auf diese Weise geschützt werden, eine grundlegende Layer-2- oder Layer-3-Weiterleitung und/oder -Vermittlung, Firewall-Funktionen und einen Lastenausgleich.
  • Vorzugsweise nimmt die sichere Enklave die Form eines Containers oder einer virtuellen Maschine mit einem begrenzten Einheitenbaum an, um interne Angriffsflächen zu minimieren. Zu diesem Zweck weist die Cloud-Computing-Umgebung eine Partition auf Client- (Tenant-) Ebene auf. Bei der Client-Partition handelt es sich um eine Partition, in welcher der Client/Tenant über bekannte Mechanismen, z.B. Einloggen mit einem Passwort über SSL, ausschließlich einen sicheren Zugriff hat. Zusätzlich wird dann eine separate Speicherpartition als sichere Enklave eingerichtet, und die Steuerungsebene (oder Elemente davon) wird innerhalb dieser letzteren Partition platziert (oder auf diese heruntergeladen). Nach der Initialisierung (z.B. über einen sicheren Hochfahrprozess) ist die Partition, welche die Steuerungsebene per Hosting zur Verfügung stellt, für die Client-Partition vorzugsweise lediglich über eine Client-Schnittstelle zur Anwendungsprogrammierung (API) zugänglich. Anders ausgedrückt, vorzugsweise können Befehle und Daten nur über die Client-API zwischen dem Client und der Steuerungsebene ausgetauscht werden. Bei diesem Ansatz arbeitet die API vorzugsweise in einem gemeinsam genutzten Speicherbereich, auf den sowohl die Client-Partition als auch die Partition, welche die Steuerungsebene per Hosting zur Verfügung stellt, zugreifen können.
  • 6 zeigt ein beispielhaftes, auf VM beruhendes SDN, das gemäß den Techniken dieser Offenbarung umgesetzt ist. Dieses Beispiel wird unter Verwendung von IBM Softwaredefinierter Netzbetrieb für virtuelle Umgebungen (SDN VE, Software Defined Network for Virtual Environments) umgesetzt, einer Netz-Overlay-Lösung, die ein vollständiges Rahmenwerk für das Umsetzen von Netzvirtualisierung bietet. Bei SDN VE handelt es sich um eine serverorientierte Multi-Hypervisor-Lösung, die mehrere Komponenten aufweist, die virtuelle Netzwerke auf jedes beliebige physische Netzwerk überlagern, das IP-Verbindungsmöglichkeiten bereitstellt. Wie abgebildet, besteht die SDN VE Lösung 600 aus vier grundlegenden Softwarekomponenten, die zusammenarbeiten, um eine effektive hostbasierte Netzvirtualisierung bereitzustellen. Bei einer virtuellen SDN VE Vermittlungseinheit 602 handelt es sich um Software, die sich in dem Hypervisor 604 befindet. Sie dient als Start- und Endpunkt jedes virtuellen Netzwerks, und es sind mehrere derartige Netzwerke 601, 603 und 605 gezeigt. Die virtuelle SDN VE Vermittlungseinheit stellt Layer-2- und Layer-3-Netzvirtualisierung über ein UDP-Overlay bereit und implementiert den Datenpfad des virtuellen Netzwerks. Die virtuelle Vermittlungseinheit führt auch Steuerungsebenen-Funktionen durch, um eine automatische Adressermittlung von virtuellen Maschinen (VM), eine Migration von VMs und eine Konfiguration von Netzwerkrichtlinien zu unterstützen. Gemäß dieser Offenbarung werden eine oder mehrere dieser Steuerungsebenen-Funktionen innerhalb einer sicheren Enklave auf die vorstehend beschriebene Weise per Hosting zur Verfügung gestellt. Ein Verbindungsdienst 606 verbreitet VM-Adressen an die virtuellen Vermittlungseinheiten, die an einem virtuellen SDN VE Netzwerk teilnehmen. Die Verbindungsdienst-Software wird vorzugsweise als ein Cluster von virtuellen Appliances bereitgestellt. Eine Verwaltungskonsole 608 ist ein zentraler Steuerungspunkt zum Konfigurieren der SDN VE. Sie konfiguriert jedes virtuelle Netzwerk, steuert Richtlinien und verbreitet Richtlinien an die virtuellen Vermittlungseinheiten. Sie hilft auch Administratoren beim Verwalten einzelner virtueller Netzwerke. Vorzugsweise befindet sich die Verwaltungskonsolen-Software auf einem Server als virtuelle Appliance. Schließlich ermöglichen VLAN- und IP-basierte Gateways 610 dem SDN VE eine Dialogfähigkeit mit Netzwerken und Servern herzustellen, die sich außerhalb der SDN VE Umgebung befinden. Für Layer-2-Netzwerke stellt SDN VE VLAN-basierte Gateways bereit. Für Layer-3-Netzwerke stellt die Software IP-basierte Gateways bereit.
  • Es gibt zwei (2) Architekturmodelle für SDN, Overlay und nativ. Bei einem Overlay-SDN wird das SDN über einem bestehenden IP-Netzwerk bereitgestellt. Bei einem Openflow-SDN werden die Router-Appliances durch Layer-2-Datenweiterleitungs-Vermittlungseinheiten und Netzwerksteuerungssoftware ersetzt, die z.B. unter Verwendung eines OpenFlow-Datenübertragungsprotokolls auf die Layer-2-Vermittlungseinheiten zugreifen.
  • Wie ebenfalls oben angemerkt, kann das SDN anstelle des Ansatzes mit virtuellen Maschinen unter Verwendung von Docker-Containern umgesetzt werden.
  • Die Technik dieser Offenbarung - bei der die Steuerungsebene von der Datenebene getrennt und in einer sicheren Enklave per Hosting zur Verfügung gestellt wird und bei der APIs geschaffen wurden, um einen eingeschränkten Datenaustausch zwischen den beiden zu ermöglichen - stellt erhebliche Vorteile bereit. Wie beschrieben wurde, verwendet der Ansatz hierin einen fortschrittlichen, in Hardware verwurzelten, hauptspeicherinternen Arbeitslastschutz für eine oder mehrere Steuerungsebenen-Funktionen, um sowohl Integrität zum Ladezeitpunkt sicherzustellen als auch in Echtzeit gegen eine Beeinträchtigung durch privilegierte Angreifer oder Systemprozesse zu versichern. Dementsprechend ist ein Prozess auf Systemebene oder ein bevorzugter Benutzer (root user) in einem Hypervisor oder Betriebssystem nicht in der Lage, den Inhalt des Hauptspeichers zu lesen und zu ändern, wodurch die kritischen Steuerungsebenen-Elemente geschützt werden. Der Ansatz hierin des Absicherns der Steuerungsebene innerhalb einer sicheren Enklave in einem sicheren Prozessor verhindert somit systemweite Ausfälle oder beeinträchtigende Ereignisse, die andernfalls (z.B. durch einen Angreifer) aufgrund des hohen Grades an Systemfunktionsvirtualisierung erwirkt werden könnten. Wie angemerkt, nutzt der Ansatz auf bequeme Weise sichere CPU-Technologien, welche die Vertraulichkeit und Integrität des Kontrollebenen-Elements bzw. der Kontrollebenen-Elemente und Daten (z.B. der Weiterleitungstabelle) nicht nur vor physischen Angriffen, sondern auch vor all der anderen Software auf Teilen des Systems, darunter privilegierte Software, sowie vor Malware schützen, die ansonsten privilegierte Software infizieren könnte, um Root-Berechtigung zu erlangen. Darüber hinaus wird es Netzwerk-Drittanbietern ermöglicht, zusätzliche Netzwerk- und Sicherheitsfunktionen mit Mehrwert bereitzustellen, da die APIs, die zum Bereitstellen von Verbindungsmöglichkeiten zwischen den NFV-Steuerungsebenen-Funktionen und der verteilten Datenebene erforderlich sind, extern bereitgestellt werden. Die hier beschriebene sichere Enklaven-Architektur ermöglicht es diesen Partnern, zusätzlich zu den systemeigenen Diensten eine Absicherung von Integrität ihrer Mehrwertdienste zu erlangen.
  • Obwohl der hierin beschriebene Ansatz in erster Linie im Zusammenhang mit NFV beschrieben wurde, stellt dies keine Einschränkung dar, da der Ansatz des Verwendens einer sicheren Enklave zum Bereitstellen einer softwaredefinierten Funktion per Hosting auf andere Steuerungsfunktionen ausgedehnt werden kann, darunter Speicherverwaltung, Energieverwaltung, Orchestrierung von virtuellen Maschinen und Containern sowie Kombinationen davon.
  • Allgemeiner handelt es sich bei Datenverarbeitungseinheiten innerhalb des Kontexts des offenbarten Gegenstands jeweils um ein Datenverarbeitungssystem, das Hardware und Software aufweist, und diese Einheiten tauschen über ein Netzwerk wie das Internet, ein Intranet, ein Extranet, ein privates Netzwerk oder jedes beliebige andere Datenübertragungsmedium bzw. jede beliebige andere Datenübertragungsverbindung Daten miteinander aus. Die Anwendungen auf dem Datenverarbeitungssystem stellen native Unterstützung für Web- und andere bekannte Dienste und Protokolle bereit, darunter unter anderem, und ohne Einschränkung, Unterstützung für HTTP, FTP, SMTP, SOAP, XML, WSDL, UDDI sowie WSFL. Informationen bezüglich SOAP, WSDL, UDDI und WSFL sind von dem World Wide Web Consortium (W3C) erhältlich, das für das Entwickeln und Pflegen dieser Standards zuständig ist; weitere Informationen bezüglich HTTP, FTP, SMTP und XML sind von der Internet Engineering Task Force (IETF) erhältlich. Vertrautheit mit diesen bekannten Standards und Protokollen wird vorausgesetzt.
  • Die hierin beschriebenen Techniken können in oder in Verbindung mit verschiedenen Rechenzentrumsarchitekturen umgesetzt werden, darunter einfache n-Ebenen-Architekturen, Web-Portale, Systeme föderierter Datenbanken und dergleichen. Das hierin Vorgestellte kann auch in einer lose gekoppelten Serverumgebung (darunter eine auf „Cloud“ beruhende) praktiziert werden, sei sie privat, öffentlich oder hybrid.
  • Noch allgemeiner kann der hierin beschriebene Gegenstand als vollständige Hardware-Ausführungsform, als vollständige Software-Ausführungsform oder als Ausführungsform, die sowohl Hardware- als auch Software-Elemente enthält, ausgeführt werden. In einer bevorzugten Ausführungsform ist die Trusted-Platform-Module-Funktion als Software realisiert, darunter Firmware, im Arbeitsspeicher befindliche Software, Mikrocode und dergleichen, aber nicht darauf beschränkt. Des Weiteren können die Schnittstellen und Funktionalität zum Herunterladen und Löschen die Form eines Computerprogrammprodukts annehmen, auf das von einem durch einen Computer verwendbaren bzw. durch einen Computer lesbaren Medium zugegriffen werden kann, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder jedem beliebigen Anweisungsausführungssystem bereitstellt. Für diese Beschreibung kann ein durch einen Computer verwendbares bzw. durch einen Computer lesbares Medium jede beliebige Vorrichtung sein, die das Programm, das von oder in Verbindung mit dem Anweisungsausführungssystem, der Vorrichtung oder der Einheit verwendet wird, enthalten oder speichern kann. Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem (bzw. eine derartige Vorrichtung oder Einheit) handeln. Zu Beispielen für ein durch einen Computer lesbares Medium zählen ein Halbleiter- oder Festkörperspeicher, Magnetband, eine auswechselbare Computerdiskette, Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Platte. Zu aktuellen Beispielen optischer Platten gehören ein Kompaktdisk-Nur-Lese-Speicher (CD-ROM), eine Lesen/Schreiben-Kompaktdisk (CD-R/W) und eine DVD. Bei dem durch einen Computer lesbaren Medium handelt es sich um ein physisches, nichtflüchtiges Element.
  • Das Computerprogrammprodukt kann ein Produkt sein, das Programmanweisungen (bzw. Programmcode) zum Umsetzen einer oder mehrerer der beschriebenen Funktionen aufweist. Diese Anweisungen bzw. dieser Code können in einem nichtflüchtigen, durch einen Computer lesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert werden, nachdem sie bzw. er über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen wurde(n). Oder diese Anweisungen bzw. dieser Code können in einem durch einen Computer lesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert und so gestaltet sein, dass sie über ein Netzwerk auf ein fernes Datenverarbeitungssystem heruntergeladen werden können, um in einem durch einen Computer lesbaren Speichermedium innerhalb des fernen Systems verwendet zu werden.
  • In einer repräsentativen Ausführungsform ist die Sicherheitsverwaltungseinheit in einer Spezial-Datenverarbeitungsplattform umgesetzt, vorzugsweise in durch einen oder mehrere Prozessoren ausgeführter Software. Die Software wird in einem oder mehreren Datenspeichern oder Hauptspeichern, die dem einen bzw. den mehreren Prozessoren zugehörig sind, aufbewahrt, und die Software kann als ein oder mehrere Computerprogramme umgesetzt werden. Insgesamt weist diese Spezial-Hardware und -Software die vorstehend beschriebene Funktionalität auf.
  • Während das Vorstehende eine bestimmte Reihenfolge von Arbeitsschritten beschreibt, die durch bestimmte Ausführungsformen der Erfindung durchgeführt werden, sollte klar sein, dass eine derartige Reihenfolge beispielhaft ist, da alternative Ausführungsformen die Arbeitsschritte in einer anderen Reihenfolge durchführen, bestimmte Arbeitsschritte kombinieren, sich bestimmte Arbeitsschritte überschneiden können oder dergleichen.
  • Verweise in der Beschreibung auf eine bestimmte Ausführungsform geben an, dass die beschriebene Ausführungsform eine bestimmte Funktion, Struktur oder Eigenschaft enthalten kann, wobei aber nicht jede Ausführungsform die bestimmte Funktion, Struktur oder Eigenschaft unbedingt enthalten muss.
  • Schließlich wird ein Fachmann verstehen, dass, obwohl bestimmte Komponenten des Systems separat beschrieben wurden, einige der Funktionen in bestimmten Anweisungen, Programmfolgen, Codeteilen und dergleichen kombiniert oder gemeinsam genutzt werden können.
  • Die hierin vorgestellten Techniken sehen im Allgemeinen die vorstehend beschriebenen Verbesserungen einer Technologie oder eines technischen Bereichs sowie die spezifischen technologischen Verbesserungen von Arbeitslast-Verwaltungssystemen vor, wie sie vorstehend beschrieben wurden.
  • Nachdem wir unsere Erfindung beschrieben haben, lauten unsere Ansprüche wie folgt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8578175 [0057]
    • US 8954752 [0057]

Claims (24)

  1. Verfahren zum Schützen von Informationen in einer sicheren, prozessorbasierten Cloud-Computing-Umgebung, aufweisend Instanziieren einer sicheren Enklave innerhalb der sicheren, prozessorbasierten Cloud-Computing-Umgebung; Bereitstellen einer Steuerungsebene einer softwaredefinierten Funktion innerhalb der sicheren Enklave per Hosting, so dass die Steuerungsebene geschützt wird vor einem oder mehreren Prozessen, die mit einer hohen Berechtigungsstufe innerhalb der Cloud-Computing-Umgebung laufen, wobei der Steuerungsebene eine Datenebene zugehörig ist, die sich außerhalb der sicheren Enklave befindet; Bereitstellen von Verbindungsmöglichkeiten zwischen der Steuerungsebene innerhalb der sicheren Enklave und der Datenebene, die sich außerhalb der sicheren Enklave befindet; und Ausführen der Steuerungsebene der softwaredefinierten Funktion von innerhalb der sicheren Enklave.
  2. Verfahren nach Anspruch 1, wobei die sichere Enklave entweder in einer virtuellen Maschine oder in einem Container instanziiert ist.
  3. Verfahren nach Anspruch 1, wobei die softwaredefinierte Funktion als eine virtuelle Maschine oder ein Container innerhalb der sicheren Enklave instanziiert ist.
  4. Verfahren nach Anspruch 1, wobei es sich bei der softwaredefinierten Funktion um eine virtuelle Funktion handelt, die entweder eine Netzwerkfunktion, eine Speicherfunktion, eine Leistungsfunktion oder eine Orchestrierungsfunktion für virtuelle Maschinen und Container ist.
  5. Verfahren nach Anspruch 4, wobei die Netzwerkfunktion entweder ein Leitwegrechner, eine Vermittlungseinheit, eine Firewall oder eine Einrichtung für den Lastenausgleich ist.
  6. Verfahren nach Anspruch 1, darüber hinaus umfassend ein Überprüfen der Integrität der sicheren Enklave zu einem Ladezeitpunkt der Steuerungsebene der softwaredefinierten Funktion.
  7. Verfahren nach Anspruch 1, wobei die Verbindungsmöglichkeiten über eine extern bereitgestellte Schnittstelle zur Anwendungsprogrammierung (API) bereitgestellt wird.
  8. Verfahren nach Anspruch 7, wobei von der Steuerungsebene der softwaredefinierten Funktion erzeugte Steuerungsdaten eine Weiterleitungstabelle enthalten, die über die API an die Datenebene weitergeleitet wird, um eine sichere Netzwerkfunktionsvirtualisierung (NFV) in einem softwaredefinierten Netzwerk (SDN) zu ermöglichen.
  9. Vorrichtung zum Schützen von Informationen in einer sicheren, prozessorbasierten Cloud-Computing-Umgebung, aufweisend: einen oder mehrere Hardware-Prozessoren; Computerhauptspeicher, in dem durch die Hardware-Prozessoren ausgeführte Computerprogrammanweisungen gespeichert sind, und der konfiguriert ist zum: Instanziieren einer sicheren Enklave innerhalb der sicheren, prozessorbasierten Cloud-Computing-Umgebung; Bereitstellen einer Steuerungsebene einer softwaredefinierten Funktion innerhalb der sicheren Enklave per Hosting, so dass die Steuerungsebene geschützt wird vor Prozessen, die mit einer hohen Berechtigungsstufe innerhalb der Cloud-Computing-Umgebung laufen, wobei der Steuerungsebene eine Datenebene zugehörig ist, die sich außerhalb der sicheren Enklave befindet; Bereitstellen von Verbindungsmöglichkeiten zwischen der Steuerungsebene innerhalb der sicheren Enklave und der Datenebene, die sich außerhalb der sicheren Enklave befindet; und Ausführen der Steuerungsebene der softwaredefinierten Funktion von innerhalb der sicheren Enklave.
  10. Vorrichtung nach Anspruch 9, wobei die sichere Enklave entweder in einer virtuellen Maschine oder in einem Container instanziiert ist.
  11. Vorrichtung nach Anspruch 9, wobei die softwaredefinierte Funktion als eine virtuelle Maschine oder ein Container innerhalb der sicheren Enklave instanziiert ist.
  12. Vorrichtung nach Anspruch 9, wobei es sich bei der softwaredefinierten Funktion um eine virtuelle Funktion handelt, die entweder eine Netzwerkfunktion, eine Speicherfunktion, eine Leistungsfunktion oder eine Orchestrierungsfunktion für virtuelle Maschinen und Container ist.
  13. Vorrichtung nach Anspruch 12, wobei die Netzwerkfunktion entweder ein Leitwegrechner, eine Vermittlungseinheit, eine Firewall oder eine Einrichtung für den Lastenausgleich ist.
  14. Vorrichtung nach Anspruch 9, wobei die Computer-Programmanweisungen darüber hinaus konfiguriert sind zum Überprüfen der Integrität der sicheren Enklave zu einem Ladezeitpunkt der Steuerungsebene der softwaredefinierten Funktion.
  15. Vorrichtung nach Anspruch 9, wobei es sich bei den zum Bereitstellen von Verbindungsmöglichkeiten konfigurierten Computer-Programmanweisungen um eine oder mehrere extern bereitgestellte Schnittstellen zur Anwendungsprogrammierung (APIs) handelt.
  16. Vorrichtung nach Anspruch 15, wobei von der Steuerungsebene der softwaredefinierten Funktion erzeugte Steuerungsdaten eine Weiterleitungstabelle enthalten, die über eine API an die Datenebene weitergeleitet wird, um eine sichere Netzwerkfunktionsvirtualisierung (NFV) in einem softwaredefinierten Netzwerk (SDN) zu ermöglichen.
  17. Computerprogrammprodukt in einem nichtflüchtigen, durch einen Computer lesbaren Medium zur Verwendung in einem Datenverarbeitungssystem zum Schützen von Informationen in einer sicheren, prozessorbasierten Cloud-Computing-Umgebung, wobei in dem Computerprogrammprodukt Computerprogrammanweisungen gespeichert sind, die in dem Datenverarbeitungssystem ausgeführt werden und konfiguriert sind zum: Instanziieren einer sicheren Enklave innerhalb der sicheren, prozessorbasierten Cloud-Computing-Umgebung; Bereitstellen einer Steuerungsebene einer softwaredefinierten Funktion innerhalb der sicheren Enklave per Hosting, so dass die Steuerungsebene geschützt wird vor Prozessen, die mit einer hohen Berechtigungsstufe innerhalb der Cloud-Computing-Umgebung laufen, wobei der Steuerungsebene eine Datenebene zugehörig ist, die sich außerhalb der sicheren Enklave befindet; Bereitstellen von Verbindungsmöglichkeiten zwischen der Steuerungsebene innerhalb der sicheren Enklave und der Datenebene, die sich außerhalb der sicheren Enklave befindet; und Ausführen der Steuerungsebene der softwaredefinierten Funktion von innerhalb der sicheren Enklave.
  18. Computerprogrammprodukt nach Anspruch 17, wobei die sichere Enklave entweder in einer virtuellen Maschine oder in einem Container instanziiert ist.
  19. Computerprogrammprodukt nach Anspruch 17, wobei die softwaredefinierte Funktion als eine virtuelle Maschine oder ein Container innerhalb der sicheren Enklave instanziiert ist.
  20. Computerprogrammprodukt nach Anspruch 17, wobei es sich bei der softwaredefinierten Funktion um eine virtuelle Funktion handelt, die entweder eine Netzwerkfunktion, eine Speicherfunktion, eine Leistungsfunktion oder eine Orchestrierungsfunktion für virtuelle Maschinen und Container ist.
  21. Computerprogrammprodukt nach Anspruch 20, wobei die Netzwerkfunktion entweder ein Leitwegrechner, eine Vermittlungseinheit, eine Firewall oder eine Einrichtung für den Lastenausgleich ist.
  22. Computerprogrammprodukt nach Anspruch 17, wobei die Computer-Programmanweisungen darüber hinaus konfiguriert sind zum Überprüfen der Integrität der sicheren Enklave zu einem Ladezeitpunkt der Steuerungsebene der softwaredefinierten Funktion.
  23. Computerprogrammprodukt nach Anspruch 17, wobei es sich bei den zum Bereitstellen von Verbindungsmöglichkeiten konfigurierten Computer-Programmanweisungen um eine oder mehrere extern bereitgestellte Schnittstellen zur Anwendungsprogrammierung (APIs) handelt.
  24. Computerprogrammprodukt nach Anspruch 23, wobei von der Steuerungsebene der softwaredefinierten Funktion erzeugte Steuerungsdaten eine Weiterleitungstabelle enthalten, die über eine API an die Datenebene weitergeleitet wird, um eine sichere Netzwerkfunktionsvirtualisierung (NFV) in einem softwaredefinierten Netzwerk (SDN) zu ermöglichen.
DE112018004210.3T 2017-10-25 2018-10-18 Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung in Cloud-Systemen Pending DE112018004210T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/793,432 2017-10-25
US15/793,432 US10872145B2 (en) 2017-10-25 2017-10-25 Secure processor-based control plane function virtualization in cloud systems
PCT/EP2018/078626 WO2019081348A1 (en) 2017-10-25 2018-10-18 VIRTUALIZATION OF CONTROL PLANE FUNCTION BASED ON A SECURE PROCESSOR IN CLOUD SYSTEMS

Publications (1)

Publication Number Publication Date
DE112018004210T5 true DE112018004210T5 (de) 2020-04-30

Family

ID=63965665

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018004210.3T Pending DE112018004210T5 (de) 2017-10-25 2018-10-18 Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung in Cloud-Systemen

Country Status (6)

Country Link
US (1) US10872145B2 (de)
JP (1) JP7110339B2 (de)
CN (1) CN111164571B (de)
DE (1) DE112018004210T5 (de)
GB (1) GB2581717A (de)
WO (1) WO2019081348A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126699B2 (en) * 2018-02-07 2021-09-21 Nec Corporation Replica trusted execution environment: enabling seamless replication of trusted execution environment (TEE)-based enclaves in the cloud
US10949238B2 (en) * 2018-12-05 2021-03-16 Vmware, Inc. Decoupling compute and storage resources in cloud-based HCI (hyper-converged infrastructure)
US20200401436A1 (en) * 2019-06-18 2020-12-24 Tmrw Foundation Ip & Holding S. À R.L. System and method to operate 3d applications through positional virtualization technology
US10917288B2 (en) * 2019-06-25 2021-02-09 Bank Of America Corporation Adaptive edge-shift for enterprise contingency operations
JP7327057B2 (ja) * 2019-09-30 2023-08-16 日本電気株式会社 コンテナ制御装置、コンテナ制御方法、およびコンテナ制御プログラム
US11288018B2 (en) * 2020-03-25 2022-03-29 Verizon Patent And Licensing Inc. Method and system for deploying a virtual distributed unit on a network device
US11057274B1 (en) * 2020-04-09 2021-07-06 Verizon Patent And Licensing Inc. Systems and methods for validation of virtualized network functions
US11763015B2 (en) * 2020-07-14 2023-09-19 Sympatic, Inc. Securely processing shareable data utilizing a vault proxy
CN113612688B (zh) * 2021-07-14 2023-03-24 曙光信息产业(北京)有限公司 分布式软件定义网络控制系统及其构建方法
CN114035901B (zh) * 2021-11-16 2022-04-15 亿咖通(湖北)技术有限公司 用于运行进程的容器的构建方法、装置和电子设备
CN114244724B (zh) * 2021-11-24 2023-08-29 中盈优创资讯科技有限公司 一种城域网控制平面向容器化演进的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447872B2 (en) * 2002-05-30 2008-11-04 Cisco Technology, Inc. Inter-chip processor control plane communication
US7224668B1 (en) * 2002-11-27 2007-05-29 Cisco Technology, Inc. Control plane security and traffic flow management
US7606140B2 (en) * 2003-08-28 2009-10-20 Alcatel Lucent Distributed and disjoint forwarding and routing system and method
US7990993B1 (en) * 2008-02-20 2011-08-02 Juniper Networks, Inc. Platform-independent control plane and lower-level derivation of forwarding structures
US8739177B2 (en) * 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8832465B2 (en) * 2012-09-25 2014-09-09 Apple Inc. Security enclave processor for a system on a chip
US8438631B1 (en) 2013-01-24 2013-05-07 Sideband Networks, Inc. Security enclave device to extend a virtual secure processing environment to a client device
US8448238B1 (en) 2013-01-23 2013-05-21 Sideband Networks, Inc. Network security as a service using virtual secure channels
US9426155B2 (en) * 2013-04-18 2016-08-23 International Business Machines Corporation Extending infrastructure security to services in a cloud computing environment
JP6214088B2 (ja) * 2013-11-25 2017-10-18 学校法人東京電機大学 ネットワーク制御システム及び方法
EP3162017B1 (de) * 2014-06-30 2021-11-24 Alcatel Lucent Sicherheit in einem softwaredefinierten netzwerk
CN106575323B (zh) * 2014-08-22 2019-12-17 诺基亚技术有限公司 用于虚拟化网络的安全性和信任框架
US9491111B1 (en) * 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US9442752B1 (en) * 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US9684608B2 (en) * 2014-10-28 2017-06-20 Intel Corporation Maintaining a secure processing environment across power cycles
EP3227779A1 (de) * 2014-12-04 2017-10-11 Nokia Solutions And Networks Management International GmbH Lenkung von virtualisierten ressourcen
US9578008B2 (en) * 2015-05-11 2017-02-21 Intel Corporation Technologies for secure bootstrapping of virtual network functions
JP6569741B2 (ja) * 2015-05-11 2019-09-04 日本電気株式会社 通信装置、システム、方法、及びプログラム
US9742790B2 (en) * 2015-06-16 2017-08-22 Intel Corporation Technologies for secure personalization of a security monitoring virtual network function
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security
US10277535B2 (en) * 2017-03-31 2019-04-30 Hewlett Packard Enterprise Development Lp Network switch systems including logical switches

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software

Also Published As

Publication number Publication date
GB2581717A (en) 2020-08-26
GB202006882D0 (en) 2020-06-24
CN111164571A (zh) 2020-05-15
JP7110339B2 (ja) 2022-08-01
WO2019081348A1 (en) 2019-05-02
CN111164571B (zh) 2024-04-19
JP2021500669A (ja) 2021-01-07
US20190121960A1 (en) 2019-04-25
US10872145B2 (en) 2020-12-22

Similar Documents

Publication Publication Date Title
DE112018004210T5 (de) Sichere prozessorbasierte Steuerungsebenen-Funktionsvirtualisierung in Cloud-Systemen
US11307886B2 (en) Secure access to a virtual machine
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE112015004562T5 (de) Kontextbasiertes Cloud-System für die Zusicherung von Sicherheit
DE112020004699B4 (de) Schützen von arbeitslasten in kubernetes
US9251368B2 (en) Provisioning transient-controlled secure environments for viewing sensitive data
Swathi et al. Virtualization in cloud computing
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
US10719611B2 (en) Static security scanner for applications in a remote network management platform
DE112018004390T5 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE112021002099T5 (de) Hypervisor-geschützter schlüssel
Jaiswal et al. Infrastructure as a service: security issues in cloud computing
DE112021006372T5 (de) Sichere bereitstellung einer datenverarbeitungsressource unter verwendung einer homomorphen verschlüsselung
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE112022002623T5 (de) Vertrauenswürdige und dezentrale aggregation für föderiertes lernen
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE102021122507A1 (de) Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen
Rathod et al. Secure live vm migration in cloud computing: A survey
Mytilinakis Attack methods and defenses on Kubernetes
Atanassov et al. Security issues of the combined usage of Grid and Cloud resources
Modi Azure for Architects: Implementing cloud design, DevOps, containers, IoT, and serverless solutions on your public cloud
Pachghare Cloud computing
Shrimali et al. Comparative Study for Selection of Open Source Hypervisors and Cloud Architectures under Variant Requirements
Bandela et al. Survey on cloud computing technologies and security threats

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence