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

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

सेटअप करने के निर्देशों पर जाएं

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

  • यह "Gemini API" की सुविधा देने वाली दोनों कंपनियों: Gemini Developer API और Agent Platform Gemini API (formerly Vertex AI) के डेटा की सुरक्षा करता है.

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

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

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

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

  • अनुरोध आपके भरोसेमंद ऐप्लिकेशन से किए गए हों
  • अनुरोध, किसी असली और सुरक्षित डिवाइस से किए गए हों

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

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

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

App Check सेट अप करें

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

  1. पुष्टि करने वाली कोई कंपनी चुनें और लागू करने के निर्देशों का पालन करें. ये निर्देश यहां दिए गए हैं:

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

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

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

  4. App Check लागू होने पर, लोकल डेवलपमेंट के लिए, App Check डीबग प्रोवाइडर को कॉन्फ़िगर करें. इससे पुष्टि को बायपास किया जा सकेगा. साथ ही, App Check को लागू रखा जा सकेगा. अपने प्लैटफ़ॉर्म के लिए सेटअप करने के निर्देश देखें: iOS+ | Android | वेब | Flutter | Unity.

रिप्ले सुरक्षा की सुविधा जोड़कर सुरक्षा को बेहतर बनाना

हमारा सुझाव है कि आप एसडीके के सबसे नए वर्शन का इस्तेमाल करें. हालांकि, रिप्ले सुरक्षा की सुविधा का इस्तेमाल करने के लिए, पक्का करें कि इनमें से कम से कम एक वर्शन का इस्तेमाल किया जा रहा हो:
Apple प्लैटफ़ॉर्म v12.2.0+ | Android BoM v34.14.0+ (App Check v19.1.0+) | Web 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 कंसोल में इस मेट्रिक पर नज़र रखें. इसके लिए, सुरक्षा > 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 सर्वर को भेजे जाते हैं. यह सर्वर, प्रॉक्सी गेटवे के तौर पर काम करता है. यहां अनुरोध को "Gemini API" सेवा देने वाली कंपनी के बैकएंड और Gemini और Imagen मॉडल को ऐक्सेस करने वाले एपीआई पर आगे बढ़ने की अनुमति मिलने से पहले, Firebase App Check पुष्टि की जाती है.

(ज़रूरी नहीं) प्रोडक्शन अटेस्टेशन की सुविधा देने वाली कंपनी के बिना App Check लागू करें (सिर्फ़ डीबग की सुविधा देने वाली कंपनी के लिए)

अपने ऐप्लिकेशन को प्रोडक्शन अटेस्टेशन प्रोवाइडर के साथ रजिस्टर किए बिना, App Check के लिए AI Logic लागू किया जा सकता है. इस सेटअप की मदद से, Gemini API की सुरक्षा बनाए रखते हुए, AI Logic को आसानी से इस्तेमाल किया जा सकता है. इसके लिए, App Check debug provider का इस्तेमाल करें.

  1. देखें कि App Check, AI Logic के लिए पहले से लागू है या नहीं.

    1. Firebase कंसोल में, सुरक्षा > App Check > एपीआई टैब पर जाएं.

    2. Firebase AI Logic के लिए लाइन ढूंढें. अगर आपको Unenforced दिखता है, तो इन निर्देशों का पालन करें.

  2. Firebase AI Logic की लाइन पर क्लिक करें. इसके बाद, आपको मेट्रिक के ग्राफ़ दिखेंगे. उन ग्राफ़ के नीचे, सेट अप करें पर क्लिक करें.

  3. डायलॉग की पहली स्क्रीन (बेसलान प्रोटेक्शन) में, लागू किया गया को चुनें. इसके बाद, जारी रखें पर क्लिक करें.

  4. अगली स्क्रीन (Replay protection) में, Disabled को चुनें. इसे बाद में भी सेट अप किया जा सकता है. इसके लिए, आपको इस सेटअप वर्कफ़्लो पर वापस आना होगा. जारी रखें पर क्लिक करें.

  5. आखिरी स्क्रीन पर, App Check को लागू करने से जुड़ी बातों की समीक्षा करें. इससे यह पक्का किया जा सकेगा कि App Check को लागू करने के लिए, आप तैयार हैं. अगर आप तैयार हैं, तो जारी रखें पर क्लिक करें.

    अगर आपको सिर्फ़ प्री-प्रोडक्शन ऐप्लिकेशन में App Check लागू करना है और सिर्फ़ AI Logic के साथ डीबग प्रोवाइडर का इस्तेमाल करना है, तो आपको अपने ऐप्लिकेशन रजिस्टर करने की ज़रूरत नहीं है. हालांकि, जब आपको अपने ऐप्लिकेशन को उपयोगकर्ताओं के लिए रिलीज़ करना हो, तब आपको अपने ऐप्लिकेशन रजिस्टर करने होंगे. ऐसा प्रोडक्शन एटेस्टेशन प्रोवाइडर (जैसे, App Attest, Play Integrity या reCAPTCHA Enterprise) सेट अप करने के लिए करना होगा.

  6. App Check लागू होने पर, लोकल डेवलपमेंट के लिए आपको App Check debug provider को कॉन्फ़िगर करना होगा, ताकि पुष्टि को बायपास किया जा सके. हालांकि, App Check को लागू रखना होगा.

    डीबग प्रोवाइडर को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, अपने प्लैटफ़ॉर्म के हिसाब से निर्देश देखें: iOS+ | Android | वेब | Flutter | Unity.

समस्या का हल