DE102015118886A1 - Lizenzieren in der Cloud - Google Patents

Lizenzieren in der Cloud Download PDF

Info

Publication number
DE102015118886A1
DE102015118886A1 DE102015118886.4A DE102015118886A DE102015118886A1 DE 102015118886 A1 DE102015118886 A1 DE 102015118886A1 DE 102015118886 A DE102015118886 A DE 102015118886A DE 102015118886 A1 DE102015118886 A1 DE 102015118886A1
Authority
DE
Germany
Prior art keywords
license
machine
server
application
data
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
DE102015118886.4A
Other languages
English (en)
Inventor
Malini K. Bhandaru
Kapil Sood
Christian Maciocco
Isaku Yamahata
Yunhong Jiang
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102015118886A1 publication Critical patent/DE102015118886A1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

Mindestens ein maschinenlesbares Medium, das mehrere Befehle aufweist, die als Reaktion auf ihre Ausführung durch ein System das System veranlassen, einen eindeutigen Bezeichner an einen Lizenzserver zu senden, basierend auf dem eindeutigen Bezeichner einen sicheren Kanal einzurichten, eine Lizenz zum Aktivieren einer Anwendung von einem Lizenzserver über den sicheren Kanal anzufordern, Lizenzdaten von dem Lizenzserver über den sicheren Kanal zu empfangen; zu bestimmen, ob die Lizenz gültig ist, und die Anwendung als Reaktion auf eine Bestimmung, dass die Lizenzdaten gültig sind, zu aktivieren.

