“এনক্রিপ্ট করে পাঠান” চাপার পর আপনার লেখা ও ফাইলের কী হয়, এবং কারা সেগুলো পড়তে পারে।
ধাপে ধাপে
- আপনার ব্রাউজার একটি নতুন চাবি তৈরি করে। আপনার ডিভাইসে কেবল এই দাখিলের জন্য একটি র্যান্ডম চাবি তৈরি হয়।
- সবকিছু এই চাবি দিয়ে তালাবদ্ধ করা হয়। আপনার লেখা, প্রকাশ নিয়ে আপনার পছন্দ, যোগাযোগের তথ্য দিলে সেটিও, এবং প্রতিটি ফাইল ও তার নাম ব্রাউজার ছেড়ে যাওয়ার আগেই সেখানে এনক্রিপ্ট করা হয়।
- চাবিটি সম্পাদকমণ্ডলীর জন্য তালাবদ্ধ করা হয়। এরপর চাবিটিকেই সম্পাদকমণ্ডলীর সর্বজনীন চাবি (পাবলিক কি) দিয়ে তালাবদ্ধ করা হয়। সর্বজনীন চাবি শুধু তালা দিতে পারে। খুলতে লাগে এর জোড়া ব্যক্তিগত চাবি (প্রাইভেট কি), যা কেবল সম্পাদকমণ্ডলীর কাছে আছে।
- আমাদের সার্ভার যা পড়তে পারে না, কেবল তা-ই সংরক্ষণ করে। সার্ভার যাচাই করে যে ফর্মটি কোনো মানুষ পাঠিয়েছেন, স্প্যাম বট নয়; তারপর তালাবদ্ধ লেখা তার ডেটাবেসে এবং তালাবদ্ধ ফাইলগুলো এমন ব্যক্তিগত সংরক্ষণস্থানে রাখে, যার কোনো প্রকাশ্য ঠিকানা নেই। সেগুলো খোলার মতো কোনো চাবি সার্ভারের কাছে নেই।
- আপনি একটি প্রাপ্তি কোড পান (এটি রাখা ঐচ্ছিক)। সার্ভার একটি র্যান্ডম কোড তৈরি করে আপনাকে একবার দেখায়। সার্ভার কোডটির কেবল একটি ফিঙ্গারপ্রিন্ট রাখে, যা দিয়ে কোডটি চেনা যায়, কিন্তু আবার দেখানো যায় না। কোডটি রাখা ঐচ্ছিক: এটি দিয়ে পরে একই দাখিলে আরও উপকরণ যোগ করতে পারেন। পাঠানো দাখিল প্রত্যাহার বা পরিবর্তন করা যায় না।
কারা এটি পড়তে পারে
কেবল এই সাইটের সম্পাদকমণ্ডলী, যাঁদের কাছে দাখিল খোলার ব্যক্তিগত চাবি আছে। সেই চাবি কখনও আমাদের সার্ভারে থাকে না: একজন সম্পাদক কেবল দাখিল পড়ার সময় চাবিটি নিজের ব্রাউজারে লোড করেন, এবং পাতাটি লক বা বন্ধ করলেই ব্রাউজার তা ভুলে যায়।
আপনি যা পাঠান, তা আর কেউ পড়তে পারে না: আমাদের হোস্টিং প্রদানকারী নয়; আপনার ইন্টারনেট সংযোগের ওপর নজর রাখা কেউ নয়; আমাদের সার্ভার বা তার ডেটাবেসে অনুপ্রবেশকারী কেউও নয়।
আমাদের সার্ভার কী দেখতে পায়
এনক্রিপশন আপনি কী লিখেছেন তা লুকায়, কিন্তু কিছু যে পাঠানো হয়েছে সেই তথ্যটি লুকায় না। সার্ভার দেখতে পায়:
- আপনার দাখিল, এবং পরে যোগ করা যেকোনো কিছু, কখন পৌঁছেছে;
- আপনি কোন ধরন বেছে নিয়েছেন: আপনার অভিজ্ঞতা, একটি ঘটনা, নাকি উপকরণ;
- আপনি কয়টি ফাইল পাঠিয়েছেন, এবং প্রতিটি ফাইল ও এনক্রিপ্ট করা লেখার আকার, যা থেকে মোটামুটি বোঝা যায় সেগুলো কত দীর্ঘ;
- আপনার প্রাপ্তি কোডের ফিঙ্গারপ্রিন্ট।
সার্ভার আপনার IP ঠিকানা সংরক্ষণ করে না, এবং অনুরোধের লগ রাখা বন্ধ করা আছে।
এখানে “অজ্ঞাতনামা” বলতে কী বোঝায়
- আপনার কোনো অ্যাকাউন্ট লাগে না, এবং নাম জানাতেও হয় না।
- যোগাযোগের একমাত্র ঘরটি ঐচ্ছিক, এবং সেটিও বাকি সবকিছুর সঙ্গে এনক্রিপ্ট করা হয়।
- আমরা আপনার IP ঠিকানা সংরক্ষণ করি না। তবে আমাদের হোস্টিং প্রদানকারী, যারা স্প্যাম-রোধী যাচাইও চালায়, আপনি সংযোগ করার সময় এটি দেখতে পায়, এবং একটি সংযোগ থেকে কত ঘন ঘন পাঠানো যাবে তা সীমিত রাখতে আমাদের সার্ভার মুহূর্তের জন্য এটি ব্যবহার করে।
কিছু প্রকাশের আগে
- আপনার পাঠানো কিছুই স্বয়ংক্রিয়ভাবে প্রকাশিত হয় না। সম্পাদকমণ্ডলী আগে তা পড়ে ও যাচাই করে।
- আপনি অনুমতি দিলে তবেই আপনার বয়ান প্রকাশিত হয়, এবং আপনি যতটুকু বেছে নিয়েছেন, তার বেশি নাম কখনও প্রকাশিত হয় না। প্রকাশিত বয়ানে দেখানো হয় সেটি কোন মাসে পৌঁছেছিল।
- প্রকাশের আগে বয়ান থেকে ভুক্তভোগী, তাঁদের পরিবার ও অজ্ঞাতনামা সূত্রদের পরিচয় সরিয়ে ফেলা হয় এবং নথিতে তা কালো করে ঢাকা হয়। নির্যাতন বা ধামাচাপা সম্পর্কে কোনো নথি যা দেখায়, তা কালো করে ঢাকা হয় না: এই নথিভাণ্ডারের উদ্দেশ্যই সেটি।
- প্রকাশিত প্রতিটি ফাইল থেকে লুকানো তথ্য মুছে ফেলা হয়: লেখক, ডিভাইস, অবস্থান, সফটওয়্যার বা সম্পাদনার ইতিহাস, কিছুই থাকে না। ছবি তার পিক্সেল থেকে নতুন করে সংরক্ষণ করা হয়। PDF প্রতিটি পৃষ্ঠার ছবি থেকে নতুন করে তৈরি করা হয়, তাই লুকানো লেখা বা আগের সংস্করণ টিকে থাকতে পারে না।
- সম্পাদকমণ্ডলীর ব্যক্তিগত টীকা, যেমন সূত্র ও যোগাযোগের তথ্য, কখনও প্রকাশ করা হয় না।
প্রযুক্তিগত বিবরণ
- ক্রিপ্টোগ্রাফি আপনার ব্রাউজারে libsodium দিয়ে চলে।
- প্রতিটি দাখিলের জন্য একটি র্যান্ডম ২৫৬-বিট চাবি তৈরি হয়। তা থেকে crypto_kdf (BLAKE2b) দিয়ে লেখা ও ফাইলের জন্য আলাদা উপ-চাবি তৈরি করা হয়, যাতে দুটির চাবি কখনও এক না হয়।
- লেখা: XChaCha20-Poly1305 (IETF AEAD), একটি র্যান্ডম ১৯২-বিট ননস (nonce)-সহ। এনক্রিপ্ট করা বার্তায় থাকে ফর্মের ঘরগুলো, সম্মতির পছন্দ, ঐচ্ছিক যোগাযোগের তথ্য এবং ফাইলের তালিকা (নাম, ধরন, আকার)।
- ফাইল: crypto_secretstream_xchacha20poly1305, ৬৪ KiB-এর প্রমাণীকৃত খণ্ডে; একটি চূড়ান্ত ট্যাগ ফাইলের শেষাংশ কেটে ফেলা হলে তা ধরে ফেলে।
- চাবি মোড়ানো: দাখিলের চাবিটি crypto_box_seal (একবার ব্যবহারের চাবি-জোড়াসহ X25519, XSalsa20-Poly1305) দিয়ে প্রত্যেক সম্পাদকের সর্বজনীন চাবির জন্য সিল করা হয়। সম্পাদকমণ্ডলীর সর্বজনীন চাবি এই পাতাতেই অন্তর্ভুক্ত।
- প্রাপ্তি কোড দিয়ে পরে যোগ করা যেকোনো কিছু একইভাবে একটি নতুন চাবি দিয়ে এনক্রিপ্ট করা হয়।
- প্রাপ্তি কোড: সার্ভারের তৈরি ২৬ অক্ষরের কোড (১৩০টি র্যান্ডম বিট); কেবল এর SHA-256 হ্যাশ সংরক্ষিত হয়।
- সংরক্ষণ: এনক্রিপ্ট করা লেখার জন্য একটি ডেটাবেস এবং এনক্রিপ্ট করা ফাইলের জন্য একটি ব্যক্তিগত ফাইল-ভাণ্ডার; দুটিতেই কেবল এনক্রিপ্ট করা ডেটা (সাইফারটেক্সট) থাকে। পাঠানোর হারসীমা হোস্টের রেট-লিমিটারের ভেতরে সংযোগকারী IP-এর ভিত্তিতে নির্ধারিত হয় এবং সংরক্ষিত হয় না; স্প্যাম-রোধী টোকেন আপনার IP না পাঠিয়েই যাচাই করা হয়।
- স্ক্রিপ্টের অখণ্ডতা: ফর্মটি যত স্ক্রিপ্ট ফাইল লোড করে, প্রতিটিকে একটি ইমপোর্ট ম্যাপে (import map) SHA-384 হ্যাশ দিয়ে নির্দিষ্ট করা আছে, তাই যেসব ব্রাউজার ইমপোর্ট ম্যাপের অখণ্ডতা-যাচাই সমর্থন করে, সেগুলো বদলে দেওয়া ফাইল প্রত্যাখ্যান করে। কনটেন্ট সিকিউরিটি পলিসি (Content Security Policy) কেবল এই সাইট ও স্প্যাম-রোধী যাচাইয়ের স্ক্রিপ্ট চলতে দেয়। এটি বদলে দেওয়া স্ক্রিপ্ট ফাইল থেকে সুরক্ষা দেয়, কিন্তু কেউ সাইটটির নিয়ন্ত্রণ নিয়ে পাতাটিই বদলে দিলে নয়; সে কারণেই হ্যাশগুলো প্রকাশ করা হয়েছে: ফর্মের স্ক্রিপ্টগুলোর হ্যাশ.