TgWitness / ডকুমেন্টেশন

তথ্যসূত্র / প্রমাণ

টাইমস্ট্যাম্পস

স্বাক্ষরিত চেকপয়েন্টের জন্য RFC 3161 টাইমস্ট্যাম্প: কর্তৃপক্ষের কাছে কী পাঠানো হয় এবং কীভাবে প্রতিক্রিয়া যাচাই করা হয়।

TgWitness RFC 3161 অনুরোধ প্রস্তুত করে এবং টাইমস্ট্যাম্প অথরিটি (TSA) প্রতিক্রিয়া যাচাই করে। এই ম্যানুয়াল প্রক্রিয়াটি না TSA নির্বাচন করে, না ডেটা জমা দেয়; ইভিডেন্স মোড নির্ধারিত সময়সূচি (ইভিডেন্স ফরম্যাট) অনুযায়ী উভয়ই করে। একটি প্রস্তুতকৃত অনুরোধ এখনও টাইমস্ট্যাম্প প্রুফ নয়।

প্রমাণ কী আবদ্ধ করে#

প্রবাহ চিত্রঅ্যাকাউন্ট পর্যবেক্ষণ → SHA-256 চেইন এবং Ed25519 স্বাক্ষর; SHA-256 চেইন এবং Ed25519 স্বাক্ষর → স্বাক্ষরিত চেকপয়েন্ট; স্বাক্ষরিত চেকপয়েন্ট → নির্ভুল-বাইট হ্যাশ এবং র্যান্ডম ননস; নির্ভুল-বাইট হ্যাশ এবং র্যান্ডম ননস → RFC 3161 অনুরোধ; RFC 3161 অনুরোধ → স্বতন্ত্র TSA; স্বতন্ত্র TSA → স্বাক্ষরিত TSA প্রতিক্রিয়া; স্বাক্ষরিত চেকপয়েন্ট → ডেটা, ননস এবং স্পষ্ট CA ট্রাস্ট যাচাই করুন; স্বাক্ষরিত TSA প্রতিক্রিয়া → ডেটা, ননস এবং স্পষ্ট CA ট্রাস্ট যাচাই করুনঅ্যাকাউন্ট পর্যবেক্ষণSHA-256 চেইন এবংEd25519 স্বাক্ষরস্বাক্ষরিত চেকপয়েন্টনির্ভুল-বাইট হ্যাশ এবংর্যান্ডম ননসRFC 3161 অনুরোধস্বতন্ত্র TSAস্বাক্ষরিত TSAপ্রতিক্রিয়াডেটা, ননস এবং স্পষ্টCA ট্রাস্ট যাচাই করুন
ডায়াগ্রাম টেক্সট হিসেবে
  1. অ্যাকাউন্ট পর্যবেক্ষণ → SHA-256 চেইন এবং Ed25519 স্বাক্ষর
  2. SHA-256 চেইন এবং Ed25519 স্বাক্ষর → স্বাক্ষরিত চেকপয়েন্ট
  3. স্বাক্ষরিত চেকপয়েন্ট → নির্ভুল-বাইট হ্যাশ এবং র্যান্ডম ননস
  4. নির্ভুল-বাইট হ্যাশ এবং র্যান্ডম ননস → RFC 3161 অনুরোধ
  5. RFC 3161 অনুরোধ → স্বতন্ত্র TSA
  6. স্বতন্ত্র TSA → স্বাক্ষরিত TSA প্রতিক্রিয়া
  7. স্বাক্ষরিত চেকপয়েন্ট → ডেটা, ননস এবং স্পষ্ট CA ট্রাস্ট যাচাই করুন
  8. স্বাক্ষরিত TSA প্রতিক্রিয়া → ডেটা, ননস এবং স্পষ্ট CA ট্রাস্ট যাচাই করুন

