2014-10-09 18 views
9

Vì vậy, chúng tôi có chứng chỉ cho phép chúng tôi ký kexts, nhưng khi chúng tôi chạy> sudo kextload friendly.kext, nó không thành công và chúng tôi ký kext chúng tôi muốn, và để chứng minh nó được ký kết, đây là một số kết quả chẩn đoán:Nhập Kext với chứng chỉ được bật kext không thành công trong kextload, "mã chữ ký không hợp lệ"

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk 
friendly.kext: satisfies its Designated Requirement 

spctl -a -vvvv friendly.kext

friendly.kext: accepted 
source=Developer ID 
origin=Developer ID Application: Friendly Corporation 
/Library/Extensions 

codesign -dvvv friendly.kext

Executable=/Library/Extensions/friendly.kext/Contents/MacOS/friendly 
Identifier=com.friendly.friendly 
Format=bundle with Mach-O thin (x86_64) 
CodeDirectory v=20200 size=502 flags=0x0(none) hashes=18+3 location=embedded 
Hash type=sha1 size=20 
CDHash=a1e2bf8d53ea67c6cfe9fc3d6d2001fe56c838a7 
Signature size=8528 
Authority=Developer ID Application: Friendly Corporation 
Authority=Developer ID Certification Authority 
Authority=Apple Root CA 
Timestamp=Oct 9, 2014, 11:49:02 AM 
Info.plist entries=21 
TeamIdentifier=1234567890 
Sealed Resources version=2 rules=12 files=1 
Internal requirements count=1 size=180 

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk 
friendly.kext: satisfies its Designated Requirement 

Dường như nó đã ký đúng cách; Tuy nhiên, khi tôi chạy> sudo kextutil -v friendly.kext:

Defaulting to kernel file '/System/Library/Kernels/kernel' 
Diagnostics for /Library/Extensions/friendly.kext: 
Code Signing Failure: code signature is invalid 
/Library/Extensions/friendly.kext appears to be loadable (not including linkage for on-disk libraries). 
ERROR: invalid signature for com.techsmith.friendly, will not load 

Tôi đang nghĩ hoặc là tôi đã tải về giấy chứng nhận sai (chúng tôi chắc chắn đã được chấp thuận cho ký kext), mặc dù tôi đã cố gắng redownloading giấy chứng nhận một lần trước để có thể không phải là vấn đề. Nếu không, đó là cách tôi ký. Tôi nghĩ có lẽ nó có liên quan đến các điều khoản tôi đã đặt trên kext trước khi tôi ký chúng?

Có ai đã xem vấn đề này trước đây không?

Cảm ơn trước!

Trả lời

12

Chứng chỉ ký kext phải có phần mở rộng "(1.2.840.113635.100.6.1.18)" được liệt kê - đây là những gì chỉ định nó dưới dạng chứng chỉ hỗ trợ kext. Bạn có thể dễ dàng xác minh điều này bằng cách xem nó trong Keychain Access.app. (nó được liệt kê gần phía dưới, dưới phần mở rộng "(1.2.840.113635.100.6.1.13)" mà tôi nghĩ là được sử dụng cho các ứng dụng và do đó có trong tất cả chứng chỉ ID nhà phát triển)

+0

Vâng, vì vậy tôi đã có một kịch bản shell đang được chạy mà tôi quên cập nhật, nhưng về cơ bản đã ký vào chữ ký chính xác của tôi. Vì vậy, tôi đã ký một cách chính xác, nhưng sau đó kịch bản shell sẽ chỉ ký với cert không hợp lệ ngay trên nó haha. Chỉ cần không có trên quả bóng ngày hôm qua –

+0

Rõ ràng kext ký là không có sẵn nữa cho giấy chứng nhận mới ... những người đã có chúng, thưởng thức! http://stackoverflow.com/questions/26671885/codesigned-kext-but-why-not-load-in-yosemite10-10 – gimix

+0

@gimix theo như tôi biết, ký kext chưa bao giờ được bật trên chứng chỉ ID nhà phát triển theo mặc định. Kiểm tra chữ ký Kext đã được giới thiệu với OS X 10.9 và khách hàng của tôi đã yêu cầu ID nhà phát triển hỗ trợ kext khi 10.9 vẫn đang trong giai đoạn thử nghiệm. – pmdj

Các vấn đề liên quan