
साइड-चैनल विश्लेषण (SCA) साइबर सुरक्षा, हार्डवेयर सुरक्षा, और क्रिप्टोग्राफिक इंजीनियरिंग की दुनिया में एक महत्वपूर्ण विषय बन गया है। सॉफ़्टवेयर एक्सप्लॉइट्स या ब्रूट-फोर्स विधियों के विपरीत, साइड-चैनल अटैक डिजिटल प्रक्रियाओं के वास्तविक-विश्व, भौतिक प्रकटियों का उपयोग करते हैं - जैसे पावर खपत में परिवर्तन, इलेक्ट्रोमैग्नेटिक उत्सर्जन, या निष्पादन समय। ये सूक्ष्म संकेत सावधानीपूर्वक विश्लेषण करके अत्यधिक सुरक्षित उपकरणों से संवेदनशील जानकारी, जैसे क्रिप्टोग्राफिक कुंजियाँ, निकाल सकते हैं।
यह लेख इलेक्ट्रोमैग्नेटिक और पावर साइड-चैनल विश्लेषण में गहराई से देखता है, हमले के वेक्टर, वास्तविक दुनिया के उदाहरण, पहचान और शमन तकनीकों का वर्णन करता है, और विभिन्न कौशल स्तरों पर व्यावहारिक पक्ष को दर्शाने के लिए हाथों से कोड उदाहरण प्रस्तुत करता है। शुरुआती और उन्नत उपयोगकर्ताओं दोनों को लक्षित करते हुए, यह मार्गदर्शिका न केवल आपको SCA को समझने में मदद करेगी बल्कि आपके उपकरणों की सुरक्षा के लिए रणनीतियों से लैस करेगी या उनकी सुरक्षा का मूल्यांकन करेगी।
साइड-चैनल विश्लेषण (SCA) का मतलब अनजाने में होने वाली जानकारी की लीकेज को एक्स्प्लॉइट करना है, जो एक कंप्यूटिंग डिवाइस द्वारा क्रिप्टोग्राफिक या संवेदनशील ऑपरेशंस के दौरान होती है। सॉफ़्टवेयर कमजोरियों को लक्षित करने या गणितीय एल्गोरिदम पर हमला करने की बजाय, SCA भौतिक कणों—इन "साइड चैनल्स" का उपयोग करता है—जानने के लिए। इन में पावर उपयोग में परिवर्तन, उत्सर्जित इलेक्ट्रोमैग्नेटिक (EM) तरंगें, समय के अंतर, ध्वनिक संकेत और यहां तक कि प्रकाश या गर्मी शामिल हो सकते हैं।
एक सरल तुलना की जा सकती है, जैसे एक अपराधी एक सुरक्षित बॉक्स को खोलने का प्रयास कर रहा है, ताले को इसे घुमाकर नहीं लियाकर, बल्कि समय, यांत्रिक हलचल के सूक्ष्म क्लिक को सुनने या थरथराहट को मापने (ध्वनिक या EM उत्सर्जन) द्वारा सुनकर। SCA उन सूक्ष्मताओं का लाभ उठाता है जो डिवाइस सुरक्षित प्रक्रियाओं को निष्पादित करते समय प्रकट करते हैं।
पावर साइड-चैनल अटैक डिवाइस की पावर खपत का निरीक्षण करने पर ध्यान केंद्रित करते हैं जो क्रिप्टोग्राफिक ऑपरेशनों के दौरान होती है। अधिकांश एल्गोरिदम के कारण कोड पथ और डेटा हैंडलिंग रूटीन भिन्न-भिन्न होते हैं, इस समय शक्ति उपयोग में मामूली परन्तु मापने योग्य तरीके से वेरिएशन होते हैं।
जबकि पावर SCA पावर सप्लाई लाइनों में टैप करते हैं, इलेक्ट्रोमैग्नेटिक साइड-चैनल अटैक एंटेना और जांचों का उपयोग करके तार्किक ऑपरेशनों के दौरान इंटीग्रेटेड सर्किट द्वारा विकीर्ण की गई EM तरंगों को चुपके से सुनते हैं। EM-SCA कभी-कभी अधिक लक्षित और कम आक्रामक हो सकता है क्योंकि हमलावरों को पावर लाइनों के साथ भौतिक रूप से किसी तरह की छेड़छाड़ नहीं करनी पड़ती।
SCA की सफलता मापनीयता और संबंध पर निर्भर करती है:
ध्यान दें: हमलावरों को डिवाइस के कोड की जरूरत नहीं है न ही इसके सॉफ़्टवेयर सुरक्षा को भेदना है; "लीक" भौतिकी और परिपथ के कारण होता है।
एक महत्वपूर्ण DPA परिणाम स्मार्टकार्डों पर हुआ था जो AES एन्क्रिप्शन करते थे। जैसे कार्ड के सैकड़ों ज्ञात-टेक्स्ट मान एन्क्रिप्ट करते थे , पावर खपत का अवलोकन करके शोधकर्ताओं ने बिना एल्गोरिदम को तोड़े गुप्त AES कुंजी को निकाला।
शोधकर्ताओं ने यह प्रदर्शित किया कि केवल कुछ स्मार्टकार्डों के पास एक विशेष रूप से ट्यून्ड प्रोब के साथ पहुंचकर, क्रिप्टोग्राफिक ऑपरेशन के दौरान EM उत्सर्जन को कैप्चर करके और कुंजियों को तोड़ सकते हैं।
टाइमिंग साइड-चैनल जैसे कि लकी 13 अटैक, ने चयनित गलत या खराब-फॉर्मेटेड एन्क्रिप्टेड पैकेट्स को प्रोसेस करने में TLS सर्वरों को कितने समय में लेते हैं में सूक्ष्म भिन्नताओं का पता लगाकर अंडरलायिंग कुंजियों के बारे में जानकारी प्राप्त की।
कई IoT चिप्स जो "सिक्योर एलिमेंट्स" के साथ हैं, तब भी असुरक्षित हो सकते हैं अगर उनकी भौतिक हार्डवेयर में छेड़छाड़-संवेदनशीलता या शोर मास्किंग ना हो—मेकिंग इवन कंज्यूमर-ग्रेड ओसीलस्कोप द्वारा उत्साही के लिए कुंजी निष्कर्षण संभव बनाते हैं।
ध्यान दें: हमेशा साइड-चैनल विश्लेषण (यहां तक कि अपने उपकरणों पर भी) कानूनी और नैतिक तरीके से करें। निम्नलिखित उदाहरण सुरक्षा अनुसंधान, CTFs, और सीखने के लिए ही हैं।
एक बुनियादी SCA का प्रदर्शन करने के लिए, आपको यह चाहिए:
+----------------------+
| माइक्रोकंट्रोलर/SOC |
| (लक्ष्य डिवाइस) |
| |
| [ट्रिगर GPIO]-------+
+----------------------+
|
[प्रोब]
|
+-------------+
| ओसीलोस्कोप |
+-------------+
|
[USB to PC]
मान लीजिए कि आपने वेवफॉर्म डेटा (CSV या बाइनरी फाइलें पावर या EM माप की) को कैप्चर किया है, आप पाइथन (साथ में numpy, scipy, और matplotlib) का उपयोग करके बुनियादी विश्लेषण कर सकते हैं।
कुछ USB-कनेक्टेड ओसीलस्कोप्स के लिए आप pyvisa लाइब्रेरी का उपयोग करके डिवाइसों को सूचीबद्ध कर सकते हैं।
import pyvisa
rm = pyvisa.ResourceManager()
print("कनेक्टेड इन्स्ट्रूमेंट्स:")
for resource in rm.list_resources():
print(resource)
मान लीजिए आपके पास 1000 CSV फाइलें पावर ट्रेस का समावेश करती हैं। चलिए औसत पावर वेवफॉर्म की गणना करते हैं।
import numpy as np
import glob
import matplotlib.pyplot as plt
trace_files = glob.glob('traces/*.csv')
accum = None
count = 0
for fname in trace_files:
data = np.loadtxt(fname, delimiter=',')
if accum is None:
accum = data
else:
accum += data
count += 1
mean_trace = accum / count
plt.plot(mean_trace)
plt.xlabel("नमूना #")
plt.ylabel("पावर (a.u.)")
plt.title("एन्क्रिप्शन ऑपरेशनों के पार औसत पावर ट्रेस")
plt.show()
मान लें कि आप एक AES कुंजी के 1 बाइट को पुनः प्राप्त करने की कोशिश कर रहे हैं, हाइपोथेटिकल इंटरमीडिएट मानों (जैसे, S-बॉक्स आउटपुट) और हैमिंग वेट लीकेज मॉडल का उपयोग कर रहे हैं। ट्रेस और ज्ञात प्लेनटेक्स के साथ:
def hamming_weight(x):
return bin(x).count('1')
plaintexts = ... # ज्ञात इनपुट बाइट्स की सरणी
traces = ... # 2D numpy सरणी: आकार (num_traces, trace_length)
guesses = range(256)
max_corr = np.zeros(256)
for key_guess in guesses:
# अनुमानित कुंजी के आधार पर पावर लोडिंग की भविष्यवाणी करें (S-बॉक्स आदि)
model_vals = np.array([hamming_weight(some_sbox[pt ^ key_guess]) for pt in plaintexts])
# समय नमूना के साथ सहसंबंध
for t in range(traces.shape[1]):
corr = np.corrcoef(traces[:, t], model_vals)[0, 1]
if abs(corr) > max_corr[key_guess]:
max_corr[key_guess] = abs(corr)
print("सर्वश्रेष्ठ कुंजी अनुमान:", np.argmax(max_corr))
यदि आपको यह सामग्री मूल्यवान लगी, तो कल्पना कीजिए कि आप हमारे व्यापक 47-सप्ताह के विशिष्ट प्रशिक्षण कार्यक्रम के साथ क्या हासिल कर सकते हैं। 1,200+ से अधिक छात्रों से जुड़ें जिन्होंने यूनिट 8200 तकनीकों के साथ अपने करियर को बदल दिया है।