Microsoft Information Protection SDK - Önbellek depolama
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 , PolicyProfileSettings
veya ProtectionProfileSettings
nesnelerinin bir parçası FileProfileSettings
olarak 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 | Purpose |
---|---|
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 depolama, profil ayarları nesnelerinden biri aracılığıyla, sabit listesi aracılığıyla mip::CacheStorageType
ayarlanır.
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: İ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şlatmalarda 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ği veya koruma lisansı içeriği aracılığıyla düz metin olarak erişim sağlayamayacaklarını sağlamaya yardımcı olur. Her durumda verilerin kullanıcının erişebileceği anahtarlarla şifrelendiğini unutmayın. 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 8 ve daha yenisi | Windows 7 yalnızca Cache Depolama Type::OnDisk'i destekler |
macOS | High Sierra ve üzeri | |
Ubuntu Linux | 16.04 ve üzeri | ve LinuxEncryptedCache özellik bayrağı gerektirirSecretService . |
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 depolamayı etkinleştirmek için özellik bayrağı mip::MipConfiguration::SetFeatureSettings()
Ö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.
Koruma Veritabanı
Tablo | Purpose | Şifreli |
---|---|---|
AuthInfoStore | Kimlik doğrulaması sınaması ayrıntılarını depolar. | Hayır |
ConsentStore | Her altyapı 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 |
Depo -sunun | Her altyapı için simetrik şifreleme anahtarlarını depolar. | Yes |
LicenseStore | 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 | Purpose | Şifreli |
---|---|---|
Depo -sunun | Her altyapı 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 uç ilkesi hizmet URL'sini depolar. | Hayır |
Duyarlılık | Belirli bir kullanıcı ilkesi için sınıflandırma kurallarını depolar. | Yes |
SensitivityUrls | 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ınmış koruma lisanslarının miktarı. MIP SDK 1.3 itibarıyla, süresi dolduğunda lisans önbelleğini temizlemeye ilişkin bir mekanizma yoktur. Önbelleğin istenenden daha büyük olması durumunda önbelleği kaldırmak için bir dış işlem olması gerekir.
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 çok büyük olabileceğinden lisans önbelleği gerekli değilse lisans önbelleği devre dışı bırakılabilir. Bu, nesne üzerinde FileProfile::Settings
false olarak ayarlanarak CanCacheLicenses
gerçekleştirilir.
FileProfile::Settings profileSettings(mMipContext,
mip::CacheStorageType::OnDiskEncrypted,
mAuthDelegate,
std::make_shared<sample::consent::ConsentDelegateImpl>(),
std::make_shared<FileProfileObserver>());
profileSettings.SetCanCacheLicenses(false);
Önbelleğe Alma Altyapıları
MIP SDK'sında, kimliği doğrulanmış işlemleri gerçekleştiren her kullanıcı için bir altyapı oluşturulur. Altyapılar, kimliği doğrulanmış bir kimlik adına gerçekleştirilen tüm işlemler için bir arabirim sağlar. Profiller ve Motorlar kavramları, FileEngine, PolicyEngine veya ProtectionEngine'de açıklandığı gibi her birinin ve LOADED
iki durumu CREATED
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::PolicyEngine](./concept-profile-engine-policy-engine-cpp.md#implementation-create-policy-engine-settings)
oluşturmak [mip::FileEngine](./concept-profile-engine-file-engine-cpp.md#create-file-engine-settings)
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 Alma, SDK'nın daha önce şifresi çözülmüş bilgilere çevrimdışı erişimine ve genel performans geliş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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin