/ / नई एन्क्रिप्शन एल्गोरिदम में संक्रमण - आईओएस, उद्देश्य-सी, एन्क्रिप्शन, क्रिप्टोग्राफी, माइग्रेशन

नई एन्क्रिप्शन एल्गोरिदम में संक्रमण - आईओएस, उद्देश्य-सी, एन्क्रिप्शन, क्रिप्टोग्राफी, माइग्रेशन

IOS ऐप में एक नए एन्क्रिप्शन एल्गोरिथ्म / सेटिंग्स में एन्क्रिप्टेड डेटा को कैसे बदल सकता है? मैं कोड के साथ यह करने के लिए बिल्कुल नहीं पूछ रहा हूँ, यह नहीं बल्कि एक है वैचारिक प्रश्न.

वर्तमान में मेरे उपयोग करने वाले हजारों लोग हैंiOS ऐप उनके डेटा को एन्क्रिप्ट करने के लिए। मुझे वर्तमान एन्क्रिप्शन विधियों के साथ समस्याएं मिली हैं। उन मुद्दों को ठीक करने के लिए मुझे एक बेहतर एन्क्रिप्शन सिस्टम (विवरण के लिए नीचे देखें) को लागू करना होगा और वर्तमान उपयोगकर्ताओं को नई प्रणाली में परिवर्तित करना होगा।

मुझे यकीन नहीं है कि उपयोगकर्ताओं को माइग्रेट करने के बारे में कैसे जाना जाएनई प्रणाली के बिना उन्हें अपने निजी कुंजी दर्ज करने के लिए, डिक्रिप्ट, और नई प्रणाली के साथ फिर से एन्क्रिप्ट करने के लिए। आदर्श रूप से यह संक्रमण जितना संभव हो उतना सहज और अदृश्य होगा। यदि संक्रमण काम नहीं करता है तो मुझे डर है कि उपयोगकर्ता अपना डेटा खो देंगे या निराश हो जाएंगे।

पुरानी एन्क्रिप्शन विधि

  • एईएस 256-बिट
  • सीबीसी मोड

नई एन्क्रिप्शन विधि

  • एईएस 256-बिट
  • सीबीसी मोड
  • PBKDF2 के साथ पासवर्ड स्ट्रेचिंग
  • पासवर्ड नमस्कार
  • रैंडम IV
  • हैम HMAC

इन दो एईएस एन्क्रिप्शन प्रणालियों के बीच संक्रमण के बारे में कोई विचार कैसे कर सकता है?

उत्तर:

जवाब के लिए 3 № 1

क्या वर्तमान एन्क्रिप्शन कुंजी अच्छे हैं? यदि ऐसा है तो आप उन्हें रख सकते हैं और उन्हें नए कुंजी विचलन फ़ंक्शन के साथ लपेट सकते हैं। यह उपयोगकर्ता को डेटा को फिर से एन्क्रिप्ट किए बिना अपना पासवर्ड बदलने की अनुमति देता है। यदि चाबियाँ बहुत कमजोर हैं, तो आपको डेटा को डीक्रिप्ट और फिर से एन्क्रिप्ट करना होगा।

मैं "पासवर्ड साल्टिंग" और "हैश एचएमएसी", आपको देखता हूंPBKDF2 की तर्ज पर एक यूजर द्वारा दिए गए पासवर्ड / पास वाक्यांश से एन्क्रिप्शन कुंजी बनाने के लिए और अधिक सोच रहा होगा राउंड की संख्या चुनने के लिए कैलिब्रेशन फ़ंक्शन का उपयोग करें।

यदि आप आगे सोच रहे थे कि आपके पास एक संस्करण संकेतक है और यदि ऐसा है तो आप नए डेटा को नए कुंजी-स्कीम संस्करण के साथ एन्क्रिप्ट कर सकते हैं और इसमें पिछड़े अनुकूलता है।

मैं सोच रहा हूँ कि Base64 एन्कोडिंग एन्क्रिप्शन के अलावा एन्क्रिप्टेड डेटा को ट्रांसपोर्ट करने के अलावा एन्क्रिप्शन में क्या कर रहा है जो JSON और XML जैसे 8-बिट बाइट्स को संभाल नहीं सकता है।