সমস্যা: অন্ধ বিশ্বাস
আপনি যখন একটি বেবি মনিটর অ্যাপ ইনস্টল করেন, তখন সেটিকে খুব ব্যক্তিগত একটি জায়গায় প্রবেশাধিকার দেন: আপনার শিশুর ঘর। অ্যাপটি শোনে, আর কখনও কখনও দেখেও। একই সময়ে, পেছনে কী ঘটছে তা অভিভাবকেরা প্রায়ই দেখতে পারেন না: স্ট্রিম কি তৃতীয় পক্ষের সার্ভার দিয়ে যায়, ব্যবহারসংক্রান্ত তথ্য কি সংগ্রহ করা হয়, প্রযুক্তিগতভাবে কার কীসে প্রবেশাধিকার আছে?
সৎ উত্তর হলো: অনেক অ্যাপের ক্ষেত্রে আপনি জানেন না। কোড বন্ধ থাকে, আর স্থাপত্য সম্পর্কে যা বলা হয় তা শুধু দাবি হিসেবেই থেকে যায়। শেষ পর্যন্ত আপনাকে প্রদানকারীকেই বিশ্বাস করতে বলা হয়।
বন্ধ কোড, খোলা দুর্বলতা
সাম্প্রতিক বছরগুলোতে হ্যাক হওয়া বেবি মনিটর নিয়ে যথেষ্ট প্রতিবেদন এসেছে। অপরিচিত লোকজন শুনতে পারত, ক্যামেরা নড়াতে পারত, বা স্পিকারের মাধ্যমে কথা বলতে পারত। বেশিরভাগ সময় এগুলো অস্বাভাবিক কোনো আক্রমণ ছিল না, ছিল গুরুতর ব্যর্থতা: এনক্রিপশনহীন সংযোগ, ডিফল্ট পাসওয়ার্ড, প্রমাণীকরণের অভাব।
মালিকানাধীন সফটওয়্যারের ক্ষেত্রে বাইরের মানুষ সাধারণত কিছু ঘটার পরই এসব দুর্বলতা দেখতে পান। নিরাপত্তা গবেষক, স্বাধীন ডেভেলপার ও অভিভাবকেরা বাইরে থেকে একটি তৈরি পণ্য দেখেন। শিশুর ঘরের কোনো ডিভাইসের জন্য এটি দুর্বল একটি ব্যবস্থা।
নিরাপত্তার নীতি হিসেবে স্বচ্ছতা
তথ্যনিরাপত্তার একটি পুরোনো, কার্যকর নীতি আছে: কের্কহফসের নীতি। নিরাপত্তা নকশা গোপন থাকার ওপর নির্ভর করা উচিত নয়। কেউ কীভাবে এটি তৈরি হয়েছে জানলেও একটি ব্যবস্থা নিরাপদ থাকা উচিত।
খোলাখুলিভাবে নথিভুক্ত কোড নিজে থেকেই সফটওয়্যারকে নিরাপদ করে না। তবে এতে দাবিগুলো যাচাই করা যায়। এই ক্ষেত্রটি বোঝেন এমন মানুষ বিপণনের লেখা পড়ার বদলে ডেটা প্রবাহ, কী ডেরাইভেশন এবং নিয়মগুলো পরীক্ষা করতে পারেন।
Timmy-এর পদ্ধতি: আলাদা নিরাপত্তা কোর
Timmy-তে আমি এখন কোন অংশগুলো সত্যিই নিরাপত্তার জন্য গুরুত্বপূর্ণ, তা খুব স্পষ্টভাবে আলাদা করি। UI-এর প্রতিটি লাইন পণ্যটি বিশ্বাসযোগ্য কি না তা ঠিক করে না। মূল বিষয়গুলো হলো ব্যাকএন্ড লজিক, সিগন্যালিং কনট্র্যাক্ট, পেয়ারিং ক্রিপ্টোগ্রাফি, এবং কোন ডেটা সার্ভারে পৌঁছায় সেই প্রশ্ন।
সে কারণেই নিরাপত্তা কোরটি এখন পাবলিক baby-monitor-timmy-core রিপোজিটরিতে। পুরো অ্যাপের কোড এখন প্রকাশ্য নয়। নিরাপত্তার জন্য গুরুত্বপূর্ণ অংশগুলোকে UI ও পণ্যের লজিক থেকে আলাদা করা হয়েছে, যাতে সেগুলো নিজস্বভাবে নথিভুক্ত ও পর্যালোচনা করা যায়।
বাস্তবে এর অর্থ কী?
- স্পষ্ট সীমারেখা: নিরাপত্তার উপাদানগুলো UI ও পণ্যের লজিক থেকে আলাদা।
- নিরীক্ষাযোগ্য ডেটা প্রবাহ: পেয়ারিং, সিগন্যালিং এবং ব্যাকএন্ড ইন্টারফেস আলাদাভাবে নথিভুক্ত করা যায়।
- কোনো গোপন ট্র্যাকার নেই: গুরুত্বপূর্ণ পথগুলোতে শুধু প্রযুক্তিগতভাবে প্রয়োজনীয় উপাদানই থাকে।
- দীর্ঘমেয়াদি রক্ষণাবেক্ষণ: এলোমেলো একক কাঠামোর চেয়ে আলাদা কোর পর্যালোচনা করা সহজ।
উপসংহার: অভিভাবকেরা স্বচ্ছতা পাওয়ার যোগ্য
কোনো অ্যাপ যখন শিশুর ঘরে প্রবেশাধিকার পায়, তখন গুরুত্বপূর্ণ প্রশ্নগুলোর স্পষ্ট উত্তর দেওয়া উচিত: কী ডেটা তৈরি হয়? তা কোথায় যায়? কে তা পড়তে পারে? অভিভাবকেরা ফুটারের একটি গোপনীয়তা ব্যাজের চেয়ে বেশি কিছু পাওয়ার যোগ্য।
Baby Monitor Timmy দেখাতে চায় যে ভালো পণ্য ও নিরীক্ষাযোগ্য নিরাপত্তা একসঙ্গে সম্ভব। আমার কাছে এর অর্থ অ্যাপের প্রতিটি অংশ প্রকাশ করা নয়। এর অর্থ হলো পেয়ারিং, সিগন্যালিং, ব্যাকএন্ড অ্যাক্সেস এবং ডেটা প্রবাহ নির্ধারণ করে এমন অংশগুলো উন্মুক্ত করা।