Firebase App Check की मदद से, Gemini API के गलत इस्तेमाल को रोकना

मोबाइल या वेब ऐप्लिकेशन से सीधे एपीआई कॉल करने पर (उदाहरण के लिए, जनरेटिव एआई मॉडल का ऐक्सेस देने वाले एपीआई), अनधिकृत क्लाइंट की ओर से एपीआई के गलत इस्तेमाल का खतरा बढ़ जाता है. इन एपीआई को गलत इस्तेमाल से बचाने के लिए, Firebase App Check का इस्तेमाल किया जा सकता है. इससे यह पुष्टि की जा सकती है कि आने वाले सभी एपीआई कॉल , आपके असली ऐप्लिकेशन और ऐसे डिवाइस से किए गए हैं जिनमें छेड़छाड़ नहीं की गई है.

Firebase AI Logic प्रॉक्सी गेटवे उपलब्ध कराता है. इसकी मदद से, Firebase App Check को इंटिग्रेट किया जा सकता है. साथ ही, आपके मोबाइल और वेब ऐप्लिकेशन से कॉल किए गए जनरेटिव एआई मॉडल के एपीआई को सुरक्षित रखा जा सकता है. App Check के साथ Firebase AI Logic SDK टूल का इस्तेमाल करने पर, हमारे सभी कॉन्फ़िगरेशन काम करते हैं:

  • "Gemini API" के दोनों प्रोवाइडर सुरक्षित रहते हैं: Gemini Developer API और Vertex AI Gemini API.

  • Gemini मॉडल और Imagen मॉडल, दोनों के सभी काम करने वाले मॉडल सुरक्षित रहते हैं.

App Check रिप्ले प्रोटेक्शन की सुविधा भी देता है. इसका मतलब है कि App Check टोकन का इस्तेमाल सिर्फ़ एक बार किया जा सकता है.

के काम करने के तरीके की खास जानकारीApp Check

App Check की मदद से, आपके ऐप्लिकेशन को चलाने वाले डिवाइस, ऐप्लिकेशन या डिवाइस अटेस्टेशन प्रोवाइडर का इस्तेमाल करते हैं. यह प्रोवाइडर, इनमें से एक या दोनों की पुष्टि करता है:

  • अनुरोध, आपके असली ऐप्लिकेशन से किए गए हैं
  • अनुरोध, असली और ऐसे डिवाइस से किए गए हैं जिनमें छेड़छाड़ नहीं की गई है

यह अटेस्टेशन, Firebase AI Logic SDK टूल का इस्तेमाल करके, आपके ऐप्लिकेशन से किए गए हर अनुरोध के साथ अटैच होता है. App Check को लागू करने पर, मान्य अटेस्टेशन के बिना क्लाइंट से किए गए अनुरोधों को अस्वीकार कर दिया जाएगा. साथ ही, ऐसे ऐप्लिकेशन या प्लैटफ़ॉर्म से किए गए अनुरोधों को भी अस्वीकार कर दिया जाएगा जिन्हें आपने अनुमति नहीं दी है.

App Check सेट अप करते समय, रिप्ले प्रोटेक्शन जोड़ने पर विचार करें. इससे App Check टोकन का इस्तेमाल सिर्फ़ एक बार किया जा सकेगा. इस विकल्प से, सामान्य सुरक्षा के मुकाबले बेहतर सुरक्षा मिलती है. साथ ही, अपने ऐप्लिकेशन और इस्तेमाल के उदाहरणों के लिए सुरक्षा का सही लेवल सेट किया जा सकता है.

के बारे में ज़्यादा जानकारी, उसके App Check में देखी जा सकती है. इसमें, उसके कोटे और सीमाओं के बारे में भी जानकारी शामिल है.

App Check सेट अप करना

