Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

PKCS11Kernbibliothek - Kostenlos RTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

PKCS11Kernbibliothek

Anmerkung

Der Inhalt dieser Seite ist möglicherweise nicht. up-to-date Das neueste Update finden Sie auf der Seite der RTOS Free.org-Bibliothek.

Übersicht

Der Public Key Cryptography Standard #11 definiert eine plattformunabhängige Methode API zur Verwaltung und Verwendung kryptografischer Token. PKCS#11 bezieht sich auf das, was durch den Standard API definiert ist, und auf den Standard selbst. Die PKCS #11 -Kryptografie API abstrahiert die Schlüsselspeicherung, das Abrufen/Setzen von Eigenschaften für kryptografische Objekte und die Sitzungssemantik. Es wird häufig für die Manipulation gängiger kryptografischer Objekte verwendet und ist wichtig, weil die darin spezifizierten Funktionen es Anwendungssoftware ermöglichen, kryptografische Objekte zu verwenden, zu erstellen, zu ändern und zu löschen, ohne dass diese Objekte jemals dem Speicher der Anwendung zugänglich gemacht werden. Kostenlose RTOS AWS Referenzintegrationen verwenden beispielsweise eine kleine Teilmenge von PKCS #11, API um auf den geheimen (privaten) Schlüssel zuzugreifen, der erforderlich ist, um eine Netzwerkverbindung herzustellen, die durch das Transport Layer Security (TLS) -Protokoll authentifiziert und gesichert ist, ohne dass die Anwendung den Schlüssel jemals „sieht“.

Die PKCS11 Kernbibliothek enthält eine softwarebasierte Scheinimplementierung der Schnittstelle PKCS #11 (API), die die von Mbed bereitgestellte kryptografische Funktionalität verwendet. TLS Die Verwendung eines Softwaremocks ermöglicht eine schnelle Entwicklung und Flexibilität. Es wird jedoch erwartet, dass Sie das Modell durch eine Implementierung ersetzen, die speziell auf den sicheren Schlüsselspeicher zugeschnitten ist, der in Ihren Produktionsgeräten verwendet wird. Im Allgemeinen verteilen Anbieter sicherer Kryptoprozessoren, wie Trusted Platform Module (TPM), Hardware Security Module (HSM), Secure Element oder jede andere Art von sicherer Hardware-Enklave, zusammen mit der Hardware eine PKCS #11 -Implementierung. Der Zweck der rein PKCS11 softwarebasierten Modellbibliothek besteht daher darin, eine nicht hardwarespezifische PKCS #11 -Implementierung bereitzustellen, die ein schnelles Prototyping und eine schnelle Entwicklung ermöglicht, bevor auf eine kryptoprozessorspezifische PKCS #11 -Implementierung in Produktionsgeräten umgestellt wird.

Nur ein Teil des PKCS #11 -Standards ist implementiert, wobei der Schwerpunkt auf Operationen mit asymmetrischen Schlüsseln, Generierung von Zufallszahlen und Hashing liegt. Zu den gezielten Anwendungsfällen gehören die Verwaltung von Zertifikaten und Schlüsseln für die TLS Authentifizierung sowie die Überprüfung von Signaturen auf kleinen eingebetteten Geräten. Die Datei pkcs11.h (bezogen aus dem OASIS Standardtext) finden Sie im kostenlosen RTOS Quellcode-Repository. In der RTOSFree-Referenzimplementierung werden PKCS #11 API -Aufrufe von der TLS Helper-Schnittstelle ausgeführt, um währenddessen die TLS Client-Authentifizierung durchzuführenSOCKETS_Connect. PKCS#11 API -Aufrufe werden auch im Rahmen unseres einmaligen Workflows zur Bereitstellung durch Entwickler ausgeführt, um ein TLS Client-Zertifikat und einen privaten Schlüssel für die Authentifizierung beim AWS IoT MQTT Broker zu importieren. Für diese beiden Anwendungsfälle, Bereitstellung und TLS Client-Authentifizierung, muss nur ein kleiner Teil des Schnittstellenstandards PKCS #11 implementiert werden.

Features

Die folgende Teilmenge von PKCS #11 wird verwendet. Diese Liste entspricht ungefähr der Reihenfolge, in der die Routinen zur Unterstützung der Bereitstellung, TLS Clientauthentifizierung und Bereinigung aufgerufen werden. Eine ausführliche Beschreibung der Funktionen finden Sie in der PKCS #11 -Dokumentation, die vom Standard Committee zur Verfügung gestellt wurde.

Allgemeiner Aufbau und Abbau API

  • C_Initialize

  • C_Finalize

  • C_GetFunctionList

  • C_GetSlotList

  • C_GetTokenInfo

  • C_OpenSession

  • C_CloseSession

  • C_Login

