2014-09-16 13 views
11

Google Auth Util cho phép nhà phát triển Android xác minh rằng các yêu cầu mà máy chủ của họ nhận được đến từ thiết bị Android.GoogleAuthUtil như xác thực thiết bị cho iOS để xác minh rằng các yêu cầu bắt nguồn từ thiết bị Apple

Thiết bị nhận mã thông báo từ Google dựa trên tài khoản Google được liên kết với thiết bị, sau đó yêu cầu từ thiết bị được gửi cùng với mã thông báo đến máy chủ, nơi máy chủ yêu cầu Google nếu mã thông báo hợp lệ. Bất kỳ khóa nào được lưu giữ khỏi nguồn ứng dụng, vì vậy những người độc hại không thể crack ứng dụng và truy cập các khóa cá nhân và yêu cầu gửi đến máy chủ.

Tôi đã tìm một lúc và có vẻ như Apple không cung cấp bất cứ điều gì như thế này nhưng tôi đã hy vọng có một cái gì đó chức năng tương tự như tôi có thể sử dụng cho iOS.

Trả lời

1

Cập nhật

Mặc dù giả thiết ngầm trong câu hỏi có vẻ hợp lý nhưng không thực sự đúng. Đọc thêm về các nguồn của Google tiết lộ rằng mục đích của Auth Util (và sau này là Firebase) là để xác thực người dùng và bảo mật máy chủ. Do máy chủ chỉ thấy lưu lượng mạng, nên có thể sao lưu lưu lượng truy cập từ một ứng dụng khách khác.

Ngoài ra, định nghĩa của Android khá mờ, vì OEM sửa đổi hệ điều hành cơ sở cho phù hợp với nhu cầu của họ.

Điều này có thể sai

Một lựa chọn là sử dụng Apple Push Notification. Bạn có thể đăng ký thiết bị và push notifications specifically to it. Khi ứng dụng của bạn tải, ứng dụng sẽ gửi yêu cầu tới máy chủ với số device token và nhận những gì về cơ bản là cookie phiên thông qua APN.

Một báo trước là it is not encrypted. Bạn có thể dễ dàng giải quyết vấn đề này bằng cách gửi khóa đối xứng được tạo ngẫu nhiên trong yêu cầu. Cookie bạn nhận được sẽ được mã hóa trên máy chủ và giải mã bằng cách sử dụng cùng một khóa trong thiết bị iOS.

Điều này giải quyết vấn đề lưu trữ khóa trong nguồn và chứng minh các yêu cầu đến từ thiết bị iOS.

Tất nhiên, điều này có thể được đơn giản hóa bằng cách tạo chứng chỉ, lưu trữ nó trong chuỗi khóa và gửi khóa cá nhân đến máy chủ để lưu trữ trong quá trình đăng ký. Sau khi đăng ký và xác thực ban đầu bằng APN, các tin nhắn tiếp theo có thể được ký bằng cách sử dụng khóa công khai của chứng chỉ id + thiết bị.

Một vấn đề cuối cùng là APN cũng có thể được sử dụng để đăng ký thiết bị OSX. Tôi đã không thể tìm ra cách để loại trừ những người (chưa).

Tuyên bố miễn trừ trách nhiệm: Đã là một ngày dài ghi các thông số kỹ thuật. Tôi khá thoải mái với cơ chế đăng ký ban đầu thiết bị iOS bằng APN. Tôi có thể đã nhận được các phần mã hóa sai. Nếu có, hãy bình luận nhẹ nhàng.

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