App Check दस्तावेज़ में, अटेस्टेशन प्रोवाइडर के बारे में ज़्यादा जानकारी के साथ-साथ, लागू करने के निर्देश भी दिए गए हैं.

  1. डिफ़ॉल्ट अटेस्टेशन प्रोवाइडर चुनें. इसके बाद, यहां दिए गए लिंक पर जाकर, लागू करने के निर्देशों का पालन करें:

    ध्यान दें कि अगर डिफ़ॉल्ट अटेस्टेशन प्रोवाइडर में से कोई भी आपकी ज़रूरतों के हिसाब से नहीं है, तो कस्टम प्रोवाइडर लागू किया जा सकता है. यह प्रोवाइडर, तीसरे पक्ष के अटेस्टेशन प्रोवाइडर या अटेस्टेशन की अपनी तकनीकों का इस्तेमाल करता है.

  2. (ज़रूरी है) App Check को लागू करें अपने ऐप्लिकेशन को सार्वजनिक तौर पर उपलब्ध सोर्स कोड कंट्रोल सिस्टम में सबमिट करने, अपने ऐप्लिकेशन को शेयर करने या अपने ऐप्लिकेशन को सार्वजनिक तौर पर उपलब्ध कराने से पहले.

  3. (सुझाया जाता है) _रिप्ले प्रोटेक्शन_ जोड़कर सुरक्षा बढ़ाएं. इसका मतलब है कि App Check टोकन का इस्तेमाल सिर्फ़ एक बार किया जा सकता है.

रिप्ले प्रोटेक्शन जोड़कर सुरक्षा बढ़ाना

हम एसडीके टूल के सबसे नए वर्शन इस्तेमाल करने का सुझाव देते हैं. हालांकि, रिप्ले प्रोटेक्शन का इस्तेमाल करने के लिए, पक्का करें कि इनमें से कम से कम एक वर्शन इस्तेमाल किया जा रहा हो:
Apple प्लैटफ़ॉर्म v12.2.0+ | Android BoM v34.14.0+ (App Check v19.1.0+) | वेब v12.14.0+ | Flutter v4.15.0+ (App Check v4.10.0+) | Unity v13.12.0+

डिफ़ॉल्ट रूप से, App Check सेशन टोकन का इस्तेमाल करता है. इनकी टीटीएल (टाइम टू लाइव) को कॉन्फ़िगर किया जा सकता है. यह 30 मिनट से लेकर सात दिनों तक हो सकती है. इन सेशन टोकन को App Check SDK टूल, कैश मेमोरी में सेव करता है. ये आपके ऐप्लिकेशन से किए गए अनुरोधों के साथ भेजे जाते हैं. साथ ही, इनका इस्तेमाल तब तक किया जा सकता है, जब तक इनकी टीटीएल खत्म नहीं हो जाती. सेशन टोकन का इस्तेमाल करना, सामान्य सुरक्षा माना जाता है.

हालांकि, रिप्ले प्रोटेक्शन को लागू करके, इस सामान्य सुरक्षा के मुकाबले बेहतर सुरक्षा पाई जा सकती है. रिप्ले प्रोटेक्शन में, सीमित इस्तेमाल वाले टोकन का इस्तेमाल किया जाता है. रिप्ले प्रोटेक्शन लागू करने पर, ये काम होते हैं:

  • App Check उन अनुरोधों को ब्लॉक कर देगा जिनमें Firebase AI Logic का इस्तेमाल किया गया है सेशन टोकन. इसके बजाय, App Check सिर्फ़ तब अनुमति देगा, जब अनुरोध में Firebase AI Logic हाल ही में जनरेट किया गया सीमित इस्तेमाल वाला टोकन इस्तेमाल किया गया हो.

  • सीमित इस्तेमाल वाले टोकन की पुष्टि हो जाने के बाद, टोकन का इस्तेमाल हो जाता है. इसलिए, इसका इस्तेमाल सिर्फ़ एक बार किया जा सकता है. इससे, मान्य डेटा को सर्वर के साथ फिर से शेयर करके किए जाने वाले हमलों को रोका जा सकता है.

  • App Check SDK टूल, हर अनुरोध के लिए, सीमित इस्तेमाल वाला नया टोकन जनरेट करता है. ध्यान दें कि इस प्रोसेस से, आपके अनुरोधों पर असर पड़ सकता है. जैसे, कुछ समय लग सकता है और कभी-कभी लागत भी लग सकती है. यह आपके अटेस्टेशन प्रोवाइडर पर निर्भर करता है.

रिप्ले प्रोटेक्शन सेट अप करना और उसे लागू करना

