

LibreCrypt: Transparent on-the-fly disk encryption for Windows. LUKS compatible - walterbell
https://github.com/t-d-k/LibreCrypt

======
tptacek
_Supports numerous hash (including SHA-512, RIPEMD-320, Tiger) and encryption
algorithms (Including AES, Twofish, and Serpent) in several modes (CBC, LRW,
and XTS), giving more options than any other disk encryption software._

Why exactly is "more options than any other disk encryption software" a good
thing?

~~~
themeekforgotpw
What mode would you suggest using? XTS isn't exactly a good option but it
seems like the best option here.

~~~
tptacek
XTS is the best option here, but what kills me is that all three modes have
deficits, and they're not the same deficits. Pick your poison! But don't ask
us to tell you which is which!

~~~
hackinthebochs
Do you know of a good technical write up regarding the pros and cons of these?
Thanks

------
frik
Github source code stats mentions: Pascal 65.2%

The GUI code is in ObjectPascal/Delphi and is likely a fork of the
discontinued FreeOTFE:
[http://en.wikipedia.org/wiki/FreeOTFE](http://en.wikipedia.org/wiki/FreeOTFE)

~~~
x5n1
ObjectPascal/Delphi now that's a name that I have not heard in a long time...

------
walterbell
This is a descendant of
[http://en.wikipedia.org/wiki/FreeOTFE](http://en.wikipedia.org/wiki/FreeOTFE)

------
beagle3
XTS is better than nothing, but to make it secure against key reuse from
repeated snapshots we need to have IV / nonce per block, updated with every
write - which means we either need to keep them in the same block (thus, no
power-of-2 block size for the hosted file system), or in some other way that
doesn't kill performance (likely requiring co-operation from the hosted file
system).

The latter solution works in ZFS already.

------
redwards510
This looks outstanding! I knew someone would come along with a worthy
TrueCrypt successor at some point. Regarding "security tokens": I love my
Yubikey. It can act as a gpg smartcard with some configuration. Is it
supported?

------
johnchristopher
Considering this point :

> LibreCrypt does not support encryption of the operating system partition,
> for this we recommend Ubuntu Linux.

What are the benefits of encrypting a partition over using an encrypted file
mounted as a partition ?

~~~
beagle3
Note they are discussion the OS partition, not just any partition.

If the OS partition is unencrypted, it is easier to trojan a system if you
have access to it without the key (just replace some executable that is bound
to execute sooner or later). Also, a lot of cruft remains there such as
temporary files, registry updates, etc; e.g. even if you work on a Word file
inside an encrypted container, you might find enough parts of it in swap
space, temporary files, registry etc - all of which are unencrypted.

Other than swap and system partitions, there should be no difference. But some
programs will leak info regardless - it's better to have everything encrypted
than just some parts.

~~~
tdk
It is entirely possible to trojan a system with an encrypted OS partition, by
using a bootkit. For extra security, you should boot off a removable medium.
Even this can be attacked if the BIOS is infected.

LibreCrypt is useful against very specific threats. Protecting against
attackers that have repeated physical access to your PC, and the technical
nous to install keyloggers etc. involves way more than just using a particular
Windows program, no matter it's features.

~~~
beagle3
Indeed, note I said "easier" and pointed one of the easier ways enabled by
lack of OS partition encryption.

I'll go even farther than parent: If your adversary is determined enough, you
should assume that any physical access to your machine, for however short a
period, means you should never ever use it again - and that you have no
practical way to know if said access has indeed compromised your machine. See
e.g., Thunderstrike.

corollary: You can never be sure that your machine, which has passed through
10 different hands (factory, tester, packages, store, courier, ...) is not
trojaned to begin with.

------
static_noise
Can anyone compare this to the featureset of TrueCrypt?

As far as I see at first glance:

\+ Works on Windows.

\+ Encrypted volumes can be read by Linux.

\- No encryption of system partition.

\- No hidden volumes. (?)

~~~
tdk
> \- No hidden volumes.

Actually it not only supports hidden volumes, but unlimited nested ones, while
TrueCrypt supports a maximum of one hidden volume, see:
[https://github.com/t-d-k/LibreCrypt/blob/master/docs/plausib...](https://github.com/t-d-k/LibreCrypt/blob/master/docs/plausible_deniability.md)

------
Raed667
Written in Pascal ... really? Really? REALLY ?

~~~
Johnny_Brahms
I work in a pascal shop. We use freepascal, which does the job really really
well. Modern pascal, especially Delphi and the likes, are quite nice. Even
moderate coders can, with a bit of planning, churn out good pascal code, which
isnt my opinion about c++.

New hires whine in the beginning about the language of choice, but the
generally don't take more than a week or two to get the basic gist of it. Our
code is well structured, easy to extend, easy to understand and compiles fast.

I haven't worked on many other code bases this size, but I really don't see
what could be much better.

~~~
e12e
Care to share which company/product you're working at/on?

~~~
Johnny_Brahms
We are a private contractor for a smaller government working with a system for
hospital journals. The system is expanding quite rapidly (we got popular), but
things are still very much manageable, despite the pascal codebase being well
over 1MLOC.

The only thing not pascal is the GUI (which is getting ugly because our home-
rolled wrapper to qt, so we are probably going to switch to something else)
and the web interface (which was a web interface we inherited for this job. It
was perl written by someone who thought himself smart. We rewrote that quickly
in mojolicious).

So yeah. I work with pascal and do some (very little, I am not responsible for
the web) web dev in perl. Now get off my lawn, your Node.js, go and rust is so
shiny it hurts my old dusty eyes :)

We have had some code related security issues. Only one that was borderline
severe, and that we discovered ourselves and patched by the end of the day
(which was my fault, because I didn't follow the coding standard manual I
WROTE MYSELF). No real stability issues, no real security problems.

Sometimes the tools matter. In our case not so much. I would love to rewrite
the whole thing in Racket just for fun, though :)

