<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>freedom blog reloaded &#187; observations</title>
	<atom:link href="http://blog.peijnik.at/topics/observations/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.peijnik.at</link>
	<description>Stephan's Free Software blog</description>
	<lastBuildDate>Tue, 10 Nov 2009 18:04:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to move panels in Gnome 2.28</title>
		<link>http://blog.peijnik.at/2009/11/04/how-to-move-panels-in-gnome-2-28/</link>
		<comments>http://blog.peijnik.at/2009/11/04/how-to-move-panels-in-gnome-2-28/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 09:04:07 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://blog.peijnik.at/?p=162</guid>
		<description><![CDATA[I just installed Ubuntu Karmic Koala on my workstation and came across the problem of not being able to move/drag Gnome panels around in order to have the panels on my primary monitor.
On the Debian system that was powering the workstation before this was a non-issue as I could simply click, hold and drag both [...]]]></description>
			<content:encoded><![CDATA[<p>I just installed Ubuntu Karmic Koala on my workstation and came across the problem of not being able to move/drag Gnome panels around in order to have the panels on my primary monitor.<br />
On the Debian system that was powering the workstation before this was a non-issue as I could simply click, hold and drag both the upper and the lower panel, but this didn&#8217;t work.</p>
<p>So, after a few minutes of googling I came across an entry at answers.launchpad.net[0] and a blog post, but I cannot seem to remember the URL to that one. I can imagine that some of you might be having the exact same problem, so the solution is holding down the ALT, whilst dragging as usual.</p>
<p>[0] <a href="https://answers.launchpad.net/ubuntu/+source/gnome-panel/+question/264">https://answers.launchpad.net/ubuntu/+source/gnome-panel/+question/264</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2009/11/04/how-to-move-panels-in-gnome-2-28/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems running PHP as a separate FastCGI process</title>
		<link>http://blog.peijnik.at/2009/04/01/running-php-as-a-separate-fastcgi-process/</link>
		<comments>http://blog.peijnik.at/2009/04/01/running-php-as-a-separate-fastcgi-process/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 11:06:35 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[observations]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://blog.peijnik.at/?p=106</guid>
		<description><![CDATA[As some of you might have noticed this webserver has not been that responsive in the past few hours and I have been working hard on getting that fixed. I finally identified the problem and was able to fix it.
The root of the problem was my setup running PHP as a separate FastCGI process. Unfortunatly [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you might have noticed this webserver has not been that responsive in the past few hours and I have been working hard on getting that fixed. I finally identified the problem and was able to fix it.</p>
<p>The root of the problem was my setup running PHP as a separate FastCGI process. Unfortunatly it seems as if PHP can only handle 500 requests per FastCGI process and then seems to lock up.<br />
The old setup of this site didn&#8217;t cause such problems and it seems the problem lies in not setting the <em>PHP_FCGI_CHILDREN</em> and <em>PHP_FCGI_MAX_REQUESTS</em> environment variables with the new setup.</p>
<p><span id="more-106"></span></p>
<p>I initially thought that the default values of those environment variables were safe, but they are not. As I already wrote PHP seems to lock up after 500 requests and the solution lies in changing <em>PHP_FCGI_CHILDREN</em>, which defaults to 0 (no additional processes) to something bigger than 0 (I am using 2 children to make sure I have at least one PHP process reading for answering requests at any time).<br />
Why? Quite simple, if you increase the value the PHP root process becomes some sort of manager and delegates requests to the children, as expected. However, using <em>PHP_FCGI_MAX_REQUESTS</em> it only forwards the specified number of requests to a child process before killing it and starting a new one. <strong>Problem solved</strong>.</p>
<p>Information on this behaviour can not be found in the PHP online manual, but rather at <a title="README.FastCGI @ lxr.php.net" href="http://lxr.php.net/source/php-src/sapi/cgi/README.FastCGI">http://lxr.php.net/source/php-src/sapi/cgi/README.FastCGI</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2009/04/01/running-php-as-a-separate-fastcgi-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How using proprietary software can affect system security</title>
		<link>http://blog.peijnik.at/2009/03/29/how-using-proprietary-software-can-affect-system-security/</link>
		<comments>http://blog.peijnik.at/2009/03/29/how-using-proprietary-software-can-affect-system-security/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 10:17:00 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://blog.peijnik.at/?p=66</guid>
		<description><![CDATA[There has been a lot of discussion on whether Free Software is more secure than proprietary software, but I have an additional argument that shows how the use of Free Software can improve system security.
Now you probably expect me to come up with a pure technical reason showing superiority of Free Software, but I am [...]]]></description>
			<content:encoded><![CDATA[<p>There has been a lot of discussion on whether Free Software is more secure than proprietary software, but I have an additional argument that shows how the use of Free Software can improve system security.</p>
<p>Now you probably expect me to come up with a pure technical reason showing superiority of Free Software, but I am taking another path this time: let&#8217;s talk about user trust.</p>
<p><span id="more-66"></span></p>
<p><strong>Software updates on pure Free Software operating systems</strong></p>
<p>Firstly, let&#8217;s take a look at how security updates are deployed on pure Free Software operating systems.<br />
All major GNU/Linux and *BSD distributions come with built-in update systems for all Free Software packages provided by the distribution. Once a security update to any piece of software is released you will get a notification saying updates are available and that you should install them and after doing so your system should be in a quite secure state.</p>
<p><strong>Updater-applications of proprietary software</strong></p>
<p>Okay, proprietary software does often come with its own update mechanisms, giving you pretty much the same functionality. But here is my point: users tend to block these updater-applications from accessing the network with personal firewalls and similar tools, which basically disables the updater and most likely will cause the system to be more vulnerable rather sooner than later.</p>
<p><strong>But why do people even consider blocking an updater-application? </strong></p>
<p>When I asked people why they blocked these applications a lot of reasons came up, but it usually boils down to lack of trust for proprietary software vendors. People seem not to trust software vendors for a variety of reasons. The most common reasons seem to be that they are either worried about the disclosure of private information or the lack of a license for a piece of software, combined with the first reason.</p>
<p>So people actually seem to be scared by what a piece proprietary software could do, and when not having their software licensed people seem to be even more scared. When I ask people why they are running these programs, even though they do not trust their vendors they usually shrug and I get replies that can be summed up as &#8220;it just works&#8221;, &#8220;but I don&#8217;t have a choice&#8221; and &#8220;I am used to software X&#8221;.</p>
<p><strong>The solution is Free Software</strong></p>
<p>Free Software can be a solution to all these problems. The most important thing people should be aware of that they do not have to fear Free Software vendors. After all, when using Free Software you do have a valid license and you can, at least in theory, check exactly a program is doing to your system. Also, if you are not capable of doing such checks yourself, you can rest assured that other people are doing such checks and give back to the project in question, improving your favorite Free Software applications.</p>
<p>Free Software is a choice, and there is hardly any proprietary piece of software which cannot be replaced by a free equivalent. Free Software is my first choice, not only for me but for my family too, with great results so far.</p>
<p><em>Rest assured you can trust in what your software is doing, free yourself today</em> &#8211; <strong>use Free Software</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2009/03/29/how-using-proprietary-software-can-affect-system-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A possible attack &#8211; what to do about this?</title>
		<link>http://blog.peijnik.at/2009/03/26/a-possible-attack-what-to-do-about-this/</link>
		<comments>http://blog.peijnik.at/2009/03/26/a-possible-attack-what-to-do-about-this/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 11:06:58 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.peijnik.at/?p=60</guid>
		<description><![CDATA[Just as I wanted to start writing an article here and I entered the URL of this blog into my browser I got no response from the webserver, zero, nothing.
First I thought the PHP fastcgi process for this virtual host died, but a quick check on another virtual host suggested that something else was going [...]]]></description>
			<content:encoded><![CDATA[<p>Just as I wanted to start writing an article here and I entered the URL of this blog into my browser I got no response from the webserver, zero, nothing.<br />
First I thought the PHP fastcgi process for this virtual host died, but a quick check on another virtual host suggested that something else was going on.</p>
<p>So I guessed the lighttpd process itself must be experiencing problems of some sort, but after doing a &#8220;netstat -nat&#8221; I  knew what was going on:</p>
<p>tcp6       1      1 83.65.62.72:80          61.135.190.248:12474    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.234:39671    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.253:39211    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.234:55160    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.230:25836    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.231:16865    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.232:24266    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.240:38441    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.243:17726    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.241:38206    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.251:23892    LAST_ACK<br />
tcp6       1      1 83.65.62.72:80          61.135.190.225:29675    LAST_ACK</p>
<p>Plus &#8220;a few&#8221; more of those. Now I&#8217;m not entirely sure whether it&#8217;s just some systems misbehaving or actually an attack, but my feelings told me this could have been intentional after all.<br />
I did a quick whois on one of those IP addresses and came up with the 61.135.0.0/16 network which is owned by China Network Communications Group Corporation.</p>
<p>As the connections were made from pretty much every host in that network I had two choices: sit it out or block it.</p>
<p>I came to the conclusion that blocking the entire subnet from connecting to this system, at least temporarily, might be a viable solution and so I did.<br />
However, afterwards I am asking myself whether I really had to block an entire 16-Bit network, so I am asking you: <strong>how do you handle such situations usually?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2009/03/26/a-possible-attack-what-to-do-about-this/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autoconf and Python: checking for modules</title>
		<link>http://blog.peijnik.at/2008/08/31/autoconf-and-python-checking-for-modules/</link>
		<comments>http://blog.peijnik.at/2008/08/31/autoconf-and-python-checking-for-modules/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 10:04:38 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[foss]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[nwu]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://espi86.wordpress.com/?p=33</guid>
		<description><![CDATA[I am currently writing a Python application that makes use of GNU Autotools as build system and noticed that determining whether a specific Python module is installed is not that easy and no usable Autoconf macro exists. So I came up with my own solution, which I would like to share with you.
The AC_CHECK_PYTHON_MODULE macro [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently writing a Python application that makes use of GNU Autotools as build system and noticed that determining whether a specific Python module is installed is not that easy and no usable Autoconf macro exists. So I came up with <a title="python_module.m4" href="http://blog.peijnik.at/wp-content/uploads/2008/08/python_module.m4">my own solution</a>, which I would like to share with you.</p>
<p>The <em>AC_CHECK_PYTHON_MODULE</em> macro takes two arguments: The module name and optionally the variable name holding version information. This way it is not only possible to determine whether a module is installed (ie. loads in Python) on the current system, but also retrieve version information from that module.</p>
<p>The following examples checks whether the Crypto module is installed and retrieves its version information from Crypto.__version__:</p>
<blockquote><p>AC_CHECK_PYTHON_MODULE(Crypto, __version__)</p></blockquote>
<p>The macro itself does never report and error, but rather only a found/not found result. Error checking is up to the user and can be done via these two Autoconf variables:</p>
<ul>
<li>PYTHON_<em>&lt;MODULE_NAME&gt;</em></li>
<li>PYTHON_<em>&lt;MODULE_NAME&gt;</em>_VERSION</li>
</ul>
<p>PYTHON_<em>&lt;MODULE_NAME&gt;</em> is set to <em>&#8220;1&#8243;</em> if the module is present and <em>&#8220;0&#8243;</em> if not present.<br />
PYTHON_<em>&lt;MODULE_NAME&gt;</em>_VERSION is only set when the version variable argument has been set and contains the version information of the module, if the module been found. If the module is not present this variable is also set to <em>&#8220;0&#8243;</em>.</p>
<p>The version variable argument is optional as I wrote, so the following invocation works too and only checks whether the distutils module is present:</p>
<blockquote><p>AC_CHECK_PYTHON_MODULE(distutils)</p></blockquote>
<p>As I wrote earlier in this article I would like to share this macro with you. You can download it <a title="python_module.m4" href="http://blog.peijnik.at/wp-content/uploads/2008/08/python_module.m4">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/08/31/autoconf-and-python-checking-for-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is trying to fix (E)SMTP really worth it? [part 2 - infrastructure]</title>
		<link>http://blog.peijnik.at/2008/07/03/is-trying-to-fix-esmtp-really-worth-it-part-2-infrastructure/</link>
		<comments>http://blog.peijnik.at/2008/07/03/is-trying-to-fix-esmtp-really-worth-it-part-2-infrastructure/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 10:33:07 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://espi86.wordpress.com/?p=26</guid>
		<description><![CDATA[[digg=http://digg.com/security/Is_trying_to_fix_E_SMTP_really_worth_it_part_2]This article is the second in my series about the flaws of (E)SMTP, the whole Internet mail infrastructure and how it could possibly be fixed. The main focus of this part is a new approach to the infrastructure which should help making emailing more secure, reliable and less spam-prone.
The first article can be found here [...]]]></description>
			<content:encoded><![CDATA[<p>[digg=http://digg.com/security/Is_trying_to_fix_E_SMTP_really_worth_it_part_2]This article is the second in my series about the flaws of (E)SMTP, the whole Internet mail infrastructure and how it could possibly be fixed. The main focus of this part is a new approach to the infrastructure which should help making emailing more secure, reliable and less spam-prone.</p>
<p>The first article can be found <a title="Is trying to fix (E)SMTP really worth it? [part 1]" href="http://blog.sp.or.at/2008/03/27/is-trying-to-fix-esmtp-really-worth-it-part-1/">here</a> and points out flaws and problems in the current systems.</p>
<p><span id="more-26"></span></p>
<p>Before going into detail about how the infrastructure could look like I would like to point out the goals of my proposal:</p>
<ul>
<li>security through end-to-end encryption</li>
<li>security through sender and server authentication</li>
<li>integrity of message contents</li>
<li>built-in load-balancing support</li>
<li>getting rid of email forwards</li>
</ul>
<p>These five major points should be covered directly by a new infrastructure and should be mandatory. There is no point in making any of these optional as the rest of this article should point out.</p>
<p><strong>security through end-to-end encryption</strong></p>
<p>Even though both SSL and TLS support exist for (E)SMTP these features are optional. In fact this means that it is possible that even though one submits his or her email over a secure channel the message could be transferred in plain-text somewhere on the way to its destination.<br />
This enables an attacker to snoop at your message somewhere along its way. Whilst some people believe this is okay I strongly oppose to anyone being able to read either my private or business emails.</p>
<p>The solution to this problem is end-to-end encryption. The new infrastructure should make encryption of all message exchanged mandatory and further provide a way of encrypting the message contents. This way only the intended recipient can actually read the message (as in not even a server administrator having direct access to a user&#8217;s mailbox). End-to-end encryption of the communication channels should be done by using TLS for all communication between all clients and servers and for server-to-server communication.</p>
<p>Encrypting of the message payload could be done in a similar (if not even the same) way <a title="OpenPGP" href="http://en.wikipedia.org/wiki/OpenPGP#OpenPGP">OpenPGP</a> (RFC 4880) works.</p>
<p><strong>security through sender and server authentication</strong></p>
<p>The next feature a possible SMTP successor should provide is sender and server authentication. As TLS should be mandatory for the implementation the easiest way to achieve this is using a <a title="Public key infrastructure" href="http://en.wikipedia.org/wiki/Public_key_infrastructure">public key infrastructure</a>. This could then in turn be used for multiple things, including message integrity checking, encryption of message contents, authentication of the sender and authentication of the server.</p>
<p>Integrating a public key infrastructure could be done by having special DNS (maybe TXT) records that contain the address of key servers. These key servers would store not only a domain-root certificate which would allow user and server authentication but also all user and server certificates themselves.</p>
<p>A receiving server could then check the sending domain&#8217;s key server for both the domain-root certificate and the sending server and thus verify that the message is legitimate and actually originated from the specified domain.</p>
<p>Sender authentication works together with message integrity. Basically the receiving server opens the message, gets the client&#8217;s message signature from the message, and asks the sending domain&#8217;s key server for the public key of the sender. The receiving server then checks the signature and this way verifies the sender.</p>
<p><strong>integrity of message contents</strong></p>
<p>Integrity checking is closely related to sender verification. As the receiving server checks the sender&#8217;s message signature in the sender-verification process the message is automatically checked for integrity too.</p>
<p><strong>built-in load-balancing support</strong></p>
<p>Load-balancing is also closely related to the PKI approach. The sending server could use the receiving domain&#8217;s key server to locate the server to send the message to. This way load-balancing of receiving servers can easily be implemented. Furthermore load-balancing of multiple key servers for a single domain is possible using DNS round-robin records.</p>
<p><strong>getting rid of email forwards</strong></p>
<p>Forwards can also be gotten rid of by using the receiving domain&#8217;s key server similarily to the load-balancing approach. Instead of pointing the sender to a domain-local receiving server the key server could simply point the sender to another domain&#8217;s receiving server. This way the message would not really be forwarded or relayed anymore but rather a pointer to where the message should be stored could be provided.</p>
<p><strong>Putting everything together</strong></p>
<p>Making all the mentioned features mandatory for a possible successor of SMTP should make users benefit in a few ways. Firstly, users could rely on both then integrity of the message, that the sender actually the person he or she pretends to be and the fact that snooping on the contents of the messages they send is hard to impossible.<br />
Furthermore this infrastructure should make sending SPAM messages a lot harder as domains for sending spam would have to be bought, DNS servers and key servers would need to be operated and blocking unwanted messages could be as easy as blocking either a domain or a single user using the information provided through their message signature.</p>
<p>ISPs would benefit from the built-in load-balancing mechanisms and the mailbox alias feature (forwarder). Whilst the load-balancing technique simplifies set-up and operating of a load-balanced infrastructure the mailbox alias feature should help cutting down on traffic generated by email forwarders.</p>
<p>Please be aware that I intentionally left out all implementation specific details, such as the message exchange protocols. More technical aspects of a possible implementation are to be covered in the next parts of this series. As always, comments are highly appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/07/03/is-trying-to-fix-esmtp-really-worth-it-part-2-infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why are hardware manufacturers keeping specs to themselves?</title>
		<link>http://blog.peijnik.at/2008/04/06/why-are-hardware-manufacturers-keeping-specs-to-themselves/</link>
		<comments>http://blog.peijnik.at/2008/04/06/why-are-hardware-manufacturers-keeping-specs-to-themselves/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 13:13:33 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://espi86.wordpress.com/?p=22</guid>
		<description><![CDATA[This is one question I have been interested in ever since I started using GNU/Linux.
Just think about it for a moment. About 20 years ago you got specifications for pretty much every piece of hardware you bought. You were given exact instructions on how to use the hardware you just bought, not only how to [...]]]></description>
			<content:encoded><![CDATA[<p>This is one question I have been interested in ever since I started using GNU/Linux.</p>
<p>Just think about it for a moment. About 20 years ago you got specifications for pretty much every piece of hardware you bought. You were given exact instructions on how to use the hardware you just bought, not only how to install it. Things have changed since then.</p>
<p>If you buy any piece of hardware today you actually have to expect not to get any documentation on how to &#8220;talk&#8221; to your new toy. You are only given a CD (sometimes even only a link to a homepage) containing drivers for a few specific operating systems, usually only Microsoft Windows.</p>
<p>Now I am no driver hacker and so I probably wouldn&#8217;t be able to implement a driver for anything on my own anyways, but the Free Software community would largely benefit from hardware documentation, as there are a lot of capable driver hackers out there.</p>
<p>This is not a problem that only affects the Free Software community though. There are a lot of pieces of hardware which do not work on recent proprietary operating systems anymore due to lack of support by its manufacturers.<br />
At least this problem would not exist for Free Software operating systems, such as GNU/Linux, if hardware makers would publish documentation of their hardware. The people still using devices which are well beyond their end-of-life could implement drivers on their own, not being dependent on anyone.</p>
<p>What I am really wondering about in this case is why hardware companies are unable to coin standards for accessing devices of the same class. It works perfectly well for USB (take USB mass storage devices as an example) and I do not understand why there can&#8217;t be standardized interfaces to other hardware, such as network adapters, as well. On a very-low level these standardized interfaces do work. Just think of PCI, PCI Express or AGP.</p>
<p>Actually, if you think about this for a few more seconds you should realize one thing: Having standardized interfaces for devices of the same class would cut a lot of costs for hardware makers. Why? Oh well, if they design a brand new networking chip and still implement the given standard there would be no need of writing a new driver. Wait, there would be no need for per-device drivers at all. Implementing a common driver that accesses the standardized interface would be enough, for a whole range of devices.</p>
<p>So what am I asking of hardware makers? I would love to see companies creating devices of the same class to get together, create standardized interfaces, publish them and implement them in their new devices.<br />
I know, this is not likely to happen anytime soon, so a more realistic approach is asking for Free Software drivers and/or documentation.</p>
<p>Personally I have stopped buying hardware which &#8220;works&#8221; with GNU/Linux, I have come to the point where I try only to buy hardware which either comes with Free Software drivers from the manufacturer or documentation which allows implementation of Free Software drivers.<br />
This is probably the best way of showing these companies what you demand: Freedom.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/04/06/why-are-hardware-manufacturers-keeping-specs-to-themselves/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Is trying to fix (E)SMTP really worth it? [part 1]</title>
		<link>http://blog.peijnik.at/2008/03/27/is-trying-to-fix-esmtp-really-worth-it-part-1/</link>
		<comments>http://blog.peijnik.at/2008/03/27/is-trying-to-fix-esmtp-really-worth-it-part-1/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 18:36:21 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://espi86.wordpress.com/?p=18</guid>
		<description><![CDATA[[digg=http://digg.com/security/Is_trying_to_fix_E_SMTP_really_worth_it_part_1]
This one question has been in my mind for quite some time already. I mean, everyone uses SMTP (knowingly or not) when sending out emails and everyone sending emails also knows what SPAM is and receives SPAM messages.
However, few know how old SMTP actually is, and that, even though it serves everyone well, it has [...]]]></description>
			<content:encoded><![CDATA[<p>[digg=http://digg.com/security/Is_trying_to_fix_E_SMTP_really_worth_it_part_1]<br />
This one question has been in my mind for quite some time already. I mean, everyone uses <a href="http://en.wikipedia.org/wiki/SMTP">SMTP</a> (knowingly or not) when sending out emails and everyone sending emails also knows what <a href="http://en.wikipedia.org/wiki/E-mail_spam">SPAM</a> is and receives SPAM messages.</p>
<p>However, few know how old SMTP actually is, and that, even though it serves everyone well, it has been designed in a time when everyone was thinking of <a href="http://en.wikipedia.org/wiki/Spam_%28food%29">Spam</a> as canned meat. Back in 1982 SMTP was a great achievement and a lot of kudos should go to its creators, but now, in 2008, SMTP has become more of a liability than a great tool.</p>
<p>Originally, I wanted to write a single article covering all shortcomings of SMTP and possible solutions to these problems, but while writing the article a lot of text came up, so this is the first of two articles I am going to write on this topic. The first part is about the problems with SMTP and how fix-ups for SMTP are, even though they do work to some extent, a proper solutions to today&#8217;s issues.</p>
<p>Due to the way SMTP was designed and the way the Internet was back then it is prone to various things, like SPAM messages, <a href="http://en.wikipedia.org/wiki/E-mail_spoofing">sender spoofing</a>, data manipulation and so forth. A few attempts have been made at fixing some of the shortcomings of SMTP, like <a href="http://en.wikipedia.org/wiki/SMTP-AUTH">ESMTPA</a> (SMTP-AUTH) or <a href="http://en.wikipedia.org/wiki/Sender_Policy_Framework">SPF</a>, <a href="http://en.wikipedia.org/wiki/Callback_verification">Callback Verification</a>, and <a href="http://en.wikipedia.org/wiki/DKIM">DKIM</a>, but none of them has really fixed all problems that exist and all of these modifications are in my opinion mere workarounds.  Let us have a look at why both SPF and DKIM fail to fix the all problems SMTP has right now.</p>
<p><span id="more-18"></span><b>SPF</b></p>
<p>First let&#8217;s have a quick look at how SPF works: When an email is received a special TXT DNS record at the sender&#8217;s domain is used to verify that the sending computer (using its IP address) of an email is actually allowed to send email for a domain. A great mechanism that in theory would work perfectly well. Reality is a bit different though.</p>
<p>There are some domains which are actually using SPF and do have valid SPF records on their DNS servers. However, those are only some of the millions of domains on the Internet. How should one treat emails coming from a domain without SPF record? The messages could be real, non-SPAM messages, that should be delivered, but on the other hand these could be SPAM messages. Also, the more people start using SPF, the more likely it becomes that spammers are simply going to use sender-domains which do not have SPF records.<br />
Also, there are some organizations that have domains with improperly configured SPF records and there are even well-known ones, such as <a href="http://www.technorati.com/">Technorati</a> (I covered this in <a href="http://blog.sp.or.at/2008/03/25/mails-from-technorati-not-arriving-not-obeying-their-own-spf-rules/">one of my articles</a>). So one cannot even trust SPF records and valuable messages could be lost if a mail server is configured to drop all messages for which SPF authentication fails.</p>
<p>And there is a third problem: Sending emails from other places than your default one (office, home, etc.) and ISPs not allowing external users to use their SMTP servers (even not with authentication). A good example of this would be Austrian ISP <a href="http://www.upc.at/">UPC</a> (their SMTP server tells me that the AUTH extension was not advertised, even though it was; long story short, I cannot log in from outside) and I am quite sure there are a lot of others.</p>
<p>And I can come up with yet another problem: What about email relaying? Think about downloading all messages from all your email accounts into a single one, using <a href="http://fetchmail.berlios.de/">fetchmail</a> for example. This makes SPF useless, as no checks can be done anymore, due to the sending system&#8217;s IP address not being the original sender. If one assumes that every mail server uses SPF this is not a problem, but I like doing my checks on my server rather than relying on some other server.</p>
<p>Maybe there are even more problems with SPF, such as what to do when an email is received from a <a href="http://www.ops.ietf.org/lists/namedroppers/namedroppers.2005/msg00053.html">nonexistant domain</a> or when there is a temporary DNS failure on either side, but the ones listed above are those I am confronted with most often.</p>
<p><b>Callback Verification</b></p>
<p>On to the next topic. Callback verification is a simple method used by mail servers to try verifying that the sender actually exists. Whilst this works for some SPAM messages which use non-existent senders,  it does not help much as soon as the sender address does exist, and it does not even matter if the message was actually sent by the user owning the address. I guess there is nothing to add, even though it is a nice method to get rid of some spam it does not help with a lot of such messages.</p>
<p><b>DKIM</b></p>
<p>DKIM, or DomainKeys Identified Mail (originally named DomainKeys) is a method that is not meant to prevent abuse (such as SPAM), but rather to make tracking abuse easier. It works by the sender (usually the MSA of the sender on behalf of him) adding another header, &#8220;DKIM-Signature&#8221;, which contains a cryptographic signature of the message body.  The signature is generated using <a href="http://en.wikipedia.org/wiki/Public-key_cryptography">public-key cryptography</a>, where the public key is stored in a DNS TXT record and can thus be used by the receiving end to verify that the message contents have not been tampered with during transport and that the mail actually originated from that domain.</p>
<p>This method, even though being one of the most advanced ones today, is prone to replay attacks and does not protect from tampering with message headers. In short this means that even though the message body cannot be modified without the receiving end detecting the modification, the headers can, and thus the message can be redirected. Also, it is possible to intercept the transmission of a message, generate a thousand messages with the same content but a different recipient and this way flood a mailbox with a message that would stand DKIM verification.</p>
<p>The email relaying problem that&#8217;s present in SPF is not a problem here anymore, but the mobile-mail, the nonexistent domain and the DKIM-not-in-use problem still exist.<br />
Also, DKIM seems not to be used by a lot of email servers on the Internet. Thinking about it for a second I can just come up with two names of well-known organizations using DKIM: Google and Yahoo.</p>
<p><b>The message format</b></p>
<p>The next part of this article is about the SMTP message format. This part is not directly related to the SPAM problem, but should provide you with some more information that verifies that SMTP is outdated nowadays.</p>
<p><a href="http://en.wikipedia.org/wiki/Email#Format">RFC822 messages</a> (or emails) usually consist of two parts: a message header and a message body. Originally these messages were designed to contain 7bit-encoded ASCII data, which is plain text. This means that there were only 128 different characters which could be transferred via email, without support of special characters, like German &#8220;Umlaut&#8221; characters. A solution has then be developed, not only to support special characters in emails, but also to support transferring of binary data (such as images).</p>
<p><a href="http://en.wikipedia.org/wiki/MIME">MIME</a> is the name of this solution, and it enables every one of us to send binary attachments and special characters via email today. MIME allows the email client to include more than just 7-bit plain text messages, including attachments. This is achieved by special header, &#8220;<i>MIME-Version</i>&#8220;, which indicates that the contents of a message are MIME encoded. This header is then followed by a &#8220;<i>Content-Type</i>&#8221; header, identifying the type of content. For simple messages just consisting of a message body this would be &#8220;text/plain&#8221;, telling the client that there is just text in the mail.</p>
<p>However, how can emails then consist of both text and attachments? Well, there is a special value for the &#8220;Content-Type&#8221; header: &#8220;<i>multipart/mixed</i>&#8220;. This one indicates that there are several parts of a message, and every part comes with a separate &#8220;<i>Content-Type</i>&#8221; header. This way contents of a message can be organized in a tree, for example, containing the message body and a forwarded message.</p>
<p>An attachment is added by specifying an additional part of the message, usually with a &#8220;<i>Content-Transfer-Encoding: base64</i>&#8221; header, that says that the data has been <a href="http://en.wikipedia.org/wiki/Base64">base64</a> encoded. This way binary data can be represented using 7-bit ASCII.</p>
<p>But what does that mean? First of all, even though a message is split into several parts, there is only one body. Now if you are downloading a message via POP3 for example, there is no way of only downloading the actual text. You always need to download the whole message. Everyone knows this situation: You are downloading a message and have to wait for all attachments to be downloaded, even though you might not be interested in those attachments at all.</p>
<p>Also, encoding binary data using base64 creates a lot of overhead, as every byte (which can have 256 different values and corresponds to a single letter of text in 7-bit ASCII) is represented using only 64 possible values. Talking numbers here this means that messages encoded using base64 are usually 137% the size of the data they contain.</p>
<p><b>Conclusion</b></p>
<p>I hope that I have shown you what the problems with SMTP are right now. SMTP initially was  designed to transport only text and had no way of verifying either the sender of a message or the integrity of data. Some workarounds have been created to get rid of these issues, but even though some helped a lot, none has really fixed any of those problems.</p>
<p>Also, one should never forget how much time and money has been used to try fixing SMTP, whilst a lot less money might have been sufficient for creating something new, something better, something that is built for the needs of the Internet today, and not for the needs of the Internet back in 1982.</p>
<p>Personally I believe that the days of SMTP are long over and that there is need of a proper replacement. I do understand that SMTP and the current email infrastructure are still in use because an infrastructure exists, but SMTP really deserves being retired, after serving us pretty well for more than 25 years.</p>
<p>The next part in this series of articles will be about what my idea of a successor of SMTP and the whole email infrastructure is, what it could look like and also how it could work. So stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/03/27/is-trying-to-fix-esmtp-really-worth-it-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Less spam again</title>
		<link>http://blog.peijnik.at/2008/03/26/less-spam-again/</link>
		<comments>http://blog.peijnik.at/2008/03/26/less-spam-again/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 15:26:26 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[observations]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://espi86.wordpress.com/?p=13</guid>
		<description><![CDATA[I found a solution to the problem last described in this article.
To sum the problem I was experiencing up: My anti-spam system (namely Spamassassin) did not detect spam mails anymore.
Now here is the reason it did not: After some more investigation of the problem I noticed that spam emails were received via a local connection [...]]]></description>
			<content:encoded><![CDATA[<p>I found a solution to the problem last described in <a href="http://espi86.wordpress.com/2008/03/25/more-spam-again/">this</a> article.</p>
<p>To sum the problem I was experiencing up: My anti-spam system (namely Spamassassin) did not detect spam mails anymore.</p>
<p>Now here is the reason it did not: After some more investigation of the problem I noticed that spam emails were received via a local connection (forwarded from fetchmail). However, one of my Exim ACLs says not to scan emails from localhost for spam.</p>
<p>So, the solution might be a hack, but it worked out perfectly. Starting fetchmail with the <i>-S &lt;servername&gt;</i> argument causes it to send emails to the given SMTP server rather than localhost. Using the real hostname of my server caused the &#8220;do not scan local mails&#8221; not to kick in and all mails received via fetchmail to be scanned again.</p>
<p><b>Problem fixed</b>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/03/26/less-spam-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mails from Technorati not arriving: not obeying their own SPF rules</title>
		<link>http://blog.peijnik.at/2008/03/25/mails-from-technorati-not-arriving-not-obeying-their-own-spf-rules/</link>
		<comments>http://blog.peijnik.at/2008/03/25/mails-from-technorati-not-arriving-not-obeying-their-own-spf-rules/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 13:59:41 +0000</pubDate>
		<dc:creator>stephan</dc:creator>
				<category><![CDATA[observations]]></category>

		<guid isPermaLink="false">http://www.sp.or.at/blog/2008/03/25/mails-from-technorati-not-arriving-not-obeying-their-own-spf-rules/</guid>
		<description><![CDATA[As I was looking into problems with my mail server I noticed one more thing: I was wondering why I did not receive password recovery emails from Technorati. It seems as if they are not obeying their own SPF rules:

2008-03-25 14:46:23 H=nat-365m.technorati.com (t120.technorati.com) [208.66.64.4] F= rejected RCPT : Not authorized by SPF
Now I am wondering [...]]]></description>
			<content:encoded><![CDATA[<p>As I was looking into problems with my mail server I noticed one more thing: I was wondering why I did not receive password recovery emails from <a href="http://www.technorati.com">Technorati</a>. It seems as if they are not obeying their own SPF rules:<br />
<code><br />
2008-03-25 14:46:23 H=nat-365m.technorati.com (t120.technorati.com) [208.66.64.4] F= rejected RCPT : Not authorized by SPF</code></p>
<p>Now I am wondering why someone sets up SPF for his mail domain when he is in fact sending emails from other IP addresses as well. Time to update your SPF rules Technorati&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.peijnik.at/2008/03/25/mails-from-technorati-not-arriving-not-obeying-their-own-spf-rules/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