Description

  • TECHNISCHES GEBIET
  • Die offenbarte Technologie betrifft generell das Lizenzieren von Cloud-Software und, insbesondere das Lizenzieren von Cloud-Software unter Verwendung eines sicheren, unempfindlichen Lizenzmechanismus.
  • ALLGEMEINER STAND DER TECHNIK
  • Mit dem Aufkommen von Virtualisierung und Cloud-Infrastrukturen, Plattformen und dem Einsatz von Software als ein Dienst, werden lizenzierte Anwendungen und Dienste, die traditionell auf Hardware basierten, wie Firewalls, Lastausgleicher, Wide Area Network-Optimierer usw. als virtuelle Maschinen (VMs) eingesetzt. Netzwerkfunktionsvirtualisierung bietet Einsparungen an Kosten durch Ermöglichen der Verwendung von handelsüblicher Hardware in einer Cloud-Infrastruktur und Geschwindigkeitsinnovation, da es einfacher ist, neue Merkmale in die Software einzuführen, ohne auf einen neuen Hardwarefreigabezyklus zu warten. Zurzeit verfügbare Lizenzierungslösungen sind proprietär, nicht für die Cloud konzipiert und nicht in Hardware verwurzelt, was eine größere Sicherheit bereitstellt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen der offenbarten Technologie werden exemplarisch und in keiner Weise einschränkend in den Zeichnungen veranschaulicht, bei denen gleiche Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden.
  • 1 veranschaulicht ein Lizenzverwaltungssystem im Kontext einer Cloud, wo die Anwendung oder virtuelle Netzwerkfunktion entweder auf einer Bare-Metal-Maschine oder auf einem Hypervisor ausführen kann.
  • 2 veranschaulicht eine lizenzierte Anwendung mit einem Lizenzagenten, der sich auf einem Client-Host befindet.
  • 3 veranschaulicht eine virtualisierte Umgebung, die einen sicheren, unempfindlichen Lizenzmechanismus verwendet.
  • 4 veranschaulicht einen High-Level-Ablauf einer Ausführungsform der offenbarten Technologie.
  • 5 veranschaulicht Nachrichten zwischen einem Lizenzagenten und einem Lizenzserver.
  • 6 veranschaulicht ein beispielhaftes Computergerät, das zum Praktizieren der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen geeignet ist.
  • 7 veranschaulicht einen Herstellungsgegenstand mit Programmierbefehlen, die Aspekte der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen aufweisen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie hierin verwendet werden Anwendungen und virtuelle Netzwerkfunktionen (VNF) verwendet, um austauschbar auf lizenzierte Anwendungen und Dienste zu verweisen. Ausführungsformen der offenbarten Technologie verwurzeln die Lizenzierung in Hardware unter Verwendung der Intel Software Guard Extensions-(SGX)-Technologie oder anderer Trusted Execution Engines (TEE) wie es nachfolgend ausführlicher beschrieben wird. Diese sind hierin mit SEC für Sicherheitsvorrichtung bezeichnet. SEC kann entweder auf SGX oder TEE verweisen.
  • Wie vorstehend beschrieben veranschaulicht 1 ein Lizenzverwaltungssystem im Kontext einer Cloud-Umgebung, wo die VNF entweder auf einer Bare-Metal-Maschine, in einem Container oder auf einem Hypervisor ausführen kann. Die Cloud-Umgebung kann eine Vielzahl von Client-Hosts 100 aufweisen, wobei jeder Client-Host eine SEC 102 in Hardware aufweist. Jede SEC 102 weist Lizenzschlüsseldaten auf, die für jede SEC einzigartig sind und innerhalb der SEC 102 gespeichert sind. 2 veranschaulicht eine lizenzierte Anwendung 200 oder VNF, die sich auf jedem Client-Host 100 befinden kann. Die lizenzierte Anwendung 200 weist einen Lizenzagenten 202 auf, der in Kommunikation mit der SEC 102 steht.
  • Der Lizenzagent 202 kann sicher mit dem Lizenzserver kommunizieren, um Lizenzen durch SECs 102 zu verifizieren. D. h., der Lizenzagent 202 kann mit der SEC 102 auf dem Client-Host 100 kommunizieren, die dann mit der SEC 102 auf dem Lizenzserver 104 unter Verwendung der sicheren Lizenzschlüsseldaten sicher kommuniziert.
  • Wie vorstehend beschrieben, sind die Lizenzschlüsseldaten für jede SEC 102 einzigartig und schützen die Lizenz und die Schlüsseldaten selbst vor Manipulation. Die Anwendung 200 kann nur aktiviert werden, nachdem der Lizenzagent 202 bestimmt hat, dass die Lizenz gültig ist, wie es nachfolgend ausführlicher in Bezug auf 4 beschrieben wird.
  • 3 veranschaulicht ein Lizenzverwaltungssystem, das in einer cloudvirtualisierten Umgebung ausführt. Das Lizenzverwaltungssystem kann jedoch wie vorstehend beschrieben auch auf einer Bare-Metal-Maschine oder in einem Container ausführen. Die Ausführungsform von 3 weist Clients 302 auf, die mit dem VNF/VM 304 in einer cloudvirtualisierten Umgebung 300 durch einen Backhaul 306 verbinden. Ein Hypervisor hostet eine oder mehrere VNFs und sie werden hier zusammen als VNF/VMs 304 bezeichnet. Clients 302 können auch als Cloud-Mandanten bezeichnet werden. Der Backhaul 306 kann jeder Abschnitt eines Netzwerks zwischen der cloudvirtualisierten Umgebung und den Clients sein. Die SEC 308 in jeder der VNF/VMS 304 ist in Kommunikation mit einem Lizenzserversystem 310, das auch eine SEC 308 aufweist. Die cloudvirtualisierte Umgebung 300 kann einen Hypervisor oder ein Cloud-Betriebssystem (OS) 312 wie OpenStack und eine Plattform 314 aufweisen. Zur Erleichterung der Erörterung wird der Hypervisor oder das Cloud-OS 312 nachfolgend als Cloud-OS 312 bezeichnet. Ein Fachmann wird jedoch ohne Weiteres verstehen, dass entweder ein Hypervisor, Cloud-OS oder ein äquivalentes System verwendet werden kann. Jeder physische Rechenhost, der die cloudvirtualisierte Umgebung 300 unterstützt, weist eine Plattform 314 auf, und jede Plattform 314 weist einen sicheren Takt 316 auf. Jeder physische Rechenhost, der den Lizenzserver unterstützt, weist auch eine SEC 308 und einen sicheren Takt 316 auf. Da die SEC 308 Zugriff auf den sicheren Takt 316 hat, reduziert sie die Ereignisse von Zeitmanipulationsangriffen, wie es auch in Bezug auf die 4 und 5 nachfolgend ausführlicher beschrieben wird.
  • 4 veranschaulicht einen beispielhaften High-Level-Ablauf von einigen Ausführungsformen der offenbarten Technologie, um eine VNF auf einer VM mit einer Lizenz zu aktivieren. Obwohl 4 das Cloud-OS veranschaulicht, das verschiedene Operationen ausführt, kann sich das Cloud-OS auf das Starten von VMs konzentrieren und die Aufgabe des Erlangens und Erneuerns einer Lizenz auf die VNF übertragen. Der High-Level-Ablauf, der in 4 veranschaulicht ist, kann über alle unabhängigen Softwarehersteller (ISVs) und Cloud-Betriebssysteme verwendet werden, welche eine Versicherung über eine gültige Lizenzierung erhalten möchten. In Operation 400 liest die SEC in jeder VM die Zeit von dem sicheren Takt. Die SEC kann auch eine Plattform oder einen siliziumbasierten Zufallsgenerator für eine Schlüsselentropie und als Keim zum Erkennen einer Sitzungswiederholung verwenden. Ein Hardwarezufallsgenerator stellt einen reichhaltigen Strom an Zufälligkeit bereit, der insbesondere im Lizenzserver für die einstweilige Generierung, Einrichten eines sicheren Kommunikationskanals usw. nützlich ist. Dies ist in der Cloud besonders nützlich, wo traditionelle Quellen von Entropie wie Mausbewegungen und Tastenanschläge nicht verfügbar sind. In der Operation 402 ruft der Lizenzagent die Schlüssel in der SEC ab, die mit der VM verbunden sind, die Fuse-Schlüssel, Root-Schlüssel oder Trusted Platform Module-(TPM)-Schlüssel sein können, um einen sicheren Kanal mit dem Lizenzserver zu schaffen. In der Operation 404 werden die von dem Lizenzagenten abgerufenen Schlüssel über die SEC, die mit der VM/VNF verbunden ist, zur mit dem Lizenzserver verbundenen SEC gesendet. Dies richtet einen sicheren Kanal zwischen der VM/VNF und dem Lizenzserver ein und stellt einen Schutz der Lizenz vor unautorisierter Enthüllung und Replikation außerhalb des sicheren Kanals sicher, da jede SEC ihren eigenen einzigartigen Schlüsselsatz aufweist.
  • In der Operation 406 löst ein Client die Aktivierung der VM/VNF bei dem Cloud-OS aus. Bei Anforderung der Aktivierung durch den Client sendet das Cloud-OS in der Operation 408 eine Anforderung zum Aktivieren zur VM/VNF, wenn die Lizenz gültig ist. Wie vorstehend erwähnt, kann die VNF jedoch die Anforderung für die Aktivierung oder die Lizenzerneuerung periodisch oder beim Starten senden. Die VM/VNF sendet wiederum die Lizenzdaten, die Client-Metadaten von dem Client aufweisen können, zur SEC, die mit der VM/VNF verbunden ist, wie nachfolgend ausführlicher beschrieben in Bezug auf 5. In der Operation 410 fordert die VM/VNF die SEC an, die Lizenz zu überprüfen. Dann werden in den Operationen 412 auf dem sicheren Kanal, der zwischen der SEC, die mit der VM/VNF verbunden ist, und der SEC, die mit dem Lizenzserver verbunden ist, eingerichtet ist, die Lizenzdaten einschließlich der Client-Metadaten ausgetauscht, und die mit der VM/VNF verbundene SEC bestimmt, ob die Lizenz gültig ist. In der Operation 414 benachrichtigt die mit der VM/VNF verbundene SEC die mit dem Lizenzserver verbundene SEC, ob die Lizenz gültig oder ungültig war. In der Operation 416 benachrichtigt die mit der VM/VNF verbundene SEC auch die mit dem Lizenzserver verbundene SEC, ob die Lizenz gültig oder ungültig ist. In der Operation 418 werden die Lizenzdaten, welche die Client-Metadaten aufweisen können, auch gegen die in der Lizenzdatenbank gespeicherten Lizenzdaten überprüft.
  • Basierend auf der Gültigkeit der Lizenz löst die SEC, die mit dem Lizenzserver verbunden ist, entweder die Aktivierung der VM/VNF auf dem Cloud-OS aus oder stoppt die Aktivierung der VM/VNF auf dem Cloud-OS in der Operation 420. Das Cloud-OS aktiviert oder stoppt die VM/VNF dann basierend auf dem Auslöser, der von der SEC, die mit dem Lizenzserver verbunden ist, empfangen wurde, in der Operation 422.
  • Eine VNF kann dabei fehlschlagen, zu starten und einen Client oder Cloud-Mandanten über ein Problem zu benachrichtigen. Das Cloud-OS kann auch über diesen Fehler alarmiert werden, sodass eine Korrekturmaßnahme vorgenommen werden kann, wie beispielsweise einen Cloud-Mandanten zu informieren, wenn die Lizenzgebühren nicht bezahlt werden oder der Cloud-Provider mehr Lizenzen erlangt, wenn ihre Verwendung zugenommen hat. Das Cloud-OS kann die VNF auch unterbrechen und abhängig von den Umständen Ressourcen einholen und neu zuweisen.
  • Bei einer alternativen Ausführungsform kann die Lizenzvalidierung auf jeder Plattform durch Erweitern des Schemas von 4 hinzugefügt werden. Eine SEC für jede Plattform signiert einen Lizenzbestätigungs-Blob, welche die Software-ID, die Mac-Adresse, den Hostnamen oder die Plattformsystem-ID, einen sicheren Zeitwert, eine Zufallszahl usw. aufweist, und dies wird auch zur mit dem Lizenzserver verbundenen SEC geliefert.
  • Bei einer alternativen Ausführungsform kann eine Lizenzautorisierung während einer Migration von VMs/VNFs durch das Netzwerk von SECs transparent behandelt werden, wenn eine VM migriert wird. In solch einem Fall wird die Lizenzaktivierung durch das Cloud-OS zur gleichen Zeit ausgelöst, zu der das Cloud-OS die Migration der VM/VNF ausführt. Eine lizenzserverbewusste Cloud kann eine sichere Nachricht zum Lizenzserver senden und ein VM-Migrationsereignis anzeigen. Das Cloud-OS wäre sich bewusst, wenn ein spezieller VM-Start verwendet wird, wie im Fall von Dienst-VMs (z. B. Firewalls, Lastausgleicher usw.). Da die SEC unterschiedliche und einzigartige Schlüssel aufweist, die niemals außerhalb der SEC offengelegt werden, nimmt der Lizenzserver keine missbräuchliche Verwendung von diesen Anmeldedaten an. Daher weist jede SEC, die mit jeder VM/VNF verbunden ist, eine einzigartige Kommunikationsverbindung mit dem SEC-Lizenzserver auf und die Lizenzbestätigung ist durch Unleugbarkeit geschützt.
  • 5 veranschaulicht ein Messaging zwischen dem Lizenzagenten und dem Lizenzserver. Im Hintergrund sammelt der Lizenzserver kontinuierlich Lizenzen, die für eine Anzahl von aufeinanderfolgenden Auffrischungsperioden nicht aktualisiert wurden. Der Lizenzserver kann auch signierte Überwachungsprotokolle am Ende jedes Tages zusammen mit Statistik wie gleichzeitig verwendete Lizenzen, typische Zeitdauer der Verwendung und die Anzahl an erfolglosen Lizenzanforderungen erzeugen. D. h., der Lizenzserver überprüft, bestätigt und repariert seinen Status im Hintergrund im Falle eines Nachrichtenverlustes oder einer Neuordnung. Wenn beispielsweise eine Nachricht einer Lizenzfreigabe verloren gegangen ist, wird die Lizenz als belegt oder als in Verwendung betrachtet. Im Hintergrund kann der Lizenzserver periodisch freie Lizenzen überprüfen, und wenn die Anzahl an Lizenzen ihre Quote erreicht, versucht der Lizenzserver die freien Lizenzen zu sammeln und gibt die freien Lizenzen im Interesse des Clients frei.
  • In der Operation 500 fordert der Lizenzagent über eine verbundene SEC eine Lizenz vom Lizenzserver an. Dies bezieht das Senden der Metadaten des Client-Hosts wie die MAC-Adresse, den Hostnamen, die Internetprotokolladresse und Zeit des Clients zu dem Lizenzserver unter Verwendung eines sicheren Taktes ein. Diese Informationen werden durch die SEC wie vorstehend beschrieben sicher gesendet. In der Operation 502 erstellt der Lizenzserver die Lizenz unter Verwendung der Metadaten des Clients und sendet die Lizenz zum Lizenzagenten. Die Lizenz weist die Ablaufzeit basierend auf der Client-Zeit und einer Mietzeit sowie einer Ablaufzeit basierend auf der Server-Zeit und der Mietzeit auf. Die Lizenz weist auch den Hostnamen, die MAC-Adresse und die Internetprotokolladresse des Clients sowie den Serverzeitstempel auf. Die Lizenz wird in der Lizenzdatenbank gespeichert, dann mit einem angehängten Zertifikat signiert und an den Lizenzagenten ausgegeben. Wenn der Lizenzagent die Lizenz in der Operation 502 empfängt, prüft er die Lizenzsignatur und speichert die Lizenz in der mit dem Lizenzagenten verbundenen SEC zwischen. Solange die Client-Ablaufzeit kleiner ist als die tatsächliche Client-Zeit, ist die Lizenz gültig und kann vom Client verwendet werden.
  • D. h., die Lizenzvalidierung wird über die SECs durch Vergleichen des Ablaufzeitstempels wie erfasst in der Lizenz mit dem sicheren taktbasierten Zeitstempel auf dem lokalen Server und dem sicheren Zeitstempel, der durch die VM bereitgestellt wird, die Validierung ersucht, ausgeführt. Wenn kein sicherer Zeitstempel durch die VM und/oder den Lizenzserver bestimmt werden kann, dann wird ein Zeitstempel, wie er auf dem Lizenzserver unter Verwendung des Network Time Protocol bestimmt wird, verwendet. Dem Lizenzserver wird generell mehr vertraut als individuellen Rechenknoten und den VMs, die auf den Rechenknoten ausführen.
  • Der Lizenzagent verifiziert periodisch durch Ausführen eines Daemonprozesses, der überprüft, dass die Ablaufzeit nicht den lokalen sicheren Takt überschritten hat, dass die Anwendung mit der zwischengespeicherten Lizenz verwendet werden kann, und sendet eine Keep-Alive-Nachricht oder Erneuerungsnachricht zum Lizenzserver. In Abwesenheit einer Lizenzaktualisierungsantwort nach einer Anzahl von Überprüfungszeiträumen von dem Lizenzserver, weist der Lizenzagent die VM an, die Anwendung abzuschalten.
  • In der Operation 504 wird wie vorstehend beschrieben eine Lizenzerneuerungsanforderung vom Lizenzagenten zum Lizenzserver gesendet. Wenn die Lizenzmetadaten mit den in der Lizenzdatenbank gespeicherten Lizenzdaten übereinstimmen und die Lizenz noch nicht abgelaufen ist, dann wird die Lizenz erneuert. Wenn die Lizenz abgelaufen ist, dann wird eine Nachricht Abgelaufen zu dem Lizenzagenten gesendet, die Lizenz wird eingesammelt und die Lizenz-ID deaktiviert. Wenn die Lizenzmetadaten und/oder die Signatur nicht mit denen übereinstimmen, die in der Lizenzdatenbank gespeichert sind, dann ist es möglich, dass ein Clone oder eine Migration einer VM versucht, die Lizenz zu verwenden. Während einer sauberen VM-Migration wie vorstehend beschrieben wird der Lizenzserver informiert und die Lizenz wird eingesammelt und auf eine Anforderung von einem neuen Client-Host wieder ausgegeben. Es wird in der Operation 506 entweder die Lizenzaktualisierung oder ein Fehlercode zum Lizenzagenten gesendet. Alle Anforderungen, Antworten und Fehler werden vom Lizenzserver protokolliert und können in der Lizenzdatenbank gespeichert werden.
  • Wenn der Lizenzagent eine Fehlermeldung empfängt, dann kann in der Operation 500 eine neue Lizenz angefordert werden. Anderweitig wird die Lizenzaktualisierung verifiziert und die Aktualisierungszeit beim Lizenzagenten aktualisiert. Wenn die Lizenz abgelaufen ist, dann wird in der Operation 508 die Lizenz vom Lizenzagenten freigegeben und die Lizenz aus dem Cache der mit dem Lizenzagenten verbundenen SEC entfernt und die Lizenz wird beim Lizenzserver eingesammelt und das Ereignis protokolliert.
  • Wenn eine VM unterbrochen, gestoppt oder migriert wird, löst der Lizenzagent ein Lizenzeinsammelereignis aus, welches das Löschen der Lizenz aus dem lokalen Cache aufweist, und gibt eine Nachricht an den Lizenzserver aus, die Lizenz freizugeben. Dies ermöglicht die maximale Anzahl an Lizenzverwendungen mit Floating-Lizenzen.
  • Eine VM/VNF oder Anwendung kann auf vielerlei Arten geklont werden. Beim Starten des Clone hat der Administrator die Option, eine neue MAC-Adresse anzufordern oder die MAC-Adresse der ursprünglichen VM/VNF wieder zu verwenden. Die vorstehend offenbarten Ausführungsformen isolieren von der missbräuchlichen Verwendung von Lizenzen durch Verweigern jeglicher Lizenzerneuerungsanforderungen von Clones, da sie entweder in der MAC-Adresse, der Internetprotokolladresse, dem Hostnamen und/oder der SEC-Signatur nicht übereinstimmen. Der Clone kann dann eine neue Lizenz anfordern, und wenn irgendwelche Lizenzen verfügbar sind, kann eine neue Lizenz ausgegeben werden.
  • Um ein Lizenz-Spoofing zu verhindern, muss jedes Mal, wenn eine VM/VNF gestartet wird, entweder beim ersten Starten, nach der Migration zu einem neuen Client-Host oder bei Reaktivierung nach einer Unterbrechung die VM/VNF den Lizenzserver kontaktieren. Bei Hardware, die SGX- und/oder TEE-Vermögen aufweist, sind die Nachrichten wie vorstehend beschrieben durch hostspezifische Schlüssel signiert. Clones werden nicht mit den ursprünglich angeforderten und ausgegebenen Lizenzschlüsseln übereinstimmen.
  • In Abwesenheit von Hardware, die SGX- und/oder TEE-Vermögen aufweist, wird die Lizenzaktualisierung mit einem Nachrichtencode „möglicher Clone“ verweigert, wenn zwei oder mehr VM/VNFs mit dem gleichen Hostnamen und der gleichen MAC-Adressen-Kombination vorhanden sind oder der Aktualisierungszeitstempel am Server früher als erwartet erfolgt. Dies schützt die ursprüngliche VM/VNF vor einer Dienstverweigerung und verweigert dennoch Clones den Dienst. Dies verweigert jedoch ebenfalls jede VM/VNF, die zu einem neuen Client-Host migriert wurde. Nach dem Empfangen der Nachricht „möglicher Clone“, muss die VM/VNF eine Nachricht Lizenz erhalten wie oben gezeigt in der Operation 500 von 5 ausgeben.
  • 6 veranschaulicht einen beispielhaften Rechenhost 600. Bei einigen Beispielen kann der Rechenhost 600 wie gezeigt in 6 eine Verarbeitungskomponente 602, andere Hostkomponenten 604 oder eine Kommunikationsschnittstelle 606 aufweisen. Gemäß einigen Beispielen kann der Rechenhost 600 der Client-Host 100 oder der Lizenzserver 102 sein, der mit 1 verbunden ist, oder die Plattform 314 und der Lizenzserver 310, die mit 3 verbunden sind. Der Rechenhost 600 kann entweder ein einzelner physischer Server oder ein zusammengesetzter logischer Server sein, der Kombinationen von zerteilten Komponenten oder von einem gemeinsam benutzten Pool von konfigurierbaren Rechenressourcen aufweist.
  • Gemäß einigen Beispielen kann die Verarbeitungskomponente 602 Verarbeitungsoperationen oder Logik für die Vorrichtung 608 ausführen. Die Verarbeitungskomponente 602 kann verschiedene Hardwareelemente, Softwareelemente oder eine Kombination von beiden aufweisen. Beispiele von Hardwareelementen können Geräte, Logikgeräte, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Prozessorschaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktionsspulen und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinheiten (PLD), digitale Signalprozessoren (DSP), Field Programmable Gate Array (FPGA), Speichereinheiten, Logikgatter, Register, ein Halbleitergerät, Chips, Mikrochips, Chipsätze und so weiter aufweisen. Beispiele von Softwareelementen können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Gerätetreiber, Systemprogramme, Softwareentwicklungsprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme, Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Programmierschnittstellen (API), Befehlssätze, EDV-Code, Computercode, Codesegmente, Computercodesegmente, Worte, Werte, Symbole oder jede Kombination davon aufweisen. Die Bestimmung, ob ein Beispiel unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann jedoch in Übereinstimmung mit einer beliebigen Anzahl an Faktoren variieren, wie beispielsweise gewünschte Rechengeschwindigkeit, Energieniveaus, Wärmetoleranzen, Budget der Verarbeitungszyklen, Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Beschränkungen bezüglich Design oder Leistung wie für eine bestimmte Implementierung gewünscht.
  • Bei einigen Beispielen können andere Hostkomponenten 604 übliche Rechenelemente wie ein oder mehrere Prozessoren, Mehrkernprozessoren, Koprozessoren, Speichereinheiten, Chipsätze, Controller, Peripheriegeräte, Schnittstellen, Oszillatoren, Zeitgeräte, Videokarten, Audiokarten, Multimedia-Ein-/Ausgabe-(I/O)-Komponenten (z. B. Digitalanzeigen), Stromversorgungen und so weiter aufweisen. Beispiele von Speichereinheiten können ohne Einschränkung verschiedene Arten von computerlesbaren und maschinenlesbaren Speichermedien in Form von einer oder mehreren Speichereinheiten mit höherer Geschwindigkeit wie Read Only Memory (ROM), Direktzugriffsspeicher (RAM), dynamischer RAM (DRAM), Doppel-Datenraten-DRAM (DDRAM), synchroner DRAM (SDRAM), statischer RAM (SRAM), programmierbarer ROM (PROM), lösch- und programmierbarer ROM (EPROM), elektrisch lösch- und programmierbarer ROM (EEPROM), Flashspeicher, Polymerspeicher wie ferroelektrischer Polymerspeicher, Ovonicspeicher, Phasenwechsel- oder ferroelektrischer Speicher, Siliziumoxid-Nitridoxidsilizium-(SONOS)-Speicher, magnetische oder optische Karten, eine Anordnung von Vorrichtungen wie redundante Anordnung unabhängiger Festplatten-(RAID)-Laufwerke, Halbleiterspeichervorrichtungen (z. B. USB-Speicher), Halbleiterlaufwerke (SSD) und jede andere Art von Speichermedien aufweisen, die geeignet sind, um Informationen zu speichern.
  • Bei einigen Beispielen kann die Kommunikationsschnittstelle 606 Logik und/oder Merkmale aufweisen, um eine Kommunikationsschnittstelle zu unterstützen. Für diese Beispiele kann die Kommunikationsschnittstelle 606 eine oder mehrere Kommunikationsschnittstellen aufweisen, die gemäß verschiedenen Kommunikationsprotokollen oder -standards arbeiten, um über direkte oder Netzwerkkommunikationslinks zu kommunizieren. Direkte Kommunikationen können unter Verwendung von Kommunikationsprotokollen oder Standards erfolgen, die in einem oder mehreren Industriestandards (einschließlich Folgeprodukten und Varianten) beschrieben sind, wie diejenigen, die mit der PCIe-Spezifikation verbunden sind. Netzwerkkommunikationen können über die Verwendung von Kommunikationsprotokollen oder Standards wie denjenigen erfolgen, die in einem oder mehreren Ethernetstandards beschrieben sind, die von IEEE veröffentlicht wurden. Beispielsweise kann ein solcher Ethernetstandard IEEE 802.3 aufweisen. Netzwerkkommunikation kann auch gemäß einer oder mehreren OpenFlow-Spezifikationen wie die OpenFlow Hardware Abstraktion API-Spezifikation erfolgen. Netzwerkkommunikationen können auch gemäß der Infiniband-Architektur-Spezifikation oder dem TCP/IP-Protokoll erfolgen.
  • Wie vorstehend erwähnt, kann der Rechenhost 600 in einem einzelnen Server oder einem logischen Server, der aus zusammengesetzten zerteilten Komponenten oder Elementen für einen gemeinsam benutzten Pool von konfigurierbaren Rechenressourcen gebildet ist, implementiert sein. Dementsprechend können hier beschriebene Funktionen und/oder spezifische Konfigurationen des Rechenhosts 600 bei verschiedenen Ausführungsformen des Rechenhosts 600 beinhaltet oder ausgelassen sein, wie es für einen physischen oder logischen Server geeignet gewünscht ist.
  • Die Komponenten und Merkmale von Rechenhost 600 können unter Verwendung jeder Kombination von diskreten Schaltungen, anwendungsspezifisch integrierten Schaltungen (ASICs), Logikgattern und/oder Einzelchiparchitekturen implementiert sein. Des Weiteren können die Merkmale von Rechenhost 600 wo angemessen unter Verwendung von Mikrocontrollern, programmierbaren Logikarrays und/oder Mikroprozessoren oder jeglicher Kombination der Vorstehenden implementiert sein. Es ist anzumerken, dass Hardware-, Firmware- und/oder Softwareelemente hierin zusammen oder einzeln als „Logik“ oder „Schaltung“ bezeichnet werden können.
  • Es ist zu verstehen, dass der beispielhafte Rechenhost 600, der im Blockdiagramm von 6 gezeigt ist, ein funktionell beschreibendes Beispiel von vielen potenziellen Implementierungen darstellen kann. Dementsprechend folgert ein Abteilen, Weglassen oder Einschließen von Blockfunktionen, die in den begleitenden Zeichnungen abgebildet sind, nicht, dass die Hardwarekomponenten, Schaltungen, Software und/oder Elemente zur Implementierung dieser Funktionen notwendigerweise in den Ausführungsformen abgeteilt, weggelassen oder eingeschlossen sind.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch repräsentative Befehle implementiert sein, die auf wenigstens einem maschinenlesbaren Medium gespeichert sind, welche verschiedene Logik innerhalb des Prozessors repräsentieren, die beim Lesen durch eine Maschine, ein Computergerät oder System die Maschine, das Computergerät oder System veranlassen, Logik zum Ausführen der hierin beschriebenen Techniken zu erzeugen. Solche Repräsentationen, auch als „IP-Kerne“ bekannt, können auf einem konkreten maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Fertigungsanlagen geliefert werden, wo sie in Fertigungsmaschinen geladen werden, welche die Logik oder den Prozessor herstellen.
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination beider implementiert werden. Bei einigen Beispielen können Hardwareelemente Geräte, Logikgeräte, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktionsspulen und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinheiten (PLD), digitale Signalprozessoren (DSP), Field Programmable Gate Array (FPGA), Speichereinheiten, Logikgatter, Register, ein Halbleitergerät, Chips, Mikrochips, Chipsätze und so weiter aufweisen. Bei einigen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme, Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Programmierschnittstellen (API), Befehlssätze, EDV-Code, Computercode, Codesegmente, Computercodesegmente, Worte, Werte, Symbole oder jede Kombination davon aufweisen. Die Bestimmung, ob ein Beispiel unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann jedoch in Übereinstimmung mit einer beliebigen Anzahl an Faktoren variieren, wie beispielsweise gewünschte Rechengeschwindigkeit, Energieniveaus, Wärmetoleranzen, Budget der Verarbeitungszyklen, Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Beschränkungen bezüglich Design oder Leistung, wie für eine bestimmte Implementierung gewünscht.
  • Einige Beispiele können einen Herstellungsgegenstand oder mindestens ein computerlesbares Medium wie in 7 ersichtlich aufweisen. 7 veranschaulicht einen Herstellungsgegenstand 700 mit Programmierbefehlen, die Aspekte der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen beinhalten. Bei verschiedenen Ausführungsformen kann ein Herstellungsgegenstand eingesetzt sein, um verschiedene Ausführungsformen der vorliegenden Offenbarung zu implementieren. Wie gezeigt kann der Herstellungsgegenstand 700 ein computerlesbares nicht flüchtiges Speichermedium 702 aufweisen, wo Befehle 704 konfiguriert sind, um Ausführungsformen oder Aspekte von Ausführungsformen von irgendwelchen der hier beschriebenen Prozesse zu praktizieren. Das Speichermedium 702 kann einen breiten Bereich von aus dem Stand der Technik bekannten Permanentspeichermedien repräsentieren, einschließlich, aber nicht beschränkt auf, Flash-Speicher, dynamischer Random Access Memory, Static Random Access Memory, eine optische Disk, eine Magnetplatte usw. Die Befehle 704 können eine Vorrichtung als Reaktion auf ihre Ausführung durch die Vorrichtung in die Lage versetzen, verschiedene hier beschriebene Operationen auszuführen. Als ein Beispiel kann das Speichermedium 702 Befehle 704 aufweisen, die konfiguriert sind, eine Vorrichtung, wie z. B. Client-Host 100 oder Lizenzserver 102, der mit 1 verbunden ist, oder die Plattform 314 und den Lizenzserver 310, die mit 3 verbunden sind, zu veranlassen, einige Aspekte des Lizenzierens von Anwendungen wie veranschaulicht in dem Prozess von 4 gemäß Ausführungsformen der vorliegenden Offenbarung zu praktizieren. Als ein weiteres Beispiel kann das Speichermedium 702 Befehle 704 aufweisen, die konfiguriert sind, eine Vorrichtung, wie z. B. Client-Host 100 oder Lizenzserver 102, der mit 1 verbunden ist, oder Plattform 314 und Lizenzserver 310, die mit 3 verbunden sind, zu veranlassen, einige Aspekte des Lizenzierens von Anwendungen wie veranschaulicht in dem Prozess von 5 gemäß Ausführungsformen der vorliegenden Offenbarung zu praktizieren. Bei Ausführungsformen kann das computerlesbare Speichermedium 702 ein oder mehrere computerlesbare nicht flüchtige Speichermedien aufweisen. Bei anderen Ausführungsformen kann das computerlesbare Speichermedium 702 flüchtig sein, wie beispielsweise Signale, die mit Befehlen 704 codiert sind.
  • Ein computerlesbares Medium kann ein nicht flüchtiges Speichermedium aufweisen, um Logik zu speichern. Bei einigen Beispielen kann das nicht flüchtige Speichermedium eine oder mehrere Arten von computerlesbaren Speichermedien aufweisen, die elektronische Daten speichern können, einschließlich flüchtiger Speicher oder nicht flüchtiger Speicher, Wechselspeicher oder nicht wechselbarer Speicher, löschbarer oder nicht löschbarer Speicher, beschreibbarer oder wiederbeschreibbarer Speicher und so weiter. Bei einigen Beispielen kann die Logik verschiedene Softwareelemente wie Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme, Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Programmierschnittstellen, Befehlssätze, EDV-Code, Computercode, Codesegmente, Computercodesegmente, Worte, Werte, Symbole oder jede Kombination davon aufweisen.
  • Gemäß einigen Beispielen kann ein computerlesbares Medium ein nicht flüchtiges Speichermedium aufweisen, um Befehle zu speichern oder aufrechtzuerhalten, die, wenn sie durch eine Maschine, ein Computergerät oder System ausgeführt werden, die Maschine, das Computergerät oder das System veranlassen, Verfahren und/oder Operationen gemäß den beschriebenen Beispielen auszuführen. Die Befehle können jede geeignete Codeart wie Quellcode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code und dergleichen aufweisen. Die Befehle können gemäß einer vordefinierten Computersprache, Weise oder Syntax implementiert werden, um eine Maschine, ein Computergerät oder System anzuweisen, eine bestimmte Funktion auszuführen. Die Befehle können unter Verwendung jeder geeigneten hohen, niedrigen, objektorientierten, visuellen, kompilierten und/oder Interpreter-Programmiersprache implementiert werden.
  • Einige Beispiele können unter Verwendung des Ausdrucks „in einem Beispiel“ oder „ein Beispiel“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit dem Beispiel beschrieben wird, in zumindest einem Beispiel eingeschlossen ist. Die Verwendung des Ausdrucks „in einem Beispiel“ an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf das gleiche Beispiel.
  • Einige Beispiele können unter Verwendung der Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe sind jedoch nicht notwendigerweise als Synonyme füreinander zu verstehen. Beispielsweise können Beschreibungen, welche die Begriffe „verbunden“ und/oder „gekoppelt“ verwenden, anzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch miteinander arbeiten oder interagieren.
  • Die folgenden Beispiele betreffen zusätzliche Beispiele von hier offenbarten Technologien.
  • Beispiel 1. Maschinengesteuertes Verfahren zum Lizenzieren einer Anwendung in einer Cloud-Infrastruktur, wobei das Verfahren aufweist: das Senden eines eindeutigen Bezeichners an einen Lizenzserver; das Herstellen eines sicheren Kanals basierend auf dem eindeutigen Bezeichner; das Anfordern einer Lizenz zum Aktivieren der Anwendung vom Lizenzserver über den sicheren Kanal; das Empfangen von Lizenzdaten vom Lizenzserver über den sicheren Kanal; das Bestimmen, ob die Lizenz gültig ist; und das Aktivieren der Anwendung als Reaktion auf eine Bestimmung, dass die Lizenzdaten gültig sind.
  • Beispiel 2. Das maschinengesteuerte Verfahren von Beispiel 1, wobei der sichere Kanal unter Verwendung einer Sicherheitsvorrichtung eingerichtet wird, die mit der Maschine verbunden ist, die den eindeutigen Bezeichner erzeugt.
  • Beispiel 3. Das maschinengesteuerte Verfahren von Beispiel 2, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 4. Das maschinengesteuerte Verfahren von Beispiel 1, ferner aufweisend das Speichern der Lizenzdaten in einem Speicher, der mit der Maschine verbunden ist.
  • Beispiel 5. Das maschinengesteuerte Verfahren von Beispiel 4, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen eines Clients aufweisen, der die Maschine betreibt.
  • Beispiel 6. Das maschinengesteuerte Verfahren von Beispiel 5, ferner aufweisend das Deaktivieren der Anwendung, wenn eine Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 7. Das maschinengesteuerte Verfahren von Beispiel 5, ferner aufweisend: das Bestimmen einer Maschinenzeit basierend auf einem sicheren Takt auf der Maschine; und das Deaktivieren der Anwendung, wenn die Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 8. Das maschinengesteuerte Verfahren von Beispiel 1, ferner aufweisend: das Anfordern einer Lizenzerneuerung nach einem vorbestimmten Zeitraum; das Empfangen einer Lizenzerneuerungsantwort; und das Deaktivieren der Anwendung, wenn die Lizenzerneuerung ungültig ist.
  • Beispiel 9. Mindestens ein maschinenlesbares Medium, das mehrere Befehle aufweist, die als Reaktion auf die Ausführung durch ein System das System veranlassen: einen eindeutigen Bezeichner zu einem Lizenzserver zu senden; einen sicheren Kanal basierend auf dem eindeutigen Bezeichner einzurichten; eine Lizenz zum Aktivieren einer Anwendung von einem Lizenzserver über den sicheren Kanal anzufordern; Lizenzdaten vom Lizenzserver über den sicheren Kanal zu empfangen; zu bestimmen, ob die Lizenz gültig ist; und die Anwendung als Reaktion auf eine Bestimmung, dass die Lizenzdaten gültig sind, zu aktivieren.
  • Beispiel 10. Das mindestens eine maschinenlesbare Medium von Beispiel 9, wobei der sichere Kanal unter Verwendung einer Sicherheitsvorrichtung eingerichtet ist, die mit der Maschine verbunden ist, die den eindeutigen Bezeichner erzeugt.
  • Beispiel 11. Das mindestens eine maschinenlesbare Medium von Beispiel 10, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 12. Das mindestens eine maschinenlesbare Medium von Beispiel 9, aufweisend die Befehle, um ferner das System zu veranlassen, die Lizenzdaten in einem mit der Maschine verbundenen Speicher zu speichern.
  • Beispiel 13. Das mindestens eine maschinenlesbare Medium von Beispiel 12, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen der Maschine aufweisen.
  • Beispiel 14. Das mindestens eine maschinenlesbare Medium von Beispiel 13, aufweisend die Befehle, um ferner das System zu veranlassen, die Anwendung zu deaktivieren, wenn eine Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 15. Das mindestens eine maschinenlesbare Medium von Beispiel 13, aufweisend die Befehle, um ferner das System zu veranlassen: eine Maschinenzeit basierend auf einem sicheren Takt zu bestimmen, der sich auf der Maschine befindet; und die Anwendung zu deaktivieren, wenn die Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 16. Das mindestens eine maschinenlesbare Medium von Beispiel 9, aufweisend die Befehle, um ferner das System zu veranlassen: eine Lizenzerneuerung nach einem vorbestimmten Zeitraum anzufordern; eine Lizenzerneuerungsantwort zu empfangen; und die Anwendung zu deaktivieren, wenn die Lizenzerneuerung ungültig ist.
  • Beispiel 17. Eine Maschine für das Ausführen einer Anwendung, wobei die Maschine aufweist: eine Sicherheitsvorrichtung, die konfiguriert ist, einen eindeutigen Bezeichner zu erzeugen; und einen Prozessor, der konfiguriert ist: den eindeutigen Bezeichner von der Sicherheitsvorrichtung zu empfangen, den eindeutigen Bezeichner an einen Lizenzserver zu senden, basierend auf dem eindeutigen Bezeichner einen sicheren Kanal einzurichten, eine Lizenz zum Aktivieren der Anwendung vom Lizenzserver über den sicheren Kanal anzufordern, Lizenzdaten vom Lizenzserver über den sicheren Kanal zu empfangen, zu bestimmen, ob die Lizenz gültig ist, und die Anwendung als Reaktion auf eine Bestimmung, dass die Lizenzdaten gültig sind, zu aktivieren.
  • Beispiel 18. Die Maschine von Beispiel 17, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 19. Die Maschine von Beispiel 17, ferner aufweisend einen Speicher, der konfiguriert ist, die Lizenzdaten zu speichern.
  • Beispiel 20. Die Maschine von Beispiel 17, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen einer Maschine aufweisen, welche die Maschine betreibt.
  • Beispiel 21. Die Maschine von Beispiel 17, ferner aufweisend einen sicheren Takt, wobei der Prozessor ferner konfiguriert ist, eine Maschinenzeit von dem sicheren Takt zu empfangen und die Anwendung zu deaktivieren, wenn die Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 22. Die Maschine von Beispiel 17, wobei der Prozessor ferner konfiguriert ist: eine Lizenzerneuerungsanfordererung von der Maschine zu empfangen; eine Lizenzerneuerungsantwort basierend auf den in der Lizenzdatenbank gespeicherten Lizenzdaten zu bestimmen; und eine Lizenzerneuerungsantwort zu senden.
  • Beispiel 23. Die Maschine von Beispiel 22, wobei die Lizenzerneuerungsantwort eine neue Lizenz aufweist.
  • Beispiel 24. Die Maschine von Beispiel 22, wobei die Lizenzerneuerungsantwort eine Nachricht aufweist, die darauf hinweist, dass die Lizenz ungültig ist.
  • Beispiel 25. Ein maschinengesteuertes Verfahren zum Bereitstellen von Lizenzinformationen von einem Lizenzserver an eine Maschine, wobei das Verfahren aufweist: das Senden eines eindeutigen Bezeichners an die Maschine; das Herstellen eines sicheren Kanals basierend auf dem eindeutigen Bezeichner; das Empfangen einer Anforderung für eine Lizenz über einen sicheren Kanal; das Empfangen von Metadaten von der Maschine; das Erzeugen von Lizenzdaten basierend auf den Metadaten; und das Senden der Lizenzdaten zur Maschine.
  • Beispiel 26. Das maschinengesteuerte Verfahren von Beispiel 25, wobei der sichere Kanal unter Verwendung einer Sicherheitsvorrichtung eingerichtet wird, die mit dem Lizenzserver verbunden ist, der den eindeutigen Bezeichner erzeugt.
  • Beispiel 27. Das maschinengesteuerte Verfahren von Beispiel 26, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 28. Das maschinengesteuerte Verfahren von Beispiel 25, ferner aufweisend das Speichern der Lizenzdaten in einer Lizenzdatenbank.
  • Beispiel 29. Das maschinengesteuerte Verfahren von Beispiel 25, wobei die Lizenzdaten eine Ablaufzeit und die empfangenen Metadaten aufweisen.
  • Beispiel 30. Das maschinengesteuerte Verfahren von Beispiel 29, wobei die Metadaten eine MAC-Adresse, Internetprotokolladresse und einen Hostnamen einer Maschine aufweisen, welche die Maschine betreibt.
  • Beispiel 31. Das maschinengesteuerte Verfahren von Beispiel 28, ferner aufweisend das Bestimmen, ob die Lizenz gültig ist, basierend auf den Lizenzdaten, die in der Lizenzdatenbank und den empfangenen Metadaten gespeichert sind.
  • Beispiel 32. Das maschinengesteuerte Verfahren von Beispiel 31, ferner aufweisend: das Empfangen einer Lizenzerneuerungsanforderung von der Maschine; das Bestimmen einer Lizenzerneuerungsantwort basierend auf der Gültigkeit der Lizenzdaten, die in der Lizenzdatenbank gespeichert sind; und das Senden einer Lizenzerneuerungsantwort.
  • Beispiel 33. Das maschinengesteuerte Verfahren von Beispiel 32, wobei die Lizenzerneuerungsantwort eine neue Lizenz aufweist.
  • Beispiel 34. Das maschinengesteuerte Verfahren von Beispiel 33, wobei die Lizenzerneuerungsantwort eine Nachricht aufweist, die darauf hinweist, dass eine Lizenz ungültig ist.
  • Beispiel 35. Mindestens ein maschinenlesbares Medium, das mehrere Befehle aufweist, die als Reaktion auf die Ausführung durch ein System das System veranlassen: einen eindeutigen Bezeichner an die Maschine zu senden; einen sicheren Kanal basierend auf dem eindeutigen Bezeichner einzurichten; eine Anforderung für eine Lizenz über einen sicheren Kanal zu empfangen; Metadaten von der Maschine zu empfangen; Lizenzdaten basierend auf den Metadaten zu erzeugen; und die Lizenzdaten zur Maschine zu senden.
  • Beispiel 36. Das mindestens eine maschinenlesbare Medium von Beispiel 35, wobei der sichere Kanal unter Verwendung einer Sicherheitsvorrichtung eingerichtet ist, die mit dem Lizenzserver verbunden ist, der den eindeutigen Bezeichner erzeugt.
  • Beispiel 37. Das mindestens eine maschinenlesbare Medium von Beispiel 36, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 38. Das mindestens eine maschinenlesbare Medium von Beispiel 35, aufweisend die Befehle, um ferner das System zu veranlassen, die Lizenzdaten in einer Lizenzdatenbank zu speichern.
  • Beispiel 39. Das mindestens eine maschinenlesbare Medium von Beispiel 35, wobei die Lizenzdaten eine Ablaufzeit und die empfangenen Metadaten aufweisen.
  • Beispiel 40. Das mindestens eine maschinenlesbare Medium von Beispiel 39, wobei die Metadaten eine MAC-Adresse, Internetprotokolladresse und einen Hostnamen einer Maschine aufweisen, welche die Maschine betreibt.
  • Beispiel 41. Das mindestens eine maschinenlesbare Medium von Beispiel 38, aufweisend die Befehle, um ferner das System zu veranlassen, zu bestimmen, ob die Lizenz gültig ist, basierend auf der Lizenz, die in der Lizenzdatenbank und den empfangenen Metadaten gespeichert ist.
  • Beispiel 42. Das mindestens eine maschinenlesbare Medium von Beispiel 41, aufweisend die Befehle, um ferner das System zu veranlassen: eine Lizenzerneuerungsanfordererung von der Maschine zu empfangen; eine Lizenzerneuerungsantwort basierend auf der Gültigkeit der in der Lizenzdatenbank gespeicherten Lizenzdaten zu bestimmen; und eine Lizenzerneuerungsantwort zu senden.
  • Beispiel 43. Das mindestens eine maschinenlesbare Medium von Beispiel 42, wobei die Lizenzerneuerungsantwort eine neue Lizenz aufweist.
  • Beispiel 44. Das mindestens eine maschinenlesbare Medium von Beispiel 42, wobei die Lizenzerneuerungsantwort eine Nachricht aufweist, die darauf hinweist, dass eine Lizenz ungültig ist.
  • Beispiel 45. Ein Lizenzserver, aufweisend: eine Sicherheitsvorrichtung, die konfiguriert ist, einen eindeutigen Bezeichner zu erzeugen; und einen Prozessor, der konfiguriert ist: den eindeutigen Bezeichner zu einer Maschine zu senden, einen sicheren Kanal basierend auf dem eindeutigen Bezeichner einzurichten, eine Anforderung für eine Lizenz über einen sicheren Kanal zu empfangen, Metadaten von der Maschine zu empfangen, Lizenzdaten basierend auf den Metadaten zu erzeugen und die Lizenzdaten zur Maschine zu senden.
  • Beispiel 46. Der Lizenzserver von Beispiel 45, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 47. Der Lizenzserver von Beispiel 45, aufweisend die Befehle, um ferner das System zu veranlassen, die Lizenzdaten in einer Lizenzdatenbank zu speichern.
  • Beispiel 48. Der Lizenzserver von Beispiel 45, wobei die Lizenzdaten eine Ablaufzeit und die empfangenen Metadaten aufweisen.
  • Beispiel 49. Der Lizenzserver von Beispiel 48, ferner aufweisend einen sicheren Takt, wobei der Prozessor ferner konfiguriert ist, zu bestimmen, ob die Lizenz gültig ist, basierend auf dem Lizenzservertakt und der Ablaufzeit.
  • Beispiel 50. Der Lizenzserver von Beispiel 48, wobei die Metadaten eine MAC-Adresse, Internetprotokolladresse und einen Hostnamen einer Maschine aufweisen, welche die Maschine betreibt.
  • Beispiel 51. Der Lizenzserver von Beispiel 47, wobei der Prozessor ferner konfiguriert ist, zu bestimmen, ob die Lizenz gültig ist, basierend auf der Lizenz, die in der Lizenzdatenbank gespeichert ist, und den empfangenen Metadaten.
  • Beispiel 52. Der Lizenzserver von Beispiel 51, wobei der Prozessor ferner konfiguriert ist: eine Lizenzerneuerungsanfordererung von der Maschine zu empfangen; eine Lizenzerneuerungsantwort basierend auf der Gültigkeit der in der Lizenzdatenbank gespeicherten Lizenzdaten zu bestimmen; und eine Lizenzerneuerungsantwort zu senden.
  • Beispiel 53. Der Lizenzserver von Beispiel 52, wobei die Lizenzerneuerungsantwort eine neue Lizenz aufweist.
  • Beispiel 54. Der Lizenzserver von Beispiel 52, wobei die Lizenzerneuerungsantwort eine Nachricht aufweist, die darauf hinweist, dass eine Lizenz ungültig ist.
  • Beispiel 55. Ein maschinengesteuertes Verfahren zum Lizenzieren einer Anwendung, wobei das Verfahren aufweist: das Anfordern des Verwendens einer Anwendung auf einer Maschine durch einen Client; das Senden eines ersten eindeutigen Bezeichners zum Lizenzserver als Reaktion auf die Anforderung, die Anwendung zu verwenden; das Senden eines zweiten eindeutigen Bezeichners zur Maschine als Reaktion auf den ersten eindeutigen Bezeichner; das Herstellen eines sicheren Kanals zwischen einer Maschine und einem Lizenzserver basierend auf dem ersten eindeutigen Bezeichner und dem zweiten eindeutigen Bezeichner; das Anfordern einer Lizenz zum Aktivieren der Anwendung vom Lizenzserver; Austauschen von Lizenzdaten zwischen dem Lizenzserver und der Maschine über den eingerichteten sicheren Kanal; das Bestimmen, ob die Lizenzdaten gültig sind; und das Aktivieren der Anwendung, ansprechend auf eine Bestimmung, dass die Lizenzdaten gültig sind.
  • Beispiel 56. Das maschinengesteuerte Verfahren von Beispiel 55, wobei die Maschine und der Lizenzserver jeweils mit einer Sicherheitsvorrichtung verbunden sind.
  • Beispiel 57. Das maschinengesteuerte Verfahren von Beispiel 56, wobei jede Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 58. Das maschinengesteuerte Verfahren von Beispiel 55, ferner aufweisend: das Speichern der Lizenzdaten in einer Lizenzdatenbank, die mit dem Lizenzserver verbunden ist; und das Speichern der Lizenzdaten in der Maschine.
  • Beispiel 59. Das maschinengesteuerte Verfahren von Beispiel 58, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen eines Clients aufweisen, der die Maschine betreibt.
  • Beispiel 60. Das maschinengesteuerte Verfahren von Beispiel 59, ferner aufweisend das Deaktivieren der Anwendung, wenn eine Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 61. Das maschinengesteuerte Verfahren von Beispiel 59, ferner aufweisend das Stoppen der Anwendung, wenn die Lizenzdaten, die in der Lizenzdatenbank gespeichert sind, nicht mit den in der Maschine gespeicherten Lizenzdaten übereinstimmen.
  • Beispiel 62. Das maschinengesteuerte Verfahren von Beispiel 59, ferner aufweisend das Entfernen der Lizenzdaten in der Lizenzdatenbank ansprechend auf eine Bestimmung, dass die Lizenz ungültig ist.
  • Beispiel 63. Das maschinengesteuerte Verfahren von Beispiel 55, ferner aufweisend: das Anfordern einer Lizenzerneuerung nach einem vorbestimmten Zeitraum über die Maschine; und das Deaktivieren der Anwendung, wenn die Lizenzerneuerung ungültig ist.
  • Beispiel 64. Mindestens ein maschinenlesbares Medium, das mehrere Befehle aufweist, die als Reaktion auf die Ausführung durch ein System das System veranlassen: das Verwenden einer Anwendung auf einer Maschine durch einen Client anzufordern; einen ersten eindeutigen Bezeichner zum Lizenzserver als Reaktion auf die Anforderung zu senden, die Anwendung zu verwenden; einen zweiten eindeutigen Bezeichner als Reaktion auf den ersten eindeutigen Bezeichner zur Maschine zu senden; einen sicheren Kanal zwischen einer Maschine und einem Lizenzserver basierend auf dem ersten eindeutigen Bezeichner und dem zweiten eindeutigen Bezeichner einzurichten; eine Lizenz für das Aktivieren der Anwendung vom Lizenzserver anzufordern; Lizenzdaten zwischen dem Lizenzserver und der Maschine über den eingerichteten sicheren Kanal auszutauschen; zu bestimmen, ob die Lizenzdaten gültig sind; und die Anwendung, ansprechend auf eine Bestimmung, dass die Lizenzdaten gültig sind, zu aktivieren.
  • Beispiel 65. Das mindestens eine maschinenlesbare Medium von Beispiel 64, wobei die Maschine und der Lizenzserver jeweils mit einer Sicherheitsvorrichtung verbunden sind.
  • Beispiel 66. Das mindestens eine maschinenlesbare Medium von Beispiel 65, wobei jede Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 67. Das mindestens eine maschinenlesbare Medium von Beispiel 64, ferner aufweisend die Befehle, um das System ferner zu veranlassen: die Lizenzdaten in einer Lizenzdatenbank, die mit dem Lizenzserver verbunden ist, zu speichern; und die Lizenzdaten in der Maschine zu speichern.
  • Beispiel 68. Das mindestens eine maschinenlesbare Medium von Beispiel 67, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen eines Clients aufweisen, der die Maschine betreibt.
  • Beispiel 69. Das mindestens eine maschinenlesbare Medium von Beispiel 68, ferner aufweisend die Befehle, um ferner das System zu veranlassen, die Anwendung zu deaktivieren, wenn eine Maschinenzeit die Ablaufzeit überschritten hat.
  • Beispiel 70. Das mindestens eine maschinenlesbare Medium von Beispiel 68, ferner aufweisend die Befehle, um ferner das System zu veranlassen, die Anwendung zu stoppen, wenn die Lizenzdaten, die in der Lizenzdatenbank gespeichert sind, nicht mit den in der Maschine gespeicherten Lizenzdaten übereinstimmen.
  • Beispiel 71. Das mindestens eine maschinenlesbare Medium von Beispiel 64, ferner aufweisend die Befehle, um das System ferner zu veranlassen, die Lizenzdaten in der Lizenzdatenbank ansprechend auf eine Bestimmung, dass die Lizenz ungültig ist, zu entfernen.
  • Beispiel 72. Das mindestens eine maschinenlesbare Medium von Beispiel 64, ferner aufweisend die Befehle, um das System ferner zu veranlassen: eine Lizenzerneuerung nach einem vorbestimmten Zeitraum über die Maschine anzufordern; und die Anwendung zu deaktivieren, wenn die Lizenzerneuerung ungültig ist.
  • Beispiel 73. Lizenzverwaltungssystem, aufweisend: eine Maschine mit einer ersten Sicherheitsvorrichtung, die konfiguriert ist, einen ersten eindeutigen Bezeichner zu erzeugen, wobei die Maschine konfiguriert ist, eine Anforderung zur Verwendung einer Lizenzanwendung zu empfangen; einen Lizenzserver mit einer zweiten Sicherheitsvorrichtung, der konfiguriert ist, einen zweiten eindeutigen Bezeichner zu erzeugen; wobei die Maschine und der Lizenzserver konfiguriert sind, einen sicheren Kanal zwischen der Maschine und dem Lizenzserver als Reaktion auf die Anforderung zur Verwendung der lizenzierten Anwendung einzurichten, um zu bestimmen, ob mit der lizenzierten Anwendung verbundene Lizenzdaten gültig sind.
  • Beispiel 74. Das Lizenzverwaltungssystem von Beispiel 73, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware oder eine vertrauenswürdige Ausführungsengine aufweist.
  • Beispiel 75. Lizenzverwaltungssystem nach Beispiel 73, ferner aufweisend: einen ersten Speicher, der mit dem Lizenzserver verbunden ist, wobei der erste Speicher konfiguriert ist, die Lizenzdaten in einer mit dem Lizenzserver verbundenen Lizenzdatenbank zu speichern; und einen zweiten Speicher, der mit der Maschine verbunden ist, wobei der zweite Speicher konfiguriert ist, die Lizenzdaten zu speichern.
  • Beispiel 76. Lizenzverwaltungssystem von Beispiel 75, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse und einem Hostnamen eines Clients aufweisen, der die Maschine betreibt.
  • Beispiel 77. Lizenzverwaltungssystem von Beispiel 76, wobei die Maschine konfiguriert ist, die Anwendung zu deaktivieren, wenn ein Client die Ablaufzeit überschritten hat.
  • Beispiel 78. Lizenzverwaltungssystem von Beispiel 76, wobei die Maschine konfiguriert ist, die Anwendung zu stoppen, wenn die Lizenzdaten, die in der Lizenzdatenbank gespeichert sind, nicht mit den in der Maschine gespeicherten Lizenzdaten übereinstimmen.
  • Beispiel 79. Lizenzverwaltungssystem von Beispiel 76, wobei der Lizenzserver konfiguriert ist, die Lizenzdaten in der Lizenzdatenbank zu entfernen, wenn die Lizenz ungültig ist.
  • Beispiel 80. Lizenzverwaltungssystem von Beispiel 73, wobei die Maschine konfiguriert ist, eine Lizenzerneuerung nach einem vorbestimmten Zeitraum anzufordern und die Anwendung zu deaktivieren, wenn die Lizenzerneuerung ungültig ist.
  • Es wurden bestimmte Ausführungsformen beschrieben, doch für einen Fachmann ist es offensichtlich, dass eine große Vielfalt von anderen und/oder gleichartigen Implementierungen anstelle der bestimmten gezeigten und beschriebenen Ausführungsformen verwirklicht werden kann, ohne vom Umfang der offenbarten Technologie abzuweichen. Diese Anmeldung soll alle Anpassungen oder Varianten der hier veranschaulichten und beschriebenen Ausführungsformen abdecken. Daher ist es offenkundig beabsichtigt, dass Ausführungsformen der offenbarten Technologie nur durch die folgenden Ansprüche und Entsprechungen davon begrenzt werden.
  • 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 Nicht-Patentliteratur
    • IEEE 802.3 [0035]

