หากการลงชื่อรหัส Mac ถูกแก้ไขสิ่งใดอาจล้มเหลว


11

สิ่งที่น่ารำคาญหรือปัญหาจริงอาจเกิดขึ้นเมื่อลายเซ็นดิจิทัลของแอปพลิเคชัน Mac เสียหาย

แอปพลิเคชันบน Mac สามารถเซ็นชื่อแบบดิจิทัลได้ เมื่อลายเซ็นชำรุดฉันรู้ว่าแอปพลิเคชั่นบางตัวอาจสังเกตเห็นว่า แต่ฉันไม่รู้ว่ารายละเอียดเหล่านี้จะเป็นเพียงการรบกวนหรือทำลายสิ่งต่างๆ:

  • ไฟร์วอลล์ OS X อาจไม่สามารถตั้งค่าลายเซ็นเฉพาะกิจได้อย่างถูกต้องทำให้เกิดข้อความซ้ำ ๆ "คุณต้องการให้แอปพลิเคชัน '[.. ]' ยอมรับการเชื่อมต่อเครือข่ายขาเข้าหรือไม่"

  • แอปพลิเคชันที่อนุญาตโดยการควบคุมโดยผู้ปกครองอาจไม่ทำงานอีกต่อไป?

  • การเข้าถึง Keychain อาจเสียหรือไม่

  • บางคนบอกว่าการอัปเดตซอฟต์แวร์ Apple อาจล้มเหลว ถ้าเป็นจริงแล้วผมสงสัยว่านี้แน่นอนขึ้นอยู่กับลายเซ็นลงนามรหัสหรือจะเกิดจากบางกัญชาไม่ใช่ตรงกันสำหรับแอพลิเคชันทั้งหมดหรือข้อมูลจากไฟล์ BOM

ข้อมูลพื้นฐานเพิ่มเติมด้านล่าง


สามารถแสดงรายละเอียดการเซ็นรหัสโดยใช้:

codesign --display -vv /Applications/iTunes.app/

... ซึ่งจะให้สิ่งต่อไปนี้ (แต่จะไม่เตือนเกี่ยวกับการแก้ไข):

[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]

ลายเซ็นสามารถตรวจสอบได้โดยใช้:

codesign --verify -vv /Applications/iTunes.app/

ซึ่งจะให้:

/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement

... หรือ (แม้เพียงวางไฟล์พิเศษบางรายการในโฟลเดอร์. / เนื้อหา / แอปพลิเคชันของแอปพลิเคชัน):

/Applications/iTunes.app/: a sealed resource is missing or invalid

... หรือ (อาจแย่กว่าข้อความด้านบน):

/Applications/iTunes.app/: code or signature modified

การลงนามรหัสกลับไป OS 9 หรือก่อนหน้านี้ แต่การดำเนินงานในปัจจุบันได้รับการแนะนำใน 10.5 Leopard Ars Technica เขียน :

การเซ็นชื่อรหัสจะผูกเอกลักษณ์ที่สามารถตรวจสอบได้กับการเข้ารหัสของรหัสและทำให้แน่ใจว่าตรวจพบการดัดแปลงใด ๆ กับรหัสนั้น ไม่มีการรับประกันใด ๆ เกี่ยวกับคู่กรณีที่เกี่ยวข้อง ตัวอย่างเช่นหากคุณดาวน์โหลดแอปพลิเคชันที่ลงนามโดย Acme Inc. คุณสามารถพิสูจน์ได้ว่าไม่มีสิ่งใดเกี่ยวกับมันยกเว้นว่ามาจากเอนทิตีเดียวกันที่อ้างว่าเป็น Acme Inc. ในครั้งสุดท้ายที่คุณดาวน์โหลดบางสิ่งจากเว็บไซต์ของพวกเขา

ตัวอย่างนี้เน้นการประยุกต์ใช้เทคโนโลยีที่มีประโยชน์ที่สุดจากมุมมองของผู้บริโภค เมื่ออัปเกรดแอปพลิเคชัน Mac OS X วันนี้ [ใน 10.4 Tiger, AvB] ผู้ใช้มักได้รับแจ้งให้ยืนยันอีกครั้งว่าแอปพลิเคชันนี้ได้รับอนุญาตให้เข้าถึง Keychain เพื่อเรียกชื่อผู้ใช้และรหัสผ่าน ดูเหมือนว่าจะเป็นคุณลักษณะด้านความปลอดภัยที่ดี แต่ที่จริงแล้วมันคือการฝึกให้ผู้ใช้ Mac คลิกสุ่ม ๆ "อนุญาตเสมอ" ทุกครั้งที่ปรากฏ และจริงๆแล้วผู้ใช้งานเฉลี่ยจะทำอะไรเรียกใช้โปรแกรมปฏิบัติการผ่าน disassembler และตรวจสอบด้วยตนเองว่ารหัสนั้นปลอดภัยหรือไม่

ในทางกลับกันแอปพลิเคชันที่ได้รับการรับรองสามารถพิสูจน์ได้ทางคณิตศาสตร์ว่าเป็นแอปพลิเคชั่นรุ่นเดียวกันจากผู้ผลิตรายเดียวกันที่คุณแสดงความไว้วางใจในอดีต ผลลัพธ์คือจุดสิ้นสุดของกล่องโต้ตอบที่ขอให้คุณยืนยันตัวเลือกที่มีความปลอดภัยคุณไม่มีวิธีการตรวจสอบที่สมเหตุสมผล

สำหรับไฟร์วอลล์ใน 10.5 Leopard นั้น Apple อธิบาย :

เมื่อคุณเพิ่มแอปพลิเคชันในรายการนี้ Mac OS X จะเซ็นชื่อแอปพลิเคชันแบบดิจิทัล (หากยังไม่ได้ลงชื่อ) หากแอปพลิเคชันได้รับการแก้ไขในภายหลังคุณจะได้รับแจ้งให้อนุญาตหรือปฏิเสธการเชื่อมต่อเครือข่ายที่เข้ามา แอปพลิเคชันส่วนใหญ่จะไม่แก้ไขตัวเองและนี่เป็นคุณสมบัติด้านความปลอดภัยที่แจ้งให้คุณทราบถึงการเปลี่ยนแปลง

[ .. ]

แอปพลิเคชันทั้งหมดไม่อยู่ในรายการที่ได้รับการเซ็นชื่อแบบดิจิทัลโดยผู้ออกใบรับรองที่เชื่อถือได้โดยระบบ (สำหรับจุดประสงค์ของการเซ็นชื่อรหัส) ได้รับอนุญาตให้รับการเชื่อมต่อขาเข้า แอปพลิเคชัน Apple ทุกตัวใน Leopard ได้รับการลงนามโดย Apple และได้รับอนุญาตให้รับการเชื่อมต่อเข้ามา หากคุณต้องการปฏิเสธแอปพลิเคชันที่เซ็นชื่อแบบดิจิทัลคุณควรเพิ่มแอปพลิเคชันลงในรายการก่อนแล้วจึงปฏิเสธอย่างชัดเจน

ใน 10.6 Snow Leopard ตัวหลังถูกทำให้ชัดเจนยิ่งขึ้น (และสามารถปิดใช้งานได้) เป็น "อนุญาตให้ซอฟต์แวร์ที่เซ็นชื่อรับการเชื่อมต่อขาเข้าโดยอัตโนมัติอนุญาตให้ซอฟต์แวร์ที่ลงนามโดยผู้ออกใบรับรองที่ถูกต้องเพื่อให้บริการเข้าถึงได้จากเครือข่าย"

ไฟร์วอลล์ Mac OS X 10.6: อนุญาตให้ซอฟต์แวร์ที่เซ็นชื่อรับการเชื่อมต่อขาเข้าโดยอัตโนมัติ

