Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MIP SDK, SDK önbellek depolamasını korumak için bir SQLite3 veritabanı uygular. Microsoft Information Protection SDK'sının 1.3 sürümünden önce yalnızca iki tür önbellek durumu depolaması destekleniyordu: Diskte ve bellekte. Bu türlerin her ikisi de belirli verileri, özellikle korumalı içerik ve ilke bilgilerinin lisanslarını düz metin olarak depoladı.
SDK'nın güvenlik duruşunu geliştirmek için, veritabanını ve içeriğini korumak için platforma özgü şifreleme API'lerini kullanan ikinci bir disk önbelleği türü için destek ekledik.
Uygulama, profili , FileProfileSettingsveya PolicyProfileSettings nesnelerinin bir parçası ProtectionProfileSettingsolarak yüklerken önbellek türünü tanımlar. Önbellek türü profilin ömrü için statiktir. Farklı bir önbellek depolama türüne geçmek için mevcut profili yok etmek ve yeni bir profil oluşturmak gerekir.
Önbellek depolama türleri
MIP SDK 1.3 sürümünden itibaren aşağıdaki depolama önbelleği türleri kullanılabilir.
| Tür | Amaç |
|---|---|
| InMemory | Uygulamadaki bellekte depolama önbelleğini korur. |
| OnDisk | Veritabanını, ayarlar nesnesinde sağlanan dizinde diskte depolar. Veritabanı düz metin olarak depolanır. |
| OnDiskEncrypted | Veritabanını, ayarlar nesnesinde sağlanan dizinde diskte depolar. Veritabanı işletim sistemine özgü API'ler kullanılarak şifrelenir. |
Uygulama tarafından oluşturulan her altyapı yeni bir şifreleme anahtarı oluşturur.
Önbellek depolamasını, profil ayar nesnelerinden birinde, mip::CacheStorageType numaralandırması aracılığıyla ayarlarsınız.
FileProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted, // Define the storage type to use.
mAuthDelegate,
std::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<FileProfileObserver>());
Her tür ne zaman kullanılır?
Önbellek depolama, daha önce şifresi çözülmüş bilgilere çevrimdışı erişimi korumak ve veriler daha önce kullanıldığında şifre çözme işlemleri için performans sağlamak için önemlidir.
- Bellek Depolama alanında: İlke veya lisans önbelleği bilgilerinin hizmet yeniden başlatmalarında kalıcı hale alınmasının gerekmediği uzun süreli işlemler için bu depolama türünü kullanın.
- Diskte: İşlemlerin sık sık durdurulup başlatıldığı, ancak yeniden başlatmalar arasında ilke, lisans ve hizmet bulma önbelleğini koruması gereken uygulamalar için bu depolama türünü kullanın. Bu depolama önbelleği türü düz metin olduğundan, kullanıcıların durum depolamasına erişmeyeceği sunucu iş yükleri için daha uygundur. Buna örnek olarak bir sunucuda çalışan bir Windows hizmeti veya Linux daemon'ı ya da yalnızca hizmet yöneticilerinin durum verilerine erişebilecekleri bir SaaS uygulaması verilebilir.
- Diskte ve Şifrelenmiş: İşlemlerin sık sık durabileceği ve başlatıldığı ancak yeniden başlatmalarda ilke, lisans ve hizmet bulma önbelleğini koruması gereken uygulamalar için bu depolama türünü kullanın. Bu depolama önbelleği şifrelenir, bu nedenle kullanıcının durum veritabanına göz atabileceği ve veritabanını keşfedebileceği iş istasyonu uygulamaları için daha uygundur. Şifreleme, meraklı kullanıcıların ilke içeriğine veya koruma lisansı içeriğine düz metin olarak erişmemesini sağlamaya yardımcı olur. Her durumda veriler kullanıcının erişebileceği anahtarlarla şifrelenir. Becerikli bir saldırgan önbelleğin şifresini en az çabayla çözebilir, ancak bu işlem kurcalamayı ve göz atmayı önler.
Şifreleme için desteklenen platformlar
| Platform | Sürüm | Notlar |
|---|---|---|
| Microsoft Windows | Windows 11, Windows Server'ın Destek sürümü | |
| macOS | High Sierra ve üzeri | |
| Ubuntu Linux | 22.04 ve üzeri |
SecretService ve LinuxEncryptedCache özellik bayrağı gerektirir. |
| Android | Android 7.0 veya üzeri | |
| iOS | Desteklenen tüm sürümler |
MIP SDK'sı diğer Linux dağıtımlarını desteklese de önbellek şifrelemesini RedHat Enterprise Linux, CentOS veya Debian üzerinde test etmedik.
Not
Linux'ta önbellek depolamasını etkinleştirmek için özellik bayrağını mip::MipConfiguration::SetFeatureSettings() olarak ayarlarsınız
Önbellek depolama veritabanı tabloları
MIP SDK'sı önbellek için iki veritabanı tutar. Bunlardan biri Koruma SDK'ları ve koruma durumu ayrıntılarını korumak içindir. Diğeri, İlke SDK'larına yöneliktir ve ilke ayrıntılarını ve hizmet bilgilerini korur. Her ikisi de ayarlar nesnesinde tanımlanan yolda, mip\mip.policies.sqlite3 ve mip\mip.protection.sqlite3 altında depolanır.
Not
MIP SDK'sı, önbelleğinin farklı sürümleri arasında uyumluluğu garanti etmez. Uygulamayı MIP SDK'sının yeni bir sürümüne yükseltmeden önce mip\ dizinindeki tüm dosyaları veya varsayılan ayardan değiştirilen herhangi bir alternatif dizini temizleyin.
Koruma veritabanı
| Tablo | Amaç | Şifreli |
|---|---|---|
| AuthInfoStore | Kimlik doğrulaması sınaması ayrıntılarını depolar. | Hayır |
| ConsentStore | Her motor için onay sonuçlarını depolar. | Hayır |
| DnsInfoStore | Koruma işlemleri için DNS arama sonuçlarını depolar | Hayır |
| EngineStore | Altyapı ayrıntılarını, ilişkili kullanıcıyı ve özel istemci verilerini depolar | Hayır |
| Anahtar Deposu | Her işlemci için simetrik şifreleme anahtarlarını depolar. | Yes |
| Lisans Mağazası | Depolar, daha önce şifresi çözülmüş veriler için lisans bilgilerini kullanır. | Yes |
| SdInfoStore | Hizmet bulma sonuçlarını depolar. | Hayır |
Not
LicenseStore önbelleği, koruma altyapısında veya dosya altyapısında bir kimlik ayarlanmasını gerektirir.
İlke veritabanı
| Tablo | Amaç | Şifreli |
|---|---|---|
| Anahtar Deposu | Her işlemci için simetrik şifreleme anahtarlarını depolar. | Yes |
| İlkeler | Her kullanıcı için etiket ilkesi bilgilerini depolar. | Yes |
| İlkelerUrl | Belirli bir kullanıcı için arka plan ilke hizmeti URL'sini depolar. | Hayır |
| Duyarlılık | Belirli bir kullanıcı ilkesi için sınıflandırma kurallarını depolar. | Yes |
| HassasiyetURL'leri | Belirli bir kullanıcı için arka uç duyarlılık ilkesi hizmet URL'sini depolar. | Hayır |
Veritabanı boyutuyla ilgili dikkat edilmesi gerekenler
Veritabanı boyutu iki faktöre bağlıdır: Önbelleğe eklenen altyapıların miktarı ve önbelleğe alınan koruma lisanslarının miktarı. MIP SDK 1.18'den itibaren, önbelleğe alınmış motor verilerini programlı olarak kaldırmak için ProtectionEngineDeleteStoredData() kullanabilirsiniz. Önceki sürümlerde, istenenden daha fazla büyürse önbelleği kaldırmak için bir dış işlem gerekebilir.
Veritabanı büyümesine en önemli katkıda bulunan koruma lisansı önbelleği olacaktır. Hizmet gidiş dönüşleri uygulama performansınızı etkilemeyebileceği veya önbellek fazla büyüyebileceği için lisans önbelleği gerekli değilse, lisans önbelleğini devre dışı bırakabilirsiniz. Bunu yapmak için, CanCacheLicenses nesnesinde FileProfile::Settings değerini false olarak ayarlayın.
FileProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted,
mAuthDelegate,
std::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<FileProfileObserver>());
profileSettings.SetCanCacheLicenses(false);
Önbellekleme motorları
MIP SDK'sında, kimliği doğrulanmış işlemleri gerçekleştiren her kullanıcı için bir altyapı oluşturulur. Motorlar, kimliği doğrulanmış bir kimlik adına gerçekleştirilen tüm işlemlere yönelik bir arayüz sunar. Profiler ve Motorlar kavramlarında açıklandığı gibi, FileEngine, PolicyEngine veya ProtectionEngine'in her birininCREATED iki durumu LOADED vardır. SDK işlemlerini gerçekleştirebilmesi için bir altyapı oluşturulup yüklenmesi gerekir. Bir altyapı kullanımda değilse SDK, altyapıyı önbelleğe alır ve kullanılabilir kaynaklara bağlı olarak mümkün olduğunca uzun süre durumda tutar CREATED . Her ilgili SDK'nın profil sınıfı, bunu açıkça başarmak için bir yöntem UnloadEngineAsync de sağlar.
Her altyapı, tüm altyapı yönetimi işlemlerinde kullanılan benzersiz bir tanımlayıcıya id sahiptir. İstemci uygulaması açıkça bir kimlik sağlayabilir veya uygulama tarafından sağlanmadıysa SDK bir kimlik oluşturabilir. Altyapı oluşturma sırasında altyapı ayarları nesneleri kullanılarak benzersiz bir tanımlayıcı sağlanırsa ve önbelleğe alma yukarıda açıklandığı gibi API profilinde etkinleştirilirse, kullanıcı SDK ile her işlem gerçekleştirişinde aynı altyapılar kullanılabilir.
[mip::FileEngine](./concept-profile-engine-file-engine-cpp.md#create-file-engine-settings) ve [mip::PolicyEngine](./concept-profile-engine-policy-engine-cpp.md#implementation-create-policy-engine-settings) oluşturmak için kod parçacıklarını izleyin.
Mevcut bir engineId sağlanamaması, ilkeyi getirmek için fazladan hizmet gidiş dönüşlerine neden olur ve mevcut altyapı için önceden önbelleğe alınmış olabilecek lisansları getirir. Altyapı kimliğini önbelleğe almak, SDK'nın daha önce şifresi çözülmüş bilgilere çevrimdışı erişimine ve genel performans iyileştirmelerine olanak tanır.
Sonraki Adımlar
Ardından, MIP altyapısı kimliklerini MIP SDK önbelleğini düzgün kullanacak şekilde ayarlamayı anlamak için Profil ve Altyapı nesne kavramları hakkında daha fazla bilgi edinin.