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.
Windows 7'dan başlayarak, Windows Logo Programı (WLP) aracılığıyla logo sertifikalı akıllı kart minidriver'lar Windows Tak Çalıştır bileşenleri tarafından otomatik olarak indirilir ve yüklenir. Windows 7 ayrıca, PIV uyumlu kartlar ve GIDS kart yüzeyini destekleyen kartlar için bir sınıf mini sürücü sunar.
Okuyucuya akıllı kart takıldığında Windows aşağıdaki bulma işlemlerini gerçekleştirir:
Akıllı Kart Tak Çalıştır İşlemi:
Bu süreç, Tak ve Çalıştır aracılığıyla Windows Update'ten logo sertifikalı bir mini sürücüyü talep eder ve indirir.
Winscard Bulma İşlemi: Bu işlem, uyumlu bir akıllı kartı PIV veya GIDS uyumlu bir sınıf mini sürücüsüyle ilişkilendirir.
Windows Akıllı Kart Sınıfı MiniDriver Bulma İşlemi: Bu işlem, yüklü bir minidriver'ı akıllı kartla ilişkilendirir.
Aşağıdaki tablo, farklı bulma işlemlerinin kullandığı AID değerlerini listeler.
| AID adı | AID değeri | Açıklama |
|---|---|---|
| PIV YARDıMı | A0 00 00 03 08 00 00 10 00 xx yy | Sürüm bilgilerini içermeyen PIV AID. Microsoft akıllı kart çerçevesi en az önemli 2 baytı yoksayar. |
| MS GIDS AID | A0 00 00 03 97 42 54 46 59 xx yy | Sürüm bilgilerini içermeyen Microsoft (MS) GIDS AID. En az önemli 2 bayt karta gönderilmez, ancak ana bilgisayar tarafından aşağıdaki gibi ayrılır:
|
| SC PNP YARDıMı | A0 00 00 03 97 43 49 44 5F 01 00 | Akıllı kart Tak Çalıştır AID. |
Aşağıdaki tabloda bulma işlemi tarafından kullanılan dosyalar listelenmiştir.
| Komut | Yönerge (INS) değeri |
|---|---|
| MF | 0x3F00 |
| EF. ATR | 0x2F01 |
Aşağıdaki tabloda, farklı bulma işlemlerinin kullandığı komutlar listelenir.
| Komut | Yönerge (INS) değeri |
|---|---|
| SEÇ | 0xA4 |
| VERI ALMA | 0xCA |
| YANıT ALMA | 0xC0 |
Akıllı Kart Tak Çalıştır İşlemi
Tak ve Kullan, uyumlu bir gelen kutusu mini sürücüsü yoksa bir akıllı kart mini sürücüsü yükler. Plug and Play ayrıca yüklü akıllı kart mini sürücülerini Windows Update aracılığıyla günceller.
Bu görevlerden birini gerçekleştirmek için Tak Çalıştır'ın akıllı kart için benzersiz bir kimlik türetebilmesi gerekir. Windows 7'den başlayarak, Tak ve Kullan'ın kart için benzersiz bir kimlik türetmek için kullandığı akıllı kart bulma işlemi aşağıda açıklanmaktadır:
Tak ve Çalıştır, ATR'den tarihsel baytları alır. Bu baytlar bu bulma işleminin ilerleyen bölümlerinde kullanılır.
Plug and Play, SC PNP AID'i bulmak için bir SELECT komutu uygular. Plug and Play, Windows'a özel etiket 0x7F68'i (ASN.1 DER kodlu) bulmak için bir GET DATA komutu uygular. Daha fazla bilgi için aşağıdaki "Windows Akıllı Kart Çerçevesi Kart Tanımlayıcısı" alt bölümüne bakın. Bu komut başarılı olursa, benzersiz tanımlayıcıların listesi döndürülür. Tak çalıştır, listedeki ilk tanımlayıcıyı akıllı kartın cihaz kimliği olarak kullanır ve kartın benzersiz kimliği için bu değeri kullanır. Daha fazla bilgi için bkz . Cihaz kimlikleri.
Tak Çalıştır akıllı kart için benzersiz bir kimlik türetirse, 12. adıma geçer.
Windows yukarıdaki adımda bir cihaz kimliği elde edemezse, MF ve EF'ye ait SELECT komutunu verir. Ardından ATR ve READ BINARY komutunu uygular. Windows, WU için cihaz kimliği olarak kullanabileceği benzersiz bir tanımlayıcı almayı başarırsa, 12. adıma gidin.
Tak Çalıştır, yukarıdaki adımda benzersiz bir tanımlayıcı edinemezse, PIV AID için bir SELECT komutu çalıştırır. Tak çalıştır başarılı olursa, akıllı kartı PIV uyumlu bir cihaz olarak kabul eder. Tak ve çalıştır, kartın benzersiz kimliği olarak aşağıdakileri kullanır:
- Cihazın uyumlu kimliği olarak PIV uyumlu cihaz kimliğini kullanın. Daha fazla bilgi için bkz . Uyumlu kimlikler.
- Cihazın kimliği olarak kartın ATR tarihsel baytları. Geçmiş ATR baytları yoksa Windows, cihaz kimliği olarak PIV uyumlu cihaz kimliğini kullanır.
Tak Çalıştır akıllı kart için benzersiz bir kimlik türetirse, 12. adıma geçer.
4. adımdaki SELECT komutu başarısız olursa, Windows MS GIDS AID için bir SELECT komutu oluşturur. Tak Çalıştır, MS GIDS AID'i seçmeyi başarırsa akıllı kartı GIDS uyumlu bir cihaz olarak kabul eder. Tak ve çalıştır, kartın benzersiz kimliği olarak aşağıdakileri kullanır:
- Uyumlu kimlik olarak GIDS uyumlu cihaz kimliği.
- Cihazın kimliği olarak kartın ATR tarihsel baytları. Geçmiş ATR baytları yoksa, Tak ve çalıştır GIDS uyumlu cihaz kimliğini cihaz kimliği olarak kullanır.
Tak Çalıştır akıllı kart için benzersiz bir kimlik türetirse, 12. adıma geçer.
Tak Çalıştır, PIV AID veya MS GIDS AID'i seçemezse, kartın ATR geçmiş baytlarını (varsa) akıllı kartın benzersiz kimliğinin cihaz kimliği olarak kullanır.
Tak ve Kullan'da ATR geçmiş baytları yoksa, Windows Update için yeterli bilgiye sahip değildir. Tak Çalıştır, bulma sürecinde SCARD_E_UNEXPECTED ile başarısız olur.
Tak Çalıştır akıllı kart için benzersiz bir kimlik türetirse, 12. adıma geçer.
Tak Çalıştır, keşif sürecini durdurur ve özgün tanımlayıcıyı kullanır.
Windows 8'den itibaren, Tak ve Çalıştır özelliği kartın sürücüsünü bulamazsa, kart yerleşik NULL sürücüsüyle eşleştirilir. Daha sonra kartın bilgisayara bağlı bir akıllı kart okuyucuya bağlandığında çalışması için karta özgü ek yazılımlar gerekir.
Winscard Bulma İşlemi
Winscard (Winscard.dll) bulma işlemi, sistemdeki bir kartı yüklü bir mini sürücüyle ilişkilendirmek için kullanılır. SCardListCards veya SCardLocateCards çağrıldığında işlem başlatılır.
Windows 7'den itibaren, Winscard keşif süreci aşağıda açıklanmaktadır:
Winscard, bilgisayarda yüklü akıllı kartları temsil eden çeşitli alt anahtarlar için Calais anahtarının altındaki kayıt defterine bakar. Bu alt anahtarlar şu konumda bulunur:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\SmartCards
Winscard, SmartCards alt anahtarının altındaki her alt anahtarda alt anahtarın ATR değeri ile akıllı karttan alınan ATR değeri arasındaki eşleşmeyi arar. Eşleşme bulunursa 6. adıma gidin.
Winscard, mini sürücü için SmartCards alt anahtarı değeri ile PIV Cihazı ATR Önbelleği (PIV kartları için) veya IDMP ATR Önbelleği (Microsoft GIDS uyumlu kartlar için) alt anahtarları içindeki değer arasında bir eşleşme arar. Eşleşme bulunursa 6. adıma gidin.
Winscard, MS GIDS AID için bir SELECT komutu oluşturur. Bu komut başarılı olursa 6. adıma gidin.
4. adım başarısız olursa, Winscard PIV AID için bir SELECT komutu oluşturur. Bu komut başarılı olursa 6. adıma gidin.
Winscard, kartla eşleşen mini sürücü kayıt defteri anahtarına karşılık gelen kartın adını döndürür.
Aşağıdaki tabloda, Winscard bulma işleminin kullandığı çeşitli kayıt defteri anahtarları açıklanmaktadır.
| Kayıt defteri anahtarı | Kullan |
|---|---|
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Cryptography\Calais\SmartCards | Winscard, 1. adımda Calais\SmartCards anahtarı olarak bu anahtarı kullanır. |
| HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft \Cryptography\Calais\PIV Cihaz ATR Önbelleği | 4. adımda bir eşleşme bulunursa, eşleşen kartın tam ATR değeri bu kayıt defteri anahtarında ikili değer olarak depolanır. Girdinin adı rastgele seçilir.
Bu girdi önbelleğe alındıktan sonra, performansı geliştirmek için 3. adımda kullanılır. |
| HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft \Cryptography\Calais\IDMP ATR Önbelleği | 5. adımda bir eşleşme bulunursa, eşleşen kartın tam ATR değeri bu kayıt defteri anahtarının altında ikili değer olarak depolanır. Girdinin adı rastgele seçilir.
Bu girdi önbelleğe alındıktan sonra, performansı geliştirmek için 3. adımda kullanılır. |
Windows Akıllı Kart Sınıfı Minisürücü Bulma Süreci
CardAcquireContext çağrıldığında Windows akıllı kart sınıfı minidriver aşağıdaki bulma işlemini gerçekleştirir. Mini sürücü, ilişkili kartı PIV veya Microsoft GIDS uyumlu olarak işaretlemek için bu bulma işlemini gerçekleştirir:
Mini sürücü, PIV AID için bir SELECT komutu verir. Komut başarılı olursa kart PIV uyumlu olarak işaretlenir ve bulma işlemi durdurulur.
Aksi takdirde, mini sürücü MS GIDS AID için bir SELECT komutu verir. Komut AID'yi başarılı veya başarısız olursa, minidriver kartı MS GIDS olarak işaretler.
Akıllı kart daha önce sınıf minisürücüsüyle Winscard bulma işlemi aracılığıyla keşfedildiyse, PIV veya GIDS AID için SELECT komutuna yanıt vermeyebilir. Bu durumda, özel bir AID ile GIDS kart arayüzünü uygulayan bir satıcının kartı olmalıdır. Bu tür kartlar Microsoft akıllı kart veri modelini ek veri nesneleriyle genişletebilir.
PIV ve GIDS akıllı kart satıcıları Windows akıllı kart sınıfı minidriver'ı kullanabilir ve yalnızca INF yükleme paketi sağlayarak marka ekleyebilir. Uyumlu kartlar için sınıf minidriver'ını kullanma hakkında daha fazla bilgi için Akıllı Kart Tak Çalıştır bölümündeki INF örneğine bakın. INF'de Tak çalıştır eşleştirmesi için yalnızca geçmiş baytlar kullanılır.
Satıcının sağladığı INF dosyası, Calais\SmartCards kayıt defteri alt anahtarı altında aşağıdaki bilgileri içeren girdiler oluşturur.
| Giriş adı | Türü | Değer |
|---|---|---|
| 80000001 | Dize | Kartın minidriver konumu. Bu, satıcı tarafından sağlanan bir mini sürücünün tam yolu veya system32 dizinindeki veya sürücü deposundaki bir dosyanın adı olabilir. Sürücü paketi tarafından sağlanan bir mini sürücünün, mini sürücüye tam yol sağlamasını ve mini sürücünün sürücü deposundan çalıştırılmasını öneririz. gelen kutusu mini sürücüsü msclmd.dll%windir%\system32 dizininde depolanır. |
| ATR | İkilik | Kartın ATR'si |
| ATRMask | İkilik | Kartın ATR Maskesi |
| Şifreleme Sağlayıcısı | Dize | Microsoft Base Akıllı Kart Kripto Sağlayıcısı |
| Akıllı Kart Anahtar Depolama Sağlayıcısı | Dize | Microsoft Akıllı Kart Anahtar Depolama Sağlayıcısı |
Seçim Mekanizmaları
Microsoft tanımlayıcıları içeren uygulamalar
Windows akıllı kart çerçevesi, Microsoft Tak ve Çalıştır Uygulama Tanımlayıcısını kullanarak bir uygulama seçmeye çalışır. Kart belirtilen AID'i desteklemiyorsa SELECT komutundan sonra bir hata döndürmelidir. SELECT komutu başarıyla tamamlanırsa, çerçeve bir GET DATA komutu vererek kartı ve ilgili akıllı kart minidriver'ını tanımlamaya çalışır.
GET DATA komutları, SC Tak Çalıştır YARDıMı'nın desteklenip desteklenmediğine bakılmaksızın gerçekleşir. Bu, diğer AID'lerle ilişkili olan veya herhangi bir AID ile ilişkilendirilmeyen uygulamaların bu belirtimdeki kart seçim mekanizmalarını uygulamasına olanak tanır.
VERI ALMA
Kartta Tak Çalıştır MS AID'i seçtikten sonra akıllı kart çerçevesi, 0x7F68 Windows'a özel etiketiyle bir GET DATA komutu yayınlar. Kart GET DATA komutunu ve özel etiketini destekliyorsa, bir veya daha fazla benzersiz tanımlayıcının listesini döndürerek yanıt verir. Benzersiz tanımlayıcılar, aşağıdaki "Windows Akıllı Kart Çerçevesi Kart Tanımlayıcısı" bölümünde tanımlandığı gibi yapılandırılmalıdır.
Windows akıllı kart çerçevesi, uygun akıllı kart minidriver'ını bulmak ve yüklemek için listedeki yalnızca ilk benzersiz tanımlayıcıyı kullanır. Diğer tanımlayıcılar gelecekte kullanılabilir.
SELECT PIV AID Komutu
Bir PIV uygulamasını tanımlamak için Windows, SELECT PIV AID komutunu sağlar. Bu komut başarılı olursa, kartta bir PIV uygulaması bulunur ve şimdi seçilir. Bu durumda, Windows akıllı kart çerçevesi artık PIV uyumlu bir minidriver'ı kartla ilişkilendirebilir.
SELECT MS GIDS AID Komutu
Bir MS GIDS uygulamasını tanımlamak için SELECT MS GIDS AID komutu kullanılır. Bu komut başarılı olursa, kartta bir MS GIDS uygulaması bulunur ve şimdi seçilir. Windows akıllı kart çerçevesi artık MS GIDS uyumlu bir minidriver'ı kartla ilişkilendirebilir.
ATR Tarihçe Baytlarının Kullanımı
Aşağıdaki koşullar altında, Windows akıllı kart çerçevesi yüklenecek minidriver'ı belirlemek için ATR geçmiş baytlarını yeniden kullanmaya başlar:
- Akıllı kart, GET DATA komutunu desteklemez.
- Akıllı kart, bu belirtimdeki AID seçim yöntemlerini desteklemez.
ATR geçmiş baytlarının kullanımı, eklenen kartı tanımlamak için kullanılan eski yöntemdir. Çerçeve, mini sürücü aramasında tüm geçmiş baytları kullanır.
Windows Akıllı Kart Çerçevesi Kart Tanımlayıcısı
Akıllı kart GET DATA komutunu destekliyorsa, Windows akıllı kart çerçevesi kartın aşağıdaki ASN.1 Yapısında biçimlendirilmiş DER-TLV kodlanmış bir bayt dizisi döndürmesini bekler.
CardID ::= SEQUENCE {
version Version DEFAULT v1,
vendor VENDOR,
guids GUIDS }
Version ::= INTEGER {v1(0), v2(1), v3(2)}
VENDOR ::= IA5STRING(SIZE(0..8))
GUID ::= OCTET STRING(SIZE(16))
GUIDS ::= SEQUENCE OF GUID
Sürüm üyesi 0 (v1) olarak ayarlanmalıdır.
VENDOR üyesi "MSFT" olarak ayarlanmalıdır.
GUID üyesi, kart/uygulama bileşimini benzersiz olarak tanımlayan 16 baytlık bir GUID'dir. Bu değer, uygun akıllı kart minidriver'ını algılamak ve yüklemek için kullanılır.
Uyarı
Uygulamayı veren IHV veya ISV, kartı/uygulama bileşimi için benzersiz bir GUID oluşturmalıdır.