क्रिप्टो तंत्र का उपयोग करते समय गुप्त भंडारण एक सामान्य समस्या है।
pgcrypto कुंजी भंडारण प्रदान नहीं करता है, आप जहां चाहें कुंजी को स्टोर करने के लिए स्वतंत्र हैं और जितना हो सके इसकी रक्षा कर सकते हैं।
कुंजी को किसी अन्य डेटाबेस में संग्रहीत करना, यदि उसी DBA द्वारा प्रबंधित किया जाता है, तो अधिक सुरक्षा प्रदान नहीं करता है क्योंकि DBA इसे उसी तरह एक्सेस कर सकता है।
आदर्श रूप से, आप कुंजी को एक सुरक्षित तिजोरी में संग्रहीत करेंगे और प्रश्नों के निर्माण के लिए इसे अपने आवेदन से अनुरोध करेंगे। यह तब भी डीबीए से दिखाई देगा जब अनुरोध select * from pg_stat_activity
के माध्यम से चल रहा हो ।
आप set session my.vars.cryptokey = 'secret';
के माध्यम से SQL सत्र के व्यापक उपयोग के लिए कुंजी सेट कर सकते हैं फिर इसे निम्नलिखित सिंटैक्स के साथ अपने प्रश्नों में उपयोग करें:current_setting('my.vars.cryptokey')::text
एप्लिकेशन के दृष्टिकोण से (लगभग) पारदर्शी होने के लिए, PostgreSQL नियम secure_column
का अनुवाद करने में मदद कर सकते हैं। सत्र संग्रहीत कुंजी के साथ फ़ंक्शन को डिक्रिप्ट करने के लिए कॉल करने के लिए। डालने के लिए, एक पूर्व-सम्मिलित ट्रिगर की आवश्यकता होगी।