মাইএসকিউএল এনক্রিপশন এবং কী পরিচালনা


10

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

আমি সহজেই ডেটা সহজেই অ্যাক্সেসযোগ্য থাকা অবস্থায় এটি করার সর্বোত্তম উপায় কী তা সম্পর্কে আমি পরিষ্কার নই।

উত্তর দেওয়ার মত একটি কঠিন প্রশ্নের মতো মনে হচ্ছে: কী (গুলি) সঞ্চিত আছে? কী কীভাবে সেরা সুরক্ষা দেওয়া যায়? যদি প্রতিটি ব্যবহারকারীর মেশিনে কীটি সংরক্ষণ করা হয়, তবে মেশিনটি ব্যবহার করা গেলে কীভাবে এটি রক্ষা করা যায়? কীটি যদি শোষণ করা হয়, কীভাবে কীভাবে পরিবর্তন করবেন?

কীটি যদি ডিবিতে জমা করতে হয় তবে কীভাবে এটি সেখানে সংরক্ষণ করবেন? ব্যবহারকারীরা কীভাবে এটি অ্যাক্সেস করতে পারে?


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

জবাবের জন্য ধন্যবাদ! আমি ব্যাকআপ নিয়ে তেমন উদ্বিগ্ন নই। কেউ যদি কোনও ব্যবহারকারী মেশিন শোষণ করে এবং সেখান থেকে এসকিউএল ইঞ্জেকশনের মাধ্যমে সেখান থেকে সাইট অ্যাক্সেস করে, বা ব্যবহারকারীর অ্যাপ্লিকেশন শংসাপত্রগুলি নিয়ে আসে তবে আমি বেশি উদ্বিগ্ন। আমি নিজেও যন্ত্রটির বিষয়ে উদ্বিগ্ন নই; সু এর শংসাপত্রগুলি খুব শক্তিশালী (যদিও আমি এটি কোনও 100% সুরক্ষিত যে কোনও মায়াভুক্ত নই)।
ঝড়ঝুঁকিতে

উত্তর:


9

পরিশীলিত এনক্রিপ্টেড কী সেটআপগুলি পরিচালনা করার জন্য সত্যিই কোনও অন্তর্নির্মিত মাইএসকিউএল বৈশিষ্ট্য নেই। আপনার নিজের পিএইচপি এবং / অথবা ব্রাউজার-সাইড (জাভাস্ক্রিপ্ট?) কোডে প্রচুর পরিমাণে এনক্রিপশন যুক্তি প্রয়োগ করতে হবে।

তবে আপনার উল্লিখিত উদ্বেগগুলি কিছুটা অদ্ভুত: আপনার একমাত্র আসল উদ্বেগগুলি কোনও এসকিউএল ইঞ্জেকশন বা ব্রুট ফোর্স (পাসওয়ার্ড-অনুমান, আমি ধরে নিই) একটি দূরবর্তী ক্লায়েন্টের ডেস্কটপ / ল্যাপটপের ওয়ার্কস্টেশন থেকে আক্রমণ। এটি আমাকে সন্দেহ করে তোলে যে আপনার ইতিমধ্যে কিছু অন্যান্য, উল্লিখিত সুরক্ষার ব্যবস্থা পরিকল্পনা করা হয়েছে এবং আপনি আপস করার সম্ভাব্য উপায়গুলি বিশ্লেষণ করেছেন।

  • একটির জন্য, আমি ধরে নিচ্ছি যে আপনার কাছে মাইএসকিউএল / পিএইচপি হোস্টকে অনুমোদনহীন দূরবর্তী ক্লায়েন্টের আইপি থেকে কোনও প্রকারের অ্যাক্সেসের বিরুদ্ধে রক্ষা করার ফায়ারওয়াল বিধি রয়েছে। আমি যদি সঠিক হয় তবে এটি বোঝা যায় যে আপনি কেবল আপোষকৃত ব্যবহারকারীদের ওয়ার্কস্টেশন থেকে আক্রমণ সম্পর্কে উদ্বিগ্ন।

  • এছাড়াও, আমি ধরে নিচ্ছি যে আপনি বুঝতে পেরেছেন যে দূরবর্তী ক্লায়েন্টের হোস্টের কোনও আক্রমণকারী যদি রুট / অ্যাডমিন গোপনীয়তাগুলিতে বাড়াতে পারে বা প্রকৃত ব্যবহারকারীর নিজের অ্যাকাউন্টে সরাসরি আপস করতে পারে তবে ক্লায়েন্টের ডেটাতে এনক্রিপশন বা অন্য কোনও সুরক্ষা নির্বিশেষে শূন্য সুরক্ষা রয়েছে। (আক্রমণকারী যেখানেই ডিস্কে সেভ করা হয় সেখান থেকে কীগুলি পড়তে পারে বা লগনে সত্যিকারের ব্যবহারকারীরা প্রবেশ করায় সেগুলি স্নুপ করতে পারে এবং কীগুলি ডেটাতে নেতৃত্ব দেয়))

এই দুটি অনুমান থেকে শুরু করে, আমাদের কাছে এই সিদ্ধান্তে পৌঁছানো বুদ্ধিমান হয়ে যায় যে কেবলমাত্র দুটি প্রাসঙ্গিক হুমকি হ'ল এ) ব্রুট-ফোর্স পাসওয়ার্ড অনুমান করা, এবং খ) এসকিউএল ইঞ্জেকশন প্রচেষ্টা:

  • আক্রমণকারী যদি সত্যিকারের ব্যবহারকারীর কীটি ধরে রাখে না, বা যদি তিনি কেবল প্রকৃত ব্যবহারকারীর ডেটার চেয়ে বেশি অ্যাক্সেস পেতে চান, তবে তিনি প্রকৃত ব্যবহারকারীর জন্য বা অন্য কোনও অ্যাকাউন্টের জন্য জোর করে লগন ক্রেডিট চেষ্টা করতে পারেন। (তত্ত্বের ভিত্তিতে আপনি প্রতিটি অ্যাকাউন্টকে একটি নির্দিষ্ট দূরবর্তী ক্লায়েন্ট আইপিতে লক করতে পারেন যা ঝুঁকিগুলিও পৃথকীকরণে সহায়তা করবে))
  • আক্রমণকারী যদি সত্যিকারের ব্যবহারকারীর জন্য একটি বৈধ কী পান তবে তার সম্ভাব্য বগি অ্যাপ কোডটির নরম আন্ডারবিলিতে লগন স্ক্রিনের (যা সম্ভবত সুরক্ষার পক্ষে যথেষ্ট সহজ) এর আগে একটি অ্যাভিনিউ রয়েছে। সত্যিকারের ব্যবহারকারীর প্রসঙ্গ থেকে একটি সফল এসকিউএল ইঞ্জেকশন তাকে অন্যান্য ক্লায়েন্টের ডেটাতেও অ্যাক্সেস দিতে পারে।

এখন, সার্ভার-সাইড এনক্রিপশন কীভাবে এই পরিস্থিতিতে প্রযোজ্য সে সম্পর্কে কথা বলা যাক:

  • সার্ভার-সাইড এনক্রিপশনটি অবশ্যই এসকিউএল ইঞ্জেকশন হুমকির বিরুদ্ধে সহায়তা করে। যদি সারি মানগুলি ডিবি টেবিলগুলিতে এনক্রিপ্ট করা থাকে তবে আক্রমণকারী কেবলমাত্র অন্যান্য অ্যাকাউন্টগুলির সাথে সম্পর্কিত ডেটাগুলির জিব্বারিশ সিফারেক্সট দেখতে পাবে। হুমকি রয়েছে, বগিযুক্ত।
  • ব্রুট পাসওয়ার্ড অনুমান করার জন্য জোর করে, যদিও সার্ভার-সাইড এনক্রিপশনের মুখোমুখি কোনও আক্রমণকারীর পক্ষে সত্যিই তেমন কোনও কঠিন হয়ে ওঠে না। ব্যবহারকারীদের কীগুলি সার্ভারে সঞ্চয় করা আছে বা পাসওয়ার্ড থেকে স্পট-স্পট তৈরি করা হয়েছে তা নির্বিশেষে, কেবলমাত্র আপনার কাছে সঠিক পাসওয়ার্ড রয়েছে কিনা তা গুরুত্বপূর্ণ। হয় সার্ভার আপনাকে বৈধ সঞ্চিত কীটি ব্যবহার করার অনুমতি দেয় কারণ এটি আপনার পাসওয়ার্ডটি সঠিক কিনা তা পরীক্ষা করে বা এটি আপনার জন্য বৈধ কীটি গণনা করে কারণ আপনার পাসওয়ার্ডটি সেই কী তৈরির জন্য সঠিক ইনপুট।

