TiddlyWiki is unique in that ordinary people can use it securely and privately without any special training. The key is that TiddlyWiki is just a text file, or a folder of files, so everything that you may already know about how to keep your documents and images private can be applied to TiddlyWiki. Also, because your TiddlyWiki data is stored in simple text files, you can be confident that it will still be securely accessible in the decades to come.
TiddlyWiki Configurations
TiddlyWiki can be used in two main configurations:
- As a single HTML file that contains all the data and code. This is the easiest setup, and the most widely supported.
- Popular services like Tiddlyhost are based on the single file configuration
- See Saving for a listing of all the different ways to save a single file TiddlyWiki
- As a Node.js application that runs a web server. This configuration is more powerful, but requires more technical knowledge to set up and maintain. See:
The security and privacy implications of the two configurations are different:
Single File Configuration
As a practical matter, using TiddlyWiki in the single file configuration depends upon keeping that file secure and private. You can employ the same tools that you use to keep your other documents and images secure. In most cases, the simplest solution will be to use an existing file storage service such as Google Drive, Apple's iCloud, or Dropbox. Many people already rely on the privacy and security of these services. There are also open source alternatives such as Syncthing that can allow you to synchronise files between your devices without using a third party service.
You may also wish to use additional layers of security. TiddlyWiki in the single file configuration offers built-in encryption using an industry standard encryption library to provide AES 128-bit encryption in CCM mode. All the data within the file is encrypted and cannot be accessed without entering the correct password. Your password is never stored in the file: if it is lost or forgotten, your data cannot be decrypted. Instructions can be found in Encryption.
It is important to understand that TiddlyWiki's built in encryption is our best endeavour to offer privacy and usability. However, the encryption feature has not been subject to the kind of rigorous third party testing that characterises secure services like Signal or Syncthing. Cautious users may wish to use TiddlyWiki's built in encryption as an extra layer of security, but should take care not to rely on it as one would rely on industry standard encryption solutions that have been rigorously tested in a variety of situations.
Node.js Configuration
Using TiddlyWiki in the Node.js configuration requires more technical knowledge than the single file configuration. There are several important areas with respect to security and privacy.
- Most obviously, there is the matter of how user data is stored on disc as individual
.tid
files. Just as with the single file configuration, these are just ordinary files, and so can be used with third party tools that provide encryption. - Consideration must also be given to how data is transmitted across the network. By default, the Node.js configuration does not use SSL and so network traffic can be observed by others.
- The impact of this is mitigated by the fact that, by default, only users on the same machine can connect to the server.
- TiddlyWiki itself does offer the option of setting up an SSL connection. However, it is generally advised to use an external proxy server to provide SSL services. nginx is popular for this purpose.
Verifiable Trust
An important aspect of TiddlyWiki's security and privacy claims is that they can be readily confirmed by anyone with basic technical skills. For example, the network monitoring tools built into most browsers allow you to verify that TiddlyWiki doesn't send any data to other servers. Similarly, you can open a TiddlyWiki HTML file in an editor and verify that your data is readily accessible.
Community Tools
There are also third party tools from the community that extend TiddlyWiki's built in encryption:
- "Encrypt single tiddler plugin" by Danielo Rodriguez allows individual tiddlers to be encrypted
- TW5-CSEncryption offers client-side encryption for TiddlyWiki on Node.js
Further Information
If security and privacy are important to you then you need to take the best available advice, and the best place for that is specialist organisations that focus on this area.
The Electronic Frontier Foundation (EFF) in the US is well respected, and their advice would be a good place to start. It emphasises basics such as dealing with passwords and two factor authentication, but also explains more advanced topics such as making a security plan, and how to set up a device securely.
- https://ssd.eff.org/module-categories/basics
- Please suggest other useful privacy and security resources