Claims (23)

  1. Maschinengesteuertes Verfahren zum Lizenzieren einer Anwendung in einer Cloud-Infrastruktur, wobei das Verfahren aufweist: Einrichten eines sicheren Kanals zwischen einer Maschine und einem Lizenzserver; Anfordern einer Lizenz zum Aktivieren der Anwendung von dem Lizenzserver über die Maschine; Austauschen von Lizenzdaten zwischen dem Lizenzserver und der Maschine über den eingerichteten sicheren Kanal; Bestimmen, ob die Lizenzdaten gültig sind; und Aktivieren der Anwendung, ansprechend auf eine Bestimmung, dass die Lizenzdaten gültig sind.
  2. Maschinengesteuertes Verfahren nach Anspruch 1, wobei die Maschine und der Lizenzserver jeweils mit einer Sicherheitsvorrichtung verbunden sind.
  3. Maschinengesteuertes Verfahren nach Anspruch 2, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware aufweist.
  4. Maschinengesteuertes Verfahren nach Anspruch 2, wobei die Sicherheitsvorrichtung eine vertrauenswürdige Ausführungsengine aufweist.
  5. Maschinengesteuertes Verfahren nach Anspruch 2, wobei der sichere Kanal unter Verwendung der Sicherheitsvorrichtungen eingerichtet wird.
  6. Maschinengesteuertes Verfahren nach Anspruch 1, ferner aufweisend: Speichern der Lizenzdaten in einer Lizenzdatenbank, die mit dem Lizenzserver verbunden ist; und Speichern der Lizenzdaten in der Maschine.
  7. Maschinengesteuertes Verfahren nach Anspruch 6, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen eines Clients aufweisen, der die Maschine betreibt.
  8. Maschinengesteuertes Verfahren nach Anspruch 7, ferner aufweisend das Deaktivieren der Anwendung, wenn ein Client die Ablaufzeit überschritten hat.
  9. Maschinengesteuertes Verfahren nach Anspruch 7, ferner aufweisend das Stoppen der Anwendung, wenn die Lizenzdaten, die in der Lizenzdatenbank gespeichert sind, nicht mit den in der Maschine gespeicherten Lizenzdaten übereinstimmen.
  10. Maschinengesteuertes Verfahren nach Anspruch 7, ferner aufweisend das Entfernen der Lizenzdaten in der Lizenzdatenbank, ansprechend auf eine Bestimmung, dass die Lizenz ungültig ist.
  11. Maschinengesteuertes Verfahren nach Anspruch 1, ferner aufweisend: Anfordern einer Lizenzerneuerung nach einem vorbestimmten Zeitraum über die Maschine; und Deaktivieren der Anwendung, wenn die Lizenzerneuerung ungültig ist.
  12. Maschinengesteuertes Verfahren nach Anspruch 1, wobei die Maschine eine virtuelle Maschine, eine Bare-Metal-Maschine oder ein Container sein kann.
  13. Lizenzverwaltungssystem, aufweisend: eine Client-Vorrichtung, die konfiguriert ist, auf eine Maschine mit einer lizenzierten Anwendung auf einer Cloud-Infrastruktur zuzugreifen; eine erste Sicherheitseinheit, die mit der Maschine verbunden ist, wobei die erste Sicherheitseinheit einen ersten eindeutigen Bezeichner aufweist; einen Lizenzserver, der konfiguriert ist, mit der Maschine zu kommunizieren; und eine zweite Sicherheitseinheit, die mit dem Lizenzserver verbunden ist, wobei die zweite Sicherheitseinheit einen zweiten eindeutigen Bezeichner aufweist, wobei die erste Sicherheitseinheit und die zweite Sicherheitseinheit konfiguriert sind, einen sicheren Kanal zwischen der Maschine und dem Lizenzserver einzurichten, um zu bestimmen, ob mit der lizenzierten Anwendung verbundene Lizenzdaten gültig sind.
  14. Lizenzverwaltungssystem nach Anspruch 13, wobei die Sicherheitsvorrichtung Softwareschutzeinrichtungserweiterungshardware aufweist.
  15. Lizenzverwaltungssystem nach Anspruch 13, wobei die Sicherheitsvorrichtung eine vertrauenswürdige Ausführungsengine aufweist.
  16. Lizenzverwaltungssystem nach Anspruch 13, ferner aufweisend: einen ersten Speicher, der mit dem Lizenzserver verbunden ist, wobei der erste Speicher konfiguriert ist, die Lizenzdaten in einer mit dem Lizenzserver verbundenen Lizenzdatenbank zu speichern; und einen zweiten Speicher, der mit der Maschine verbunden ist, wobei der zweite Speicher konfiguriert ist, die Lizenzdaten zu speichern.
  17. Lizenzverwaltungssystem nach Anspruch 16, wobei die Lizenzdaten eine Ablaufzeit und eine MAC-Adresse, Internetprotokolladresse oder einen Hostnamen eines Clients aufweisen, der die Maschine betreibt.
  18. Lizenzverwaltungssystem nach Anspruch 17, wobei die Maschine konfiguriert ist, die Anwendung zu deaktivieren, wenn ein Client die Ablaufzeit überschritten hat.
  19. Lizenzverwaltungssystem nach Anspruch 17, wobei die Maschine konfiguriert ist, die Anwendung zu stoppen, wenn die Lizenzdaten, die in der Lizenzdatenbank gespeichert sind, nicht mit den in der Maschine gespeicherten Lizenzdaten übereinstimmen.
  20. Lizenzverwaltungssystem nach Anspruch 17, wobei der Lizenzserver konfiguriert ist, die Lizenzdaten in der Lizenzdatenbank zu entfernen, wenn die Lizenz ungültig ist.
  21. Lizenzverwaltungssystem nach Anspruch 13, wobei die Maschine konfiguriert ist, eine Lizenzerneuerung nach einem vorbestimmten Zeitraum anzufordern und die Anwendung zu deaktivieren, wenn die Lizenzerneuerung ungültig ist.
  22. Lizenzverwaltungssystem nach Anspruch 13, wobei die Maschine eine virtuelle Maschine, eine Bare-Metal-Maschine oder ein Container sein kann.
  23. Lizenzverwaltungssystem nach Anspruch 13, wobei der erste eindeutige Bezeichner unter Verwendung eines Zufallsgenerators bestimmt wird.
