SORU
23 Temmuz 2012, PAZARTESİ


Anahtarlık öğesi benzersiz (iOS) nedir?

Soru benim endişeleri iOS Anahtarlık (iPhone, iPad, ...). Mac OS X altında Anahtarlık uygulanması aynı cevabı aynı soruyu yükseltir (ama emin değilim) sanırım.


iOS beş çeşit (sınıflar) Anahtarlık öğeleri sağlar. Anahtarı kSecClass türünü belirlemek için şu beş değeri seçti gerekir:

kSecClassGenericPassword  used to store a generic password
kSecClassInternetPassword used to store an internet password
kSecClassCertificate      used to store a certificate
kSecClassKey              used to store a kryptographic key
kSecClassIdentity         used to store an identity (certificate   private key)

Sonra uzun zaman okuma elma belgeler, bloglar ve forum kayıtları, öğrendim ki bir Anahtarlık öğesi türü kSecClassGenericPassword alır onun benzersiz öznitelikleri kSecAttrAccessGroup, kSecAttrAccount kSecAttrService.

İstek 1'de bu üç nitelikleri ise aynı isteği 2, Daha sonra aynı genel şifre Anahtarlık ürün almak, herhangi bir diğer özellikleri ne olursa olsun. Eğer bir (veya iki veya tüm) bu öznitelik değeri değişirse, o zaman farklı bir ürün olsun.

Ama kSecAttrService sadece kullanılabilir öğeler Türü kSecClassGenericPassword, bu kadar olamaz Bölümünün "benzersiz anahtar" bir maddenin başka bir türü gibi gözüküyor inanın ister inanmayın, bu işaret net olarak hangi nitelikleri belirlemek benzersiz bir Anahtarlık öğesi.

Örnek kodu sınıfı """ özniteliği kSecAttrGeneric Bir öğeyi benzersiz yapmak için kullanır, ama bu bir hata değildir. "GenericKeychain bu KeychainİtemWrapper Bu örnekte iki girişi tek kSecAttrAccessGroup farklı (bir erişim grubu belirledi, diğer ücretsiz sağlar) çünkü iki farklı girdileri olarak saklanır. Eğer erişim bir grup olmadan 2. bir şifre, Apple'ın keychainİtemWrapper kullanarak eklemek için çalışırsanız, başarısız olursunuz.

Lütfen, sorularıma cevap ver:

  • kSecAttrAccessGroup, kSecAttrAccount kSecAttrService kombinasyonu "kSecClassGenericPassword? olan" Anahtarlık öğesi anahtar benzersiz bir gerçek.
  • Hangi öznitelikleri eğer onun kSecClass kSecClassGenericPassword değilse Anahtarlık öğesi benzersiz yapar?

CEVAP
26 Temmuz 2012, PERŞEMBE


Birincil anahtarları aşağıdaki gibi (Apple açık kaynak dosyaları türetilen Schema.m4, KeySchema.m4 SecItem.cpp):

  • Sınıf Anahtarlık öğesi için kSecClassGenericPassword birincil anahtar birleşimidir kSecAttrAccount kSecAttrService.
  • Bir Anahtarlık öğesi sınıf kSecClassInternetPassword birincil anahtar kombinasyonu kSecAttrAccount, kSecAttrSecurityDomain, kSecAttrServer, kSecAttrProtocol, kSecAttrAuthenticationType, kSecAttrPort ve kSecAttrPath.
  • Sınıf Anahtarlık öğesi için kSecClassCertificate birincil anahtar kSecAttrCertificateType, kSecAttrIssuer kSecAttrSerialNumber birleşimidir.
  • Sınıf Anahtarlık öğesi için kSecClassKey birincil anahtarkSecAttrApplicationLabel, kSecAttrApplicationTag, kSecAttrKeyType, birleşimidir kSecAttrKeySizeInBits, kSecAttrEffectiveKeySize ve yaratıcısı, başlangıç tarihi ve Secİtem tarafından maruz olmayan tarih henüz son.
  • Bir Anahtarlık öğesi sınıf kSecClassIdentity bulamadım henüz bilgi birincil anahtar alanları açık kaynak dosyaları, ama bir kimlik kombinasyonu bir özel anahtar ve sertifika, sanırım birincil anahtar kombinasyonu birincil anahtar alanları için kSecClassKey kSecClassCertificate.

Her öğe Anahtarlık Anahtarlık erişim bir gruba ait olarak, Anahtarlık erişim grubu (kSecAttrAccessGroup alan) tüm bu birincil anahtarlar için ilave bir alan gibi geliyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cdgotx

    cdgotx

    8 Kasım 2011
  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • FrankJavCee

    FrankJavCee

    29 Kasım 2008