Tôi đang điều tra bằng cách sử dụng Keystore được bảo mật/cải tiến được giới thiệu trong Android 4.3.Android Keystore, giá trị bảo mật của khóa
Tôi muốn lưu trữ khóa mã hóa bên trong kho khóa này, khóa này được sử dụng để mã hóa một db sqllite và các giá trị chứa trong các tùy chọn được chia sẻ của tôi.
Khi tôi hãy nhìn vào các mẫu KeyStore trong SDK tôi thấy như sau:
public static final String ALIAS = "my_key"
Nếu ai đó sẽ có thể dịch ngược mã của tôi họ sẽ có thể nhìn thấy bí danh cleartext (= phím để lấy khóa mã hóa từ kho khóa) và do đó họ có thể lấy tham chiếu đến khóa mã hóa của tôi. Làm thế nào tôi có thể quản lý ALIAS một cách bảo mật? hoặc tôi đang thiếu điểm ở đây?
Có thể chỉ ra đó là mật khẩu không? Tôi hiện đang xem KeyStoreHelper.java từ các mẫu. Tôi có thể thấy có một đối tượng KeyPair được tạo ra từ KeyPairGenerator. Đối tượng này có chứa khóa riêng và khóa công khai không? Nó sẽ có thể cho một kẻ tấn công để đóng gói lại mã của tôi và nhận được acces để các phím? –
@ user2987274 Các mật khẩu được sử dụng cùng với lớp ['KeyStore'] (http://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html) trong' load', phương thức 'getKey' và' setKeyEntry'. Khóa không có mật khẩu được liên kết cho đến khi bạn lưu nó vào kho khóa. Vì vậy, một đối tượng 'KeyPair' mới được tạo ra không có mật khẩu cho đến khi bạn duy trì nó trong kho khóa. –
Chỉ để chắc chắn. Một người nào đó sẽ dịch ngược mã của tôi và nhận được một tham chiếu đến ALIAS sẽ không thể đóng gói lại mã và nhận được một tham chiếu đến KeyPair do đó nó không được tiếp tục tồn tại?hoặc cái gì khác ngăn cản người đó để có được một tham chiếu đến KeyPair chính xác? –