public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Why does EDK2 disable time checks on certificates?
@ 2018-02-05 21:51 Bryan Rosario
  2018-02-06  0:55 ` Long, Qin
  0 siblings, 1 reply; 5+ messages in thread
From: Bryan Rosario @ 2018-02-05 21:51 UTC (permalink / raw)
  To: edk2-devel

See here ("Currently certificate time expiration checking is ignored."):
https://github.com/tianocore/tianocore.github.io/wiki/How-to-Enable-Security
.

Is this behavior part of the UEFI specification or is it EDK2-only? And
what's the reasoning for it?

Thanks,
Bryan


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Why does EDK2 disable time checks on certificates?
  2018-02-05 21:51 Why does EDK2 disable time checks on certificates? Bryan Rosario
@ 2018-02-06  0:55 ` Long, Qin
  2018-02-06  1:45   ` Zhang, Chao B
  0 siblings, 1 reply; 5+ messages in thread
From: Long, Qin @ 2018-02-06  0:55 UTC (permalink / raw)
  To: Bryan Rosario, edk2-devel@lists.01.org

It's EDK2-only. 
The current pre-boot environment have no trusted timer synchronization service. And it's very likely the system time is not the real-time (esp under dev environment). So the certificate time expiration checking was bypassed to avoid any boot break. 

Against the corresponding certificate revocation case, the UEFI introduced the DBX database (forbidden list) to address this. 


Best Regards & Thanks,
LONG, Qin

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Bryan Rosario
Sent: Tuesday, February 6, 2018 5:52 AM
To: edk2-devel@lists.01.org
Subject: [edk2] Why does EDK2 disable time checks on certificates?

See here ("Currently certificate time expiration checking is ignored."):
https://github.com/tianocore/tianocore.github.io/wiki/How-to-Enable-Security
.

Is this behavior part of the UEFI specification or is it EDK2-only? And what's the reasoning for it?

Thanks,
Bryan
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Why does EDK2 disable time checks on certificates?
  2018-02-06  0:55 ` Long, Qin
@ 2018-02-06  1:45   ` Zhang, Chao B
  2018-02-06  2:16     ` Bryan Rosario
  0 siblings, 1 reply; 5+ messages in thread
From: Zhang, Chao B @ 2018-02-06  1:45 UTC (permalink / raw)
  To: Long, Qin, Bryan Rosario, edk2-devel@lists.01.org

Bryan:    
       You can reference EFI_CERT_X509_SHA256,  EFI_CERT_X509_SHA384, EFI_CERT_X509_SHA512 data structure definition in UEFI spec.
  Now they are only supported in DBX.  Revocation time here is defined by user instead of directly from Validity of X059 Certificate in order to address the issue mentioned below.
        

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Long, Qin
Sent: Tuesday, February 6, 2018 8:55 AM
To: Bryan Rosario <bcr@google.com>; edk2-devel@lists.01.org
Subject: Re: [edk2] Why does EDK2 disable time checks on certificates?

It's EDK2-only. 
The current pre-boot environment have no trusted timer synchronization service. And it's very likely the system time is not the real-time (esp under dev environment). So the certificate time expiration checking was bypassed to avoid any boot break. 

Against the corresponding certificate revocation case, the UEFI introduced the DBX database (forbidden list) to address this. 


Best Regards & Thanks,
LONG, Qin

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Bryan Rosario
Sent: Tuesday, February 6, 2018 5:52 AM
To: edk2-devel@lists.01.org
Subject: [edk2] Why does EDK2 disable time checks on certificates?

See here ("Currently certificate time expiration checking is ignored."):
https://github.com/tianocore/tianocore.github.io/wiki/How-to-Enable-Security
.

Is this behavior part of the UEFI specification or is it EDK2-only? And what's the reasoning for it?

