2011-09-21 57 views
6

Ứng dụng iPhone của tôi kết nối với dịch vụ web bằng tên người dùng và mật khẩu.Cách lưu trữ thông tin đăng nhập an toàn được nhập trong Tùy chọn ứng dụng?

Tôi muốn lưu thông tin đăng nhập vào Tùy chọn ứng dụng (gói cài đặt) như ứng dụng Thư. Điều này có đủ an toàn không? Có thể lưu các giá trị đó vào keychain (thông qua Tùy chọn Ứng dụng) không?

Edit:

tôi muốn người dùng của tôi để nhập thông tin của họ trong Preferences Áp dụng App của tôi. Thông thường, tôi có thể truy xuất dữ liệu này trong ứng dụng của mình bằng NSUserDefaults. Nhưng Tùy chọn ứng dụng lưu dữ liệu dưới dạng văn bản thuần túy và không được mã hóa hoặc băm. Có cách nào an toàn không? Ví dụ. Tôi biết móc khóa trên iPhone và tôi thấy nó rất tuyệt! Tôi có thể sử dụng móc khóa để giữ thông tin đăng nhập được nhập trong Tùy chọn ứng dụng không?

Thực phẩm cho suy nghĩ: Apple làm như thế nào? Ý tôi là, khi tôi muốn sử dụng Ứng dụng Thư, tôi cung cấp tên người dùng và mật khẩu của mình trong Tùy chọn Ứng dụng. Các giá trị đó có được lưu trữ dưới dạng văn bản thuần túy không?

+0

Tương tự như câu hỏi này trong ngăn xếp tràn. http://stackoverflow.com/questions/190963/can-i-access-the-keychain-on-the-iphone – iamsult

+0

Không thực sự. Tôi biết móc khóa – Sandro

+0

Vâng, bạn có thể đi với nó – iamsult

Trả lời

5

Bạn đã kiểm tra keychain documentation? Về vấn đề bảo mật, hãy xem white paper bởi Viện Fraunhofer SIT này.

+0

Arne là chính xác Hiện tại không có nơi nào trên thiết bị, nơi bạn có thể lưu trữ một tên người dùng và mật khẩu một cách an toàn. sử dụng r nhập id người dùng và mật khẩu sẽ xác thực ứng dụng. –

+0

Tôi đã kết thúc triển khai chế độ xem chế độ đăng nhập trong ứng dụng của mình để lưu trữ thông tin đăng nhập vào móc khóa. Vì vậy, câu trả lời này là OK. Tuy nhiên, tôi không biết làm cách nào để lưu dữ liệu một cách an toàn từ tùy chọn ứng dụng vào móc khóa – Sandro

2

Keychain Services sẽ được yêu cầu để lưu trữ an toàn. Sử dụng NSUserDefaults sẽ không bảo mật dữ liệu của bạn.

2

Bạn có thể lưu nó một cách an toàn bằng cách sử dụng Security.framework.

Đây là mẫu rất hay từ Apple, nơi nhiều khía cạnh của việc sử dụng khuôn khổ đó được thảo luận. Tôi khuyên bạn nên xem xét nó. Đây là liên kết đến mẫu đó: GenericKeychain

Mẫu này cho biết cách thêm, truy vấn, xóa và cập nhật mục keychain của loại lớp chung. Cũng chứng minh việc sử dụng các mục keychain được chia sẻ. Tất cả các lớp thể hiện hành vi rất giống nhau vì vậy các ví dụ đi kèm sẽ mở rộng đến các lớp khác của Mục Keychain: Mật khẩu Internet, Chứng chỉ, Khóa và Danh tính.

0

Bạn có thể xóa các mục khỏi NSUserDefaults khi ứng dụng của bạn chạy sau khi người dùng sử dụng Cài đặt để nhập chúng vào Tùy chọn ứng dụng của ứng dụng. Sau đó đặt chúng vào trong keychain. Nhưng các mục này có thể ở dạng văn bản thuần trong lưu trữ trong thời gian tạm thời (tùy thuộc vào kiểu iPhone nào, một số có thể mã hóa bộ nhớ flash và bản sao lưu), trước khi bạn có thể xóa chúng khỏi NSUserDefaults.

+0

Tôi đã có cùng suy nghĩ. Nhưng như bạn đã nói: Nó sẽ lưu tạm thời dữ liệu nhạy cảm trong văn bản thuần túy. – Sandro

2

Dường như nhiều người dường như không hiểu câu hỏi của bạn. Thật không may tôi không thể tìm thấy câu trả lời bản thân mình. Câu hỏi đặt ra là làm thế nào để bạn sử dụng keychain và NSUserDefaults cùng một lúc. Tôi cũng muốn sử dụng giao diện NSUserDefaults. Hy vọng rằng chúng tôi có thể tìm ra điều này ...

Một tùy chọn sẽ chỉ để lưu trữ tên người dùng. Sau đó, khi ứng dụng bắt đầu nếu không có mật khẩu trong keychain hoặc nếu có mật khẩu sai trong keychain - hãy yêu cầu mật khẩu mới.

0

Apple sở hữu toàn bộ hệ điều hành và tất nhiên là ứng dụng Thư. Họ đang sử dụng các tính năng bên ngoài SDK công cộng, vì chúng có thể. Bạn nghĩ ứng dụng Thư có thể chạy trong nền và tiếp tục kiểm tra thư của bạn như thế nào?Ứng dụng thông thường không thể đạt được điều này: (

Quay lại câu hỏi chính của bạn, sử dụng keychain là đúng cách để đi. Nhưng bạn có thể không cho phép người dùng nhập mật khẩu tên người dùng & vào Tùy chọn ứng dụng.

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