2 changed files with 87 additions and 6 deletions
@ -1,13 +1,94 @@ |
|||||
# mod-entropy |
# mod-entropy |
||||
|
|
||||
## abstract |
|
||||
|
|
||||
Apache module to generate entropy. |
Apache module to generate entropy. |
||||
|
|
||||
## requires |
|
||||
|
## Synopsis |
||||
|
|
||||
|
Add the following lines to your apache config file. |
||||
|
|
||||
|
LoadModule entropy_module modules/mod_entropy.so |
||||
|
SetInputFilter ENTROPY |
||||
|
|
||||
|
## Description |
||||
|
|
||||
|
This is an apache module the creates random values from incoming requests. It |
||||
|
will only work on systems that have the RNDADDENTROPY ioctl, i only know of |
||||
|
linux. |
||||
|
|
||||
|
If you use encryption on your pages either for ssl, by using mcrypt for stuff |
||||
|
or ssh, gpg, etc. you will use the systems random source. This is filled up by |
||||
|
the kernel via some irq and user interaction. So it fills quite slowly and it |
||||
|
is limited. And it fills even slower on a server where no Keyboard Interrupts |
||||
|
or such will happen most of the time. |
||||
|
|
||||
|
This problem is addressed by the existence of /dev/urandom which does some |
||||
|
magic, so that the request for random numbers will never block. But the |
||||
|
quality of these random numbers is a matter of discussion right now. |
||||
|
|
||||
|
So i came up with the idea that user interachtion on a webserver (request) |
||||
|
related to time are also entropic in nature and decided to build an apache |
||||
|
module to fill the kernel random pool by that way. This should increase the |
||||
|
quality as well as the responsiveness of encryption. |
||||
|
|
||||
|
Actually i must confess that i have no really clue what a random number makes |
||||
|
it cryptographically "good" and i would be happy to get some feedback on this. |
||||
|
|
||||
|
## Requirements |
||||
|
|
||||
|
### Add **cap_sys_admin** to apache. |
||||
|
|
||||
|
You need libcap being installed on your system to do this. |
||||
|
Assuming your apache binary is /usr/sbin/apache2 do the following as root: |
||||
|
|
||||
|
setcap cap_net_bind_service,cap_sys_admin=ep /usr/sbin/apache2 |
||||
|
|
||||
|
And then make sure apache is started by the user configured in http.conf. |
||||
|
This should prevent right drop while changing the effective user id. |
||||
|
If apache2 does not start it most likely is related to some access rights. |
||||
|
Just have a look in the error log as mentioned in this. |
||||
|
|
||||
|
**ATTENTION: This module adds data to the kernel random number pool. To do |
||||
|
this the apache process needs CAP_SYS_ADMIN. Without any role based access |
||||
|
control this is true only for the root user. |
||||
|
|
||||
|
An alternative is to assign CAP_SYS_ADMIN to the apache process. This still |
||||
|
seems not to be the ideal solution as this would give the apache process |
||||
|
access to several system internals like de-/activation of swap devices |
||||
|
mount/unmount, etc. Anyway, this is the best i could figure out. |
||||
|
|
||||
|
It would be a good to have a special capabilty just for random pool |
||||
|
administration but actually i have no clue if and how this might be possible. |
||||
|
Anyway this still might lead to problems with the security of your encryption |
||||
|
as an attacker might be able to add own random values to the random pool which |
||||
|
in turn might compromize your encryption. |
||||
|
|
||||
|
Actually i have no good solution for this...maybe it is not a good idea at all |
||||
|
to generate random numbers this way, i would be lucky to get feedback on this |
||||
|
issue.** |
||||
|
|
||||
|
## Dependencies |
||||
|
|
||||
|
* Apache 2 |
||||
|
|
||||
|
## Contributing |
||||
|
|
||||
|
Just write me an email. |
||||
|
|
||||
|
## License |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
Apache |
|
||||
|
You should have received a copy of the GNU General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
## status |
|
||||
|
## Author |
||||
|
|
||||
unknown |
|
||||
|
Georg Hopp <georg@steffers.org> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue