2008-10-10 86 views
8

Tôi cần lưu trữ mật khẩu của người dùng trong ứng dụng iphone của mình.mã hóa mật khẩu trong các ứng dụng iphone

Khi đăng ứng dụng lên cửa hàng ứng dụng, tôi phải thông báo cho Apple nếu có mã hóa trong ứng dụng cho mục đích xuất.

Tôi không muốn ứng dụng của mình bị giới hạn ở Hoa Kỳ, nhưng tôi cũng không muốn lưu trữ hoặc gửi mật khẩu qua mạng dưới dạng văn bản rõ ràng.

Vì vậy, về cơ bản câu hỏi là, tôi có thể mã hóa mật khẩu theo cách sẽ không khiến ứng dụng của tôi bị hạn chế không?

Trả lời

5

Hình như được cung cấp crypt() chức năng có thể được sử dụng cho mật khẩu:

Thư viện này (FreeSec 1.0) đã được phát triển bên ngoài Hoa Kỳ như một sự thay thế không bị cản trở cho các thư viện mã hóa libcrypt U.S.only. Các chương trình liên kết với giao diện crypt() chỉ có thể được xuất từ ​​Hoa Kỳ nếu chúng sử dụng crypt() chỉ cho mục đích xác thực authentica-tion và tránh sử dụng các giao diện lập trình khác được liệt kê ở trên. Việc chăm sóc đặc biệt đã được thực hiện trong thư viện để các chương trình chỉ sử dụng giao diện crypt() không kéo vào các thành phần khác.

(từ tài liệu iphone cho hầm mộ (3))

+0

nếu họ sử dụng crypt() chỉ dành cho mục đích xác thực ... Tôi không tin bạn đọc trang người đàn ông chính xác. Xác thực không phải là mã hóa. Xác thực chưa bao giờ bị hạn chế (IIRC) - chỉ mã hóa. Ví dụ, một mô đun RSA lớn, chất béo: nếu được sử dụng cho chữ ký RSA, không có vấn đề gì. Sử dụng cùng một mô-đun lớn để mã hóa và bạn phải tuân thủ các quy định xuất khẩu. BTW, nếu bạn có một mật mã đối xứng sử dụng các khóa 63 bit, bạn không sao. Với 64 bit, bạn cần liên hệ với Bộ Thương mại để được cấp giấy phép - xem http://www.bis.doc.gov/encryption/massmarket_keys64bitsnup.html. – jww

5

Trước tiên, nếu tên người dùng và mật khẩu được mã hóa và giải mã trên điện thoại, thì khóa giải mã rõ ràng là cũng trên điện thoại và khá nhiều vô giá trị. Tôi sẽ không lo lắng về việc lưu trữ tên người dùng và mật khẩu được mã hóa trên điện thoại.

Để liên lạc an toàn, bạn nên sử dụng SSL có thể nằm trong thư viện đã có trên điện thoại. Nếu bạn sử dụng thư viện là một phần của hệ điều hành điện thoại, tôi không nghĩ điều đó có nghĩa là ứng dụng của bạn "chứa mã hóa".

Tất nhiên, tôi không phải là luật sư. Ai biết được - pháp luật có thể xem xét "lợn latin" một công nghệ mã hóa hợp lệ.

8

Chỉ cần lưu trữ mật khẩu trong keychain. Nó là một hệ thống API táo cung cấp, và bạn không cần phải biết bất cứ điều gì về mã hóa. Apple gửi nó, là trách nhiệm của họ để đảm bảo tuân thủ xuất khẩu của các khung hệ thống. Có lẽ họ sử dụng mã hóa yếu hơn (hoặc không) nếu họ bán thiết bị ở bất kỳ nơi nào bị cấm, nhưng nếu bạn sử dụng các API sẵn có, bạn sẽ không gửi bất kỳ mã mã hóa bị hạn chế xuất nào trong mã nhị phân của mình và cách duy nhất bạn có thể hiểu khi làm như vậy có nghĩa là Apple đang vận chuyển nó với mọi iPhone.

Có nói rằng, tôi không phải là luật sư, tôi khuyên bạn nên tham khảo ý kiến ​​nếu bạn lo lắng về điều đó. Không có một số lời khuyên lập trình viên khác đặc biệt liên quan đến những gì về cơ bản là một vấn đề pháp lý.

+2

Tôi hỏi liệu việc sử dụng keychain có nghĩa là phải tuyên bố rằng bạn sử dụng mã hóa tại Tech Talk năm ngoái và câu trả lời là "chúng tôi không biết" – philsquared

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