ما الذي أزاله الحجب فعلًا
في 2018 أصبح سجل التسجيل لمعظم النطاقات فارغًا. وصلت لائحة GDPR، وطلبت ICANN من المسجِّلين التوقف عن نشر أسماء أصحاب النطاقات وعناوينهم وأرقام هواتفهم وبريدهم الإلكتروني في مخرجات WHOIS العامة، وبات الاستعلام الذي كان يُرجع اسم شخص يُرجع بدلاً منه REDACTED FOR PRIVACY ونموذج تواصل. يبدو الأمر وكأنه خصوصية. لكنه في الحقيقة مجرد إعداد عرض.
وتحت السطح، لم يتحرّك شيء. ما زال المسجِّل الخاص بك يحتفظ بالسجل الكامل، وما زال مُلزَمًا بالاحتفاظ به بموجب اعتماده، وما زال يسلّمه لأي جهة لها صفة تخوّلها الطلب — أمر قضائي، أو طلب من جهة إنفاذ القانون، وفي الواقع العملي شيء أرخص من ذلك بكثير. فشكوى UDRP تكلّف بضعة آلاف من الدولارات، ولا تحتاج إلى قاضٍ، وتُطلق خطوة تحقّق لدى المسجِّل تكشف هوية صاحب النطاق الفعلي لمقدّم الشكوى قبل أن يُبتّ في القضية أصلًا. هذا هو مسار كشف الهوية الذي لا يكاد أحد يحسب حسابه، وهو أول ما يلجأ إليه صاحب علامة تجارية.
ونجا أمران آخران من الحجب. الأول هو التاريخ: التقطت الأرشيفات التجارية لقطات دورية لسجلات WHOIS طوال عقدين كاملين، وتلك اللقطات لا تنتهي صلاحيتها أبدًا، لذا فإن أي اسم سُجِّل قبل 2018 ببيانات حقيقية يبقى مكشوفًا بشكل دائم مهما قال السجل اليوم. والثاني هو بقية إعداداتك أنت — خوادم الأسماء (nameservers) التي اخترتها، والعنوان المدفون داخل سجل SOA الخاص بك، وصندوق تقارير DMARC، وكل شهادة طلبتها يومًا. الحجب أفرغ حقلًا واحدًا وترك أربعة حقول أخرى تنشر بياناتك، وهذه الحقول الأربعة هي ما يقضي هذا الدليل معظم وقته فيها.
اختر الامتداد قبل أن تختار المسجِّل
سياسة المسجِّل تابعة لسياسة السجل (registry)، وسياسة السجل تابعة بدورها للبلد الذي تأسست فيه شركة السجل. يستطيع المسجِّل أن يعد بما يشاء بشأن الخصوصية؛ لكنه لا يستطيع أن يعد بأكثر مما يسمح به سجلّه، ولا يستطيع أيّ منهما أن يعد بشيء بخصوص محكمة في الولاية القضائية التي يقع فيها السجل نفسه. لذا فإن الترتيب مهم، ومعظم الناس يعكسونه: اختر الامتداد أولًا، ثم اختر من يبيعه لك.
ثلاث خصائص تفرّق بين الامتدادات. مكان وجود مُشغِّل السجل يحدد أي محاكم تستطيع الأمر بتعليق اسم عند الجذر — وبالنسبة إلى امتدادات gTLD الكبرى القديمة فإن ذلك يعني الولايات المتحدة، ولهذا يمكن لنطاق .com يملكه شخص لا وجود له إطلاقًا في الولايات المتحدة أن يُصادَر بأمر أمريكي رغم ذلك، ولهذا فإن ولايتك القضائية أنت تهم أقل بكثير مما كنت تأمل. ما ينشره السجل افتراضيًا يتفاوت بشكل هائل: بعض سجلات ccTLD تحجب أكثر مما تحجبه gTLD، وأخرى تطبع اسم صاحب النطاق لأي من يسأل، وقلة منها تشترط وجودًا محليًا موثَّقًا لا يمكن استيفاؤه إلا بهوية حقيقية. أما إن كانت خدمات الخصوصية مسموحة أصلًا فتلك قاعدة يفرضها السجل لا ميزة يقدّمها المسجِّل — إذ تمنع حفنة من الامتدادات التسجيل بالوكالة (proxy) كليًا، وأي مسجِّل يبيعك خصوصية على أحدها ستُنزع عنك ببساطة لاحقًا.
لا شيء من ذلك ثابت بما يكفي لحفظه عن ظهر قلب، وأي قائمة لـ"امتدادات صديقة للخصوصية" تجدها على الإنترنت تكون جزئيًا خاطئة بحلول وقت قراءتك لها. تحقّق بنفسك بدلًا من ذلك: الخطوة الثانية تُجري عمليات البحث التي تجيب عن الأسئلة الثلاثة لأي امتداد تفكر فيه، باستخدام نطاق لا تملكه. أجرِها قبل أن تدفع، لأن امتدادًا سيئًا لا يمكن إصلاحه بنقل المسجِّلين. لا يمكن إصلاحه إلا بالبدء من جديد باسم مختلف.
SP·03ثلاثة نماذج للمسجِّلين، وما الذي يصمد أمامه كل منها
إذا نزعت طبقة التسويق، تبقى ثلاثة ترتيبات معروضة. في نموذج الوكالة (proxy) تكون أنت صاحب التسجيل ويَنشر المسجِّل بيانات تواصله الخاصة بدلًا من بياناتك. بياناتك موجودة أصلًا في قاعدة بيانات المسجِّل، والحجب مجرد تجميل فوق سجل كامل، وشروط مزوّد الوكالة نفسه تحتفظ في الغالب دائمًا بحق الكشف عنك عند ورود طلب "معقول" من طرف ثالث. هذا النموذج يهزم الزاحفة (scrapers) وسماسرة البيانات هزيمة كاملة. لكنه لا يهزم أي شيء يصل ومعه محامٍ.
في نموذج المالك المسجَّل (owner-of-record) — الترتيب الذي اشتهر بفضل Njalla — يسجّل المزوّد الاسم باسمه هو ويمنحك حقًا تعاقديًا في استخدامه، بحيث لا تصبح هويتك أبدًا صاحب التسجيل. لا يوجد في السجل ما يُكشف عنه لأنه لا يوجد فيه شيء أصلًا. والمقايضة حقيقية وتستحق أن تُقال بوضوح: أنت لا تملك النطاق قانونيًا. أنت تعتمد على ملاءة شركة واحدة، ورغبتها في مقاومة طلب ما، واستمرار مصلحتها في هذا العمل. فإن أفلست، أو استُحوذ عليها، أو قررت أنك أكثر إزعاجًا مما تستحق، فإن سبيلك الوحيد نزاع تعاقدي حول أصل مسجَّل باسم جهة أخرى.
الترتيب الثالث هو هوية تسجيل نظيفة خاصة بك: تسجيل حقيقي باسم مستعار بلا تاريخ، على صندوق بريد لا وجود له إلا لهذا الغرض، مدفوع بعملة مشفّرة، لدى مسجِّل في ولاية قضائية لا صلة لها بمضيفك ولا بك. هذا الترتيب يتوسّع لما بعد نطاق واحد، ولا يعتمد على حسن نية شركة بعينها، وهو ما يبنيه بقية هذا الدليل. كما أنه الأكثر فشلًا إن كنت مهملًا، لأن كل شيء فيه يقوم على ألا تُربَط تلك الهوية بك في مكان آخر أبدًا — وهذا نمط الفشل الذي يشرحه دليل الملكية طبقة تلو طبقة. والنموذجان يتكاملان جيدًا، بالمناسبة: تسجيل بنموذج المالك المسجَّل يُشترى بهوية نظيفة أقوى من أي منهما بمفرده.
SP·04استمارة التسجيل: ما يمكنك رفضه، وما الذي يوقف نطاقك
تطلب الاستمارة اسمًا، وعنوانًا بريديًا، ورقم هاتف، وبريدًا إلكترونيًا. ثلاثة من هذه بيانات تعاقدية يُلزَم المسجِّل بالاحتفاظ بها ولن يتحقق منها تقريبًا أبدًا. أما الرابع فهو الحامل الفعلي للبنية. البريد الإلكتروني هو ما يهم فعلًا: فبموجب اتفاقية اعتماد المسجِّلين يجب التحقق من عنوان صاحب التسجيل بعد التسجيل، وإن لم ينقر أحد على الرابط يُعلَّق النطاق — عادة خلال خمسة عشر يومًا. صندوق بريد مؤقت يتوقف عن الوجود يسحب النطاق معه.
لذا يجب أن يكون العنوان اسمًا مستعارًا (alias) تتحكم فيه فعلًا وستظل تقرؤه بعد ثلاث سنوات، لدى مزوّد لا يشترط رقم هاتف لفتح حساب ولن يغلقه بسبب عدم الاستخدام. أما بقية الاستمارة فمسألة اتساق لا مسألة صدق: اختر مجموعة بيانات معقولة، واحفظها مشفّرة، واستخدم البيانات نفسها بالضبط لدى المسجِّل، وفي ملف الحساب، وفي أي تذكرة دعم تفتحها لاحقًا. عدم الاتساق هو ما يُحيل الحساب إلى مراجعة يدوية، والمراجعة اليدوية هي حيث يبدأ إنسان بطلب مستندات.
ثم ادفع عبر قناة لا تحمل أي اسم قانوني إلى السجل. البطاقة تُفشل التمرين كله مهما قال WHOIS، لأن سجل معالج الدفع يبقى بعد انتهاء التسجيل ويمكن استصدار أمر استدعاء بشأنه بلا أي عناء؛ دليل الدفع المجهول يرتّب الخيارات بحسب ما يسرّبه كل منها. إن كان المسجِّل يقبل Monero مباشرة، فذلك هو المسار النظيف. وإن كان يقبل Bitcoin فقط، فعامل الدفعة على أنها قابلة للتتبع بشكل دائم ومَوِّلها على هذا الأساس. وإن كان لا يقبل أيًّا منهما، فقد أخبرك المسجِّل بشيء مفيد عن نوعية العملاء الذين يريدهم.
SP·05DNS هو التسجيل الثاني
بمجرد أن تنشر منطقة (zone) فإنك تعيد نشر نفسك، في حقول لا يظن أحد أنها تحمل هوية. سجل SOA يحمل عنوان بريد إلكتروني مُرمَّزًا بحيث تحل نقطته الأولى محل @، وملفات المناطق المكتوبة يدويًا كثيرًا ما تحمل عنوانًا حقيقيًا. وأسماء خوادم الأسماء (nameservers) بصمة: فحين توجّه نطاقين إلى خوادم أسماء مخصصة واحدة تكون قد ربطتهما بشكل دائم، في مجموعة بيانات تفهرسها وتحتفظ بها محركات بحث البحث العكسي لخوادم الأسماء. وحين تقيم خوادم الأسماء تلك داخل النطاق نفسه، ينشر السجل سجلات الغراء (glue records) — عناوين IP الخاصة بها، في منطقة الجذر، بعيدًا عن متناول أي CDN تضعه أمام الموقع. يقضي الناس أسبوعًا في إخفاء مصدر (origin) ثم يوزّعون عنوانه في سجل غراء.
يستحق DNSSEC تحذيرًا خاصًا، لأنه يُباع كميزة أمنية بينما يتصرف كميزة إفصاح. توقيع منطقة بـ NSEC ينشر قائمة مترابطة بكل اسم فيها، يستطيع أي شخص تصفحها خلال ثوانٍ. أما NSEC3 فيقوم بتجزئة (hash) الأسماء بدلًا من ذلك، وهو ما يبدو أفضل بينما لا يفعل سوى رفع الثمن: فالتجزئات قابلة للكسر دون اتصال (offline) وهناك أدوات لا تفعل شيئًا آخر سوى ذلك. وقِّع المنطقة إن أردت إجابات موثَّقة، وادخل في الأمر وأنت تدرك أنك لا تُخفي قائمة نطاقاتك الفرعية. لم تكن تخفيها يومًا.
مكان تقديم خدمة المنطقة قرار منفصل عن مَن سجَّل الاسم، وتوزيعهما على شركتين في بلدين يستحق أكثر من أي من الخيارين بمفرده. تشغيل خوادم أسماء خاصة بك يمنحك تحكمًا وبصمة صغيرة مميّزة؛ واستخدام خوادم مزوّد كبير يمنحك تخفيًا وسط حشد وشركة تسجّل كل استعلام وستجيب عن أي طلب بشأنه. لا يوجد خيار مجاني هنا، بل فقط اختيار أي سجل تفضّل أن يكون موجودًا. وإن كان الموقع خلف المنطقة يقف خلف حافة (edge)، فإن دليل عنوان IP المصدر يغطي بقية تلك السلسلة.
SP·06التسريبات التي تصل بعد التسجيل
شفافية الشهادات (certificate transparency) هي التسريب الأكبر. كل شهادة موثوقة عالميًا تُكتَب في سجل عام لا يُمحى منه شيء وقابل للبحث فيه بشكل دائم، لذا فإن كل اسم طلبت يومًا من جهة إصدار شهادات (CA) توقيعه قابل للاكتشاف — بما في ذلك مضيفات staging. وvpn. وold- التي افترضت أن لا أحد يعرفها، وبما في ذلك الاسم الداخلي الذي أصدرته عن طريق الخطأ مرة واحدة وحذفته بعد ظهر اليوم نفسه. لا يمكنك سحب مُدخَل من السجل. الضبط الوحيد يكون من المنبع: اطلب شهادة نطاق شامل (wildcard) عبر تحقّق DNS-01 كي لا تدخل أسماء المضيفات الفردية إلى أي سجل إطلاقًا، وأبقِ الأسماء الخاصة فعليًا على جهة إصدار شهادات داخلية لا تسجّل شيئًا.
ويكشف البريد تسريبين آخرين. سجل SPF يسمّي المُرحِّل (relay) الذي ترسل عبره. وسجل DMARC عادة ما يسمّي إنسانًا، لأن rua= هو حيث تذهب التقارير ويضع الناس فيه صندوق بريدهم الحقيقي. وسجل MX الذي يشير إلى الجهاز الذي يخدم الموقع أيضًا يسلّم عنوان المصدر لأي شخص يُجري استعلامًا واحدًا — والبريد هو الطريقة الأكثر شيوعًا على الإطلاق التي يفلت بها مصدر (origin) من خلف حافة (edge).
الفئة الأخيرة هي الترابط (correlation)، وهي ما يهدم عملًا كان حذرًا لولا ذلك. مجموعة خوادم الأسماء نفسها عبر هويتين تربطهما ببعضهما. وكذلك تفعل شهادة واحدة تغطي الاسمين، ومعرّف التحليلات (analytics) نفسه، وأيقونة الموقع (favicon) نفسها — تفهرس الماسحات على مستوى الإنترنت بأكمله تجزئات الأيقونات (favicon hashes) تحديدًا لأنها بصمة فعّالة جدًا — وترويسة استجابة غير معتادة نفسها، والمسجِّل نفسه في الساعة نفسها من الليلة نفسها. كل واحد من هذه بمفرده دليل ضعيف. لكن ثلاثة منها معًا ليست كذلك. الخطوتان الرابعة والسادسة تُجريان عمليات البحث نفسها التي سيجريها خصم، ضد نطاقك أنت، وهي الطريقة الصادقة الوحيدة لمعرفة ما نشرته فعليًا.
SP·07التجديد، والنقل، وإخفاق السنة الثالثة
نادرًا ما تموت النطاقات المجهولة بسبب أمر استدعاء قضائي. إنها تموت بسبب تسجيل منتهي الصلاحية. توقف صندوق البريد المستعار عن أن يُقرأ، وارتد إشعار التجديد، ونفد الرصيد، وسقط اسم استغرق بناؤه سنة كاملة في المسبح (pool) حيث كان أحد صائدي النطاقات الساقطة (drop-catcher) بانتظاره. فعِّل التجديد التلقائي، واحتفظ برصيد كافٍ لدى المسجِّل يغطي عدة سنوات، وضع تاريخ الانتهاء في أي نظام تنبيه تنظر إليه فعلًا — الخطوة السابعة تسحبه مباشرة من السجل، بحيث لا يعتمد التذكير على صندوق البريد الأكثر عرضة للفشل.
الأقفال هي النصف الآخر، وهي مجانية. clientTransferProhibited وclientUpdateProhibited وclientDeleteProhibited تحتاج كل واحدة منها نقرة واحدة فقط وتغلق الباب أمام فئة الهجوم بأكملها التي تبدأ بدخول أحدهم إلى حساب المسجِّل الخاص بك. تقدّم بعض السجلات أيضًا قفل سجل (registry lock)، يشترط تأكيدًا خارج القناة المعتادة قبل أي تغيير، ويستحق الدفع مقابله على اسم لا يمكنك تحمّل خسارته. احتفظ برمز تفويض النقل مشفّرًا وغير متصل بالشبكة، واعلم أن تغيير جهة اتصال صاحب التسجيل يُطلق حظر نقل مدته ستون يومًا — لذا نفّذ هذه الأعمال التدبيرية حين لا تكون في عجلة من أمرك، لا في خضم حادثة.
ثم خطّط للنسخة التي لا تكون فيها متاحًا. النطاق المحتفَظ به على هوية مجهولة ليس له وراثة (probate) ولا سلّم دعم ولا إثبات ملكية يتجاوز بيانات الاعتماد نفسها، وهو ما يجعل نسخة مشفّرة من تفاصيل الحساب، ورموز الاسترداد، ورمز التفويض — محفوظة حيث يستطيع شخص تثق به الوصول إليها في نهاية المطاف — الشيء الوحيد الفاصل بين مشروع طويل العمر واسم ميت. وينطبق المنطق نفسه على الجهاز خلفه: نسخة احتياطية مشفّرة خارج الموقع لا يستطيع أحد استعادتها هي نسخة احتياطية لا تملكها أصلًا.
SP·08نموذج تهديد واقعي
كن دقيقًا بشأن ما يهزمه هذا فعلًا. أمام الزاحفة (scrapers)، وسماسرة البيانات، والمنافسين، وباحثي المصادر المفتوحة، والانتهازي الذي ينتقل من أحد أسمائك إلى بقيتها جميعًا، تنجح هوية تسجيل نظيفة مع منطقة خالية من التسريبات، وتنجح نجاحًا كاملًا — إذ لا يوجد في السجل العام ما يُنطلَق منه. أمام مُدّعٍ مدني، ترفع التكلفة من استعلام مجاني إلى إجراء قانوني، وهذا فرق حقيقي وحاسم في الغالب. أمام شكوى UDRP يرفعها صاحب علامة تجارية، لا يمنحك نموذج الوكالة (proxy) إلا القليل جدًا، بينما يمنحك نموذج المالك المسجَّل شركة عليها أن تقرر إلى أي مدى تريد أن تخوض المعركة نيابة عنك.
أمام دولة لها ولاية قضائية على سجلّك، هذا لا ينتصر، ولا ينتصر أي ترتيب من ترتيبات المسجِّلين: يمكن تعليق الاسم عند الجذر بصرف النظر عمّن يحمله. وهذه حجة لاختيار الامتداد بعناية ولامتلاك محتواك بشكل يتيح لك نقله، لا لمسجِّل أذكى. وأمام أخطائك أنت، لا يقدّم هذا شيئًا على الإطلاق. تسجيل دخول واحد من ملف تعريف متصفح شخصي، وتذكرة دعم واحدة مكتوبة بأسلوبك المعتاد من عنوانك المعتاد، وشهادة واحدة تغطي الهويتين معًا، والسجل الذي أمضيت هذا الدليل تبقيه نظيفًا يُعاد خياطته من جديد خلال بعد ظهر واحد.
ابنِ استعدادك بحسب الخصم الذي تواجهه فعلًا. بالنسبة إلى معظم الناس، الإجابة الصادقة هي السماسرة والانتهازيون، وإغلاق السجلات في الخطوتين الخامسة والسادسة يكفي. وإن كان تعرّضك أعلى من ذلك، تذكّر أن النطاق مجرد طبقة واحدة من عدة طبقات: اقرنه بمضيف لم يسألك يومًا من أنت، وجهاز مُحصَّن منذ اليوم الأول، ودفع لا يحمل أي اسم. الخصوصية سلسلة، وكل دليل هنا يصف حلقة مختلفة من السلسلة نفسها.
SP·09خطوة بخطوة
-
01
دقّق فيما ينشره الاسم أصلًا
ابدأ بالنطاق الذي تملكه، أو بنطاق توشك على شرائه من شخص آخر. RDAP هي خدمة التسجيل القابلة للقراءة الآلية التي حلّت محل WHOIS عبر المنفذ 43 بالنسبة إلى gTLD، وهي تتحدث JSON عبر HTTPS، وسيرشدك
rdap.orgإلى السجل الصحيح. لا تزال العديد من ccTLD تجيب فقط عبر المنفذ 43، وينشر عدد منها أكثر مما تنشره gTLD.# gTLDs: RDAP is the authoritative registration record curl -s https://rdap.org/domain/example.com | jq '{ status, ns: [.nameservers[]?.ldhName], events: [.events[] | {(.eventAction): .eventDate}], roles: [.entities[]?.roles[]?] }' # the fields that are supposed to be blank -- read them, do not assume curl -s https://rdap.org/domain/example.com \ | jq -r '.. | objects | select(has("vcardArray")) | .vcardArray[1][] | select(.[0]=="fn" or .[0]=="email" or .[0]=="adr") | "\(.[0]): \(.[3])"' # ccTLDs: many are port-43 only, and less redacted than you expect whois example.de | grep -viE '^%|^$'إن ظهر اسم حقيقي، أو عنوان حقيقي، أو بريد إلكتروني شخصي، توقف هنا: نقل النطاق لن يمحو ذلك، لأن الأرشيفات تملكه أصلًا. هذا الاسم محروق لأغراض الخصوصية، والتصرف الصادق هو تسجيل اسم جديد وإعادة التوجيه إليه.
-
02
اختبر الامتداد قبل أن تلتزم به
قارن الامتدادات المرشّحة تجريبيًا لا استنادًا إلى منشور مدونة. ابحث عن نطاق لا تملكه في كل واحد منها واقرأ ما يُرجعه السجل فعليًا، ثم تحقّق من يُشغّل ذلك السجل وأين. تختلف أشكال المخرجات بين السجلات، وهذا بالضبط سبب استحقاق إجراء هذا الفحص بدلًا من الافتراض.
# what does each registry publish about a registrant? for d in example.com example.de example.is example.nl; do printf '\n== %s\n' "$d" curl -s "https://rdap.org/domain/$d" \ | jq -r '.entities[]? | "\(.roles|join(",")): \( [.vcardArray[1][]? | select(.[0]=="fn")][0][3] // "redacted")"' \ 2>/dev/null || whois "$d" | grep -iE '^(registrant|owner|admin-c)' done # who runs the registry, and under whose law does that company sit? curl -s https://www.iana.org/domains/root/db/is.html \ | sed -n 's/.*Organisation:*//p;/Registry Information/,+6p' | head -20ثلاث إجابات تحسم الأمر. هل ينشر السجل اسم صاحب التسجيل افتراضيًا؟ هل يشترط وجودًا محليًا موثَّقًا؟ وأي محاكم تصل إلى مُشغِّل السجل؟ أي امتداد يشترط وجودًا محليًا مستبعَد ما لم تستطع استيفاءه بصدق، وأي امتداد يقع مُشغِّله في ولاية قضائية تتجنبها تحديدًا مستبعَد بصرف النظر عن مدى جودة مظهر المسجِّل.
-
03
ابنِ الهوية قبل أن تفتح الحساب
ولّد الهوية في جلسة واحدة ولا تكتب شيئًا كنص صريح (plaintext). يجب ألا يحمل الاسم المستعار أي تاريخ — لا لقبًا استخدمته في مكان آخر، ولا كلمة ذات معنى بالنسبة لك. يجب أن يكون صندوق البريد اسمًا مستعارًا لدى مزوّد لا يشترط رقم هاتف، ويحتاج إلى الصمود أمام ثلاث سنوات من الإهمال، لأن بريد التحقق من المسجِّل وكل إشعار تجديد يصلان إليه.
# a handle with no history and no meaning head -c 10 /dev/urandom | base32 | tr -d '=' | tr 'A-Z' 'a-z' # a key for the secrets this account is about to hand you age-keygen -o registrar.key # public key is printed on stderr # store profile details, recovery codes and (later) the auth code age -r age1... -o registrar.age registrar.txt && shred -u registrar.txt # read it back only when you need it age -d -i registrar.key registrar.age
استخدم ملف تعريف متصفح لم يلمس حسابًا شخصيًا قط، وتواصل مع المسجِّل عبر مسار الشبكة نفسه في كل مرة — فمزج اتصال منزلي وVPN عبر الجلسات المختلفة أكثر تمييزًا من استخدام أحدهما باستمرار. سجّل تفاصيل الملف الشخصي الدقيقة التي أرسلتها؛ فستحتاج إلى تكرارها حرفيًا في تذكرة دعم بعد سنتين من الآن.
-
04
سجِّل، ثم انظر إلى نفسك كما ينظر إليك غريب
سجّل الاسم، وانقر رابط التحقق في اليوم نفسه، ثم انتظر حتى ينتشر السجل إلى السجل المركزي (registry) قبل أن تفحصه — تظهر المخرجات المهمة بعد بضع ساعات، لا فورًا. ما تبحث عنه هو أي حقل لم يُحجَب، ورموز الحالة التي تخبرك أن التحقق اكتمل فعليًا.
# the public record, 24h in curl -s https://rdap.org/domain/example.com | jq '{status, events}' # expect: "active" -- NOT "pendingVerification" or "clientHold" # anything at all that survived redaction curl -s https://rdap.org/domain/example.com \ | jq -r '.. | objects | .vcardArray? // empty | .[1][] | select(.[0]=="fn" or .[0]=="email" or .[0]=="adr" or .[0]=="tel") | "\(.[0]): \(.[3])"' # and the archive view: does this name have a past you did not buy? curl -s 'https://crt.sh/?q=example.com&output=json' \ | jq -r '.[] | "\(.not_before) \(.name_value)"' | sort -u | head -20حالة
clientHoldأوpendingVerificationبعد أسبوع تعني أن بريد التحقق لم يصل قط أو لم يُنقر عليه قط، وأن النطاق في عد تنازلي نحو التعليق. أصلح ذلك قبل أي شيء آخر — فهذه هي الطريقة الأكثر شيوعًا على الإطلاق التي يُفقَد بها نطاق مجهول مسجَّل بشكل صحيح خلال شهره الأول. -
05
انشر منطقة لا تكشف اسمك
والآن الجزء الذي يسرّب أكثر من غيره ويُفحص أقل من غيره. اقرأ منطقتك (zone) كما يقرؤها غريب: عنوان
SOA، وأسماء خوادم الأسماء، والغراء (glue) الذي ينشره السجل نيابة عنك، وما إذا كان بإمكان أي أحد ببساطة تنزيل المنطقة بأكملها.# SOA -- the second field is an email, first dot standing in for @ dig +short SOA example.com # ns1.example.com. hostmaster.example.com. 2026090601 7200 3600 1209600 3600 # ^-- must not be a personal address # glue: if your nameservers live inside the domain, the ROOT holds their IPs dig +norec +short NS example.com @a.gtld-servers.net dig +norec +short ns1.example.com A @a.gtld-servers.net # can anyone download the entire zone? dig AXFR example.com @ns1.example.com | head # want: "Transfer failed" -- anything else is your full host inventory # pin issuance to one CA, and give abuse somewhere impersonal to land dig +short CAA example.com # 0 issue "letsencrypt.org" # 0 iodef "mailto:abuse@example.com"
أصلح بهذا الترتيب: استبدل عنوان
SOAبصندوق بريد وظيفي (role mailbox) على النطاق نفسه، وانقل خوادم الأسماء خارج النطاق (أو خارج جهازك الخاص كليًا) بحيث لا حاجة إلى غراء، وارفضAXFRمن أي جهة سوى خوادمك الثانوية، وأضف سجلCAA. وإن كنت توقّع بـ DNSSEC، فاستخدم NSEC3 وتقبّل أن قائمة نطاقاتك الفرعية لا تزال قابلة للحصر من قِبل أي شخص مستعد لإنفاق ساعة في ذلك. -
06
أغلق تسريبات الشهادات والبريد
هناك مجموعتا بيانات عامتان تعرفان عن بنيتك التحتية أكثر مما يعرفه DNS الخاص بك. شفافية الشهادات تعرف كل اسم مضيف طلبت توقيعه يومًا؛ وسجلات بريدك الخاصة تسمّي مُرحِّلك، وصندوق تقاريرك، وغالبًا مصدرك (origin). احصِ الاثنين ضد نفسك.
# every name you have ever asked a CA to sign, including deleted ones curl -s 'https://crt.sh/?q=%25.example.com&output=json' \ | jq -r '.[].name_value' | tr ' ' '\n' | sort -u # the mail records, read for identity rather than deliverability dig +short TXT example.com # SPF include: names your relay dig +short TXT _dmarc.example.com # rua=mailto: usually names a human dig +short MX example.com # an MX on the origin IS the origin # does the site answer on its own address, ignoring the edge? curl -sI --resolve example.com:443:203.0.113.10 https://example.com/ | head -1
انقل الإصدار المستقبلي إلى شهادة نطاق شامل (wildcard) موثَّقة عبر DNS-01 كي تتوقف أسماء المضيفات عن دخول السجلات، ووجّه
rua=إلى عنوان على النطاق نفسه لا إلى صندوق بريد شخصي، وانقل البريد بعيدًا عن المصدر — مُرحِّل أو جهاز منفصل، لا الجهاز الذي يُشغّل الموقع أبدًا. الأسماء الموجودة أصلًا في السجلات لا يمكن سحبها؛ فإما أن تتقاعد عنها أو تتقبّل أنها عامة إلى الأبد. -
07
أقفِله، وراقبه، وخطّط لغيابك
أخيرًا: اجعل التسجيل صعب النقل وصعب النسيان. الأقفال الثلاثة من جهة العميل مجانية وتوقف فئة الهجوم بأكملها التي تبدأ داخل حساب المسجِّل الخاص بك. تاريخ الانتهاء مكانه نظام التنبيه لديك لا صندوق بريد قد تتوقف عن قراءته.
# what the registry says about locks and dates curl -s https://rdap.org/domain/example.com \ | jq -r '.status[], (.events[] | "\(.eventAction) \(.eventDate)")' # want: clientTransferProhibited, clientUpdateProhibited, clientDeleteProhibited # days until expiry, straight from the registry -- no email involved exp=$(curl -s https://rdap.org/domain/example.com \ | jq -r '.events[] | select(.eventAction=="expiration") | .eventDate') echo $(( ( $(date -d "$exp" +%s) - $(date +%s) ) / 86400 )) days left # keep the escape hatch encrypted and off the machine it protects age -r age1... -o auth-code.age auth-code.txt && shred -u auth-code.txtشغّل فحص الانتهاء ذاك من cron ونبّه عند تسعين يومًا. احفظ الحزمة المشفّرة — تفاصيل الحساب، ورموز الاسترداد، ورمز تفويض النقل — في مكان يستطيع الوصول إليه شخص تثق به، لأن النطاق المجهول ليس له وراثة ولا سلّم دعم. ثم أعد تشغيل الخطوات من الرابعة إلى السادسة مرة كل سنة: فالمناطق تنحرف، وتُصدَر شهادات من قِبل أشخاص ينسون، والتسريب الذي أغلقته في يناير يعود عادة بحلول الخريف.


