Anahtar Depolama ve Erişim
- Anahtar Depolama Mimarisi
- Anahtar Türleri
- Desteklenen Algoritmalar
- Anahtar Dizinler ve Dosyalar
Anahtar Depolama Mimarisi
CNG, genel veya özel anahtar şifrelemesi gibi şifreleme özelliklerini kullanan uygulamalar oluşturmanın mevcut ve gelecekteki taleplerine ve anahtar malzemenin depolanmasının taleplerine uyum sağlayan özel anahtar depolama için bir model sağlar. Anahtar depolama yönlendiricisi bu modelin merkezi işlevidir ve Ncrypt.dlliçinde uygulanır. Uygulama, anahtar depolama yönlendiricisi aracılığıyla sistemdeki anahtar depolama sağlayıcılarına (KSP) erişir ve bu yönlendirici hem uygulama hem de depolama sağlayıcısının kendisinden anahtar yalıtımı gibi ayrıntıları gizler. Aşağıdaki çizimde CNG anahtar yalıtım mimarisinin tasarımı ve işlevi gösterilmektedir.
Ortak ölçütler (CC) gereksinimlerine uymak için, uzun ömürlü anahtarların uygulama sürecinde hiçbir zaman mevcut olmayacak şekilde yalıtılması gerekir. CNG şu anda Windows Server 2008 ve Windows Vista ile birlikte gelen ve varsayılan olarak yüklenen Microsoft yazılımı KSP'sini kullanarak asimetrik özel anahtarların depolanmasını desteklemektedir.
Windows Server 2008 ve Windows Vista'da anahtar yalıtımı varsayılan olarak etkindir. Anahtar yalıtımı özelliği, bunlardan önceki platformlarda kullanılamaz. Ayrıca, üçüncü taraf KSP'ler anahtar yalıtım servisine (LSA işlemi) yüklenmez. Anahtar yalıtım hizmetine yalnızca Microsoft KSP yüklenir.
LSA işlemi, performansı en üst düzeye çıkarmak için anahtar yalıtım işlemi olarak kullanılır. Özel anahtarlara tüm erişim, özel anahtarları yönetmek ve kullanmak için kapsamlı bir işlev kümesi sunan anahtar depolama yönlendiricisi üzerinden geçer.
CNG, depolanan anahtarın genel bölümünü özel kısımdan ayrı olarak depolar. Anahtar çiftinin ortak bölümü de anahtar yalıtım hizmetinde tutulur ve yerel uzak yordam çağrısı (LRPC) kullanılarak erişilir. Anahtar depolama yönlendiricisi, anahtar yalıtım işlemine çağrı yaparken LRPC kullanır. Özel anahtarlara tüm erişim, özel anahtar yönlendiriciden geçer ve CNG tarafından denetlenür.
Yukarıda açıklandığı gibi, çok çeşitli donanım depolama cihazları desteklenebilir. Her durumda, tüm bu depolama cihazlarının arabirimi aynıdır. Çeşitli özel anahtar işlemleri gerçekleştirmeye yönelik işlevlerin yanı sıra anahtar depolama ve yönetimle ilgili işlevleri içerir.
CNG, şifreleme anahtarları oluşturmak, depolamak ve almak için kullanılan bir dizi API sağlar. Bu API'lerin listesi için bkz.CNG Anahtar Depolama İşlevleri
Anahtar Türleri
CNG aşağıdaki anahtar türlerini destekler:
- Diffie-Hellman açık ve özel anahtarlar.
- Dijital İmza Algoritması (DSA, FIPS 186-2) ortak ve özel anahtarlar.
- RSA (PKCS #1) ortak ve özel anahtarlar.
- Çeşitli eski (CryptoAPI) genel ve özel anahtarlar.
- Eliptik Eğri Şifreleme ortak ve özel anahtarlar.
Desteklenen Algoritmalar
CNG aşağıdaki anahtar algoritmalarını destekler.
Algoritma | Anahtar/karma uzunluğu (bit) |
---|---|
RSA | 64 bitlik artışlarla 512 ile 16384 |
DH | 64 bitlik artışlarla 512 ile 16384 |
DSA | 512 ile 1024 arasında, 64 bitlik artışlarla |
ECDSA | P-256, P-384, P-521 (NIST Eğrileri) |
ECDH | P-256, P-384, P-521 (NIST Eğrileri) |
MD2 | 128 |
MD4 | 128 |
MD5 | 128 |
SHA-1 | 160 |
SHA-256 | 256 |
SHA-384 | 384 |
SHA-512 | 512 |
Anahtar Dizinler ve Dosyalar
Microsoft'un eski CryptoAPI CSP'leri özel anahtarları aşağıdaki dizinlerde depolar.
Anahtar türü | Dizin |
---|---|
Kullanıcı Gizliliği | %APPDATA%\Microsoft\Crypto\RSA\Kullanıcı SID\ %APPDATA%\Microsoft\Crypto\DSS\Kullanıcı SID\ |
Yerel sistem özel | %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\RSA\S-1-5-18\ %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\DSS\S-1-5-18\ |
Yerel özel hizmet | %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\RSA\S-1-5-19\ %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\DSS\S-1-5-19\ |
Özel ağ hizmeti | %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\RSA\S-1-5-20\ %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\DSS\S-1-5-20\ |
Paylaşılan özel | %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\RSA\MachineKeys %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\DSS\MachineKeys |
CNG, özel anahtarları aşağıdaki dizinlerde depolar.
Anahtar türü | Dizin |
---|---|
Kullanıcıya Özel | %APPDATA%\Microsoft\Crypto\Keys |
Yerel sistem özel | %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\SystemKeys |
Özel yerel servis | %WINDIR%\ServiceProfiles\LocalService |
Özel ağ hizmeti | %WINDIR%\ServiceProfiles\NetworkService |
Özel Olarak Paylaşılan | %ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\Keys |
CryptoAPI ve CNG anahtar kapsayıcıları arasındaki farklardan bazıları aşağıdadır.
- CNG, anahtar dosyaları için Rsaenh.dll ve Dssenh.dll gibi eski CSP'ler tarafından oluşturulan anahtar dosyalarından farklı dosya adları kullanır. Eski anahtar dosyaları da .key uzantısına sahiptir, ancak CNG anahtar dosyaları .key uzantısına sahip değildir.
- CNG, Unicode anahtar kapsayıcı adlarını tam olarak destekler; CNG, Unicode kapsayıcı adının karmasını, CryptoAPI ise ANSI kapsayıcı adının karmasını kullanır.
- CNG, RSA anahtar çiftleri açısından daha esnektir. Örneğin, CNG, uzunluğu 32 bitten büyük olan genel üsleri destekler ve p ve q'nun farklı uzunluklarda olduğu anahtarları da destekler.
- CryptoAPI'de anahtar kapsayıcı dosyası, adı kullanıcının SID'sinin metin eşdeğeri olan bir dizinde depolanır. Artık CNG'de bu durum söz konusu değildir. Bu, tüm özel anahtarlarını kaybetmeden kullanıcıları bir etki alanından diğerine taşımanın zorluğunu ortadan kaldırır.
- CNG KSP ve anahtar adları MAX_PATH Unicode karakterlerle sınırlıdır. CryptoAPI CSP ve anahtar adları MAX_PATH ANSI karakterleriyle sınırlıdır.
- CNG, kullanıcı tanımlı anahtar özellikleri özelliği sunar. Kullanıcılar özel özellikleri oluşturabilir ve anahtarlarla ilişkilendirebilir ve kalıcı anahtarlarla depolayabilir.
Bir anahtarı kalıcı hale geldiğinde CNG iki dosya oluşturabilir. İlk dosya, yeni CNG biçiminde özel anahtarı içerir ve her zaman oluşturulur. Bu dosya eski CryptoAPI CSP'leri tarafından kullanılamaz. İkinci dosya, eski CryptoAPI anahtar kapsayıcısında aynı özel anahtarı içerir. İkinci dosya, Rsaenh.dlltarafından kullanılan biçime ve konuma uygundur. İkinci dosyanın oluşturulması, yalnızca bir RSA anahtarını sonlandırmak için NCryptFinalizeKey işlevi çağrıldığında NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG bayrağı belirtildiğinde gerçekleşir. Bu özellik DSA ve DH anahtarları için desteklenmez.
Bir uygulama mevcut kalıcı anahtarı açmaya çalıştığında, CNG önce yerel CNG dosyasını açmayı dener. Bu dosya yoksa, CNG eski CryptoAPI anahtar kapsayıcısında eşleşen bir anahtar bulmaya çalışır.
Windows Kullanıcı Durumu Geçiş Aracı (USMT) ile bir kaynak makinedeki CryptoAPI anahtarlarını hedef makineye taşıdığınızda veya kopyaladığınızda, CNG hedef makinedeki anahtarlara erişemez. Bu tür geçirilen anahtarlara erişmek için CryptoAPI kullanmanız gerekir.
İlgili içerik
CNG Anahtar Depolama İşlevleri
anahtar depolama özellik tanımlayıcıları