Start

The Security Policy of TinkerTool System

When you launch TinkerTool System for the first time, it will automatically integrate into the security model of macOS. This is necessary because the application can be used to perform critical operations in macOS, for example to alter or even delete operating system files. Only responsible system administrators who manage the respective computer should be allowed to perform such actions.

To guarantee a high security level, TinkerTool System works in two parts: The normal main application with the graphical user interface is coordinating all operations. It also executes all tasks that don’t require any special permissions. However, as soon as a privileged operation has to be executed, for example changing a setting that takes effect for all users of the computer, not only the current one, the application stops, makes you aware of the pending task, and checks whether the current user can identify herself as system administrator. If yes, the task will continue and the privileged operation can start.

The privileged job is not executed by the main application, however. A second component, the so-called privileged helper does this work by receiving the request of the main application via a secure, tap-proof channel. Even if an unauthorized attacker would manage to manipulate the main program, it could not trigger any malicious functions in the computer, because it could not get permission to do that. Only the privileged component, which is monitored and specially protected by macOS has this technical capability. This means we have a separation of user rights in this setup. The privileged helper will also be called security component in this context.

In case the current user cannot identify as system administrator, the privileged operation will be rejected, denying its execution. You receive a notice in the graphical user interface that the pending task could not be continued due to security reasons.

Approval to use the security component

Apple’s policies require an administrator to allow the security component to start automatically before TinkerTool System can be used, since the security component provides services to all users. Such programs are referred to by Apple as Background Item.

The security component is started automatically by macOS when you start TinkerTool System. It doesn’t run in the background when TinkerTool System isn’t running.

Permission can be granted in two ways, either at the first launch of the program or at any time through the System Settings program. At the first start, the normal procedure is as follows:

  1. Start TinkerTool System for the first time. The program does not open its control window, but instead displays an assistant guiding you through all necessary steps for the security component to be approved.
  2. macOS displays a request via the Notification Center at the top right, asking whether you like to allow a new background item. In this dialog, select Options > Allow.
  3. Confirm with an administrator’s password that you allow this for all users.
  4. TinkerTool System removes its message window and starts its full user interface.

In some versions of macOS, a restart of the computer can be necessary during the very first launch of the application. Unfortunately, this step is enforced by Apple.

You can also grant permission at any time through the System Settings program:

  1. Quit TinkerTool System if it is running.
  2. Launch System Settings.
  3. Open General > Login Items.
  4. Find TinkerTool System in the Allow in the Background list.
  5. Make sure the switch for this entry is on.

Confirming a privileged operation

To create the aforementioned monitored link between main application and privileged component, macOS asks for permission to setup the helper program during the first start of TinkerTool System. After this special trust relationship has been established between main application and privileged component, TinkerTool System will begin to control the special permissions from there on. The following rules apply when verifying the right to execute a protected operation:

The running user session must be owned by an administrator: For security reasons, only those users can initiate a privileged operation in TinkerTool System for which the option Allow user to administer this computer is enabled in the account management of macOS. Such users are called administrators. This special option is the default for the user who owns the computer and has set it up. The login session in which TinkerTool System is running must have been started by this user, or by a different user who has also been granted administrative rights. This means it won’t be possible to initiate a privileged operation for a user account which has not logged in as administrator. You cannot act as a different user while your identity is being verified by entering that user’s name and password.

This is compliant with the classic security guidelines that were established for the first generations of macOS (called Mac OS X at that time), and is stricter than the guidelines usually in effect for graphical applications running with modern versions of macOS. The policy is similar to that used by macOS and other Unix systems for the sudo command on the command line, which is also responsible for unlocking privileged operations individually.

The login session must run for a user with administrator permissions.
The login session must run for a user with administrator permissions.

If you are currently working with a user account that has no administrative rights, you won’t need to cancel your running login session in order to use TinkerTool System, however. By using System Settings to activate one of the options Control Center > Fast User Switching, you can enable an item at the top right hand side in the graphical user interface of macOS which allows a direct re-registration, starting a second login as system administrator. This way you can work with multiple screen sessions for different users and switch back and forth between them.

