2015-03-04 11 views
8

Tôi có một pin người dùng được lưu trữ trong Keychain iOS. Đối với mọi nỗ lực pin, tôi sử dụng SecItemCopyMatching để truy xuất mã tham chiếu và sau đó thực hiện so sánh.Kiểm tra ghim mà không cần rời khỏi Khóa móc iOS

Vấn đề là, trong một khoảng thời gian ngắn, pin tham chiếu đã truy xuất sẽ chuyển vào bộ nhớ làm việc của ứng dụng. Nếu điện thoại bị xâm phạm, pin tham chiếu có thể bị đọc.

Có cách nào để vượt qua nỗ lực ghim vào Keychain và Keychain có so sánh với chốt tham chiếu trong môi trường bảo mật của nó không? (Phần tử bảo mật có thể thực hiện loại công cụ đó không?)

Trả lời

2

Tôi nghĩ điều này có thể giúp bạn đạt được câu trả lời cuối cùng vì 1Password đang đối mặt với cùng một vấn đề.

https://guides.agilebits.com/kb/security/en/topic/touch-id-pin-code-and-ios-keychain

Nhưng dựa trên những gì tôi đọc, những gì bạn muốn đạt được là không thể cho bây giờ. Những thông tin gần nhất tôi có thể tìm được cái này:

What is the correct way to clear sensitive data from memory in iOS?

và điều này một:

Sensitive Data In Memory

Nơi bạn có thể đọc:

Nếu kẻ thù của bạn có khả năng chạy mã tùy ý trên máy mục tiêu của bạn (với các đặc quyền gỡ lỗi cần thiết để kết xuất một hệ thống s hình ảnh), bạn là tất cả các loại hơi say.

Vì vậy, câu trả lời của tôi là: Không, bạn không thể kiểm tra ghim mà không cần rời khỏi Keychain iOS.

2

không thể thực hiện theo cách bạn đề xuất. móc khóa là bộ lưu trữ

nhưng có thực sự là vấn đề nếu mục đó nằm trong bộ nhớ dễ bay hơi?
Ý tôi là .. nếu keychain được mở, nó đã có trong bộ nhớ (ít nhất là khi kiểm tra được thực hiện)

6

Nói chung, bạn lưu trữ băm một chiều của mật khẩu bằng muối chứ không phải thực tế mật khẩu. Để xác minh, thêm muối, băm chuỗi, so sánh với băm được lưu trữ và nếu nó phù hợp, nó được xác minh.

Sức mạnh sau đó, là sức mạnh của thuật toán, muối và mật khẩu.

+0

Vấn đề là mã pin gồm 4 chữ số, vì vậy, băm có thể dễ dàng bị lỗi. – Randomblue

+2

Rất đúng. Lạ lùng là bạn sẽ gọi một mật mã PIN. Tuy nhiên, nó tốt hơn là không có gì. Tuy nhiên, có vẻ như một vấn đề [x-y] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+0

Xin lỗi về điều đó! Vấn đề bây giờ được tuyên bố chính xác. – Randomblue

3

Bạn có thể có một mục có tên là pin băm, sau đó bạn có thể kiểm tra xem các mục có tồn tại khi người dùng nhập một ghim sau khi băm hay không.

Bạn có thể cần phải làm sạch mục khỏi móc khóa khi pin thay đổi.

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