Bảo mật React Native App sử dụng Keychain

Tram Ho

Bảo mật luôn là vấn đề tuyệt đối quan trọng của phần mềm. Đối với ứng dụng cho thiết bị di động, thông thường chúng ta sẽ phải bảo mật các thông tin như tên tài khoản, mật khẩu, touch id, thông tin thẻ tín dụng v.v .

Thư viện react-native-keychain cung cấp keychain/keystore để chúng ta lưu trữ và lấy thông tin lưu trữ một cách an toàn cho ứng dụng.

Cài đặt

  1. Chạy lệnh:

  1. Nếu version React Native <= 0.59, chạy tiếp lệnh sau để liên kết thư viện:

  1. Chạy pod install ở thư mục ios/ để cài đặt iOS dependencies
  2. Nếu muốn hỗ trợ FaceID, hãy thêm NSFaceIDUsageDescription entry vào Info.plist

Sử dụng

Hãy xem ví dụ dưới đây, chúng ta sẽ lưu trữ và truy cập thông tin đăng nhập với Keychain nhé.

setGenericPassword

Function này sẽ lưu trữ thông tin username/password vào secure storage. Lưu ý rằng function này sẽ chỉ lưu trữ string nên nếu muốn lưu trữ thông tin dạng object thì chúng ta phải chuyển sang JSON string để lưu trữ nhé.

getGenericPassword

Function này sẽ giúp chúng ta lấy được thông tin đăng nhập đã lưu ở secure storage.

resetGenericPassword

Function này sẽ xóa toàn bộ các thông tin đăng nhập đã lưu và reset nó lại.

getSupportedBiometryType

Function này sẽ dùng để check sinh trắc học mà thiết bị hỗ trợ

Sử dụng với server

Thư viện này cũng cung cấp API để lưu trữ server information cùng với username và password.

Chú thích

Đối với Android, module này sẽ implement CipherStorage dựa trên API level:

  • API level 16-22 sẽ en/de crypt sử dụng Facebook Conceal
  • API level 23+ sẽ en/de crypt sử dụng Android Keystore

Thông tin đã mã hóa sẽ được lưu trữ ở SharedPreference.

Tham khảo:

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo