View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0004738 | unreal | module api | public | 2016-08-22 17:47 | 2016-09-29 19:19 | 
| Reporter | capitaine | Assigned To | syzop | ||
| Priority | normal | Severity | minor | Reproducibility | always | 
| Status | resolved | Resolution | fixed | ||
| Product Version | 4.0.5 | ||||
| Fixed in Version | 4.0.7 | ||||
| Summary | 0004738: DH parameters not loaded | ||||
| Description | OpenSSL dh.pem is not loaded when configured. The relative path is not recognized. Also, it's missing in the online documentation.  | ||||
| Steps To Reproduce | Configure set::ssl::dh "ssl/dh.pem"; | ||||
| Additional Information | s_conf.c : - else if (!strcmp(cepp->ce_varname, "dh")) - { - ircstrdup(tempiConf.x_dh_pem, cepp->ce_vardata); - } + else if (!strcmp(cepp->ce_varname, "dh")) + { + convert_to_absolute_path(&cepp->ce_vardata, CONFDIR); + ircstrdup(tempiConf.x_dh_pem, cepp->ce_vardata); + }  | ||||
| Tags | No tags attached. | ||||
| 3rd party modules | |||||
| 
		 | 
	
	If the additional information you submitted is supposed to be a diff/commit please consider doing a Pull request of your changes on UnrealIRCd's Github page. https://github.com/unrealircd/unrealircd/pulls In the comment of the pull you may reference this bug report. Thanks.  | 
| 
		 | 
	Ok I had no fork, but I did one :) | 
| 
		 | 
	
	Hi capitaine, First of all, thank you for reporting the bug. And even better that you did a pull request :) Now on-topic: I would not recommend using static DH. You should use ECDHE instead, which is also DH but "ephemeral", in other words: temporary, a key is generated for every connection. ECDHE is supported by UnrealIRCd 4 out of the box (by default). One important thing is that ECDHE supports Forward Secrecy (PFS) and static DH does not. So, your bug report is valid, and the relative-path fix too, but... taking it one step further: Perhaps we should remove DH support? Because people may think it's more secure, while in fact it isn't. Or print a warning on launch/rehash.  | 
| 
		 | 
	
	Ok it makes sense. Yes, I thought DH params could increasing ECDHE security, but I see now the difference between static and elliptic key. The warning is a good idea. It looks like a static key of 2048+ is not yet discouraged. But evolution is so fast, and I've always had my connections negociated to ECDHE on Unreal 4, so I guess not many people would contest removing the DH params.  | 
| 
		 | 
	
	Hi capitaine, It seems I was slightly confused. There are not just 2 DH variations but more: static DH, DHE, ADH, AECDH, ECDHE, .. Anyway, we tend to favor ECDHE at UnrealIRCd because it is lightweight (it only adds little CPU %) and the most modern one. If you have a dh.pem file you will enable DHE support, something I previously didn't mention. And DHE provides forward secrecy. That being said, DHE was affected by vulnerabilities like Logjam (which doesn't affect you as you said you used a 2048+ key). Also I saw this when reading up about it, Chromium intending to remove DHE support: https://groups.google.com/a/chromium.org/forum/#!topic/security-dev/dYyhKHPnrI0 "Intent to deprecate: DHE-based cipher suites" Also fun fact: "DHE today is only negotiated for 2% of connections by Chrome" So I don't think we should advertise too much about support for it, but it wasn't as bad as I told you earlier :D I'll commit your fix, though.  | 
| 
		 | 
	
	Thanks for the report & patch, fixed now. https://github.com/unrealircd/unrealircd/commit/603adb8ec21643f7a129b29b782ca4ba0e676fdc  | 
| Date Modified | Username | Field | Change | 
|---|---|---|---|
| 2016-08-22 17:47 | capitaine | New Issue | |
| 2016-08-24 03:25 | 
					 | 
				Note Added: 0019387 | |
| 2016-08-25 12:52 | capitaine | Note Added: 0019390 | |
| 2016-08-29 09:11 | syzop | Note Added: 0019396 | |
| 2016-08-29 09:12 | syzop | Assigned To | => syzop | 
| 2016-08-29 09:12 | syzop | Status | new => feedback | 
| 2016-08-29 12:19 | capitaine | Note Added: 0019398 | |
| 2016-09-26 18:08 | syzop | Note Added: 0019419 | |
| 2016-09-26 18:22 | syzop | Note Edited: 0019419 | |
| 2016-09-29 19:19 | syzop | Note Added: 0019429 | |
| 2016-09-29 19:19 | syzop | Status | feedback => resolved | 
| 2016-09-29 19:19 | syzop | Fixed in Version | => 4.0.7 | 
| 2016-09-29 19:19 | syzop | Resolution | open => fixed | 
| 2017-01-06 15:48 | syzop | Category | module => module api |