Maybe I will give a try this tool, looks interesting...
How would you remove the codesigning from the whole package? I unsigned the kext and bundle files but this didn’t help with bootingWell, if you remove codesigning from the whole package, disable SIP & gatekeeper or maybe just add
kext-dev-mode=1 to the boot-args it might work with unsigned ones?
Booting still doesn’t work, but the prefpane does open nowHave you applied this (codesign --remove-signature) to other app files within /Library/Preferemces (especially NVAgent.app & NVMenu.app)? They are located in the NVIDIA Driver Manager.prefPane content..
Ok everyone, I think this is indeed the issue.KEXT signing is not normal signing. It requires a special certificate issued by Apple. It cannot be done with a normal developer account. (Source: I have developed and signed KEXTs.)
Also why Nvidia's certificate leak is likely to be a red herring. They can't use their own certificate to sign. They'd need to get one from Apple. If you look at the trace on the first page: The Nvidia drivers are signed with Apple's Root CA. Not Nvidia's.
My read on this is Apple voided their KEXT through Gatekeeper. Signed things usually don't just expire on their own, even if the cert expires.
pkgutil --expand ~/Downloads/WebDriver-387.10.10.10.40.140.pkg ~/Desktop/WebDriver_temp
cd ~/Desktop/WebDriver_temp/1.8-103-387.10.10.10.40.140-NVWebDrivers.pkg
cat Payload | gunzip -dc |cpio -i
ditto ~/Desktop/WebDriver_temp/1.8-103-387.10.10.10.40.140-NVWebDrivers.pkg/Library ~/Desktop/WebDriver_temp/Library
ditto ~/Desktop/WebDriver_temp/1.8-103-387.10.10.10.40.140-NVWebDrivers.pkg/System ~/Desktop/WebDriver_temp/System
codesign --remove-signature ~/Desktop/WebDriver_temp/System/Library/Extensions/GeForceVADriverWeb.bundle
codesign --remove-signature ~/Desktop/WebDriver_temp/Library/Extensions/GeForceWeb.kext
cd ~/Desktop/WebDriver_temp/NVPrefPane.pkg
cat Payload | gunzip -dc |cpio -i
ditto ~/Desktop/WebDriver_temp/NVPrefPane.pkg/NVIDIA\ Driver\ Manager.prefPane ~/Desktop/WebDriver_temp/NVIDIA\ Driver\ Manager.prefPane
codesign --remove-signature ~/Desktop/WebDriver_temp/NVIDIA\ Driver\ Manager.prefPane
codesign --remove-signature ~/Desktop/WebDriver_temp/NVIDIA\ Driver\ Manager.prefPane/Contents/MacOS/NVMenu.app
codesign -dvv ~/Desktop/WebDriver_temp/Library/Extensions/GeForceWeb.kext
Just a random thought, but what about someone taking the cached database files from a time machine backup before June 1st, and just replacing the new ones with the backups. Then, would it work to lock and change the permissions to read only on those files, so they can’t be updated? Or, even better would be, maybe the database files can be edited or patched on boot, so the revoked info gets changed back to being fine?Right,
It seems the answer is to simply completely disable all certificate revocation checks.
Not typically something recommended but I suppose it makes little difference when running HiSierra.
Two ways:
- You have LittleSnitch
- Download the web drivers in case you need to reinstall them
- Only directly from the Nvidia website
- Look for
trustd
in LittleSnitch and expand until you findocsp
and/orocsp2
and/orocspd
- Block this/those process(es)
- You may need to do this separately for user and for system
- You may also want to block
trustd
altogether as well- Fully disconnect your Mac from the web
- Run
sudo crlrefresh rp && sudo sqlite3 ~/Library/Keychains/*/ocspcache.sqlite3 'DELETE FROM ocsp;'
in Terminal to purge the current cached Certificate Revocation List
- Ignore any error messages on running the above
- You could also specifically delete the cache file(s) but perhaps better to only run crlrefresh first
- To delete, run:
sudo rm -f /var/db/crls/*cache.db && sudo rm -f /var/db/crls/*cache2.db
- Run
sudo date -u 120200002021 && sudo reboot
in Terminal
- You may want to reset your NVRAM on restart
- Reconnect to the web and you should be good
- If not good, disconnect from the web and rerun the purge and date commands above (in that order) and then reinstall the drivers before reconnecting
- You could consider duplicating the drivers and then stripping the code signature out
- This may help with installation if the original signed version fails to install
- Duplication is to have an intact original in case you need this later
- To strip the signature, try:
sudo codesign --remove-signature DriverPackageName.pkg
- If still not good, try the option below instead.
- You do not have LittleSnitch
- Download the web drivers in case you need to reinstall them
- Only directly from the Nvidia website
- Fully disconnect your Mac from the web
- Run
sudo sh -c 'echo "127.0.0.1 ocsp.apple.com" >> /etc/hosts' && sudo sh -c 'echo "127.0.0.1 ocsp2.apple.com" >> /etc/hosts' && sudo killall -HUP mDNSResponder
in Terminal- Run
sudo crlrefresh rp && sudo sqlite3 ~/Library/Keychains/*/ocspcache.sqlite3 'DELETE FROM ocsp;'
in Terminal to purge the current cached Certificate Revocation List
- Ignore any error messages on running the above
- You could also specifically delete the cache file(s) but perhaps better to only run crlrefresh first
- To delete, run:
sudo rm -f /var/db/crls/*cache.db && sudo rm -f /var/db/crls/*cache2.db
- Run
sudo date -u 120200002021 && sudo reboot
in Terminal
- You may want to reset your NVRAM on restart
- Reconnect to the web and you should be good
- If not good, disconnect from the web and rerun the purge and date commands above (in that order) and then reinstall the drivers before reconnecting
- You could consider duplicating the drivers and then stripping the code signature out
- This may help with installation if the original signed version fails to install
- Duplication is to have an intact original in case you need this later
- To strip the signature, try:
sudo codesign --remove-signature DriverPackageName.pkg
- If still not good, you need to use this offline
EDIT:
Reverting the changes is as easy as unchecking the item(s) in LittleSnitch but a bit more involved with/etc/hosts
edits.
You will need to...
- Open Terminal, type
sudo nano /private/etc/hosts
and press "Enter"
- I use
Nano
and forget what the default editor in Terminal is- If you don't have Nano, I think
vim
is most likely the default.- Delete the
ocsp.apple.com
andocsp2.apple.com
lines then save and close- Run
sudo killall -HUP mDNSResponder && sudo reboot
in Terminal to refresh the DNS cache and reboot
When you download and run apps on Mac OS from not identified developers it's required to trust them by Gatekeeper. Codesign terminal tool allows you to manually sign any app on your MacBook. Using this technique you can for e.g. sign Adobe Zii app. Apple recently revoked TNT’s certificate.
Do you mean to say you followed the outlined steps and you are unable to use the GPU?Just a random thought,
I got my old gpu… but cannot do anything high level with it . Nvidia is just bad for thisDon't bother to try troubleshooting this driver issue because you cannot fix it; the best you can do is a workaround. The ball is in Apple/Nvidia's court now.
If you are like me, you didn't dispose of your original GPU so you can at least still use your computer, just perhaps not as fast.
So, it just seems to work again! 30 or something reboots without any issues.
I still don't know what made it. Blocked ocsp with Little Snitch as well as with the terminal command and deleted caches. Also blocked trustd.
I hope i have successfully blocked any certificate validating "service" for all time by now and they all can put their "certificates" to where the sun don't shine for all coming times. I don't want to experience a "nice surprise" like that ever again! It costed me two whole working days and would have put me into serious trouble if happened in the middle of a time critical projekt. I really don't get the point of limiting the time vital parts of my system - which worked for years - can be run "safely". And i don't ever want someone somewhere on the net to decide and pull the plug as they like.
I whish everybody the best of luck in getting this fixed too!
I agree. I have some Apple "legacy products" that recently started having issues because they require new apps and new operating system that requires new hardware. I understand that new programs and OS will have different system requirements and will need more advanced hardware, but I just want to run old software on my old and trusty hardware. Things that I paid for and have served me well. I even have problems with something as simple as the web browser and the Youtube app; handicapping the usefulness of those devices.I always blamed Apple for being the evil greedy dictator, like Microsoft was, not Nvidia, Epic, the independent developer, etc. Not that Nvidia is not at fault, but Apple did EVERYTHING they could to discard Nvidia and High Sierra alongside anything related to these or make it extremely difficult for anyone not wishing to "upgrade".
If things used to work fine until a couple of days ago but now they don't even work when offline, with the clock set 1 month in the past, and with no other security system updates etc being installed, what is the mechanism that prevents the kexts from loading ? Which CRL, OCSP, etc caches need to be deleted, where, and how ?
I even have problems with something as simple as the web browser and the Youtube app; handicapping the usefulness of those devices.
If someone could identify those exact files, wherever they hide in the system hierarchy, I would think it should be possible to at least replace any autoupdated version with the ones that allow the GPU drivers to load. One would probably take the machine completely offline to perform the replacement and reboot, but that's a small matter, relatively speaking.Just a random thought, but what about someone taking the cached database files from a time machine backup before June 1st, and just replacing the new ones with the backups. Then, would it work to lock and change the permissions to read only on those files, so they can’t be updated? Or, even better would be, maybe the database files can be edited or patched on boot, so the revoked info gets changed back to being fine?
I don't think its purely Nvidia, Apple also have to agree to sign it off. Apple and Nvidia get on like Ukraine and Russia so i wouldn't expect a fast fix for the issue. I run a GTX 680 in one of my mac pro's and its been running fine. so cant say i have had the Issue. hopefully both Apple and Nvidia will sort it out so people can run there cards. Just have to wait and see.I just had a long chat with NVIDIA support. They ignore the information that it is just an expired certificate, they give useless advice "try to reinstall the whole system" and they ask for the exact part number of the card "because I may have installed the wrong driver" - although they know that there is only one driver package for Macs.
In the end, I told them that this was not a technical problem, but a legal one, and that my legal adviser told me that this could be categorized as "malicious blocking of hardware and software" and "breach of contract because nowhere is written that the purchased graphics card will stop work in 2022 when one of their certificates expires".
I also told them that this is not my personal problem, but that ALL professionals who use this combination of hardware have the same problem and that we are ready for a class action lawsuit. Because this is not a problem caused by an incompatible update, but a purely administrative problem of the expired certificate.