इस पेज पर, प्रोवाइडर के हिसाब से कॉन्टेंट और कोड देखने के लिए, अपने Gemini API प्रोवाइडर पर क्लिक करें.

रिप्ले प्रोटेक्शन सेट अप करने और उसे लागू करने का तरीका यहां बताया गया है:

  1. अगर आपने पहले से ही लागू नहीं किया है, तो अपने ऐप्लिकेशन के लिए, App Check और लागू करेंApp Check लागू करें.

  2. सीमित इस्तेमाल वाले टोकन के इस्तेमाल की अनुमति दें.

    इंस्टैंशिएशन के दौरान, अपने ऐप्लिकेशन में useLimitedUseAppCheckTokens पैरामीटर को true पर सेट करें:

    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
    );
    
    // ...
    
  3. रिप्ले प्रोटेक्शन लागू करें.

    1. अपने ऐप्लिकेशन के कोडबेस में, पक्का करें कि आपने सीमित इस्तेमाल वाले टोकन के इस्तेमाल की अनुमति दी हो. इसके लिए, पिछला चरण देखें.

    2. Firebase console में, सुरक्षा > App Check पर जाएं.

    3. Firebase AI Logic के लिए, मेट्रिक व्यू को बड़ा करें.

    4. पक्का करें कि सामान्य सुरक्षा लागू हो. इसके बाद, जारी रखें पर क्लिक करें.

    5. रिप्ले प्रोटेक्शन के लिए, लागू नहीं किया गया (सिर्फ़ निगरानी के लिए) या लागू किया गया में से कोई एक विकल्प चुनें.

      रिप्ले प्रोटेक्शन को कब लागू करना है, यह तय करने के लिए इन बातों का ध्यान रखें:

      • अगर आपके ज़्यादातर उपयोगकर्ता, सीमित इस्तेमाल वाले टोकन के इस्तेमाल की अनुमति दिए बिना, आपके ऐप्लिकेशन के पुराने वर्शन इस्तेमाल कर रहे हैं, तो अपने अनुरोधों की निगरानी करने का सुझाव दिया जाता है. अगर रिप्ले प्रोटेक्शन को तुरंत लागू किया जाता है, तो उन उपयोगकर्ताओं के अनुरोध ब्लॉक कर दिए जाएंगे.

      • खास तौर पर, पुष्टि नहीं हुई: टोकन का फिर से इस्तेमाल किया गया मेट्रिक की निगरानी की जा सकती है. यह उन अनुरोधों की संख्या है जिनमें ऐसा टोकन इस्तेमाल किया गया है जो पहले किसी अनुरोध में इस्तेमाल किया जा चुका है. Firebase console में इस मेट्रिक की निगरानी करें. इसके लिए, सुरक्षा > App Check > एपीआई टैब पर जाएं.

        अगर हाल के ज़्यादातर अनुरोध इस कैटगरी में हैं, तो उपयोगकर्ताओं को होने वाली परेशानी से बचा जा सकता है. साथ ही, रिप्ले प्रोटेक्शन को तब तक लागू न करने पर विचार किया जा सकता है, जब तक ज़्यादातर उपयोगकर्ता आपके ऐप्लिकेशन के ऐसे वर्शन पर अपडेट नहीं कर लेते जो सीमित इस्तेमाल वाले टोकन का इस्तेमाल करता है.

Firebase AI Logic कैसे इंटिग्रेट होता है, इस बारे में जानकारी App Check

Firebase AI Logic SDK टूल का इस्तेमाल करने के लिए, आपके Firebase प्रोजेक्ट में Firebase AI Logic API (firebasevertexai.googleapis.com) चालू होना चाहिए. ऐसा इसलिए है, क्योंकि Firebase AI Logic SDK टूल से किए गए अनुरोध सबसे पहले Firebase AI Logic सर्वर को भेजे जाते हैं. यह सर्वर, प्रॉक्सी गेटवे के तौर पर काम करता है. यहां, Firebase App Check पुष्टि आपके चुने गए "Gemini API" प्रोवाइडर के बैकएंड और Gemini और Imagen मॉडल को ऐक्सेस करने वाले एपीआई को अनुरोध भेजने से पहले होती है.