From: "Jim Carroll" References: <1511554982-875-1-git-send-email-jim@...2322...> <14a28e53-a002-8c03-69e1-44af1529f080@...2181...> In-Reply-To: <14a28e53-a002-8c03-69e1-44af1529f080@...2181...> Date: Sun, 3 Dec 2017 10:10:43 -0500 Message-ID: <18ff01d36c48$e396eac0$aac4c040$@carroll.com> Content-Language: en-us Subject: Re: [Openvpn-devel] [PATCH] Added OpenSSL FIPS 2.0 support to OpenVPN List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: 'Antonio Quartulli' , openvpn-devel@lists.sourceforge.net Hi Antonio, Thanks for reviewing. If you don’t mind, I'm going to answer your comments and questions a bit out of order. First, you suggested a series of coding-style changes and the removal of extra whitespace. I have no comment about these. I'll make all the changes you described and resubmit. You asked: > Then, if openvpn has been compiled with FIPS support, is it "allowed" to > have this binary run with FIPS mode disabled? Shouldn't it be enabled > all the time? The short answer is no. FIPS is only required when an entity is engaged in processing, storing or transmitting Controlled Unclassified Information (CUI). Furthermore, FIPS mode encryption is only required when "encryption" is called for controls. The government rules on this are quite byzantine and described in NIST SP 800-171 and NIST 800-53. There are plenty of times an entity will choose to relax these rules when engaged in non-FIPS required activity (eg: when trying to support older technology used for non CUI access). And you asked: > And generally speaking: what would be a use case for not using FIPS on a > FIPS enabled platform? The best is a service provider with mixed clients. Those customers who require FIPS encryption would be given access to OpenVPN running with FIPS restrictions activated, while others would connect to an instance of the OpenVPN running without the restriction. The '--enable-fips' command line option makes this a simple matter from a single binary on the same server. You asked: >> + * OpenSSL 1.0.2m >> + * openssl-fips-2.0.2 > I think the points above are expected to be ">="? > Or are these versions strictly required? These versions are strictly required. While the fips module is binary compatible with OpenSSL 1.0.1x, it would not include OpenSSL bug fixes available in 1.0.2m which is required by NIST SP 800-171. And because the fips module is only tested and lab certified up to 1.0.2, you cannot take the new 1.1.0x branch. This leaves the user with a single choice 1.0.2m. If I can belabor this slightly (to frame my next answer). In order to understand this issue, an Admin would need to read and digest the FIPS 2.0 User's Guide and the security policy document and read and digest the NIST SP 800-171 document. The 800-171 is a tailoring document, which means it draws controls from another which is the NIST 800-53 security catalog of controls. The point I'm trying to make is that if you are an Admin who's company has tasked you with deploying FIPS mode encryption for protecting CUI and you wander into the OpenVPN project, you will have something like a month+ of reading to make all the correct choices about which software bits to grab and how to build them. In the end, you will discover you are forced to make the precise choices as laid out in the INSTALL document. You asked / commented: > This is more a general thought: do you think it is reasonable to have > the instructions about how to compile OpenSSL into the OpenVPN package? > Things may change on the OpenSSL side and we'd need to keep our > instructions up to date, even though we are not modifying the OpenVPN code. > > After all, as you say below, it's the entire platform that needs to be > FIPS supported, thus I don't believe it's OpenVPN duty to instruct the > users about how building all the different components. There is only one way to achieve FIPS compliance using OpenSSL. Any variance, and the user is not-compliant. It seemed like a "mercy" to offer them the 8 or 10 lines of instructions that will get them to the only valid path for compliance. You commented: > Some distro may even provide their own FIPS enabled packages. This is a good point. It is possible that the distro already includes OpenSSL 1.0.2m. I should change the instructions to suggest they check for this module and then let them know they can skip the step if they already have OpenSSL 1.0.2m installed. Jim C. begin 666 smime.p7s M,( &"2J&2(;W#0$'`J" ,( "`0$Q"S )!@4K#@,"&@4`,( &"2J&2(;W#0$' M`0``H((.$3""!#8P@@,>H ,"`0("`0$P#08)*H9(AO<-`0$%!0`P;S$+, D& M`U4$!A,"4T4Q%# 2!@-5! H3"T%D9%1R=7-T($%",28P) 8#500+$QU!9&14 M'1E%PTP,# U,S Q,#0X,SA:%PTR,# U,S Q,#0X M,SA:,&\Q"S )!@-5! 83`E-%,10P$@8#500*$PM!9&14FQ$SEZ0I M3'V3G[U*O)/M`QKCC\_E;5!:UI=,K(D%3IQE\/>)V:0#P.K&&J7A2/GH>A:E#&`JCIJ&DF&)"K3+!/(ZLZ3X38W\Z?X6EON]="UVM$Y,>M[FU! M7W):<0@...2325...%F@...1652...#?W`"\-PI)RVM X DRU0:, L& M`U4=#P0$`P(!!C /!@-5'1,!`?\$!3 #`0'_,(&9!@-5'2,$@9$P@...2326... %*V] MF'HTM";W^L0F5.\#O> DRU0:H7.D<3!O,0LP"08#500&$P)313$4,!(&`U4$ M"A,+061D5')U8'9 M'EL4!R,V98^PV'>[K$%L1V"#4;#Y,CWG_/8F$\> %J6_6OR'SWAYB2&:XDP' M"H8UO/+>4<32EK?L,`E$4+8Z]%N#!WT9UYR2M[/1"M(63:[H<4KPC:^$PWFO6-^>7NG"0U JVK=CXK#]O:, M&D(%4=1%]9^G8B%H%2!#/)GG?+TDV*F1%W.(/U8;,3@...2328...'$/FLW(#IZ.+AOA MC)B#RQ\Q\41,Q@...2329...@#\?XO1> :R[IS$P.6IIY#R *+M6>8R8>59*4V((7 M6GO0O,>/3H8$,(($KS""`Y>@`P(!`@(1`. CRQ42@...2330...)K6%N>E1G:R$P#08) M*H9(AO<-`0$+!0`P;S$+, D&`U4$!A,"4T4Q%# 2!@-5! H3"T%D9%1R=7-T M($%",28P) 8#500+$QU!9&14'1E%PTQ-#$R,C(P M,# P,#!:%PTR,# U,S Q,#0X,SA:,(&;,0LP"08#500&$P)'0C$;,!D&`U4$ M"!,21W)E871EE,93G!2';Q6 MI@...2333...[A)X);G4:OQ\%H3216CM(P;8+QZ44*G>8RD(M\784Z1U78C"A332@)_ MMAT)@&ZE!#W9NKL6_J&'J2Y#4D,6?*\R4,BF3UKI"-C/DR6<>XCH,&3FI/A6 M@/TJ)!0S%YFL1.5IBZ-&!DO",]3I0)\&L+&LDT"YM0B3.IPJ4Z,0VST@...2334... M`X[93G8E`B$I^J-\<79/[N%?@>G[5(#;PWLU4K>$WB(]+# M,7]9O5(WL#-I M+4/K^M:E\9=W9U&,V>XGZ[RE!SAVC*2I./_?C/4#K$F^RO=SF3H/,JNPP#@8#51T/`0'_! 0#`@&&,!(&`U4=$P$!_P0(, 8!`?\"`0`P'08# M51TE!!8P% 8(*P8!!04'`P(&""L&`04%!P,$,!$&`U4=( 0*, @P!@8$51T@ M`#!$!@-5'1\$/3 [,#F@...2335... UAC-H='1P.B\O8W)L+G5S97)T'1EJSMCY=K5<^_LX/M[XJ/_\$(CG,JVC4T^Y$L8`[*H+=38 MNT)+D&F%$-NF-S3H>^ !$*6Y+,KF'$K8F0W!AN*0DOM:0FHC(1#I M913V2A :)OI\BON;,((% M(#""! B@`P(!`@(1`(+-2':;XZ#&U!G>^P&7OJPP#08)*H9(AO<-`0$+!0`P M@...2336..."S )!@-5! 83`D=",1LP&08#500($Q)'%PTQ-S Q,3@...1595...,# P,#!:%PTR,# Q M,3@...1561...,S4Y-3E:," Q'C ;EY]ERMD$,P;8"I7X M?^ /F69VS8/L_HEV(J#N= $S];)Z)NSNCEKQQL*V\)X*[3:U#K&RT"]7`^(9 M/]<<)D]QC$]^CQB)W6&GH=]!S)"#BX#@1Q)ZRNK%`>L!^4T4%*7SH4#L9W*4 MT$5<*UR%\T_56N':GCA]ND5XQ(/B6G)$ M+.45284OBU4BNP&F^_G1,%^"$.,_`")HQ!K_IW :.=0"J38^R&!!*H#$V>"H M\A*[L =HF*&;G2L'<8*^T%BY+7S.3D[>P=G4O*#;+C4>,]Q8'MX2A9@...2339...$#LC M'5]WL4$YZ?=VZ+H"B_33;&T"`P$``:."`=P/T;X" O18ML(68VK@...2340... M(7<123 .!@-5'0\!`?\$! ,"!: P# 8#51T3`0'_! (P`# =!@-5'24$%C 4 M!@@K!@$%!0<#! 8(*P8!!04'`P(P1@...1499...#51T@!#\P/3 [!@PK!@$$`;(Q`0(! M`P4P*S I!@@K!@$%!0<"`18=:'1T<',Z+R]S96-U:PFSC@...2341... 1V MH"=?*@"]NZ7+1X&;TMD)/=KS<3BZN1X<*%FAF5TT8@\9&Y)W7&M28.,GF/5, MV'!"E<-"(+ZQU&52)<8(H0D6.RB<5"5L#EHH-[8IB]:W7W0)9A M3OF,X]<-(XS5!1:/Q-+\ZA; \X:\/*#59:$JD)8S.TZ20:Q(!CUZ+E[A M!-V6+Y9+9_#2CX G4C7LD,*>D_T?J?X.7^&M(*ZE=+5X$_)7^:4-5GJCO[GY MC*7/4G($(0M##(#H^4KGLA4=<'"+T[G\GHKWZ/FVC@...2356...\/`_<= MG!#.8CRGQ@:I66#>0P+(?)^AI,RW6 0@...2357...^J!C8RG JH,3B5QF$XJ'NU8O ^OR1U#NZ[1ULV!:#'<+-@...2358...?\4I/^@J```````` ` end