DE102015118886.4A 2014-12-23 2015-11-04 Lizenzieren in der Cloud Pending DE102015118886A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/581,742 2014-12-23
US14/581,742 US10289814B2 (en) 2014-12-23 2014-12-23 Licensing in the cloud

Publications (1)

Publication Number Publication Date
DE102015118886A1 true DE102015118886A1 (de) 2016-06-23

Family

ID=56097732

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015118886.4A Pending DE102015118886A1 (de) 2014-12-23 2015-11-04 Lizenzieren in der Cloud

Country Status (4)

Country Link
US (3) US10289814B2 (de)
JP (2) JP6135022B2 (de)
CN (1) CN105718760B (de)
DE (1) DE102015118886A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507643B2 (en) 2014-12-23 2022-11-22 Intel Corporation Licensing in the cloud

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817684B2 (en) * 2012-10-16 2017-11-14 Intel Corporation Cross-function virtualization of a telecom core network
CN105143996A (zh) 2013-03-15 2015-12-09 苹果公司 使用无线设备来促进与用户账户的交易
US11017384B2 (en) * 2014-05-29 2021-05-25 Apple Inc. Apparatuses and methods for using a primary user device to provision credentials onto a secondary user device
KR101746202B1 (ko) * 2015-06-09 2017-06-12 주식회사 케이티 네트워크 기능 가상화 방법 및 이를 위한 장치
CN106059777B (zh) * 2016-08-23 2019-02-15 浪潮电子信息产业股份有限公司 一种云平台的可信中间件设计方法
WO2018068202A1 (en) * 2016-10-11 2018-04-19 Nokia Technologies Oy Virtualized network function security wrapping orchestration in the cloud environment
CN110121857B (zh) * 2016-12-30 2021-02-09 华为技术有限公司 一种凭据分发的方法和设备
CN108628658B (zh) * 2017-03-17 2022-04-05 华为技术有限公司 一种容器的许可证管理方法及装置
US10372419B2 (en) * 2017-04-18 2019-08-06 International Business Machines Corporation Trusted random number generation by a cloud server
US11641359B2 (en) * 2018-04-20 2023-05-02 Opera Norway As System for connecting computing devices
US11398312B2 (en) 2018-06-15 2022-07-26 Xact Laboratories, LLC Preventing the fill of ineffective or under-effective medications through integration of genetic efficacy testing results with legacy electronic patient records
US11227685B2 (en) 2018-06-15 2022-01-18 Xact Laboratories, LLC System and method for laboratory-based authorization of genetic testing
US11380424B2 (en) 2018-06-15 2022-07-05 Xact Laboratories Llc System and method for genetic based efficacy testing
US11527331B2 (en) 2018-06-15 2022-12-13 Xact Laboratories, LLC System and method for determining the effectiveness of medications using genetics
US11200300B2 (en) 2018-06-20 2021-12-14 Microsoft Technology Licensing, Llc Secure sharing of license data in computing systems
JP7203690B2 (ja) * 2019-05-31 2023-01-13 東京エレクトロン株式会社 ライセンス認証装置及びライセンス認証方法
KR102201221B1 (ko) * 2019-06-05 2021-01-12 주식회사 시큐아이 네트워크 보안 장치 및 그의 라이선스 관리 방법
US11586710B2 (en) * 2019-12-24 2023-02-21 Microsoft Technology Licensing, Llc System and method for protecting software licensing information via a trusted platform module
US11507356B2 (en) * 2020-07-22 2022-11-22 Nutanix, Inc. Multi-cloud licensed software deployment
CN112751832B (zh) * 2020-12-18 2022-08-02 湖南麒麟信安科技股份有限公司 一种虚拟机操作系统在线授权认证方法、设备和存储介质
US11928521B2 (en) * 2021-04-17 2024-03-12 UiPath, Inc. Bring your own machine (BYOM)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5777273A (en) 1980-10-30 1982-05-14 Hino Motors Ltd Cabin tilting device for truck
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
KR100958229B1 (ko) * 2002-02-01 2010-05-17 파나소닉 주식회사 가치 정보 교환 시스템
JP4201566B2 (ja) 2002-10-10 2008-12-24 三洋電機株式会社 記憶装置およびサーバ装置
JP4590282B2 (ja) 2005-02-24 2010-12-01 キヤノン株式会社 ライセンス管理装置、制御方法、及びプログラム
US8769703B2 (en) * 2006-04-27 2014-07-01 Unisys Corporation System and method for providing a mechanism to virtualize a perpetual, unique system identity on a partitioned computer system
US8254579B1 (en) 2007-01-31 2012-08-28 Hewlett-Packard Development Company, L.P. Cryptographic key distribution using a trusted computing platform
US8332631B2 (en) * 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine
JP5630237B2 (ja) 2010-11-24 2014-11-26 株式会社リコー 電子機器
US8683579B2 (en) 2010-12-14 2014-03-25 Microsoft Corporation Software activation using digital licenses
EP2689366A1 (de) 2011-03-21 2014-01-29 Nokia Solutions and Networks Oy Kontrolle von softwarelizenzen
CN102957666B (zh) 2011-08-19 2017-02-15 中兴通讯股份有限公司 一种许可控制方法及系统
US20140189346A1 (en) * 2012-12-28 2014-07-03 Next Education, Llc License server manager
JP5945512B2 (ja) * 2013-02-13 2016-07-05 株式会社日立製作所 計算機システム、及び仮想計算機管理方法
US20140283090A1 (en) * 2013-03-15 2014-09-18 Jupiter Systems Licensing using a node locked virtual machine
US9342669B2 (en) * 2013-07-11 2016-05-17 Dialogic, Inc. Systems and methods of licensing and identification of virtual network appliances
WO2015047258A1 (en) * 2013-09-25 2015-04-02 Intel Corporation Method, apparatus and system for providing transaction indemnification
US9983894B2 (en) * 2013-09-25 2018-05-29 Facebook, Inc. Method and system for providing secure system execution on hardware supporting secure application execution
US10289814B2 (en) * 2014-12-23 2019-05-14 Intel Corporation Licensing in the cloud

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE 802.3

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507643B2 (en) 2014-12-23 2022-11-22 Intel Corporation Licensing in the cloud

Also Published As

Publication number Publication date
US11507643B2 (en) 2022-11-22
JP2016119068A (ja) 2016-06-30
US20200074047A1 (en) 2020-03-05
US10289814B2 (en) 2019-05-14
CN105718760B (zh) 2018-11-13
US20230095881A1 (en) 2023-03-30
JP2017152017A (ja) 2017-08-31
US20160180063A1 (en) 2016-06-23
JP6135022B2 (ja) 2017-05-31
CN105718760A (zh) 2016-06-29
US11775621B2 (en) 2023-10-03
JP6740166B2 (ja) 2020-08-12

Similar Documents

Publication Publication Date Title
DE102015118886A1 (de) Lizenzieren in der Cloud
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
EP3437012B1 (de) Verfahren, prozessor und gerät zur integritätsprüfung von nutzerdaten
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
US11334408B2 (en) Big data distributed processing and secure data transferring with fault handling
DE112006001933B4 (de) Stillegen eines Prozessorbusagenten
DE112008002888T5 (de) Hardwarevorrichtungsschnittstelle, die Transaktionsauthentifizierung unterstützt
DE112013005184T5 (de) Für einen Benutzer vertrauenswürdige Einheit zum Erkennen einer virtualisierten Umgebung
DE112011105752T5 (de) Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems
DE112018000525T5 (de) Systeme und Verfahren für die Authentifizierung von Platform Trust bzw. Plattform-Vertrauen in einerNetzwerkfunktions-Virtualisierungsumgebung
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112011105098T5 (de) Virtuelles BIOS
DE202021004266U1 (de) Anfügbare-und-abtrennbare Datenbank-Sessions
DE112017007643T5 (de) Bitstromschlüssel-Authentifizierung umkonfigurierbarer Vorrichtungen
DE112022004486T5 (de) Schrittweises überprüfen von zugriffs-token
US20210209202A1 (en) Big Data Distributed Processing and Secure Data Transferring with Obfuscation
US20210211430A1 (en) Big Data Distributed Processing and Secure Data Transferring with Hyper Fencing
DE102020101084A1 (de) Verbesserte sicherheit für mehrknoten-rechenplattform
DE102012218945B4 (de) Zugriffssteuerung in einer hybriden Umgebung
DE102012221280B4 (de) Datenverarbeitungseinheit, Steuerungsverfahren und Steuerungsprogramm zum Durchführen einer Authentifizierungsverarbeitung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication