Februar 2019

Band 34, Nummer 2

Dieser Artikel wurde maschinell übersetzt.

[Azure vertrauliche Computing]

Schützen Ihrer Daten mit Azure Confidential Computing

Durch Stefano Tempesta | Februar 2019

Sicherheit ist ein wesentlicher Treiber für Beschleunigung der Einführung von Cloud-computing, aber sie ist auch einen wichtigen Faktor, wenn Sie sehr vertrauliche geistiges Eigentum (IP) und Daten zu einem Publiccloud verschieben. Es gibt Möglichkeiten, um Daten im Ruhezustand und während der Übertragung zu schützen, aber Bedrohungen können auch auftreten, wenn die Daten im Arbeitsspeicher verarbeitet werden. Vertrauliche computing fügt neue Daten Sicherheitsfunktionen für Ihre Anwendungen mithilfe von vertrauenswürdigen ausführungsumgebungen (TEEs) und Verschlüsselungsmechanismen zum Schutz Ihrer Daten in der Verwendung. TEEs, auch bekannt als Enclaves, sind Hardware oder Software-Implementierungen, die aus den Zugriff von außerhalb der Enclave verarbeitete Daten zu schützen. Eine Enclave bietet einen geschützten Container durch einen Teil der Prozessor und Arbeitsspeicher zu sichern, siehe Abbildung1. Nur autorisierten Codes ist zulässig, ausführen und auf Daten zugreifen, damit der Code und Daten vor der Anzeige und Änderung von außerhalb der TEE geschützt sind.

Code und Daten, die auf eine geschützte Enclave
Abbildung 1-Code und Daten, die auf eine geschützte Enclave

Eine Frage des Vertrauens

Durch die Ankündigung der öffentlichen Verfügbarkeit vertraulicher computing in Azure, Microsoft wurde das der erste Cloudanbieter bieten Schutz für Daten (bit.ly/2OyyxaH und bit.ly/2BxQkpp). Die offizielle Beitrag in den Azure-Blog (bit.ly/2I692X1) beschreibt er auch: "... Azure vertrauliche computing schützt Ihre Daten, während es verwendet wird. Es ist zum Schluss muss noch aktivieren den Schutz von Daten in seinem gesamten Lebenszyklus, ob Sie sich im Ruhezustand, bei der Übertragung oder verwendet wird. Es ist der Grundstein unserer Vision "Vertrauliche Cloud", dem Ziel, auf Daten und Code für den Cloudanbieter nicht transparent machen."

Das Konzept der "opaken Daten- und -Code" ist revolutionäres. Zum ersten Mal erhalten Vertrauen in die Cloud, dass niemand, den Cloudanbieter, einschließlich haben können Ihre Daten. Die Daten werden in jeder Phase verschlüsselt, und nur autorisierte Anwendungen verfügen, den Schlüssel zu entschlüsseln und darauf zugreifen. Dies ist auf zwei Arten erreicht:

• Hardware: Dank einer Partnerschaft mit Intel bieten Azure Hardware geschützten virtuellen Computern, die auf der Technologie von Intel Software Guard Extensions (SGX) ausgeführt. Intel-SGX ist ein Satz von Erweiterungen für die Intel-CPU-Architektur, die zielt darauf ab, die Datenintegrität sicherzustellen und Vertraulichkeit wird sichergestellt, vertrauliche Berechnung, die auf einem Computer, alle privilegierte Software (Kernel, Hypervisor und So weiter), in denen potenziell möglicherweise ausgeführt gefährdet.

• Hypervisor: Virtualisierungsbasierte Sicherheit (VBS) ist eine softwarebasierte TEE, die von Hyper-V in Windows 10 und Windows Server 2016 implementiert wird. Hyper-V wird verhindert, dass Administrator-Code auf den Computer oder Server, als auch lokale Administratoren und Administratoren für Cloud-Dienste ausgeführt werden, Anzeigen des Inhalts der Enclave, oder ändern die Ausführung.