অন্যদিকে ক্লায়েন্টের পাশের এনক্রিপশনটি প্রকৃতপক্ষে প্রাণঘাতী বলের পাসওয়ার্ড আক্রমণকে অপ্রাসঙ্গিক করে তোলে। আপনি সঠিকভাবে নির্মিত চাবিটিকে জোর করে চাপাতে পারবেন না। ক্লায়েন্ট-সাইড এনক্রিপশনটি সার্ভার-সাইড এনক্রিপশন হিসাবেও এসকিউএল ইঞ্জেকশনের বিরুদ্ধে মূলত একই স্তরের সুরক্ষা রাখে। ক্লায়েন্টটি লগনে সার্ভারের চাবিটি পাস করতে পারে, সেশনটি শেষ না হওয়া অবধি স্মৃতিতে একটি অনুলিপি রাখে, যা সার্ভারে ক্রিপ্টো সিপিইউ বোঝা রাখে। বা, ক্লায়েন্ট ব্রাউজারে নিজে থেকেই এনক্রিপশন / ডিক্রিপশন হ্যান্ডেল করতে পারে। উভয় কৌশলতে উত্থান-পতন রয়েছে:

  • কোডটি পরিচালনা ও পরিচালনা করা সার্ভারে এর কীটি পাস করা আরও সহজ এবং সাধারণত আরও অনুকূলিত ক্রিপ্টো কোডের কারণে (সি, সম্ভবত সংকলিত) সংক্ষিপ্ততর দ্রুত হয়।
  • খাঁটি ক্লায়েন্ট-পাশের পদ্ধতির অতিরিক্ত সুরক্ষা দেওয়া হয়, কারণ কোনও আক্রমণকারী সার্ভারে রুট হয়ে গেলেও, তিনি এখনও এনক্রিপ্ট হওয়া ডেটাটি পড়তে পারবেন না এবং সে কখনই এটি পড়তে সক্ষম হবে না। একমাত্র সম্ভাব্য আক্রমণকারী ভেক্টর হ'ল দূরবর্তী ক্লায়েন্টের ওয়ার্কস্টেশন থেকে আপস করা।

পরিশেষে, আমি লক্ষ করতে চলেছি যে ডাটাবেসে এনক্রিপ্ট করার ডেটাতে কিছু বিশাল অপারেশনাল ডাউনসাইড রয়েছে। এনক্রিপ্ট করা ডেটা উপস্থাপনাগুলি মূলত এলোমেলো নিদর্শন হওয়ায় সূচীকরণ, যোগ দেওয়া ইত্যাদি বুনিয়াদি ডাটাবেস বৈশিষ্ট্যগুলি কাজ করে না। ক্লায়েন্ট একটি বিশাল যুক্তিযুক্ত বোঝা গ্রহণ করে এবং ডাটাবেসের বৈশিষ্ট্যগুলি সাধারণত আনতে পারে এমন অনেকগুলি সুবিধা হারাতে পারে।


1
কি দারুন! আশ্চর্যজনক এবং পুঙ্খানুপুঙ্খ উত্তর; আপনাকে অনেক ধন্যবাদ. গত কয়েক দিন ধরে, আমি কিছু বিকল্প বিবেচনা করছি এবং আপনার পরামর্শ অনুসারে ক্লায়েন্ট-সাইড সলিউশন চেষ্টা করার এবং প্রয়োগ করার সিদ্ধান্ত নিয়েছি। আদর্শভাবে, কীগুলি থাম্ব ড্রাইভে সংরক্ষণ করা হবে যা কোনও ব্যবহারকারী সিস্টেমে কাজ করার সময় কেবল মাউন্ট করা হবে (শারীরিক সুরক্ষা খুব কড়া) এবং সেশনটি যতক্ষণ বেঁচে থাকবে ততক্ষণ স্মৃতিতে রাখা কীটি। আমি যখন ট্র্যাফিক ইত্যাদির উপর নজরদারি করতে আছি তখন কাজের সময়গুলিতে কীগুলি কেবলমাত্র সিস্টেমে অ্যাক্সেসযোগ্য হবে
আইডিয়া ঝড়

2

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


2

আপনি স্কাইটেল ব্যবহার করতে পারেন। এটি আধুনিক ডিবিএমএস এবং ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি নোএসকিউএল ক্রিপ্টো প্রক্সি। মাল্টি-প্রাপক এবং গোষ্ঠী এনক্রিপশন সমর্থন করে। একটি শক্তিশালী আরএসএ / এইএস ক্রিপ্টোসিস্টেম দিয়ে লোড করা। এটি 100% ফ্রি এবং ওপেন সোর্স।

https://bitbucket.org/maximelabelle/scytale

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