Exemplarische Vorgehensweise: Arbeiten mit VerschlüsselungseinstellungenHow-to: work with encryption settings

Dieses Thema erläutert unsere Verschlüsselungspakete und zeigt einige Codeausschnitte für deren Verwendung.This topic orients you to our encryption packages and shows some code snips for their use.

Unterstützung für AES 256, der neue StandardSupport for AES 256, the new default

Für die Verwendung der AES 256-basierten Verschlüsselung ist kein zusätzlicher Code erforderlich, da es sich um den neuen Standard handelt, vorausgesetzt, Sie entwickeln mit dem RMS SDK 2.1-Update vom März 2015 oder neuer.No additional code is required to use AES 256 based encryption as it is the new default, assuming you build against the RMS SDK 2.1 March 2015 update or later. Wir empfehlen Ihnen dringend, Ihre Anwendungen mit dieser Version aufgrund der zusätzlichen Sicherheitsvorteile von AES 256 zu aktualisieren.We encourage you to seriously consider updating your applications with this release for the additional security benefits of AES 256.

Wichtig

Unterstützung der Nutzung von AES 256-geschützten Dateien ist seit der Version vom Oktober 2014 vorhanden.Support for consumption of AES 256 protected files has existed since the October 2014 release. Wenn Sie Anwendungen ausführen, die mit einer Version des SDK vor Oktober 2014 erstellt wurden, werden diese Anwendungen durch dieses Update nicht mehr funktionieren.If you are running applications built with a version of the SDK from before October 2014, this update will break your application. Stellen Sie sicher, dass Kunden der von Ihnen entwickelten Programme das aktualisierte SDK verwenden oder bereit sind, sofort auf die neueste Version der Anwendung zu aktualisieren.Please make sure that customers of the applications you are building, are either using the updated SDK, or are willing to immediately update to the most recent version of your application.

 

Unterstützung der API-VerschlüsselungAPI encryption support

Seit dem Update vom März 2015 haben wir die drei folgenden Flags in unsere API und die zugehörigen Verschlüsselungpakete integriert:Beginning with the March 2015 update, we have incorporated the following three flags into our API and their associated encryption packages:

  • IPC_ENCRYPTION_PACKAGE_AES256_CBC4KIPC_ENCRYPTION_PACKAGE_AES256_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_CBC4KIPC_ENCRYPTION_PACKAGE _AES128_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_ECB (auch als veraltete Algorithmen bezeichnet)IPC_ENCRYPTION_PACKAGE _AES128_ECB (Also known as, Deprecated Algorithms)

Die Verschlüsselungpaketflags (siehe Bevorzugte Verschlüsselung) können in Verbindung mit dem Lizenzeigenschaftsflag IPC_LI_PREFERRED_ENCRYPTION_PACKAGE verwendet werden.The encryption package flags, see Preferred encryption, can be used in conjunction with the, License Property flag - IPC_LI_PREFERRED_ENCRYPTION_PACKAGE.

Es folgend einige einfache Codeausschnitte, die die Verwendung der neuen Lizenzeigenschaft veranschaulichen.Following are some simple code snippets that demonstrates how to use the new license property.

Veraltete AlgorithmenDeprecated Algorithms

Das Flag IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS wird in unserer API nicht länger zur Verfügung gestellt.We are no longer exposing the IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS flag in our API. Zukünftige Anwendungen werden daher nicht mehr kompiliert, wenn sie auf dieses Flag verweisen, aber bereits entwickelte Anwendungen, die es verwenden, sind weiterhin funktionsfähig, da wir das Flag privat im API-Code berücksichtigen.This means that future applications will no longer compile if they reference this flag, but applications already built using it will continue to work since we honor the flag privately in the API code.

Die Vorteile des veralteten Verschlüsselungsalgorithmusflags können weiterhin durch einfaches Ändern eines Flags erreicht werden.Getting the benefit of the old deprecated encryption algorithms flag can still be achieved simply by changing one flag. Beispiele finden Sie in den folgenden Codeausschnitten.See the following code snippets for an examples.

Schützen von Dateien mit AES 256 CBC4KProtect Files with AES 256 CBC4K

Keine Änderung im Code erforderlich, AES 256 CBC4K ist der Standard.No change in code needed, AES 256 CBC4K is the default.

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

Schützen von Dateien mit AES-128 CBC4K Protect Files with AES-128 CBC4K

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_CBC4K;

hr = IpcSetLicenseProperty(pLicenseHandle,
                        false,
                        IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                        &dwEncryptionMode);

Schützen von Dateien mit AES-128 ECB (veraltete Algorithmen)Protect Files with AES-128 ECB (Deprecated Algorithms)

Dieses Beispiel zeigt außerdem die neue Methode zur Unterstützung von veralteten Algorithmen.This sample also shows the new way of supporting deprecated algorithms.

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_ECB;

hr = IpcSetLicenseProperty(pLicenseHandle,
                        false,
                        IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                        &dwEncryptionMode);