সংগ্রাহকের স্বাক্ষর রেকর্ডগুলোকে তার কী-র সাথে আবদ্ধ করে। একটি বিশ্বাসযোগ্য TSA প্রতিক্রিয়া TSA-র ঘোষিত সময় অনুযায়ী কোনো নির্দিষ্ট চেকপয়েন্টের অস্তিত্ব প্রমাণ করতে পারে। এরপর চেকপয়েন্ট জার্নাল প্রিফিক্সকে আবদ্ধ করতে পারে। এটি প্রতিটি টেলিগ্রাম ক্রিয়ার সময় বা ধারণকৃত বিষয়বস্তুর সত্যতা প্রমাণ করে না।

প্রক্রিয়া#

  1. সংগ্রাহকের কী-এর ফিঙ্গারপ্রিন্ট একটি পৃথক বিশ্বাসযোগ্য চ্যানেলের মাধ্যমে সংরক্ষণ করুন। শুধুমাত্র পরীক্ষিত ZIP দ্বারা সরবরাহিত একটি কী সংগ্রাহককে শনাক্ত করার জন্য অপর্যাপ্ত।
  2. Exports → Prepare timestamp request-এ গিয়ে নির্বাচিত ওয়ার্কস্পেসের request ZIP ডাউনলোড করুন। checkpoint.json, timestamp.tsq, SHA256SUMS এবং README.txt এক্সট্র্যাক্ট করুন। চেকপয়েন্ট বাইটগুলো পরিবর্তন করবেন না।
  3. তদন্তের জন্য উপযুক্ত TSA নির্বাচন করুন। নথিভুক্ত পদ্ধতি ব্যবহার করে timestamp.tsq জমা দিন, HTTP সেবার জন্য application/timestamp-query সহ। মূল বাইনারি উত্তরটি timestamp.tsr, এন্ডপয়েন্ট, পুনরুদ্ধারের সময় এবং অনুরোধের ফলাফল হিসাবে সংরক্ষণ করুন। অনুরোধে বার্তার পরিবর্তে একটি হ্যাশ এবং নন্স থাকে; নেটওয়ার্ক মেটাডেটা তবুও অনুরোধটি প্রকাশ করে।
  4. উত্তরের ওপর নির্ভর না করে বিশ্বাসযোগ্য রুট সার্টিফিকেট এবং প্রয়োজনীয় মধ্যবর্তী সার্টিফিকেটগুলো স্বতন্ত্রভাবে সংগ্রহ করুন। উত্তরে থাকা কোনো সার্টিফিকেট শুধুমাত্র সেখানে অন্তর্ভুক্ত থাকার কারণে বিশ্বাসযোগ্য হয়ে ওঠে না।
  5. একটি বিশ্বস্ত TgWitness ইনস্টলেশন থেকে যাচাই করুন:
python -m tgwitness.anchor verify --checkpoint checkpoint.json --request timestamp.tsq --response timestamp.tsr --ca trusted-tsa-root.pem

প্রয়োজন হলে --intermediates tsa-intermediates.pem বা --openssl /path/to/openssl যোগ করুন। OpenSSL-কে ts সমর্থন করতে হবে। উইন্ডোজে ভেরিফায়ার স্ট্যান্ডার্ড Git ইনস্টলেশনও অনুসন্ধান করে। OpenSSL 3.5.9 স্থানীয়ভাবে একটি সিন্থেটিক CA/TSA দিয়ে পরীক্ষা করা হয়েছিল।

  1. চেকপয়েন্টের পর স্বাক্ষরিত জার্নাল ZIP রপ্তানি করুন যাতে এতে সেই প্রিফিক্স অন্তর্ভুক্ত থাকে। স্বতন্ত্রভাবে পরিচিত ফিঙ্গারপ্রিন্ট ব্যবহার করে যাচাই করুন:
python tgwitness/verify.py evidence.zip --fingerprint TRUSTED_SHA256 --checkpoint checkpoint.json
  1. কলেক্টরের বাইরে ZIP, চেকপয়েন্ট, অনুরোধ, উত্তর, সার্টিফিকেট চেইন, যাচাইয়ের ফলাফল এবং হস্তান্তর রেকর্ড সংরক্ষণ করুন। প্রাপ্তির সময় যাচাইকরণ পুনরায় করুন।

সংরক্ষিত চেকপয়েন্ট থেকে অনুরোধ প্রস্তুত করতে:

python -m tgwitness.anchor prepare checkpoint.json --out timestamp-request.zip

