Khi bạn gọi một API trực tiếp từ một ứng dụng dành cho thiết bị di động hoặc ứng dụng web (ví dụ: các API cho phép truy cập vào mô hình AI tạo sinh), API đó sẽ dễ bị các ứng dụng khách không được uỷ quyền lợi dụng. Để giúp bảo vệ các API này khỏi bị lợi dụng, bạn có thể sử dụng Firebase App Check để xác minh rằng tất cả các lệnh gọi API đến đều xuất phát từ ứng dụng thực của bạn và một thiết bị không bị giả mạo.
Firebase AI Logic cung cấp một cổng proxy cho phép bạn tích hợp với Firebase App Check và bảo vệ các API mô hình AI tạo sinh do ứng dụng di động và ứng dụng web của bạn gọi. Việc sử dụng App Check với Firebase AI Logic SDK hỗ trợ tất cả các cấu hình của chúng tôi:
Bảo vệ cả hai nhà cung cấp "Gemini API": Gemini Developer API và Vertex AI Gemini API.
Bảo vệ tất cả các mô hình được hỗ trợ, cả Gemini mô hình và Imagen mô hình.
App Check cũng hỗ trợ tính năng bảo vệ chống phát lại, nghĩa là mã thông báo App Check chỉ có thể được sử dụng một lần.
Tóm tắt cấp cao về cách App Check hoạt động
Với App Check, các thiết bị chạy ứng dụng của bạn sẽ sử dụng một nhà cung cấp chứng thực ứng dụng hoặc thiết bị để xác minh một hoặc cả hai điều sau:
- Yêu cầu xuất phát từ ứng dụng chính thống của bạn
- Yêu cầu xuất phát từ một thiết bị chính thống, không bị giả mạo
Chứng thực này được đính kèm vào mọi yêu cầu mà ứng dụng của bạn thực hiện bằng cách sử dụng a Firebase AI Logic SDK. Khi bạn bật chế độ thực thi App Check, các yêu cầu từ ứng dụng khách không có chứng thực hợp lệ sẽ bị từ chối, cũng như mọi yêu cầu xuất phát từ một ứng dụng hoặc nền tảng mà bạn chưa uỷ quyền.
Khi thiết lập App Check, hãy cân nhắc việc thêm tính năng bảo vệ chống phát lại để mã thông báo App Check chỉ được sử dụng một lần. Tuỳ chọn này cung cấp tính năng bảo vệ nâng cao ngoài tính năng bảo vệ cơ bản và cho phép bạn đặt mức bảo vệ phù hợp cho ứng dụng và các trường hợp sử dụng của mình.
Bạn có thể tìm thấy thông tin chi tiết về App Check trong tài liệu của tính năng này, bao gồm cả hạn mức và giới hạn.
Thiết lập App Check
Tài liệu về tính năng App Check cung cấp nội dung mô tả chi tiết về các nhà cung cấp chứng thực cũng như hướng dẫn triển khai chi tiết.
Chọn một nhà cung cấp chứng thực mặc định và làm theo hướng dẫn triển khai tại các đường liên kết sau:
- Nền tảng Apple: DeviceCheck hoặc App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: Hỗ trợ
tất cả các nhà cung cấp mặc định ở trên
Nếu bạn đang sử dụng các phiên bản trình bổ trợ cũ hơn, hãy xem ghi chú về việc tạo thực thể đặc biệt bên dưới. cho Flutter và App Check. - Unity: Hỗ trợ tất cả các nhà cung cấp mặc định ở trên
Xin lưu ý rằng nếu không có nhà cung cấp chứng thực mặc định nào đáp ứng đủ nhu cầu của bạn, thì bạn có thể triển khai một nhà cung cấp tuỳ chỉnh sử dụng nhà cung cấp chứng thực bên thứ ba hoặc các kỹ thuật chứng thực của riêng bạn.
(Bắt buộc) Bật chế độ thực thi tính năng App Check trước khi bạn cam kết ứng dụng của mình với một hệ thống kiểm soát mã nguồn công khai, chia sẻ ứng dụng hoặc cung cấp công khai ứng dụng của mình.
(Nên dùng) Tăng cường tính năng bảo vệ bằng cách thêm tính năng bảo vệ chống phát lại, nghĩa là mã thông báo App Check chỉ có thể được sử dụng một lần.
Tăng cường tính năng bảo vệ bằng cách thêm tính năng bảo vệ chống phát lại
|
Bạn nên sử dụng các phiên bản SDK mới nhất, nhưng
hãy đảm bảo bạn đang sử dụng ít nhất một trong các phiên bản này để sử dụng
tính năng bảo vệ chống phát lại: Nền tảng Apple phiên bản 12.2.0 trở lên | Android BoM phiên bản 34.14.0 trở lên (App Check phiên bản 19.1.0 trở lên) | Web phiên bản 12.14.0 trở lên | Flutter phiên bản 4.15.0 trở lên (App Check phiên bản 4.10.0 trở lên) | Unity phiên bản 13.12.0 trở lên |
Theo mặc định, App Check sử dụng mã thông báo phiên có
thời gian tồn tại (TTL) có thể định cấu hình từ
Tuy nhiên, bạn có thể tăng cường tính năng bảo vệ ngoài tính năng bảo vệ cơ bản này bằng cách thực thi tính năng bảo vệ chống phát lại sử dụng mã thông báo sử dụng có giới hạn thay thế. Khi tính năng bảo vệ chống phát lại được thực thi, điều sau sẽ xảy ra:
App Check sẽ chặn các yêu cầu đối với Firebase AI Logic sử dụng mã thông báo phiên. Thay vào đó, App Check sẽ chỉ cho phép một yêu cầu đối với Firebase AI Logic nếu yêu cầu đó sử dụng mã thông báo sử dụng có giới hạn mới được tạo.
Sau khi mã thông báo sử dụng có giới hạn được xác minh, mã thông báo đó sẽ được sử dụng để chỉ có thể sử dụng một lần, giúp ngăn chặn các cuộc tấn công phát lại.
SDK App Check tạo một mã thông báo sử dụng có giới hạn mới cho mỗi yêu cầu. Xin lưu ý rằng quá trình này có thể ảnh hưởng đến các yêu cầu của bạn bằng cách thêm một số độ trễ và đôi khi chi phí (tuỳ thuộc vào nhà cung cấp chứng thực của bạn).
Thiết lập và thực thi tính năng bảo vệ chống phát lại
|
Nhấp vào nhà cung định Gemini API để xem nội dung dành riêng cho nhà cung cấp và mã trên trang này. |
Sau đây là cách thiết lập và thực thi tính năng bảo vệ chống phát lại:
Nếu bạn chưa làm, hãy triển khai App Check và bật chế độ thực thi App Check cho ứng dụng của bạn.
Bật chế độ sử dụng mã thông báo sử dụng có giới hạn.
Trong ứng dụng của bạn trong quá trình tạo thực thể, hãy đặt tham số
useLimitedUseAppCheckTokensthànhtrue:Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...Thực thi tính năng bảo vệ chống phát lại.
Trong toàn bộ mã nguồn của ứng dụng, hãy đảm bảo rằng bạn đã bật chế độ sử dụng mã thông báo sử dụng có giới hạn (xem bước trước).
Trong bảng điều khiển Firebase, hãy chuyển đến phần Bảo mật > Kiểm tra ứng dụng.
Mở rộng chế độ xem chỉ số cho Firebase AI Logic.
Đảm bảo rằng Tính năng bảo vệ cơ bản được Thực thi, sau đó nhấp vào Tiếp tục.
Đối với tính năng bảo vệ chống phát lại, hãy chọn Không thực thi (chỉ giám sát) hoặc Thực thi.
Hãy cân nhắc những điều sau để quyết định thời điểm thực thi tính năng bảo vệ chống phát lại:
Bạn nên giám sát các yêu cầu của mình nếu có một số lượng đáng kể người dùng có khả năng sử dụng các phiên bản cũ hơn của ứng dụng mà không bật chế độ sử dụng mã thông báo sử dụng có giới hạn. Nếu bạn thực thi tính năng bảo vệ chống phát lại ngay lập tức, các yêu cầu từ những người dùng đó sẽ bị chặn.
Bạn có thể giám sát cụ thể chỉ số Chưa xác minh: Mã thông báo được sử dụng lại, đây là số lượng yêu cầu có mã thông báo đã được sử dụng trong một yêu cầu trước đó. Giám sát chỉ số này trong bảng điều khiển Firebase (chuyển đến thẻ Bảo mật > Kiểm tra ứng dụng > API).
Nếu một phần đáng kể các yêu cầu gần đây thuộc danh mục này, bạn có thể tránh làm gián đoạn người dùng và cân nhắc chờ thực thi tính năng bảo vệ chống phát lại cho đến khi có nhiều người dùng cập nhật lên phiên bản ứng dụng của bạn sử dụng mã thông báo sử dụng có giới hạn.
Tìm hiểu cách Firebase AI Logic tích hợp với App Check
Để sử dụng SDK Firebase AI Logic, bạn phải bật API
Firebase AI Logic (firebasevertexai.googleapis.com)
trong dự án Firebase của mình. Điều này là do các yêu cầu do các
Firebase AI Logic SDK thực hiện trước tiên được gửi đến Firebase AI Logic
máy chủ, đóng vai trò là cổng proxy nơi quá trình xác minh Firebase App Checkdiễn ra trước khi yêu cầu được phép chuyển đến phần phụ trợ của nhà cung cấp "Gemini API" mà bạn đã chọn và các API để truy cập vào mô hình Gemini
và Imagen.