2011-12-19 48 views
7

Tôi cần thực hiện yêu cầu đối với dịch vụ web thông qua ứng dụng Android. Dịch vụ web có thể được thiết kế khi cần. Có vẻ như với tôi rằng không có vấn đề gì tôi sẽ chọn, một người muốn hack nó, sẽ chỉ cần đảo ngược kỹ sư Mã appliaction Android của tôi (mà không phải là rất khó) và có thể thấy chính xác những gì tôi làm , tôi sẽ mã hóa dữ liệu, sử dụng Mật khẩu được mã hóa cứng hoặc bất kỳ giải pháp nào khác cho vấn đề đó.Yêu cầu dịch vụ web bảo mật

Có giải pháp nào an toàn 100% không?

+0

Hãy xem điều này. Tôi nghĩ rằng họ đang yêu cầu cùng một điều: http://stackoverflow.com/questions/2320937/securing-communication-from-android-to-a-web-service – eboix

+0

Tôi đã đọc câu trả lời này trước khi đặt câu hỏi - nhưng Tôi không nghĩ rằng nó giải quyết vấn đề kỹ thuật đảo ngược ứng dụng. –

+0

bạn có thể mã hóa dữ liệu, lưu trữ mã băm của khóa trong db và mã hóa db. điều này sẽ khó khăn hơn để hack – Mal

Trả lời

6

Không có an toàn 100%, tất cả những gì bạn có thể làm là khiến mọi thứ trở nên khó khăn hơn cho kẻ tấn công của bạn. Những điều bạn có thể xem xét:

  • Encryption - Đi qua yêu cầu của bạn qua kênh mã hóa sẽ ngừng sniffing cơ bản (điều này có thể được phản với MITM)

  • Obfuscation - Thực hiện ý định của bạn khó hiểu khi họ làm dịch ngược ứng dụng của bạn

Phần thứ hai là giảm nhẹ - khả năng nhận thấy khi ứng dụng của bạn bị xâm nhập và xử lý. Một cách điển hình để xử lý việc này là gán một mã thông báo duy nhất cho mỗi máy khách vào lần chạy đầu tiên sau đó chuyển nó thành một đối số trên mỗi cuộc gọi đến dịch vụ của bạn. Bằng cách này, nếu ai đó giải mã ứng dụng của bạn và tìm ra cách gọi dịch vụ của bạn, ít nhất bạn cũng có thể bắt đầu theo dõi các yêu cầu lạm dụng và giám sát hành vi đáng ngờ (nghĩa là nhiều yêu cầu từ cùng một khóa trong một khoảng thời gian ngắn). trên các địa chỉ IP khác nhau). Từ đó bạn có thể bắt đầu khóa các phím.

+1

+1 Câu trả lời hay, hy vọng điều tốt nhất - chuẩn bị cho điều tồi tệ nhất – amelvin

+0

Xem http://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ này –

2

Bạn đang lo lắng về việc "hack", nhưng cơ sở của bất kỳ cuộc thảo luận bảo mật nào đang xác định rủi ro.

Bạn đang cố gắng bảo vệ chống lại điều gì?

Ví dụ: bạn đang cố gắng bảo vệ chống lại kẻ tấn công để đọc kết nối của người khác với máy chủ?

Một giải pháp đơn giản và an toàn cho trường hợp này là sử dụng trao đổi khóa bất đối xứng cho khóa mã hóa đối xứng hoặc sử dụng giao thức hiện tại thực hiện điều này (ví dụ: HTTPS). nhúng khóa cá nhân của máy chủ (hoặc chứng chỉ nếu sử dụng HTTPS) để bảo vệ chống lại các cuộc tấn công trung gian. Đảo ngược kỹ thuật ứng dụng của bạn sẽ không giúp kẻ tấn công ở đây.

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