मैं अपने सर्वर पर कहीं से भी एन्क्रिप्टेड कुकीज़ में सत्र डेटा संग्रहीत करने के लिए स्विच करने के बारे में सोच रहा हूं। हालांकि इसके परिणामस्वरूप प्रत्येक अनुरोध के लिए अधिक बैंडविड्थ का उपयोग किया जाएगा - यह अतिरिक्त डेटाबेस सर्वर लोड और स्टोरेज स्पेस को सहेज लेगा।क्या उपयोगकर्ताओं को दिए गए टेक्स्ट की थोड़ी मात्रा के साथ उपयोग करने के लिए रिजेंडेल एन्क्रिप्शन सुरक्षित है?
वैसे भी, मैं RIJNDAEL 256.
function encrypt($text, $key)
{
return mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$text,MCRYPT_MODE_ECB,mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB),MCRYPT_RAND));
}
का उपयोग कर उपयोग में कौन सा (base64 प्रदर्शन के लिए इनकोडिंग) कुछ इस तरह
print base64_encode(encrypt('text', 'key'));
7s6RyMaYd4yAibXZJ3C8EuBtB4F0qfJ31xu1tXm8Xvw=
उत्पादन होता कुकी सामग्री को एन्क्रिप्ट करने पर योजना मैं चिंतित नहीं हूँ लगभग एक ही उपयोगकर्ता कुकी के साथ समझौता किया जा रहा है जितना मुझे चिंता है कि एक हमलावर key
खोजेगा और किसी भी उपयोगकर्ता के लिए कोई भी सत्र बनाने में सक्षम होगा क्योंकि उन्हें पता है कि क्या मैं डेटा पर हस्ताक्षर करने के लिए उपयोग करता हूं।
क्या कोई तरीका है कि मैं इस्तेमाल किए गए पैरामीटर के संबंध में अनुमानित क्रैकिंग समय सत्यापित कर सकता हूं? या क्या टेक्स्ट या कुंजी के आकार के संबंध में मानक समय है?
मैंने सुना है कि किसी ने कहा है कि 256 बिट्स से अधिक की आवश्यकता वाली कुंजियां खुद को रिजेंडेल के साथ उपयोग करने के लिए पर्याप्त सुरक्षित हैं। मैं यह भी सोच रहा हूं कि एन्क्रिप्टेड टेक्स्ट की लंबाई एक निश्चित लंबाई की आवश्यकता है ताकि कुंजी को न छोड़ें।
डेटा आम तौर पर लगभग 200 अक्षरों
a:3{s:7:"user_id";i:345;s:5:"token";s:32:"0c4a14547ad221a5d877c2509b887ee6";s:4:"lang";s:2:"en";}
तो यह सुरक्षित है हो जाएगा?
एक चौथाई बनाने के बाद मैंने इसे एन्क्रिप्टेड टेक्स्ट पर जोड़ा। फिर मैंने एक SHA256 एचएमएसी बनाया (उसी कुंजी से पाठ को एन्क्रिप्ट करने के लिए इस्तेमाल किया गया + एन्क्रिप्टेड टेक्स्ट)। तो डेटा प्राप्त करते समय अब मैं एचएमएसी की जांच करता हूं - और यदि वैध है तो डेटा को डिक्रिप्ट करने के लिए आगे बढ़ें। इसके अलावा, डेटा के अंदर मेरे पास टाइमस्टैम्प है इसलिए मैं सत्यापित कर सकता हूं कि डेटा न केवल * सही और मेरे द्वारा भेजा गया है * - इसे समय-समय पर भेजा जाता है। – Xeoncross