Skip to content

Commands

Markus Ottela edited this page Oct 9, 2020 · 13 revisions

12. Commands

TFC is controlled by entering commands into the message entry window of the Transmitter Program.

/about

Display links to the project's homepage and documentation.

/add

Initialize the 'add new contact wizard' and key exchange with new/existing contact.

/cf

Cancel queued files to the active contact/group. (Works only during traffic masking.)

/cm

Cancel queued messages to the active contact/group.

/clear, ' '

Clear TFC's screen on all three computers. (Excludes Networked Computer when traffic masking is enabled.)

/cmd, '//'

Switch Receiver Program's window to one that shows its command history.

/connect

Resend the Tor Onion Service private key and contact data from Source to Networked Computer. This command is to be used in situations where the Networked Computer or Relay Program running on it had to be restarted.

/exit

Exit TFC on all three computers.

/export (n)

Export (n most recent) messages for active contact/group from the encrypted database on Source/Destination Computer. As this will write the specified logs in plaintext, the action must be confirmed by answering y or yes to the confirmation prompt and by entering the master password to authenticate the action.

/file

Send file to the active contact or group.

/fw

View the file window on Receiver Program that shows transmission progress of incoming files from contacts. (Only files sent by contacts that use traffic masking are displayed in the file window.)

/help

Display list of TFC commands and their descriptions.

/history (n)

Display log of (n most recent) messages of active contact or group on Receiver Program. This command will also show (n most recent) sent messages for active contact or group on Transmitter Program. Displaying output messages allows users to cross-compare logs and verify e.g. advanced malware on Destination Computer has not changed the content of messages after they were decrypted. Viewing the log file requires entering the master password.

/localkey

Reinitialize the local key setup.

/logging

/logging on enables logging for the active contact/group.

/logging off disables logging for the active contact/group.

/logging on all enables logging for all contacts and groups.

/logging off all disables logging for all contacts and groups.

/msg

/msg Alice selects contact with nick Alice.

/msg <account> selects contact with TFC-account <account>.

/msg myGroup selects group myGroup.

/names

Displays list of contacts and settings related to them

  • The nickname of the contact
  • The truncated TFC account of contact
  • The setting on whether messages sent by contact to their window are logged
  • The setting on whether files sent by contact are accepted
  • The setting on whether notifications about new messages from contact are displayed when another window is active
  • The key exchange type and if X448 is used, verification status of the fingerprint for the contact

The command also shows following information about groups

  • The name of the group
  • The setting on whether messages sent to the group are logged
  • The setting on whether notifications about new messages to the group are displayed when another window is active
  • The list of group members' nicknames

/nick

/nick Alice changes the nick of active contact to Alice.

/nick myGroup changes the nick of active group to myGroup.

/notify

/notify on enables new message notification privacy for active contact/group.

/notify off disables new message notification privacy for active contact/group.

/notify on all enables new message notification privacy for all contacts and groups.

/notify off all disables new message notification privacy for all contacts and groups.

When the window notification is enabled, and a message is received to another window, it will be displayed for a brief moment in the active window.

/passwd

/passwd tx changes the Transmitter Program's master password.

/passwd rx changes the Receiver Program's master password.

/psk

Sends a command to the Receiver Program that instructs it to open a file selection prompt. This prompt allows the user to select the PSK file from the contact's removable media, which is then imported.

WARNING! The removable media containing the PSK must be connected to the user's Destination Computer. Accidentally connecting the PSK transmission media to Source Computer can completely break TFC's endpoint security!

/reset

Resets the screens of all three computers and erases the ephemeral message log for the active contact/group. This command does not remove logged messages. During traffic masking when this command is issued, the window of Relay Program is not reset, so as not to reveal to an attacker on the Networked Computer when TFC is being used.

/rm

/rm Alice removes the contact with the nick Alice.

/rmlogs

/rmlogs Alice removes all logs associated with the contact currently associated with the nick Alice.

/rmlogs <account> removes all logs with the account, even if it is no longer a contact in TFC.

/rmlogs myGroup removes all logs associated with the group.

/store

/store on enables file reception for active contact, or members of the active group.

/store off disables file reception for active contact, or members of the active group.

/store on all enables file reception for all contacts.

/store off all disables file reception for all contacts.

/unread, ' '

Displays list of windows for contacts and groups on Receiver Program that have unread messages.

/verify

Displays the public key fingerprints of the user and the contact on Transmitter Program and asks the user to verify them. This command is only available if X448 was used to exchange keys (as opposed to PSKs).

/whisper

/whisper Hi Bob sends an "off-the-record*" message Hi Bob to the contact. The message will not be logged -- even if the recipient has enabled message logging for the contact -- unless the recipient has modified their Receiver Program: It does not protect the user from the recipient, only from third parties in cases where the recipient can be trusted.

