วิธีแสดง & ตรวจสอบลายเซ็นรหัสสำหรับแอพใน Mac OS X
สารบัญ:
แอปพลิเคชันที่เซ็นชื่อด้วยรหัสช่วยให้ผู้ใช้ที่ใส่ใจในความปลอดภัยสามารถตรวจสอบผู้สร้างและแฮชของแอปนั้นๆ เพื่อช่วยยืนยันว่าแอปนั้นไม่ได้เสียหายหรือถูกดัดแปลง สิ่งนี้ไม่ค่อยจำเป็นสำหรับผู้ใช้ Mac ทั่วไป โดยเฉพาะอย่างยิ่งผู้ที่ได้รับซอฟต์แวร์จาก Mac App Store หรือแหล่งที่เชื่อถือได้อื่นๆ เนื่องจากแอปได้รับการรับรองแล้ว แต่การตรวจสอบลายเซ็นดิจิทัลของแอปจะมีประโยชน์อย่างมากสำหรับผู้ใช้ที่ได้รับแอปจากบุคคลที่สาม แหล่งที่มา
การยืนยันลายเซ็นรหัสมีความสำคัญอย่างยิ่งสำหรับผู้ที่ได้รับซอฟต์แวร์และโปรแกรมติดตั้งจาก p2p และแหล่งที่มาแบบกระจาย อาจเป็นไซต์หรือกลุ่มข่าว torrent, IRC, ftp สาธารณะ หรือทรัพยากรเครือข่ายอื่น สำหรับตัวอย่างที่ใช้งานได้จริง สมมติว่าผู้ใช้ไม่สามารถเข้าถึง Mac App Store ได้ไม่ว่าด้วยเหตุผลใดก็ตาม แต่จำเป็นต้องดาวน์โหลดแอปพลิเคชันตัวติดตั้ง Mac OS X และด้วยเหตุนี้จึงต้องอาศัยแหล่งที่มาของบุคคลที่สาม สถานการณ์ดังกล่าวคือเวลาที่จำเป็นต้องทราบและตรวจสอบว่าโปรแกรมติดตั้งไม่ได้ถูกดัดแปลงและมาจาก Apple อย่างถูกต้องตามกฎหมาย และนอกเหนือจากการตรวจสอบแฮช sha1 โดยตรงแล้ว วิธีที่ง่ายที่สุดในการดำเนินการดังกล่าวคือการตรวจสอบลายเซ็นรหัสและการเข้ารหัส แฮชของแอปที่มีปัญหา
วิธีตรวจสอบ Code Signature สำหรับแอพบน Mac
ในการเริ่มต้น ให้เปิด Terminal ซึ่งอยู่ใน /Applications/Utilities/ เราจะใช้คำสั่ง 'codesign' ที่มีชื่อเหมาะเจาะ พร้อมด้วยแฟล็ก -dv และ –verbose=4 เพื่อแสดงข้อมูลที่ระบุเกี่ยวกับแอปพลิเคชันใดๆ รวมถึงประเภทแฮช การตรวจสอบแฮช และสิทธิ์การลงนาม
ไวยากรณ์พื้นฐานมีดังนี้:
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=bundle with Mach-O thin (x86_64) CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=embedded Platform identifier=1 Hash type=sha1 size=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Signature size=4105 Authority=Software Signing Authority=Apple Code Signing Certification Authority=Apple Root CA Info.plist entries=34 TeamIdentifier=not set Sealed Resources รุ่น=2 กฎ=13 ไฟล์=996 ข้อกำหนดภายใน นับ=1 ขนาด=68
สิ่งที่คุณกำลังมองหาคือประเภทแฮช แฮช และรายการสิทธิ ในกรณีนี้ ประเภทแฮชคือ sha1 และหน่วยงานที่ลงนามคือ Apple ซึ่งเป็นสิ่งที่คุณคาดหวัง
ได้ คุณยังสามารถใช้บรรทัดคำสั่งเพื่อตรวจสอบแฮช sha1 หรือ md5 ของตัวติดตั้งแอปพลิเคชันและดาวน์โหลด และเปรียบเทียบกับแหล่งที่มาที่ถูกต้อง แต่จะไม่เปิดเผยรายละเอียดการลงนามรหัสและใบรับรอง
โปรดทราบว่าซอฟต์แวร์ Code Signed ส่วนใหญ่ซึ่งได้รับการแก้ไขโดยบุคคลที่ไม่ได้รับอนุญาตจะถูกปฏิเสธโดย Gatekeeper ใน Mac OS X เว้นแต่ Gatekeeper จะถูกปิดใช้งานหรือถูกหลีกเลี่ยง แต่ถึงแม้จะมี Gatekeeper ทิ้งไว้ก็ตาม ในทางทฤษฎีเป็นไปได้ที่คนกล้าได้กล้าเสียจะหาทางแก้ไข และแน่นอนว่าซอฟต์แวร์ที่ไม่ได้รับการรับรองจากนักพัฒนาที่ระบุก็สามารถเปิดตัวได้เสมอกับ Gatekeeper อยู่ดี
คุณสามารถเกี่ยวกับการเซ็นโค้ดบน Wikipedia และคู่มือ Apple Developer เกี่ยวกับการเซ็นโค้ดได้ที่นี่
เคยเช็คว่าลงแอพไหม? อาจเป็นวิธีที่ถูกต้องในการระบุว่ากระบวนการและแอพบางตัวคืออะไร และยังมีประโยชน์สำหรับการแก้ไขปัญหาอีกด้วย ลองดูในครั้งต่อไปที่คุณสงสัยว่ามีอะไรและมีการเซ็นชื่อหรือไม่!