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