mumble-voip/mumble

Better certificate protection - 600

Open

#6,652 opened on Dec 7, 2024

View on GitHub
 (6 comments) (0 reactions) (0 assignees)C++ (5,642 stars) (1,062 forks)batch import
clientfeature-requestgood first issuelinuxmacOS

Description

Hello,

on macOS, it seems to me that the certificate and private key used by Mumble are saved in a JSON file, located here:

/Users/<whoever>/Library/Preferences/Mumble/Mumble/mumble_settings.json

However, this file and its backup copy located in the same folder are created with 644 rights, and their content can therefore be read by any user:

-rw-r--r--@ 1 youruser  staff   4,6K  7 déc 12:18 /Users/youruser/Library/Preferences/Mumble/Mumble/mumble_settings.json
-rw-r--r--@ 1 youruser  staff   4,6K  7 déc 12:16 /Users/youruser/Library/Preferences/Mumble/Mumble/mumble_settings.json.back

Since the private key is present, it would be better for Mumble to apply more restricted rights to them, such as 600.

-rw-------@ 1 youruser  staff   4,6K  7 déc 12:18 /Users/youruser/Library/Preferences/Mumble/Mumble/mumble_settings.json
-rw-------@ 1 youruser  staff   4,6K  7 déc 12:16 /Users/youruser/Library/Preferences/Mumble/Mumble/mumble_settings.json.back

This becomes a more than academic concern when you consider importing into Mumble a personal certificate signed by an external certification authority and also used to sign and encrypt emails.

Obviously, on macOS, the best practice is to access the certificate and its private key from the Keychain, and not to export it from the Keychain to create a copy to be imported into Mumble. But restricting access rights to the JSON file is already a step towards greater security.

Note that on macOS, when an application is authorised to use the certificate and private key in the Keychain, the user is not asked to enter their session password every time. In the Keychain, the application can be declared as always having the right to access them.

Environment macOS 14.6.1 Mumble 1.5.634

Contributor guide