डिजिटल सिग्नेचर प्रिमिटिव की मदद से, यह पुष्टि की जा सकती है कि आपके डेटा में किसी ने छेड़छाड़ नहीं की है. यह हस्ताक्षर किए गए डेटा की पुष्टि करता है और उसकी सुरक्षा बनाए रखता है. हालांकि, यह डेटा को गोपनीय नहीं रखता. यह असिमेट्रिक है. इसका मतलब है कि यह कुंजियों के एक जोड़े (पब्लिक की और प्राइवेट की) का इस्तेमाल करता है.
डिजिटल हस्ताक्षर प्रिमिटिव में ये प्रॉपर्टी होती हैं:
- भरोसेमंद होना: ऐसी कोई भी हस्ताक्षर नहीं बनाया जा सकता जिसकी पुष्टि
PublicKeyVerify.Verify(signature, message)करता हो. ऐसा सिर्फ़ तब किया जा सकता है, जब आपके पास निजी कुंजी हो. - एसिमेट्रिक: हस्ताक्षर बनाने के लिए, पुष्टि करने वाली कुंजी से अलग कुंजी का इस्तेमाल किया जाता है. इससे, उन पक्षों को हस्ताक्षर की पुष्टि करने के लिए सार्वजनिक पासकोड डिस्ट्रिब्यूट किया जा सकता है जो खुद हस्ताक्षर नहीं बना सकते.
अगर आपको एसिमेट्री की ज़रूरत नहीं है, तो इसके बजाय MAC प्रिमिटिव का इस्तेमाल करें. यह ज़्यादा आसान और असरदार है.
डिजिटल हस्ताक्षर की सुविधा को Tink में, प्रिमिटिव के एक जोड़े के तौर पर दिखाया जाता है:
- डेटा पर हस्ताक्षर करने के लिए PublicKeySign
- सिग्नेचर की पुष्टि करने के लिए, PublicKeyVerify
कुंजी का टाइप चुनें
हमारा सुझाव है कि ज़्यादातर मामलों में, ML_DSA_65 या ECDSA_P256 का इस्तेमाल करें. हालांकि, इसके अलावा भी कई विकल्प उपलब्ध हैं. आम तौर पर, यह बात सही है:
- ML-DSA-65, क्वांटम सुरक्षित है. हम इसे लागू करने पर काम कर रहे हैं. अब उन प्रोग्रामिंग भाषाओं के लिए इसका इस्तेमाल करने का सुझाव दिया जाता है जिनके लिए यह सुविधा उपलब्ध है.
यहां दिए गए नॉन-पोस्ट-क्वांटम एल्गोरिदम के लिए, आपको आने वाले समय में कुंजी का टाइप बदलना पड़ सकता है.
- ECDSA_P256 का इस्तेमाल सबसे ज़्यादा किया जाता है. यह एक सही डिफ़ॉल्ट विकल्प है. हालांकि, ध्यान दें कि ECDSA सिग्नेचर बदले जा सकते हैं.
- ED25519, डिटरमिनिस्टिक सिग्नेचर बनाता है और ECDSA_P256 की तुलना में बेहतर परफ़ॉर्म करता है.
- RSA_SSA_PKCS1_3072_SHA256_F4, डिटरमिनिस्टिक सिग्नेचर बनाता है और पुष्टि करने की सबसे अच्छी परफ़ॉर्मेंस देता है. हालांकि, ECDSA_P256 या ED25519 की तुलना में, इस एल्गोरिदम से हस्ताक्षर करने की प्रोसेस बहुत धीमी होती है.
सुरक्षा की कम से कम गारंटी
- हस्ताक्षर किए जाने वाले डेटा की लंबाई कुछ भी हो सकती है
- एलिप्टिक कर्व पर आधारित स्कीम के लिए, अडैप्टिव चूज़न-मैसेज हमलों के ख़िलाफ़ 128-बिट सुरक्षा लेवल
- आरएसए पर आधारित स्कीम के लिए, अडैप्टिव चूज़न-मैसेज हमलों के ख़िलाफ़ 112-बिट सुरक्षा स्तर (2048-बिट कुंजियों की अनुमति देता है)
बदलाव करने की क्षमता
अगर कोई हमलावर, पहले से हस्ताक्षर किए गए मैसेज के लिए कोई दूसरा मान्य हस्ताक्षर बना सकता है, तो हस्ताक्षर करने की स्कीम को बदला जा सकता है. ज़्यादातर मामलों में, यह कोई समस्या नहीं है. हालांकि, कुछ मामलों में प्रोग्रामर यह मान लेते हैं कि मान्य हस्ताक्षर यूनीक होते हैं. इससे अनचाहे नतीजे मिल सकते हैं.
इस्तेमाल का उदाहरण
देखें कि मुझे डेटा पर डिजिटल हस्ताक्षर करना है.