Những phiền toái hoặc vấn đề thực sự có thể xảy ra khi chữ ký số của ứng dụng Mac bị hỏng?
Các ứng dụng trên máy Mac có thể được ký điện tử. Khi chữ ký bị phá vỡ bằng cách nào đó, tôi biết một vài ứng dụng có thể nhận thấy điều đó. Nhưng tôi không biết chi tiết nào đây sẽ chỉ là những phiền toái hoặc sẽ thực sự phá vỡ mọi thứ:
Tường lửa OS X có thể không thể đặt chính xác chữ ký ad hoc, khiến người ta liên tục nhắc nhở "Bạn có muốn ứng dụng '[..]' chấp nhận kết nối mạng đến không?"
Các ứng dụng được Parental Control cho phép có thể không còn chạy?
Keychain Access có thể bị hỏng?
Một số người nói rằng cập nhật phần mềm của Apple có thể thất bại. Nếu đúng, thì tôi tự hỏi liệu điều này thực sự phụ thuộc vào chữ ký Ký mã, hoặc sẽ do một số hàm băm không khớp cho toàn bộ ứng dụng hoặc thông tin từ các tệp BOM .
Thêm thông tin cơ bản dưới đây.
Chi tiết ký mã có thể được hiển thị bằng cách sử dụng:
codesign --display -vv /Applications/iTunes.app/
... sẽ mang lại kết quả như sau (nhưng sẽ không cảnh báo về sửa đổi):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
Chữ ký có thể được xác nhận bằng cách sử dụng:
codesign --verify -vv /Applications/iTunes.app/
Mà sẽ mang lại:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... hoặc (ngay cả khi chỉ cần đặt một số tệp bổ sung vào thư mục ./Contents/Resource của ứng dụng):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... Hoặc (có thể tệ hơn thông báo trên):
/Applications/iTunes.app/: code or signature modified
Việc ký mã quay trở lại OS 9 hoặc sớm hơn, nhưng việc triển khai hiện tại đã được giới thiệu trong 10.5 Leopard. Ars Technica viết :
Việc ký mã liên kết một danh tính có thể xác minh bằng mật mã với một bộ sưu tập mã và đảm bảo rằng bất kỳ sửa đổi nào đối với mã đó đều được phát hiện. Không có đảm bảo được thực hiện về các bên liên quan. Ví dụ: nếu bạn tải xuống một ứng dụng có chữ ký của Acme Inc., bạn không thể chứng minh được gì về nó ngoại trừ việc nó đến từ cùng một thực thể tự xưng là Acme Inc. lần cuối bạn tải xuống một cái gì đó từ trang web của họ.
Ví dụ này thực sự làm nổi bật ứng dụng hữu ích nhất của công nghệ từ góc độ của người tiêu dùng. Khi nâng cấp ứng dụng Mac OS X ngay hôm nay [trong 10,4 Tiger, AvB], người dùng thường được nhắc xác minh lại rằng ứng dụng này được phép truy cập Keychain để lấy tên người dùng và mật khẩu. Đây có vẻ như là một tính năng bảo mật tốt, nhưng tất cả những gì nó thực sự làm là đào tạo người dùng Mac bấm mù "Luôn cho phép" mỗi khi nó xuất hiện. Và thực sự, người dùng trung bình sẽ làm gì, chạy chương trình thực thi thông qua trình phân tách và xác minh thủ công rằng mã đó có an toàn không?
Mặt khác, một ứng dụng đã ký có thể chứng minh một cách toán học rằng đó thực sự là một phiên bản mới của cùng một ứng dụng từ cùng một nhà cung cấp mà bạn đã bày tỏ sự tin tưởng trong quá khứ. Kết quả là kết thúc hộp thoại yêu cầu bạn xác nhận lựa chọn mà bạn không có cách nào hợp lý để xác minh.
Đối với tường lửa trong 10.5 Leopard, Apple giải thích :
Khi bạn thêm một ứng dụng vào danh sách này, Mac OS X sẽ ký điện tử cho ứng dụng đó (nếu nó chưa được ký). Nếu ứng dụng được sửa đổi sau này, bạn sẽ được nhắc cho phép hoặc từ chối các kết nối mạng đến với nó. Hầu hết các ứng dụng không tự sửa đổi và đây là một tính năng an toàn thông báo cho bạn về sự thay đổi.
[..]
Tất cả các ứng dụng không có trong danh sách đã được ký bởi kỹ thuật số bởi Tổ chức chứng nhận được hệ thống tin cậy (cho mục đích ký mã) được phép nhận các kết nối đến. Mọi ứng dụng của Apple trong Leopard đều được Apple ký và được phép nhận các kết nối đến. Nếu bạn muốn từ chối một ứng dụng được ký kỹ thuật số, trước tiên bạn nên thêm nó vào danh sách và sau đó từ chối rõ ràng.
Trong 10.6 Snow Leopard, phần sau được trình bày rõ ràng hơn (và có thể bị vô hiệu hóa) là "Tự động cho phép phần mềm đã ký nhận các kết nối đến. Cho phép phần mềm được ký bởi cơ quan chứng nhận hợp lệ để cung cấp dịch vụ được truy cập từ mạng".
(Trong 10.6, các tùy chọn 10.5.1 "Cho phép tất cả các kết nối đến", "Chỉ cho phép các dịch vụ thiết yếu" và "Đặt quyền truy cập cho các dịch vụ và ứng dụng cụ thể" đã được cải tiến thành lựa chọn cho "Chặn tất cả các kết nối đến" hoặc danh sách trong số các ứng dụng và tùy chọn được phép "Tự động cho phép phần mềm đã ký nhận kết nối đến" và "Bật chế độ ẩn". Trước bản cập nhật 10.5.1 , "Chỉ cho phép các dịch vụ thiết yếu" thực sự được gọi là "Chặn tất cả các kết nối đến".)
Đối với các ứng dụng (Apple) bằng cách nào đó có chữ ký gốc bị hỏng, chữ ký ad hoc này bằng cách nào đó có thể không được duy trì và được biết là đã gây rắc rối cho configd, mDNSResponder và racoon.