Thanks,
Bryan
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Why does EDK2 disable time checks on certificates?
  2018-02-06  1:45   ` Zhang, Chao B
@ 2018-02-06  2:16     ` Bryan Rosario
  2018-02-06  2:50       ` Long, Qin
  0 siblings, 1 reply; 5+ messages in thread
From: Bryan Rosario @ 2018-02-06  2:16 UTC (permalink / raw)
  To: Zhang, Chao B
  Cc: Long, Qin, edk2-devel@lists.01.org, Alain Gefflaut,
	Andrew Thornton

Thanks for the info.

Another question: if I enable time checks in my local copy of EDK2 (or if
there is another UEFI implementation with time checks enabled), do
operating systems generally update their certificates periodically to avoid
them expiring?
In particular, I'm wondering about bootloaders that are signed for secure
boot. I've seen expiration times on the attached certificates and I'm
wondering if the bootloader will be periodically updated, or if operating
systems will just expect that the firmware doesn't actually enforce the
expiration time.

On Mon, Feb 5, 2018 at 5:45 PM, Zhang, Chao B <chao.b.zhang@intel.com>
wrote:

> Bryan:
>        You can reference EFI_CERT_X509_SHA256,  EFI_CERT_X509_SHA384,
> EFI_CERT_X509_SHA512 data structure definition in UEFI spec.
>   Now they are only supported in DBX.  Revocation time here is defined by
> user instead of directly from Validity of X059 Certificate in order to
> address the issue mentioned below.
>
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> Long, Qin
> Sent: Tuesday, February 6, 2018 8:55 AM
> To: Bryan Rosario <bcr@google.com>; edk2-devel@lists.01.org
> Subject: Re: [edk2] Why does EDK2 disable time checks on certificates?
>
> It's EDK2-only.
> The current pre-boot environment have no trusted timer synchronization
> service. And it's very likely the system time is not the real-time (esp
> under dev environment). So the certificate time expiration checking was
> bypassed to avoid any boot break.
>
> Against the corresponding certificate revocation case, the UEFI introduced
> the DBX database (forbidden list) to address this.
>
>
> Best Regards & Thanks,
> LONG, Qin
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> Bryan Rosario
> Sent: Tuesday, February 6, 2018 5:52 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] Why does EDK2 disable time checks on certificates?
>
> See here ("Currently certificate time expiration checking is ignored."):
> https://github.com/tianocore/tianocore.github.io/wiki/How-
> to-Enable-Security
> .
>
> Is this behavior part of the UEFI specification or is it EDK2-only? And
> what's the reasoning for it?
>
> Thanks,
> Bryan
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Why does EDK2 disable time checks on certificates?
  2018-02-06  2:16     ` Bryan Rosario
@ 2018-02-06  2:50       ` Long, Qin
  0 siblings, 0 replies; 5+ messages in thread
From: Long, Qin @ 2018-02-06  2:50 UTC (permalink / raw)
  To: Bryan Rosario, Zhang, Chao B; +Cc: edk2-devel@lists.01.org, Alain Gefflaut

The OS can update the certificates by correct SetVariable() call with authenticated payload (following UEFI secure boot / authenticated variable definitions. Refer to the section 8.2  "Variable Services" and chapter 31 "Secure Boot and Driver Signing" for more details). 
I am not sure if current OS will enforce any periodical update. Currently, UEFI is just distributing the revocation list file to address possible security risks (http://www.uefi.org/revocationlistfile). 


Best Regards & Thanks,
LONG, Qin

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Bryan Rosario
Sent: Tuesday, February 6, 2018 10:17 AM
To: Zhang, Chao B <chao.b.zhang@intel.com>
Cc: edk2-devel@lists.01.org; Alain Gefflaut <alaingef@google.com>; Long, Qin <qin.long@intel.com>
Subject: Re: [edk2] Why does EDK2 disable time checks on certificates?

Thanks for the info.

Another question: if I enable time checks in my local copy of EDK2 (or if there is another UEFI implementation with time checks enabled), do operating systems generally update their certificates periodically to avoid them expiring?
In particular, I'm wondering about bootloaders that are signed for secure boot. I've seen expiration times on the attached certificates and I'm wondering if the bootloader will be periodically updated, or if operating systems will just expect that the firmware doesn't actually enforce the expiration time.

On Mon, Feb 5, 2018 at 5:45 PM, Zhang, Chao B <chao.b.zhang@intel.com>
wrote:

> Bryan:
>        You can reference EFI_CERT_X509_SHA256,  EFI_CERT_X509_SHA384,
> EFI_CERT_X509_SHA512 data structure definition in UEFI spec.
>   Now they are only supported in DBX.  Revocation time here is defined 
> by user instead of directly from Validity of X059 Certificate in order 
> to address the issue mentioned below.
>
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of 
> Long, Qin
> Sent: Tuesday, February 6, 2018 8:55 AM
> To: Bryan Rosario <bcr@google.com>; edk2-devel@lists.01.org
> Subject: Re: [edk2] Why does EDK2 disable time checks on certificates?
>
> It's EDK2-only.
> The current pre-boot environment have no trusted timer synchronization 
> service. And it's very likely the system time is not the real-time 
> (esp under dev environment). So the certificate time expiration 
> checking was bypassed to avoid any boot break.
>
> Against the corresponding certificate revocation case, the UEFI 
> introduced the DBX database (forbidden list) to address this.
>
>
> Best Regards & Thanks,
> LONG, Qin
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of 
> Bryan Rosario
> Sent: Tuesday, February 6, 2018 5:52 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] Why does EDK2 disable time checks on certificates?
>
> See here ("Currently certificate time expiration checking is ignored."):
> https://github.com/tianocore/tianocore.github.io/wiki/How-
> to-Enable-Security
> .
>
> Is this behavior part of the UEFI specification or is it EDK2-only? 
> And what's the reasoning for it?
>
> Thanks,
> Bryan
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-02-06  2:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-05 21:51 Why does EDK2 disable time checks on certificates? Bryan Rosario
2018-02-06  0:55 ` Long, Qin
2018-02-06  1:45   ` Zhang, Chao B
2018-02-06  2:16     ` Bryan Rosario
2018-02-06  2:50       ` Long, Qin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox