मैसेज की पुष्टि करने वाला कोड (MAC)

MAC प्रिमटिव की मदद से, यह पुष्टि की जा सकती है कि किसी ने आपके डेटा में छेड़छाड़ तो नहीं की है. मैसेज भेजने वाला व्यक्ति, मैसेज पाने वाले व्यक्ति के साथ सिमेट्रिक पासकोड शेयर कर सकता है. इससे, वह किसी मैसेज के लिए पुष्टि करने वाला टैग कैलकुलेट कर सकता है. इससे मैसेज पाने वाले व्यक्ति को यह पुष्टि करने में मदद मिलती है कि मैसेज, मैसेज भेजने वाले व्यक्ति से मिला है और उसमें कोई बदलाव नहीं किया गया है.

MAC में ये प्रॉपर्टी होती हैं:

  • पुष्टि: पुष्टि करने लायक एमएसी टैग बनाने का एकमात्र तरीका, पासकोड को जानना है.
  • Symmetric: टैग को कंप्यूट करने और उसकी पुष्टि करने के लिए, एक ही पासकोड की ज़रूरत होती है.

एल्गोरिदम के आधार पर, एमएसी पता तय या रैंडम हो सकता है. फ़िलहाल, Tink में नॉन-डेटरमिनिस्टिक MAC एल्गोरिदम लागू नहीं किए जाते. आपको मैसेज की पुष्टि करने के लिए ही एमएसी का इस्तेमाल करना चाहिए. इसे किसी दूसरे मकसद के लिए इस्तेमाल नहीं किया जाना चाहिए. जैसे, झूठी रैंडम बाइट जनरेट करना. इसके लिए, पीआरएफ़ देखें.

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

कुंजी का टाइप चुनना

हमारा सुझाव है कि ज़्यादातर कामों के लिए HMAC_SHA256 का इस्तेमाल करें. हालांकि, इसके अलावा भी अन्य विकल्प उपलब्ध हैं.

आम तौर पर, ये बातें सही हैं:

  • आपके मैसेज के साइज़ और इस्तेमाल किए जा रहे हार्डवेयर के हिसाब से, हो सकता है कि HMAC_SHA512 तेज़ हो या न हो.
  • HMAC_SHA512 सबसे सुरक्षित मोड है. इसका इस्तेमाल, अनलिमिटेड मैसेज के लिए किया जा सकता है.
  • AES256_CMAC, उन सिस्टम पर सबसे तेज़ काम करता है जिनमें AES-NI हार्डवेयर से तेज़ी लाने की सुविधा काम करती है.

सुरक्षा से जुड़ी कम से कम गारंटी

  • पुष्टि करने का तरीका कम से कम 80-बिट का हो
  • चुनी गई साफ़ टेक्स्ट वाली कुंजी के हमले के तहत, मौजूदा फ़ोर्जरी से सुरक्षित रखना
  • कुंजी वापस पाने के हमलों के ख़िलाफ़ कम से कम 128-बिट की सुरक्षा, साथ ही कई उपयोगकर्ताओं के मामले में भी (जब हमलावर किसी खास कुंजी को टारगेट नहीं कर रहा है, लेकिन 32 कुंजियों के सेट में से किसी भी कुंजी को टारगेट कर रहा है)

इस्तेमाल के उदाहरण

मुझे डेटा में छेड़छाड़ होने से बचाना है लेख पढ़ें.