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 nastavíte v jednom 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žívání 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: Tento typ úložiště použijte 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 š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 ani k obsahu ochranné licence v čitelné podobě. Ve všech případech se data šifrují 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 nastavíte tak, aby se v Linuxu povolilo ukládání do mezipaměti. 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 vymažte 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. Od verze MIP SDK 1.18 můžete pomocí DeleteStoredData() v ProtectionEngine programově odstranit data modulu uložená v mezipaměti. U starších verzí může být externí proces nutný k odebrání mezipaměti, pokud se zvětší, než je žádoucí.
Nejvýznamnějším přispěvatelem růstu databáze bude mezipaměť licencí ochrany. Pokud není ukládání licencí do mezipaměti nutné, ať už proto, že opakované požadavky na službu neovlivní výkon vaší aplikace, nebo proto, že by mezipaměť mohla příliš narůst, můžete mezipaměť licencí vypnout. Uděláte to tak, že CanCacheLicenses u objektu FileProfile::Settings nastavíte hodnotu false.
FileProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted,
mAuthDelegate,
std::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<FileProfileObserver>());
profileSettings.SetCanCacheLicenses(false);
Cachovací moduly
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, které jsou prováděny jménem autentizované 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 sada SDK může vygenerovat, 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 nebude zadáno existující engineId, povede to k dalším požadavkům na službu za účelem načtení zásad a k načtení licencí, které již mohou být pro existující modul 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ě používala ukládání MIP SDK do mezipaměti.