זוהי הפקודה dacsgrid שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
dacsgrid - ניהול סיסמאות חד-פעמיות מבוססות רשת
תַקצִיר
דקסגריד [dacsoptions[1]] [-אתגר] [-קלן NUM] [-עותק vfs_uri]
[-בדצמבר אסימון] [-לִמְחוֹק] [-השבתה] [-לְאַפשֵׁר] [-enc לאתגר] [-לא בתוקף]
[-שָׁטוּחַ] [-לקבל] [-רֶשֶׁת str] [-h | עזרה] [-html] [-htmlcss]
[-דיו סוג_פריט] [-לכל החיים ימי חמישי] [-רשימה] [-ארוך] [-נקולות NUM]
[-נורות NUM] [מפתחות יציאה סוג_פריט] [פינים [NUM]] [-רעש] [-רנד] [-זֶרַע str]
[-סידורי] [-מַעֲרֶכֶת] [-גודל] [-מבחן] [-טֶקסט] [-לְאַמֵת לאתגר תגובה]
[-vfs vfs_uri]
תיאור
תוכנית זו היא חלק מ- DACS סוויטה.
השמיים דקסגריד כלי השירות מספק סיסמאות חד-פעמיות מבוססות תוכנה עבור DACS אימות
באמצעות ארכיטקטורת אתגר-תגובה. היא מנהלת חשבונות המשמשים את
local_grid_authenticateמודול אימות [2]. חשבונות אלה נפרדים לחלוטין.
מהחשבונות בהם השתמש local_passwd_authenticate[3] או כל אחד אחר DACS אימות
מודול.
דקסגריד יוצר רשת מלבנית של תאים. כל תא מורכב מאות, ואחריה
על ידי ספרה, ואחריה אות, מה שמניב 6,760 (26*10*26) אפשרויות באורך שלושה תווים
מחרוזות. התוכן של כל תא נוצר ממקורות חזקים קריפטוגרפית
בתים פסאודו-אקראיים. גודל הרשת המרבי הוא 99 שורות על 26 עמודות, וגודל הרשת המינימלי
הגודל הוא 3 על 3. העמודות מסומנות מ-A עד Z והשורות מסומנות מ-1 עד
99. עבור גדלי רשת מומלצים, סביר מאוד שכל רשת שנוצרת היא
ייחודי ולכן לכל משתמש יוקצה רשת שונה.
הנה רשת בגודל 10x10 (הגודל ברירת המחדל):
ABCDEFGHIJ
1x7m p7m k4c q9s q2k d9l s5m r8c y3v g2m
2 o0c t6h q7k l3w p8a q3e b9c l0w z8y c8v
3 v8n n1w r6i i0g e9y q1n p0g g9v x4y c5u
4 z8a o9d l1e e8n u8z h3y p2s b9z c6w d5f
5 x8y o2a y4g d9i s4p c9n c1e m5z o6j m0f
6 p2s x4c a2x p4f w7y b8k e6c q9g q5v s4z
7 b8k r4s r2p z5x v3e s0h h5l z6y e9o g6m
8 r5x m4r a1w f8c f5g l2z q7j r4m w0c x9a
9 p7s r3g i7c p8a t5x c4h h0k k9d i7k r9n
10 w4l v0a p9g i0l v2n b8h v9j s0y r3k v0m
Serial: 2497a62a83ad4bc4
נוצר: יום שני 14 אוגוסט 10:25:03 2006 PDT
תא מזוהה על ידי תווית העמודה שלו (אות) ואחריה תווית השורה שלו (מספר);
לדוגמה, בדוגמה לעיל, לתא F6 יש את הערך b8k.
לכל רשת מוקצית מחרוזת זיהוי אקראית (וכנראה ייחודית) (מסומנת
"סידורי" בדוגמה לעיל); מחרוזת זו מאוחסנת בשרת עם רשת אחרת
נתוני חשבון. ניתן להציג אותם על ידי רשות שיפוט בעת הכניסה כדרך
אימות עצמי בפני משתמש, בתנאי שהוא נשמר בסודיות (גישה אחת עשויה להיות
עבור כל אחד מהצדדים לספק מחצית שונה של מחרוזת הזיהוי ל-
אַחֵר).
בזמן האימות, מוצג בפני המשתמש אתגר שנוצר באופן אקראי,
מתאים לרשת של המשתמש. האתגר מוצג למשתמש; לדוגמה, "A3, C9,
B1, F9". המספר הסידורי של הרשת, או חלק ממנו, עשוי גם הוא להיות מוצג. המשתמש
חייב להתייעץ עם הרשת שלו כדי לאתר כל אחד מהתאים עבור האתגר הנתון ולהזין את השמות שלהם.
תוכן כסיסמה. אותיות אינן תלויות רישיות, ריקים, טאבים ופסיקים
התעלם. עבור הרשת והאתגר שלמעלה, על המשתמש להזין את התווים הבאים
בתור הסיסמה:
v8ni7cp7mc4h
שים לב שאתגר עשוי לבקש את אותו תא יותר מפעם אחת.
אתגר תקף למשך זמן מוגדר, ולאחריו לא ניתן עוד לעמוד בו.
משמש לאימות; ראה AUTH_GRID_CHALLENGE_SECS[4].
כדי לשפוט כמה זמן צריך להימשך אתגר, יש להניח שנבחרו סיסמאות שנבחרו על ידי המשתמש
באופן אקראי ואחיד מתוך כ-100 תווים הזמינים במקלדת. זהו
הנחה נדיבה מאוד שרק לעתים רחוקות מתממשת בפועל. אתגר רשת של ארבע
תאים חזקים בהרבה מסיסמה בת שישה תווים שנבחרה על ידי המשתמש (69604 לעומת 1006)
ואתגר רשת של חמישה תאים חזק בהרבה מסיסמה של תשעה שנבחרה על ידי המשתמש
תווים (69605 לעומת 1009). בהשוואה לסיסמאות משתמש טיפוסיות, לעומת זאת, רשת
אתגר של שלושה תאים הוא כנראה חזק כמו סיסמה שנבחרה על ידי המשתמש של שבעה או יותר
שמונה תווים.
הגישה לרשתות מתבצעת דרך DACS מאגר קבצים וירטואלי המשתמש בסוג פריט auth_grid. זהו
ההנחה היא שהרשאות הקבצים במסד הנתונים של הרשתות הן כאלה שכל הגישה מוגבלת
למנהל ול local_grid_authenticate.
לאחר תקופת זמן הניתנת להגדרה, רשת פגה תוקפה ולא תתקבל עבור
מטרות אימות על ידי local_grid_authenticate (ראה AUTH_GRID_LIFETIME_SECS[5]) או
דקסגריד (ראה -לכל החייםתקופת התוקף של רשת עשויה להתבסס על מספר גורמים,
כגון באיזו תדירות הוא משמש בתחום שיפוט מסוים, מספר התאים ברשת, ה
רמת האבטחה הנדרשת, או כמה קשה או יקר לפזר רשת ל
המשתמש שלו.
בזמן יצירת רשת, דקסגריד יכול לשייך אליו קוד סודי שנבחר באופן אקראי. א
קוד סודי, המשמש כסיסמה משנית, מורכב מרצף של אות-ספרה-אות
תאים. ניתן לעקוף את אורך ברירת המחדל של קוד ה-PIN של שני תאים (6 תווים) בפקודה
קו. אם למשתמש סופק קוד סודי, יש להזין אותו בתחילת
תגובת המשתמש לאתגר, מיד לפני תוכן התא הראשון של
נכנסים לאתגר.
אבטחה
כאשר משתמשים בה נכון, שיטת אימות זו יכולה להיות מאובטחת יחסית.
האתגר הוא שחיוני שרשתות וקודי סודיות יופצו למשתמשים באמצעות
שיטה מאובטחת מספיק; לדוגמה, על ידי הדפסתם ושליחת עותק פיזי ישירות בדואר אל
המשתמש, או באמצעות ערוצים מאובטחים קיימים. כל משתמש חייב להבין שרשת
היא למעשה רשימה של סיסמאות, ולפיכך יש לשמור אותה בסוד במהלך
תקופת תוקף. כאשר משתמשים בקודים סודיים, יש להפיץ אותם באמצעות ערוץ מאובטח
שונה מזו המשמשת לחלוקת רשתות. כיצד חלוקה זו מתבצעת נותר
אל ה DACS מנהל מערכת.
מידע מוצפן לפני שהוא נכתב לקובץ חשבון הרשת. כברירת מחדל,
סוג פריט מאגר הקבצים הווירטואלי auth_grid_keys מזהה את מפתחות ההצפנה שיש להשתמש בהם;
מה היא -דיו ו מפתחות יציאה דגלים מציינים חלופות (ראה דאקסקי(1)[6]). קובץ
יש להגדיר את ההרשאות כך שמפתחות ההצפנה יהיו קריאים רק על ידי דקסגריד. אם
מפתחות ההצפנה אבדו, רשומות החשבון כמעט בלתי ניתנות לשחזור.
רק ה DACS מנהל המערכת אמור להיות מסוגל להפעיל בהצלחה את התוכנית הזו מתוך
שורת הפקודה. מכיוון DACS מפתחות וקבצי תצורה, כולל הקובץ המשמש ל
חשבונות חנות, חייבים להיות מוגבלים למנהל המערכת, זה בדרך כלל יהיה ה-
במקרה כזה, אך מנהל זהיר יגדיר הרשאות קבצים כדי למנוע גישה לכולם
משתמשים אחרים.
לשיטת אימות זו יש את היתרונות הבאים:
· בכל פעם שמשתמש מבצע אימות, תתבקש סיסמה שונה (עם סיסמה גבוהה)
הִסתַבְּרוּת)
· הסיסמה הנדרשת אינה ידועה לפני האימות, כך שמשתמש אינו יכול
לספר למישהו אחר מה הסיסמה שלו מעבר לשיתוף כל הרשת (וה-
קוד סודי, אם קיים)
· מכיוון שהסיסמה לא צפויה להיות מילה או ביטוי שקל לנחש, יש לנחש אותה
חזק יותר מסיסמה שנבחרה על ידי המשתמש
· אם מותקן תוכנת גילוי מפתחות במחשב המשתמש, סיסמה גילוי סיסמה אינה
לעשות תועלת לתוקף, מכיוון שסביר מאוד שלא נעשה בו שימוש חוזר. אם ה-
אתגר מקביל יכול להתקבל גם על ידי תוקף, כגון באמצעות
מתקפת פישינג, חלק מהרשת ייחשף
· אורך האתגר (שקובע את אורך הסיסמה) הוא
ניתן להגדרה על ידי מנהל המערכת וניתן לשנותו כרצונו
· מנהל מערכת יכול לשנות בקלות את הרשת של המשתמש בתדירות האפשרית
· השיטה זולה יותר מסיסמאות חד-פעמיות מבוססות חומרה, בתנאי שהפצה
העלויות נמוכות
לשיטת אימות זו יש את החסרונות הפוטנציאליים הבאים:
· שיטת האימות היא אינטראקטיבית מטבעה בכך שהסיסמה אינה ידועה
a אפריורי, למרות שזה לא מבטיח שהמשתמש נוכח פיזית
· יש צורך בערוצים מאובטחים כדי להפיץ רשתות וקודי PIN
· ניתן להעתיק בקלות רשת אימות ולכן מומלץ להשתמש בה בשילוב עם
מספרי סודיים או לפחות שיטת אימות אחת אחרת; האתגר של שמירת רשתות
סוד בכל המצבים הוא הסיבה העיקרית לכך שהשיטה אינה חזקה כמו
שיטות מבוססות אסימוני חומרה, שקשה יותר להעתיק אותן וניתן להגן עליהן באמצעותן
קוד סודי. השיטה מיושמת בצורה הטובה ביותר במצבים בהם רשת לא צפויה להיות
גנוב, מועתק בקלות, או אפילו מזוהה, למשל לצורך גישה מרחוק.
שיטת אימות זו נמצאת איפשהו בין טופס "משהו שאתה יודע" לבין
טופס "משהו שיש לך". ייתכן שאפשר יהיה לשנן טבלה קטנה יותר, להכניס אותה ל...
הקטגוריה הראשונה, אך מעטים מסוגלים לשנן רשת גדולה, מה שהופך אותה
הכרחי שיהיה עותק ברשותו. שימוש בקוד סודי מספק משהו קרוב יותר ל
אימות דו-שלבי ומחזק את השיטה מכיוון שרשת שנלכדה אינה מתבצעת ישירות
שָׁמִישׁ.
הערות
ניתן להקצות רשתות בגדלים שונים למשתמשים שונים. כדי למנוע
יצירת אתגר שאי אפשר לעמוד בו, כאשר האתגר הוא
התבקש או שהרשת המתאימה חייבת להיות בגודל ברירת מחדל, מידות של
יש לציין את הרשת, או את שם המשתמש.
אפשרויות
בנוסף לתקן dacsoptions[1], דגלי שורת הפקודה הבאים הם
מוּכָּר:
-אתגר
שלח אתגר אקראי. אם שם משתמש צוין, אתגר המתאים לגודל יהיה
יופק; אחרת, אם צוינו מידות הרשת, אתגר מתאים
יופק; אחרת, מידות הרשת המוגדרות כברירת מחדל ישמשו בעת יצירת
אתגר.
-קלן NUM
הגדר את אורך האתגר ל NUM תאים. האורך המינימלי הוא 3 תאים וברירת המחדל
האורך הוא 4 תאים.
-עותק vfs_uri
העתק את רשתות הקלט לרשתות שצוינו על ידי vfs_uri, מחיקת כל דבר קיים
תוכן.
-בדצמבר אסימון
פענח אסימון אתגר שנוצר על ידי -enc אפשרות והדפיס אותה.
-לִמְחוֹק
מחיקת החשבון עבור שם משתמש.
-השבתה
השבתת כניסות עבור שם משתמש. מרמז -מַעֲרֶכֶת.
-לְאַפשֵׁר
הפעלת כניסות עבור שם משתמש. מרמז -מַעֲרֶכֶת.
-enc לאתגר
הצפנת אתגר (בדרך כלל, נוצר על ידי ה- -אתגר אפשרות) והדפיס אותו. ה-
סוג הפריט federation_keys משמש למטרה זו, מה שאומר שכל סמכות שיפוט
בפדרציה יכולים לפענח את האתגר.
-לא בתוקף
פרט רק רשתות שפג תוקפן, יחסית למשך החיים של הרשת בתוקף. מרמז. -רשימה.
-שָׁטוּחַ
הדפס רשת בצורה תמציתית של ייצוג טקסטואלי המורכבת משלושה
שדות מופרדים בפסיקים: המספר הסידורי, דגל מופעל/מושבת (שלא אפס פירושו
מופעל), הרשת (כרצף מסודר של שורות מופרדות ברווחים), קוד סודי (או אפס אם
(אין קוד סודי), ותאריך היצירה (כמספר השניות מאז התקופה).
-לקבל
אחזר את הרשת עבור שם משתמש ולהפוך אותו לרשת "הנוכחית" למטרות תצוגה.
-רֶשֶׁת str
לעשות str, רשת בייצוג השטוח, הרשת ה"נוכחית" לתצוגה
מטרות או ה -מַעֲרֶכֶת דגל.
-h
עזרה
הצג הודעת עזרה וצא.
-html
פליט רשת כקטע של מסמך HTML.
-htmlcss
פליט רשת כקטע של מסמך HTML עם קצת CSS.
-דיו סוג_פריט
לפענוח פרטי חשבון, השתמשו בחנות המזוהה על ידי סוג_פריט.
-לכל החיים ימי חמישי
קחו בחשבון את אורך החיים של רשתות כ ימי חמישי ימים. לרשתות אין אורך חיים קבוע;
רק תאריך היצירה שלהם נרשם. אורך החיים המוגדר כברירת מחדל הוא 7 ימים.
-רשימה
רשימה שם משתמש, אם ניתן, אחרת כל שמות המשתמש.
-ארוך
הפקת פלט רישום מפורט יותר. מרמז -רשימה.
-נקולות NUM
הגדר את מספר עמודות הרשת ל NUM, שהוא בין 3 ל-26. זה משמש כאשר
יצירת רשתות ואתגרים.
-נורות NUM
הגדר את מספר שורות הרשת ל NUM, שהוא בין 3 ל-99. זה משמש כאשר
יצירת רשתות ואתגרים.
מפתחות יציאה סוג_פריט
להצפנת פרטי חשבון, השתמש בחנות המזוהה על ידי סוג_פריט.
פינים[NUM]
אם לא צוינה פעולה אחרת, הדפס את קוד ה-PIN, אם קיים, עבור שם משתמש. עם ה -מַעֲרֶכֶת
דגל, צור קוד סודי חדש עבור שם משתמשאם מוסיפים מספר שלם שאינו שלילי ל-
דגל (למשל, -pin0, -pin4), אורך ה-PIN (ביחידות תא) מוגדר למספר זה עם
בנוגע ליצירת קוד סודי. אורך קוד סודי ברירת המחדל הוא 2 תאים. הגדרת אורך קוד סודי
לאפס מכבה את יצירת ה-PIN.
-רעש
אם שם משתמש ניתן, צור רשת חדשה עבור משתמש זה. אם לא שם משתמש נתון,
צור רשת חדשה עבור כל משתמש שכבר יש לו רשת. כל רשת קיימת
הופך באופן מיידי ללא תקף. לכל הרשתות הללו יהיו אותם ממדים. אם ה-
-רֶשֶׁת אם דגל מסומן, הוא מתעלם. כברירת מחדל, כל קוד סודי קיים נשמר. הקודם
הסטטוס המופעל/המושבת של הרשת נשמר. אם ה- פינים אם יינתן דגל, קוד סודי חדש יוצג
ייווצר; אם -pin0 ניתן, אולם, לרשתות חדשות לא יהיה קוד סודי.
-רנד
שמור לשימוש עתידי.
-זֶרַע str
שמור לשימוש עתידי.
-סידורי
הדפס את המספר הסידורי של הרשת הנוכחית.
-מַעֲרֶכֶת
הגדר או החלף את הרשת עבור שם משתמש.
-גודל
הצג את ממדי הרשת במונחים של דגלי שורת הפקודה -נקולות ו -נורות.
מרמז -רשימה.
-מבחן
פליט רשת ואתגר, קבל הנחיה מתגובה ואמת את התגובה.
-טֶקסט
פליט רשת מודפסת יפה.
-לְאַמֵת לאתגר תגובה
אמת תגובה נגד לאתגר.
-vfs vfs_uri
במקום להשתמש בסוג הפריט auth_grid כדי לציין על אילו רשתות לפעול, השתמשו ב- vfs_uri
(ראה VFS[7] הוראת תצורה).
פעולת ברירת המחדל היא להציג את הרשת הנוכחית. מלבד הודעות שגיאה, שהן
מודפס לפי שגיאת התקן, כל הפלט עובר לפלט הסטנדרטי.
בדרך כלל, א dacsoption יצוין לבחור את תחום השיפוט מטעמו
רשתות נוצרות.
דוגמאות
דוגמאות אלה מניחות ששם השיפוט שיש להשתמש בו הוא EXAMPLE והדומיין שלו הוא
example.com.
כדי להשתמש בשיטת אימות זו, א DACS מנהל המערכת יבצע את השלבים הבאים:
לאחר סקירת אופן פעולת השיטה, יש להחליט כיצד רשתות יותקנו בצורה מאובטחת
מופץ למשתמשים, בחר את פרמטרי הרשת, החליט האם ייעשה שימוש בקוד PIN ו
כיצד הם יופצו בצורה מאובטחת, וקביעת לוח זמנים לרענון הרשתות
(ואולי מספרי סודיים).
· החליטו היכן יאוחסנו הרשתות והוסיפו הוראת VFS מתאימה לקובץ dacs.conf.
לדוגמה:
VFS "[auth_grid]dacs-kwv-fs:${Conf::FEDERATIONS_ROOT}/\"
${Conf::FEDERATION_DOMAIN}/${Conf::JURISDICTION_NAME}/grids"
· צור מפתחות, החליט היכן הם יאוחסנו והוסף הנחיית VFS מתאימה אליהם
dacs.conf, לדוגמה (זיהוי המשתמש, זיהוי הקבוצה והנתיב שלך עשויים להשתנות):
% cd /usr/local/dacs/federations_root/example.com/EXAMPLE
% dacskey -uj דוגמה -q auth_grid_keys
% chgrp www auth_grid_keys
% chmod 0640 auth_grid_keys
VFS "[auth_grid_keys]dacs-fs:${Conf::FEDERATIONS_ROOT}/\
${Conf::FEDERATION_DOMAIN}/${Conf::JURISDICTION_NAME}/auth_grid_keys"
· הגדר פסוקית Auth מתאימה ב- dacs.conf, לדוגמה:
כתובת URL "https://example.com/cgi-bin/dacs/local_grid_authenticate"
סגנון "עבר"
שליטה "מספיקה"
· עבור כל משתמש שיוכל לבצע אימות באמצעות שיטה זו: א) צור
רשת במידות הנדרשות, עם או בלי קוד סודי (לפי הצורך); ב) להשיג את
רשת בפורמט המתאים ביותר ומסירה לבעליה; ו-ג) אם יש קוד סודי,
להשיג את קוד ה-PIN ולמסור אותו לבעליו.
· רענן את הרשת (ואופציונלי, את קוד ה-PIN) כמתוכנן ותן למשתמש את
רשת חלופית.
כדי ליצור ולהציג רשת (אך לא ליצור חשבון):
% dacsgrid -uj דוגמה
כדי ליצור רשת של ממדים ברירת מחדל ולהקצות אותה לשם המשתמש bobo (החלפת כל
רשת קיימת עבור אותו משתמש):
% dacsgrid -uj דוגמה -set bobo
כדי ליצור רשת 6x6 ולהקצות אותה לשם המשתמש bobo (תחליף כל רשת קיימת):
% dacsgrid -uj דוגמה -nrows 6 -ncols 6 -set bobo
כדי לאחזר ולהדפיס רשת (כ-HTML) עבור שם המשתמש bobo:
% dacsgrid -uj דוגמה -get -html בובו
כדי להציג את קוד ה-PIN עבור שם המשתמש בובו:
% dacsgrid -uj דוגמה -pin בובו
סטטוס היציאה יהיה שונה מאפס אם למשתמש זה אין רשת או אם לרשת אין
יש קוד סודי.
כדי להעתיק את קבוצת הרשתות הנוכחית לקובץ /secure/grids:
% dacsgrid -uj דוגמה -copy "dacs-kwv-fs:/secure/grids"
כדי לרענן קבוצה חלופית של רשתות בקובץ /secure/grids:
% dacsgrid -uj דוגמה -copy "dacs-kwv-fs:/secure/grids"
% dacsgrid -uj דוגמה -vfs "dacs-kwv-fs:/secure/grids" -refresh
דוגמה לסקריפט מעטפת שיוצר דף כניסה מינימלי בפורמט HTML לאימות רשת
כלול בהתפלגות. היא מניחה שכל הרשתות הן בגודל ברירת המחדל.
אם למשתמשים שונים עשויות להיות רשתות בגדלים שונים, או אם תחום שיפוט רוצה
להציג את המספר הסידורי של הרשת של המשתמש כצורה של אימות שיפוטי, ואז ה-
תהליך ההתחברות חייב לקבוע את שם המשתמש לפני שהוא יכול לקבל אתגר או סידורי
מספר.
השתמש ב-dacsgrid באופן מקוון באמצעות שירותי onworks.net