2015-03-09 20 views
7

Tôi có thể xác thực thành công ID người dùng Touch ID. Tuy nhiên, cách an toàn nhất để truy xuất thông tin đăng nhập và mật khẩu người dùng để thực hiện đăng nhập khi xác thực ID cảm ứng thành công là gì.Làm cách nào để liên kết ID cảm ứng với bằng chứng xác thực đăng nhập?

Đối với iTunes kết nối ứng dụng, khi đăng nhập ID cảm ứng thành công, có vẻ như nó sẽ truy xuất mật khẩu cục bộ và điền vào mật khẩu UITextField. Tôi đoán nó đang sử dụng keychain.

Tuy nhiên, có an toàn để lưu trữ thông tin xác thực người dùng trên chính iPhone không? Có phương pháp nào khác không?

enter image description here

+0

bạn có thể sử dụng để uchID để cung cấp quyền truy cập được xác thực cho KeyChain - tham khảo mã mẫu của Apple. KeyChain cung cấp bộ nhớ an toàn cho mật khẩu. – Paulw11

+0

Thx @ Paulw11 Có thực sự an toàn khi lưu trữ thông tin đăng nhập của người dùng trong keychain không? Tôi đang xây dựng một ứng dụng có dữ liệu nhạy cảm cao. Gần đây, khách hàng muốn tích hợp chức năng id cảm ứng. – user1872384

+2

Rất có thể bạn sẽ có thể xây dựng một thùng chứa an toàn hơn KeyChain cung cấp - Giấy trắng này cung cấp một số thông tin cơ bản về cách Keychain hoạt động - http://images.apple.com/business/docs/iOS_Security_Guide_Oct_2014.pdf – Paulw11

Trả lời

4

Bạn muốn lưu trữ các thông tin đăng nhập trong keychain, nhưng bạn cần phải chắc chắn rằng các tham số khả năng tiếp cận được thiết lập để kSecAttrAccessibleWhenUnlocked hoặc kSecAttrAccessibleWhenUnlockedThisDeviceOnly (kSecAttrAccessibleWhenUnlockedThisDeviceOnly là một chút an toàn hơn kể từ khi mật khẩu sẽ không rời khỏi thiết bị , nói khi thiết bị được hỗ trợ lên đến máy tính xách tay của bạn.)

NSMutableDictionary *query = [NSMutableDictionary dictionary]; 
[query setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass]; 
[query setObject:account forKey:(id)kSecAttrAccount]; 
[query setObject:(id)kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible]; 
[query setObject:[inputString dataUsingEncoding:NSUTF8StringEncoding] forKey:(id)kSecValueData]; 

OSStatus error = SecItemAdd((CFDictionaryRef)query, NULL); 

(Mã là từ http://software-security.sans.org/blog/2011/01/05/using-keychain-to-store-passwords-ios-iphone-ipad/

Các vấn đề liên quan