Skip to content

Commit 0c62d09

Browse files
committed
Update documentation
1 parent 6f7e843 commit 0c62d09

5 files changed

Lines changed: 357 additions & 0 deletions

File tree

LICENSE

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Copyright 2024 Nikita Travkin
2+
3+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4+
5+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6+
7+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8+
9+
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10+
11+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ Since the firmware would check that the payload PE is signed by Microsoft, and t
1010
Secure-Launch application, signed by MS is `tcblaunch.exe`, you are unlikely to use this
1111
with anything else...
1212

13+
You can find an overview of the implemented process in [Theory of operation](theory_of_operation.md) document.
14+
15+
1316
Usage
1417
-----
1518

@@ -74,6 +77,7 @@ fs0:\> dtbhack.efi path\to\your.dtb
7477
Please note that this will not fix every issue but only attempts to work around the most
7578
boot-critical ones.
7679

80+
7781
Build
7882
-----
7983

@@ -89,3 +93,52 @@ Then build the project:
8993
make
9094
```
9195

96+
97+
Frequently asked questions
98+
--------------------------
99+
100+
### What are the security implications?
101+
102+
A careful consideration was given to security implications of the results of the research
103+
leading to this implementation. However there is no apparent security issues within the
104+
current Secure-Launch process and to the best of the author's knowledge this implementation
105+
being public does not open any new attack vectors on the Microsoft Windows security.
106+
107+
**There is no security problems in Qualcomm's firmware** - Qualcomm allows an third party
108+
OS to run in EL2. This means that the ability to run arbitrary code in EL2 is intended.
109+
110+
**There is no security problems in tcblauch.exe** - Error handling is an intended and
111+
deliberately designed part of the Secure-Launch process. Being able to inflict an error in
112+
tcblaunch.exe initialization implies already controlling the system at that point. This
113+
means that the system and the TPM state is already compromised and is not trustworthy.
114+
Notably, reviewing [Microsoft Security Servicing Criteria for Windows](https://www.microsoft.com/en-us/msrc/windows-security-servicing-criteria)
115+
suggests that requiring UEFI Secure Boot to be disabled (Which is mandatory to run this app
116+
or to tamper with `winload.efi`) doesn't meet the servicing criteria since the security is
117+
manually broken by the user.
118+
119+
Thus in both cases the only "Security" that could be broken is "Security of the vendor lock-in
120+
solution". Author assumes in good faith that no vendor lock-in was intended with Secure-Launch
121+
on general-purpose Qualcomm-based computers and thus doesn't feel the need to notify
122+
abovementioned parties for this non-issue.
123+
124+
### Is this implementation perfectly correct?
125+
126+
No. This implementation is a best effort attempt and might contain some oversignts compared
127+
to the intended Secure-Launch process. However the fact that slbounce works on multiple
128+
generations of Qualcomm based devices suggests that this implementation is very close to
129+
being correct. Nonetheless no correctness guarantees are given and using this software might
130+
have various issues on specific devices.
131+
132+
133+
License
134+
-------
135+
136+
Source code files are marked with SPDX license identifiers. A license of choice for this
137+
project code is 3-Clause BSD License.
138+
139+
Note that dependencies of this project may use different licesnses:
140+
141+
- arm64-sysreg-lib: MIT License
142+
- gnu-efi: 2-Clause BSD License
143+
- dtc (libfdt): 2-Clause BSD License
144+

0 commit comments

Comments
 (0)