*Nothing to do with the OTR-protocol.

/whois

/whois Alice displays the TFC account of Alice, e.g. u5oeq6iizrunvze266ygugokvj36pelrdv22quzon4j4ppff4fpuojyd

/whois u5oeq6iizrunvze266ygugokvj36pelrdv22quzon4j4ppff4fpuojyd displays the nick of the account, e.g., Alice.

The latter command is useful when the user wants to verify whose account is in question when the Relay Program (that does not know the nicks of contacts) displays a truncated TFC account.

Both nicks and accounts support tab-complete.

/wipe

Overwrite all TFC user data from all three computers and power systems off. Since this is a destructive command, the user needs to confirm it by entering Yes to the prompt. Password is not prompted to avoid failure for wipe during a stressful situation.

12. Group management commands

/group create

/group create myGroup creates empty group myGroup.

/group create myGroup Alice Charlie creates group myGroup with members listed in creation.

When a new group is created, the Transmitter program will send each member an invitation that contains a list of all members user added to the group, as well as the ID (e.g. 2de6sbn1tCH4R) of the group.

/group join

When the user receives a group invitation to their Relay Program, they can join the group with

/group join 2de6sbn1tCH4R myGroup Bob Charlie

All contacts that wish to join must manually create a group that uses the same group ID. The name of the group can be chosen by each joining member. In the unlikely event that group ID already exists, one of the groups needs to be re-created.

Hint: The Relay Program knows which of the accounts in group invitations are on the user's contact list. The user does not need to do /whois on every account in the group to get nicks. They can just tab-complete the accounts displayed by Relay Program and Receiver Program will display nicks of added members in Transmitter/Receiver Program group creation notification. Adding contacts to group this way is safe as it's not possible to add unknown accounts to the group, and the software allows the user to remove any unwanted nicks before sending messages to the group. Transmitter Program will not tab-complete or accept unknown members.

WARNING! The user should never join groups the group ID of which was sent to them in a message Receiver Program displays: These group IDs could be used to steal sensitive key data from The Destination Computer. Always use the default way of manually copying the group ID from group invitation message, displayed by the Relay Program on the Networked Computer.

/group add

/group add myGroup David adds the contact with nick David to the group.

When a new member is added to an existing group, the Transmitter program will ask if a group management message will be sent to new and existing members so that they can synchronize their groups. As a new member, David will receive an invitation as if a new group was created.

/group rm

/group rm myGroup David removes the contact with nick David from the group.

When one or more existing members are removed from the group, the Transmitter Program will ask if the user wants to send a list of removed members to the remaining members. Removed members never receive notification about them being removed. What happens during removal is, the Transmitter Program of the user stops sending group messages to that contact, and the Receiver Program of the user stops displaying messages that the removed contact redirects to the group window. Removing a contact from a group does not prevent them from sending private messages to the user (this can be done by removing the contact from TFC), nor does it prevent any other group members from continuing conversation with the removed contact in the group.

/group rm myGroup removes group myGroup.

When a group is removed, the Transmitter Program of the user asks them if it should send a notification to existing group members about the user leaving the group. If a contact sends the user a message about leaving the group, the user(s) must themselves remove the contact from the group to prevent the contact from being able to secretly read messages the user sends to the group. Such "eavesdropping" cannot be prevented as the encryption key is the same as the one used to encrypt private messages to the contact who claimed to have left the group.

13. Settings

Setting names, current and default values, and descriptions can be viewed with command

/settings

Settings can be changed with

/set <setting name> <setting value>

Note that settings that affect serial interfaces require all TFC programs to be restarted. Make sure each program displays a notification that new serial settings will take effect on restart. If you find yourself in a situation where serial settings are out of sync, you can either edit each $HOME/tfc/user_data/*_serial_settings.json file with a text editor, or you can close all three TFC programs, and delete the *_serial_settings.json file on all three computers. This will reset the serial interface settings.

14. Traffic masking

Traffic masking is a special mode of operation for Transmitter Program that protects metadata about the type, quantity and schedule of communication at the inconvenience of having to lock to a single window (i.e. single contact or group) as the recipient.

During traffic masking Transmitter Program will output a constant stream of noise data, into which it inserts file/message packets when due. This prevents even an attacker who remotely compromises the Networked Computer of user from determining if and when, and how much communication takes place, as well as the type (message/file) of communicated data.

Traffic masking is enabled with the command /set traffic_masking True. This deselects the active window and requires the user to choose a contact or group for the duration of traffic masking. Once enabled, traffic masking mode can be disabled with the command /set traffic_masking False that immediately stops outputting the stream of noise messages. Issuing the latter command also deselects the contact.

The transmitter Program will remember the traffic masking setting status across restarts but not the active group for the traffic masking.