(ใน 10.6 ตัวเลือก 10.5.1 "อนุญาตการเชื่อมต่อขาเข้าทั้งหมด", "อนุญาตเฉพาะบริการที่จำเป็น" และ "ตั้งค่าการเข้าถึงสำหรับบริการและแอปพลิเคชันเฉพาะ" ได้รับการปรับปรุงใหม่เป็นตัวเลือกสำหรับ "บล็อกการเชื่อมต่อขาเข้าทั้งหมด" หรือรายการ "แอปพลิเคชันและตัวเลือกที่อนุญาต" อนุญาตให้ซอฟต์แวร์ที่เซ็นชื่อรับการเชื่อมต่อขาเข้าโดยอัตโนมัติ "และ" เปิดใช้งานโหมดซ่อนตัว "ก่อนการอัปเดต 10.5.1 ," อนุญาตเฉพาะบริการที่จำเป็น "เรียกว่า" บล็อกการเชื่อมต่อขาเข้าทั้งหมด ")

สำหรับแอปพลิเคชัน (Apple) ที่ลายเซ็นดั้งเดิมของตนแตกหักลายเซ็นเฉพาะกิจนี้อาจไม่ได้รับการแก้ไขและเป็นที่ทราบกันดีว่าก่อให้เกิดปัญหาในการ configd, mDNSResponder และแร็กคูน


ฉันเดาว่าคำตอบของหนวดจะบอกทุกอย่าง (และไม่ว่าฉันจะพยายามมากแค่ไหน: การทำลายลายเซ็นไม่ได้แสดงให้ฉันเห็นคำเตือนสำหรับ Keychain Access ด้วย) ถึงกระนั้นฉันสงสัยว่าใครมีปัญหา หวังเป็นคำถามที่ไม่นานเกินไปที่จะอ่าน ... ;-)
Arjan

แท็กใบรับรองที่เพิ่ม
quack quixote

นีซ: คนใหม่ลงนามใน Safari 4 เบต้า (กับแท็บด้านบน) ที่จะทำให้มันเข้ากันได้กับพวงกุญแจ: เห็นความคิดเห็นโดย "petersconsult" ที่macosxhints.com/article.php?story=20090925131057394
Arjan

คำตอบ:


1

ตัวอย่างของการลงรหัสที่จะ 'ทำลาย' แอปพลิเคชัน:

  • Keychain Access.app จะไม่อนุญาตให้คุณดูรหัสผ่านหากตรวจพบว่าได้รับการดัดแปลง

ที่มา: รายชื่อผู้รับจดหมายของ Appleและความไม่ถูกต้องของ Jaharmi


แน่นอนว่าตอนนี้คุณพูดถึงแล้วนี่เป็นแอปพลิเคชั่นที่ฉันควรใช้ในการทดสอบครั้งแรกของฉัน! :-)
Arjan

3

สิ่งที่ฉันสามารถบอกคุณได้คือ Candybar ซึ่งเป็นแอปปรับแต่งไอคอนที่ใช้โดยคนจำนวนมากแบ่งลายเซ็นดิจิทัลอย่างน้อย Finder และ Dock (และอาจเป็นแอปพลิเคชันระบบหลักอื่น ๆ ) เนื่องจากมันเปลี่ยนไฟล์ทรัพยากร ถูกรายงานว่าเป็นปัญหาเนื่องจากสิ่งนี้ ดังนั้นการสุ่มตัวอย่างในป่าโดยใช้ส่วนประกอบหลักของระบบปฏิบัติการจะบอกว่า - ไม่มาก!

แก้ไข: นี่คือผลลัพธ์ของการตรวจสอบรหัสลายเซ็นสำหรับ Dock ของฉันใน Snow Leopard:

⚛$ codesign --verify --verbose /System/Library/CoreServices/Dock.app/
/System/Library/CoreServices/Dock.app/: a sealed resource is missing or invalid
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-big.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/finder.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/frontline.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_large.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_medium.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-l.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-m.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-sm.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-xl.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashempty.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashfull.png: resource modified

อ้าฉันจะตรวจสอบสักหน่อย! ไอคอนที่เปลี่ยนแปลงด้วยตนเองบางอันไม่ได้เป็นการทำลายรหัสสำหรับแอปพลิเคชั่นอื่น ๆ ผู้ผลิตเองเขียนในปี 2008: สำหรับการเปลี่ยนไอคอนแอปพลิเคชันของคุณด้วยมือคุณยินดีมากกว่าที่จะทำเช่นนั้น! คำเตือน: หาก Apple เปิดใช้งานการลงชื่อรหัสในตัวในการอัปเดตย่อยของ Mac OS X ในอนาคตแอปพลิเคชันของคุณจะไม่เปิดตัวอีกต่อไป นี่คือสิ่งที่เรากำลังพยายามหลีกเลี่ยงอย่างปลอดภัยโดยการปิดใช้งานคุณลักษณะนั้นจนกว่าเราจะเข้าใจจากแผนการของ Apple - macupdate.com/info.php/id/8948?rord=mod
Arjan

