This patch is used to add the feature support scope to indicate the feature completeness criteria, and some contents are also updated/refined, e.g. Timeline and Feature Verification section.
Cc: Palmer Thomas <thomas.pal...@hpe.com> Cc: Ye Ting <ting...@intel.com> Cc: Fu Siyuan <siyuan...@intel.com> Cc: Long Qin <qin.l...@intel.com> Cc: Li Ruth <ruth...@intel.com> Cc: Zimmer Vincent <vincent.zim...@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin <jiaxin...@intel.com> --- Readme.MD | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Readme.MD b/Readme.MD index a69a2f1..d16eb4c 100644 --- a/Readme.MD +++ b/Readme.MD @@ -33,11 +33,11 @@ NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf ``` #### HTTPS Authentication TLS supports three authentication modes ([RFC5246](https://tools.ietf.org/html/rfc5246)): ``` -1. Total anonymity: the server and client won’t authenticate each other. +1. Total anonymity: the server and client will not authenticate each other. 2. One-way authentication: server authentication with an unauthenticated client. 3. Two-way authentication: authentication of both parties. ``` Currently, HTTPS boot feature only support server authentication with an unauthenticated client mode. Others are not in our current feature support scope. To support one-way authentication mode, server CA certificate is required by Client. Private variable is used to configure this CA certificate. **EFI_SIGNATURE_LIST** format is used for this variable. In sum, the Server CA certificate must be configured first to enable HTTPS boot feature. The variable name and GUID are defined as below. ``` @@ -54,20 +54,29 @@ Currently, HTTPS boot feature only support server authentication with an unauthe | Time | Event | Related Module | |:----:|:-----:|:--------------:| | 2015.12 | Initial implementation for HTTPS boot feature by leveraging OpenSSL. | HttpDxe, OpensslTlsLib, TlsLib, TlsDxe | | 2016.3 | Provided an UI configured driver to support TLS server authentication. | TlsAuthConfigDxe | | 2016.4-7 | Hotfix and code refine according community feedback. | Tls1.h, TlsLib, HttpDxe | +| 2016.8 | Prevent the CA certificates from the runtime phase attack. | TlsAuthConfigDxe | | 2016.9 | Support TLS Version negotiation. | TlsLib, HttpDxe | |...|...|...| +## Feature Support Scope +* Feature usage: Load the specified file from the remote HTTPS server successfully and steadily. +* UEFI Arch: IA32 and X64 platform. +* TLS version: TLS1.0/1.1/1.2, version negotiation. +* HTTPS authentication mode: One-way authentication. +* CA certificates management: Private variable, prevent runtime phase attack. + ## Feature Verification -Tomcat and IIS8 are selected as the HTTPS server to verifiy the result, Detiled see below table. +Tomcat, IIS 8 and Apache2 are selected as the HTTPS server to verify the result of loading the UEFI shell boot file (Shell.efi), detailed see below table. | HTTPS Server | TLS 1.0 | TLS 1.1 | TLS1.2 | |:------------:|:-------:|:-------:|:------:| |Tomcat | Pass |Pass | Pass | -|IIS8 | Pass | Pass | Failure | +|IIS 8 | Pass | Pass | Failure | +|Apache2 | Pass | Pass | Pass | ### NOTES TLS version 1.2 in windows server 2012 R2 IIS8 (As HTTPS server) CAN NOT collaborate with UEFI HTTPS client while version 1.1/1.0 works well. To make the UEFI HTTPS client in staging works properly, we have to disable TLS version 1.2 in windows server 2012 R2 by the below PowerShell script: ``` New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null -- 1.9.5.msysgit.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel