<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How to Replace Python&#8217;s socket.ssl with M2Crypto&#8217;s SSL Implementation</title>
	<atom:link href="http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/</link>
	<description>A Finn in Silicon Valley - Adventures in Technology</description>
	<lastBuildDate>Wed, 17 Aug 2011 08:58:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
	<item>
		<title>By: Markus Stumpf</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3039</link>
		<dc:creator>Markus Stumpf</dc:creator>
		<pubDate>Fri, 03 Oct 2008 17:23:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3039</guid>
		<description>@Heikki: thanks a lot.
I really wonder why I never came across SNI while investigating the TLS upgrade.
Server Name Indication (SNI) is specified in RFC 3546: http://www.ietf.org/rfc/rfc3546.txt
A dicussion about &quot;TLS Upgrade&quot; vs. &quot;Server Name Indication&quot; can be found in the Mozilla Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=276813
Also, SNI is supported by most modern browsers and webservers (even apache since 2.2.8+ with mod_ssl).</description>
		<content:encoded><![CDATA[<p>@Heikki: thanks a lot.<br />
I really wonder why I never came across SNI while investigating the TLS upgrade.<br />
Server Name Indication (SNI) is specified in RFC 3546: <a href="http://www.ietf.org/rfc/rfc3546.txt" rel="nofollow">http://www.ietf.org/rfc/rfc3546.txt</a><br />
A dicussion about &#8220;TLS Upgrade&#8221; vs. &#8220;Server Name Indication&#8221; can be found in the Mozilla Bugzilla: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=276813" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=276813</a><br />
Also, SNI is supported by most modern browsers and webservers (even apache since 2.2.8+ with mod_ssl).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Moore</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3035</link>
		<dc:creator>Richard Moore</dc:creator>
		<pubDate>Fri, 03 Oct 2008 16:43:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3035</guid>
		<description>@Heikki

BTW there seem to be some issues in OpenSSL (or possibly pyopenssl I&#039;m not sure yet) regarding certificates with multiple CNs or multiple subjectAltNames. Something to watch for (most browsers support such certificates).</description>
		<content:encoded><![CDATA[<p>@Heikki</p>
<p>BTW there seem to be some issues in OpenSSL (or possibly pyopenssl I&#8217;m not sure yet) regarding certificates with multiple CNs or multiple subjectAltNames. Something to watch for (most browsers support such certificates).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Heikki Toivonen</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3022</link>
		<dc:creator>Heikki Toivonen</dc:creator>
		<pubDate>Fri, 03 Oct 2008 03:41:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3022</guid>
		<description>@Markus: I believe you want Server Name Indication extension to TLS: http://en.wikipedia.org/wiki/Server_Name_Indication

This is fairly widely implemented now, see for example this post: http://weblogs.mozillazine.org/gerv/archives/2007/08/virtual_hosting_ssl_and_sni.html

I haven&#039;t actually ever tried to use it explicitly, so I can&#039;t tell you how to do that in Python, or if anything special would be needed (assuming you have an OpenSSL version where it is implemented).</description>
		<content:encoded><![CDATA[<p>@Markus: I believe you want Server Name Indication extension to TLS: <a href="http://en.wikipedia.org/wiki/Server_Name_Indication" rel="nofollow">http://en.wikipedia.org/wiki/Server_Name_Indication</a></p>
<p>This is fairly widely implemented now, see for example this post: <a href="http://weblogs.mozillazine.org/gerv/archives/2007/08/virtual_hosting_ssl_and_sni.html" rel="nofollow">http://weblogs.mozillazine.org/gerv/archives/2007/08/virtual_hosting_ssl_and_sni.html</a></p>
<p>I haven&#8217;t actually ever tried to use it explicitly, so I can&#8217;t tell you how to do that in Python, or if anything special would be needed (assuming you have an OpenSSL version where it is implemented).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Markus Stumpf</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3012</link>
		<dc:creator>Markus Stumpf</dc:creator>
		<pubDate>Thu, 02 Oct 2008 17:06:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3012</guid>
		<description>I have more of a question than a comment.
RFC 2817 (http://www.faqs.org/rfcs/rfc2817.html) specifies a method to upgrade a HTTP connection to a TLS HTTP connection. I gave been looking (mostly out of interest) for a way to do this in python (client side) and to find a module and/or examples. The apache webserver supports it, but I haven&#039;t found a supporting client/browser yet to fully test it. The advantage is that you can have TLS connections for multiple virtual hosts with different keys/certs.

Do you by chance have any examples/ideas how to do that in python?

Thanks!</description>
		<content:encoded><![CDATA[<p>I have more of a question than a comment.<br />
RFC 2817 (<a href="http://www.faqs.org/rfcs/rfc2817.html" rel="nofollow">http://www.faqs.org/rfcs/rfc2817.html</a>) specifies a method to upgrade a HTTP connection to a TLS HTTP connection. I gave been looking (mostly out of interest) for a way to do this in python (client side) and to find a module and/or examples. The apache webserver supports it, but I haven&#8217;t found a supporting client/browser yet to fully test it. The advantage is that you can have TLS connections for multiple virtual hosts with different keys/certs.</p>
<p>Do you by chance have any examples/ideas how to do that in python?</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Heikki Toivonen</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3011</link>
		<dc:creator>Heikki Toivonen</dc:creator>
		<pubDate>Thu, 02 Oct 2008 16:50:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3011</guid>
		<description>Richard is right, but even checking certificate signatures is not enough. There is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Secure_Sockets_Layer#Security&quot; rel=&quot;nofollow&quot;&gt;lot of validation&lt;/a&gt; that needs to happen with certificates, but even in addition to that one needs to check that the certificate was issued for the host that you are trying to connect to. Without this step any valid certificate from a reputable CA could be used to perform MITM attack on any connection. There are other kinds of checks that could be done instead of hostname (like verifying certificate fingerprint is in a set of accepted fingerprints), but hostname check is the most common one and is done by your browser and email client for example.

Incidentally, it seems the hostname check is the least well-known practices about securing an SSL connection. I just tried to find a reference that explains this, and didn&#039;t find any good links. Network Security with OpenSSL book is a good reference, though. There is a sizeable group of people that think SSL is not even secured against MITM because they don&#039;t know about the hostname check (or in general, post connection check that confirms you are talking to the right party).</description>
		<content:encoded><![CDATA[<p>Richard is right, but even checking certificate signatures is not enough. There is a <a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer#Security" rel="nofollow">lot of validation</a> that needs to happen with certificates, but even in addition to that one needs to check that the certificate was issued for the host that you are trying to connect to. Without this step any valid certificate from a reputable CA could be used to perform MITM attack on any connection. There are other kinds of checks that could be done instead of hostname (like verifying certificate fingerprint is in a set of accepted fingerprints), but hostname check is the most common one and is done by your browser and email client for example.</p>
<p>Incidentally, it seems the hostname check is the least well-known practices about securing an SSL connection. I just tried to find a reference that explains this, and didn&#8217;t find any good links. Network Security with OpenSSL book is a good reference, though. There is a sizeable group of people that think SSL is not even secured against MITM because they don&#8217;t know about the hostname check (or in general, post connection check that confirms you are talking to the right party).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Moore</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3004</link>
		<dc:creator>Richard Moore</dc:creator>
		<pubDate>Thu, 02 Oct 2008 12:06:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3004</guid>
		<description>@Pedant, it does not check the certificate is signed by a valid CA. The result is that you are vulnerable to a MITM attack from anyone who makes a self-signed certificate.</description>
		<content:encoded><![CDATA[<p>@Pedant, it does not check the certificate is signed by a valid CA. The result is that you are vulnerable to a MITM attack from anyone who makes a self-signed certificate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pedant</title>
		<link>http://www.heikkitoivonen.net/blog/2008/10/01/how-to-replace-pythons-socketssl-with-m2cryptos-ssl-implementation/comment-page-1/#comment-3002</link>
		<dc:creator>Pedant</dc:creator>
		<pubDate>Thu, 02 Oct 2008 08:13:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.heikkitoivonen.net/blog/?p=315#comment-3002</guid>
		<description>&gt; Python’s socket.ssl is not secure

[Citation needed]</description>
		<content:encoded><![CDATA[<p>&gt; Python’s socket.ssl is not secure</p>
<p>[Citation needed]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

