Check-Host.cc

فحص سجل TXT العالمي

سجل TXT (Text) اتصمم في الأساس في التمانينات كـ Sandbox بسيط للـ Sysadmins عشان يسيبوا ملاحظات يقدر البشر يقرأوها جوه الـ Zone file، بس اتطور وبقى واحد من أهم المكونات الهيكلية لأمن الشبكات الحديثة. وبما إن بروتوكول الـ DNS تقريباً مبيطبقش أي تحقق من الـ Syntax على الـ Payloads الخاصة بـ TXT، المطورين ومنصات الحماية بيستخدموا السجلات دي عشان يخزنوا أي Data Strings الآلات تقدر تقرأها. النهاردة، سجلات TXT بتُستخدم بشكل أساسي في أطر عمل مصادقة الإيميلات (Email Authentication) الصارمة، وتوزيع مفاتيح التشفير، والتحقق الآلي من ملكية الدومين.

ثلاثي مصادقة الإيميلات: SPF و DKIM و DMARC

لو الإيميلات الصادرة من تطبيق الويب أو سيرفر الشركة بتروح مباشرة لملفات الـ Spam، فغالباً سجلات TXT اللي متبرمجة غلط هي السبب. الـ MTAs المستقبلة الحديثة (زي Microsoft 365 أو Gmail) بتطلب إثبات هوية مشفر (Cryptographic Proof) من خلال 3 سياسات TXT معينة:

  • SPF (Sender Policy Framework): دي عبارة عن TXT String متفرمتة بشكل صارم (زي v=spf1 include:_spf.google.com ~all) بتشتغل كـ Public Whitelist. بتصرح لـ IP Blocks معينة وخدمات إرسال خارجية (زي Mailgun أو SendGrid) إنها تبعت إيميلات نيابة عن الدومين.
  • DKIM (DomainKeys Identified Mail): سجل TXT جواه مفتاح تشفير عام كبير (Public Key) متشفر بـ Base64. سيرفر الإيميلات الصادرة بتاعك بيعمل Hash لـ Email Headers وبيوقعها بـ Private Key. السيرفر اللي بيستقبل بيسحب الـ Public Key من سجل TXT ده عشان يتأكد رياضياً من التوقيع، وده بيضمن إن الـ Payload متعدلش عليه وهو في السكة (In transit).
  • DMARC (Domain-based Message Authentication, Reporting, and Conformance): دي طبقة التنفيذ (Enforcement Layer). سجل TXT ده بيقول للسيرفرات اللي بتستقبل تعمل إيه مع الرسايل اللي بتفشل في اختبارات SPF أو DKIM، وبيحدد لو هيطبق سياسة p=none (مراقبة بس)، أو p=quarantine (يبعتها للـ Spam)، أو p=reject (يرفضها تماماً).

إثبات ملكية الدومين الآلية والـ Zero-Trust

بعيداً عن الإيميلات، سجلات TXT هي المعيار العالمي لإثبات السيطرة الإدارية على اسم الدومين. لما بتربط دومين بمزود Cloud (زي Google Search Console أو GitHub Pages أو AWS SES)، المنصة بتولد Cryptographic Hash عشوائي. وعن طريق إن المزود يطلب من الـ Admin ينشر الـ Hash ده كسجل TXT، بيتأكدوا من خلال DNS Lookup آلي إن المستخدم بيمتلك وصول Root-level للبنية التحتية الخاصة بتوجيه الدومين. بنفس الطريقة، بروتوكول ACME اللي بيستخدمه Let's Encrypt بيعتمد بقوة على تحدي DNS-01، واللي فيه بيتم نشر سجل TXT مؤقت عشان يصرح بإصدار شهادات SSL/TLS Wildcard.

حدود الـ Bytes وتجميع النصوص (String Concatenation)

من القيود الفنية اللي بتواجه المطورين كتير هو حد الـ 255 حرف كـ String لكل جزء (Chunk) من الـ TXT جوه مواصفات الـ DNS. لما بتنشر Payloads ضخمة، زي مفاتيح RSA بحجم 2048-bit الخاصة بـ DKIM، الـ Payload بيتخطى حد البايتس ده. عشان نحل ده، برامج الـ DNS القياسية (زي BIND) بتكسر السجل الطويل أوتوماتيك لأجزاء Strings محطوطة بين علامات تنصيص (زي "string1" "string2"). الـ Client Resolver هو اللي بيكون مسؤول إنه يجمع (Concatenate) الأجزاء دي تاني بسلاسة وهو بيقراها.