ฉันได้เพิ่มผลหลังมือการปรับเปลี่ยนท่าเรือของฉันในเสือดาวหิมะ ...
หนวด

อ่าโง่ จนถึงตอนนี้สิ่งเดียวที่ฉันทดสอบคือไอคอนโปรแกรม (โดยการวางไอคอนใหม่ผ่าน Finder's Get Info) ไม่ใช่ไอคอนใด ๆ ที่ใช้โดยโปรแกรมเอง ตกลงการเซ็นรหัสผิดปกติ ความคิดเห็นของนักพัฒนา Candybar ยังคงน่ากลัวสำหรับฉันเล็กน้อย แต่ Apple จะทำให้ผู้คนจำนวนมากเดือดร้อนเมื่อเปลี่ยนเอฟเฟกต์ปัจจุบัน (ไม่ใช่) อย่างกะทันหัน
Arjan

ดีทดสอบคือการปรับเปลี่ยนทรัพยากรในแอปเครือข่ายหันหน้าและดูว่าจะหมดลงนามหยุดส่งผ่านโดยอัตโนมัติจากไฟร์วอลล์การประยุกต์ใช้ ...
หนวด

(อืมผู้พัฒนา CandyBar ได้ลบความคิดเห็นที่ 10 มกราคม 2008 จาก MacUpdate แคชของ Google ยังคงแสดงให้เห็น แต่เห็นได้ชัดว่ามีเวอร์ชั่นใหม่สำหรับ OS X 6.1 ดังนั้นปัญหาได้รับการแก้ไขแล้วหรือ CandyBar ต้องการปล่อยให้สุนัขนอนหลับ . สมมติว่ามีปัญหาใด ๆ แล้ว)!
Arjan

0

คำอธิบายรายละเอียดบางส่วนของรหัสการลงนามในเสือดาวหิมะมีให้ในARS ทางด้านเทคนิคทบทวนเสือดาวหิมะ เท่าที่ฉันสามารถบอกได้การทำลายรหัสจะไม่ทำลายอะไรเลย อย่างไรก็ตามจะทำให้แอปไม่น่าเชื่อถือซึ่งหมายถึงต้องยืนยันการกระทำของพวกเขามากขึ้น


จริงๆแล้วมันเป็น 10.5 Leopard review หนึ่งคำพูดที่ดีจากการตรวจสอบ 10.6: "และอย่าลืมเทคโนโลยี" Mac OS X "ที่เราเรียนรู้ในภายหลังได้รับการพัฒนาสำหรับ iPhone และเพิ่งเกิดขึ้นที่จะประกาศสำหรับ Mac ก่อน (เพราะ iPhone ยังเป็นความลับ) เช่น Core Animation และการเซ็นชื่อโค้ด " - arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars
Arjan

0

ฉันซ่อมแซมดิสก์สิทธิ์ของฉันเมื่อวันก่อน (จาก Disk Utility) และได้รับคำเตือนนี้:

Warning: SUID file "System/.../ARDAgent" has been modified and will not be repaired.

ดังนั้นจึงมีสิ่งที่จะเกิดขึ้น ฉันไม่รู้ว่ามันสำคัญขนาดไหน


ที่น่าสนใจโดยเฉพาะอย่างยิ่งแอปเปิ้ลจะแสดงรายการนี้ใน "Mac OS X 10.5: ข้อความซ่อม Disk Utility ของดิสก์สิทธิ์ที่คุณสามารถละเว้น" ที่support.apple.com/kb/TS1448ไม่มีคำแปลจากแอปเปิ้ลในวิธีการนี้ได้รับการเปลี่ยนแปลงและทำไมมัน doesn' ไม่สำคัญว่า ... codesign --verifyจริง ๆ แล้วแสดงลายเซ็นที่แตกสลายหรือไม่?
Arjan

0

การนำรหัสไปใช้ในปัจจุบันนั้นค่อนข้างไร้ฟันและอาจถูกนำไปใช้เพื่อประโยชน์ของนักพัฒนา iPhone หวังว่ามันจะมีผลบังคับใช้ในบางจุดในอนาคตและหวังว่ามันจะกลายเป็นเรื่องง่ายและราคาถูกลงในเวลานั้นเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.