cloudbase / wnbd

Windows Ceph RBD NBD driver
GNU Lesser General Public License v2.1
58 stars 26 forks source link

Make the driver signed - to make NBD usable on Windows 11 and up without tons of hassle #89

Open olokos opened 1 year ago

olokos commented 1 year ago

Hey,

So I wasn't very familiar with NBD protocol, until I've taken a deep dive on the Playstation 2 scene. The ultimate way to play games on PS2, is to get a network adapter, that allows connecting a HDD to a PS2, including the ability to also use an actual modern SATA SSD with a PS2, thanks to bitfunx adapter from IDE to SATA and thanks to amazing efforts of developers in the PS2 scene.

You can see how it started here: https://github.com/ps2homebrew/Open-PS2-Loader/discussions/491

and how it now evolved into a nice GUI application that everybody can use: https://www.psx-place.com/resources/hdl-batch-installer.1173/update?update=2249

The PS2 is using an APA Partition scheme with some specific quirks. That means that the best way to connect the HDD to a PC nowadays, is by using the WNBD protcol.

If you're interested in learning more, this is a nice place: https://www.psx-place.com/threads/apa-patitionology-everything-you-should-know-about-hdd-in-ps2.30912/ - there's an english translated pdf in the last post.

The biggest issue of using WNBD on windows 10 and especially 11, is that the driver is not signed.

Windows 11 requires Secure Boot enabled, which won't allow any unsigned drivers, even in test mode or with disabled signature encryption.

If somebody is playing competetive e-sports titles, using specialized anticheats it adds to the pain involved, since a lot of the anticheats actually require Secure Boot Enabled and will not allow to enter the game, without secure boot.

In my case, the situation looked like this, in order to install the WNBD client driver on Windows 11 (skipping the parts where I just wasted time and it adds nothing to the issue)

Disabled secure boot Booted into windows Realised that I still need to enable test mode Test mode wasn't enough, also have to sign the driver per-PC Downloaded a separate app to test-sign the driver for my specific pc Install the driver finally Then copy the files with PS2 SSD connected via SATA to PC directly Was able to use the HDL Batch installer to mount and copy the backups of my physical games to the HDD Unmounted the HDD Wanted to play FaceIT- CS:GO e-sports service with a dedicated anticheat Couldn't play the game, as the anticheat told me to enable Secure Boot or it won't let me play ( I think it was similar with Vanguard of Valorant - which is a 1st party game anticheat) Reboot, went into UEFI Reenabled secure boot The PC won't boot windows anymore, instead getting a BSOD and no repairs it attempted did anything To add salt to the wound, the error message in the BSOD said nothing useful, just a generic blue screen of that with error that it failed to boot After a while I have realised that the problem could possibly be, that I still have the NBD Client driver installed and Windows can't handle it on it's own. Disabled secure boot Uninstalled the NBD Client driver in Windows OS Reenabled secure boot The Windows 11 Pro now boots again and I can use it as before!

This made me pretty much give up on the HDD in PS2, as it's either going through all this hassle above again or booting into linux and trying to do the same, but it also involves disabling secure boot IIRC.

I think it's about time, that something should be done about this, to make WNBD Client more accessible to people, not everybody will be able to do what I have done in order to just connect the PS2 HDD to a PC.

The best and most important solution here would be to actually get a WNBD Client driver signed, so as the time goes on and Windows 11 is the only supported OS and Linux also makes Secure Boot very important, people won't have to spend hours of their time each time they want to connect the HDD/SSD to the PC using WNBD protocol.

I think this would truly make WNBD a standard, that a lot of people and developers would use, instead of very hacky and a niche solution.

https://learn.microsoft.com/en-us/windows-hardware/drivers/develop/signing-a-driver-for-public-release Above is the process of signing the driver

https://codesigncert.com/windows-driver-signing-certificates While this website looks a bit scammy, it might aswell be legitimate, it was one of the first results.

Personally, I think the biggest obstacle here isn't the process itself, but the cost of the certificate.

If money really is the only osbstacle that prevents signing the WNBD driver, I think it would be reasonable to create a fundraiser, to raise money for buing a certificate for 3 years, if not more at once and finally get rid of all the headaches involved with using WNBD.

Or is there some different issue, other than the cost of the certification, that I'm not aware of?

petrutlucian94 commented 1 year ago

Hi,

Thank you for your interest in WNBD. To be honest, it was mainly designed to allow mounting Ceph RBD images but I'm really glad that the standalone NBD client functionality covers so many other use cases.

A signed WNBD driver is bundled with our Ceph MSI: https://cloudbase.it/ceph-for-windows/. The only catch is that it's signed by Cloudbase, not by Microsoft. Secure boot still has to be disabled but at least it doesn't require the "test signed" mode.

What you actually need is a driver signed by Microsoft, so it has to pass the Microsoft WHQL certification tests. The good news is that we're in the process of certifying the driver, so we'll probably have a MS signed driver in the following months.

olokos commented 1 year ago

I'm glad to hear that!

If there's any updates on this, feel free to post it here! 🙂

mamoEB commented 1 year ago

Hello guys, Any news about driver signing, updates and improvements ?

Regards!

alexpilotti commented 1 year ago

Hello guys,

Any news about driver signing, updates and improvements ?

Regards!

We are waiting on Microsoft for some issues they need to sort out related to the signing. There is no blocker on the technical side.

mitcHELLspawn commented 1 year ago

Any ETA? Is it normal for it to take so long for Microsoft to sign off?

petrutlucian94 commented 1 year ago

As of today, the Microsoft portal issue hasn't been addressed. They've been passing our support tickets around for months.

rrauch commented 5 days ago

Over a year has passed now, any update?

I really don't understand why Microsoft is unable to provide a reasonable service for this. I've heard of similar problems and delays when it comes to MS signing bootloaders.

Hope this gets sorted eventually!

alexpilotti commented 5 days ago

@rrauch we had a ton of issues with basic account features and we will try again at some point, hoping in a more fruitful experience.