Table of Contents
מהו אימות מבוסס DNS ומדוע זה משנה?
אימות מבוסס DNS הוא שיטה המסתמך על מערכת שם הדומיין - חוברת הטלפונים של האינטרנט - לאמת את זהות המשתמשים, המכשירים או השירותים לפני מתן גישה למשאבים ארגוניים. במקום שילובים מסורתיים של שם משתמש/פסמה או אפילו אימות מבוסס תעודה, רשומות DNS כגון רשומות TXT או DNSSEC-signed Responses גרפיטי לשאת גרפיטי (אלקטרונים, מפתחות ציבוריים, או ערכי hash) שיכול לאמת את השרת או לאמת בזמן אמתי.
בסביבות ארגוניות, גישה זו מציעה תערובת ייחודית של פשטות וביטחון.כי DNS כבר מרכיב תשתיתי מבוסס, זמין מאוד, זה יכול להיות repurposeed עבור אימות מבלי לפרוס מערכות חדשות לחלוטין.לדוגמה, חברה עשויה לאחסן אסימוני חומרה מבוסס מכשיר במסד DNSSEC-valid TXT, ולאחר מכן לשאול כי כל פעם שהמכשיר מנסה לחבר VPN.
המושג אינו חדש – סטנדרטים מוקדמים של אימות דואר אלקטרוני כמו SPF ו- DKIM משתמשים ב- DNS כדי לאמת זהות שולחת – אך החלים אותו למשתמש ואימות המכשיר ברשת ארגונית שלמה צוברים מתחזים כמו ארגונים מחפשים פתרונות חסרי סיסמה, phishing-resistant. בשילוב עם נהלי אבטחה חזקים DNS, זה יכול להפחית באופן דרמטי את הגניבה ופשט ניהול משתמשים בקנה מידה.
כיצד פועל האותנטיות מבוססת DNS
בליבתו, אימות מבוסס DNS עוקב אחר זרימה פשוטה של שאילתה-תגובה ללקוח (מכשיר משתמש או יישום) יוזם בקשה גישה.שרת האימות או מודול אימות ולאחר מכן מסתכל על תיעוד DNS מסוים הקשור לזהות הנטען.אם הרקורד קיים, תואם נתונים קריפטוגרפיים הצפויים, ומאומת (באופן אידיאלי עם DNSSEC), גישה ניתנת.אם הרקורד חסר, מטושטש עם זהה או חתום, הבקשה לא נכונה.
תפקיד רשומות DNS
שלושה סוגים של רשומות DNS משמשים בדרך כלל:
- (FLT:0) תועדות:0(TXTXT) רשומות טקסט שרירותיות, המכילות לעתים קרובות אסימונים קריפטוגרפיים, JWTs, או מזהים מזוהים מזוהים.אלה הם הפשוטים ביותר ליישום אך זקוקים להגנה של DNSSEC כדי להיות אמין.
- [01:0] DNSSEC חתימות (RRSIG): ⁇ 1 אספקת אותנטיות ויושרה לכל סוג שיא.הלקוח מאמת את שרשרת החתימה, ולהבטיח שהתגובה לא הוצתה או שונה.
- (בקיצור:0CNAME / NAPTR רשומות (indirectue): FLT) 1 יכול להצביע על תחום אחר שמחזיק את נתוני האימות בפועל, המאפשר מודלים של אמון שכבתיים או מאצילים.
לדוגמה, משתמש בשם FLT:0 (בתחום ה-FLT:1) עשוי להיות בעל שיא של TXT ב-FLT:2 המכיל מפתח ציבורי.כאשר המחשב הנייד של ג'ון מנסה לגשת ל- API פנימי, שאילתות השער שרשומות מדויקות, משחזרות את המפתח, ומאמת אתגר חתום מהמחשב הנייד.
המונחים: DNSSEC
ללא DNSSEC, תוקף יכול לצטט תגובות DNS ואמתיות כמו כל משתמש.עם DNSSEC אפשר, ה-DNSSEC מבצע שרשרת של אימות אמון מאזור השורש ועד לשמות סמכותיים.שרת האימות או הלקוח חייב להשתמש בפתירת אימות (הסוכן לדחות נתונים בגו) או לבצע את עצמו.
יתרונות מרכזיים של סביבת ארגונית
מדוע על מפעל להשקיע באימות מבוסס DNS?היתרונות הולכים מעבר לחיסול סיסמאות.
צמצם את התקפת הפנים ל-Credential Theft
סיסמאות מסורתיות נגנבות באמצעות phishing, מפתחי, או פריצות מסד נתונים. אימות מבוסס DNS יכול להיות מיושם כמערכת ללא סיסמה שבה "סוד" הוא מפתח קריפטוגרפי המאוחסן ב- DNS וקשור למכשיר או למשתמש.גם אם תוקף יירט את השאילתת ה- DNS, הם לא יכולים להשתמש בתגובה כי הוא קשור לאתגר או ל-Facetamp. זה הופך כמעט חסר תועלת.
ניהול חיים מרכזי
הוספת, עדכון או הפצת נתוני אימות הופך פשוט כמו עריכת רשומות DNS.מכיוון שרוב הארגונים כבר מנהלים DNS באמצעות פלטפורמה מרכזית, אין צורך לסנכרון מספר חנויות זהות.כאשר עובד עוזב, מנהל המערכת מוחק או משנה את הרשומות ה- TXT המשויכות; בתוך ה- TTL של הרשומה, השינוי propagates ברחבי העולם.זה הרבה יותר מהיר מעדכון אלפי שרתי שרתי RADUS או Active Directorys Active Directory.
סקלאלה & דגימה; חוסן
DNS מבוזרת באופן חד-משמעי וזמין מאוד.תשתית DNS היטב יכול להתמודד עם מיליוני שאילתות לשנייה עם שקיפות מינימלית.שאילתות Authentication יכולות למנף כל סטקלינג כדי להגיע לשמות ההיענות הקרובים ביותר, תוך הימנעות מנקודות בודדות של כישלון.זה הופך אימות מבוסס DNS לתאים מצוינים לארגונים גלובליים עם עשרות אלפי משתמשים מרוחקים.
המונחים: overhead
אין צורך לפרוס ולתחזק שרתי אימות, רשויות תעודה או אסימוני חומרה לכל מקרה שימוש.מערכת האקולוגית הקיימת של DNS - המנוהלת לעתים קרובות על ידי צוות קטן - עכשיו משרתת מטרות כפולות.
אפשרויות ל-Instaative Standards
פרוטוקולים אבטחה מודרניים רבים כבר תומכים אימות מבוסס DNS.לדוגמה, אבטחת דואר אלקטרוני (DMARC/DKIM), OAuth 2.0 DPoP, ו- JWT מבוסס אימות יכול להיות משולב עם חיפושים DNS.
מדריך שלב-בי-Steptlementation Guide
השלבים הבאים מספקים מפת דרכים מעשית לפרוסת אימות מבוסס DNS ברשת ארגונית.פרטים מדויקים תלויים בתשתיות הקיימות שלך ופרוטוקולים נבחרים, אך התהליך ברמה גבוהה נשאר דומה.
דרישות אספה וסקוט
לזהות אילו משאבים ישתמשו אימות מבוסס DNS.מועמדים נפוצים כוללים:
- שערי VPN (באמצעות תעודות המכשיר המאוחסנים ב- DNS)
- יישומי אינטרנט פנימיים (התאמת באמצעות אסימוניות מבוססות DNS)
- גישה לשרתים (מפתחות ציבוריים מאוחסנים ברשומות SSHFP או רשומות TXT)
- משלוח דואר אלקטרוני (SPF/DKIM/DMARC כבר מנף DNS)
לקבוע אם האימות ישמש למשתמשים, למכשירים או לשניהם.אם יש לך כבר ספק זהות (למשל, Active Directory, Okta או Azure AD), לתכנן כיצד רשומות DNS ימפה זהות.חשב אם DNSSEC הוא חובה עבור מודל האיום שלך - ברוב ההקשרים הארגוניים, יש לאפשר זאת.
הכינו את תשתית ה-DNS שלכם
לפני יצירת רשומות אימות, ודא שמערכת ה-DNS שלך עומדת בדרישות אבטחה וביצועים.
- (FLT:0) DNSSigsECFLT:1 על שמות סמכותיים עבור התחום שלך.יצור ופרסום מפתחות חתימה אזור (ZSK) ומפתחות חתימה מפתח (KSK) ספק ה- DNS שלך (למשל, כביש53, Cloudflare, או Azure DNS) תומך לעתים קרובות ב-DNSEC בכמה קליקים.
- (FLT:0) אימות ברמת ה-SEC.IRLT:1; אם לקוחות משתמשים ב- DNS פתרונות פנימיים (כמו In-house BIND או מנגנוני דירוג ארגוני), מאפשרים אימות DNSSEC. עבור פותרים ציבוריים כמו 1.1.1.1 או Google DNS ציבורי, אימות הוא ברירת מחדל.
- (FLT:0) ,Implement Access control:FLT:1 Restrict כותב גישה לממשק ניהול ה-DNS לקבוצה קטנה של מנהלי אבטחה. השתמש באימות רב-ספק לשינויים ב- DNS.
- (FLT:0) TLs מתאים TTLs:FLT:1 עבור רשומות אימות, השתמש ב- TTLs קצרים (למשל, 60-300 שניות) כך שביטול זהויות יפוג במהירות.
Define the Record Format and נאמינג האמנה
שם עקבי הופך את הממשל לחיזוי.תבנית טיפוסית עבור אימות משתמש:
- (FLT 3: 3) (TXT record המכיל מפתח JWT או ציבורי)
- (FLT:4) - רשומות עם אסימונים ספציפיים למכשיר
עבור מפתחות מארח SSH, תקן IETFLT:0 sSHFPFLT 1 רשומות (RFC 4255) הם הגישה המומלצת.הם מאחסנים טביעות אצבע של מפתחות ציבוריים SSH ישירות ב- DNS.
מסמך פורמט התוכן הרשומה.לדוגמה, תיעוד של TXT עשוי להכיל בסיס 64-קודד אד25519 מפתח ציבורי, או מבנה JSON עם תג גרסה וחומר מפתח.לוודא כי שרת האימות או הלקוח יכול לסווג אותו באופן לאמביע.
4.הפצה של לקוחות ושרתים
עכשיו אתה צריך תוכנה שיכולה לבצע את שאילתת ה-DNS ולאמת את התגובה.
- (FLT:0)Client-sidemia: FLT:1 An application or OS Agent, שעל החיבור, שולח אתגר לשרת.השרת נושא אתגר קריפטוגרפי ללקוח, שאותו הלקוח משתמש במפתח הפרטי שלו.השרת מבלה את שיא ה-DNS עבור מפתח הציבור המתאים ומאמת את החתימה.
- (FLT:0)Server-side (הוות-התאמת Proxy או שער): FLT:1 A לאחור Proxy (כמו NGINX, HAProxy, או תוכנת ביניים מותאמת אישית) מתאמת את ה-DNS, מאמת את שרשרת ה-DNSSEC, ומקדמת את הבקשה לגיבוי או לדחות אותו.
- (FLT:0) אינטגרציה עם IdP קיים:BuildFLT:1) ספקי זהות רבים תומכים כעת בתוספים "האימות החיצוני".כתב מודול קטן (למשל, ב- Python או Go) אשר בודקים רשומות DNS כחלק מהזרימה האימות, ואז מחזירים אות הצלחה / תיקון ל- IdP.
עבור יישומים פנימיים, לשקול שימוש ב-FLT:0 ,RFC 8917earFLT:1 (DNS-over-HTTPS for אימות) DoH מבטיח שאילתת ה-DNS מוצפנת ואותנטיות, הגנה מפני התקפות על-פתים עוד לפני אימות ה-DNSSEC.
המונחים: Verification Logic
אלגוריתם אימות הליבה פועל כך:
- קבלו בקשה לחיבור ומיצוי הזהות הנטענת (למשל, שם משתמש, מזהה המכשיר או דומיין הדואר האלקטרוני).
- יצירת השאילתה DNS עבור סוג הרשומה המתאים ושם, למשל, אם המשתמש טוען (FLT:5, שאילתת LT:6 עבור רישום TXT.
- בצע בדיקת DNSSEC-המוגדרת של DNS.אם ה-SEC אינו תוקף, עשה זאת באופן מקומי על ידי הבאת רשומות RRSIG ולוודא את השרשרת עד לעגן האמון.
- פרסו את תוכן הרשומה של TXT. לחלץ את המפתח הציבורי או את הסימון.
- אתגר הלקוח: לשלוח נופיות אקראית (או להשתמש בסימון מזמנים) הלקוח חייב לחתום על הצומת עם המפתח הפרטי שלו.
- בדוק את החתימה באמצעות מפתח ציבורי משוחזר, אם בתוקף, האימות מצליח; אחרת, נכשל.
- באופן אופציונלי, בדוק רשימות ייעוד (למשל, תיעוד נפרד של TXT המכיל מספר סידורי או מזהה שחור).
ההיגיון הזה חייב להיות מותאם לביצוע: מזער את הכדאיות של השאילתה באמצעות פתרון מהיר, צ'ינג DNS מקומי לשרת.
בדיקה אחרונה ב-6 במאי 2010. ^ Conductough Testing
לפני גלגול הייצור, לאמת כל רכיב:
- מבחן אימות DNSSEC: להחליף באופן זמני את הרשומה עם פורמט מזויף ולאמת את האימות נכשל.
- ביטול מבחן: למחוק או לשנות את שיא ה-DNS של המשתמש ולהבטיח כי אימות מפסיק בתוך חלון TTL.
- בדיקת טעינה: סימולציה של אלפי בקשות אימות לשנייה.מדת שקיפות של שאלות DNS והשימוש ב- CPU השרת.
- בדיקה על פני מגזרי רשת: להבטיח כי לקוחות שמאחורי חומות אש מגבילות או פרוקסיזיות עדיין יכולים לבצע בדיקות DNS (למשל, באמצעות DNS-over-TLS).
כתוב בדיקות אינטגרציה אוטומטיות לרוץ אחרי כל שינוי DNS כדי למנוע התאמות מזיהוי.
7.לעקוב ולשמור על המערכת
לאחר הפריסה, ניטור הוא קריטי.
- (FLT:0) שאלון שאילתה: ⁇ 1FLT) Log all-Fitial DNSשאילתות (ותוצאותיהן) בצנרת הפרדה נפרדת. Analyze עבור דפוסים יוצאי דופן כגון ספייקים מ- IP לא ידועים או שאילתות חוזרות עבור רשומות שאינן קיימות.
- (FLT:0 DNSSEC רוטציה: 1FLT) תזמון קבוע של מפתחות חתימה על אזור (למשל, כל 90 יום) ומפתחות חתימה מרכזית (כל שנה) מאוטומטיים את התהליך כדי למנוע שגיאות ידניות.
- (FLT:0) Recordהיגיינה: FLT:1 מעת לעת ביקורת רשומות אימות מעת לעת - החזרת רשומות יתומים לעובדים לשעבר או להתקנים שהועברו.
- תכנית Fallback:0 (FLT:1) לשמור על שיטת אימות משנית (למשל, סיסמאות מסורתיות או MFA) לשימוש במהלך הפסקות DNS. Monitor בריאות DNS באופן פעיל כדי לעבור בצורה חלקה.
הפרקטיקה הטובה ביותר ל Deployment בטוחה
אפילו מערכת אימות מבוססת DNS מעוצבת היטב יכול להיות נפגע אם פרקטיקות תפעוליות חלשות.עקוב אחר ההמלצות האלה כדי לשמור על יציבה ביטחונית חזקה.
תמיד השתמש ב-DNSSEC
ללא DNSSEC, תוקף חד-מין יכול לגרות תגובות DNS ולהתאים כל משתמש.DNSSEC אינו מצפין את השאילתה, אבל זה מבטיח כי התגובה היא אותנטית.זה לא ניתן להשגה עבור כל ארגון הפורש אימות מבוסס DNS.אם ספק ה- DNS שלך אינו תומך ב- DNSSEC, לשקול הגירה אחד שעושה זאת עבור ההרחבה, NS, , , , יישם את ה-DNSEC או , , , , , .
הגבלת ה-DNS Record Access Strictly
רק קומץ של מנהלי אבטחה צריכים לכתוב גישה לרשומות DNS הקשורות לאימות. השתמש בשליטה מבוססת על תפקיד (RBAC) על קונסולת ניהול ה- DNS שלך וביקורת כל שינוי.באופן אידיאלי, שינויים צריכים לעבור שינוי תהליך ניהול שינוי עם אישור של צוותי אבטחה ורשת.
יישום Redundancy וזמינות גבוהה
אם שמות סמכותיים שלך לרדת, אימות נכשל. השתמש לפחות שני שרתים סמכותיים נפרדים גיאוגרפית (primary and משני) שקול באמצעות ספק ענן עם DNS כל סטד כדי לשפר את החוסן. עבור פותר חוזר כי שרת האימות משתמש, להפעיל מקרים מרובים מאחורי מאזן עומס.
רוטט Cryptographic Keys באופן קבוע
המפתחות המאוחסנים ברשומות DNS - בין אם הם מפתחות ציבוריים, אסימונים גישה, או ערכי hash - צריך להיות חיים מוגבלים. להגדיר תהליכים אוטומטיים כדי ליצור זוגות מפתח חדשים ולעדכן את רשומות ה- DNS.
לשמור על קידוד מפורט ואזהרה
כניסה אפשרית עבור:
- כל הכשלונות של DNSSEC (התראות בלתי אפשרית או עיוות שגוי).
- שאילתות לרשומות אימות שגורמות ל-"NXDOMAIN" (ייתכן שמציין ניסיונות לנחש זהות).
- שאלון חיפוש לא שגרתי מ- IP יחיד (התערות בלתי אפשרית).
הגדר התראות דרך SIEM שלך (למשל, Splunk, אלסטיס אבטחה, או Azure Sentinel) כדי לזהות את האנומליות בזמן אמת.
שילוב עם גורמי אימות נוספים
אימות מבוסס DNS הוא לעתים קרובות חזק יותר כאשר נעשה שימוש אחד באימות רב-ספק (MFA) התוכנית.לדוגמה, דורש גם מפתח התקן DNS-verified וסיסמה חד פעמית מאפליקציית אימותטור. גישה זו מבוססת על הגנה מפני תרחישים שבהם תשתית ה- DNS עצמה נפגעת.
מקרים של שימוש אמיתי ודוגמאות
אימות מבוסס DNS אינו תיאורטי.מספר ארגונים גדולים ופרויקטי קוד פתוח כבר מסתמכים על זה.
SSH Host Key Verification with SSHFP Records
לקוח OpenSSH יכול לאמת אוטומטית את המפתחות המארחים על ידי שאילתה רשומות SSHFP (RFC 4255) כאשר מתחבר לשרת בפעם הראשונה, במקום לבקש מהמשתמש לקבל טביעת אצבע, הלקוח מסתכל על שיא SFPSH של השרת ב- DNS, מאמת אותו עם DNSSEC, ומשווה אותו למפתח המתקבל.
דואר אלקטרוני Authentication: SPF, DKIM ו- DMARC
בעוד SPF (Sender Policy Framework) ו- DKIM (DomainKeys Identified Mail) הם מנגנוני אימות דומיין טכנית, הם מסתמכים על רשומות DNS כדי לאמת כי דואר אלקטרוני שמקורו בשרת מורשה. DMARC מדיניות להורות למקבלים על איך להתמודד עם דואר לא מזוהה. אלה הם בין מערכות אימות מבוססות DNS הנרחבות ביותר בעולם, הגנה על מיליארדי תיבות יומיות.
VPN Access Using DNS-Stored Device Certificates
מפעל עשוי להנפיק כל חברה מחשב נייד תעודה ייחודית המאוחסנים ב-DNSSEC-signed TXT. שער ה-VPN, על קבלת בקשה לחיבור, שאילתות DNS עבור הרשומה של המכשיר, מסלק את המפתח הציבורי, ומתמודד אתגר.רק אם המכשיר יכול להוכיח את החזקה של המפתח הפרטי המתאים עושה את המנהרה של VPN פתוח.
OAuth 2.0 עם לקוח מבוסס DNS Authentication
(א) רישום לקוח 2.0 כרוך לעתים קרובות שיתוף סוד לקוח, אשר פגיע לגניבת. חלופה היא לאחסן את המפתח הציבורי של הלקוח ב- DNS TXT רישום.שרת האישורים מחזר את המפתח מ- DNS, תוקף את החתימה של הלקוח JWT (הטענה הקלה), ומאשר את הבקשה.
אתגרים פוטנציאליים וכיצד להתגבר עליהם
אין טכנולוגיה ללא חסרונות.כאן המכשולים הנפוצים ביותר ליישום אימות מבוסס DNS במפעל - ועצות מעשיות לטפל בהם.
ניכויים DNS
כאשר מפתח המשתמש נשלל, תיעוד ה-DNS הישן עשוי להישאר מצופה עד לתקופת TTL. במהלך החלון הזה, הזהות של ביטול עדיין יכול עדיין לאמת. Mitigation: להשתמש ב- TTLs קצרים מאוד (למשל, 60 שניות) עבור רשומות אימות. עבור ביטול מיידי, גם לשמור על רשימת ייעוד נוסף (למשל, חסימת חסימה מקיפה) או לחץ משותף ללקוחות עם אתגר הכולל בדיקה מחדש של בעיות.
DNS Outages ו-Availability
אם שרתי ה-DNS הסמכותיים לא במצב לא מקוון, שום אימות לא יכול לקרות.
- שימוש לפחות בשני ספקים שונים של DNS עבור Redundancy (primary/IIary).
- יישום DNS נכשל עם כל סטק.
- יש שיטת אימות נפילה (למשל, סיסמאות מקומיות) עבור שירותים קריטיים.
מורכבות DNSSEC
ניהול מקשי DNSSEC וחתימות יכול להיות מרתיע.ספקי DNS רבים מציעים כעת DNSSEC מנוהל במלואו (למשל, AWS Route53, Cloudflare, Azure DNS) כי שותפי אוטומטי הדור המרכזי וחתומה. עבור סביבות על-ידי שימוש בכלים כמו FLT 7 (BIND) ומכשיר חתימה עם עבודות cron או צינורות CI /CD.
מערכת המורשת
לא כל יישומי המורשת תומכים באימות מבוסס DNS.חשבו על פריסת שער Proxy או אימות הפוך המתורגם אימותי DNS לתוך אסימוניות סטנדרטיות (למשל, JWTs או עוגיות הפעלה) כי יישומים ישנים יכולים לצרוך.זה מאפשר הגירה הדרגתית ללא קוד מורשת.
מסקנה
אימות מבוסס DNS הוא רב עוצמה, קנה מידה, ותוספת יעילה לאסטרטגיה של אבטחת ארגונית.על ידי טיהור תשתית DNS הקיימת לאמת זהות באמצעות רשומות חתום קריפטוגרפיים, ארגונים יכולים להפחית את ההסתמכות על סיסמאות, לפשט את ניהול המשתמשים, ולסכל תוקפים נפוצים כמו phishing ו- credential Replay. The המפתח להצלחה הוא יישום קפדני של DNSSEC, תכנון של פורמטים ותבניות ניהול קוד פתוח ו-T.
עבור ארגונים שכבר מנהלים פעולות DNS בוגר, המאמץ המצטבר הוא מינימלי בהשוואה לרווחי האבטחה.כפי שהתעשייה נעה לכיוון ארכיטקטורות ללא סיסמה ואפס אמון, אימות מבוסס DNS מציע נתיב פרגמטי קדימה - אחד שממנף את מערכת השמות המחודשת ביותר של האינטרנט במקום לבנות מסגרת זהות אחרת.
[ה] [ה]] [ה] [ה]] [ה]] [ה]] [ה]] [ה]]] [ה]]] [ה]]] [ה]]]]] ל[ה'[ה]'[ה']'[ה']'[ה'[דרושה] [ה']']'[דרוש מקור], ו'[דרושה'[ה'] [ה'] [ה'] [ה'], [ה'] [ה'] [ה'[ה'[ה'[ה'[ה'] [ה'], [ה'] [ה'], ב'[דרוש מקור] [ב[[ה'], ב'], [ה']