Commit Graph

169 Commits

Author SHA1 Message Date
Jaromil
7a8a8666ba addressing comments on last commit with a few fixes 2014-11-26 17:25:47 +01:00
gdrooid
47652747c3 [l10n] Update pot file. 2014-11-25 22:51:33 +01:00
Jaromil
f218c644ab KDF key handling cleanup 2014-11-25 03:25:27 +01:00
Jaromil
5dbcabdf26 Removed old privilege escalation model
This commit refactors the handling of password input by eliminating
all intermediary programs and relying only on ZSh, hence improving
overall security against rootkits and such.

Also the way sudo is used is now greatly simplified and there is no
privilege escalation at boot: sudo is executed inside Tomb by being
prefixed in front of those programs needing it.

All tests passed.
2014-11-25 02:37:05 +01:00
Jaromil
e6075d08ce really fail to not overwrite keys when forging 2014-11-24 20:06:45 +01:00
gdrooid
fb686db8eb Finished fixing #164 2014-11-24 17:02:30 +01:00
gdrooid
a46da1cc23 Fix #164 2014-11-23 22:47:03 +01:00
Jaromil
a6a784f1ef swish-e indexing change and whoami cleanup
swish-e now creates a .swishrc config file inside the tomb so that
users can tweak its configuration by hand.
whoami() is also cleaned up, pending a fix for slackware usage.
2014-11-23 21:53:44 +01:00
Jaromil
2480c89210 small security measure against exporting all vars 2014-11-23 18:26:06 +01:00
Jaromil
99581a5faa whitespace cleanup and correct indentation to 4 spaces (no tabs) 2014-11-23 18:25:42 +01:00
Jaromil
aba0fa5191 Avoid using a tempfile on every key decryption
A tempfile was often used by Tomb in order to parse the stderr output of
gpg and detect if the password is correct or not. The tempfile was not
holding any secret information (see #162) yet this is an improvement for
Tomb's deniability since there is now much less going on in the temp
firectory.
2014-11-23 16:58:43 +01:00
Jaromil
c0bd822312 fix for #165 2014-11-23 16:27:09 +01:00
Jaromil
a10d6af804 Removed handling of temporary directory
Added the --tmp flag for manual selection of the temporary directory, whose security should really be up to sysadmins when configuring operating systems. Default is ZSh TMPPREFIX usually set to /tmp/zsh which, if not existing, will be created as world writable with a sticky bit.

This commit also includes a cleanup of commandline options and a fix to swap check.
2014-11-23 14:49:41 +01:00
Jaromil
6bb1385c69 Security fix to setkey
Now there is no more writing of cleartext secrets in any tempfile,
the last case was in setkey and is now eliminated. Tempfile creation
is cleaner. Related to issue #162
2014-11-22 01:40:26 +01:00
Jaromil
f2efa69001 Read setting of pinentry-program in gpg-agent.conf
also fixes the check if the tomb is already open
2014-11-22 00:23:57 +01:00
Jaromil
4d82b20199 small fix to whitespace and leftover newline tests 2014-11-21 22:32:38 +01:00
Jaromil
e48c7c4a85 Added new --unsafe mode: -k cleartext
Using the 'cleartext' name for a key will read it from stdin and
expect it to be unencrypted. This is an unsafe mode of operation,
but useful i.e. to open remote tombs by piping the key over ssh,
or using a different software than Tomb to de/crypt keys.

This commit also renames the flag --unsecure-dev-mode into --unsafe
and includes a minor fix to the last opened date shown on open.

Addressing issue #161
2014-11-21 22:25:43 +01:00
Jaromil
b7f4e3a7fd Use print for non-escaped piping of secret
after fixing issue #154 with echo here we revert to using print with
options -R -n which sort the same effect. Print is preferred since it
executes the built-in command without any possible ambiguity. We don't
want to expose secrets to an external executable in case of a simple
attack that would change the env PATH to use a rootkitted echo.
2014-11-20 15:53:45 +01:00
Jaromil
489b3582cb Disable escapes when piping secrets
Switched to use echo with -E flag to disable escapes in keys: escape
strings were discarded cryptsetup tomb operations when they were present
in the decoded key random passphrase. Issue #154

The solution adopted here includes wrapping all cryptsetup operations to
unify the behaviour adopted.

Worth noting that this problem possibly breaks all tombs and keys
created using the unstable Tomb from git development in the past 2
months. Regression tests with previous stable releases are OK.
2014-11-20 09:59:11 +01:00
gdrooid
6ce45a6f84 [i18n] Update translation files. 2014-11-16 17:30:59 +01:00
Jaromil
a568cdf546 imported python tomber into extras
more documentation updates
2014-11-16 15:21:11 +01:00
Jaromil
bbb290c81a documentation updates 2014-11-16 13:55:51 +01:00
Jaromil
a0db66b18e added also explicit stdout redirection to command -v 2014-11-16 13:11:42 +01:00
Jaromil
9f39d671a0 reverted to use command -v instead of hash
according to analysis made with @gdrooid
2014-11-16 12:38:31 +01:00
Jaromil
da46cbcd31 using zsh hash function instead of command -v to check for bins in path, using plain 2>/dev/null redirection everywhere 2014-11-16 11:37:30 +01:00
Jaromil
982c7591f2 avoid gettext being a requirement and list optional tools found in version output 2014-11-16 11:34:35 +01:00
Jaromil
aa35441d69 this should fix lo_mount() as reported in #154 2014-11-16 11:09:43 +01:00
Jaromil
d4c4a82d73 more detailed help messages and exclude videos from index 2014-11-15 04:14:40 +01:00
Jaromil
249c3cec1d work also without gettext. versioning 2014-11-15 03:14:03 +01:00
Jaromil
8c8ab3fc5c removed some minor debugging tests 2014-11-15 02:41:10 +01:00
Jaromil
edbd950120 switched to zsh/regex and zsh/mapfile
many operations moved to builtin zsh internals, improving speed
also fixes to the username detection and to the losetup check
2014-11-15 02:38:53 +01:00
Jaromil
4ce8771e99 Correct wrapping of cli argument arrays
Fixes also piping to ssh for remote tomb commands
This fix was suggested by @brianmay on #139
2014-11-14 20:12:30 +01:00
Jaromil
82e0533892 message fix 2014-11-14 19:43:26 +01:00
Jaromil
a7d7fad6a8 last minor fix to use _plot() instead of is_valid_tomb() on tomb creation commands 2014-11-14 19:27:57 +01:00
Jaromil
949a8c19e7 correct rendering of dev mapper filename and use of is_valid_tomb 2014-11-14 19:13:48 +01:00
Jaromil
106c4ab32e fixed resize 2014-11-14 18:51:33 +01:00
Jaromil
98ab49315a fixes to _tmp_create and its usage 2014-11-14 18:42:11 +01:00
Jaromil
828579e10d better parses for bind-hooks
rw global vars VERSION etc facilitate re-source in test environment
2014-11-14 17:42:49 +01:00
Jaromil
9097a69631 indentation and small fix for umount to avoid warnings and correct check 2014-11-14 14:25:49 +01:00
Jaromil
c73f00eb19 adjusting strings to facilitate translation 2014-11-04 16:45:57 +01:00
Jaromil
943a46ef60 removed create_tomb, left deprecation notice 2014-11-04 16:45:37 +01:00
Jaromil
181f0fc636 revert to swish-e again 2014-11-04 16:45:08 +01:00
hellekin
6c71f2c94b [cleanup] Process subcommands 2014-11-04 15:33:12 +01:00
hellekin
8df1575a44 [cleanup] Replace 'test' with [[ expr ]] 2014-11-04 15:33:12 +01:00
hellekin
b857122d7d [cleanup] _load_key 2014-11-04 15:32:46 +01:00
hellekin
27ec914870 [cleanup] Fix path to user's temporary files 2014-11-04 15:32:46 +01:00
hellekin
fb12b50d7d [cleanup] ask_password 2014-11-04 15:32:45 +01:00
Jaromil
dac8e4acae remove base2 notation for flags
fixes bug that prevented to evaluate correctly 1/0 values for optional extensions
2014-11-04 15:32:45 +01:00
hellekin
788c133f94 [cleanup] More test cleanups 2014-11-04 15:32:45 +01:00
hellekin
14ed549a55 [cleanup] Consolidate temporary file creation 2014-11-04 15:32:45 +01:00