অ্যাপ্লিকেশন সুরক্ষার প্রথম নিয়ম: কোনও আক্রমণকারী এখন নিয়ন্ত্রণহীন শারীরিক বা বৈদ্যুতিন অ্যাক্সেস অর্জন করে এমন কোনও মেশিনই আপনার আক্রমণকারীর অন্তর্ভুক্ত, এটি আসলে কোথায় আছে বা আপনি এর জন্য কী প্রদান করেছিলেন তা নির্বিশেষে।
অ্যাপ্লিকেশন সুরক্ষার দ্বিতীয় নিয়ম: কোনও সফ্টওয়্যার যা শারীরিক সীমানাগুলির ভিতরে ফেলে দেয় যা আক্রমণকারী এখন প্রবেশ করতে পারে না তা আপনার আক্রমণকারীর অন্তর্গত, আপনি কোডিং করতে কত সময় ব্যয় করেছেন তা নির্বিশেষে।
তৃতীয় নিয়ম: আক্রমণকারী এখন প্রবেশ করতে পারে না এমন একই শারীরিক সীমানাকে ছেড়ে দেয় এমন কোনও তথ্য আপনার আক্রমণকারীর অন্তর্ভুক্ত, এটি আপনার পক্ষে যতই মূল্যবান হোক না কেন।
তথ্য প্রযুক্তি সুরক্ষার ভিত্তি এই তিনটি মূলনীতি ভিত্তিক; একমাত্র সত্যিকারের সুরক্ষিত কম্পিউটার হ'ল একটি নিরাপদে লক করা একটি, একটি ফরহাদে খাঁচার ভিতরে, স্টিলের খাঁচার অভ্যন্তরে। এমন কম্পিউটার রয়েছে যা তাদের বেশিরভাগ পরিষেবা জীবন কেবল এই অবস্থায় কাটায়; বছরে একবার (বা তার চেয়ে কম), তারা বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষের জন্য ব্যক্তিগত কী উত্পন্ন করে (তারা যেখানে রয়েছে তার প্রতিটি ইঞ্চি ক্যামেরা রেকর্ডিং সহ সাক্ষিদের একটি হোস্টের সামনে)।
এখন, বেশিরভাগ কম্পিউটার এই ধরণের পরিবেশের অধীনে ব্যবহৃত হয় না; এগুলি শারীরিকভাবে উন্মুক্ত অবস্থায় রয়েছে, একটি ওয়্যারলেস রেডিও চ্যানেলের মাধ্যমে ইন্টারনেটে সংযুক্ত। সংক্ষেপে, তারা তাদের সফ্টওয়্যার হিসাবে দুর্বল। তারা বিশ্বাসযোগ্য হয় না। কম্পিউটার এবং তাদের সফ্টওয়্যার অবশ্যই কার্যকর হতে হবে তা জানতে বা করতে হবে এমন কিছু জিনিস রয়েছে তবে তারা যাতে ক্ষতি করতে পারে সেগুলি কখনই জানতে না পারে বা করতে পারে না সেদিকে খেয়াল রাখতে হবে (কমপক্ষে সেই একক মেশিনের সীমানার বাইরে স্থায়ী ক্ষতি হবে না) )।
আপনি এই সব ইতিমধ্যে জানতেন; এজন্য আপনি নিজের আবেদনের কোডটি সুরক্ষিত করার চেষ্টা করছেন। তবে, এতেই প্রথম সমস্যা রয়েছে; অবরুদ্ধকরণ সরঞ্জামগুলি কোডটি একটি মানুষকে খনন করার চেষ্টা করার জন্য কোডকে জঞ্জাল করে তুলতে পারে তবে প্রোগ্রামটি এখনও চালাতে হয়; তার মানে অ্যাপ্লিকেশনটির আসল যুক্তিযুক্ত প্রবাহ এবং এটি যে ডেটা ব্যবহার করে তা অবরুদ্ধ করে প্রভাবিত করে না। একটু দৃacity়তা দেওয়া হয়েছে, একজন আক্রমণকারী কেবল কোডটি অবলম্বন করতে পারে এবং এটি এমন কিছু ক্ষেত্রেও প্রয়োজনীয় নয় যেখানে সে যা দেখছে সে অন্য কিছু হতে পারে না যা সে খুঁজছিল।
পরিবর্তে, আপনার এটি নিশ্চিত করার চেষ্টা করা উচিত যে কোনও আক্রমণকারী আপনার কোড সহ কিছু করতে পারে না, তার স্পষ্ট অনুলিপি পাওয়া তার পক্ষে যতই সহজ হোক না কেন। এর অর্থ, কোনও হার্ড-কোডেড গোপনীয়তা নেই, কারণ কোডগুলি যে বিল্ডিংটি আপনি এটি নির্মাণ করেছিলেন তা ছাড়ার সাথে সাথে সেই গোপনীয়তাগুলি গোপন নয়।
আপনার হার্ড-কোডেড থাকা এই কী-মানগুলি অ্যাপ্লিকেশনটির উত্স কোডটি পুরোপুরি মুছে ফেলা উচিত। পরিবর্তে, তাদের তিনটি স্থানে থাকা উচিত; ডিভাইসে অস্থির মেমরি, যা আক্রমণকারীটির অফলাইন অনুলিপি পাওয়ার জন্য শক্ত (তবে এখনও অসম্ভব নয়); স্থায়ীভাবে সার্ভার ক্লাস্টারে, যেখানে আপনি লোহার মুষ্টির সাহায্যে অ্যাক্সেস নিয়ন্ত্রণ করেন; বা দ্বিতীয় ডেটা স্টোরটিতে আপনার ডিভাইস বা সার্ভারের সাথে সম্পর্কিত নয় যেমন কোনও ফিজিকাল কার্ড বা আপনার ব্যবহারকারীর স্মৃতিতে (যার অর্থ এটি শেষ পর্যন্ত অস্থির মেমরিতে থাকবে তবে এটি বেশি দিন থাকতে হবে না)।
নিম্নলিখিত স্কিম বিবেচনা করুন। ব্যবহারকারী মেমরি থেকে ডিভাইসে অ্যাপের জন্য তাদের শংসাপত্রগুলি প্রবেশ করে। দুর্ভাগ্যক্রমে, আপনাকে অবশ্যই বিশ্বাস করতে হবে যে ব্যবহারকারীটির ডিভাইসটি ইতিমধ্যে কোনও কীলগার বা ট্রোজান দ্বারা আপস করা হয়নি; ব্যবহারকারী যে ডিভাইসগুলি ব্যবহার করেছেন (ম্যাক / আইপি, আইএমইআই, ইত্যাদি) সম্পর্কে হার্ড-টু-জাল সনাক্তকরণের তথ্য স্মরণ করে এবং কমপক্ষে একটি অতিরিক্ত চ্যানেল সরবরাহ করে মাল্টি-ফ্যাক্টর সুরক্ষা কার্যকর করার ক্ষেত্রে আপনি এই ক্ষেত্রে সর্বোত্তম কাজটি করতে পারেন by কোন অপরিচিত ডিভাইসে লগইন প্রচেষ্টা যাচাই করা যেতে পারে।
শংসাপত্রগুলি, একবার প্রবেশ করানো হয়, ক্লায়েন্ট সফ্টওয়্যার দ্বারা আবৃত হয় (একটি সুরক্ষিত হ্যাশ ব্যবহার করে), এবং সরল-পাঠ্য শংসাপত্রগুলি বাতিল করা হয়; তারা তাদের উদ্দেশ্য পালন করেছে। অপ্রকাশিত শংসাপত্রগুলি একটি সুরক্ষিত চ্যানেলের মাধ্যমে শংসাপত্র-প্রমাণীকরণকৃত সার্ভারে প্রেরণ করা হয়, যা লগইনের বৈধতা যাচাই করতে ব্যবহৃত ডেটা উত্পাদন করতে তাদের আবার হ্যাশ করে । এইভাবে, ক্লায়েন্ট কখনই জানে না যে আসলে ডাটাবেসের মানের সাথে কী তুলনা করা হয়, অ্যাপ্লিকেশন সার্ভার যাচাইয়ের জন্য যা পায় তার পেছনের সরল প্রমাণাদি কখনই জানে না, যাচাইকরণের জন্য সংরক্ষণ করা ডেটা কীভাবে উত্পাদিত হয় তা ডেটা সার্ভার কখনই জানে না এবং এতে একজন লোক সুরক্ষিত চ্যানেল সমঝোতা করা থাকলেও মাঝারিটি কেবল জিব্রিশ দেখতে পায়।
একবার যাচাই হয়ে গেলে, সার্ভারটি চ্যানেলের মাধ্যমে একটি টোকেন ফিরে প্রেরণ করে। টোকেনটি কেবল সুরক্ষিত সেশনের মধ্যেই কার্যকর, এটি এলোমেলো শব্দ বা একটি এনক্রিপ্ট করা (এবং এইভাবে যাচাইযোগ্য) অধিবেশন শনাক্তকারীদের অনুলিপি দ্বারা গঠিত এবং ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অবশ্যই কোনও অনুরোধের অংশ হিসাবে একই চ্যানেলে এই টোকনটি সার্ভারে প্রেরণ করতে হবে কিছু করতে. ক্লায়েন্ট অ্যাপ্লিকেশনটি এটি বহুবার করবে, কারণ এটি অর্থ, সংবেদনশীল ডেটা বা নিজের দ্বারা ক্ষতিকারক হতে পারে এমন কোনও কিছুই জড়িত করতে পারে না; পরিবর্তে এটি সার্ভারকে এই কাজটি করতে বলবে। ক্লায়েন্ট অ্যাপ্লিকেশনটি ডিভাইসে নিজেই অবিরাম মেমরির জন্য কোনও সংবেদনশীল তথ্য লিখবে না, কমপক্ষে সরল পাঠ্যে নয়; ক্লায়েন্ট কোনও স্থানীয় ডেটা এনক্রিপ্ট করার জন্য সুরক্ষিত চ্যানেলের উপর দিয়ে সার্ভারকে অনুরোধ করতে পারে, যা সার্ভার মনে রাখবে; পরবর্তী অধিবেশনে ক্লায়েন্ট সার্ভারটিকে একই কীটির জন্য অস্থির মেমরির জন্য ডেটা ডিক্রিপ্ট করতে অনুরোধ করতে পারে। সেই তথ্যটি কেবলমাত্র অনুলিপি হবে না; ক্লায়েন্ট স্টোরগুলি যে কোনও কিছুতে কোনও রূপে সার্ভারে প্রেরণ করা উচিত।
স্পষ্টতই, এটি আপনার অ্যাপ্লিকেশনটিকে ইন্টারনেট অ্যাক্সেসের উপর নির্ভর করে; ক্লায়েন্ট ডিভাইসটি সার্ভারের সাথে সঠিক সংযোগ এবং প্রমাণীকরণ ব্যতীত এর কোনও মৌলিক ফাংশন সম্পাদন করতে পারে না। আসলে ফেসবুকের চেয়ে আলাদা কিছু নয়।
এখন, আক্রমণকারী যে কম্পিউটারটি চায় সেটি হ'ল আপনার সার্ভার, কারণ এটি এবং ক্লায়েন্ট অ্যাপ / ডিভাইসটি এমন জিনিস নয় যা তাকে উপার্জন করতে পারে বা তার উপভোগের জন্য অন্যান্য লোককে কষ্ট দেয়। ঠিক আছে; সমস্ত ক্লায়েন্টকে সুরক্ষিত করার চেষ্টা করার চেয়ে সার্ভারকে সুরক্ষিত করার জন্য আপনার পয়সা খরচ করার অর্থ এবং প্রচেষ্টার জন্য আপনি আরও অনেক ধাক্কা পান। সার্ভারটি সমস্ত ধরণের ফায়ারওয়াল এবং অন্যান্য বৈদ্যুতিন সুরক্ষার পিছনে থাকতে পারে এবং স্টিল, কংক্রিট, কীকার্ড / পিন অ্যাক্সেস এবং 24 ঘন্টা ভিডিও নজরদারি পিছনে শারীরিকভাবে সুরক্ষিত করা যায়। সরাসরি সার্ভারে যে কোনও ধরণের অ্যাক্সেস পাওয়ার জন্য আপনার আক্রমণকারীটিকে খুব পরিশীলিত হওয়া দরকার এবং আপনি অবিলম্বে এটি সম্পর্কে জানতে হবে।
একজন আক্রমণকারী সবচেয়ে ভাল কাজটি করতে পারে কোনও ব্যবহারকারীর ফোন এবং শংসাপত্রগুলি চুরি করে এবং ক্লায়েন্টের সীমিত অধিকার সহ সার্ভারে লগ ইন করে। যদি এমনটি ঘটে, ঠিক যেমন কোনও ক্রেডিট কার্ড হারাতে হয়, বৈধ ব্যবহারকারীর জন্য একটি 800 নাম্বারে কল করতে নির্দেশ দেওয়া উচিত (সাধারণত মনে রাখা সহজ, তবে কোনও কার্ডের পিছনে নয় যা তারা তাদের পার্স, মানিব্যাগ বা ব্রিফকেস বহন করবে যা হতে পারে মোবাইল ডিভাইসের সাথে চুরি করা) যে কোনও ফোন থেকে তারা অ্যাক্সেস করতে পারে যা এগুলি সরাসরি আপনার গ্রাহক পরিষেবার সাথে সংযুক্ত করে। তারা জানিয়ে দেয় যে তাদের ফোনটি চুরি হয়ে গেছে, কিছু বেসিক অনন্য শনাক্তকারী সরবরাহ করে এবং অ্যাকাউন্টটি লক হয়ে যায়, আক্রমণকারী যে কোনও লেনদেন প্রক্রিয়া করতে সক্ষম হতে পারে তা আবার ঘূর্ণিত হয় এবং আক্রমণকারী আবার স্কোয়ার একে ফিরে আসে।