Hi, Here's the summary of the previous community meeting.
--- COMMUNITY MEETING Place: #openvpn-devel on irc.freenode.net List-Post: openvpn-devel@lists.sourceforge.net Date: Thursday, 2nd Dec 2010 Time: 18:00 UTC Planned meeting topics for this meeting were on this page: <https://community.openvpn.net/openvpn/wiki/Topics-2010-12-02> Next meeting will be announced in advance, but will be on the same weekday and at the same time. Your local meeting time is easy to check from services such as <http://www.timeanddate.com/world clock> or with $ date -u SUMMARY Andj, blaisegassend, common, cron2, dazo, ecrist, jamesyonan and mattock were present in this meeting. -- Discussed 2.2-beta5 release briefly. Release is ready and will appear on openvpn.net very soon, hopefully today. -- Discussed the "Floating TLS" patch: <http://thread.gmane.org/gmane.network.openvpn.devel/4106> This had been discussed briefly in an earlier meeting: <http://thread.gmane.org/gmane.network.openvpn.devel/4189> After a long discussion agreed that the current approach blaisegassend has taken is a good one and that the floating-tls feature does not weaken the security of OpenVPN or break compatibility with non-floating-tls clients. However, as all implementation details were not agreed upon, it was decided to continue the discussion on the openvpn-devel mailing list. Dazo promised to send email with further details. -- Discussed enabling --enable-password-save option by default on Windows builds; this topic has been discussed in an earlier meeting: <http://article.gmane.org/gmane.network.openvpn.devel/3927> That discussion continued on the openvpn-user mailing lists: <http://thread.gmane.org/gmane.network.openvpn.user/30958> Agreed that it's technically impossible to prevent clients from saving their passwords, so having this feature disabled is just hurting our users who depend on this feature. Decided to enable this feature on the 2.2-rc release build. -- Discussed 2.2 release plans. Currently the plan is to - Release 2.2-beta5 now - Release 2.2-rc during Christmas holidays (~25th Dec) - Release 2.2 (FINAL) in January Agreed that this plan is doable. -- Discussed modularization of the SSL layer. This work has been started by andj who has created an abstraction layer between the SSL provider and OpenVPN. Currently his abstraction layer works for OpenSSL and PolarSSL. Some other SSL providers, such as NSS, may be more difficult to integrate cleanly, but we need not support them. Being able to switch between SSL providers benefits those who need FIPS-certified solutions and users of embedded systems where good performance with minimal footprint is a high priority. Agreed to postpone further discussion until January, when andj is ready to release his patches to public. -- Discussed milestone dates for OpenVPN 2.3. Current goal is to release first 2.3-beta in March 2010, and to make the final release in August 2010. --- Full chatlog as an attachment -- Samuli Seppänen Community Manager OpenVPN Technologies, Inc irc freenode net: mattock
(20:01:45) mattock: okidoki, one minute past already (20:01:58) mattock: everybody set? (20:03:44) dazo: I am ... (even though I'll be working in parallel ... deadline for a new release approaching at work) (20:04:04) ***cron2 sits (20:05:53) mattock: so, topic list is here: https://community.openvpn.net/openvpn/wiki/Topics-2010-12-02 (20:05:55) vpnHelper: Title: Topics-2010-12-02 â OpenVPN Community (at community.openvpn.net) (20:06:26) mattock: so 2.2-beta5 release... (20:06:59) mattock: the download page has been updated already, it's just waiting to be pushed to production (20:07:10) cron2: cool (20:07:47) blaisegassend [~bla...@gw.willowgarage.com] è entrato nel canale. (20:08:15) mattock: Frank (our web guy) has not yet responded to me, but I'm pretty sure the 2.2-beta5 release will go live later today, or tomorrow evening (UTC) (20:08:22) mattock: hi blaisegassend! (20:08:44) mattock: perhaps we should discuss floating-tls patch for a while? blaise wrote it (20:08:55) mattock: jamesyonan: are you there? (20:08:58) blaisegassend: Hi. At Samuli's suggestion I dropped by to discuss the floating tls patch. (20:09:07) mattock: samuli = me (20:09:08) jamesyonan: hi guys (20:09:20) mattock: hi jamesyonan! good thing you're available! (20:09:21) ***ecrist waves (20:09:30) dazo: blaisegassend: we're gonna add your patch the agenda this week to then (20:09:44) blaisegassend: OK (20:09:46) mattock: I suggest discussing it right now... ok for everybody? (20:09:53) blaisegassend: Works for me. (20:10:12) mattock: the patch in question is this: http://thread.gmane.org/gmane.network.openvpn.devel/4106 (20:10:13) vpnHelper: Title: Gmane Loom (at thread.gmane.org) (20:10:28) mattock: we discussed it briefly in last community meeting: http://thread.gmane.org/gmane.network.openvpn.devel/4189 (20:10:30) vpnHelper: Title: Gmane Loom (at thread.gmane.org) (20:10:50) mattock: so, the issue was that we were not sure what security implications it would have (20:11:02) mattock: besides that sounded like a neat and very useful feature (20:11:05) dazo: I've just sent a reply to his mail (20:11:12) dazo: I can pastebin it now (20:11:23) mattock: dazo: that would be great (20:11:58) dazo: http://openvpn.pastebin.ca/2008769 (20:12:30) Essobi: So I verified the certs I'm using work on an unmodified OpenVPN beta3... (20:13:11) Essobi: I'm trying to track down why SSL_CTX_user_certificate_chain_file is bombing now. I suspect it's using a non-fips cipher/hash somewhere. (20:13:19) blaisegassend: For the question of compiling in or not by default, I don't think this adds any security holes if you do not enable floating-tls. (20:13:32) ecrist: Essobi: meeting in progress. (20:13:40) dazo: Essobi: could that wait a little bit ... we can add it to the meeting agenda in the end (20:13:59) Essobi: ecrist: Roger that.. Just commenting on what I'm going through here. (20:14:06) cron2: blaisegassend: are openvpn binaries with and without that patch still compatible? (20:14:09) mattock: essobi: no problem (20:14:32) blaisegassend: If you don't set the floating-tls option, openvpn behaves exactly as it would without the option. (20:14:53) cron2: yeah, but what if I wanted to connect with an unmodified client to a server that has the option active (or vice versa)? (20:15:13) blaisegassend: A client that is not using floating tls can connect to a server that has it enabled. (20:15:27) blaisegassend: I have added an opcode that is used by floating tls connections. (20:15:28) cron2: ok, protocol stays compatible (20:15:42) blaisegassend: If you don't use that opcode, you are handled like a not-floating connection. (20:15:52) jamesyonan: how does this interact with the already-existing TLS session-id ? (20:16:01) blaisegassend: We have been using it extensively in a mixed environment without any problems. (20:16:27) jamesyonan: so do these ID bytes get prepended to all packets (i.e. TLS control channel and data channel as well?) (20:16:31) blaisegassend: I'm not actually familiar with what the session-id is. (20:16:39) blaisegassend: So this would be orthogonal to it. (20:17:07) jamesyonan: basically OpenVPN, when running in TLS mode, has two packet types -- control channel and data channel (20:17:08) blaisegassend: The Id bytes get prepended to all packets. They get used instead of the IP/port to identify the connection. (20:18:33) blaisegassend: In floating TLS, both control and channel get wrapped in an extra layer that is used to direct the packet to the correct connection. That prefx then gets stripped off and normal processing ensues. (20:19:02) jamesyonan: so the IP address of the client can change without needing to trigger a new TLS renegotiation (20:19:16) blaisegassend: Correct. No renegociation when the IP changes. (20:20:05) dazo: I hate to be pessimistic ... but that sounds like an easy target for session hijacking (20:20:17) jamesyonan: it would be nice if we could figure out a way to do this without adding anything to the protocol (20:20:28) jamesyonan: dazo: no, not really an issue (20:21:03) blaisegassend: If I remember correctly (but I want to double check this), the decision of whether to switch to the new IP/port takes place after the packet has been authenticated. (20:21:19) blaisegassend: This should prevent session hijacking. (20:21:30) jamesyonan: there's a sort of theorem in crypto that any secure protocol cannot be made insecure by adding additional layering (20:21:55) jamesyonan: that's why SSL works over TCP (of course TCP is completely insecure) (20:21:57) krzie ha abbandonato il canale (quit: Ping timeout: 272 seconds). (20:22:09) blaisegassend: You can add denial of service problems by adding a layer though. (20:22:23) jamesyonan: right -- but only DoS (20:22:33) blaisegassend: Agree. (20:22:47) jamesyonan: you can't create an active or passive attack by layering (20:22:49) blaisegassend: I am open to suggestions on how to do this without adding to the protocol. (20:23:19) blaisegassend: If there is an identifier that I could use instead of the 64-bit identifier that I tack on in front of the packet, that would be a totally good way to go. (20:23:47) blaisegassend: Not clear to me that it would be easy for a connection to say whether it is floating or not though. (20:24:25) blaisegassend: Is this session-id in all packets? Is there a place I could read about it? (20:26:13) mattock: session_id.c and ssl.c seem to contain related code (20:26:16) jamesyonan: the session-id right now is only in front of control channel packets (20:26:36) jamesyonan: it's kind of a tradeoff -- doing it without changing the protocol will be more complicated (20:26:57) jamesyonan: but changing the protocol is sort of a big deal (20:27:14) krzie [~k@openvpn/community/support/krzee] è entrato nel canale. (20:27:19) blaisegassend: If the session ID is not contained in data packets, how can I determine which connection an incoming packet belongs to? (20:27:49) blaisegassend: I don't currently see how to answer that question without a change to the protocol. (20:28:20) jamesyonan: so right now the session ID (on control channel packets) is 64 bits, but on data channel packets, to save space, there are only a few bits that are used as an index into an array of known session IDs (20:28:59) blaisegassend: OK, so it is possible to tell which connection a packet belongs to easily. (20:30:31) blaisegassend: Is that index unique across all clients, or is it per-client? (20:31:10) jamesyonan: just thinking... no, I don't think there's enough info in a data channel packet to do it statelessly (20:32:30) mattock: would the current approach blaisegassend has taken (=adding another layer) the best after all? (20:32:48) blaisegassend: It is certainly the simplest I could find. :) (20:33:01) mattock: especially if this feature is not used by a large percentage of users (20:33:03) jamesyonan: if you wanted to leverage off of the control channel session ID, you would probably need to add a new control channel message that says something like "session FOO is now available at 1.2.3.4" (20:33:15) blaisegassend: But if the information is there in a data packet, I think it would be well worth using it instead. (20:33:46) jamesyonan: the advantage of doing it this way is that it would be more resistant to DoS (20:33:47) ecrist: really, couldn't this all done with a perl one-liner? (20:33:54) blaisegassend: I would much much rather not have any message necessary when the session changes IP/port. (20:34:05) cron2: ecrist: sure, but the line would be awfully long (20:34:09) ecrist: :D (20:34:10) mattock: :) (20:34:31) blaisegassend: This way the networking stack can be completely decoupled from openvpn. (20:34:42) blaisegassend: You just change your networking setup, and openvpn just works. (20:35:13) blaisegassend: Otherwise the openvpn client needs to somehow know that it is sending from a different place than it previously was. (20:35:14) dazo: as the prepending approach works now, which (to my understanding) does extend the protocol without breaking backwards compatibility be a good approach, but that we think a bit more about that first ... like adding a 32bit (64bit?) field stating protocol features, and then one of these bits can indicate --tls-float, and then that session id blaisegassend needs would come encoded somewhere together with openvpn data? (20:35:14) ecrist: it would be nice for multi-homed networks (20:35:15) mattock: jamesyonan: so could the client send the "session FOO is now at" message _after_ IP has changed? (20:35:38) dazo: that sounds like a safer approach too (20:35:43) cron2: before it changes would be somewhat tricky (20:35:48) dazo: the server doesn't "guess" where the client moved (20:35:57) jamesyonan: dazo: agreed -- some sort of capabilities handshake would be good (20:35:59) dazo: cron2: :) (20:36:02) cron2: but if we ever get to implement the "predict future" module, I'd like to buy a few lottery tickets :) (20:36:29) mattock: me too, stupid question :) (20:36:56) jamesyonan: the problem with the data channel session ID is that it's very compressed and not unique across all clients (20:38:00) blaisegassend: A bit overwhelmed by the various threads. What is the DOS attack you have in mind? If you only accept the new IP/port after you have authenticated the packet, you should be good, no? (20:38:28) jamesyonan: blaisegassend: there's no encryption at all on your ID prefix? (20:38:47) blaisegassend: No encryption on the prefix. (20:39:03) blaisegassend: (Just as there is no encryption on the IP/port) (20:39:22) jamesyonan: right, that's fine (20:40:00) Essobi: ecrist: Let me know when the meeting is over please. :) (20:40:19) dazo: Essobi: bored already? ;-) (20:40:50) jamesyonan: yes, in principle I think the ID prepending approach is less complicated than the alternatives (20:41:05) blaisegassend: I don't like approaches that need a control message to switch because if that control message gets lost you delay when the server starts sending to the new IP/port. (20:41:23) jamesyonan: agreed (20:41:29) blaisegassend: This approach has worked well for me because it is extremely simple. If a packet gets to the server, the server switches to the new location. (20:41:50) blaisegassend: Unless there is a specific security problem that folks can find, I would rather keep this simplicity. (20:41:56) dazo: but if we take that step to prepend ... let's consider a feature handshake, to avoid needing later on to add yet another layer, which might break something more (20:42:17) dazo: easily (20:42:23) blaisegassend: I don't want my videoconference to get interrupted for a second because a few control packets got lost. (20:42:43) jamesyonan: I agree that it's simple. But it adds some extra overhead to the protocol. (20:43:12) blaisegassend: Dazo: What do you mean by feature handshake? (20:43:27) dazo: blaisegassend: see my msg @19:35:13 (20:43:27) Essobi: dazo: nosir (20:45:05) blaisegassend: dazo: Are you referring to your adding a 32bit field proposal? (I don't have the times displayed). (20:45:19) ecrist: yes, he is (20:45:21) dazo: blaisegassend: yes ... I sent a copy in PM (20:45:28) blaisegassend: In that case, I would argue that the opcode is effectively doing exactly what you suggest. (20:45:42) dazo: blaisegassend: how many bits is that opcode? (20:45:55) jamesyonan: [ I've got a meeting in 10 minutes ] (20:46:11) blaisegassend: If you see a packet with the FLOATING_TLS_OPCODE then you know it is a floating tls packet. (20:46:43) mattock: jamesyonan: a quick question: did you enable --enable-password-save on the Windows build for 2.2-beta5? (20:46:54) mattock: I can't remember if I mentioned about that to you... (20:46:56) dazo: blaisegassend: yeah, but my point is that we want to make sure we can extend the protocol more easily without breaking different clients protocol support (20:47:05) jamesyonan: mattock -- no I didn't (20:47:07) mattock: ok (20:47:39) mattock: jamesyonan: what's your final take on current floating-tls implementation? (20:47:45) jamesyonan: mattock: there's a setting for that in install-win32/settings.in (20:47:50) jamesyonan: but I would need to rebuild (20:48:17) ***dazo votes for *not* rebuilding beta5 ... rather do that for the RC release (20:48:23) mattock: +1 (20:48:35) cron2: huh, how did we jump to beta5 (20:48:48) dazo: cron2: mattock diverted it :) (20:48:54) mattock: cron2: our release pace was too slow for our development pace (20:49:02) cron2: ah (20:49:10) cron2: mattock: yes, I noticed that (20:49:25) jamesyonan: I think floating-tls is reasonable if it's disabled by default and if it's backward compatible from a protocol perspective (20:49:52) blaisegassend: By disabled by default you mean not compiled in, correct? (20:50:07) jamesyonan: yes (20:50:17) blaisegassend: That sounds reasonable. (20:50:51) blaisegassend: Just out of curiosity, the idea here is to prevent code bloat for the default configuration? (20:51:18) mattock: yes, and also to prevent code bloat for embedded systems (20:51:23) dazo: I would like to have a broader discussion about opcode/feature set indication in the protocol layer before going for an inclusion (20:51:44) mattock: dazo: you mean like "future proofing" this patch? (20:51:52) dazo: mattock: yes (20:52:02) mattock: sounds reasonable to me (20:52:05) dazo: and to make sure we can extend the protocol more easily in the future (20:52:29) blaisegassend: It seems to me that the feature set approach makes more of a break to the protocol now. (20:54:02) dazo: it completely possible that I've misunderstood something ... but for me prepending this session ID you use (instead of IP/port) before the real OpenVPN packets, right? (20:54:17) blaisegassend: But I'm not sure I have a clear enough picture of your suggestion. (20:54:44) blaisegassend: Each openvpn packet starts with an opcode. I added an opcode that is used by floating TLS packets. (20:55:00) blaisegassend: If a non floating-tls client sees a floating-tls packet it will ignore it because it does not know that opcode. (20:55:16) jamesyonan: re: protocol capabilities handshake, look at key_method_2_(read|write) in ssl.c (20:55:31) jamesyonan: this is the place where stuff like that would be implemented (20:55:45) dazo: blaisegassend: aha! Then I catch better (20:55:53) ***dazo looks at the code (20:56:02) jamesyonan: the protocol is already designed so that certain changes can be made here without breaking backward compatibility (20:57:02) dazo: that's my misunderstanding then ... I was not aware of that one (20:57:06) blaisegassend: Would these capabilities show up in a data packet? (20:57:21) jamesyonan: no, this is the control channel (20:57:33) blaisegassend: If they don't then I still need something to allow me to determine if a packet is a floating-tls packet, and if it is what the session-id is. (20:57:43) blaisegassend: An extra opcode seems very natural for that. (20:57:56) dazo: blaisegassend: indeed (20:58:05) dazo: jamesyonan: how big is the current OPCODE field? (20:58:10) dazo: blaisegassend: ^ (20:58:28) dazo: 8 bit? (20:58:38) jamesyonan: but keep in mind that this is for per-session negotiation, not per-packet (20:58:41) blaisegassend: Currently the opcode is 6 bits, if I recall, but let me double check. (20:58:49) jamesyonan: I gotta run now (20:59:02) dazo: jamesyonan: c'ya! Great you could join today! (20:59:08) blaisegassend: dazo: you sound more in favor of the approach now. (20:59:15) blaisegassend: jamesyonan: thanks for the discussion. (20:59:21) mattock: bye jamesyonan! (20:59:52) dazo: blaisegassend: As long as we're able to extend the protocol without breaking it after your approach (21:00:26) roentgen [~arthur@openvpn/community/support/roentgen] è entrato nel canale. (21:00:34) blaisegassend: I think it would be just as easy to extend the protocol after the floating-tls patch as before. (21:00:37) dazo: blaisegassend: but I would like to avoid spending an OPCODE for only this feature .... if it would be possible to indicate the --tls-float flag in a feature register which is bigger, we won't limit the protocol so easily (21:00:50) dazo: especially if the OPCODE is just 6 bits (21:02:08) blaisegassend: Just checked. Opcode is 5 bits. (21:02:24) dazo: that's even "worse" :) (21:02:26) blaisegassend: Currently only 8 opcodes are used. (21:02:55) dazo: yeah, but imagine we're having bigger plans for OpenVPN3 ... which will be more modular, and might add a lot of more features (21:03:14) blaisegassend: Most features you can do just fine without opcodes. (21:03:30) dazo: it's not a requirement to keep it protocol compatible with 2.x ... but if that's doable, I think that's better (21:04:10) blaisegassend: This is a good candidate for an extra opcode because you want to encapsulate all traffic to/from a client with a session ID. (21:04:48) dazo: so you send TLS_FLOAT_OPCODE | session ID | openvpn packets (21:04:57) blaisegassend: Exactly. (21:05:02) dazo: or NORMAL_OPCODE | openvpn packets (21:05:08) blaisegassend: Yup. (21:05:55) cron2: sounds like a nice hack to me :-) (not that i know anything about the SSL/TLS stuff) (21:05:59) blaisegassend: By having floating-tls at this high level, nothing else in the code needs to be aware of it. (21:06:01) dazo: yeah, but that's why I was initially thinking: V2_PROTO_OPCODE | feature_register (tls-float=1)| session ID | openvpn packet (21:06:42) dazo: and then other features could append their own packets, based on the feature register ... and the parse would just extract the packets accordingly (21:06:50) dazo: do you follow my thoughts now? (21:07:06) blaisegassend: Yes, but the layering seems backward to me. (21:07:24) dazo: fair enough, I'm open for other possibilities (21:07:35) blaisegassend: You are now saying that all opcode types will have this feature register. (21:07:58) blaisegassend: Otherwise opcodes that don't have that feature can't work with floating-tls. (21:08:27) blaisegassend: But if all opcodes have that feature_register, then it should really appear before the opcode. (21:08:27) dazo: yes, in the case the opcode is V2_PROTO_OPCODE (21:08:43) blaisegassend: So now in fact effectively extended what an opcode is. (21:08:57) dazo: yes (21:09:41) blaisegassend: I'm going to have to take off here soon. (21:09:44) dazo: but, to make sure it is backwards compatible ... using a V2_PROTO_OPCODE, to make sure we don't break the protocol (21:10:05) mattock: can we reach an agreement on this today? or shall we continue discussion on the mailing list? (21:10:23) blaisegassend: If you use a V2_PROTO_OPCODE, you are going to break the protocol. (21:10:36) blaisegassend: And it isn't clear to me which would be the right V2 opcode to use. (21:10:48) dazo: not in any other way how your TLS_FLOAT_OPCODE works (21:11:26) blaisegassend: It might make sense to move this to the mailing list. (21:11:29) mattock: I agree (21:11:42) mattock: think about this for a while and allow other devs to participate (21:11:55) mattock: dazo: could you send mail to -devel about this? (21:12:10) blaisegassend: dazo: if you have a specific proposal, could you write it up briefly? (21:12:13) mattock: with a summary of what we discussed today (21:12:20) blaisegassend: (On the mailing list) (21:12:21) dazo: mattock: I can ... it'll probably be in the weekend or so (21:12:30) mattock: I don't think we're in a hurry (21:12:34) dazo: blaisegassend: I'll combine my proposal (21:12:45) mattock: excellent! (21:12:49) mattock: (we can move on) :) (21:12:57) blaisegassend: Thanks for the discussion folks. (21:13:03) dazo: blaisegassend: thank you too :) (21:13:16) mattock: blaisegassend: great that you could discuss this with us! (21:13:29) blaisegassend ha abbandonato il canale (quit: Quit: Leaving). (21:13:29) mattock: I hope we'll be seeing you here in the future! (21:13:53) mattock: ok, so ecrist suggested we discuss --enable-password-save on windows builds (21:14:18) mattock: I believe we decided to include that feature on Windows builds by default... but current 2.2-beta5 builds are still lacking it (21:14:36) dazo: I'm not too much in favour of that, tbh ... not until we can forcefully disable it from the server (21:15:15) cron2: people use it, and will not use our builds if we do not provide it, so this would reduce testing coverage (21:15:23) cron2: I think we've been through this before... (21:15:29) dazo: we have (21:15:46) mattock: I'll try to find the meeting where this was discussed... (21:16:14) mattock: ok, here: http://article.gmane.org/gmane.network.openvpn.devel/3927/match=enable+password+save (21:16:17) vpnHelper: Title: Gmane -- Mail To News And Back Again (at article.gmane.org) (21:16:25) mattock: there's a typo, though... "disabled", not "enabled" (21:17:09) mattock: discussion starts at 21:06:49 (21:19:23) dazo: probably need to see to check up the reactions on the ML (21:20:31) mattock: let me know if you find a link (21:22:29) mattock: ok, here they are: http://search.gmane.org/?query=Turning+--enable-password-save+on+by+default+on+Windows+builds&author=&group=gmane.network.openvpn.user&sort=date&DEFAULTOP=and&xP=enable%09password%09save&xFILTERS=Gnetwork.openvpn.user---A (21:23:04) mattock: or here in thread form: http://thread.gmane.org/gmane.network.openvpn.user/30958/match=turning+enable+password+save+default+windows+builds (21:23:05) vpnHelper: Title: Gmane Loom (at thread.gmane.org) (21:24:51) dazo: http://thread.gmane.org/gmane.network.openvpn.user/30958/focus=30974 (21:24:53) vpnHelper: Title: Gmane Loom (at thread.gmane.org) (21:25:02) dazo: that's one of the main threads (21:25:05) ecrist: sorry, back (21:26:05) cron2: I see open source religion at work :) (21:26:11) cron2: some want it, others oppose it (21:26:31) mattock: and Jason Haar gave the final comment and nobody dared oppose him :) (21:26:32) dazo: yeah :) (21:26:56) ***ecrist kind of agrees with him. (21:26:57) mattock: I think Jason has very good points (21:27:16) mattock: there really is nothing we can do to _prevent_ people from using --enable-password-save (21:27:40) ecrist: all we're really doing is pissing people off by NOT having it enabled. (21:27:49) mattock: and really, the server can't detect if the password is typed or not... if the user is motivated to circumvent the protection (21:28:09) dazo: nope, currently on windows it is "security by obscurity" ... as it's just a rebuild to enable it (21:28:43) mattock: so, next build (2.2-rc1) will enable it? (21:28:47) dazo: well, the advantage of enabling it is that it might encourage someone to write a patch implementing a push statement for disabling it (21:28:56) mattock: yep, good point (21:29:15) cron2: of course the client would be free to ignore that option... (21:29:18) mattock: except that somebody could modify the openvpn client to ignore the push statement :) (21:29:19) dazo: lets try it ... I fear it can be noisy (21:29:20) cron2: "open source" :) (21:29:23) cron2: mattock: +1 :)) (21:29:26) mattock: +1 (21:29:27) mattock: :D (21:29:41) mattock: ok, so we're in agreement (21:29:47) mattock: next topic? (21:29:49) dazo: heck, the client could even be compiled with the username and password (21:29:54) roentgen ha abbandonato il canale (quit: Ping timeout: 260 seconds). (21:29:56) mattock: yeah, true (21:30:02) mattock: nasty (21:30:02) dazo: release plan for 2.2? (21:30:07) mattock: sounds good (21:30:17) mattock: 2.2-beta5 will be out probably tomorrow (21:30:22) mattock: 2.2-rc1? (21:30:25) dazo: I'm imagining running 2.2-beta5 until Christmas (21:30:25) mattock: when? (21:30:30) cron2: very good (21:31:02) dazo: if nothing happens at all ... I'm wondering if we should repack + compile beta5 as it is to 2.2-rc (without number) (21:31:16) dazo: I don't see the point of it, other than the visual effect (21:31:45) dazo: and then if no complaints ... we're releasing 2.2 within first 2 weeks of January (21:32:05) mattock: hmm, interesting approach... but makes sense (21:32:28) mattock: one would assume something changes between versions, but I guess that's not mandatory (21:32:30) dazo: As I see it, we don't have much new features in 2.2 which might break things (21:32:51) mattock: I'm sure I find a Windows-related bug we need to fix :) (21:32:55) dazo: and if we don't have any fixes for some time ... it's as stable as we can make it (21:32:57) dazo: heh (21:32:58) dazo: true (21:33:14) ecrist: no big changes in 2.2-beta5 then? (21:33:14) ecrist: I'd still *really* like to see at least one RC (21:33:20) dazo: or else, we're back in the track of 2.1_rc15 ... which was "stable" for almost a year (21:33:22) ***cron2 would *really* like to see the test framework in use... (21:33:45) mattock: mattock would like to see Windows build system fully operational :) (21:34:47) dazo: ecrist: yeah, but if there's no complaints to beta5 ... we're renaming it to RC ... as it there's nothing to fix yet ... or else we might wait until march or april before somebody finds something, that would rather be a reasonable 2.2.1 release in that case (21:35:08) mattock: dazo: I agree there's no point in waiting just for the sake of waiting (21:35:28) mattock: I'm sure people will find bugs eventually, but we need to push stuff out as fast as possible (without breaking things badly) (21:35:37) ecrist: why not just release it today as an RC, then? (21:35:38) dazo: yupp! (21:35:52) dazo: because we added a couple of features (21:35:58) ecrist: ah, ok (21:36:06) dazo: (SOCKS auth + TAP on Solaris) (21:36:16) mattock: Adding support for SOCKS plain text authentication (21:36:16) mattock: Add HTTP/1.1 Host header (21:36:16) mattock: TAP support on Solaris (21:36:16) mattock: "topology subnet" made to work on Solaris (21:36:16) mattock: Lots of bugfixes, see Changelog for details (21:36:31) mattock: ecrist: I think we followed your suggestion ;) (21:36:36) mattock: by rolling out another beta (21:36:38) dazo: we did :) (21:36:40) ecrist: ah, ok (21:37:01) dazo: ecrist: make up your mind please! We're jumping when tell us! (21:37:12) mattock: :) (21:37:36) mattock: so the plan is this: release 2.2-beta5 now, 2.2-rc @Christmas, 2.2 (FINAL) on January (21:37:58) cron2: +1 (21:37:58) mattock: I think that would work (21:38:11) ecrist: dazo: I'm like a puffer fish, I get all excited easily. (21:38:23) dazo: heh :) (21:38:27) mattock: http://en.wikipedia.org/wiki/Puffer_fish (21:38:29) vpnHelper: Title: Tetraodontidae - Wikipedia, the free encyclopedia (at en.wikipedia.org) (21:38:43) mattock: ecrist: are you poisonous and delicious, too? (21:39:05) dazo: his wife would probably know :-P (21:39:09) mattock: +1 (21:39:33) mattock: ok, order in the court... (21:39:55) mattock: what about the new features cron2 suggested? (21:40:00) mattock: or talked about (21:40:05) dazo: that was for 2.3 (21:40:08) dazo: my mistake (21:40:10) mattock: ok (21:40:28) dazo: no new features into 2.2, that's frozen now ... only bugfixes (21:40:32) mattock: good (21:40:36) cron2: what he said (21:40:49) ecrist: http://secure-computing.net/files/puffy.jpg (21:41:07) mattock: next topic would be "Milestone dates for 2.3-beta" (21:41:09) dazo: I suggested in a mail regarding modularising the SSL layer (somebody has done that job, waiting for 2.2 to be released) (21:41:30) mattock: I got a the OpenVPN puffy at the cover of my Thinkpad T42 (21:41:34) dazo: and I initially said that would be suitable for 2.4 ... and cron2 to said "why not 2.3?" (21:41:39) andj: hi (21:41:44) andj: that was me (21:41:46) andj: :) (21:41:47) mattock: dazo: oh yes, I remember now (21:42:04) mattock: andj: welcome! (21:42:16) dazo: If we have a decent test environment available at that point .... I'm in favour to push it into 2.3 (21:42:33) dazo: andj: cool! thx a lot for your work ... even though we haven't seen it yet :) (21:42:49) andj: mattock: thanks, I'll try to get the patches ready for a preview ASAP (21:42:50) dazo: I say the Doxygen patch is mostly welcome almost immediately (21:43:13) andj: yeah, that shouldn't change too much (21:43:36) andj: I've been working on the patches for work, which was fun, nice to be able to release something to the community (21:43:42) dazo: that's for sure for 2.3 ... and if the patches for SSL modules with minimum OpenSSL support is in place and have been tested and merged into the tree before we start 2.3-beta ... I'm all for that (21:44:07) ecrist: I think Essobi still needed some pointers in regards to FIPS (21:44:31) andj: anyway, I'll see if I can integrate some of my own tests into the new test framework (21:44:57) andj: (Haven't played with that at all yet) (21:44:59) dazo: andj: cool! (21:45:20) dazo: andj: If you get the 2.2 tree around early January ... will that be enough time for you to massage the patches for inclusion for a 2.3-beta - say March-ish? (21:45:23) cron2: andj: that would be very welcome. it's somewhat bare-bones yet - it works, but it can certainly be extended (21:45:52) andj: anyway, the 2.2 work would be partially on my own time, and partially on work time, so I'd have to see how busy things are then (21:45:57) Essobi: ecrist: Can I start throwing some thoughts at the channel? Something is wonky in the ctx handed to SSL_CTX_set_cipher_list in ssl.c ~ line 1853. (21:46:14) Essobi: Or wonky in how the FIPS module is handling it. (21:46:25) Essobi: But I'll BRB (21:46:26) ecrist: these are the folks that can help you. (21:47:12) andj: But I'd much rather work towards a stable (2.2) target, than a moving one, as we have now (21:47:20) andj: So I'll leave that for januari (21:47:39) dazo: mattock: so ... for 2.3 schedule .... I'm suggesting 2.3-beta (late February/) early March .... with a complete release say late summer - early August, perhaps? (21:48:04) mattock: what will be in 2.3? (21:48:12) mattock: IPv6? (21:48:16) dazo: andj: The 2.2 branch will only get bugfixes .... and the gap between beta3-5 is less than 30 patches, I believe (21:48:29) dazo: mattock: IPv6 is definitely ... hopefully new Windows GUI? (21:48:30) mattock: noticeably less, maybe 15 (21:48:45) mattock: new GUI should be no problem (21:49:02) mattock: when I get Windows python build working (21:49:08) dazo: mm (21:50:28) mattock: dazo: what does "mm" mean? :) (21:50:39) dazo: just like the sound (21:50:44) dazo: (agree) (21:50:49) mattock: ok, good (21:51:33) mattock: I think 2.3 release schedule is doable (21:51:47) mattock: especially as most features are already available (21:51:59) dazo: yes, the joker is the new SSL modularisation (21:52:23) andj: and you can't tell until you've seen the code (21:52:37) dazo: :) (21:52:40) mattock: let's not worry about that right now, then (21:52:49) dazo: nope! (21:52:49) cron2: mattock: any news about coverity? (21:52:54) ecrist: do we have a list of developers somewhere, yet? (21:53:02) dazo: probably not (21:53:04) ecrist: i.e. who's active, recent commits or anything (21:53:10) cron2: ecrist: don't know anything (21:53:14) dazo: that's doable to extract from git (21:53:24) mattock: cron2: no, no progress there (as usual) (21:53:26) dazo: which timespan? last year? last 3 months? (21:53:45) mattock: I think the changelogs for latest releases are a pretty good indicator (21:54:05) dazo: actually, the complete 2.2 release ChangeLog do have all developers mentioned (21:54:15) ecrist: just thinking in terms of when someone wants to know who the 'developers' are (21:54:44) mattock: I think using git for that is best... manually edited lists tend to get outdated (21:54:51) ecrist: right (21:54:58) common: I'd be carefull with ssl modularisations (21:55:00) mattock: and normal people can check the changelog (21:55:18) ecrist: I'll probably post something at secure-computing.net I parse out (21:55:22) dazo: and the git log also have e-mail addresses to the authors (21:55:27) mattock: however, we _could_ mention on the Wiki that "to see who's developing OpenVPN, check the changelog" (21:55:28) common: the bridge code gets messy easily due to very different interfaces (21:56:02) common: polarssl may be cheap, I think it got an api similar to openssl, but others, like nss, will give you serious headache (21:56:02) ecrist: my reason for asking is because I want to make sure all the developers who want/need access to trac have it (21:56:42) dazo: common: afaik, andj is using his changes implementing PolariSSL in production ... so the basic stuff should work ... we need to make sure OpenSSL works as well, and with some ~3 months development before beta kicks in, I think we should be able to tell (21:56:50) roentgen [~arthur@openvpn/community/support/roentgen] è entrato nel canale. (21:57:01) common: and once you go for different ssls, people will ask for nss, as it is easier to get fips 140 with nss than with openssl (21:57:17) dazo: common: if it's too unstable for 2.3, it'll be pulled out and put into 2.4 (21:57:20) common: and then you got three different ssl apis to maintain (21:57:56) dazo: common: fair enough ... but we don't accept drop'n'run patches .... so we need to see that people maintain their contributions (21:58:03) andj: I've tried to keep the backend api as close to the primitives as possible, and it works well for both polar and openssl (21:58:17) dazo: ^^^ that is what calms me down (21:58:45) common: if you want to see what can happen for multiple ssl backends (21:58:47) andj: but I have no idea how nss/gnutls/... hold up (21:59:02) common: look at curl, openssl, nss, gnutls, polarssl (21:59:48) ***dazo trusts andj has done his homework ... until otherwise proven when the patches arrives :) (22:00:22) ***andj hopes he can live up to that (22:00:30) andj: :) (22:00:41) dazo: :) (22:00:44) mattock: I agree we should wait for the patches before discussing this further... and if polarssl and openssl work fine using an abstraction layer, nobody can force us to access more messy code (e.g. for nss) into the codebase (22:00:55) dazo: nope (22:01:03) dazo: (= I agree) (22:01:06) mattock: we can say "we support these ssl providers: ..." (22:01:22) mattock: and not these, because it would be difficult to implement (22:01:26) mattock: and error-prone (22:01:31) andj: anyway, my priority for the moment is cleaning up the patches and PKCS #11 support for polar (22:01:43) common: http://fedoraproject.org/wiki/FedoraCryptoConsolidation (22:01:44) vpnHelper: Title: FedoraCryptoConsolidation - FedoraProject (at fedoraproject.org) (22:02:03) andj: and getting some more tests in. I'll have a look at incorporating them into the test framework (22:02:10) dazo: andj: Alon Bar-Lev has done a lot of the PKCS#11 work in OpenVPN ... so he might speak up (22:03:23) andj: Thanks, I'm not planning on changing anything there, except for splitting out an OpenSSL and PolarSSL backend (22:03:34) dazo: :) (22:03:36) andj: So the basic code should stay the same (22:04:16) dazo: yeah, he might have a look into that as well ... He is only active on the ML, so you'll hear from him there (22:04:33) andj: It'll be a separate patch (22:04:49) Essobi: Mkay.. So I verified the certs I generated with easy-rsa work in beta3 compiled against the stock openssl I have installed. (22:04:50) andj: so we can cross that bridge when we get there (22:05:10) dazo: thx! (22:05:23) dazo: Essobi: that sounds like good news! (22:06:05) andj: Anyway, if there's no other questions about the patch set I'll go back to lurk mode (22:06:18) dazo: do that :) feel free to hang out here! (22:06:38) dazo: andj: by the way, I sense Essobi might be an SSL resource as well ... :) (22:06:49) andj: thanks for the good reception, I'll see how fast I can get a preview out (22:07:01) dazo: you're most welcome! (22:07:18) mattock: andj: see you again! (22:07:22) Essobi: Using the same config, with the OpenSSL FIPS module, it aborts loading at loading the certificate chain file.. (22:07:29) Essobi: http://pastebin.com/dm8bKvzM (22:07:30) andj: I'm open to any suggestions, what I worked on isn't set in stone, so let me know if there's any major problems (22:07:47) Essobi: I assume you guys don't want pasting to the channel.. some places consider it rude. (22:07:48) dazo: andj: we will, when we see patches :) (22:07:57) dazo: Essobi: that's right :) (22:08:08) mattock: one more thing about the SSL abstraction layer... what are the primary reasons one would want to use a non-OpenSSL SSL implemetnation? (22:08:12) mattock: FIPS compliance? (22:08:14) mattock: performance? (22:08:23) cron2: openssl code base is HUGE (22:08:26) andj: embedded systems (22:08:27) cron2: that's a problem for embedded (22:08:34) common: footprint & maybe fips certification (22:08:36) Essobi: mattock: federal security requirement (22:08:37) andj: and security evaluations (22:08:44) cron2: on a wr54gl, openssl 1.0 will fit about all available flash... (22:08:47) dazo: mattock: OpenSSL can be messy to work with ... NSS is another reason for FIPS requirements (22:08:52) andj: which is our game here (22:09:06) mattock: ok, just wanted to check there are good reasons to do this (22:09:22) dazo: oh yeah, it is :) (22:09:47) mattock: so lets just wait for andj's patches and take it from there (22:09:49) common: dazo: do you expect nss to be easier to work with? (22:09:49) ***dazo need to do some real work, so he gets his payslip (22:10:01) Essobi: Using the certified OpenSSL FIPS module gives the product FIPS compliance by proxy so long as it's the only thing doing crypto in the code, and the libs are build to their spec. (22:10:12) dazo: common: I dunno ... I've never done nss stuff, except from a little bit on the user side (22:10:44) Essobi: FIPS compliance is required for a lot US/Canadian State/Federal use. (22:10:56) common: from my experience openssl is hard to beat from an api/documentation perspective (22:12:28) andj: the api is nice, but the code isn't easy to read (not that I want to start a flame war here) (22:12:30) Essobi: http://pastebin.com/Uu0GK3gT (22:12:37) andj: which makes it hard to evaluate (22:13:39) common: the documentation is a bitch too, but if once you understood it, it makes sense (22:14:05) Essobi: also... 'make check' fails with openssl-fips in use.. It would appear to be the exact same error. (22:15:35) Essobi: Is there a way to tell if the cert_file in question is RSA vs DSA? (22:15:41) mattock: any objections to ending the "official" portion of the meeting? we covered all topics already (22:16:01) Essobi: mattock: Woops.. sorry, thought it was over. (22:16:20) mattock: essobi: no problem, I think it has ended already :) (22:16:47) mattock: no objections yet... (22:16:58) mattock: I'll write meeting summary tomorrow and send it to -devel