# নিরাপত্তা এবং ডেটা হ্যান্ডলিং

Canonical page: https://phishdestroy.github.io/TgWitness/bn/docs/reference/security/

থ্রেট মডেল, অ্যাক্সেস মডেল, বিশ্রামকালীন গোপনীয়তা, নেটওয়ার্ক এক্সপোজার, সেশন ইমপোর্ট এবং কীভাবে একটি দুর্বলতা রিপোর্ট করবেন।

TgWitness আপনার নিজস্ব কম্পিউটার বা সার্ভারে চলে। অ্যাকাউন্ট সংযোগ, পাবলিক প্রক্সি-লিস্ট রক্ষণাবেক্ষণ এবং ঐচ্ছিক বাহ্যিক পরিষেবার জন্য স্পষ্ট রাউটিং নীতিমালা রয়েছে। বিজ্ঞপ্তি, টাইমস্ট্যাম্প, অফ-সাইট কপি এবং একজন সাক্ষী পৃথকভাবে কনফিগার করা হয়। এই পৃষ্ঠায় তালিকাভুক্ত করা হয়েছে কী সুরক্ষিত, কীভাবে, এবং অপারেটরের জন্য কী অবশিষ্ট রয়েছে।

| এলাকা | সংক্ষেপে |
| --- | --- |
| অ্যাক্সেস | প্রশাসক কী প্লাস অ্যাকাউন্ট/চ্যাটে সীমিত প্রবেশাধিকার, সাতটি অনুমতি এবং বাতিলযোগ্য সেশন; ডিফল্টরূপে লোকালহোস্ট |
| বিশ্রামে গোপন রহস্য | সেশন, API জোড়া, স্বাক্ষর কী এবং প্রক্সি সেটিংস Fernet দিয়ে এনক্রিপ্ট করা হয়েছে। |
| বার্তা এবং মিডিয়া | এনক্রিপ্ট না করে সংরক্ষণ: ডিস্ক এনক্রিপশন এবং কঠোর অনুমতি ব্যবহার করুন |
| অখণ্ডতা | প্রতি রেকর্ডে SHA-256 হ্যাশ চেইন এবং Ed25519 স্বাক্ষর |
| আচ্ছাদিত নয় | একজন মেশিন প্রশাসক, একটি ফাঁস হওয়া প্যানেল টোকেন, ধারণের পরিপূর্ণতা |