The application cannot read your password: Neither the main application, nor its privileged component are involved in the password entry and verification of credentials. Both tasks are exclusively handled by macOS, so that your password cannot be seen by the programs. Only after macOS has checked your identity, the result will be sent to the application.

The previous rule applies to the authorization of privileged operations, but not for other logins which can also be protected by passwords. If the application has to login to a server process or to another computer in the network, it can be necessary that the program has to temporarily accept the password itself for technical reasons. In such a case you will receive an explicit notification about this circumstance before.

An administrator cannot have an empty password: Although it was possible with previous versions of macOS to create user accounts for administrators without a password (which actually means they have a password of zero length), up-to-date versions of the operating system consider this a configuration error. Affected administrator accounts cannot authenticate in all cases and several system features will fail for them. This includes the privileged operations which can be used under control of TinkerTool System. With default methods, accounts without passwords can no longer be created. If you still have such an account which was migrated from an older version of macOS, you must define a password for it before the account is permitted to use any features of TinkerTool System that require privileged operations.

On computers with Touch ID, the confirmation can also be done by fingerprint: If your computer contains Apple’s fingerprint reader Touch ID, the verification of your identity can also be done by fingerprint. As usual in macOS, you can choose whether to identify by password or by fingerprint.

A confirmation is valid for the pending operation, and optionally for further operations in the next five (5) minutes: In some cases, TinkerTool System has to execute multiple privileged operations in rapid succession to achieve a certain process, for example, a protected file may need to be deleted, and another one must be created in a protected folder. The application is designed to handle such a composite operation as single event, even if the operations are internally considered separate actions requiring different permissions. You only have to authenticate once, not twice in this example. But even operations which don’t belong together don’t necessarily lead to a renewed password entry: If a time of less than five minutes has passed between a privileged operation and your last authorization, another check of your identity will be avoided.

If you like to repeal this 5-minute rule, protecting each coherent task individually, this will be possible: You can force the application to establish a stricter guideline by a user preference setting:

  1. Select the menu item TinkerTool System > Settings… or press the key combination ⌘ + ,.
  2. Check the option Deauthorize administrator after each completed operation.

An authorization won’t be shared with other applications: When you have confirmed your identity to TinkerTool System to execute a privileged operation, this authorization will only be valid for the application itself, but not for other programs. This is also stricter than the usual guidelines of macOS, which would permit to avoid another password entry within five minutes for all applications running in the same login session.

Current limitations of macOS

TinkerTool System adheres strictly to Apple’s current guidelines for providing privileged security components. Unfortunately, the latest technologies that Apple prescribes for their implementation are not always mature. This can depend on the macOS version you are using. In particular, the following restrictions may apply at the moment:

Additional limitations may exist in specific versions of macOS. You may also find detailed information in the chapter Important Release Notes.

Removing outdated generations of the security component

TinkerTool System has a long history, protecting many generations of the operating system with its security architecture. Because Apple has changed the guidelines and technologies for this aspect of the system many times, it can have been necessary in the past to modify the security component to use a completely new technology. Usually you won’t need to care about this. The application will notify you when an update is due and will perform all necessary steps by itself.

There can be cases however, where an updated security component is so different from its predecessor versions that it will no longer be compatible with them and cannot remove them automatically due to technical reasons. This means an outdated copy of the privileged helper could still be present in the system, even if the main application has been deleted or updated in the meanwhile. This usually doesn’t bother, because macOS only starts these programs when necessary. You may like to delete these old components however, to avoid possible misuse and to clean up your computer.

TinkerTool System offers a special maintenance feature to do this. It can search for outdated auxiliary programs and remove them if desired. Perform the following steps:

  1. Launch TinkerTool System if it is not running yet.
  2. Select the menu item Reset > Clean old security components….
Outdated copies of the privileged helper can be removed if desired.
Outdated copies of the privileged helper can be removed if desired.

A window like that depicted in the example will open. The table lists all components which could still be installed from old versions of the application. Components marked by bold print are indeed still present and appear with the status removable. You can select one or more of these components and click the button Clean to delete them. If components are still in use unexpectedly, this will be automatically detected. You can only remove such helper programs after quitting their associated main applications.