Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
MIP SDK implementuje databázi SQLite3 pro správu úložiště mezipaměti SDK. Před verzí 1.3 sady Microsoft Information Protection SDK byly podporovány pouze dva typy úložiště stavu mezipaměti: na disku a v paměti. Oba tyto typy ukládají určitá data, konkrétně licence na chráněný obsah a informace o zásadách, ve formátu prostého textu.
Abychom zlepšili stav zabezpečení sady SDK, přidali jsme podporu pro druhý typ mezipaměti disku, který k ochraně databáze a jejího obsahu používá kryptografická rozhraní API specifická pro platformu.
Aplikace definuje typ mezipaměti při načítání profilu jako součást objektu FileProfileSettings, PolicyProfileSettingsnebo ProtectionProfileSettings objektů. Typ mezipaměti je statický pro životnost profilu. Změna na jiný typ úložiště mezipaměti vyžaduje zničení existujícího profilu a vytvoření nového.
Typy úložiště mezipaměti
Počínaje sadou MIP SDK verze 1.3 jsou k dispozici následující typy mezipaměti úložiště.
| Typ | Účel |
|---|---|
| InMemory | Udržuje mezipaměť úložiště v paměti aplikace. |
| OnDisk | Uloží databázi na disk v adresáři zadaném v objektu nastavení. Databáze je uložena ve formátu prostého textu. |
| OnDiskEncrypted | Uloží databázi na disk v adresáři zadaném v objektu nastavení. Databáze se šifruje pomocí rozhraní API specifických pro operační systém. |
Každý engine vygenerovaný aplikací generuje nový šifrovací klíč.
Úložiště mezipaměti se nastavuje prostřednictvím jednoho z objektů nastavení profilu prostřednictvím výčtu mip::CacheStorageType .
FileProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted, // Define the storage type to use.
mAuthDelegate,
std::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<FileProfileObserver>());
Kdy použít jednotlivé typy
Úložiště mezipaměti je důležité pro zachování offline přístupu k dříve dešifrovaným informacím a zajištění výkonu operací dešifrování při dřívějším využití dat.
- V úložišti paměti: Tento typ úložiště použijte pro dlouhodobé procesy, u kterých není vyžadováno zachování informací o zásadách nebo mezipaměti licencí napříč restartováními služby.
- Na disku: Tento typ úložiště použijte pro aplikace, u kterých se procesy můžou často zastavovat a spouštět, ale musí udržovat zásady, licence a mezipaměť zjišťování služeb napříč restartováními. Tento typ mezipaměti úložiště je prostý text, takže je vhodnější pro úlohy serveru, kde uživatelé nebudou mít přístup k úložišti stavu. Příkladem může být démon systému Windows nebo démon Linuxu běžící na serveru nebo aplikace SaaS, kde by k datům o stavu měli přístup jenom správci služeb.
- On Disk and Encrypted: Použijte tento typ úložiště pro aplikace, kde se procesy můžou často zastavovat a spouštět, ale musí udržovat zásady, licence a mezipaměť zjišťování služeb po restartování. Tato mezipaměť úložiště je zašifrovaná, takže je vhodnější pro aplikace pracovních stanic, kde uživatel může procházet a zjišťovat stavovou databázi. Šifrování pomáhá zajistit, aby zvědaví uživatelé neměli přístup k obsahu zásad ochrany nebo obsahu licenční ochrany v prostém textu. Je důležité si uvědomit, že ve všech případech jsou data šifrovaná pomocí klíčů, ke kterým má uživatel přístup. Zkušený oponent dokáže dešifrovat mezipaměť s minimálním úsilím, ale stále to brání manipulaci a procházení.
Podporované platformy pro šifrování
| Platforma | Verze | Poznámky |
|---|---|---|
| Microsoft Windows | Windows 11, verze podpory Windows Serveru | |
| macOS | High Sierra a novější | |
| Ubuntu Linux | 22.04 a novější | Vyžaduje příznak funkce SecretService a LinuxEncryptedCache. |
| Android | Android 7.0 nebo novější | |
| iOS | Všechny podporované verze |
I když sada MIP SDK podporuje další linuxové distribuce, neotestovali jsme šifrování mezipaměti v systému RedHat Enterprise Linux, CentOS nebo Debian.
Poznámka:
Příznak funkce pro povolení úložiště mezipaměti v Linuxu je nastavený prostřednictvím mip::MipConfiguration::SetFeatureSettings()
Databázové tabulky pro ukládání do mezipaměti
Sada MIP SDK udržuje dvě databáze pro mezipaměť. Jedním z nich je SDK pro ochranu a správu podrobností o stavu ochrany. Druhá část se týká SDK pro zásady a zahrnuje údržbu podrobností o zásadách a informacích o službě. Obě jsou uloženy v cestě definované v objektu nastavení v části mip\mip.policies.sqlite3 a mip\mip.protection.sqlite3.
Poznámka:
Sada MIP SDK nezaručuje kompatibilitu mezi různými verzemi mezipaměti. Před upgradem aplikace na novou verzi sady MIP SDK doporučujeme vymazat všechny soubory v adresáři mip\ nebo jakýkoli alternativní adresář, který se změnil z výchozího nastavení.
Databáze ochrany
| Tabulka | Účel | Šifrované |
|---|---|---|
| AuthInfoStore | Ukládá podrobnosti ověřovací výzvy. | Ne |
| Úložiště souhlasů | Ukládá výsledky udělení souhlasu pro každý stroj. | Ne |
| DnsInfoStore | Ukládá výsledky vyhledávání DNS pro operace ochrany. | Ne |
| EngineStore | Ukládá podrobnosti modulu, přidruženého uživatele a vlastní data klienta. | Ne |
| Úložiště klíčů | Ukládá symetrické šifrovací klíče pro každý modul. | Ano |
| licenční obchod | Obchody používají informace o licenci k dříve dešifrovaným datům. | Ano |
| SdInfoStore | Ukládá výsledky zjišťování služeb. | Ne |
Poznámka:
Mezipaměť LicenseStore vyžaduje, aby byla identita nastavena v modulu ochrany nebo souborovém modulu.
Databáze zásad
| Tabulka | Účel | Šifrované |
|---|---|---|
| Úložiště klíčů | Ukládá symetrické šifrovací klíče pro každý modul. | Ano |
| Zásady | Ukládá informace o zásadách popisků pro každého uživatele. | Ano |
| PoliciesUrl | Ukládá adresu URL služby zásad back-endu pro konkrétního uživatele. | Ne |
| Citlivost | Ukládá pravidla klasifikace pro konkrétní zásady uživatele. | Ano |
| CitlivostIUrls | Ukládá adresu URL služby zásad citlivosti back-endu pro konkrétního uživatele. | Ne |
Důležité informace o velikosti databáze
Velikost databáze závisí na dvou faktorech: množství modulů přidaných do mezipaměti a množství licencí ochrany, které byly uloženy v mezipaměti. Počínaje MIP SDK 1.18 může být DeleteStoredData() a ProtectionEngine použito k programovému odebrání dat enginu uložených v mezipaměti. U starších verzí může být externí proces nutný k odebrání mezipaměti, pokud roste větší, než je žádoucí.
Nejvýznamnějším přispěvatelem růstu databáze bude mezipaměť licencí ochrany. Pokud není nutné ukládání do mezipaměti licencí, buď proto, že doby odezvy služby neovlivní výkon vaší aplikace, nebo mezipaměť může přerůst do příliš velké velikosti, lze mezipaměť licencí zakázat. Toho lze dosáhnout nastavením CanCacheLicenses objektu FileProfile::Settings na hodnotu false.
FileProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted,
mAuthDelegate,
std::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<FileProfileObserver>());
profileSettings.SetCanCacheLicenses(false);
Moduly pro ukládání do mezipaměti
V sadě MIP SDK se vytvoří modul pro každého uživatele, který provádí jakoukoli ověřenou operaci. Enginy poskytují rozhraní pro všechny operace prováděné jménem ověřené identity. Jak je popsáno v Profilech a Enginech konceptů, každý z FileEngine, PolicyEngine nebo ProtectionEngine má dva stavy CREATED a LOADED. Aby mohl provádět operace sady SDK, musí být modul vytvořen a načten. Pokud se modul nepoužívá, sada SDK uloží modul do mezipaměti a zachová ho v CREATED co nejdéle v závislosti na dostupných prostředcích. Každá třída profilu příslušné sady SDK také poskytuje metoduUnloadEngineAsync, jak toho dosáhnout explicitně.
Každý modul má jedinečný identifikátor id , který se používá ve všech operacích správy modulu. Klientská aplikace může explicitně poskytnout ID nebo ji může vygenerovat sada SDK, pokud ji aplikace neposkytuje. Pokud je k dispozici jedinečný identifikátor pomocí objektů nastavení modulu při vytváření modulu a ukládání do mezipaměti je povolené v profilu rozhraní API, jak je popsáno výše, lze stejné moduly použít pokaždé, když uživatel provede operaci se sadou SDK. Postupujte podle fragmentů kódu pro vytvoření znaku [mip::FileEngine](./concept-profile-engine-file-engine-cpp.md#create-file-engine-settings), [mip::PolicyEngine](./concept-profile-engine-policy-engine-cpp.md#implementation-create-policy-engine-settings).
Pokud se nepodaří zadat existující engineId, dojde k dodatečným cestám služby k načtení zásad a k načtení licencí, které už mohly být pro stávající engine uloženy v mezipaměti. Ukládání ID modulu do mezipaměti umožňuje sadě SDK offline přístup k dříve dešifrovaným informacím a obecným vylepšením výkonu.
Další kroky
Dále si přečtěte další informace o konceptech objektů profilu a stroje, abyste pochopili, jak správně nastavit ID modulu MIP tak, aby správně využívala ukládání MIP SDK do mezipaměti.