Die Anwendungen für vertrauliche computing sind wirklich unbegrenzt. Jedes Mal, wenn eine Anforderung für den Schutz von sensiblen Daten besteht, stellen vertrauenswürdige ausführungsumgebungen die Bausteine, die auf denen Sie aktivieren neue sichere Business-Szenarien und Anwendungsfälle dar. SQL Server Always Encrypted stellt eine typische Anwendung, die erhöhten Daten-, Vertraulichkeit und Integrität bietet (bit.ly/2zS7TPQ). Immer schützt verschlüsselt die Daten vor böswilliger Insider mit Administratorrechten und Schutzmaßnahmen gegen Hacker und Schadsoftware, die Fehler in das Betriebssystem, Anwendung oder im Hypervisor ausnutzen. Mit der Verwendung von vertraulichen computing schützt SQL Always Encrypted vertrauliche Daten durch die direkte Verschlüsselung Beibehaltung von SQL Server Rich-Abfragefunktionen. Dies ist eine Erweiterung dar, der die aktuelle Always Encrypted-Funktion in SQL Server, der jetzt wird sichergestellt, dass vertrauliche Daten in einer SQL-Datenbank im jederzeit verschlüsselt werden können ohne Beeinträchtigung der Funktionalität von SQL-Abfragen. Immer erreicht Encrypted dies durch das Delegieren von Berechnungen auf sensible Daten zu einer enklave zu, in denen die Daten sicher entschlüsselt und verarbeitet werden.

Zusätzlich zu SQL Server können viele Branchen und Technologien von Azure vertrauliche Computing profitieren. In den Finanzen bzw. der z. B. wäre Daten und Fülle Verwaltungsstrategien für persönliche Portfolio nicht mehr außerhalb einer TEE sichtbar. Organisationen im Gesundheitswesen können zusammenarbeiten, durch die gemeinsame Nutzung ihrer privaten Patientendaten wie Genomische Sequenzen, um tiefere Einblicke von Machine learning über mehrere Datasets, ohne das Risiko, dass Daten, die andere Organisationen Zugriff zu erhalten. Organisationen können ihre Datasets vertrauliche gemeinsam, zum Kombinieren von mehreren Datenquellen, um sichere mehrere Parteien Machine learning-Szenarien zu unterstützen. Machine Learning-Dienste erhalten eine höhere Genauigkeit der Vorhersage, indem Sie auf einem größeren trainierte Modell arbeiten, aber Unternehmen können ihre eigenen Kundendaten (Daten werden in verschlüsselten Format, die nur für die Machine learning-Dienst sichtbar freigegeben) beibehalten. In Öl und Gas und IoT-Szenarien können sensible seismische Daten, die das Core geistige Eigentum eines Unternehmens darstellt in der Cloud für die Verarbeitung, aber mit dem Schutz verschlüsselt in Gebrauch Technologie verschoben werden.

Eine andere wichtige Anwendung ist die Erstellung von einem vertrauenswürdigen verteilten Netzwerk aus einem Satz von nicht vertrauenswürdigen Teilnehmer. Das vertrauliche Consortium Blockchain-Framework ermöglicht, hochgradig skalierbaren und hoch vertrauliche Blockchain-Netzwerke in einer öffentlichen Cloud-Infrastruktur befinden und die umfassende Vorteile von Azure nutzen. Berechtigungen für endgültiges Blockchain-Netzwerke, die abhängig von vertrauenswürdigen Knoten aufgerufen Validierungssteuerelemente zur Zertifizierung von Transaktionen, profitieren Sie von der Azure vertrauliche computeplattform die Vertrauenskette in einem dezentralen Netzwerk besser zu überprüfen. Dies vereinfacht die konsensklassifizierung und schließlich für hohen Durchsatz und die Vertraulichkeit der transaktionsverarbeitung.

