@grishka @rf
Вот точно!
И если всё равно всё хранить локально, а можно все сообщения тогда зашифровать "at rest"?

О, а ведь можно зашифровать не только "at rest", но и "in transit". Т.е., скажем, отправитель шифрует исходящее сообщение публичным ключом получателя, и тогда никто, кроме получателя, не сможет прочитать это сообщение. Даже сервер, и даже админ этого сервера.

Если писать свой клиент, то, мне кажется, можно и такое реализовать.