কোনও মাইএসকিএল ডাটাবেস এনক্রিপ্ট করার ভাল উপায় কী এবং এটি কি মূল্যবান?


20

আমি জানি যে আমি একটি ডাটাবেসের বিশেষ ক্ষেত্রগুলি এনক্রিপ্ট করতে পারি, তবে আমি ডাটাবেসের প্রতিটি ক্ষেত্র এনক্রিপ্ট করতে আগ্রহী। আমি নিশ্চিত করতে চাই যে যে কেউ মাইএসকিএল শেল অ্যাক্সেস অর্জন করে তবে যার ডিক্রিপশন কীতে অ্যাক্সেস নেই সে ডাটাবেসের বাইরে কিছু পড়তে পারে না।

আমি আরও নিশ্চিত করতে চাই যে কেউ যদি মেশিনে রুট অ্যাক্সেস পেয়ে থাকে তবে তার ডিক্রিপশন কী না থাকে তবে তারা ডেটা পড়তে পারে না।

আমি এই কিভাবে করা উচিত? এটি করার কোন অর্থ নেই? আমি উদ্বিগ্ন যদি কারও কাছে মাইএসকিএল ডাটাবেসে অ্যাক্সেস থাকে তবে তাদের অবশ্যম্ভাবীভাবে কীটিতে অ্যাক্সেস থাকবে, সুতরাং এটি কোনও অর্থবোধ করে না। আমি কিছু অনুপস্থিত করছি?


5
আপনি কি ডেডিকেটেড ভলিউমে ডিবি সংরক্ষণ এবং এটি ডিএম-ক্রিপ্ট এবং এলইউকেএস দিয়ে এনক্রিপ্ট করার কথা বিবেচনা করেছেন? অবশ্যই, আপনি যা চাইছেন তা নয়, তবে সমস্ত কিছু এনক্রিপ্ট করা হবে। এমনকি আপনি জিপিজি দিয়ে কীফিলটি এনক্রিপ্ট করতে পারেন।
dsljanus

উত্তর:


10

ন্যূনতম, মাঠ পর্যায়ের স্তরের AES এবং DES এনক্রিপশন উপলব্ধ: https://dev.mysql.com/doc/refman/5.5/en/encryption-function.html#function_encrypt

কোনও ক্যোয়ারীর জন্য কী নির্দিষ্ট না করে (বা এটি ট্রিগার / পদ্ধতিতে যুক্ত না করে) কোনও তথ্যই পড়তে পারে না।

উদাহরণ:

ঢোকান:

INSERT INTO users (username, password) VALUES ('root', AES_ENCRYPT('somepassword', 'key12346123'));

এবং নির্বাচন করুন:

SELECT AES_DECRYPT(password, 'key12346123') FROM users WHERE username = 'root';

এছাড়াও, এটির জন্য ডাটাবেসের সাথে এসএসএল সংযোগ প্রয়োজন

এবং নিম্ন স্তরে - আপনি ফাইল সিস্টেমটিও এনক্রিপ্ট করতে পারেন।


2
দ্রষ্টব্য: ডাটাবেস স্থানীয় না হলে আপনার কোনওভাবে সংযোগটি এনক্রিপ্ট করতে হবে বা পাসওয়ার্ড এবং কীটি নেটওয়ার্কের মাধ্যমে সরল পাঠ্য হিসাবে প্রেরণ করা হবে। সিকিউরিটি.সটাকেক্সচেঞ্জ
প্রশ্নগুলি / 45838/…

এইএস, এমডি 5 পুরানো এবং এতে শোষণ রয়েছে। নতুন এনক্রিপশন কি?
YumYumYum

আমি জানি এটি কীভাবে কোনও ক্ষেত্রকে এনক্রিপ্ট / ডিক্রিপ্ট করতে হয় তার উদাহরণ কিন্তু পাসওয়ার্ডের উদাহরণ হিসাবে ব্যবহার করা একটি খারাপ ধারণা। আপনার ডেটাবেজে কোনও এনক্রিপশন সহ বা ছাড়াই কোনও অপরিবর্তিত পাসওয়ার্ড থাকা উচিত নয়।
কেডমন

এই উত্তরটি ক্ষেত্র-স্তরের ডিক্রিপশন সম্পর্কে, তবুও এই প্রশ্নটি এই নয়: "একটি মাইএসকিএল ডাটাবেস এনক্রিপ্ট করার একটি ভাল উপায়" ... "আমি জানি আমি একটি ডাটাবেসের বিশেষ ক্ষেত্রগুলি এনক্রিপ্ট করতে পারি, তবে আমি প্রতিটি এনক্রিপ্ট করতে আগ্রহী ডাটাবেসের ক্ষেত্র "
লার্শ

7

মারিয়াডিবি সম্প্রতি ইনোডিবি এবং এক্সট্রাবিবি টেবিলগুলির জন্য টেবিল-স্তরের এনক্রিপশন যুক্ত করেছে। https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#specifying-what-tables-to-encrypt

মাইএসকিউএল InnoDB- র জন্য টেবিল-স্তরের এনক্রিপশনও সমর্থন করে। https://dev.mysql.com/doc/refman/5.7/en/innodb-tablespace-encryption.html


2

প্রথম: আপনি অ্যাপ্লিকেশনটির সাথে আপনার কীটি সঞ্চয় করুন এবং অ্যাপ্লিকেশন স্তরে সমস্ত এনক্রিপশন হ্যান্ডেল করুন।

পরবর্তী: আপনি নিশ্চিত করেছেন যে মাইএসকিউএল উদাহরণ এবং অ্যাপ্লিকেশন [সার্ভার] আলাদা মেশিনে রয়েছে যাতে মাইএসকিউএল সার্ভারে একটি মূল আপস আক্রমণকারীটিকে অ্যাপ্লিকেশন উত্স থেকে কীটি পড়তে দেয় না।

এই পদ্ধতির অতিরিক্ত মনে হয়। সংবেদনশীল ডেটা সঠিকভাবে পরিচালনা করুন (পাসওয়ার্ড, ক্রেডিট কার্ড ইত্যাদি) তবে সমস্ত কিছু এনক্রিপ্ট করা ওভারকিল। (এবং সম্ভবত প্রাথমিক কীগুলির বিশ্বে উত্পাদনশীল প্রতিরোধকারী)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.