
डेटा के लिए लचीला प्रोटोकॉल-इंट्रोस्पेक्टिंग चंक एडाप्टर
लचीले डेटा के लिए प्रोटोकॉल-इंट्रोस्पेक्टिंग चंक एडाप्टर
स्वयं-सिखाए लोगों के लिए, अपरंपरागत लोगों के लिए, और उन सभी के लिए जिन्हें कभी अपनी सीमा में रहने को कहा गया। बनाते रहें, खोजते रहें।
PICARD आपके डेटा को एन्क्रिप्ट करता है, उसे चंक्स में काटता है, और उन चंक्स को उन सभी प्रोटोकॉल एंडपॉइंट्स पर बिखेर देता है जिन्हें आप कॉन्फ़िगर करते हैं: DNS TXT रिकॉर्ड्स, सोशल मीडिया APIs, MQTT ब्रोकर्स, S3 बकेट्स, ब्लूटूथ विज्ञापन, या एक साथ उपरोक्त सभी। इसे वापस खींचें और यह फिर से जुड़ जाता है। मल्टी-एडाप्टर स्कैटर के साथ, कोई भी एकल एंडपॉइंट इतना सिफरटेक्स्ट नहीं रखता कि कुछ भी पुनर्निर्माण हो सके। कोई केंद्रीय सर्वर नहीं। कोई मासिक स्टोरेज शुल्क नहीं। यह एक नियमित फाइलसिस्टम के रूप में माउंट होता है।
कुशल नहीं। प्रोटोकॉल-अज्ञेयवादी।
[!IMPORTANT] अनुसंधान परियोजना। PICARD एक कार्यशील कंप्यूटर विज्ञान प्रयोग है, उत्पादन स्टोरेज सिस्टम नहीं। आगे बढ़ने से पहले अनुसंधान और कानूनी सूचना पढ़ें।
[!WARNING] प्रयोगात्मक: अपने जोखिम पर चलाएं। ये एडाप्टर हार्डवेयर भेद्यताओं को स्टोरेज प्रिमिटिव के रूप में उपयोग करते हैं। परिणाम हार्डवेयर-विशिष्ट, मशीनों के बीच गैर-नियतात्मक, और DRAM बिट फ्लिप के मामले में अपरिवर्तनीय होते हैं। केवल उसी हार्डवेयर पर उपयोग करें जो आपके स्वामित्व और नियंत्रण में हो। साझा या क्लाउड इंफ्रास्ट्रक्चर के विरुद्ध चलाना अधिकांश क्षेत्राधिकारों में अनधिकृत पहुंच है।
PICARD अब चंक्स को DRAM बिट अवस्थाओं और CPU कैश निवास में संग्रहीत कर सकता है -- पूरी तरह से ऑपरेटिंग सिस्टम की दृष्टि से बाहर।
| एडाप्टर | यह क्या करता है |
|---|---|
rowhammer | आसन्न DRAM पंक्तियों को हैमर करके बिट्स लिखता है जब तक चार्ज लीकेज लक्ष्य बिट्स को फ्लिप न कर दे। शिकार पंक्ति की सीधे जांच करके पढ़ता है। स्थानीय, अल्पकालिक, गैर-ECC DDR3/4। |
halfdouble | दो-हॉप वेरिएंट। निकट/दूर आक्रामक अनुपात DDR4 टारगेट रो रिफ्रेश (TRR) को बायपास करता है। उस हार्डवेयर तक पहुंचता है जिसे क्लासिक rowhammer अब प्रभावित नहीं करता। |
throwhammer | RDMA के माध्यम से एक रिमोट होस्ट के DRAM को हैमर करता है। रिमोट CPU बिल्कुल भी शामिल नहीं है -- NIC सीधे DRAM में DMA-रीड करता है। RDMA फैब्रिक की आवश्यकता है। |
cpu-cache | Flush+Reload के माध्यम से CPU L3 SRAM में बिट्स संग्रहीत करता है। पेज-आइसोलेटेड स्लॉट्स में N_REPS=5 बहुमत-वोट एन्कोडिंग। i7-12700KF पर BER 5e-4 से नीचे। एक ही होस्ट पर क्रॉस-प्रोसेस; जहां पेज डिडुप्लीकेशन सक्रिय है वहां क्रॉस-VM। |
चारों अल्पकालिक हैं (पावर साइकिल मिटा देता है)। हार्डवेयर आवश्यकताओं और खतरा मॉडल के लिए docs/adapters.md देखें।
plaintext
→ AES-256-GCM encrypt (Argon2id key, per-block salt + nonce)
→ PCHK chunk (protocol-sized pieces)
→ scatter across adapters (DNS, Redis, Reddit, S3, MQTT, …)
→ sealed envelope (HKDF sub-key, correlation tag per adapter)
retrieve
← fan out to all adapters
← collect, verify, assemble
← decrypt
प्रत्येक ब्लॉक को अपने स्वयं के रैंडम सॉल्ट और नॉन्स के साथ स्वतंत्र रूप से एन्क्रिप्ट किया जाता है। चंक्स राउंड-रॉबिन या RAID प्रोफ़ाइल के माध्यम से बिखरे हुए हैं। कोई भी एडाप्टर प्लेनटेक्स्ट नहीं देखता; कोई भी एडाप्टर कुछ भी पुनर्निर्माण करने के लिए पर्याप्त सिफरटेक्स्ट नहीं देखता।
स्थानीय इंडेक्स (एक AES-256-GCM एन्क्रिप्टेड SQLite डेटाबेस) पथों को चंक स्थानों पर मैप करता है। पासफ़्रेज़ खो गया, तो डेटा भी खो गया।
यह एक ठंडी बर्लिन की सुबह थी। अपने आँगन से मैंने लाल ईंटों से ढकी एक सादी स्टक्को दीवार को देखा। पंखों की एक धुंधली छवि ने मेरी नज़र पकड़ी, एक छोटा पक्षी छत की रेखा के पास एक नाली के छेद में मुड़कर गायब हो गया। एक और सिर एक अलग छेद से निकला, चहचहाते हुए। पाँच नाली के छेद, पाँच घोंसले। गटर पानी को स्थानांतरित करने के लिए थे, परिवारों की मेज़बानी के लिए नहीं, फिर भी पक्षियों ने आश्रय, आवरण और आसान पहुँच पा ली थी। मैंने कभी ध्यान नहीं दिया था क्योंकि मैंने कभी देखने की जहमत नहीं उठाई थी।
हमारा डिजिटल बुनियादी ढाँचा उससे अधिक ले जाता है जितना इसे संग्रहीत करने के लिए डिज़ाइन किया गया था। DNS TXT रिकॉर्ड स्पेक के भीतर मनमाना टेक्स्ट स्वीकार करते हैं। MQTT रिटेन्ड संदेश ब्रोकर पर डेटा बनाए रखते हैं। ICMP इको पैकेट एक पेलोड फ़ील्ड ले जाते हैं। सोशल मीडिया API फ्रीफ़ॉर्म संरचित टेक्स्ट स्वीकार करते हैं। इनमें से प्रत्येक प्रोटोकॉल मेटाडेटा, डिस्कवरी या डायग्नोस्टिक्स के लिए इच्छित फ़ील्ड परिभाषित करता है। वे फ़ील्ड बाइट्स को उतनी ही अच्छी तरह ले जा सकते हैं जितना कि उनके डिज़ाइनरों के इच्छित उपयोग के मामले।
picard web http://localhost:8471 पर एक ब्राउज़र डैशबोर्ड खोलता है।
श्रेणी के अनुसार स्टोरेज सतह, एडाप्टर स्वास्थ्य, और एन्क्रिप्शन विवरण एक नज़र में।
श्रेणी के अनुसार ब्राउज़ करने योग्य 259 एडाप्टर, आवश्यक पैरामीटर और एक-क्लिक जोड़ के साथ।
pip install picard-store
export PICARD_PASSPHRASE="your-passphrase" # or picard will prompt
picard init # create picard.toml
# edit picard.toml to add your adapters, then:
picard put myfile.txt --as /docs/myfile.txt
picard get /docs/myfile.txt -o recovered.txt
picard ls
picard tree /
स्रोत से:
git clone https://github.com/neitzert/picard
cd picard
pip install -e ".[dev]"
python -m pytest --tb=short -q
# picard.toml
[general]
block_size = 65536
[[adapters]]
name = "dns-primary"
type = "dns"
enabled = true
params = { nameserver = "10.10.10.10", domain = "chunks.example.com" }
[[adapters]]
name = "s3-backup"
type = "s3"
enabled = true
tor_proxy = true # route through Tor SOCKS5
params = { bucket = "picard-chunks", prefix = "data/" }
[[adapters]]
name = "reddit-stash"
type = "reddit"
enabled = true
browser_mode = "headed" # api | headless | headed
params = { subreddit = "u_myuser" }
[[raid]]
level = "raid5"
adapters = ["dns-primary", "s3-backup", "filesystem"]
[scatter.paranoid]
raid_level = "raid10"
min_adapters = 4
Scatter प्रोफ़ाइल: quiet, resilient, speed, paranoid
| कमांड | विवरण |
|---|---|
picard put <file> --as <path> | एक फ़ाइल संग्रहीत करें |
picard get <path> -o <file> | एक फ़ाइल प्राप्त करें |
picard ls [path] | फ़ाइलों की सूची बनाएं |
picard rm <path> | हटाएं |
picard cp / mv | कॉपी / नाम बदलें |
picard tree / | निर्देशिका वृक्ष |
picard verify <path> | चंक अखंडता जांच |
| कमांड | विवरण |
|---|---|
picard mkdir / ln / head / tail / touch / log / stat / find | मानक फ़ाइलसिस्टम संचालन |
picard fsck | संगति जांच और मरम्मत |
picard mount <mountpoint> | FUSE माउंट |
picard webdav | WebDAV सर्वर (पोर्ट 8471) |