בפרוטוקול זה, משתמשים נדרשים לעבור אימות. הם יכולים לעשות זאת עם סיסמאות, קבצים המכילים מפתחות RSA פרטיים, התקני חומרה כגון Ledger Nano S ו- Ledger Nano X וכו'.
אמצעי אימות מסוימים מאובטחים יותר מאחרים: שימוש בהתקן חומרה שנועד לאחסן מפתח פרטי מבלי לאפשר אי-פעם לחלץ אותו מאובטח יותר מאשר אחסון המפתח הפרטי בקובץ. לרוע המזל, המאובטחים ביותר גם כואבים יותר לשימוש. משתמשים שהמפתחות שלהם במכשיר צריכים לשאת את המכשיר איתם, צריכים להקליד את קוד ה-PIN שלהם בכל פעם שהם מתחילים הפעלת SSH וכו'. זה די מקשה על דרכים בטוחות יותר מאשר סיסמאות וקבצים למקרי שימוש שבהם אבטחת הגישה אינה בראש סדר העדיפויות.
אז השאלה היא: האם ניתן לאחסן את חומר האימות בצורה מאובטחת יותר מאשר בקובץ (שיכול להיגנב על ידי תוכנה זדונית כלשהי), מבלי לשנות את חווית המשתמש?
והתשובה היא: כן, באמצעות TPM!
קצת היסטוריה
במשך די הרבה זמן, מחשבים הצליחו להטמיע ישירות שבב אבטחה. שבב זה, הנקרא Trusted Platform Module (TPM), מספק תכונות רבות כולל היכולת להגן על מפתחות פרטיים המשמשים בהצפנה של מפתח ציבורי.
מכיוון שהוא מוטבע במחשבים, אין צורך לחבר מכשיר למחשב כדי להשתמש בו. לכן זה נחשב פחות בטוח מהתקן חומרה שניתן לאחסן במקום אחר מהמחשב (הדבר מאפשר לאכוף את העיקרון שבעוד שהמכשיר אינו מחובר למחשב, אף תוכנה זדונית לא יכולה להשתמש בסודות המאוחסנים בו).
אז TPM היא לא "האבטחה הטובה ביותר", אבל היא עדיין הרבה יותר מאובטחת משימוש בקבצים כגון $HOME/.ssh/id_rsa
לאחסון מפתחות פרטיים.
כיצד ניתן להשתמש ב-TPM עם OpenSSH ב-Linux? עם פרויקט בשם tpm2-pkcs11
, בעקבות הוראות הזמינות באתרים רבים במשך שנים רבות, כולל ב- תיעוד רשמי ממאגר הקוד שלו.
עכשיו, מה החדשות? תוכנה זו ארוזה כעת סוף סוף באובונטו ובדביאן, מה שהופך אותה סוף סוף לזמינה לרוב משתמשי לינוקס!
ליתר דיוק הנה ציר זמן:
- בשנת 2014 פורסמו המפרטים העיקריים של TPM 2.0. כדי ליצור אינטראקציה עם TPM מהתוכנה, היה מאמץ סטנדרטיזציה, ונוצרו שתי ערימות תוכנה לא תואמות: זו של Trusted Computing Group (TCG), שנקראת מחסנית תוכנת TPM (TSS), וזה של IBM, נקרא גם ערימת תוכנת TPM.
- בשנת 2018, הפרויקט
tpm2-pkcs11
נוצר כדי לספק ממשק PKCS#11 ל-TPM 2.0, תוך שימוש ב-TSS של TCG. PKCS מספר 11 הוא תקן המגדיר ממשק תכנות יישומים (API) בשם קריפטוקי להשתמש באסימונים המאחסנים מפתחות קריפטוגרפיים. מכיוון ש-OpenSSH נתמך בשימוש בממשק PKCS#11 לביצוע אימות משתמש, הדבר אפשר את השימוש ב-TPM לאחסון המפתחות המשמשים לאימות SSH. - בחודש פברואר 2019,
tpm2-pkcs11
התווסף ל פדורה 29. - בספטמבר 2019, CentOS 8 שוחרר עם חבילה זו.
- באפריל 2020,
tpm2-pkcs11
התווסף ל דביאן סיד. למרבה הצער הוא לא הכיל את התוכניתtpm2_ptool
הכרחי כדי ליצור מפתחות בקלות. בעיה זו דווחה ב באג דביאן מס' 968310. - בינואר 2021, החבילה של דביאן הייתה קבוע (והמתחזק הודה בעזרתי!).
- באפריל 2021, אובונטו 21.04 היפופוטם הרוד שוחרר עם החבילה הקבועה.
- באוגוסט 2021, דביאן 11 Bullseye שוחרר עם החבילה הקבועה
עַכשָׁיו tpm2-pkcs11
זמין בדביאן, אובונטו ומספר הפצות לינוקס אחרות המופיעות ברשימה רפוולוגיה.
שימוש ב-tpm2-pkcs11
ב-Debian 11, להלן השלבים ליצור ולהשתמש במפתח SSH חדש המאוחסן בצורה מאובטחת על ידי ה-TPM:
- התקן פקודה
tpm2_ptool
וספרייהlibtpm2_pkcs11.so.1
, אשר מסופקות על ידי שתי חבילות:
2. בדוק שהמערכת יכולה להשתמש ב-TPM 2.0. אם אחת מהבדיקות הבאות נכשלת, זה יכול להיות שלמערכת אין TPM, או שיש לה TPM 1.2, או שיש לה TPM 2.0 המושבת בהגדרות ה-BIOS:
3. הוסף את המשתמש הנוכחי לקבוצה שיכולה לגשת למכשיר ה-TPM /dev/tpmrm0
. בדביאן ובאובונטו, המשתמשים צריכים להשתייך לקבוצה בשם tss
(הודות לתצורה שסופקה על ידי tpm-udev
חבילה). הפקודה הבאה מוסיפה את המשתמש הנוכחי לקבוצה זו:
אתחול חנות משתמשים, מוגן באמצעות סיסמה וא סופן וצור מפתח, למשל מפתח עקום אליפטי בעקומה בשם "NIST P-256" (ידוע גם בשם "secp256r1"):
4. ראשי התיבות סופן אומר מספר זיהוי אישי של קצין ביטחון והוא מושג מהמפרט של PKCS#11. במקרים פשוטים של שימוש, היא עשויה להיראות כ"סיסמת שחזור" המאפשרת לשנות את הסיסמה כאשר היא למשל אבדה.
5. הצג את המפתח הציבורי של המפתח החדש הזה:
6. הגדר את המפתח הציבורי החדש בשרת, למשל על ידי כתיבתו $HOME/.ssh/authorized_keys
או בהגדרות החשבון של GitHub או בכל מקום אחר שבו נעשה שימוש במפתחות SSH ציבוריים.
7. הגדר את לקוח ה-SSH לשימוש tpm2-pkcs11
להתחבר לשרת, למשל על ידי כתיבת זה $HOME/.ssh/config
(צד הלקוח):
התחבר לשרת (שים לב שניתן לדלג על השלב הקודם:
עבודה עתידית
הסעיף הקודם הציג כיצד ליצור מפתח חדש ב-TPM. אמנם זה מאפשר שימוש ב-TPM כדי להגן על אימות SSH, אך ישנן שתי תכונות הדרושות כדי להפוך זאת לחלופה אמיתית לשימוש בקבצים לאחסון מפתחות פרטיים:
- תכונה מס' 1: ייבוא מפתחות SSH קיימים ל-TPM במקום יצירת חדשים (מה שמאפשר מעבר חלק לאחסון TPM, גיבוי המפתחות, למקרה שהמחשב נשבר או אובד וכו').
- תכונה מס' 2: שימוש במפתחות SSH ללא סיסמה, כמו קבצי מפתח פרטי לא מוגנים (תכונה זו מאובטחת יותר מקבצי מפתח מכיוון שלא ניתן לחלץ את המפתח המוגן מה-TPM).
יישמתי את שתי התכונות ב tpm2-pkcs11
והגיש אותם ב-Pull Requests #681 ו #695. תכונה מס' 1 הוצגה גם במאי במהלך השיחה המקוונת השבועית של קהילת tpm.dev וההקלטה זמינה ב https://developers.tpm.dev/posts/14389750.
כך ששתי התכונות צפויות להיות זמינות במהדורה עתידית של tpm2-pkcs11
.
אגב, לקוראים סקרנים שרוצים להבין את הפנימיות של tpm2-pkcs11
, פרסמתי מאמר עליהם בכנס SSTIC 2021, בשם הגנה על אימות SSH עם TPM 2.0 (מאמר באנגלית, מצגת בצרפתית). יתרה מכך, קוראים שרוצים לנסות דברים מבלי לגעת ב-TPM אמיתי יכולים להתעניין בסעיף "אימולציה של TPM 2.0" במאמר זה.
(אִיוּר: ריינר קנפר, רישיון אמנות חינם)
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoAiStream. Web3 Data Intelligence. הידע מוגבר. גישה כאן.
- הטבעת העתיד עם אדריאן אשלי. גישה כאן.
- קנה ומכירה של מניות בחברות PRE-IPO עם PREIPO®. גישה כאן.
- מקור: https://www.ledger.com/blog/ssh-with-tpm
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- 1
- 11
- 13
- 14
- 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- יכולת
- יכול
- אודות
- גישה
- חֶשְׁבּוֹן
- הודה
- להוסיף
- הוסיף
- מוסיף
- עו"ד
- גם
- חלופה
- an
- ו
- לענות
- כל
- API
- בקשה
- אַפּרִיל
- ARE
- אמנות
- מאמר
- AS
- At
- אוגוסט
- מאומת
- אימות
- זמין
- גיבוי
- BE
- להיות
- היה
- שניהם
- שבור
- חרק
- אבל
- by
- שיחה
- CAN
- לא יכול
- לשאת
- מקרה
- מקרים
- CGI
- משתנה
- לבדוק
- בדיקות
- שבב
- לקוחות
- קוד
- המחשב
- מחשבים
- מחשוב
- מושג
- כנס
- תְצוּרָה
- לְחַבֵּר
- מחובר
- נחשב
- יכול
- לִיצוֹר
- נוצר
- יוצרים
- קריפטוגרפי
- קריפטוגרפיה
- סקרן
- נוֹכְחִי
- זונה
- מגדיר
- מעוצב
- dev
- מכשיר
- התקנים
- DID
- אחר
- קשה
- ישירות
- נכה
- לְהַצִיג
- הפצות
- do
- תיעוד
- עושה
- בְּמַהֲלָך
- בקלות
- מאמץ
- אליפטי
- שבץ
- מוטבע
- מופעל
- מאפשר
- אכיפה
- אנגלית
- וכו '
- אי פעם
- כל
- דוגמה
- קיימים
- ניסיון
- תמצית
- נכשל
- מאפיין
- תכונות
- פבואר
- שלח
- קבצים
- בסופו של דבר
- קבוע
- הבא
- בעד
- חופשי
- צרפתית
- החל מ-
- עתיד
- ליצור
- GitHub
- קְבוּצָה
- חומרה
- מכשיר חומרה
- התקני חומרה
- יש
- כאן
- איך
- איך
- HTML
- http
- HTTPS
- i
- יבמ
- הזדהות
- if
- יושם
- יבוא
- in
- כולל
- שאינו עולה בקנה אחד
- ליזום
- במקום
- הוראות
- אינטראקציה
- מעוניין
- מִמְשָׁק
- אל תוך
- סוגיה
- IT
- שֶׁלָה
- יָנוּאָר
- ינואר 2021
- jpg
- מפתח
- מפתחות
- ידוע
- פנקס
- לדנו ננו
- Ledger Nano S
- Ledger ננו X
- פחות
- כמו
- סביר
- לינוקס
- ברשימה
- מיקום
- אבוד
- ראשי
- לעשות
- עושה
- עשייה
- תוכנות זדוניות
- רב
- חוֹמֶר
- max-width
- מאי..
- אומר
- אומר
- מודול
- יותר
- יתר על כן
- רוב
- הרבה
- my
- שם
- ננו
- הכרחי
- צורך
- נחוץ
- חדש
- חדשות
- לא
- עַכשָׁיו
- of
- קָצִין
- on
- ONE
- יחידות
- באינטרנט
- or
- להזמין
- אחר
- אחרים
- חבילה
- ארוז
- חבילות
- כואב
- סיסמה
- סיסמאות
- לבצע
- אישי
- מקום
- פלטפורמה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- תקע
- אפשרי
- בדיוק
- הצגה
- מוצג
- קודם
- עקרון
- עדיפות
- פְּרָטִי
- מפתח פרטי
- מפתחות פרטיים
- תכנות
- פּרוֹיֶקט
- להגן
- מוּגָן
- אבטחה
- פרוטוקול
- לספק
- ובלבד
- מספק
- ציבורי
- מפתח ציבורי
- מפתחות ציבוריים
- לאור
- שאלה
- הקוראים
- ממשי
- הקלטה
- לשחרר
- שוחרר
- דווח
- נדרש
- RSA
- s
- סעיף
- לבטח
- מאובטח
- אבטחה
- לראות
- סֶפּטֶמבֶּר
- מושב
- הגדרות
- כמה
- צד
- פָּשׁוּט
- So
- תוכנה
- כמה
- מפרט
- מפרטים
- ערימות
- תֶקֶן
- שלב
- צעדים
- עוד
- גָנוּב
- אחסון
- חנות
- מאוחסן
- הוגש
- כזה
- נתמך
- מערכת
- מֵאֲשֶׁר
- תודה
- זֶה
- אל האני
- השבועי
- שֶׁלָהֶם
- אותם
- שם.
- לכן
- הֵם
- דברים
- זֶה
- זמן
- ציר זמן
- ל
- מטבעות
- נגיעה
- מַעֲבָר
- מהימן
- לנסות
- שתיים
- סוג
- אובונטו
- להבין
- לצערי
- להשתמש
- מְשׁוּמָשׁ
- משתמש
- חוויית משתמש
- משתמשים
- באמצעות
- רוצה
- היה
- דֶרֶך..
- דרכים
- אתרים
- שבועי
- היו
- מתי
- אשר
- בזמן
- מי
- עם
- לְלֹא
- כתיבה
- X
- שנים
- כן
- זפירנט