diff options
| author | Simeon Simeonov | 2018-04-11 14:21:59 +0200 |
|---|---|---|
| committer | Simeon Simeonov | 2018-04-11 14:21:59 +0200 |
| commit | 4a1c3cc3e3a28dc337cf768333db5c4537a7c077 (patch) | |
| tree | c60247b7123451919cf48a40434c6b8ed85a8bd2 | |
| parent | 81693819d6cf81766e6a9ef4bbeae9e556a21b75 (diff) | |
Use a proper markdown in README.md
| -rw-r--r-- | README.md | 39 |
1 files changed, 13 insertions, 26 deletions
| @@ -1,5 +1,4 @@ | |||
| 1 | Implemented features and fixes not present in the official Sylpheed release | 1 | ## Implemented features and fixes not present in the official Sylpheed release |
| 2 | =========================================================================== | ||
| 3 | 2 | ||
| 4 | - (fix) | 3 | - (fix) |
| 5 | PGP signature not verified properly when the message has no newline | 4 | PGP signature not verified properly when the message has no newline |
| @@ -14,15 +13,13 @@ Implemented features and fixes not present in the official Sylpheed release | |||
| 14 | Read bellow for more details! | 13 | Read bellow for more details! |
| 15 | 14 | ||
| 16 | 15 | ||
| 17 | Master password | 16 | ## Master password |
| 18 | =============== | ||
| 19 | 17 | ||
| 20 | The master password feature is developed by Simeon Simeonov (sgs) | 18 | The master password feature is developed by Simeon Simeonov (sgs) |
| 21 | and is currently in an experimental state. | 19 | and is currently in an experimental state. |
| 22 | 20 | ||
| 23 | 21 | ||
| 24 | Motivation | 22 | ### Motivation |
| 25 | ---------- | ||
| 26 | 23 | ||
| 27 | Currently Sylpheed is storing passwords in plain-text. One can always refrain | 24 | Currently Sylpheed is storing passwords in plain-text. One can always refrain |
| 28 | from storing passwords and let Sylpheed prompt for them, but the more accounts | 25 | from storing passwords and let Sylpheed prompt for them, but the more accounts |
| @@ -32,8 +29,7 @@ The goal is to have the passwords stored in a secure way and let Sylpheed only | |||
| 32 | prompt for the master password. | 29 | prompt for the master password. |
| 33 | 30 | ||
| 34 | 31 | ||
| 35 | Security goals | 32 | ### Security goals |
| 36 | -------------- | ||
| 37 | 33 | ||
| 38 | - attacker (A) should not be able to derive the password from the digest. | 34 | - attacker (A) should not be able to derive the password from the digest. |
| 39 | 35 | ||
| @@ -50,8 +46,7 @@ Security goals | |||
| 50 | master password before decryption is initiated. | 46 | master password before decryption is initiated. |
| 51 | 47 | ||
| 52 | 48 | ||
| 53 | Usage in Sylpheed | 49 | ### Usage in Sylpheed |
| 54 | ----------------- | ||
| 55 | 50 | ||
| 56 | - backup your Sylpheed profile (often $HOME/.sylpheed-2.0)! | 51 | - backup your Sylpheed profile (often $HOME/.sylpheed-2.0)! |
| 57 | 52 | ||
| @@ -72,16 +67,14 @@ touch your backups. You will have to remove all remnants of plain-text | |||
| 72 | passwords manually. | 67 | passwords manually. |
| 73 | 68 | ||
| 74 | 69 | ||
| 75 | Choice of cryptographic primitives | 70 | ### Choice of cryptographic primitives |
| 76 | ---------------------------------- | ||
| 77 | 71 | ||
| 78 | The primary concern when selecting cryptographic primitives was portability. | 72 | The primary concern when selecting cryptographic primitives was portability. |
| 79 | The desire was to go for primitives that are both strong and available in all | 73 | The desire was to go for primitives that are both strong and available in all |
| 80 | supported production distributions of OpenSSL and LibreSSL. | 74 | supported production distributions of OpenSSL and LibreSSL. |
| 81 | 75 | ||
| 82 | 76 | ||
| 83 | Cipher | 77 | #### Cipher |
| 84 | ...... | ||
| 85 | 78 | ||
| 86 | When it comes to implementation, there are several advantages in using stream | 79 | When it comes to implementation, there are several advantages in using stream |
| 87 | cipher or a block cipher that behaves like a stream cipher when used in a | 80 | cipher or a block cipher that behaves like a stream cipher when used in a |
| @@ -91,8 +84,7 @@ AES-256 operating in CFB was selected for these reasons. | |||
| 91 | ChaCha20 should be considered as a replacement in the future. | 84 | ChaCha20 should be considered as a replacement in the future. |
| 92 | 85 | ||
| 93 | 86 | ||
| 94 | Hash-function | 87 | #### Hash-function |
| 95 | ............. | ||
| 96 | 88 | ||
| 97 | Hash-functions are used for: | 89 | Hash-functions are used for: |
| 98 | - key derivation | 90 | - key derivation |
| @@ -118,8 +110,7 @@ Stronger hash-functions like SHA-3 or BLAKE2b can be considered as a | |||
| 118 | replacement in the future. | 110 | replacement in the future. |
| 119 | 111 | ||
| 120 | 112 | ||
| 121 | Master password digest | 113 | #### Master password digest |
| 122 | ...................... | ||
| 123 | 114 | ||
| 124 | In order to be able to decide whether the user typed a "wrong" master password, | 115 | In order to be able to decide whether the user typed a "wrong" master password, |
| 125 | before attempting to decrypt, Sylpheed stores a digest of the master password | 116 | before attempting to decrypt, Sylpheed stores a digest of the master password |
| @@ -130,12 +121,10 @@ produces the same digest is found, it will most probably be useless as a | |||
| 130 | master-password. | 121 | master-password. |
| 131 | 122 | ||
| 132 | 123 | ||
| 133 | Encryption & decryption scheme | 124 | ### Encryption & decryption scheme |
| 134 | ------------------------------ | ||
| 135 | 125 | ||
| 136 | 126 | ||
| 137 | Encryption | 127 | #### Encryption |
| 138 | .......... | ||
| 139 | 128 | ||
| 140 | 129 | ||
| 141 | Input: | 130 | Input: |
| @@ -172,8 +161,7 @@ Operation: | |||
| 172 | mpes1:vo7lsIpD7i6byBA6+vlUoF4OVDfEe+aYRRk4FRtfJ2gMY8M43Kj6WfdfgbViIOl83bI4XEc96okhPW5Mla813aAR1gbPjDg0xmCyIbWOiUv/dg== | 161 | mpes1:vo7lsIpD7i6byBA6+vlUoF4OVDfEe+aYRRk4FRtfJ2gMY8M43Kj6WfdfgbViIOl83bI4XEc96okhPW5Mla813aAR1gbPjDg0xmCyIbWOiUv/dg== |
| 173 | 162 | ||
| 174 | 163 | ||
| 175 | Decryption | 164 | #### Decryption |
| 176 | .......... | ||
| 177 | 165 | ||
| 178 | 166 | ||
| 179 | Input: | 167 | Input: |
| @@ -208,8 +196,7 @@ Operation: | |||
| 208 | if N != "-1", extract the next N-bytes from D: P = D[18 : (18 + N)] | 196 | if N != "-1", extract the next N-bytes from D: P = D[18 : (18 + N)] |
| 209 | 197 | ||
| 210 | 198 | ||
| 211 | Limitations | 199 | ### Limitations |
| 212 | ----------- | ||
| 213 | 200 | ||
| 214 | - when Sylpheed starts, the master-password is loaded into memory and remains | 201 | - when Sylpheed starts, the master-password is loaded into memory and remains |
| 215 | there as long as Sylpheed is running. Currently no strong mechanisms, | 202 | there as long as Sylpheed is running. Currently no strong mechanisms, |
