Ich habe in der Suche, wo Keychain speichert entweder Enklave oder eine andere sichere, fand ich viele Artikel (eine dieser stackoverflow answer), die folgende sagt, aber ich bin auf der Suche nach einigen authentifizierten wie Apple AnweisungWas ist der Unterschied zwischen Schlüsselbund und Secure Enclave
Der Schlüsselbund speichert die Schlüssel (und andere kleine Daten) verschlüsselt und beschränkt den Zugriff auf diese Daten. Zusätzlich befindet sich der Schlüsselbund in neueren iPhones (5S und später) in einem separaten Prozessor, der Secure Enclave, die den Zugriff zusätzlich einschränkt. Es gibt keinen sichereren Weg, Schlüssel in iOS zu speichern.
Also meine Abfragen auf der Grundlage der obigen Aussage.
- Ist Schlüsselanhänger Artikel Speicher in sichere Enklave
- Wenn ja, dann wo öffentlichen Schlüssel und einen privaten Schlüssel
CFTypeRef
Shop Warum wir dieses
kSecAttrTokenIDSecureEnclave
verwenden, während Schlüsselpaar erzeugen. (Beispiel folgenden Code).-(bool) generateKeyPairWithAccessControlObject:(SecAccessControlRef)accessControlRef { CFMutableDictionaryRef accessControlDict = newCFDict;; CFDictionaryAddValue(accessControlDict, kSecAttrAccessControl, accessControlRef); CFDictionaryAddValue(accessControlDict, kSecAttrIsPermanent, kCFBooleanTrue); CFDictionaryAddValue(accessControlDict, kSecAttrLabel, kPrivateKeyName); // create dict which actually saves key into keychain CFMutableDictionaryRef generatePairRef = newCFDict; CFDictionaryAddValue(generatePairRef, kSecAttrTokenID, kSecAttrTokenIDSecureEnclave); CFDictionaryAddValue(generatePairRef, kSecAttrKeyType, kSecAttrKeyTypeEC); CFDictionaryAddValue(generatePairRef, kSecAttrKeySizeInBits, (__bridge const void *)([NSNumber numberWithInt:256])); CFDictionaryAddValue(generatePairRef, kSecPrivateKeyAttrs, accessControlDict); OSStatus status = SecKeyGeneratePair(generatePairRef, &publicKeyRef, &privateKeyRef); if (status != errSecSuccess) return NO; [self savePublicKeyFromRef:publicKeyRef]; return YES; }
für authentifizierte Antwort sucht. Prost
Danke für Ihre Antwort, also, was diese Linie zu tun ist kSecAttrTokenIDSecureEnclave, wenn Keychain Secure Enklave verwenden? – Aleem
Eine weitere Frage mehr Wenn ich privaten Schlüssel von OpenSSL erstellt und dann in SecKeyRef umgewandelt und dann gespeichert habe, wird das also in sichere Enklave gespeichert? . Und können wir diese später wie zum Signieren abrufen. – Aleem
Wenn Sie den privaten Schlüssel nicht zum Signieren abrufen, greift die Signaturoperation auf den Schlüssel aus dem Schlüsselbund zu. – zaph