כיצד להציג & אימות חתימות קוד עבור אפליקציות ב-Mac OS X
תוכן עניינים:
יישומים חתומים בקוד מאפשרים למשתמשים מודעים לאבטחה לאמת את היוצר וה-hash של אפליקציה מסוימת כדי לעזור לאשר שהיא לא הושחתה או התעסקה בה. זה נחוץ רק לעתים רחוקות עבור משתמשי Mac ממוצעים, במיוחד אלה שמשיגים את התוכנה שלהם מ-Mac App Store או ממקורות מהימנים אחרים מכיוון שהאפליקציות מאושרות, אך אימות החתימה הדיגיטלית של אפליקציה יכול להיות מועיל ביותר עבור משתמשים שמקבלים אפליקציות מצד שלישי מקורות.
אימות חתימת קוד חשוב במיוחד עבור אלה שמקבלים תוכנות ומתקנים מ-p2p וממקורות מבוזרים, אולי מאתר טורנט או קבוצות דיון, IRC, ftp ציבורי או משאב רשת אחר. לדוגמא מעשית, נניח שמשתמש לא יכול לגשת ל-Mac App Store מכל סיבה שהיא, אלא צריך להוריד יישום התקנה של Mac OS X ובכך מסתמך על מקור של צד שלישי. מצב כזה הוא כשיהיה חשוב לדעת ולוודא שלא התעסקו במתקין והוא מגיע באופן לגיטימי מאפל, ומלבד בדיקה ישירה של sha1 hash, הדרך הקלה ביותר לעשות זאת היא לבדוק את חתימת הקוד והקריפטוגרפיה hash של האפליקציה המדוברת.
כיצד לבדוק חתימת קוד עבור אפליקציות ב-Mac
כדי להתחיל, הפעל את Terminal, שנמצא ב- /Applications/Utilities/. אנו נשתמש בפקודה המתאימה בשם 'codesign', הכוללת את הדגלים -dv ו-verbose=4 כדי להציג מידע מזהה על כל יישום, כולל סוג ה-hash, בדיקת ה-hash וסמכות החתימה שלו.
התחביר הבסיסי הוא כדלקמן:
codesign -dv --verbose=4 /Path/To/Application.app
לדוגמה, בוא נבדוק את החתימה ב-Terminal.app, שנמצאת ב-/Applications/Utilities/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=חבילה עם Mach-O דק (x86_64) CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=Embedded Platform ID=1 Hash type=sha1 size=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 גודל חתימה=4105 Authority=רשות חתימת תוכנה=רשות חתימת תוכנה=רשות האישורים של Apple Code Signing Authority=Apple Root CA Info.plist entries=34 דרישות TeamIdentifier 8 משאבים=34 TeamIdentifier גודל 9 משאבים=34 TeamIdentifier 3
מה שאתה מחפש הם ערכי ה-hash, ה-hash והסמכות. במקרה זה סוג ה-hash הוא sha1 והסמכות החתומה היא Apple, וזה מה שאתה מצפה.
כן, אתה יכול גם להשתמש בשורת הפקודה רק כדי לבדוק hashes sha1 או md5 של מתקינים והורדות של יישומים ולהשוות אותם למקור לגיטימי, אבל זה לא יחשוף את חתימת הקוד ואת פרטי האישור.
זכור שרוב התוכנות החתומות על קוד ששונו על ידי גורם לא מורשה יידחה על ידי Gatekeeper ב-Mac OS X, אלא אם Gatekeeper הושבת או עוקף בדרך אחרת, אבל אפילו עם Gatekeeper נשאר על זה. באופן תיאורטי אפשרי עבור גאון יוזם למצוא דרך לעקוף את זה, וכמובן שתוכנה שלא אושרה על ידי מפתח מזוהה תמיד יכולה להיות מושקת סביב Gatekeeper בכל מקרה.
תוכל על חתימת קוד בוויקיפדיה ובמדריך Apple Developer לחתימת קוד כאן.
האם אי פעם בדקתם אם אפליקציות חתומות? זו יכולה להיות דרך חוקית לקבוע מהם כמה תהליכים ואפליקציות, וגם יכולה להיות מועילה לפתרון בעיות. נסה את זה בפעם הבאה שאתה תוהה מהו משהו ואם הוא חתום או לא!