Tink एक ओपन सोर्स क्रिप्टोग्राफ़ी लाइब्रेरी है, जिसे क्रिप्टोग्राफ़र ने लिखा है और सिक्योरिटी इंजीनियर हैं. Tink के सुरक्षित और आसान एपीआई, उपयोगकर्ता-आधारित डिज़ाइन, सावधानी से लागू करने, और कोड की समीक्षा करने से होने वाले नुकसान, टेस्टिंग के लिए किया जा सकता है. इस पेज पर इनके लिए लक्ष्य सेक्शन देखें इस बारे में ज़्यादा जानकारी कि Tink को किन मकसद को पूरा करने के लिए डिज़ाइन किया गया है.
Tink इस्तेमाल करने वालों के पास क्रिप्टोग्राफ़ी का बैकग्राउंड नहीं होने की वजह से, उन्हें सुरक्षित तरीके से लागू करने में मदद मिलती है क्रिप्टोग्राफ़िक टास्क. Google में Tink को सैकड़ों प्रॉडक्ट में डिप्लॉय किया गया है और सिस्टम.
मुझे Tink इस्तेमाल क्यों करना चाहिए?
Tink इस्तेमाल करने की सबसे अहम वजहें ये हैं:
इसे इस्तेमाल करना आसान है
क्रिप्टोग्राफ़ी को सही तरीके से समझना मुश्किल है. Tink से ये काम किए जा सकते हैं एन्क्रिप्ट करना या साइन इन करना पहले से मौजूद सुरक्षा गारंटी कोड की कुछ लाइनों का इस्तेमाल करके दी जाती है. टिंक से भी बाहरी कुंजी प्रबंधन सिस्टम का उपयोग करके कुंजियों या सुरक्षित कुंजियों को बदलने में आपकी सहायता करता है (केएमएस).
यह सुरक्षित है
Tink सुरक्षा के लिए बोरिंगएसएसएल जैसी जाने-माने लाइब्रेरी को जोड़ता है और उन्हें सीधे इंटरफ़ेस में दिखाता है, इससे ऑडिटर और टूल कम समय में अंतर कर पाते हैं. Tink उन एपीआई को भी अलग करता है जो खतरनाक हो सकती हैं, इसलिए उन पर नज़र रखी जा सकती है.
यह GA4 में काम करता है
टिंक सादे टेक्स्ट, मौजूदा क्रिप्टोग्राफ़ी लाइब्रेरी के साथ काम करते हैं. टिंक साथ ही, इसमें पासकोड को एन्क्रिप्ट या सेव करने की सुविधा भी काम करती है Amazon केएमएस, Google Cloud केएमएस, Android Keystore, और iOS Keychain.
Tink इस्तेमाल करने वाले खाते का इस्तेमाल कौन कर रहा है?
Tink का इस्तेमाल कई कंपनियां बड़े पैमाने पर करती हैं. इनमें Google, Square, और Citadel जैसे कंपनियां शामिल हैं. साथ ही, Google Cloud के सैकड़ों ग्राहकों और Google Pay पार्टनर से भी संपर्क किया जा सकता है. टिंक भी इसमें Jetpack Security लाइब्रेरी मौजूद है, जो कई लोकप्रिय Android ऐप्लिकेशन को सुरक्षित रखती है जैसे, Slack, Adidas, AirBnb, और Nextdoor.
टिंक गोल
अन्य क्रिप्टोग्राफ़िक लाइब्रेरी की तुलना में Tink के मुख्य लक्ष्य क्या हैं और इन लक्ष्यों को हासिल करने के लिए Tink कौनसे मुख्य तरीके इस्तेमाल करता है?
संक्षेप में, Tink के दो लक्ष्य हैं:
- क्रिप्टोग्राफ़ी के हिसाब से तेज़ी से काम करने को बढ़ावा दें: उपयोगकर्ताओं को कुंजियां बदलने की सुविधा होनी चाहिए और आसान तरीके से एल्गोरिदम.
- सुरक्षा समीक्षाएं चालू करना: Tink का मकसद उपयोगकर्ताओं को ऐसे कोड लिखने की अनुमति देना है जिनके लिए सुरक्षा की समीक्षा स्थानीय स्तर पर की जा सकती है. इसके लिए ऐसे इंटरफ़ेस उपलब्ध कराए जाते हैं जो सुरक्षा की गारंटी दी जाती है.
इन लक्ष्यों को हासिल करने के लिए, Tink इस्तेमाल करने के कुछ मुख्य तरीके यहां बताए गए हैं:
- Tink, प्रिमिटिव और इंटरफ़ेस को अहम ऐब्स्ट्रैक्ट के तौर पर उपलब्ध कराता है. ये ऐब्स्ट्रैक्ट की मदद से उपयोगकर्ता ऐसा कोड लिख सकते हैं जो सटीक एल्गोरिदम का उपयोग करता है, लेकिन इसके बजाय यह अपेक्षित सुरक्षा धारणा को निर्दिष्ट करता है.
- Tink इस्तेमाल के लिए "कीसेट" का इस्तेमाल करता है. यह कुंजियों का एक सेट है किसी खास प्रिमिटिव से जुड़ा हो. इस वजह से लोग कोड लिखते हैं जो कई कुंजियों के साथ काम करता है.
- Tink में, बटन न सिर्फ़ पहले से मौजूद मुख्य कॉन्टेंट से तय होते हैं, बल्कि और साथ ही सभी पैरामीटर का आकलन किया जा सकता है. इसका मतलब है कि Tink बटन हमेशा हर संभव तरीके से एक यूनीक क्रिप्टोग्राफ़िक फ़ंक्शन चुनता है फ़ंक्शन मौजूद हो सकते हैं और उन्हें समझने के लिए कोई जगह नहीं मिलती.
इन सेक्शन में, इन कॉन्सेप्ट के बारे में ज़्यादा जानकारी दी गई है.
क्रिप्टोग्राफ़िक एजिलिटी
Google में सॉफ़्टवेयर इंजीनियरिंग के बारे में सोचें, सॉफ़्टवेयर इंजीनियरिंग के क्षेत्र में सीखे गए सबक के बारे में जानने के लिए, सबटाइटल "समय के साथ प्रोग्रामिंग से सीखे गए सबक". इसमें लेखक चीज़ों के बदलने पर होने वाले असर का अनुमान लगाने के लिए लंबी अवधि का इस्तेमाल किया है. यह इसका असर Tink के डिज़ाइन पर भी पड़ा है. क्रिप्टोग्राफ़ी में, यह ज़रूरी है कि जो बदलाव के लिए तैयार रहता है. कुंजियां लीक हो जाएंगी और एल्गोरिदम काम नहीं करेंगे. कई उपयोगकर्ताओं के लिए यह ज़रूरी है कि वे कुंजियों और एल्गोरिदम के बीच स्विच कर पाएं और तो उसके लिए तैयारी करना समझदारी है.
सुरक्षा समीक्षाएं और स्थानीय प्रॉपर्टी
Tink इंटरफ़ेस के इस्तेमाल को बढ़ावा देता है, जैसे कि AEAD इंटरफ़ेस जो उपयोगकर्ताओं का डेटा एन्क्रिप्ट (सुरक्षित) करना. अन्य सुरक्षा गारंटी में, एक AEAD यह गारंटी देती है कि एक ही स्ट्रिंग को एन्क्रिप्ट (सुरक्षित) करने के कई तरीके इस्तेमाल करने पर, सादे टेक्स्ट को एन्क्रिप्ट करना.
इसका इस्तेमाल कैसे किया जा सकता है, यह देखने के लिए मान लें कि कोई इंजीनियर संवेदनशील जानकारी सेव करना चाहता है उपयोगकर्ता कुकी में मौजूद आईडी. वे आपको इस तरह की क्लास दिखा सकते हैं:
class IdEncrypter {
public static IdEncrypter createFromAead(Aead aead);
public String encrypt(long id) throws GeneralSecurityException;
public long decrypt(String encrypted) throws GeneralSecurityException;
};
Aead
को पास करने पर ये प्रॉपर्टी मिलती हैं:
- कोड बताता है कि
IdEncrypter
को अपना काम करने के लिए,Aead
से मिलने वाली सुरक्षा प्रॉपर्टी के साथ एन्क्रिप्शन स्कीम. इसके अलावा,DeterministicAead
काफ़ी नहीं होगा --IdEncrypter
के लिए समान आईडी अलग हैं. दूसरी ओर, पैरामीटर के तौर पर, AES GCM एन्क्रिप्टर (Aead
का एक खास इंस्टेंस) ज़रूरत से ज़्यादा होगा सख्त: कोई भी AeadIdEncrypter
के लिए अपना काम करने के लिए काफ़ी है, लेकिन यह ऐसा नहीं करता एक खास एल्गोरिदम होना चाहिए. - सुरक्षा समीक्षा में इस बात को ध्यान में रखा जा सकता है. सुरक्षा समीक्षक,
कोड को स्टोर करने की पूरी जगह में जाकर यह देखने की ज़रूरत नहीं होती कि क्या
कहीं, किसी ने
Aead
की सब-क्लास बनाई है, जो इस्तेमाल करने के लिए सुरक्षित नहीं हैIdEncrypter
के साथ. इसके बजाय, Tink सुरक्षा प्रॉपर्टी मुहैया कराता है, विज्ञापन ऑब्जेक्ट में मौजूद है और समीक्षक यह जांच कर सकता है कि ये काफ़ी हैं या नहीं.
खास तौर पर, दूसरे पॉइंट पर बहुत ज़्यादा सावधानी बरतने की ज़रूरत होती है. लोग अक्सर अपनी प्रोफ़ाइल में,
ऐसे एल्गोरिदम जो 'गलत' हैं Aead
. पिछले पॉइंट में इसकी वजह बताई गई है
यह खतरनाक है: अगर Aead
को लागू करने की सुविधा मौजूद है, जो
अगर सुरक्षा की ज़रूरी गारंटी नहीं दी जाती है, तो IdEncrypter
असुरक्षित हो सकता है.
और सुरक्षा समीक्षा करने वाले इंजीनियर को अतिरिक्त कोड की जांच करनी होगी
ताकि यह जांच सकें कि ऑब्जेक्ट सही तरीके से इंस्टैंशिएट किया गया है.