দূর্বলতা সংক্রান্ত রিপোর্টের জন্য [নিরাপত্তা নীতি](https://github.com/phishdestroy/TgWitness/blob/main/.github/SECURITY.md) দেখুন।

## অ্যাক্সেস মডেল

মেইন প্যানেল টোকেন সম্পূর্ণ নিয়ন্ত্রণ প্রদান করে। অন্যান্য ব্যবহারকারীরা তাদের নিজস্ব [স্কোপড অ্যাক্সেস](https://phishdestroy.github.io/TgWitness/bn/docs/reference/access/) পেতে পারে: নির্বাচিত ওয়ার্কস্পেস এবং চ্যাট, অনুমতি, মেয়াদোত্তীর্ণতা, আইপি সীমাবদ্ধতা, সাইন-ইন সীমা এবং প্রত্যাহারযোগ্য সেশন। একটি চ্যাট-সীমিত অ্যাক্সেস পুরো ওয়ার্কস্পেসের অপারেশন করতে পারবে না, এমনকি তাদের অনুমতি চিহ্নিত থাকলেও। ওয়ার্কস্পেসগুলো একটি প্রক্রিয়া শেয়ার করে এবং হোস্ট প্রশাসকের কাছ থেকে ডেটা বিচ্ছিন্ন করে না।

প্যানেল ডিফল্টভাবে localhost-এ শোনা করে। ব্রাউজার সাইন-ইন একটি অ্যাক্সেস টোকেন সেশন ক্রেডেনশিয়ালের জন্য বিনিময় করে; ব্রাউজার এটিকে বেয়ারার টোকেন হিসেবে পাঠায়। এটি অথেন্টিকেশন কুকির পরিবর্তে sessionStorage-এ রাখা হয়। লক/সাইন-আউট ব্রাউজার সেশন মুছে দেয়। ব্রাউজার বন্ধ করা বা সেশন শেষ করা সংগ্রহ বন্ধ করে না।

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

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

### ডেমো অ্যাক্সেস

`/api/demo-access` হল একটি ইচ্ছাকৃতভাবে অননুমোদিত বুটস্ট্র্যাপ, যা স্পষ্টভাবে শুরু করা একটি বিচ্ছিন্ন সিন্থেটিক ডেমোর জন্য ব্যবহৃত হয়। এটি একটি পৃথক প্রসেস-লাইফটাইম ক্যাপাবিলিটি ইস্যু করে, কখনই প্রকৃত প্যানেল টোকেন বা TGWITNESS_TOKEN ওভাররাইড করে না। জারি এবং ব্যবহারের জন্য একটি লুপব্যাক পিয়ার এবং হোস্ট প্রয়োজন, কোনো ফরওয়ার্ড করা হেডার নেই, এবং কোনো ক্রস-অরিজিন অনুরোধ নেই। অতিরিক্ত ওয়ার্কস্পেস বা একটি অনুমোদিত সেশন এই পথটি নিষ্ক্রিয় করে। লাইভ ওয়ার্কস্পেস কখনোই এই সক্ষমতা জারি করে না। ডেমো অ্যাকাউন্ট সংযুক্ত করতে বা সংগ্রহ সেটিংস পরিবর্তন করতে পারে না।

## প্যানেলের বিষয়বস্তু এবং রপ্তানি

প্যানেলটি কোনো বাহ্যিক ফন্ট, অ্যানালিটিক্স, CDN রিসোর্স, বা এমবেডেড রিমোট মিডিয়া ব্যবহার করে না। টেলিগ্রাম-উৎসিত টেক্সট HTML হিসেবে নয়, সাধারণ টেক্সট হিসেবে সন্নিবেশিত হয়। ডাউনলোডকৃত সংযুক্তিগুলি বাইনারি সংযুক্তি হিসেবে পরিবেশিত হয়। JSONL এক্সপোর্ট মূল স্ট্রিংগুলো অপরিবর্তিত রাখে; HTML সেগুলোকে এস্কেপ করে; ফর্মুলায় পরিণত হতে পারে এমন CSV সেলের শুরুতে অ্যাপোস্ট্রফি যোগ করা হয়।

রপ্তানিতে অথেন্টিকেশন এবং স্বাক্ষর সংক্রান্ত গোপনীয়তাগুলো বাদ দেওয়া হয়, তবে এতে ইচ্ছাকৃতভাবে সংগৃহীত সোর্স মেটাডেটা, আইডেন্টিফায়ার এবং সম্ভবত ব্যক্তিগত বা সংবেদনশীল বিষয়বস্তু অন্তর্ভুক্ত থাকে। টেলিগ্রাম অ্যাক্সেস হ্যাশ এবং ফাইল রেফারেন্স কাঁচা সোর্স মেটাডেটায় থাকতে পারে।

## বিশ্রামে গোপন রহস্য

টেলিগ্রাম API ক্রেডেনশিয়াল, StringSession, এবং Ed25519 প্রাইভেট কী Fernet ব্যবহার করে এনক্রিপ্ট করা হয়। ডিফল্টভাবে এর কী একই সুরক্ষিত ডেটা ডিরেক্টরিতে সংরক্ষিত থাকে। এটি দুর্ঘটনাজনিত প্লেনটেক্সট উন্মোচন কমায়; এটি এমন একজন আক্রমণকারীর বিরুদ্ধে সুরক্ষা নয় যে পুরো ডিরেক্টরি পড়তে পারে। TgWitness বার্তার বিষয়বস্তু এবং মিডিয়া এনক্রিপ্ট করে না। ডিস্ক এনক্রিপশন এবং সীমাবদ্ধ OS অনুমতি ব্যবহার করুন। ইউনিক্স প্রাইভেট কী ফাইলগুলি মোড 0600 দিয়ে তৈরি করা হয়; নতুন তৈরি ডেটা ডিরেক্টরিগুলি মোড 0700 ব্যবহার করে। বিদ্যমান ডিরেক্টরি অনুমতিগুলো পরিবর্তন করা হয় না। Windows ডিরেক্টরি ACLs উত্তরাধিকারসূত্রে পায়: সেগুলো সার্ভিস অ্যাকাউন্ট এবং অনুমোদিত প্রশাসকদের মধ্যে সীমাবদ্ধ রাখুন।

### বাহ্যিক মাস্টার কী

নতুন ডেটা ডিরেক্টরির জন্য, TGWITNESS_VAULT_KEY_FILE একটি বাহ্যিক র‍্যান্ডম মাস্টার কী সরবরাহ করতে পারে। HKDF-SHA256 এবং একটি পৃথক র‍্যান্ডম সল্ট প্রতিটি ওয়ার্কস্পেসের জন্য একটি ভিন্ন Fernet কী তৈরি করে। পুনরুদ্ধারের জন্য vault.external.json সংরক্ষণ করতে হবে। অনুপস্থিত বা ভুল মাস্টার কী থাকলে ফেইল-ক্লোজড হয়। বিদ্যমান স্থানীয় ভল্টগুলো নীরবে স্থানান্তরিত হয় না। চলমান প্রক্রিয়াটি কী-তে অ্যাক্সেস করতে পারে; এটি HSM বিচ্ছিন্নতা নয়। প্যানেল নির্বাচিত মোড রিপোর্ট করে এবং স্পষ্টভাবে উল্লেখ করে যে অ্যাপ্লিকেশন দ্বারা বার্তা/মিডিয়া স্টোরেজ এনক্রিপ্ট করা হয়নি। সম্পূর্ণ থ্রেট মডেলের জন্য [সংযোগ, প্রক্সি এবং ডেটা সুরক্ষা](https://phishdestroy.github.io/TgWitness/bn/docs/reference/connection/) দেখুন।

## প্রক্সি এবং নেটওয়ার্ক রুটসমূহ

প্রক্সি কনফিগারেশন ভল্টে এনক্রিপ্ট করা হয়। পাসওয়ার্ড এবং MTProxy সিক্রেটগুলো API দ্বারা ফেরত দেওয়া হয় না বা প্রমাণ রেকর্ডে লেখা হয় না। প্রতিটি ওয়ার্কস্পেস তার টেলিগ্রাম রুট এবং একটি [IP মোড](https://phishdestroy.github.io/TgWitness/bn/docs/reference/connection/#ip-modes) বেছে নেয়।

Hide IP মোড সরাসরি টেলিগ্রাম ফ্যালব্যাক গ্রহণ করে না এবং বাহ্যিক HTTP অনুরোধের জন্য একটি প্রক্সি প্রয়োজন। স্পষ্টভাবে নির্বাচিত ফ্যালব্যাক মোড তার বিলম্বের পর সরাসরি টেলিগ্রাম অ্যাক্সেসের অনুমতি দেয়; টানেল/VPN মোড সরাসরি রুটের অনুমতি দেয়। টানেল মোড নির্বাচন করলে VPN ইনস্টল বা যাচাই করা হয় না। এই সেটিংসগুলি সমস্ত মেশিনের ট্র্যাফিক, ব্রাউজার, প্যাকেজ ম্যানেজার বা স্থানীয় প্রক্সি-হোস্ট DNS রেজোলিউশন নিয়ন্ত্রণ করে না।

MTProxy শুধুমাত্র টেলিগ্রাম ট্র্যাফিক বহন করে। বাহ্যিক অনুরোধগুলি একটি পৃথক SOCKS5/HTTP প্রক্সি, ওয়ার্কস্পেসের SOCKS5/HTTP রুট, অথবা অনুমোদিত সরাসরি রুট ব্যবহার করতে পারে; এগুলি নিষ্ক্রিয় করাও যেতে পারে। স্বাধীন সাক্ষীর নিজস্ব ট্রান্সপোর্ট সেটিংস রয়েছে। সাধারণ SOCKS5/HTTP CONNECT প্রমাণীকরণ ঐ প্রক্সি প্রোটোকলগুলির দ্বারা নিজেই এনক্রিপ্ট করা হয় না। নকল TLS MTProxy সিক্রেটস সমর্থিত নয়।

## সাইন-ইন এবং সেশন আমদানি

রূপান্তরিত .tgwitness-session ফাইলগুলো ভল্টে লোড ও সংরক্ষণ না হওয়া পর্যন্ত একটি প্লেনটেক্সট অনুমোদন গোপনীয়তা ধারণ করে। অফলাইন CLI পর্যালোচিত Telethon স্কিমা গ্রহণ করে। প্যানেল ইমপোর্ট অতিরিক্তভাবে Pyrogram SQLite, আধুনিক একক-অ্যাকাউন্ট TData ZIP, এবং ডকুমেন্টেড JSON ইনপুট গ্রহণ করে। এটি প্রমাণীকৃত, চারটি ফাইল / ৮ MiB-এ সীমাবদ্ধ, এবং কোনো আর্কাইভ এক্সট্র্যাকশন বা মূল ফাইল সংরক্ষণ ছাড়াই মেমরিতে আপলোড প্রক্রিয়া করে। নরমালাইজড ক্রেডেনশিয়াল শুধুমাত্র অনুরোধকারী অথেন্টিকেটেড ব্রাউজারে ফেরত দেওয়া হয়; সফল টেলিগ্রাম অথরাইজেশনের পর সেগুলো এনক্রিপ্টেড ভল্টে সংরক্ষণ করা হয়। মূল এবং রূপান্তরিত ফাইলগুলো সুরক্ষিত রাখুন, এবং একাধিক ক্লায়েন্টের একযোগে অথরাইজেশন ক্লোন করার চেষ্টা এড়িয়ে চলুন।

TData প্রক্রিয়াকরণ কন্টেইনার চেকসাম, স্থানীয় ডিক্রিপশন হ্যাশ এবং কাঠামোর দৈর্ঘ্য যাচাই করে। সরবরাহিত ডেস্কটপ স্থানীয় পাসকোড অস্থায়ীভাবে ব্যবহৃত হয় এবং সংরক্ষণ করা হয় না। এই সীমাবদ্ধ পার্সার নিশ্চিত করে না যে প্রতিটি ডেস্কটপ সংস্করণ সামঞ্জস্যপূর্ণ। QR ইমেজগুলো স্থানীয়ভাবে তৈরি হয়, স্বল্পমেয়াদী টেলিগ্রাম লগইন টোকেন ধারণ করে, এবং কখনোই কোনো বাহ্যিক রেন্ডারিং সার্ভিসে পাঠানো হয় না। লক, ওয়ার্কস্পেস পরিবর্তন, নতুন লগইন, এবং রুট পরিবর্তনগুলি পেন্ডিং QR প্রচেষ্টা বাতিল করে। ট্যাব রিলোড/বন্ধ করলে প্রচেষ্টা মেয়াদোত্তীর্ণ হওয়া পর্যন্ত পেন্ডিং থাকতে পারে। সফল QR লগইন অ্যাকাউন্ট বাইন্ডিং কার্যকর করে। সাধারণ API বডি 16 KiB-এ সীমাবদ্ধ থাকে; প্রমাণিত ইমপোর্ট রুট এনকোড করা JSON-এর 12 MiB পর্যন্ত গ্রহণ করে, পৃথকভাবে ছোট ডিকোড-ফাইলের সীমা প্রয়োগ করে।

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

## কাঠের গুঁড়ি এবং পরিবহন

ডিফল্ট API ভ্যালিডেషన్ রেসপন্সটি প্রতিস্থাপন করা হয়েছে যাতে এটি ক্রেডেনশিয়াল মানগুলো প্রতিধ্বনি না করে। অ্যাপ্লিকেশন অ্যাক্সেস লগিং নিষ্ক্রিয় করা হয়েছে। অথরাইজেশন হেডার বা অনুরোধের বডি লগ করার জন্য রিভার্স প্রক্সি কনফিগার করবেন না। HTTP প্লেনটেক্সটে টোকেন এবং লগইন সিক্রেট বহন করে: localhost ছাড়ার সময় সর্বদা HTTPS বা SSH টানেল ব্যবহার করুন।

## অখণ্ডতার সীমা

হ্যাশ চেইন, ডাটাবেস ট্রিগার এবং স্বাক্ষরগুলি নির্দিষ্ট পরিবর্তনগুলি সনাক্ত করে; এগুলি স্থানীয় প্রশাসককে জার্নাল পুনঃলিখন এবং পুনরায় স্বাক্ষর করা থেকে বাধা দেয় না। স্বাক্ষরিত চেকপয়েন্ট এবং পাবলিক-কী ফিঙ্গারপ্রিন্ট একটি পৃথক সিস্টেমে সংরক্ষণ করুন। প্রমাণ মোড এবং অফ-সাইট কপি (উভয়ই ডিফল্টভাবে বন্ধ) চেকপয়েন্ট হ্যাশগুলিকে টাইমস্ট্যাম্প সার্ভিসে এবং এনক্রিপ্ট করা কপিগুলিকে S3-সামঞ্জস্যপূর্ণ স্টোরেজে পাঠায়; [প্রমাণ ফর্ম্যাট](https://phishdestroy.github.io/TgWitness/bn/docs/reference/evidence/) দেখুন। ট্রান্সপারেন্সি লগ, HSM-সমর্থিত স্বাক্ষর এবং আনুষ্ঠানিক চেইন-অফ-কাস্টডি সার্টিফিকেশন বাস্তবায়িত হয়নি।

## যদি আপনি কোনো সমস্যা সন্দেহ করেন

মূল ডেটা ডিরেক্টরি সংরক্ষণ করুন এবং বিশ্লেষণের জন্য একটি পৃথক অনুলিপি ব্যবহার করুন। ব্যক্তিগত টেলিগ্রাম ডেটা বা শংসাপত্র কোনো পাবলিক ইস্যুতে অন্তর্ভুক্ত করবেন না। কোনো স্বতন্ত্র নিরাপত্তা সার্টিফিকেশন দাবি করা হয়নি।
