@@ -71,7 +71,7 @@ the current state of the latest code in git, not necessarily any existing releas
7171
7272[ DAITA ] : https://mullvad.net/en/blog/introducing-defense-against-ai-guided-traffic-analysis-daita
7373
74- ## Security and anonymity
74+ ## User security, privacy and anonymity
7575
7676This app is a privacy preserving VPN client. As such it goes to great lengths to stop traffic
7777leaks. And basically all settings default to the more secure/private option. The user has to
@@ -80,6 +80,35 @@ on what the app blocks and allows, as well as how it does it.
8080
8181[ dedicated security document ] : docs/security.md
8282
83+ ## Secure development
84+
85+ Since the security of the users of the app is a top priority, by extension the security
86+ of the development and release process also becomes a top priority. This is something we work
87+ actively on.
88+
89+ [ ![ OpenSSF Best Practices] ( https://www.bestpractices.dev/projects/9411/badge )] ( https://www.bestpractices.dev/projects/9411 )
90+
91+ ### Git signatures
92+
93+ All merge commits to the main branch must be PGP (gpg) signed in git. This signs off the entire
94+ feature branch. The individual commits in the feature branch do not need to be signed,
95+ unless they change one or more of the files deemed extra important.
96+
97+ The list of files requiring signatures to every commit that change them is defined in the
98+ [ ` verify-locked-down-signatures ` ] ( .github/workflows/verify-locked-down-signatures.yml )
99+ workflow.
100+
101+ ### Audits, pentests and external security reviews
102+
103+ This app is audited by external security experts and penetration testers every second year.
104+ We also carry out feature specific audits for certain security critical features and changes.
105+
106+ The results of these audits are always made public in their unredacted original form, for
107+ full transparency towards the users. See the [ audits readme] ( ./audits/README.md ) for this.
108+
109+ Moreover, we welcome any individual to review the security of this app and submit any found
110+ issue to us. See [ SECURITY.md] ( SECURITY.md ) for more.
111+
83112## Checking out the code
84113
85114This repository contains submodules needed for building the app. However, some of those submodules
@@ -98,8 +127,9 @@ git submodule update --init wireguard-go-rs/libwg/wireguard-go
98127```
99128Further details on why this is necessary can be found in the [ wireguard-go-rs crate] ( ./wireguard-go-rs/README.md ) .
100129
101- We sign every commit on the ` main ` branch as well as our release tags. If you would like to verify
102- your checkout, you can find our developer keys on [ Mullvad's Open Source page] .
130+ We sign every merge commit to the ` main ` branch as well as our release tags.
131+ If you would like to verify your checkout, you can find our developer keys on
132+ [ Mullvad's Open Source page] .
103133
104134### Binaries submodule
105135
@@ -433,11 +463,6 @@ For instructions specific to the Android app, see [here](./android/README.md).
433463
434464For instructions specific to the iOS app, see [ here] ( ./ios/translation/README.md ) .
435465
436- ## Audits, pentests and external security reviews
437-
438- Mullvad has used external pentesting companies to carry out security audits of this VPN app. Read
439- more about them in the [ audits readme] ( ./audits/README.md ) .
440-
441466# License
442467
443468Copyright (C) 2026 Mullvad VPN AB
0 commit comments