Showing
2 changed files
with
87 additions
and
6 deletions
README
deleted
100644 → 0
1 | 1 | # mod-entropy |
2 | 2 | |
3 | -## abstract | |
4 | - | |
5 | 3 | Apache module to generate entropy. |
6 | 4 | |
7 | -## requires | |
5 | +## Synopsis | |
6 | + | |
7 | +Add the following lines to your apache config file. | |
8 | + | |
9 | + LoadModule entropy_module modules/mod_entropy.so | |
10 | + SetInputFilter ENTROPY | |
11 | + | |
12 | +## Description | |
13 | + | |
14 | +This is an apache module the creates random values from incoming requests. It | |
15 | +will only work on systems that have the RNDADDENTROPY ioctl, i only know of | |
16 | +linux. | |
17 | + | |
18 | +If you use encryption on your pages either for ssl, by using mcrypt for stuff | |
19 | +or ssh, gpg, etc. you will use the systems random source. This is filled up by | |
20 | +the kernel via some irq and user interaction. So it fills quite slowly and it | |
21 | +is limited. And it fills even slower on a server where no Keyboard Interrupts | |
22 | +or such will happen most of the time. | |
23 | + | |
24 | +This problem is addressed by the existence of /dev/urandom which does some | |
25 | +magic, so that the request for random numbers will never block. But the | |
26 | +quality of these random numbers is a matter of discussion right now. | |
27 | + | |
28 | +So i came up with the idea that user interachtion on a webserver (request) | |
29 | +related to time are also entropic in nature and decided to build an apache | |
30 | +module to fill the kernel random pool by that way. This should increase the | |
31 | +quality as well as the responsiveness of encryption. | |
32 | + | |
33 | +Actually i must confess that i have no really clue what a random number makes | |
34 | +it cryptographically "good" and i would be happy to get some feedback on this. | |
35 | + | |
36 | +## Requirements | |
37 | + | |
38 | +### Add **cap_sys_admin** to apache. | |
39 | + | |
40 | +You need libcap being installed on your system to do this. | |
41 | +Assuming your apache binary is /usr/sbin/apache2 do the following as root: | |
42 | + | |
43 | + setcap cap_net_bind_service,cap_sys_admin=ep /usr/sbin/apache2 | |
44 | + | |
45 | +And then make sure apache is started by the user configured in http.conf. | |
46 | +This should prevent right drop while changing the effective user id. | |
47 | +If apache2 does not start it most likely is related to some access rights. | |
48 | +Just have a look in the error log as mentioned in this. | |
49 | + | |
50 | +**ATTENTION: This module adds data to the kernel random number pool. To do | |
51 | +this the apache process needs CAP_SYS_ADMIN. Without any role based access | |
52 | +control this is true only for the root user. | |
53 | + | |
54 | +An alternative is to assign CAP_SYS_ADMIN to the apache process. This still | |
55 | +seems not to be the ideal solution as this would give the apache process | |
56 | +access to several system internals like de-/activation of swap devices | |
57 | +mount/unmount, etc. Anyway, this is the best i could figure out. | |
58 | + | |
59 | +It would be a good to have a special capabilty just for random pool | |
60 | +administration but actually i have no clue if and how this might be possible. | |
61 | +Anyway this still might lead to problems with the security of your encryption | |
62 | +as an attacker might be able to add own random values to the random pool which | |
63 | +in turn might compromize your encryption. | |
64 | + | |
65 | +Actually i have no good solution for this...maybe it is not a good idea at all | |
66 | +to generate random numbers this way, i would be lucky to get feedback on this | |
67 | +issue.** | |
68 | + | |
69 | +## Dependencies | |
70 | + | |
71 | + * Apache 2 | |
72 | + | |
73 | +## Contributing | |
74 | + | |
75 | +Just write me an email. | |
76 | + | |
77 | +## License | |
8 | 78 | |
9 | -Apache | |
79 | + This program is free software: you can redistribute it and/or modify | |
80 | + it under the terms of the GNU General Public License as published by | |
81 | + the Free Software Foundation, either version 3 of the License, or | |
82 | + (at your option) any later version. | |
83 | + | |
84 | + This program is distributed in the hope that it will be useful, | |
85 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
86 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
87 | + GNU General Public License for more details. | |
88 | + | |
89 | + You should have received a copy of the GNU General Public License | |
90 | + along with this program. If not, see <http://www.gnu.org/licenses/>. | |
10 | 91 | |
11 | -## status | |
92 | +## Author | |
12 | 93 | |
13 | -unknown | |
\ No newline at end of file | ||
94 | +Georg Hopp <georg@steffers.org> | ... | ... |
Please
register
or
login
to post a comment