85 lines
2.4 KiB
Plaintext
85 lines
2.4 KiB
Plaintext
# Chat-mail server development (up until Oct 18th)
|
|
|
|
## Dovecot goals/steps
|
|
|
|
2. (holger) per-user storage quota (adaptive)
|
|
a) define a static 100MB per-user quota
|
|
|
|
3. automatic expiry of messages older than M days
|
|
- delete unconditionally messages older than 40 days
|
|
|
|
4. limit: max-connections per account
|
|
|
|
|
|
## Filtermail
|
|
|
|
- (alex, Only allow (outgoing) mails if secure-join or autocrypt-pgp-encrypted format.
|
|
TODO: mime-parse mails and check/add tests
|
|
|
|
|
|
## nami: send out rate limit / rspamd
|
|
|
|
- basic outgoing send rate/limits (depending on "account-rating")
|
|
use rspamd in a minimal way, check support dkim-signing
|
|
(including an online test exceeding rate limit)
|
|
|
|
|
|
## (alex) merge + and rename filtermail and doveauth packages
|
|
|
|
- chatmail-pyinfra/src/chatmail -> deploy-chatmail/src/deploy_chatmail
|
|
- filtermail and doveauth -> chatmaild/src/chatmaild/...
|
|
|
|
|
|
## doveauth questions/futures
|
|
|
|
- measurement:
|
|
What happens if you do 100 logins in parallel?
|
|
What fraction is taken by TLS, what by dovecot-auth?
|
|
|
|
- bcrypt-password scheme is slow: require long passwords, use faster hashing
|
|
|
|
- define user-name and password policies, and implement them
|
|
(be very restrictive at the beginning, we can relax later)
|
|
|
|
- password is part of the dictproxy-lookup key, is it safe to use auth-caching?
|
|
|
|
|
|
## How to limit creation of accounts?
|
|
|
|
attack: a 3-line bash script to fill the chatmail db with millions of unused accouts
|
|
|
|
- make it computationally expensive (somehow try to except our tests from it)
|
|
1st pass instant onboarding: create userid + cheap password -- if it fails then
|
|
2nd pass instant onboarding: create userdid + comput. expensive password
|
|
|
|
- probably also do firewall: limit number of new tcp-connections per IP address per duration
|
|
|
|
|
|
## Open/deferred questions
|
|
|
|
- automatic expiry of users that haven't logged in for N days
|
|
Is it neccessary? If all messages are gone, does the existence of
|
|
an e-mail address bother anybody?
|
|
|
|
|
|
## web page for chat-mail servers?
|
|
|
|
- documentation for users, privacy policy etc.
|
|
(probably also with provider-messages ...)
|
|
|
|
|
|
## online tests (first with plain python/pytest)
|
|
|
|
- write tests for dovecot login (exists)
|
|
- write tests for postfix logins (exists)
|
|
- write A<>B send/receive tests (exists)
|
|
|
|
|
|
## Delta Chat
|
|
|
|
1. qr code that defines access to a chatmail instance (like mailadm but without http etc.)
|
|
|
|
2. support for creating username/password and verifying login works
|
|
|
|
|