टिंक अपने-आप में एफ़आईपीएस 140-2 की पुष्टि की गई. हालांकि, यह कई एफ़आईपीएस के साथ काम करता है मंज़ूरी वाले 140-2 एल्गोरिदम और उन्हें लागू करने के तरीके इस्तेमाल किए जा सकते हैं पुष्टि किए गए क्रिप्टोग्राफ़िक मॉड्यूल, जैसे कि BoringSSLs Boing बैठक. टिंक में शामिल है एफ़आईपीएस मोड में बोरिंगएसएसएल बनाने के लिए वर्कस्पेस.
ध्यान दें कि फ़ाइल फ़ोल्डर अपने-आप में इस बात की कोई गारंटी नहीं देता कि आपके Boingएसएसएल का इस्तेमाल किया जाएगा एफ़आईपीएस की शर्तों के मुताबिक हो. हमारा सुझाव है कि आप हमारे आधिकारिक Boningक्रिप्ट के लिए सुरक्षा नीति का पालन किया हो.
इस्तेमाल किए जा सकने वाले एल्गोरिदम
Tink में इन एल्गोरिदम को इसके मुताबिक मंज़ूरी दी गई है एफ़आईपीएस 140-2 (यहां ज़्यादा जानकारी देखें एफ़आईपीएस 140-2 ऐनेक्स A):
- पुष्टि किया गया एन्क्रिप्ट (सुरक्षित) करने का तरीका
- AES-GCM
- AES-CTR-HMAC-SHA256
- MAC
- एचएमएसी-SHA256
- AES-CMAC
- डिजिटल हस्ताक्षर
- ECDSA
- आरएसए-एसएसए-पीकेसीएस1
- RSA-SSA-PSS
C++ में सिर्फ़ एफ़आईपीएस मोड
अगर आपके लिए एफ़आईपीएस 140-2 के मंज़ूर किए गए एल्गोरिदम का इस्तेमाल करना ज़रूरी है और पुष्टि की गई है लागू करते हैं, तो आप सिर्फ़ एफ़आईपीएस मोड में Tink बना सकते हैं. इसकी वजह से, मंज़ूरी मिले एल्गोरिदम का इस्तेमाल करता है और यह जांच करता है कि Tink इस्तेमाल किए जा रहे किसी मान्य एल्गोरिदम का इस्तेमाल कर रहा है या नहीं क्रिप्टोग्राफ़िक मॉड्यूल.
इससे Tink में ये बदलाव होते हैं:
Register()
फ़ंक्शन सिर्फ़ ऐसे एल्गोरिदम रजिस्टर करते हैं जिनमें एफ़आईपीएस होता है लागू किया गया है. इसका मतलब है कि आप सिर्फ़ इन डिवाइसों का इस्तेमाल कर सकती हैं पुष्टि किए गए क्रिप्टोग्राफ़िक मॉड्यूल का इस्तेमाल करने वाले एल्गोरिदम के लिए कीसेट.- Tink यह जांच करता है कि Boingएसएसएल को, Boingक्रिप्टो मॉड्यूल के साथ बनाया गया है या नहीं.
मॉड्यूल के न होने पर, प्रिमिटिव पर कॉल करने पर
INTERNAL
गड़बड़ी दिखती है उपलब्ध हैं. subtle/
में प्रिमिटिव का इस्तेमाल उन एल्गोरिदम तक सीमित है जो एक पुष्टि किया गया क्रिप्टोग्राफ़िक मॉड्यूल.
BoringCrypto
Tink BoringCrypto का इस्तेमाल करता है C++ में, पुष्टि किए गए क्रिप्टोग्राफ़िक मॉड्यूल का ऐक्सेस दें. यह मौजूदा पुष्टि की स्थिति उपलब्ध होने पर, यहां दी गई अतिरिक्त पाबंदियां लागू करती है सिर्फ़ एफ़आईपीएस मोड में होने पर एल्गोरिदम:
- AES-CMAC की पुष्टि नहीं की गई है और यह उपलब्ध नहीं है
- आरएसए-एसएसए-पीकेसीएस1, 3072-बिट मॉड्यूलस तक सीमित है
- आरएसए-एसएसए-पीएसएस, 3072-बिट मॉड्यूलस तक सीमित है
Basel के साथ Boningक्रिप्टो मॉड्यूल का इस्तेमाल करने के लिए, आपके पास
C++ में boringssl
की local_repository
परिभाषा
Workspace पर टैप करें.
कंपाइल करते समय चालू करें
सिर्फ़ एफ़आईपीएस मोड में Tink बनाने के लिए, कंपाइल के समय पर फ़्लैग सेट करें:
bazel build ... --//third_party/tink/cc/config:use_only_fips=True
अगर आपको रनटाइम पर यह देखना हो कि Tink को एफ़आईपीएस के हिसाब से सिर्फ़ एफ़आईपीएस मोड में बनाया गया है, तो
हेडर internal/fips_utils.h
शामिल किया जा सकता है, जो कि
kUseOnlyFips
.
अगर आपने सिर्फ़ FIPS में Tink बनाने के लिए नहीं बनाया है, तो यह अब भी कुछ एल्गोरिदम के लिए, लागू होने की पुष्टि की गई है, लेकिन इनके इस्तेमाल पर पाबंदी नहीं लगी है अन्य एल्गोरिदम.
रन टाइम के दौरान चालू करें
एफ़आईपीएस के हिसाब से, सिर्फ़ एफ़आईपीएस मोड में Tink बनाने के विकल्प के तौर पर,
config/tink_fips.h
से crypto::tink::RestrictToFips()
, जो फ़्लैग सेट करता है
ताकि एफ़आईपीएस प्रिमिटिव पर पाबंदियां लगाई जा सकें.
चेतावनी: अगर रनटाइम का विकल्प इस्तेमाल किया जाता है, तो crypto::tink::RestrictToFips()
को किसी भी मुख्य कॉन्टेंट को मैनेज करने, मुख्य मैनेजर को रजिस्टर करने या
Tink से जुड़ी अन्य सुविधाएं चाहिए. इसके अलावा, आपको यह पक्का करना होगा कि Bose के पास
एक साथ बनाने के लिए डिज़ाइन किया गया है. अगर ऐसा नहीं है, तो Tink आपको ये काम करने की अनुमति नहीं देता
प्रोसेस नहीं कर सकता.