TgWitness / دستاویزات

حوالہ / شواہد

ٹائم اسٹیمپس

RFC 3161 ٹائم اسٹیمپس دستخط شدہ چیک پوائنٹس کے لیے: اتھارٹی کو کیا بھیجا جاتا ہے اور جواب کیسے تصدیق کیا جاتا ہے۔

TgWitness RFC 3161 درخواستیں تیار کرتا ہے اور ٹائم اسٹیمپ اتھارٹی (TSA) کے جوابات کی تصدیق کرتا ہے۔ یہ دستی طریقہ کار نہ تو TSA کا انتخاب کرتا ہے اور نہ ہی ڈیٹا جمع کرواتا ہے؛ ثبوت موڈ شیڈول (ثبوت فارمیٹ) کے مطابق دونوں کام کرتا ہے۔ ایک تیار شدہ درخواست ابھی ٹائم اسٹیمپ ثبوت نہیں ہوتی۔

ثبوت کیا باندھتا ہے#

دھارے کا خاکہاکاؤنٹ مشاہدات → SHA-256 چین اور Ed25519 دستخط; SHA-256 چین اور Ed25519 دستخط → مصنوعی سنگ میل; مصنوعی سنگ میل → ایکسیکٹ بائٹ ہیش اور بے ترتیب نونس; ایکسیکٹ بائٹ ہیش اور بے ترتیب نونس → RFC 3161 کی درخواست; RFC 3161 کی درخواست → آزاد ٹی ایس اے; آزاد ٹی ایس اے → دستخط شدہ TSA جواب; مصنوعی سنگ میل → ڈیٹا، نونس اور واضح CA ٹرسٹ کی تصدیق کریں; دستخط شدہ TSA جواب → ڈیٹا، نونس اور واضح CA ٹرسٹ کی تصدیق کریںاکاؤنٹ مشاہداتSHA-256 چین اورEd25519 دستخطمصنوعی سنگ میلایکسیکٹ بائٹ ہیش اوربے ترتیب نونسRFC 3161 کی درخواستآزاد ٹی ایس اےدستخط شدہ TSA جوابڈیٹا، نونس اور واضح CAٹرسٹ کی تصدیق کریں
ڈایاگرام بطور متن
  1. اکاؤنٹ مشاہدات → SHA-256 چین اور Ed25519 دستخط
  2. SHA-256 چین اور Ed25519 دستخط → مصنوعی سنگ میل
  3. مصنوعی سنگ میل → ایکسیکٹ بائٹ ہیش اور بے ترتیب نونس
  4. ایکسیکٹ بائٹ ہیش اور بے ترتیب نونس → RFC 3161 کی درخواست
  5. RFC 3161 کی درخواست → آزاد ٹی ایس اے
  6. آزاد ٹی ایس اے → دستخط شدہ 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 کے ساتھ، اصل استفسار اور نانسی کی تصدیق کی جاتی ہے۔
TSA دستخط OpenSSL دستخط اور واضح CA تک چین کی تصدیق کرتا ہے۔
کلیکٹر دستخط الگ طور پر جرنل ویریفائر کے ذریعے ایک پن کیے گئے کلید کے ساتھ تصدیق شدہ
منسوخی OCSP/CRL کی خودکار بازیافت نہیں
طویل مدتی صداقت سرٹیفیکیٹ کی میعاد ختم ہونے کے بعد کوئی آرکائیول توثیق نہیں
شیڈول شدہ جمع کروائی ثبوت موڈ، بطورِ ڈیفالٹ بند

--request تکنیکی طور پر اختیاری ہے، لیکن اسے چھوڑنے سے اصل نونس کی تصدیق نہیں ہو پاتی۔ اس مکمل طریقہ کار کے لیے، نتیجے کا request_checked درست ہونا چاہیے۔ سرٹیفیکیٹ کی تصدیق انسٹال شدہ OpenSSL کے قواعد اور تصدیقی وقت کی پیروی کرتی ہے۔ طویل مدتی محفوظ کاری کے لیے ایک علیحدہ سرٹیفیکیٹ/ردِ عمل کے ثبوت کی پالیسی کی ضرورت ہوتی ہے۔

ایک درست کرپٹوگرافک دستخط خود بخود معیاری ٹائم اسٹیمپ یا قانونی قابلِ قبولیت کا تعین نہیں کرتا۔ اگر آپریٹر نے ٹائم اسٹیمپ کرنے سے پہلے مشاہدات وضع کیے ہوں، تو TSA ان بائٹس کو لنگر انداز کرتا ہے؛ یہ ان کی صداقت ثابت نہیں کرتا۔

ہینڈ آف ریکارڈ#

کیس شناختی نمبر، بھیجنے والا اور وصول کنندہ، UTC منتقلی کا وقت اور اس کا ماخذ، مقصد، فائل کے نام/SHA-256 اقدار، کلیکٹر کے فنگر پرنٹ، ترتیب کی حد، معلوم خلا، تصدیق کنندہ کا ورژن اور تصدیق کے نتائج ریکارڈ کریں۔ اس ریکارڈ پر دستخط کریں اور اسے اپنی تنظیم کے عمل کے ذریعے آزادانہ طور پر محفوظ رکھیں۔ TgWitness میں کثیر صارف تحویل ریکارڈ سسٹم نافذ نہیں کیا گیا ہے۔

تعمیر کے دوران کسی آزاد لائیو TSA سے رابطہ نہیں کیا گیا۔ مقامی ٹیسٹ مطابقت اور تبدیل شدہ ڈیٹا، نونس یا CA کی مستردگی کی جانچ کے لیے ایک مصنوعی CA/TSA بناتے ہیں۔