Tôi cần lưu trữ khóa chuỗi riêng tư bên trong ứng dụng. Giá trị của nó sẽ không bao giờ thay đổi và được đặt thủ công trong mã. Tôi rõ ràng không thể lưu trữ nó như là một phương pháp kỹ thuật đảo ngược sẽ tiết lộ nó, ngay cả với obfuscation được áp dụng.Giải pháp chống hack cho khóa bí mật trong ứng dụng Android?
Bạn đề xuất tôi bảo vệ khóa riêng tư này bằng cách nào?
Tôi mặc dù lưu nó vào cơ sở dữ liệu, nhưng cơ sở dữ liệu cũng có thể được rút ra khỏi điện thoại.
PS. khóa này là một tham số đặc biệt nên một phương pháp quan trọng và điều quan trọng là nó vẫn không được ai biết đến! Nó không phải là một chìa khóa giải mã. Chuỗi này sẽ được sử dụng làm tham số cho phương thức mã hóa (md5 hoặc tương tự) và sau đó kết quả sẽ được gửi đến dịch vụ Internet của chúng tôi.
EDIT
Xin lỗi, để làm cho nó quá phức tạp. Tôi nghĩ tôi có thể nhận được câu trả lời với càng ít thông tin càng tốt.
Ứng dụng này sẽ cho phép người dùng gửi một số văn bản tới dịch vụ Internet sau đó đăng văn bản đó lên trang web. Chúng tôi cần đảm bảo rằng văn bản được gửi qua điện thoại Android vì bất kỳ tập lệnh robot web nào đều có thể bắt chước điện thoại Android và đăng spam. Vì các phương thức giống như captcha không được chào đón trên điện thoại di động, sẽ có khóa bí mật sẽ được đưa qua md5 (với một số thứ khác) để tạo mã băm. Mã băm này sẽ được gửi đến một dịch vụ Internet. Dịch vụ Internet sẽ sử dụng cùng một khóa để nhận kết quả md5 và sau đó so sánh nó để xem người gửi có phải là điện thoại di động hay một số rô bốt hay không.
Đây thực sự là số tiền tối đa tôi được phép nói. Tôi hy vọng nó là đủ.
"điều quan trọng là nó vẫn không được ai biết đến" Nếu nó thực sự quan trọng, bạn không thể đưa nó vào ứng dụng. Nếu không, kẻ tấn công chỉ có thể bước qua mã của bạn bằng trình gỡ lỗi, dừng tại thời điểm mã của bạn sử dụng chuỗi và kiểm tra nội dung. Kẻ tấn công không cần biết cách giải mã chuỗi, nhưng chỉ cần cài đặt các công cụ dành cho nhà phát triển Android để cho phép mã của bạn thực hiện giải mã thay thế. –
@AdamMihalcin Không, chuỗi này sẽ được sử dụng ** để mã hóa ** và sau đó kết quả sẽ được gửi đến một số dịch vụ Internet khác. Điều này có thay đổi gì không? – sandalone
Tôi đồng ý, nếu bạn sử dụng chuỗi như pswd/TAN hoặc tương tự, bạn có thể xem xét cách ngân hàng thực hiện việc này bằng cách gửi mã sử dụng một lần tới thiết bị di động và chỉ sử dụng mã này - mỗi khi người dùng muốn truy cập anh ta nhận được một cái mới. @Adam Mihalcin, ý bạn là gì? Tôi hiểu rằng người ta có thể XEM vào mã, tuy nhiên, gỡ lỗi một ứng dụng đã tải, làm thế nào điều này có thể? – user387184