Um dies zu ermöglichen müssen Anwendungen, die in einer enklave ausgeführt:

1. Eine allgemeine plattformübergreifende-API, die konsistent sind TEEs, Hardware und Software-basiert, sodass vertrauliche Anwendungscode portabel ist.

2. Nachweis der umfasst das Überprüfen der Identität des Codes in TEEs zum Einrichten einer Vertrauensstellung mit dem der Code, und bestimmen, ob geschützte Daten für diese Version ausgeführt.

Erste Schritte

Informationen zum Einstieg mit vertraulichen computing in Azure Sie Zugriff auf den Azure Marketplace, bereitstellen und Konfigurieren eines virtuellen Computers und installieren Sie das Open Enclave-SDK (openenclave.io/sdk). Das Öffnen Enclave-SDK ist open Source-Projekt für eine einzelne einheitliche Enclaving Abstraktion für Entwickler zum Erstellen von TEE-basierte Anwendungen in den Sprachen C und C++ erstellen. Eine Sammlung von APIs, mit dem Sie eine Anwendung einmal erstellen und Bereitstellen für mehrere Plattformen (Linux und Windows) und aus der Cloud, Hybrid-MDM zu Edge-Umgebungen unterstützt.

Während der Bereitstellung eines virtuellen Computers werden viele der grundlegenden Konfigurationen des VM-Bereitstellung über den Workflow vertrauliche Computing-VM-Bereitstellung im Azure-Portal, einschließlich der unterstützten Plattformen, die Erstellung eines neuen oder die Verknüpfung der Liste verfügbarer unterstützt ein vorhandene Ressourcengruppe und VNet, Auswahl des Typs der Speicher- und Datenträgerkonfiguration, Aktivieren der Diagnose und andere Eigenschaften.

Finden Sie Informationen zum Installieren der öffnen Enclave-SDK aus dem offiziellen GitHub-Repository unter bit.ly/2AdKs4D.

Sobald das SDK installiert ist, können Sie beginnen, erstellen Ihre erste Anwendung in einer enklave ausgeführt. Siehe abbildung2, eine Enclave-Anwendung selbst partitioniert, in zwei Komponenten: eine nicht vertrauenswürdige Komponente, die aufgerufen wird, der Host, und eine vertrauenswürdige Komponente, wird die Enclave aufgerufen. Eine Enclave ist ein sicherer Container, dessen Speicher von externen Entitäten, einschließlich dem Hostbetriebssystem, berechtigte Benutzer und selbst die Hardware vor Zugriff geschützt ist. Alle Funktionen, die in einem TEE ausgeführt werden muss, sollte in der binären Enclave kompiliert werden. Ein Host ist eine normale Anwendung im Benutzermodus, die von einer enklave in den Adressraum geladen werden, bevor Sie beginnen, mit der Enclave interagieren.

Das Enclave-App-Modell
Abbildung 2: das Enclave-App-Modell

Die Enclave-Anwendung

Die beispielanwendung, die ich erstellen möchte gibt eine Meldung in die Enclave vor dem Aufruf zurück an den Host aus, um eine Nachricht von dort aus zu drucken. Der Host zunächst erstellt eine Enclave und ruft dann die Enclave_message-Funktion in der Enclave eine Meldung ausgegeben. Diese Funktion ruft dann wieder auf den Host auf eine Bestätigungsnachricht vor der Rückgabe an die Enclave drucken. Sobald die Enclave-Funktion an den Host zurückgegeben wird, wird der Prozess beendet.

Zuerst definiere ich die Funktionen, die zwischen der Enclave und Host aufgerufen werden soll. Zu diesem Zweck erstelle ich eine functions.edl-Datei, die der Enclave und der Host die Funktionsdefinitionen enthält:

enclave {
  trusted {
    public void enclave_message();
  };

  untrusted {
    void host_acknowledgment();
  };
};

Die EDL-Datei definiert die Funktionen, die aufgerufen werden, in und aus Enclaves, zusammen mit den Parametern, die diese Funktionen übergeben werden. Das Tool oeedger8r, die im Open Enclave-SDK ist zum Generieren von der Marshallingcode, die zum Aufrufen von Funktionen zwischen der Enclave und dem Host verwendet. Marshalling von Code zwischen dem Host und die Enclave aus Sicherheitsgründen erfolgt zum Verringern von Sicherheitsrisiken in bestimmten Prozessor (z. B. Spectre). Finden Sie weitere Informationen zur Verwendung der Open-Enclave oeedger8r-Tool bit.ly/2BaQB2d.

Betrachten wir die beiden Funktionen, die in der Datei EDL mehr im Detail definiert. Die Funktion Enclave_message in Abbildung 3 wird in die vertrauenswürdige Enclave implementiert und wird aufgerufen, indem der nicht vertrauenswürdigen Host. Für den Host, um diese Funktion aufrufen zu können muss der Host über das Open Enclave-SDK für den Übergang vom nicht vertrauenswürdigen Host in die vertrauenswürdige Enclave aufrufen. Um dies zu vereinfachen, generiert das oeedger8r-Tool einige Marshallingcode in Host-Verzeichnis mit der gleichen Signatur wie die Funktion in der Enclave, durch das Hinzufügen eines Handles Enclave, damit das SDK weiß, welche Enclave den Code ausgeführt wird.

Abbildung 3: die Enclave-Funktion

void enclave_message()
{
  // Print a message from the enclave.
  fprintf(stdout, "Hello from the enclave\n");

  // Call back into the host.
  oe_result_t result = host_acknowledgment();
  if (result != OE_OK)
  {
    fprintf(stderr, "Call to host failed: %u (%s)\n", result, 
      oe_result_str(result));
  }
}

Beachten Sie, dass obwohl Enclave_message Fprintf verwendet wird, um eine Meldung auszugeben, hat diese Funktion eine Abhängigkeit zu den Kernel, um eine Nachricht auf dem Bildschirm drucken, damit dieser Code in Enclave für sich selbst nicht ausgeführt werden kann. Stattdessen marshallt diese Funktion der durch Aufruf an den Host für den Anruf an die Enclave Auftrag auszuführen.

Das Gegenteil gilt auch für Funktionen, die definiert, in dem nicht vertrauenswürdigen Host, dem die vertrauenswürdige Enclave aufrufen muss. Der nicht vertrauenswürdige Host ausgeführt wird, die Host_acknowledgment Funktion, in Abbildung 4, und das Tool oeedger8r generiert einige Marshallingcode die gleiche Signatur wie die Funktion auf dem Host.

Abbildung 4: der Hostanwendung

#include <openenclave/host.h>
#include <stdio.h>
#include "functions_u.h"

void host_acknowledgment()
{
  fprintf(stdout, "Call from enclave acknowledged.\n");
}

int main(int argc, const char* argv[])
{
  oe_result_t result;
  oe_enclave_t* enclave = NULL;

  // Create the enclave.
  result = oe_create_functions_enclave(argv[1], OE_ENCLAVE_TYPE_SGX, 
    OE_ENCLAVE_FLAG_DEBUG, NULL, 0, &enclave);
  if (result != OE_OK)
  {
    fprintf(stderr, "Create enclave failed: %u (%s)\n", result, 
      oe_result_str(result));
    return 1;
  }

  // Call into the enclave.
  result = enclave_message(enclave);
  if (result != OE_OK)
  {
    fprintf(stderr, "Call to enclave failed: %u (%s)\n", result, 
      oe_result_str(result));
    // Clean up the enclave.
    oe_terminate_enclave(enclave);
    return 1;
  }
    
  return 0;
}

Der Hostprozess, der eine reguläre C#-Sprache ausführbare Datei mit einer standardmäßigen main-Funktion, die die Enclave und aufruft, erstellt wird, worauf gründet sich die Enclave-app. Er ist verantwortlich für die Verwaltung der Lebensdauer des der Enclave und Aufrufen von Enclave-Methoden. Ein Host, jedoch in einem Cloud-Dienst ausführen sollte immer eine nicht vertrauenswürdige Komponente berücksichtigt werden, die nur-Text-Daten, die für die Enclave vorgesehen verarbeiten nie zulässig ist.

Es ist erwähnenswert die Einbeziehung der nicht vertrauenswürdigen functions_u.h-Header, der während des Buildvorgangs generiert wird. Diese Datei wird durch Aufrufen von oeedger8r der SDK-Tool für die functions.edl-Datei erstellt. Ich umfassen auch stdio.h für die Fprintf-Funktion. Im Gegensatz zu der Enclave-Implementierung, die eine spezielle Enclave-Version der Stdio-Bibliothek, die APIs auf den Host marshallt enthält, wird nicht der Host geschützt, und die normale C-Bibliotheken und Funktionen verwendet. Diese Funktion Oe_create_functions_enclave wird vom oeedger8r generiert. Diese Funktion erstellt eine Enclave für die Verwendung im Hostprozess und ordnet die Enclave-Adressraum. Den Code und die zu schützenden Daten werden dann in Enclave für die zugeordnete Adresse geladen werden. Um die hostanwendung, führen Sie die Functionshost aufgerufen wird, können Sie einfach über die Befehlszeile als aufrufen:

functionshost ./enc/functionsenc.signed

Anleitungen zum Erstellen der Anwendung stehen im Open Enclave-SDK-Repository (bit.ly/2CrTM6m). Der erste Parameter der main-Methode des Hosts gibt den Pfad zu der signierten Enclave-Bibliotheksdatei. Zu Testzwecken können Sie auch die Anwendung ausführen, in der Simulationsmodell mit--simulieren, Befehl:

functionshost ./enc/functionsenc.signed --simulate

Das Handbuch "Erste Schritte mit Open Enclave im Simulator-Modus" wird beschrieben, wie zum Einrichten des Enclave-Simulators (bit.ly/2LvA2BT).

Nachweis

Vor eine enklave vertrauliche Daten vertrauenswürdig ist, muss er nachweisen, dass er einer enklave in eine gültige TEE ausgeführt und kann von der korrekten Identität und dienstvorgangslaufzeit-Eigenschaften als vertrauenswürdig gelten sollen. Dieser Prozess zum Nachweis der Identität und Vertrauenswürdigkeit auf einem Herausforderer wird als Nachweis bezeichnet.

Intel-SGX unterstützt die CPU-basierten nachweisen Aktivieren von einem Remotesystem kryptografisch überprüfen, ob es sich bei bestimmter Software innerhalb einer enklave geladen wurde. Der Prozess startet einen verschlüsselten End-to-End-Kanal mit der Enclave auch für die Freigabe von Daten in einem
geschützte Weise. Während der Enclave-Erstellung definiert ein secure-Hash, bekannt als eine Messung, der Enclave den ursprünglichen Zustand. Die Enclave kann einen Bericht, der von der Prozessor, der seine Identität belegen und kommuniziert, einen eindeutigen Wert (z. B. einen öffentlichen Schlüssel) signiert an einem anderen lokalen Enclave später abrufen. Mit einem vertrauenswürdigen für Enclave, kann dieser Mechanismus genutzt werden, um einen Nachweis, bekannt als Anführungszeichen enthält, die zu einem Remotesystem zu belegen, die der Bericht aus einer enklave auf eine echte SGX-Implementierung kommen zu erhalten. Letzten Endes ist der Hersteller des Prozessors (z. B. Intel) für den Nachweis der Stammzertifizierungsstelle.

Der Enclave wird nachgewiesen zuerst muss eine kryptografisch starken Nachweis der Identität zu generieren, die der Host überprüfen kann. Dies wird erreicht, indem die SGX-Plattform zur Erstellung eines Berichts von der Oe_get_report-Methode in der Open Enclave-SDK, mit der Signatur signiert aufgefordert:

oe_result_t result = oe_get_report(OE_REPORT_OPTIONS_REMOTE_ATTESTATION, 
  reportDashHash, sizeof(reportDashHash), NULL, 0, quoteBuffer, quoteBuffesSize);

Sie können zwischen lokal und remote-Arten von nachweisen durch Entfernen oder Hinzufügen von die Option OE_REPORT_OPTIONS_REMOTE_ATTESTATION bzw. umschalten. Der lokale Bericht kann nur von einer anderen Instanz dieses Enclave auf demselben Computer überprüft werden, während die Berichtsserver-Remotedatenbank überprüft werden kann, von der Oe_verify_report-Methode, die auf einem anderen Computer ausgeführt wird.

Ein wichtiges Feature der Oe_get_report ist, können Sie anwendungsspezifische Daten signiert werden, in den Bericht übergeben. In der Regel, Signieren Sie Daten (mit dem ReportDashHash-Parameter) in den Bericht, indem Sie es vor der Übergabe an den Aufruf Oe_get_report hashing. Dies ist nützlich für das bootstrapping eines sicheren Kommunikationskanals zwischen der Enclave und die Herausforderer.

Nachdem der Bericht generiert und an die Herausforderer übergeben, kann die Herausforderer Oe_verify_report zum Überprüfen, ob der Bericht stammt von einer gültigen SGX-Plattform aufrufen. Ein lokaler Bericht SGX melden Signaturschlüssel frei, die von der Plattform geprüft und einer Remoteberichtsserver wird überprüft, mit der Zertifikatkette, die nur für gültige SGX-Plattformen von Intel ausgegeben. An diesem Punkt weiß die Herausforderer an, dass es sich bei einer enklave in eine gültige SGX-Plattform ausgeführt wird der Bericht stammt und die Informationen im Bericht vertrauenswürdig ist:

oe_result_t result = oe_verify_report(quote, quoteSize, &parsedReport);
bool verified = memcmp(parsedReport.identity.authorID, 
  g_MRSigner, sizeof(g_MRSigner)) == 0;

Abschließend wird die Enclave-app überprüfen, ob die Identität und Eigenschaften der im Bericht widergespiegelt Enclave entspricht der Annahme. Das Open Enclave-SDK stellt ein generalisiertes Identitätsmodell zur Unterstützung dieses Prozesses für TEE-Typen, in der Struktur Oe_identity_t definiert:

typedef struct _oe_identity
{
uint32_t idVersion;
uint32_t idVersion;
uint32_t securityVersion;
uint64_t attributes;
uint8_t uniqueID[OE_UNIQUE_ID_SIZE];
uint8_t authorID[OE_AUTHOR_ID_SIZE];
uint8_t productID[OE_PRODUCT_ID_SIZE];
} oe_identity_t;

Ich teste normalerweise "ProductID" und SecurityVersion, um die Identität des erwarteten Enclave wie folgt überprüfen:

bool productVerified = parsedReport.identity.productID[0] == 1;
bool versionVerified = parsedReport.identity.securityVersion >= 1;

Ich würde auch Stellen Sie sicher, dass die Identität der Enclave dem erwarteten Wert entspricht, indem Sie überprüfen die UniqueID-Wert. Beachten Sie, dass Patches für die Enclave die eindeutige ID in der Zukunft geändert werden.

Bevor Sie fortfahren

Bevor die Enclave ausgeführt werden kann, müssen die Eigenschaften, die definieren, wie die Enclave geladen werden soll, angegeben werden. Diese Eigenschaften werden zusammen mit den Signaturschlüssel, definieren die Enclave-Identität, die für den Nachweis und Versiegelung Vorgänge verwendet wird. In der Open Enclave-SDK können diese Eigenschaften an die Enclave als Teil des signierungsprozesses angefügt werden. Zu diesem Zweck müssen Sie die Oesign-Tool verwenden, das die folgenden Parameter übernimmt:

oesign ENCLAVE CONFFILE KEYFILE

Es ist erwähnenswert, zu Testzwecken eine Enclave im Debugmodus ausgeführt werden können, ohne es zunächst signieren. Allerdings als ein Wort der Warnung, Bedenken Sie, dass Enclaves im Debugmodus ausgeführt, nicht vertraulich werden, und stellen Sie sicher, dass diese Debug-Modus deaktiviert ist, bevor einer enklave in einer produktionsumgebung bereitstellen. Details zum Erstellen und Signieren einer enklave, und Aktivieren der Debugmodus aktiv ist, stehen auf der Open Enclave-SDK-Dokumentation (bit.ly/2EH0eJ7).

Schließlich ist der Hostprozess, worauf gründet sich die Enclave-app. Er ist verantwortlich für die Verwaltung der Lebensdauer des der Enclave und Aufrufen von Enclave-Funktionen. Hosts, obwohl sie in einer Cloudumgebung ausgeführt werden muss als eine nicht vertrauenswürdige Komponente, die nie Klartext oder binäre Daten, die für die Enclave vorgesehen verarbeiten darf. Im Gegensatz zu Enclave-Funktionen gibt es relativ wenigen Einschränkungen für eine hostanwendung zu erstellen. Im Allgemeinen können Sie zusätzliche Bibliotheken Ihrer Wahl in der hostanwendung zu verknüpfen. Im Gegensatz dazu nur Enclave-Funktionen über begrenzte Unterstützung für externen Bibliotheken, aus Sicherheitsgründen. Weiterentwicklung der Open Enclave-SDK weiterhin die Unterstützung für zusätzliche Bibliotheken zu verbessern. Informationen zu unterstützten Bibliotheken, finden Sie in der geöffneten Enclave-SDK-Website (openenclave.io).

Es ist eine Open-Source!

Wie bereits erwähnt, ist das Enclave-SDK öffnen open Source! Die Absicht ist, um es zu einer nicht-Anbieter-spezifische Lösung, die Enclave-Anwendungen auf Linux- und Windows-Plattformen unterstützt. Die aktuelle Implementierung von öffnen-Enclave basiert auf Intel-SGX; andere Enclave-Architekturen, wie Lösungen von AMD oder ARM, werden in der Zukunft hinzugefügt.

Dieses Projekt sind jederzeit Willkommen, Beiträge und Vorschläge. Bei den meisten Beiträgen müssen Sie auf ein Contributor License Agreement (CLA) deklariert, dass Sie berechtigt, und tatsächlich, dem Öffnen von Enclave-Team die Nutzungsrechte für Ihren Beitrag zu gewähren. Wenn Sie an der Open Enclave-SDK mitwirken möchten, finden Sie in den Richtlinien für den Beitrag an bit.ly/2TbQ4DJ.


Stefano Tempesta ist Microsoft Regional Director, MVP für KI und Business-Anwendungen und Mitglied der Blockchain Rat. Regelmäßiger Referent bei Konferenzen für internationale IT, einschließlich Microsoft Ignite und Tech Summit, erweitern Sie Tempestas Interessen Blockchain und AI-verwandten Technologien. Er erstellt "Blogchain Space" (blogchain.space), ein Blog zur blockchaintechnologien schreibt für MSDN-Magazin und MS Dynamics-Welt und veröffentlicht Sie Machine Learning-Experimente auf "Azure AI-Katalog" (Gallery.Azure.AI).


Diesen Artikel im MSDN Magazine-Forum diskutieren