Bereitstellung API

  • C_CreateObject CKO_PRIVATE_KEY (für privaten Schlüssel des Geräts)

  • C_CreateObject CKO_CERTIFICATE (für Gerätezertifikat und Codeverifizierungszertifikat)

  • C_GenerateKeyPair

  • C_DestroyObject

Client-Authentifizierung

  • C_GetAttributeValue

  • C_FindObjectsInit

  • C_FindObjects

  • C_FindObjectsFinal

  • C_GenerateRandom

  • C_SignInit

  • C_Sign

  • C_VerifyInit

  • C_Verify

  • C_DigestInit

  • C_DigestUpdate

  • C_DigestFinal

Unterstützung asymmetrischer Kryptosysteme

Die kostenlose RTOS Referenzimplementierung verwendet PKCS #11 2048-Bit RSA (nur Signierung) und die ECDSA NIST P-256-Kurve. Die folgenden Anweisungen beschreiben, wie Sie AWS IoT etwas erstellen, das auf einem P-256-Client-Zertifikat basiert.

Stellen Sie sicher, dass Sie die folgenden (oder neueren) Versionen von AWS CLI und Open SSL verwenden:

aws --version aws-cli/1.11.176 Python/2.7.9 Windows/8 botocore/1.7.34 openssl version OpenSSL 1.0.2g 1 Mar 2016

Beim folgenden Verfahren wird davon ausgegangen, dass Sie den aws configure Befehl zur Konfiguration von verwendet haben AWS CLI. Weitere Informationen finden Sie unter Schnellkonfiguration mit aws configure im AWS Command Line Interface Benutzerhandbuch.

Um AWS IoT etwas zu erstellen, das auf einem P-256-Client-Zertifikat basiert
  1. Erstelle ein AWS IoT Ding.

    aws iot create-thing --thing-name thing-name
  2. Verwenden Sie OpenSSL, um einen P-256-Schlüssel zu erstellen.

    openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve -outform PEM -out thing-name.key
  3. Erstellen Sie eine Zertifikatregistrierungsanfrage, die mit dem in Schritt 2 erstellten Schlüssel signiert ist.

    openssl req -new -nodes -days 365 -key thing-name.key -out thing-name.req
  4. Senden Sie die Zertifikatsregistrierungsanfrage an. AWS IoT

    aws iot create-certificate-from-csr \ --certificate-signing-request file://thing-name.req --set-as-active \ --certificate-pem-outfile thing-name.crt
  5. Hängen Sie das Zertifikat (auf das in der ARN Ausgabe des vorherigen Befehls verwiesen wird) an das Ding an.

    aws iot attach-thing-principal --thing-name thing-name \ --principal "arn:aws:iot:us-east-1:123456789012:cert/86e41339a6d1bbc67abf31faf455092cdebf8f21ffbc67c4d238d1326c7de729"
  6. Erstellen Sie eine Richtlinie. (Diese Richtlinie ist zu freizügig. Sie sollte nur für Entwicklungszwecke verwendet werden.)

    aws iot create-policy --policy-name FullControl --policy-document file://policy.json

    Im Folgenden finden Sie die Datei policy.json, die im Befehl create-policy angegeben ist. Sie können die greengrass:* Aktion auslassen, wenn Sie die kostenlose RTOS Demo für Greengrass Connectivity and Discovery nicht ausführen möchten.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:*", "Resource": "*" }, { "Effect": "Allow", "Action": "greengrass:*", "Resource": "*" } ] }
  7. Fügen Sie den Prinzipal (Zertifikat) und die Richtlinie an das Objekt an.

    aws iot attach-principal-policy --policy-name FullControl \ --principal "arn:aws:iot:us-east-1:123456789012:cert/86e41339a6d1bbc67abf31faf455092cdebf8f21ffbc67c4d238d1326c7de729"

Führen Sie nun die Schritte im Abschnitt Erste Schritte mit AWS IoT in diesem Handbuch aus. Vergessen Sie nicht, das von Ihnen erstellte Zertifikat und den privaten Schlüssel in die aws_clientcredential_keys.h-Datei zu kopieren. Kopieren Sie den Objektnamen in aws_clientcredential.h.

Anmerkung

Das Zertifikat und der private Schlüssel sind nur für Demonstrationszwecke hardcodiert. Anwendungen auf Produktionsebene sollten diese Dateien an einem sicheren Ort speichern.

Portierung

Informationen zur Portierung der PKCS11 Core-Bibliothek auf Ihre Plattform finden Sie unter Portierung der PKCS11 Core-Bibliothek im Free RTOS Porting Guide.

Speichernutzung

Codegröße des Kerns PKCS11 (Beispiel generiert mit GCC für ARM Cortex-M)
Datei Mit -O1-Optimierung Mit -Os-Optimierung
core_pkcs11.c 0,8 K 0,8 K
core_pki_utils.c 0,5 K 0,3 K
core_pkcs11_mbedtls.c 8,9 K 7,5 K
Schätzungen insgesamt 10,2 K 8,6 K
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.