That was it, I created a new without that EKU and everything works! Thank
you very much, this was not easy to find, unfortunately :( Esp. when some
official pages like here
https://ubuntu.com/blog/how-to-sign-things-for-secure-boot still list it as
a needed EKU.

On Tue, May 10, 2022 at 4:59 PM Łukasz Piątkowski <pion...@gmail.com> wrote:

> Huh, I've never seen that before... thanks, I'm gonna give it a try and
> report back!
>
> On Tue, May 10, 2022 at 4:44 PM Dimitri John Ledkov <
> dimitri.led...@canonical.com> wrote:
>
>> On Tue, 10 May 2022 at 15:07, Łukasz Piątkowski <pion...@gmail.com>
>> wrote:
>> >
>> > What I'm trying to do is to sign a mainline kernel built by ubuntu (
>> https://kernel.ubuntu.com/~kernel-ppa/mainline/) with my private key,
>> that is already enrolled to MOK, and boot it with Secure Boot.
>> >
>> > > the MOK key as generated by Ubuntu/Debian tooling, creates a signing
>> certificate that self-limits itself to only support Kernel Module signing.
>> >
>> > OK, that explains why the key in `/var/lib/shim-signed/mok` doesn't
>> work. Still, I have created my own key as well (listed below for
>> inspection, it has code signing extension), enrolled that key in MOK and
>> signed the ubuntu mainline kernel (the kernel I'm trying to boot) with it.
>> The result is exactly the same. I was using exactly the same procedure a
>> few ubuntu editions back and it was definitely working. From what I learned
>> so far, this might be related to the BootHole bug (
>> https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10713) that was
>> fixed some time ago.
>> >
>> > My generated key is:
>> >
>> > root@T495:~/mok# openssl x509 -in MOK.pem -text -noout
>> > Certificate:
>> >     Data:
>> >         Version: 3 (0x2)
>> >         Serial Number:
>> >             42:61:86:b2:29:3d:ca:eb:98:87:ae:3d:74:95:c7:f2:63:8f:8a:3b
>> >         Signature Algorithm: sha256WithRSAEncryption
>> >         Issuer: C = PL, ST = Poznan, L = Poznan, O = none, CN = Secure
>> Boot Signing, emailAddress = exam...@example.com
>> >         Validity
>> >             Not Before: Feb 18 19:28:16 2020 GMT
>> >             Not After : Jan 25 19:28:16 2120 GMT
>> >         Subject: C = PL, ST = Poznan, L = Poznan, O = none, CN = Secure
>> Boot Signing, emailAddress = exam...@example.com
>> >         Subject Public Key Info:
>> >             Public Key Algorithm: rsaEncryption
>> >                 Public-Key: (2048 bit)
>> >                 Modulus: [cut]
>> >                 Exponent: 65537 (0x10001)
>> >         X509v3 extensions:
>> >             X509v3 Subject Key Identifier:
>> >
>>  EC:57:4E:BD:DC:1A:CF:B4:55:16:4A:CE:CB:E4:9E:44:5C:C4:63:F6
>> >             X509v3 Authority Key Identifier:
>> >
>>  EC:57:4E:BD:DC:1A:CF:B4:55:16:4A:CE:CB:E4:9E:44:5C:C4:63:F6
>> >             X509v3 Basic Constraints: critical
>> >                 CA:FALSE
>> >             X509v3 Extended Key Usage:
>> >                 Code Signing, 1.3.6.1.4.1.311.10.3.6,
>> 1.3.6.1.4.1.2312.16.1.2
>>
>> This is bad... certs that have 1.3.6.1.4.1.2312.16.1.2 cannot be used
>> to sign kernels.
>>
>> Your cert must _not_ have 1.3.6.1.4.1.2312.16.1.2 EKU set on it.
>>
>> You cannot use the same certificate to sign both kernel and modules.
>>
>> >             Netscape Comment:
>> >                 OpenSSL Generated Certificate
>> >     Signature Algorithm: sha256WithRSAEncryption
>> >     Signature Value: [cut]
>> >
>> > On Tue, May 10, 2022 at 3:26 PM Dimitri John Ledkov <
>> dimitri.led...@canonical.com> wrote:
>> >>
>> >> the MOK key as generated by Ubuntu/Debian tooling, creates a signing
>> >> certificate that self-limits itself to only support Kernel Module
>> >> signing.
>> >> Signatures made by such certificate, are not trusted by shim for the
>> >> purpose of code signing of bootloaders (i.e. grub) or kernels (i.e.
>> >> linux).
>> >> I also responded this on stackoverflow.
>> >>
>> >> The automatically generated MOK key is only usable to sign kernel
>> >> modules, i.e. self-built DKMS modules.
>> >>
>> >> --
>> >> okurrr,
>> >>
>> >> Dimitri
>> >>
>> >> On Tue, 10 May 2022 at 11:33, Łukasz Piątkowski <pion...@gmail.com>
>> wrote:
>> >> >
>> >> > Hi everyone - I'm new here!
>> >> >
>> >> > Sorry for going with my problem directly to the grub-devel maling
>> list, but I'm pretty sure my problem is GRUB related. Still, I've spent
>> some hours trying to find a solution on the Internet and I failed :( So,
>> here it comes - if anyone has time to explain my problem to a layman, it
>> would be awesome. Even better, if you can maybe answer here on
>> stackoverflow, where it can be easier to find, I believe (
>> https://unix.stackexchange.com/questions/701612/cant-load-self-signed-kernel-with-secure-boot-on-bad-shim-signature
>> ).
>> >> >
>> >> > I'm running ubuntu with Secure Boot on. Everything works fine when I
>> use a kernel that comes packaged from cannonical. Still, I have issues
>> running a self-signed kernel (this is actually an externally built kernel,
>> that I have verified and want to use for my own machine). I'm pretty sure
>> my signature with MOK key is OK (verification below), but still when I try
>> to boot the kernel from grub, after selecting the correct entry, I get an
>> error that reads "Loading ... error: bad shim signature." I'm wrapping my
>> head around it and can't find a solution. Why, even though both kernels are
>> signed with MOK keys, one of them works and the other doesn't?
>> >> >
>> >> > Here's info about kernel signatures:
>> >> >
>> >> > root@T495:~# sbsign --key /var/lib/shim-signed/mok/MOK.priv --cert
>> /var/lib/shim-signed/mok/MOK.pem /boot/vmlinuz
>> >> > Image was already signed; adding additional signature
>> >> >
>> >> > root@T495:~# sbverify --list /boot/vmlinuz
>> >> > signature 1
>> >> > image signature issuers:
>> >> >  - /C=PL/ST=Poznan/L=Poznan/O=none/CN=Secure Boot
>> Signing/emailAddress=exam...@example.com
>> >> > image signature certificates:
>> >> >  - subject: /C=PL/ST=yes/L=yes/O=none/CN=Secure Boot
>> Signing/emailAddress=exam...@example.com
>> >> >    issuer:  /C=PL/ST=yes/L=yes/O=none/CN=Secure Boot
>> Signing/emailAddress=exam...@example.com
>> >> > signature 2
>> >> > image signature issuers:
>> >> >  - /CN=ubuntu Secure Boot Module Signature key
>> >> > image signature certificates:
>> >> >  - subject: /CN=ubuntu Secure Boot Module Signature key
>> >> >    issuer:  /CN=ubuntu Secure Boot Module Signature key
>> >> >
>> >> >
>> >> > And here about MOK keys:
>> >> >
>> >> > root@T495:~# openssl x509 -in /var/lib/shim-signed/mok/MOK.pem
>> -fingerprint -noout
>> >> > SHA1
>> Fingerprint=81:A2:93:CB:06:6F:52:BA:D9:E2:39:68:9D:FA:E2:2B:0C:95:3C:F7
>> >> > root@T495:~# mokutil --list-enrolled | grep "81:a2:93"
>> >> > SHA1 Fingerprint:
>> 81:a2:93:cb:06:6f:52:ba:d9:e2:39:68:9d:fa:e2:2b:0c:95:3c:f7
>> >> >
>> >> > If there are any docs that help understand that, I'm happy to be
>> redirected there :)
>> >> >
>> >> > piontec
>> >> > _______________________________________________
>> >> > Grub-devel mailing list
>> >> > Grub-devel@gnu.org
>> >> > https://lists.gnu.org/mailman/listinfo/grub-devel
>> >>
>> >> _______________________________________________
>> >> Grub-devel mailing list
>> >> Grub-devel@gnu.org
>> >> https://lists.gnu.org/mailman/listinfo/grub-devel
>> >
>> > _______________________________________________
>> > Grub-devel mailing list
>> > Grub-devel@gnu.org
>> > https://lists.gnu.org/mailman/listinfo/grub-devel
>>
>> _______________________________________________
>> Grub-devel mailing list
>> Grub-devel@gnu.org
>> https://lists.gnu.org/mailman/listinfo/grub-devel
>>
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to