<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="http://www.trend-watcher.org/styles/rss.css" type="text/css"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns="http://my.netscape.com/rdf/simple/0.9/"
>

 <channel>
  <title>Trend-Watcher</title>
  <link>http://www.trend-watcher.org/blog/1</link>
  <description></description>
 </channel>
    <item>
   <title>Credit Card , Domain Name, Spoofing and Phishing</title>
   <description>&lt;p&gt;&lt;span style=&quot;font-size: 8pt&quot;&gt;&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;Updated:&amp;nbsp;Aug&amp;nbsp;22&amp;nbsp;to&amp;nbsp;add&amp;nbsp;that&amp;nbsp;the&amp;nbsp;Postbank&amp;nbsp;now&amp;nbsp;informs&amp;nbsp;their&amp;nbsp;users&amp;nbsp;about&amp;nbsp;the&amp;nbsp;use&amp;nbsp;of&amp;nbsp;the&amp;nbsp;arcot&amp;nbsp;domain.&lt;br /&gt;Updated:&amp;nbsp;Aug&amp;nbsp;24,&amp;nbsp;some&amp;nbsp;slights&amp;nbsp;textual&amp;nbsp;edits.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Often people argue that DNS spoofing will not impact peoples ability to do banking and such. With the current practices both with user interfaces as well as the practices that the banks themselves deploy I claim that this is close to nonsense.&lt;/p&gt;&lt;p&gt;The basic attack is that user Alice wants to connect to her website: www.postbank.nl, in order to do a secure transaction the bank will redirect her to a secure website. If Alice is smart she will check the security of the connection by looking at the padlock and verifying if the domain she connects to make sense.&lt;/p&gt;&lt;p&gt;This is not going to work as long as:&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;browsers do not display the domain and only a padlock, so users need to actually dig deep before they are aware of possible problems&lt;/li&gt;							&lt;li&gt;and banks happily redirect to domains hosted by unknown 3rd parties so that users are used to providing information to&amp;nbsp;seemingly&amp;nbsp;unrelated parties.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The obvious DNS based attack is to redirect the unsecured postbank.nl site and provide link to postbank.malice.nl that have valid certificates. We all know that getting a certificate for postbank.malice.nl is a&amp;nbsp;trivial&amp;nbsp;matter, it takes an e-mail address and a credit card number.&lt;/p&gt;&lt;p&gt;Below is an example that banks take it for granted that users trust Arcot.com as a middle man for either Mastercard or the Postbank. And personally I have never heard of arcot.com, so what do I know.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The point I am making is that as long as Banks and Creditcard companies are implementing practices that make users get used to being redirected to completely unrelated, albeit HTTPS secured domains, they will not help to create a mindset where users will understand when they are subject to certain kinds of fraud, like phishing.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: x-large&quot;&gt;My experience today&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Apparently&amp;nbsp;&amp;nbsp;there is some new mechanism introduced to secure Internet credit card payments. Its called MasterCard SecureCode. I did not know about this, but that may be because I have not seen the snail mail yet. I was introduced to this new protection mechanism to protect against fraud while trying to pay for a conference.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The original website redirected me to a site from tripledeal.com for the payment transaction. Even though the original website did not tell me that the transaction was to be handled by triple deal I&amp;nbsp;decided&amp;nbsp;to take the leap of confidence based on prior experience.&lt;/p&gt;&lt;p&gt;So far so good.&lt;/p&gt;&lt;p&gt;At the end of the payment process a new validation step is introduced: I am invited to go to my bank to validate the payment.&lt;/p&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.secret-wg.org/BlogPics/PostbankScrewUp/ToYourBank.png&quot; alt=&quot;To your bank&quot; width=&quot;539&quot; height=&quot;296&quot; /&gt;&lt;/div&gt;&lt;p&gt;So pressing the &amp;quot;To Your Bank&amp;quot; button opens up a new window.&lt;/p&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.secret-wg.org/BlogPics/PostbankScrewUp/SecureCodeScreen.png&quot; width=&quot;392&quot; height=&quot;401&quot; /&gt;&lt;/div&gt;&lt;p&gt;Oh... wait.&lt;/p&gt;&lt;p&gt;This screen asks me about details about my credit card. I need to be extra suspicious about entering information. Let me click on the padlock to verify that I am actually talking to my bank.&lt;/p&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.secret-wg.org/BlogPics/PostbankScrewUp/ArcotIsNotPostbank.png&quot; width=&quot;517&quot; height=&quot;471&quot; /&gt;&lt;/div&gt;&lt;p&gt;Oh.. so an organization called arcot.com is claiming to represent my bank? I do not believe that, anybody could be claiming to be my bank, even with that little padlock in place.&lt;/p&gt;&lt;p&gt;So, there is this new validation scheme I have never heard of, that needs some of my credentials, and that takes me to a site that does not seem to be my bank? What more do I need to suspect that I am subject of an&amp;nbsp;elaborate&amp;nbsp;phishing attack?&lt;/p&gt;&lt;p&gt;Let me read the page once more... Oh it says more information can be found at postbank.nl/SecureCode. So lets go there https://postbank.nl/SecureCode .... timeout. Let me try over a non secure channel and see what I get (depending on trailing/nontrailing slash).&lt;/p&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.secret-wg.org/BlogPics/PostbankScrewUp/Forbidden.png&quot; border=&quot;1&quot; width=&quot;512&quot; height=&quot;383&quot; /&gt;&lt;img src=&quot;http://www.secret-wg.org/BlogPics/PostbankScrewUp/NotFound.png&quot; border=&quot;1&quot; width=&quot;561&quot; height=&quot;338&quot; /&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: x-large&quot;&gt;So lets call the bank.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I called the Postbank&#039;s creditcard helpdesk I got a perfect explanation about the introduction of the SecureCode technology. I explained that I got a pop-up from postbank.arcot.nl, was put on hold, and was then explained that dealing with Arcot was OK.&lt;/p&gt;&lt;p&gt;The fortunate point was that I did not need to explain that me dealing with arcot.com was in sharp contrast with the anti-phishing policies that the banks deploy, and that the postbank helpdesk person actually understood that the pop-up should have originated from a postbank.nl or maybe mastercard.com domain. But he had no way to escalate&amp;nbsp;the problem and asked me to report in e-mail.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Time to write a mail. I plan to post the correspondence in a follow up.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Update Aug 22.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;It seems something happened. The&amp;nbsp;&lt;a href=&quot;http://www.postbank.nl/ing/pp/page/article/detail/0,2842,1859_180483_849292158,00.html?linktype=int&amp;amp;furl=securecode&quot; target=&quot;_blank&quot;&gt;postbank website now mentions&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;font-size: 12px; font-family: Arial&quot;&gt;* Let op, als u hierop klikt wordt u naar een website geleid die geen Postbank adres heeft. Controleer of het adres begint met&lt;a class=&quot;body_text_link&quot; href=&quot;https://www.trend-watcher.org/JavaScript:openWin(&#039;/ing/pp/page/external_link/redirect/0,3042,1859_180483_849292156,00.html?ExternalLinkId=849292156&#039;,&#039;arcot&#039;,&#039;scrollbars=yes,left=10,top=10,location=yes,resizable=yes,toolbar=yes,menubar=yes,status=yes,height=600,width=800&#039;);&quot; target=&quot;_top&quot;&gt;https://postbank.arcot.com&lt;/a&gt;. Hiermee heeft u een veilige verbinding om uw SecureCode te registreren.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Which is basically a warning that you will be dealing with arcot.com and that that is OK.&lt;/p&gt;&lt;p&gt;This does partly address the problem&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;	&lt;li&gt;&amp;nbsp;Technically this information is posted on a non secure website, a DNS cache poisson could lead to a spoofed site. It would be better if this&amp;nbsp;information&amp;nbsp;would also be accessible via HTTPS which it is not.&lt;/li&gt;				&lt;li&gt;The problem is still that the bank creates an expectation pattern that it is OK to deal with a domain name that is not rooted in the postbank domain. And that is exactly the thing they should try to avoid.&lt;/li&gt;&lt;/ol&gt;Who knows there will be a structural solution for this problem.&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
   <link>http://www.trend-watcher.org/post/1/118</link>
      <pubDate>Sun, 24 Aug 2008 00:01:53 +0200</pubDate>   
  </item>
    <item>
   <title>More trustworthy links...</title>
   <description>&lt;p&gt;Today I upgraded, without any hesitation, my license for&amp;nbsp;&lt;a href=&quot;http://www.zengobi.com/&quot;&gt;Curio&lt;/a&gt;&amp;nbsp;that came with version 5 today.&lt;/p&gt;&lt;p&gt;I payed with Pay Pal and got a nice confirmation mail. Being a bit touchy about user interfaces and domain names (see my&amp;nbsp;&lt;a href=&quot;http://www.trend-watcher.org/post/1/118&quot;&gt;post earlier today&lt;/a&gt;) I post the following without comment.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.secret-wg.org/PostbankScrewUp/PayPall.png&quot; /&gt;&lt;/p&gt;</description>
   <link>http://www.trend-watcher.org/post/1/122</link>
      <pubDate>Thu, 14 Aug 2008 18:38:50 +0200</pubDate>   
  </item>
    <item>
   <title>Export Article</title>
   <description>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://blog.wired.com/27bstroke6/2008/08/experts-accuse.html&quot;&gt;WIRED&lt;/a&gt;&amp;nbsp;seems to think I am an export article:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px; line-height: 13px; font-family: georgia&quot;&gt;Olaf Kolkman, a Dutch networking &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #800000&quot;&gt;export&lt;/span&gt;&lt;/span&gt;, says there&#039;s no time to waste. The only way for DNSSEC to work is for the top-level zone file -- which lists the specifics for top-level domains like .gov -- to be signed by a trusted authority.&lt;/span&gt;&lt;/div&gt;</description>
   <link>http://www.trend-watcher.org/post/1/119</link>
      <pubDate>Thu, 14 Aug 2008 15:35:25 +0200</pubDate>   
  </item>
    <item>
   <title>Do it yourself: VPN tunnel from Mac OSX to FreeBSD</title>
   <description>&lt;p&gt;Because I need to do a demonstration for which I need public IP addresses and I am not sure wether I will be behind a NAT box I decided to configure my Mac box to establish a VPN to my FreeBSD server.&lt;/p&gt;&lt;p&gt;The prerequisite is that you actually have public IP addresses to create a tunnel to. I&#039;ve been using a /28 so my colleagues can make use of the tunnel too.&lt;/p&gt;&lt;p&gt;Setting up PPTPs is a bit involved since it involves understanding the various layers that are involved.&lt;/p&gt;&lt;p&gt;Below is an annotated configuration file &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;/usr/local/etc/mpd5/mpd.conf&lt;/span&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;In the example below assume that 10.15.22/24 is a piece of public address space. That 10.15.22.177-182&amp;nbsp;are the addresses assigned to users.&amp;nbsp;&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	#################################################################&lt;br /&gt;	#&lt;br /&gt;	#	MPD configuration file for a VPN&lt;br /&gt;	# &lt;br /&gt;	#&lt;br /&gt;	#################################################################&lt;br /&gt;	&lt;br /&gt;	startup:&lt;br /&gt;	# set user username password [admin|operator|user]&lt;br /&gt;	# This command configures which users are allowed to connect&lt;br /&gt;	# to the console. It may be invoked multiple times with&lt;br /&gt;	# different usernames.&lt;br /&gt;	set user admin secret admin&lt;br /&gt;	# set user foo1 bar1&lt;br /&gt;	# configure the console&lt;br /&gt;	set console self 127.0.0.1 5005&lt;br /&gt;	set console open&lt;br /&gt;	# configure the web server&lt;br /&gt;	set web self 127.0.0.1 5006&lt;br /&gt;	set web open&lt;br /&gt;	&lt;br /&gt;	# We define a new interface for eache possible user&lt;br /&gt;	default:&lt;br /&gt;	load pptp_server&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;	# Anotated Setup for pptp_server&lt;br /&gt;	&amp;nbsp;pptp_server:&lt;br /&gt;	# Pool of addresses to be used:&lt;br /&gt;	set ippool add LANPOOL 10.15.22.177 10.15.22.182&lt;br /&gt;	&lt;br /&gt;	# Create a bundle template named VPN&lt;br /&gt;	create bundle template VPN &lt;br /&gt;	&lt;br /&gt;	# Iterface configuration   &lt;br /&gt;	#  On demand is only useful when we want to make an outgoing &lt;br /&gt;	# connection &lt;br /&gt;	set iface disable on-demand&lt;br /&gt;	set iface idle 0&lt;br /&gt;	&lt;br /&gt;	# Since we do not want to play routing tricks we&#039;ll proxy arp&lt;br /&gt;	# to the LAN so traffic will find its way to the interace&lt;br /&gt;	set iface enable proxy-arp&lt;br /&gt;	set iface enable tcpmssfix&lt;br /&gt;	&lt;br /&gt;	# IP options&lt;br /&gt;	# TCP header compression&lt;br /&gt;	set ipcp yes vjcomp&lt;br /&gt;	&lt;br /&gt;	# Set the IP range&lt;br /&gt;	# pick a fixed local address and allow assignment from a shared pool&lt;br /&gt;	# To assign a fixed address to a user use something like:&lt;br /&gt;	# joe	      	&amp;quot;foobar&amp;quot; 10.15.22.178&lt;br /&gt;	# bob	      	&amp;quot;foobar&amp;quot; 10.15.22.179&lt;br /&gt;	0	# in the mpd.secrets file&lt;br /&gt;	# that would always provide joe with the 178 and bob with the 179 address &lt;br /&gt;	set ipcp ranges 10.15.22.48/32 ippool LANPOOL&lt;br /&gt;	# This is the resolver that is available on the local lan&lt;br /&gt;	set ipcp dns 10.15.22.155&lt;br /&gt;	&lt;br /&gt;	# Set the encryption on the VPN, Mac OSX uses PPTP uses this too.&lt;br /&gt;	set bundle enable compression&lt;br /&gt;	# Let this bundle use mppc &lt;br /&gt;	set ccp yes mppc&lt;br /&gt;	# Continue to configure mppc&lt;br /&gt;	# Use 128 bit MMPE encryption&lt;br /&gt;	set mppc no e40&lt;br /&gt;	set mppc yes e128&lt;br /&gt;	# Less secure but fastre recovery from lost packets&lt;br /&gt;	set mppc yes stateless&lt;br /&gt;	# Require Encryption&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;	#Create links&lt;br /&gt;	&lt;br /&gt;	create link template VPNLINK pptp&lt;br /&gt;	# Set bundle template to use&lt;br /&gt;	set link action bundle VPN&lt;br /&gt;	# Multilink adds some overhead, but gives full 1500 MTU.&lt;br /&gt;	set link enable multilink&lt;br /&gt;	# Enable address and control field compression, and protocol&lt;br /&gt;	# field compression&lt;br /&gt;	set link yes acfcomp protocomp&lt;br /&gt;	# Turn pap and chap type authentication off.&lt;br /&gt;	set link no pap chap&lt;br /&gt;	&lt;br /&gt;	# Require CHAP authentication from the peer NB: Use enable The&lt;br /&gt;	# use of enable and accept have slightly different meaning in&lt;br /&gt;	# the context of PAP and CHAP.&lt;br /&gt;	set link enable chap&lt;br /&gt;	&lt;br /&gt;	set link keep-alive 30 300&lt;br /&gt;	# We reducing link mtu to avoid GRE packet fragmentation.&lt;br /&gt;	set link mtu 1460&lt;br /&gt;	# Configure PPTP	# This is the address to which you will have to connect using your vpn client&lt;br /&gt;	set pptp self 10.15.22.48&lt;br /&gt;	# Allow to accept calls&lt;br /&gt;	set link enable incoming&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Troubleshooting&lt;/h2&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Having all configured out of the box things did not work as expected, after establishing a connection (by which the client was assigned 10.15.22.178) I could not forward traffic to the Internet. My suspicion was that proxy arp was not working on the FreeBSD server. &amp;nbsp;&lt;/p&gt;&lt;p&gt;To troubleshoot proxy-arp you login to a machine that lives on your LAN, different from your client. And ping the address that the client has been assigned.&lt;/p&gt;&lt;p&gt;Then you validate by first pinging and then checking if the arp address points to the interface by which your server is connected to the LAN.&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	otherbox# ping 10.15.22.178&lt;br /&gt;	otherbox# arp 10.15.22.178&lt;br /&gt;	? (10.15.22.178) at 0:10:4b:bc:24:1b on en0 [ethernet]&lt;br /&gt;	freebsdbox#ifconfig	xl0: flags=8843 metric 0 mtu 1500&lt;br /&gt;	options=9&lt;br /&gt;	ether 00:10:4b:bc:24:1b&lt;br /&gt;	...&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;Those MAC addresses look good.. So proxy-arp was not the problem. What could be another reason why packets from the pptp interface do not make it to the xl0 interface and onto the net? But off course IP forwarding. If you forgot a &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt; sysctl net.inet.ip.forwarding=1&amp;nbsp;&lt;/span&gt;on your PPTP server then packets will never make it. So make sure your &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;/etc/sysctl.conf&lt;/span&gt; contains such line.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Setting up your connection to this VPN server is trivial, just follow the instructions in your apple help instructions.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Choose Apple &amp;gt; System Preferences, and then click Network.&lt;/p&gt;&lt;div class=&quot;taskprimtext&quot; style=&quot;clear: both; padding-bottom: 8px&quot;&gt;&lt;div class=&quot;taskprimbullet&quot; style=&quot;float: left&quot;&gt;&lt;ol&gt;	&lt;li&gt;&lt;span style=&quot;font-size: 12px; line-height: 16px; font-family: &#039;Lucida Grande&#039;&quot;&gt;Click Add (+) at the bottom of the network connection services list, and then choose VPN from the Interface pop-up menu.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;&lt;span style=&quot;font-size: 12px; line-height: 16px; font-family: &#039;Lucida Grande&#039;&quot;&gt;Choose what kind of VPN connection you want to set up from the VPN Type pop-up menu, depending on the network you are connecting to, and give the VPN service a name.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;&lt;span style=&quot;font-size: 12px; line-height: 16px; font-family: &#039;Lucida Grande&#039;&quot;&gt;Enter the server address and the account name for the VPN connection.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;&lt;span style=&quot;font-size: 12px; line-height: 16px; font-family: &#039;Lucida Grande&#039;&quot;&gt;Click Authentication Settings, and enter the user authentication information you were given by the network administrator.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;&lt;span style=&quot;font-size: 12px; line-height: 16px; font-family: &#039;Lucida Grande&#039;&quot;&gt;After entering the user authentication information, click OK, and then click Connect.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;taskprimtext&quot; style=&quot;clear: both; padding-bottom: 8px&quot;&gt;&lt;div class=&quot;taskprimcontent&quot; style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 20px&quot;&gt;&lt;p class=&quot;taskprimtextlongtext&quot; style=&quot;font-size: 9pt; font-family: &#039;Lucida Grande&#039;, Arial, sans-serif; line-height: 12pt; text-decoration: none; margin-left: 0px; margin-top: 0px; margin-bottom: 8px&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;taskprimtextlongtext&quot; style=&quot;font-size: 9pt; font-family: &#039;Lucida Grande&#039;, Arial, sans-serif; line-height: 12pt; text-decoration: none; margin-left: 0px; margin-top: 0px; margin-bottom: 8px&quot;&gt;If you want all your traffic routed via the VPN make sure you check the the &amp;quot;Send all traffic over VPN connection&amp;quot;.&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
   <link>http://www.trend-watcher.org/post/1/117</link>
      <pubDate>Tue, 12 Aug 2008 12:27:00 +0200</pubDate>   
  </item>
    <item>
   <title>The effect of policy....</title>
   <description>&lt;img src=&quot;http://www.kolkman.org/gallery/displayimage.php?album=3&amp;amp;pos=9&quot; /&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/userpics/10001/MeanwhileAtRIRs-col-small.png&quot; width=&quot;293&quot; height=&quot;600&quot; /&gt;</description>
   <link>http://www.trend-watcher.org/post/1/116</link>
      <pubDate>Sat, 17 May 2008 16:08:55 +0200</pubDate>   
  </item>
    <item>
   <title>OpenFire, IPv6, and FreeBSD</title>
   <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;With IPv6 deployment I&#039;d like to put my money where my mouth is so&amp;nbsp;after the IETF IPv6 only network experiment I wanted to make sure that my jabber server runs both IPv6 and IPv4. &amp;nbsp;I ran into a bunch of problems:&lt;/p&gt;&lt;p&gt;OpenFire is documented to run IPv6. It draws its capabilities from the java implementation it runs on.&lt;/p&gt;&lt;p&gt;The default Java virtual machine that comes with the FreeBSD ports is diablo-jdk15. That port does not come with IPv6 enabled. You can test that by using the&amp;nbsp;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/networking/nifs/listing.html&quot; target=&quot;_blank&quot; title=&quot;ListNets Tutorial code&quot;&gt;ListNets program&lt;/a&gt;&amp;nbsp;that is available from the Java Tutorial site. Copy and paste the code on that page into a file called ListNets.java and test&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	$ javac ListNets.java&lt;br /&gt;	$ java -version&lt;br /&gt;	java version &amp;quot;1.5.0&amp;quot;&lt;br /&gt;	Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b01)&lt;br /&gt;	Java HotSpot(TM) Client VM (build diablo-1.5.0_07-b01, mixed mode)&lt;br /&gt;	$ java ListNets      &lt;br /&gt;	Display name: lo0&lt;br /&gt;	Name: lo0&lt;br /&gt;	InetAddress: /127.0.0.1&lt;br /&gt;	Display name: rl0&lt;br /&gt;	Name: rl0&lt;br /&gt;	InetAddress: /213.154.224.4&lt;br /&gt;	InetAddress: /213.154.224.1&lt;br /&gt;	$&lt;/blockquote&gt;&lt;p&gt;I double checked if there is a compile time configuration option to turn on IPv6 for diablo, there is none. Off to install the jdk1.5 port. Here you have to start with a &amp;quot;&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;make config&lt;/span&gt;&amp;quot; in order to enable IPv6 support and compilation will take an hour or so. Once installed the test program will show all interfaces:&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	$  /usr/local/jdk1.5.0/bin/java -version&lt;br /&gt;	java version &amp;quot;1.5.0_14-p8&amp;quot;&lt;br /&gt;	Java(TM) 2 Runtime Environment, Standard Edition (build )&lt;br /&gt;	Java HotSpot(TM) Client VM (build 1.5.0_14-p8-olaf_28_apr_2008_16_18, mixed mode)&lt;br /&gt;	$  /usr/local/jdk1.5.0/bin/java ListNets &lt;br /&gt;	Display name: lo0&lt;br /&gt;	Name: lo0&lt;br /&gt;	InetAddress: /fe80:5:0:0:0:0:0:1&lt;br /&gt;	InetAddress: /0:0:0:0:0:0:0:1&lt;br /&gt;	InetAddress: /127.0.0.1&lt;br /&gt;	&lt;br /&gt;	Display name: rl0&lt;br /&gt;	Name: rl0&lt;br /&gt;	InetAddress: /2001:7b8:206:1:0:0:4:53&lt;br /&gt;	InetAddress: /2001:7b8:206:1:0:0:0:53&lt;br /&gt;	InetAddress: /2001:7b8:206:1:0:0:0:1&lt;br /&gt;	InetAddress: /fe80:2:0:0:240:f4ff:fe37:8232&lt;br /&gt;	InetAddress: /213.154.224.4&lt;br /&gt;	InetAddress: /213.154.224.1&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;Starting openfire manually, after setting &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;JAVA_HOME&lt;/span&gt; to &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;/usr/local/jdk1.5.0/&lt;/span&gt; one can validate that   the program actually binds to the tcp6 sockets:&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	openfire java       96677 11 stream (not connected)	openfire java       96677 13 tcp6   *:7777                *:*&lt;br /&gt;	openfire java       96677 16 tcp6   *:5269                *:*&lt;br /&gt;	openfire java       96677 17 tcp6   *:5229                *:*&lt;br /&gt;	openfire java       96677 22 tcp6   *:9090                *:*&lt;br /&gt;	openfire java       96677 25 tcp6   *:9091                *:*&lt;br /&gt;	openfire java       96677 30 tcp6   *:5222                *:*&lt;br /&gt;	openfire java       96677 33 tcp6   *:5223                *:*&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;Testing the IPv6 connection towards the openfire management interface using &amp;quot;&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;telnet ::1 9090&lt;/span&gt;&amp;quot; demonstrates that the IPv6 connection works. However a &amp;quot;&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;telnet 127.0.0.1 9090&lt;/span&gt;&amp;quot; fails. So we only have IPv6 and no IPv4 connectivity. &lt;/p&gt;&lt;p&gt;So, why is this?&lt;/p&gt;&lt;p&gt;FreeBSD (and open and net BSD) turn off IPv4 binding to IPv6 sockets by default. This behavior is controlled using the&amp;nbsp;&amp;nbsp;&amp;quot;&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;net.inet6.ip6.v6only&lt;/span&gt;&amp;quot; kernel option. One workaround to solve this problem is to set &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;net.inet6.ip6.v6only=0&lt;/span&gt;. However this could lead to cause possible&lt;a href=&quot;http://tools.ietf.org/id/draft-itojun-v6ops-v4mapped-harmful&quot; target=&quot;_blank&quot;&gt; security problems&lt;/a&gt;. The security problems in &lt;a href=&quot;http://tools.ietf.org/id/draft-itojun-v6ops-v4mapped-harmful&quot; target=&quot;_blank&quot;&gt;Itojun&#039;s draft&lt;/a&gt; are the only security issues I am aware off and they can be mitigated by filtering on ::ffff:0:0/96 network traffic e.g. at ones network perimeter. That traffic should not be on the network in the first place (see e.g. informationa RFC number &lt;a href=&quot;http://www.ietf.org/rfc/rfc5156.txt&quot; target=&quot;_blank&quot;&gt;RFC5156&lt;/a&gt; section 2.2). &lt;/p&gt;&lt;p&gt;With&amp;nbsp; &lt;span style=&quot;font-family: &#039;courier new&#039;&quot;&gt;net.inet6.ip6.v6only=1&lt;/span&gt; it is impossible to use AF_INET6 to bind to both IPv6 and IPv4 addresses.  &lt;/p&gt;&lt;p&gt;As an alternative I have tried to bind to interfaces explicitly in the &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;openfire.xml&lt;/span&gt;&amp;nbsp;configuration but that fails too as it seems that openfire only accepts one instance of the network.interface configuration option. I would argue that on multihomed machines one may want to bind to a subset of the available addresses instead of binding to the wildcard and that allowing for address family agnostic specification of one or more interfaces is the best solution. &lt;/p&gt;&lt;p&gt;Starting two instances of openfire, one on IPv6 and one on IPv4, by specifically binding to the v6 and v4 interfaces is no solution either because the IPv4 server would not know of the presence of clients registered on the IPv6 server.&lt;/p&gt;&lt;p&gt;In order to get a working dual stack openfire running on FreeBSD do the following.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;The HOWTO&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;&amp;nbsp;add the following lines to your /etc/rc.conf:					&lt;blockquote class=&quot;code&quot;&gt;		# Allow IPv4-mapped addresses		ipv6_ipv4mapping=&amp;quot;YES&amp;quot;					&lt;/blockquote&gt;	&lt;/li&gt;				&lt;li&gt; Make sure your java distribution supports IPv6.				&lt;ul&gt;		&lt;li&gt; /&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;usr/ports/java/diablo-jdk15&lt;/span&gt; does not support IPv6 &lt;/li&gt;								&lt;li&gt;&lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt; /usr/ports/java/jdk15&lt;/span&gt; and &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;/usr/ports/java/jdk16&lt;/span&gt; do support IPv6, but you have to rune &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;make config&lt;/span&gt;&amp;nbsp;and specifically set IPV6 support before building!		&lt;/li&gt;				&lt;/ul&gt;	&lt;/li&gt;				&lt;li&gt;	Edit your /usr/local/etc/rc.d/openfire to allow for a different java vm to be used:				&lt;blockquote class=&quot;code&quot;&gt;		--- /usr/local/etc/rc.d/openfire.bak	2008-05-02 10:22:16.000000000 +0200&lt;br /&gt;		+++ /usr/local/etc/rc.d/openfire	2008-05-02 10:23:00.000000000 +0200&lt;br /&gt;		@@ -20,6 +20,9 @@&lt;br /&gt;		#               Set it to java home directory.&lt;br /&gt;		# openfire_javargs (args):  Set to -Xmx256M by default.&lt;br /&gt;		#               See java -h for available arguments.&lt;br /&gt;		+# openfire_java_home (path): Set to /usr/local by default.&lt;br /&gt;		+#               Sets JAVA_HOME before calling java&lt;br /&gt;		+#               See javavm(1)&lt;br /&gt;		&lt;br /&gt;		. /etc/rc.subr&lt;br /&gt;		&lt;br /&gt;		@@ -34,6 +37,9 @@&lt;br /&gt;		: ${openfire_libdir:=/usr/local/share/java/classes}&lt;br /&gt;		: ${openfire_home:=/usr/local/share/java/openfire}&lt;br /&gt;		: ${openfire_javargs:=&#039;-Xmx256M&#039;}&lt;br /&gt;		+: ${openfire_java_home:=/usr/local}&lt;br /&gt;		+&lt;br /&gt;		+export JAVA_HOME=${openfire_java_home}&lt;br /&gt;		&lt;br /&gt;		pidfile=/var/run/${name}.pid&lt;br /&gt;		&lt;br /&gt;	&lt;/blockquote&gt;	Hopefully the openfire ports maintainer will apply this patch, or offer a similar solution in a forthcoming release.	&lt;/li&gt;				&lt;li&gt;	Set &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;openfire_java_home&lt;/span&gt; in your &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;/etc/rc.conf&lt;/span&gt;:				&lt;blockquote class=&quot;code&quot;&gt;		# Start openfire, make sure to use an IPv6 enabled java engine&lt;br /&gt;		openfire_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;		openfire_java_home=&amp;quot;/usr/local/jdk1.6.0/&amp;quot; &amp;nbsp; # or your local variety		&lt;/blockquote&gt;	&lt;/li&gt;				&lt;li&gt; Verify that both IPv4 and IPv6 are being used. Allow openfire a few seconds to bind to the various interfaces en then use &lt;span style=&quot;font-family: &#039;courier new&#039;, courier&quot;&gt;sockstat&lt;/span&gt; to verify if tcp4 and tcp6 are in use:				&lt;blockquote class=&quot;code&quot;&gt;		# sockstat | grep openfire&lt;br /&gt;		openfire java       12742 27 stream (not connected)&lt;br /&gt;		openfire java       12742 29 udp46  *:10020               *:*&lt;br /&gt;		openfire java       12742 30 tcp46  *:7777                *:*&lt;br /&gt;		openfire java       12742 31 tcp6   ::1:60235             ::1:60234&lt;br /&gt;		openfire java       12742 33 tcp46  *:5229                *:*&lt;br /&gt;		openfire java       12742 35 tcp46  *:5269                *:*&lt;br /&gt;		openfire java       12742 45 tcp46  *:9990                *:*&lt;br /&gt;		openfire java       12742 49 tcp46  *:9991                *:*&lt;br /&gt;	&lt;/blockquote&gt;	&lt;/li&gt;			&lt;li&gt;Don&#039;t forget to block ::ffff:0:0/96 traffic on your network&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;font-weight: bold&quot;&gt;Some Tweaks&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In the DNS I pointed the SRV records to a host with both an IPv4 and IPv6 address, something like:&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	_xmpp-client._tcp.jabber.secret-wg.org. 300 IN SRV 0 0 5222 jabber.secret-wg.org&lt;br /&gt;	jabber.secret-wg.org.   3600    IN A    213.154.224.48&lt;br /&gt;	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3600    AAAA    2001:7b8:206:1:0:1234:be21:e31e&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;It turns out that with the clients I tried (iChat and Adium) I was not able to connect to the server while being connected to an IPv6 only network. When specifically connecting to the server by entering jabber-6.secret-wg.org (with AAAA RRs and without A RRs) things work like a charm.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note also that you have to generate a certificate with a number of alt names: jabber.secret-wg.org *.jabber.secret-wg.org, jabber-6.secret-wg.org, and *.jabber-6.secret-wg.org. Create an openssl configuration file with information similar to the following, create a certificate request and get it signed with for instance&amp;nbsp;&lt;a href=&quot;https://www.trend-watcher.org/cacert.org&quot; target=&quot;_blank&quot; title=&quot;CA Cert&quot;&gt;cacert.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote class=&quot;code&quot;&gt;	commonName                      = Common Name (eg, YOUR name)&lt;br /&gt;	commonName_default              = jabber.secret-wg.org&lt;br /&gt;	0.subjectAltName                   = Subject altname&lt;br /&gt;	0.subjectAltName_default           = DNS:*.jabber.secret-wg.org&lt;br /&gt;	1.subjectAltName                   = Subject altname&lt;br /&gt;	1.subjectAltName_default           = DNS:jabber-6.secret-wg.org&lt;br /&gt;	2.subjectAltName                   = Subject altname&lt;br /&gt;	2.subjectAltName_default            = DNS:*.jabber-6.secret-wg.org&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;[Edited to clarify a few points on April 30] &lt;/p&gt;&lt;p&gt;[Edited to add the Howto section on May 2]&lt;/p&gt;&lt;p&gt;[Edited to add the Some Tweaks section on May 7]&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
   <link>http://www.trend-watcher.org/post/1/115</link>
      <pubDate>Tue, 29 Apr 2008 10:12:46 +0200</pubDate>   
  </item>
    <item>
   <title>Design your own life</title>
   <description>&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;&lt;/div&gt;&lt;div&gt;The other day I received a brochure from IKEA, the last page featured an advertisement by &amp;quot;&lt;a href=&quot;https://www.trend-watcher.org/www.dela.nl&quot; target=&quot;_blank&quot;&gt;DELA&lt;/a&gt;&amp;quot; a dutch funeral insurance company. Even though the disclaimer at the bottom of the add that the advertisement was not an initiative by IKEA it made me think about the essential missing products in the IKEA &amp;quot;design your own life&amp;quot; philosophy.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;1&quot; style=&quot;width: 753px; height: 550px&quot;&gt;  &lt;tbody&gt;    &lt;tr&gt;      &lt;td style=&quot;width: 254px&quot;&gt;&lt;img src=&quot;http://www.trend-watcher.org/images/ikea.gif&quot; border=&quot;0&quot; title=&quot;undefined&quot; /&gt;&lt;/td&gt;      &lt;td style=&quot;width: 393px&quot;&gt;&lt;/td&gt;      &lt;td style=&quot;width: 82px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;width: 254px&quot;&gt;      &lt;div id=&quot;ikeaheader&quot;&gt;&lt;span style=&quot;color: #999999&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif&quot;&gt;Design your own life&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;width: 393px&quot;&gt;&lt;/td&gt;      &lt;td style=&quot;width: 82px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;        &lt;tr&gt;      &lt;td rowspan=&quot;4&quot; style=&quot;width: 254px; height: 107px&quot;&gt;&lt;br /&gt;      &lt;br /&gt;      &lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.trend-watcher.org/images/urn.jpg&quot; border=&quot;0&quot; alt=&quot;URN&quot; title=&quot;URN&quot; width=&quot;100&quot; /&gt;&lt;br /&gt;      &lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;width: 393px; height: 73px&quot;&gt;      &lt;div id=&quot;productname&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px&quot;&gt;&lt;span style=&quot;font-size: -webkit-xxx-large&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Aska&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;width: 82px; height: 73px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;height: 42px&quot;&gt;      &lt;div id=&quot;productdescr&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span style=&quot;font-family: arial, helvetica, sans-serif&quot;&gt;&lt;span style=&quot;color: #808080&quot;&gt;Swedish&amp;nbsp;Urn&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;colors&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;            &lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;height: 42px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;height: 31px&quot;&gt;      &lt;select name=&quot;Colors&quot;&gt;      &lt;option&gt;Sunday Grey&lt;/option&gt;      &lt;option&gt;Heaven White&lt;/option&gt;      &lt;option&gt;Bat Black&lt;/option&gt;      &lt;option&gt;Flowers&lt;/option&gt;      &lt;option&gt;Blood Red&lt;/option&gt;      &lt;option&gt;&lt;/option&gt;      &lt;optgroup&gt;&lt;/optgroup&gt;      &lt;/select&gt;      &lt;/td&gt;      &lt;td style=&quot;height: 31px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;height: 107px&quot;&gt;      &lt;div id=&quot;productprice&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px&quot;&gt;&lt;span style=&quot;font-size: -webkit-xxx-large&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;&amp;euro;&amp;nbsp;149.00&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;height: 107px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;        &lt;tr&gt;      &lt;td rowspan=&quot;4&quot; style=&quot;width: 254px; height: 51px&quot;&gt;&lt;br /&gt;      &lt;br /&gt;      &lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://www.trend-watcher.org/images/pinecoffin.jpg&quot; border=&quot;0&quot; alt=&quot;URN&quot; title=&quot;URN&quot; width=&quot;200&quot; /&gt;&lt;br /&gt;      &lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;width: 393px; height: 132px&quot;&gt;      &lt;div id=&quot;productname&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px&quot;&gt;&lt;span style=&quot;font-size: -webkit-xxx-large&quot;&gt;&lt;span style=&quot;font-weight: bold&quot;&gt;Kista&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;width: 82px; height: 132px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;height: 56px&quot;&gt;      &lt;div id=&quot;productdescr&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-style: normal&quot;&gt;&lt;span style=&quot;color: #808080&quot;&gt;Swedish Pine Coffin&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;      &lt;/em&gt;&lt;/div&gt;&lt;div id=&quot;productdescr&quot;&gt;&amp;nbsp;&lt;/div&gt;      &lt;/td&gt;      &lt;td style=&quot;height: 56px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;height: 23px&quot;&gt;&amp;nbsp;&lt;/td&gt;      &lt;td style=&quot;height: 23px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;      &lt;td style=&quot;height: 51px&quot;&gt;      &lt;div id=&quot;productprice&quot;&gt;&lt;span style=&quot;font-size: 36px; font-weight: bold; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px&quot;&gt;&amp;euro; 349.00&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;height: 51px&quot;&gt;&lt;/td&gt;    &lt;/tr&gt;      &lt;/tbody&gt;&lt;/table&gt;&lt;hr /&gt;&lt;div&gt;Off course this is all parody and the&amp;nbsp;marvelous&amp;nbsp;IKEA company is not associated with any of the above.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description>
   <link>http://www.trend-watcher.org/post/1/114</link>
      <pubDate>Tue, 19 Feb 2008 18:16:01 +0100</pubDate>   
  </item>
    <item>
   <title>BubbleBable</title>
   <description>&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;&lt;/div&gt;&lt;div&gt;Seems like I was mentioned... I hope in a favorable context.&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; line-height: 12px; font-family: &#039;&amp;#65325;&amp;#65331; &amp;#65328;&amp;#12468;&amp;#12471;&amp;#12483;&amp;#12463;&#039;; color: #333333&quot;&gt;&lt;p style=&quot;line-height: 140%&quot;&gt;&lt;strong&gt;Q12&lt;/strong&gt;&amp;#12288;&amp;#26368;&amp;#36817;&amp;#12513;&amp;#12452;&amp;#12531;&amp;#12391;&amp;#20351;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12427;&amp;#35328;&amp;#35486;&amp;#12399;&amp;#65311;&amp;#12288;&amp;#12394;&amp;#12380;&amp;#12381;&amp;#12398;&amp;#35328;&amp;#35486;&amp;#12395;&amp;#24341;&amp;#12363;&amp;#12428;&amp;#12383;&amp;#12398;&amp;#12391;&amp;#12377;&amp;#12363;&amp;#65311;&lt;/p&gt;&lt;p style=&quot;line-height: 140%&quot;&gt;Perl&amp;#12290;&amp;#12381;&amp;#12428;&amp;#12414;&amp;#12391;&amp;#12399;awk&amp;#12420;C&amp;#12434;&amp;#20351;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12390;&amp;#12289;&amp;#20170;&amp;#12391;&amp;#12418;&amp;#12383;&amp;#12367;&amp;#12373;&amp;#12435;&amp;#20351;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12427;&amp;#12369;&amp;#12428;&amp;#12393;&amp;#12289;&lt;strong&gt;Perl&amp;#12399;C&amp;#12391;&amp;#12420;&amp;#12426;&amp;#12383;&amp;#12356;&amp;#12371;&amp;#12392;&amp;#12434;&amp;#12503;&amp;#12525;&amp;#12488;&amp;#12479;&amp;#12452;&amp;#12500;&amp;#12531;&amp;#12464;&amp;#12377;&amp;#12427;&amp;#12398;&amp;#12395;&amp;#23455;&amp;#12399;&amp;#20415;&amp;#21033;&lt;/strong&gt;&amp;#12290;&amp;#12471;&amp;#12473;&amp;#12486;&amp;#12512;&amp;#12467;&amp;#12540;&amp;#12523;&amp;#12392;&amp;#12363;&amp;#12424;&amp;#12367;&amp;#20284;&amp;#12383;&amp;#21517;&amp;#21069;&amp;#12391;&amp;#25201;&amp;#12360;&amp;#12427;&amp;#12375;&amp;#12397;&amp;#12290;&amp;#24460;&amp;#12289;&amp;#12424;&amp;#12356;&amp;#12521;&amp;#12452;&amp;#12502;&amp;#12521;&amp;#12522;&amp;#12364;&amp;#12381;&amp;#12429;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12427;&amp;#12290;&lt;strong&gt;DNS&amp;#38306;&amp;#36899;&amp;#12391;&amp;#12399;&amp;#12289;&amp;#12458;&amp;#12521;&amp;#12501;&amp;#12539;&amp;#12467;&amp;#12523;&amp;#12463;&amp;#12510;&amp;#12531;&amp;#65288;Olaf Kolkman&amp;#65289;&amp;#12398;&lt;a href=&quot;http://www.net-dns.org/&quot; target=&quot;_blank&quot;&gt;Net::DNS&lt;/a&gt;&amp;#12394;&amp;#12435;&amp;#12363;&amp;#32080;&amp;#27083;&amp;#32032;&amp;#25973;&lt;/strong&gt;&amp;#12290;&lt;/p&gt;&lt;p style=&quot;line-height: 140%&quot;&gt;&amp;#12288;C&amp;#12399;&amp;#30693;&amp;#12387;&amp;#12390;&amp;#12362;&amp;#12367;&amp;#12392;&amp;#22256;&amp;#12425;&amp;#12394;&amp;#12356;&amp;#12290;&amp;#12362;&amp;#12363;&amp;#12370;&amp;#12391;&amp;#20170;&amp;#12418;&amp;#12394;&amp;#12435;&amp;#12392;&amp;#12363;&amp;#12513;&amp;#12471;&amp;#12364;&amp;#39135;&amp;#12360;&amp;#12390;&amp;#12414;&amp;#12377;&amp;#12290;&amp;#21029;&amp;#12395;&amp;#31777;&amp;#21336;&amp;#12394;&amp;#32113;&amp;#35336;&amp;#35336;&amp;#31639;&amp;#12434;C&amp;#12391;&amp;#12420;&amp;#12387;&amp;#12383;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12356;&amp;#12290;32&amp;#12499;&amp;#12483;&amp;#12488;&amp;#21516;&amp;#22763;&amp;#12398;&amp;#12363;&amp;#12369;&amp;#31639;&amp;#12391;&amp;#12289;&amp;#32080;&amp;#26524;&amp;#12364;64&amp;#12499;&amp;#12483;&amp;#12488;&amp;#12391;&amp;#12354;&amp;#12387;&amp;#12390;&amp;#12411;&amp;#12375;&amp;#12356;&amp;#12289;&amp;#12392;&amp;#12356;&amp;#12358;&amp;#12398;&amp;#12434;&amp;#12450;&amp;#12475;&amp;#12531;&amp;#12502;&amp;#12522;&amp;#35328;&amp;#35486;&amp;#20197;&amp;#22806;&amp;#12391;&amp;#26360;&amp;#12367;&amp;#12398;&amp;#12387;&amp;#12390;&amp;#32080;&amp;#27083;&amp;#38754;&amp;#20498;&amp;#12384;&amp;#12363;&amp;#12425;&amp;#12397;&amp;#12290;&lt;/p&gt;&lt;p style=&quot;line-height: 140%&quot;&gt;&amp;#12288;&amp;#12458;&amp;#12502;&amp;#12472;&amp;#12455;&amp;#12463;&amp;#12488;&amp;#25351;&amp;#21521;&amp;#30340;&amp;#12394;&amp;#12418;&amp;#12398;&amp;#12395;&amp;#12399;&amp;#12452;&amp;#12510;&amp;#12452;&amp;#12481;&amp;#24931;&amp;#12428;&amp;#12394;&amp;#12367;&amp;#12390;&amp;#12289;&amp;#20351;&amp;#12431;&amp;#12378;&amp;#12395;&amp;#12356;&amp;#12427;&amp;#12435;&amp;#12384;&amp;#12369;&amp;#12393;&amp;#12289;&amp;#12487;&amp;#12540;&amp;#12479;&amp;#12420;&amp;#23455;&amp;#34892;&amp;#12375;&amp;#12390;&amp;#12356;&amp;#12427;&amp;#12467;&amp;#12540;&amp;#12489;&amp;#12398;&amp;#27969;&amp;#12428;&amp;#12373;&amp;#12360;&amp;#12388;&amp;#12363;&amp;#12417;&amp;#12400;&amp;#12289;&amp;#12393;&amp;#12358;&amp;#12356;&amp;#12358;&amp;#35328;&amp;#35486;&amp;#12391;&amp;#12418;&amp;#23550;&amp;#24540;&amp;#12399;&amp;#12391;&amp;#12365;&amp;#12427;&amp;#12392;&amp;#24605;&amp;#12358;&amp;#12290;Concurrency&amp;#65288;&amp;#21516;&amp;#26178;&amp;#12395;&amp;#35079;&amp;#25968;&amp;#12398;&amp;#12467;&amp;#12540;&amp;#12489;&amp;#12364;&amp;#36208;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12427;&amp;#12371;&amp;#12392;&amp;#65289;&amp;#12434;&amp;#32771;&amp;#12360;&amp;#12427;&amp;#12392;&amp;#12289;&amp;#38918;&amp;#30058;&amp;#12364;&amp;#26360;&amp;#12363;&amp;#12428;&amp;#12390;&amp;#12356;&amp;#12427;&amp;#36890;&amp;#12426;&amp;#12395;&amp;#23455;&amp;#34892;&amp;#12373;&amp;#12428;&amp;#12427;&amp;#12431;&amp;#12369;&amp;#12376;&amp;#12419;&amp;#12394;&amp;#12356;&amp;#12363;&amp;#12425;&amp;#12289;&amp;#38627;&amp;#12375;&amp;#12356;&amp;#12369;&amp;#12393;&amp;#12290;&lt;/p&gt;&lt;p style=&quot;line-height: 140%&quot;&gt;&amp;#12288;&lt;strong&gt;&amp;#35328;&amp;#35486;&amp;#12458;&amp;#12479;&amp;#12463;&amp;#12395;&amp;#12399;&amp;#12394;&amp;#12428;&amp;#12394;&amp;#12363;&amp;#12387;&amp;#12383;&amp;#12392;&amp;#12356;&amp;#12358;&amp;#12363;&amp;#12289;&amp;#21155;&amp;#31561;&amp;#24863;&amp;#12364;&amp;#12354;&amp;#12426;&amp;#12414;&amp;#12377;&lt;/strong&gt;&amp;#12290;Prolog&amp;#12392;&amp;#12363;&amp;#12289;&amp;#20840;&amp;#28982;&amp;#20998;&amp;#12363;&amp;#12387;&amp;#12390;&amp;#12356;&amp;#12394;&amp;#12356;&amp;#12290;LISP&amp;#12398;S&amp;#24335;&amp;#12399;&amp;#12289;&amp;#32032;&amp;#26228;&amp;#12425;&amp;#12375;&amp;#12356;&amp;#12392;&amp;#24605;&amp;#12358;&amp;#12375;&amp;#12289;&amp;#25945;&amp;#39178;&amp;#12398;1&amp;#12388;&amp;#12392;&amp;#12375;&amp;#12390;&amp;#30693;&amp;#12387;&amp;#12390;&amp;#12362;&amp;#12367;&amp;#12409;&amp;#12365;&amp;#12384;&amp;#12392;&amp;#24605;&amp;#12358;&amp;#12369;&amp;#12393;&amp;#12290;Java&amp;#12392;Common Lisp&amp;#12364;&amp;#36817;&amp;#32257;&amp;#12394;&amp;#12435;&amp;#12384;&amp;#12424;&amp;#12394;&amp;#12289;&amp;#12381;&amp;#12358;&amp;#12356;&amp;#12360;&amp;#12400;&amp;#12290;&lt;/p&gt;&lt;p style=&quot;line-height: 140%&quot;&gt;&amp;#12288;&amp;#12484;&amp;#12540;&amp;#12523;&amp;#12392;&amp;#12356;&amp;#12358;&amp;#12363;&amp;#12289;&amp;#12468;&amp;#12481;&amp;#12515;&amp;#12510;&amp;#12531;&amp;#12392;&amp;#12375;&amp;#12383;&amp;#20966;&amp;#29702;&amp;#31995;&amp;#12392;&amp;#12375;&amp;#12390;&amp;#12399;&amp;#12289;R&amp;#12399;&amp;#38754;&amp;#30333;&amp;#12356;&amp;#12392;&amp;#24605;&amp;#12387;&amp;#12390;&amp;#12414;&amp;#12377;&amp;#12290;&amp;#12503;&amp;#12525;&amp;#12464;&amp;#12521;&amp;#12511;&amp;#12531;&amp;#12464;&amp;#35328;&amp;#35486;&amp;#12392;&amp;#12356;&amp;#12358;&amp;#12424;&amp;#12426;&amp;#12399;&amp;#12289;&amp;#32113;&amp;#35336;&amp;#20966;&amp;#29702;&amp;#38306;&amp;#36899;&amp;#12450;&amp;#12503;&amp;#12522;&amp;#12384;&amp;#12369;&amp;#12393; :-&amp;#65289;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;</description>
   <link>http://www.trend-watcher.org/post/1/113</link>
      <pubDate>Sun, 10 Feb 2008 22:05:06 +0100</pubDate>   
  </item>
    <item>
   <title>Confit de Canard</title>
   <description>&lt;p&gt;This years Christmas I decided to live up to the Duck Dogma (&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic&quot;&gt;&amp;quot;Whenever you see Duck, eat&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: normal&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic&quot;&gt;it!&amp;quot;&lt;/span&gt;) and made &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic&quot;&gt;Confit de Canard&lt;/span&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: normal&quot;&gt;Confit is a means of preparation where one starts with salting &amp;nbsp;the meat and then cook it gently, drowned in fat.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06349.jpg&quot; border=&quot;0&quot; alt=&quot;undefined&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;left&quot; /&gt;&lt;p&gt;Duck has the property to turn dry when prepared, you can prevent&amp;nbsp;that by making sure the meat does not boil.&lt;/p&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06354.jpg&quot; border=&quot;0&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;right&quot; /&gt;&lt;p&gt;When roasting the meat that can be&amp;nbsp;prevented&amp;nbsp;by roasting it on a high&amp;nbsp;temperature so that it is sealed by its own crust, and then leaving it on a relatively low&amp;nbsp;fire&amp;nbsp;until its done.&amp;nbsp;&lt;/p&gt;&lt;p&gt;The alternative way of preparing is to seal the&amp;nbsp;meat in fat&amp;nbsp;and slowly let it simmer. I have been told that can prepare beef at about 40 degrees Centigrade as long as you keep it at that temperature for a few hours, never tried it though.&lt;/p&gt;&lt;p&gt;I prepared the confit for 9 persons, so I bought myself 18 legs and 5 cans of goose fat.&lt;/p&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06356.jpg&quot; border=&quot;0&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;left&quot; /&gt;&lt;p&gt;I&amp;nbsp;rubbed the legs with salt, crushed pepper and pimento. This is something that I intend to improve on the next time I prepare this. Then I plan to salting the legs by marinade them in a salt solution for a day or so.&lt;/p&gt;&lt;p&gt;Arrange the legs in a casserole and cover with goose fat. Use sufficient fat to make sure the legs are covered when the fat is melted. It took me exactly 5 pots of 0.5 liter.&lt;/p&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06357.jpg&quot; border=&quot;0&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;right&quot; /&gt;&lt;p&gt;&amp;nbsp;For taste add a few cloves of garlic, a few onions and a few leaves of laurel.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Put this in your oven, temperature around 100 degrees centigrade so that the meat itself is at about 90 degrees. Leave this simmer for about 3 to 4 hours. That is all, real easy, cannot fail.&amp;nbsp;&lt;/p&gt;&lt;p&gt;By the way, a pot of goose fat of 0.5 liter costs about 4 Euro, I&amp;#39;ve never spend so much money on grease. But fortunately its great fat to prepare potatoes in.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06435.jpg&quot; border=&quot;0&quot; alt=&quot;undefined&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;right&quot; /&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06375.jpg&quot; border=&quot;0&quot; alt=&quot;undefined&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;left&quot; /&gt;&lt;img src=&quot;http://www.kolkman.org/gallery/albums/wpw-20071228/normal_DSC06437.jpg&quot; border=&quot;0&quot; title=&quot;undefined&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;middle&quot; /&gt;</description>
   <link>http://www.trend-watcher.org/post/1/112</link>
      <pubDate>Fri, 28 Dec 2007 23:01:53 +0100</pubDate>   
  </item>
    <item>
   <title>Planet Earth to M$.... beeebbb... noiisssseee... beeepppp</title>
   <description>I just read an&amp;nbsp;&lt;a href=&quot;http://news.zdnet.com/2100-1009_22-6218238.html?tag=nl.e550&quot;&gt;article on ZDnet&lt;/a&gt;. It describes a demo of an exploit on an un-patched XP SP1 machine on an open wireless network. The MS executive was surprised by the ease of the attack.&lt;blockquote class=&quot;code&quot;&gt; &lt;div&gt;&lt;span style=&quot;line-height: 18px; font-family: Arial&quot;&gt;Nick McGrath, head of platform strategy for Microsoft U.K., was surprised by the incident.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial&quot;&gt;&lt;p style=&quot;font-size: 1em; margin-top: 1.2em; margin-right: 10px; margin-bottom: 1.2em; margin-left: 0px; line-height: 1.4em; padding: 0px&quot;&gt;&amp;quot;In the demonstration we saw, it was both enlightening and frightening to witness the seeming ease of the attack on the (Windows) computer,&amp;quot; said McGrath. &amp;quot;But the computer was new, not updated, and not patched.&amp;quot;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;The first sentence makes one wonder on which planet has this man been hiding. The second sentence makes me wonder how machines are sold other than new, not updated, and not patched.&lt;/p&gt;</description>
   <link>http://www.trend-watcher.org/post/1/111</link>
      <pubDate>Thu, 15 Nov 2007 09:52:02 +0100</pubDate>   
  </item>
  </rdf:RDF>