প্রস্তুতি JSON-কে ক্যানোনিকাল করে এবং আর্কাইভে সংশ্লিষ্ট চেকপয়েন্ট অন্তর্ভুক্ত করে। TSA যাচাইয়ের জন্য সেই আর্কাইভ থেকে চেকপয়েন্টের বাইট ব্যবহার করুন, এমনকি ইনপুট ফাইলে হোয়াইটস্পেস ভিন্ন থাকলেও।

যাচাইকরণ সীমা#

যাচাই করুন বর্তমান আচরণ
ডেটা নির্দিষ্ট চেকপয়েন্ট বায়টের SHA-256 হ্যাশটি প্রতিক্রিয়ার সাথে মিলতে হবে।
অনুরোধ --request-এর মাধ্যমে মূল কুয়েরি এবং নন্স যাচাই করা হয়।
টিএসএ স্বাক্ষর OpenSSL স্বাক্ষর এবং চেইনকে নির্দিষ্ট CA-তে যাচাই করে।
সংগ্রাহকের স্বাক্ষর জার্নাল যাচাইকারী দ্বারা পিন করা কী দিয়ে পৃথকভাবে যাচাইকৃত
বাতিলকরণ স্বয়ংক্রিয় OCSP/CRL পুনরুদ্ধার নেই
দীর্ঘমেয়াদী বৈধতা সার্টিফিকেট মেয়াদোত্তীর্ণ হওয়ার পর কোনো সংরক্ষণাগার যাচাইকরণ নেই
নির্ধারিত জমা প্রমাণ মোড, ডিফল্টভাবে বন্ধ

--request প্রযুক্তিগতভাবে ঐচ্ছিক, তবে এটি বাদ দিলে মূল নন্সের যাচাইকরণ বন্ধ হয়ে যায়। এই সম্পূর্ণ প্রক্রিয়ার জন্য, ফলাফলের request_checked সত্য হতে হবে। সার্টিফিকেট যাচাইকরণ ইনস্টলকৃত OpenSSL-এর নিয়ম এবং যাচাইকরণ সময় অনুসরণ করে। দীর্ঘমেয়াদী সংরক্ষণের জন্য একটি পৃথক সার্টিফিকেট/বাতিলকরণ প্রমাণ নীতির প্রয়োজন।

একটি বৈধ ক্রিপ্টোগ্রাফিক স্বাক্ষর স্বয়ংক্রিয়ভাবে কোনো যোগ্য টাইমস্ট্যাম্প বা আইনি গ্রহণযোগ্যতার নিশ্চয়তা দেয় না। যদি কোনো অপারেটর টাইমস্ট্যাম্প করার আগে পর্যবেক্ষণ জাল করে, TSA সেই বাইটগুলো এনকার করে; তবে তা সেগুলোর সত্যতা প্রতিষ্ঠা করে না।

হ্যান্ডঅফ রেকর্ড#

কেস আইডেন্টিফায়ার, প্রেরক ও প্রাপক, UTC স্থানান্তর সময় ও এর উৎস, উদ্দেশ্য, ফাইলনাম/SHA-256 মান, কালেক্টর ফিঙ্গারপ্রিন্ট, সিকোয়েন্স পরিসর, পরিচিত ফাঁক, ভেরিফায়ার সংস্করণ এবং যাচাইকরণ ফলাফল রেকর্ড করুন। এই রেকর্ডটি স্বাক্ষর করুন এবং আপনার সংস্থার প্রক্রিয়ার মাধ্যমে স্বতন্ত্রভাবে সংরক্ষণ করুন। TgWitness-এ মাল্টি-ইউজার কাস্টডি-রেকর্ড সিস্টেম বাস্তবায়িত নেই।

ডেভেলপমেন্টের সময় কোনো স্বাধীন লাইভ TSA-র সাথে যোগাযোগ করা হয়নি। স্থানীয় পরীক্ষাগুলি সামঞ্জস্যতা এবং পরিবর্তিত ডেটা, ননস বা CA প্রত্যাখ্যান যাচাই করার জন্য একটি সিন্থেটিক CA/TSA তৈরি করে।