Khi bạn gọi một API trực tiếp từ ứng dụng 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 trái phép 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 được ứ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ới mọi yêu cầu mà ứng dụng của bạn đưa ra bằng cách sử dụng Firebase AI Logic SDK. Khi App Check được thực thi, các yêu cầu từ ứng dụng 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.
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 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: Tính toàn vẹn của Play
- 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 nào trong số này đá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 tính năng thực thi 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 phát hành 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.
Đối với quá trình phát triển cục bộ khi App Check được thực thi, hãy định cấu hình App Check nhà cung cấp gỡ lỗi để bỏ qua quy trình chứng thực trong khi vẫn duy trì việc thực thi App Check. Xem hướng dẫn thiết lập cho nền tảng của bạn: iOS+ | Android | Web | Flutter | Unity.
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, tính năng này 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 tính năng thực thi App Check cho ứng dụng của bạn.
Bật tính năng 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:Firebase Remote ConfigRemote ConfigSwift
// ... // 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 cơ sở mã của ứng dụng, hãy đảm bảo rằng bạn đã bật tính năng 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 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 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 tính năng 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 việc đợi 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 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, Firebase AI Logic API (firebasevertexai.googleapis.com)
phải được bật trong dự án Firebase của bạn. Điều này là do các yêu cầu do
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 Check
diễ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.
(Không bắt buộc) Thực thi App Check mà không cần nhà cung cấp chứng thực sản xuất (chỉ nhà cung cấp gỡ lỗi)
Bạn có thể thực thi App Check cho AI Logic mà không cần đăng ký ứng dụng của mình với nhà cung cấp chứng thực sản xuất. Thiết lập này cho phép bạn sử dụng App Check nhà cung cấp gỡ lỗi để dễ dàng bắt đầu sử dụng AI Logic trong khi vẫn bảo vệ Gemini API.
Kiểm tra xem App Check đã được thực thi cho AI Logic hay chưa.
Trong bảng điều khiển Firebase, hãy chuyển đến thẻ Bảo mật > Kiểm tra ứng dụng > API.
Tìm hàng cho Firebase AI Logic. Nếu hàng đó có nội dung
Unenforced, hãy tiếp tục với phần còn lại của các hướng dẫn này.
Nhấp vào hàng cho Firebase AI Logic, và bạn sẽ thấy các biểu đồ chỉ số. Bên dưới các biểu đồ đó, hãy nhấp vào Thiết lập.
Trên màn hình đầu tiên của hộp thoại (Tính năng bảo vệ cơ bản), hãy chọn Thực thi, sau đó nhấp vào Tiếp tục.
Trên màn hình tiếp theo (Tính năng bảo vệ chống phát lại), hãy chọn Đã tắt. Bạn luôn có thể thiết lập tính năng này sau và quay lại quy trình thiết lập này. Nhấp vào Tiếp tục.
Trên màn hình cuối cùng, hãy xem xét các yếu tố cần cân nhắc để thực thi App Check nhằm đảm bảo rằng bạn đã sẵn sàng thực thi App Check. Nếu bạn đã sẵn sàng, hãy nhấp vào Tiếp tục.
Bạn không cần đăng ký ứng dụng của mình nếu chỉ muốn thực thi App Check và chỉ sử dụng nhà cung cấp gỡ lỗi với AI Logic trong một ứng dụng trước khi phát hành. Tuy nhiên, khi bạn đã sẵn sàng phát hành ứng dụng cho người dùng cuối, thì bạn cần đăng ký ứng dụng của mình trong quá trình thiết lập nhà cung cấp chứng thực sản xuất (chẳng hạn như App Attest, Tính toàn vẹn của Play hoặc reCAPTCHA Enterprise).
Đối với quá trình phát triển cục bộ khi App Check được thực thi, bạn cần định cấu hình nhà cung cấp gỡ lỗi của App Check để bỏ qua quy trình chứng thực trong khi vẫn duy trì việc thực thi App Check.
Để biết thông tin chi tiết về cách định cấu hình nhà cung cấp gỡ lỗi, hãy xem hướng dẫn cho nền tảng của bạn: iOS+ | Android | Web | Flutter | Unity.