निजी सर्वर के साथ GPG का उपयोग कर एन्क्रिप्टेड ऑफ़साइट बैकअप कभी बैकअप सर्वर पर नहीं है?


11

मेरे पास एक बैकअप सर्वर है, जो बैकअप करने के लिए डायरेक्टरी ट्री के xzकंप्रेस्ड tarआर्काइव बनाता है । ये टार अभिलेखागार विशाल (कई टीबी) प्राप्त कर सकते हैं, splitटुकड़े (2.5TB) में होते हैं, और प्रत्येक टुकड़ा एक LTO-6 टेप को लिखा जाता है, और टेप ऑफसाइट जाते हैं।

अब मैं एन्क्रिप्शन जोड़ना चाहता हूं। मैं सार्वजनिक-निजी कुंजी एन्क्रिप्शन का उपयोग करके, और एक या अधिक प्राप्तकर्ताओं (व्यवस्थापक सार्वजनिक कुंजी) के साथ, विभाजन से पहले टार आर्क संग्रह को GPG एन्क्रिप्ट कर सकता हूं।

हालाँकि, पुनर्प्राप्ति के मामले में, कम से कम एक व्यवस्थापक को अपनी निजी कुंजी को बैकअप सर्वर पर रखने की आवश्यकता होती है, क्योंकि फाइलें कहीं और अनपैक होने के लिए बहुत बड़ी हैं।

GPG हुड के तहत एक हाइब्रिड एन्क्रिप्शन स्कीम का उपयोग करता है, जिसमें AES जैसे सममित सिफर होता है, जिसमें सेशन कुंजी होती है, और केवल उस सेशन कुंजी को प्राप्तकर्ताओं के लिए सार्वजनिक-निजी कुंजी एन्क्रिप्ट किया जाता है।

क्या कोई तरीका है कि एक व्यवस्थापक को डिक्रिप्टिंग फ़ाइल के लिए सत्र कुंजी प्रदान करने के लिए बैकअप सर्वर पर निजी कुंजी डाले बिना पुनर्प्राप्त किया जाए ?


मैं पाठ्यक्रम के पहिए को फिर से मजबूत कर सकता हूं:

  • बैकअप करने के लिए प्रत्येक फ़ाइल के प्रति बैकअप सर्वर पर एक यादृच्छिक सत्र कुंजी बनाएँ
  • फ़ाइल को एन्क्रिप्ट करने के लिए GPG सममित एन्क्रिप्शन का उपयोग करें
  • प्रत्येक प्राप्तकर्ता के लिए सत्र कुंजी को एन्क्रिप्ट करने के लिए GPG असममित एन्क्रिप्शन का उपयोग करें

लेकिन क्या ऊपर प्राप्त करने का एक "मानक" या बिलिन या सर्वोत्तम-अभ्यास तरीका है?

जवाबों:


18

यह निश्चित रूप से --show-session-keyऔर --override-session-keyविकल्पों के साथ संभव है ।

सबसे पहले आपको अपनी एन्क्रिप्टेड फ़ाइल की शुरुआत की आवश्यकता है। यह वह जगह है जहाँ एन्क्रिप्टेड सत्र कुंजी संग्रहीत है।

root@qwerty:~/gpg# head -c 1024k bigfile.gpg > head.gpg

फिर इसे अपने वर्कस्टेशन पर कॉपी करें और सत्र कुंजी पुनः प्राप्त करें

PS C:\Users\redacted\Downloads> gpg --show-session-key .\head.gpg
gpg: encrypted with 2048-bit RSA key, ID DC21D645, created 2016-02-01
  "admin <admin@domain.tld>"
gpg: session key: '9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D'

अब आप अपनी सत्र कुंजी का उपयोग करके फ़ाइल को डिक्रिप्ट कर सकते हैं

root@qwerty:~/gpg# gpg -d -o bigfile --override-session-key 9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D bigfile.gpg
gpg: encrypted with 2048-bit RSA key, ID DC21D645, created 2016-02-01
  "admin <admin@domain.tld>"

इस समस्या का एक बहुत अच्छा समाधान है
लार्स

धन्यवाद!! headऔर ऐसी के साथ अच्छी चाल । दृष्टिकोण मेरी मूल खुजली को हल करता है।
oberstet

4

ऐसा लगता है कि आपके अधिकांश प्रश्न का उत्तर दिया जा चुका है, हालाँकि, यदि आप प्रशासक टीम की निजी चाबियों से सावधान हैं, तो उनके स्थानीय नियंत्रण को समाप्त करने के बाद sshfsssh सत्र में दूरस्थ बैकअप को माउंट करने पर विचार किया जा सकता है ।

प्रत्येक दूरस्थ व्यवस्थापक सिस्टम पर apt के माध्यम से स्थापित करें

sudo apt-get install sshfs

मानती है कि ssh विन्यास कुछ नीचे जैसा दिखता है

# configuration for ssh login to remote server
Host Remote
    Hostname Remote.web.domain
    User admin
    IdentityFile ~/.ssh/private.key

फिर आपके प्रवेश बढ़ते के लिए नीचे की तरह कुछ का उपयोग कर सकते हैं

# make a mount point
mkdir -p /mnt/remote
# mount remote directory to local file system
sshfs Remote:/path/to/encrypted/dir /mnt/remote

निरीक्षण के बाद अनमाउंट करने के लिए दूरस्थ व्यवस्थापक निम्नलिखित का उपयोग कर सकता है

fusermount -u /mnt/remote

Sshfs का उपयोग करने के बारे में मीठी बात यह है कि दूरस्थ सर्वर पर केवल GnuPG और ssh के लिए सार्वजनिक कुंजी की आवश्यकता होती है, संबंधित निजी कुंजियाँ सिस्टम पर रहती हैं जो स्वयं की हैं। दूसरी अच्छी बात यह है कि जब तक अधिकांश फ़ाइल जानकारी को पढ़ा या एक्सेस नहीं किया जाता है, तब तक वह संबंधित फाइल सिस्टम पर रहती है।

यदि आप अभी भी लॉग या निर्देशिकाओं के ऑटो एन्क्रिप्शन को सुविधाजनक बनाने के लिए टूल की तलाश कर रहे हैं, तो मैं उस अवधारणा टूल के प्रोफेसर की जांच करना चाहता हूं, जिसे मैंने GitHub (विशेष रूप से परिदृश्य चारsshsf उपयोग के लिए लिखा है ) पर धकेल दिया है, जो थोड़े अनुकूलन के साथ खुशी से किसी भी एन्क्रिप्ट करेगा GnuPG के माध्यम से डेटा। लेकिन चेतावनी दी जाती है कि यह प्रायोगिक है और इसकी कुछ विशेषताएं डेटा का भ्रष्टाचार हो सकता है यदि इसका दुरुपयोग किया जाता है। स्रोत कोड कम है तो ~ 1600 ~ लाइनों ताकि कम से कम एक सप्ताह के अंत में ऑडिट करना बहुत संभव है।

अतिरिक्त सुरक्षा के लिए रिमोट सर्वर के ssh विन्यास की स्थापना उपयोगकर्ताओं को केवल एन्क्रिप्टेड निर्देशिका तक पहुँच की अनुमति देने और इस फैशन में उपयोग किए जाने वाले व्यवस्थापक कुंजियों के लिए इंटरैक्टिव शेल को अक्षम करने से हो सकती है।


2

यदि आप चाहते हैं कि गुप्त कुंजी हार्ड डिस्क से दूर रहे, तो आप एक रैमडिस्क बना सकते हैं (उन लोगों को याद रखें?) और आवश्यकतानुसार गुप्त कुंजियों को वहां से सुरक्षित रूप से लोड करें। डिक्रिप्टिंग के लिए इसका उपयोग करें और जब इसे ओवरराइट / देव / यादृच्छिक के साथ करें। गुप्त को GPG द्वारा किसी भी तरह से रैम में जाना है, तो दो बार क्यों नहीं?

यदि आप एक गुप्त कुंजी को सर्वर पर, यहां तक ​​कि रैम में भी नहीं होने दे सकते हैं, तो आपके पास एक तकनीकी असंभवता है। किसी भी चीज़ को डिक्रिप्ट करने के लिए जीपीजी के पास कहीं न कहीं गुप्त कुंजी होनी चाहिए।

रामडिस्क जानकारी: /unix/66329/creating-a-ram-disk-on-linux


2
GPG एक प्रति-संदेश सममित रहस्य ("सत्र कुंजी") का उपयोग करता है जो एन्क्रिप्ट किए गए प्रत्येक संदेश के लिए अलग है। यह इस सममित कुंजी है जिसे तकनीकी रूप से उस मशीन पर होना चाहिए जो संबंधित संदेश को डिक्रिप्ट करता है। मैं GPG (असममित) निजी कुंजी ऑफ़लाइन रखना चाहता हूं। बाद वाले को GPG द्वारा सममित सत्र कुंजी को एन्क्रिप्ट करने के लिए उपयोग किया जाता है। तो मैं एक योजना है कि बनाता है इन पहलुओं में से का उपयोग करें ... के बाद कर रहा हूँ
oberstet
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.