<?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>Painless Security</title>
	<atom:link href="http://www.painless-security.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.painless-security.com/blog</link>
	<description>Sam Hartman on Security for Real-World Users</description>
	<lastBuildDate>Tue, 06 Dec 2011 14:18:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Moonshot Introduction</title>
		<link>http://www.painless-security.com/blog/2011/12/06/moonshot-introduction</link>
		<comments>http://www.painless-security.com/blog/2011/12/06/moonshot-introduction#comments</comments>
		<pubDate>Tue, 06 Dec 2011 14:18:25 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Moonshot]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=102</guid>
		<description><![CDATA[I recently put together a reading list on Project Moonshot for a friend. If you have seen discussions of Moonshot but not known where to get started understanding the technology, here is a fairly good initial list. It&#8217;s long, but take a look starting at the beginning and let us know what you think.Take a [...]]]></description>
			<content:encoded><![CDATA[<p>I recently put together a reading list on <a href="http://www.project-moonshot.org/">Project Moonshot</a> for a friend. If you have seen discussions of Moonshot but not known where to get started understanding the technology, here is a fairly good initial list. It&#8217;s long, but take a look starting at the beginning and let us know what you think.Take a look at</p>
<p>http://www.project-moonshot.org/.</p>
<p>Specifically, </p>
<p>http://www.project-moonshot.org/sites/default/files/moonshot-feasibility-analysis.pdf</p>
<p>and</p>
<p>http://www.project-moonshot.org/sites/default/files/moonshot-briefing-ietf-78.pdf</p>
<p>That briefing paper contains outdated versions of the technical<br />
specifications.<br />
Please see </p>
<p>http://tools.ietf.org/html/draft-ietf-abfab-arch-00</p>
<p>http://tools.ietf.org/html/draft-ietf-abfab-gss-eap</p>
<p>and http://tools.ietf.org/html/draft-ietf-abfab-gss-eap-naming<br />
and</p>
<p>http://tools.ietf.org/html/draft-ietf-abfab-aaa-saml</p>
<p>O, yeah, and for the totally cool stuff that is still being designed<br />
please see</p>
<p>http://tools.ietf.org/html/draft-mrw-abfab-multihop-fed</p>
<p>and http://tools.ietf.org/html/draft-mrw-abfab-trust-router</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2011/12/06/moonshot-introduction/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moonshot SSP</title>
		<link>http://www.painless-security.com/blog/2011/10/12/moonshot-ssp</link>
		<comments>http://www.painless-security.com/blog/2011/10/12/moonshot-ssp#comments</comments>
		<pubDate>Wed, 12 Oct 2011 19:36:07 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Moonshot]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=97</guid>
		<description><![CDATA[It&#8217;s been a while since I&#8217;ve written about Moonshot. A lot has gone on; we&#8217;ve been too busy doing to be busy blogging. However there&#8217;s something that&#8217;s happened recently that&#8217;s so cool I had to take a moment to discuss it. Padl Software, the same people (well person) who brought us LDAP support to replace [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I&#8217;ve written about Moonshot. A lot has gone on; we&#8217;ve been too busy doing to be busy blogging. However there&#8217;s something that&#8217;s happened recently that&#8217;s so cool I had to take a moment to discuss it. <a href="http://www.padl.com/">Padl Software</a>, the same people (well person) who brought us LDAP support to replace NIS and the first Active Directory clone, has now produced a GSS-EAP Security Service Provider. That&#8217;s software that implements the <a href="http://tools.ietf.org/html/draft-ietf-abfab-gss-eap">Moonshot protocol</a> and plugs it into the standard Windows security infrastructure. This is neat because it allows you to use GSS-EAP with unmodified Windows applications like Internet Explorer and Outlook/Exchange. Obviously, this will be great for Moonshot. However, I think the positive affects are more far-reaching than that. Luke has demonstrated that we can evolve the Windows security infrastructure without waiting for Microsoft to lead the way. For those of us working in the enterprise security space, that&#8217;s huge. We can innovate and bring our innovation to Windows. In terms of getting acceptance in important user communities, getting funding for work, and making a practical difference, that&#8217;s a big deal.
<p> This code is still in the early stages. Padl has not decided how the code will be made available. We don&#8217;t know if it will be under an open-source license yet. Luke, naturally wants to get paid for his work. However if this code does get released under an open-source license, it will be very valuable. That will give all of us who are looking for a starting point for security innovations a starting point for bringing our innovations to Windows. Some in the open-source community will argue that we shouldn&#8217;t work on improving Windows: if the open-source platforms have features Windows does not, then it may drive people to open-source. Especially for enterprise infrastructure, it tends not to work that way. You need broad cross-platform support to drive new technology. However, it does mean that we can take control of the evolution of our infrastructure; even for Windows there is no requirement that a single vendor controls what is possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2011/10/12/moonshot-ssp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dream Plug</title>
		<link>http://www.painless-security.com/blog/2011/06/27/dream-plug</link>
		<comments>http://www.painless-security.com/blog/2011/06/27/dream-plug#comments</comments>
		<pubDate>Tue, 28 Jun 2011 00:44:19 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=98</guid>
		<description><![CDATA[As part of trying to help with Freedom Box, I gained access to a Dream Plug The Dream Plug is one of the leading possible platforms for Freedom Box. Computationally it&#8217;s sexy for a low-power device. There&#8217;s a 1200 mhz arm with 512m of RAM. As a platform to enable people to create novel applications, [...]]]></description>
			<content:encoded><![CDATA[<p>As part of trying to help with <a href="http://www.freedomboxfoundation.org">Freedom Box</a>, I gained access to a <a href="http://www.engadget.com/2011/02/03/dreamplug-is-the-low-powered-lilliputian-pc-for-people-with-rea/">Dream Plug</a> The Dream Plug is one of the leading possible platforms for Freedom Box.</p>
<p> Computationally it&#8217;s sexy for a low-power device. There&#8217;s a 1200 mhz arm with 512m of RAM. As a platform to enable people to create novel applications, it&#8217;s great. It has multiple USB ports, two ethernets, a built-in 802.11B/G access point, bluetooth, audio, ESATA, Micro SD and full-sized SD. So, whether you application needs storage, networking, audio, or some interesting side device, you&#8217;re covered. With the optional JTAG adapter it&#8217;s even fairly friendly to developers: there are options for recovering from most failures and full console access. If you&#8217;re looking at a reference platform that&#8217;s still nominally embedded, but that allows you to play around thinking about what your application could do, this is a great option.
</p>
<p>However, especially for Freedom Box, it&#8217;s important to remember that the reference board a developer wants is not the same as a cost-reduced product on which to actually deploy something for people to buy. The Dream Plug is wrong for every actual deployment I&#8217;ve imagined. First, it&#8217;s huge. If you happen to have free power plugs on your wall with lots of space above and below them, it might be an option. If however, you&#8217;re like everyone I know and have power strips, constrained spacing, etc, then the industrial engineering will disappoint at every turn. I was hoping for something that kind of looked like an Apple Airport Express. It&#8217;s significantly larger than that in every dimension. Also, the plug is oriented the wrong way  for minimizing the fraction of the power strip it takes up. The power supply part of the device can be detached, although even that is way too huge for a power strip, and the cable between the power supply and the computer is fairly short. You can reconfigure the device without its plug nature: running a cord from a normal power outlet to the power supply. But then if you have to detach the power supply for heat management reasons, you get a cord from the outlet to the power supply and another cord from the supply to the device. Add a few USB or ESATA devices and the octopus of cables begins to resemble some arcane mechanism. (So far, no elder gods have appeared though.)
</p>
<p>The other issue is that you almost never want all the functionality. You pay for the bluetooth, audio and ESATA in terms of cost, heat and space regardless of whether you use them. I don&#8217;t have a lot of applications that really take advantage of the full array of hardware.
</p>
<p>The firmware update mechanism is decidedly not targeted at end-users. The version I obtained had a hacked copy of Debian lenny. No mechanism was provided for replacing the image in a safe manner that did not potentially require the optional highly-non-end-user-compatible JTAG board if something got interrupted. You could either unscrew the device and get to the micro SD card containing the image, or run software to replace the image from within Debian lenny. It&#8217;s possible to configure the boot loader to run an update image off USB or SD until that succeeds, but doing that is also a non-end-user operation.
</p>
<p>In conclusion, the name is perfect. This is exactly what hackers need to dream about the power of small computers everywhere. However we must not forget that there&#8217;s a step required to turn dreams into reality. Just as with any fully proprietary product, Freedom Box will require cost reduction steps, semi-custom boards and actual OEMs to truly be usable. The claim in the previous sentence that the Freedom Box may have proprietary elements is disquieting to some. I think we can put together a software stack that is free with the possible exception of some device firmware. However, my suspicion is that anyone who turns that into a fully realized end-user product will add proprietary elements. I suspect some of the results of the cost reduction process such as resulting semi-custom boards will be proprietary. In many cases though, I suspect some proprietary software elements will be introduced.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2011/06/27/dream-plug/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moonshooting Jabber</title>
		<link>http://www.painless-security.com/blog/2011/03/15/moonshooting-jabber</link>
		<comments>http://www.painless-security.com/blog/2011/03/15/moonshooting-jabber#comments</comments>
		<pubDate>Tue, 15 Mar 2011 10:50:21 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Moonshot]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=91</guid>
		<description><![CDATA[Last fall, Moonshot was steaming forward. We ran into some non-technical obstacles and progress on the implementation was disturbingly quite from the end of October through February. That changed: the code was released February 25. Since then, the project has picked up the momentum of last fall. There&#8217;s a new developers corner with helpful links [...]]]></description>
			<content:encoded><![CDATA[<p>Last fall, <a href="http://www.project-moonshot.org/">Moonshot</a> was <a href="http://webmedia.company.ja.net/edlabblogs/developmenteye/2010/09/18/preparing-for-moonshot-meeting/">steaming forward</a>. We ran into some <a href="http://www.painless-security.com/blog/2010/11/29/implementation-progress">non-technical obstacles</a> and progress on the implementation was disturbingly quite from the end of October through February. That <a href="https://www.jiscmail.ac.uk/cgi-bin/webadmin?A1=ind1102&#038;L=MOONSHOT-COMMUNITY#5">changed</a>: the code was released February 25.</p>
<p>Since then, the project has picked up the momentum of last fall. There&#8217;s a new <a href="http://www.project-moonshot.org/developers">developers corner</a> with helpful links for participating in the project, obtaining the code, and preparing for our upcoming Second Moonshot Meeting. Standards work in the <a href="http://tools.ietf.org/wg/abfab">ABFAB</a> working group has been making steady progress the entire time.
</p>
<p>The jabber chat room has been quite active. Developers have been working in three time zones. Whenever In get up there&#8217;s likely to be interesting progress awaiting me and new things to work on in the chat logs. Today was no exception. Luke <a href="https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=MOONSHOT-COMMUNITY;356c3c.1103">moonshooted</a> jabber. This is exciting: it&#8217;s the first tim our code has been used to authenticate some real application instead of a test service. Other discussion from the chat room not reflected in e-mail is equally exciting. He has Moonshot working with OpenSSH in controlled environments. It appears to require some updates to the OpenSSH GSS-API support.
</p>
<p>Now is a really great time to get involved in Moonshot. We hope to see you on our lists and in our chat.
</p>
<p>With last night&#8217;s news, we need to think towards eating our own dogfood and using Moonshot to authenticate to our own Jabber server and to authenticate to our repository for commits. Right now, there are some security issues with the code (lack of EAP channel  binding) that might make that undesirable. However in a very small number of weeks or months I expect we will be there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2011/03/15/moonshooting-jabber/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>V6 Really is that Hard</title>
		<link>http://www.painless-security.com/blog/2011/03/08/v6-really-is-that-hard</link>
		<comments>http://www.painless-security.com/blog/2011/03/08/v6-really-is-that-hard#comments</comments>
		<pubDate>Tue, 08 Mar 2011 23:03:53 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=89</guid>
		<description><![CDATA[Sometimes I begin to think that we&#8217;ve solved most of the challenges to IPv6 deployment. Then something happens. This time it was a DAP-1522 access-point. Not a NAT, not a router, just a layer 2 device. A while after deploying the device, I noticed that sometimes mail failed to work. After attempting to debug the [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I begin to think that we&#8217;ve solved most of the challenges to IPv6 deployment. Then something happens.</p>
<p>This time it was a <a href="http://www.dlink.com/">DAP-1522</a> access-point. Not a NAT, not a router, just a layer 2 device. A while after deploying the device, I noticed that sometimes mail failed to work. After attempting to debug the problem was that the device wasn&#8217;t getting an IPv6 address. The router appeared to be sending out advertizments. Other machines on the same subnet were working fine.
</p>
<p>This laptop had associated with the new access point. The default configuration helpfully includes IGMP snooping. The IGMP snooping detected that no one subscribed to any IPv4 multicast group corresponding to the router advertizements and thus didn&#8217;t forward them to the wireless link.
</p>
<p>We have a long way to go if layer 2 devices sold today are incompatible with v6 in their default configurations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2011/03/08/v6-really-is-that-hard/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Privacy</title>
		<link>http://www.painless-security.com/blog/2010/12/10/privacy</link>
		<comments>http://www.painless-security.com/blog/2010/12/10/privacy#comments</comments>
		<pubDate>Fri, 10 Dec 2010 14:36:19 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Phishing]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=87</guid>
		<description><![CDATA[I attended a workshop sponsored by the IAB, W3C, ISOC and MIT on Internet Privacy. The workshop had much more of a web focus than it should have: the web is quite important should certainly cover a majority of the time, but backend issues, network issues, and mobile applications are certainly important too. For me [...]]]></description>
			<content:encoded><![CDATA[<p>I attended a workshop sponsored by the IAB, W3C, ISOC and MIT on Internet Privacy. The workshop had much more of a web focus than it should have: the web is quite important should certainly cover a majority of the time, but backend issues, network issues, and mobile applications are certainly important too. For me this workshop was an excellent place to think about linkability and correlation of information. When people describe attacks such as using the ordered list of fonts installed in a web browser to distinguish one person from another, it&#8217;s all too easy to dismiss people who want to solve that attack as the privacy fringe. Who cares if someone knows my IP address or what fonts I use? The problem is that computers are very good at putting data together. If you log into a web site once, and then later come back to that same website, it&#8217;s relatively easy to fingerprint your browser and determine that it is the same computer. There&#8217;s enough information that even if you use private browsing mode, clear your cookies and move IP addresses, it&#8217;s relatively easy to perform this sort of linking.</p>
<p>It&#8217;s important to realize that partially fixing this sort of issue will make it take longer to link two things with certainty, but tends not to actually help in the long-run. Consider the font issue. If your browser returns the set of fonts it has in the order they are installed, then that provides a lot of information. Your fingerprint will look the same as people who took the same OS updates, browser updates and installed the same additional fonts in exactly the same order as you. Let&#8217;s say that the probability that someone has the same font fingerprint as you is one in a million. For a lot of websites that&#8217;s enough that you could very quickly be linked. Sorting the list of fonts reduces the information; in that case, let&#8217;s say your probability of having the same font set as someone else is one in a hundred. The website gets much less information from the fonts. However it can combine that information with timing information etc. It can immediately rule out all the people who have a different font profile. However as all the other people who have the same font fingerprint access the website over time, differences between them and you will continue to rule them out until eventually you are left. Obviously this is at a high level. One important high-level note is that you can&#8217;t fix these sorts of fingerprinting issues on your own; trying makes things far worse. If you&#8217;re the only one whose browser doesn&#8217;t give out a font list at all, then it&#8217;s really easy to identify you.
</p>
<p>The big question in my mind now is how much do we care about this linking. Governments have the technology to do a lot with linking. We don&#8217;t have anything we technical we can do to stop them, so we&#8217;ll need to handle that with laws. Large companies like Google, Facebook and our ISPs are also in a good position to take significant advantage of linking. Again, though, these companies can be regulated; technology will play a part, especially in telling them what we&#8217;re comfortable with and what we&#8217;re not, but most users will not need to physically prevent Google and Facebook from linking their data. However smaller websites are under a lot less supervision than the large companies. Unless you take significant steps, such a website can link all your activities on that website. Also, if any group of websites in that space want to share information, they can link across the websites.
</p>
<p>I&#8217;d like to run thought experiments to understand how bad this is. I&#8217;d like to come up with examples of things that people share with small websites but don&#8217;t want linked together or alternatively don&#8217;t want linked back to their identity. Then look at how this information could be linked. However, I&#8217;m having trouble with these thought experiments because I&#8217;m just not very privacy minded. I can&#8217;t think of something that I share on the web that I wouldn&#8217;t link directly to my primary identity. I certainly can&#8217;t find anything concrete enough to be able to evaluate how clearly I care to protect it. Helping me out here would be appreciated; if you can think of fairly specific examples. There&#8217;s lots of important I prefer to keep private like credit card numbers, but there, it&#8217;s not about linking at all. I can reasonably assume that the person I&#8217;m giving my credit card number to has a desire to respect my privacy.a</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2010/12/10/privacy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Hair Day for Kerberos</title>
		<link>http://www.painless-security.com/blog/2010/12/03/bad-hair-day-for-kerberos</link>
		<comments>http://www.painless-security.com/blog/2010/12/03/bad-hair-day-for-kerberos#comments</comments>
		<pubDate>Fri, 03 Dec 2010 15:09:21 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[MIT Kerberos]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=84</guid>
		<description><![CDATA[Tuesday, MIT Kerberos had a bad hair day&#8212;one of those days where you&#8217;re looking through your hair and realize that it&#8217;s turned to Medusa&#8217;s snakes while you weren&#8217;t looking. Apparently, since the introduction of RC4, MIT Kerberos has had significant problems handling checksums. Recall that when Kerberos talks about checksums it&#8217;s conflating two things: unkeyed [...]]]></description>
			<content:encoded><![CDATA[<p>Tuesday, MIT Kerberos had a bad hair day&mdash;one of those days where you&#8217;re looking through your hair and realize that it&#8217;s turned to Medusa&#8217;s snakes while you weren&#8217;t looking. Apparently, since the introduction of RC4, MIT Kerberos has had significant problems handling <a href="http://www.mit.edu/~kerberos/advisories/MITKRB5-SA-2010-007.txt">checksums</a>. Recall that when Kerberos talks about checksums it&#8217;s conflating two things: unkeyed checksums like SHA-1 and message authentication codes like HMAC-SHA1 used with an AES key derivation. The protocol doesn&#8217;t have a well defined concept of an unkeyed checksum, although it does have the concept of checksums like CRC32 that ignore their keys and can be modified by an attacker. One way of looking at it is that checksums were over-abstracted and generalized. Around the time that 3DES was introduced, there was a belief that we&#8217;d have a generalized mechanism for introducing new crypto systems. By the time <a href="http://www.ietf.org/rfc/rfc3961.txt">RFC 3961</a> actually got written, we&#8217;d realized that we could not abstract things quite as far as we&#8217;d done for 3DES. The code however was written as part of adding 3DES support.</p>
<p>There are two major classes of problem. The first is that the 3DES (and I believe AES) checksums don&#8217;t actually depend on the crypto system: they&#8217;re just HMACs. They do end up needing to perform encryption operations as part of key derivation. However the code permitted these checksums to be used with any key, not just the kind of key that was intended. In a nice abstract way, the operations of the crypto system associated with the key were used rather than those of the crypto system loosely associated with the checksum. I guess that&#8217;s good: feeding a 128-bit key into 3DES might kind of confuse 3DES which expects a 168-bit key. On the other hand, RC4 has a block size of 1 because it is a stream cipher. For various reasons, that means that regardless of what RC4 key you start with, if you use the 3DES checksum with that key, there are only 256 possible outpus for the HMAC. Sadly, that&#8217;s not a lot of work for the attacker. To make matters worse, one of the common interfaces for choosing the right checksum to use was to enumerate through the set of available checksums and pick the first one that would accept the kind of key in question. Unfortunately, 3DES came before RC4 and there are some cases where the wrong checksum would be used.
</p>
<p>Another serious set of problems stems from the handling of unkeyed checksums. It&#8217;s important to check and make sure that a received checksum is keyed if you are in a context where an attacker could have modified it. Using an md5 outside of encrypted text to integrity protect a message doesn&#8217;t make sense. Some of the code was not good about checking this.
</p>
<p>What worries me most about this set of issues is how many new vulnerabilities were introduced recently. The set of things you can do with 1.6 based on these errors was significant, but not nearly as impressive as 1.7. A whole new set of attacks were added for the 1.8 release. In my mind, the most serious attack was added for the 1.7 release. A remote attacker can send an integrity-protected GSS-API token using an unkeyed checksum. Since there&#8217;s no key the attacker doesn&#8217;t need to worry about not knowing it. However the checksum verifies, and the code is happy to go forward.
</p>
<p>I think we need to take a close look at how we got here and what went wrong. The fact that multiple future releases made the problem worse made it clear that we produced a set of APIs where doing the worng thing is easier than doing the right thing. It seems like there is something important to fix here about our existing APIs and documentation. It might be possible to add tests or things to look for when adding new crypto systems. However I also think there is an important lesson to take away at a design level. Right now I don&#8217;t know what the answers our, but I encourage the community to think closely about this issue.
</p>
<p>I&#8217;m speaking about MIT Kerberos because I&#8217;m familiar with the details there. However it&#8217;s my understanding that the entire Kerberos community has been thinking about checksums lately, and MIT is not the only implementation with improvements to make here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2010/12/03/bad-hair-day-for-kerberos/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Implementation Progress</title>
		<link>http://www.painless-security.com/blog/2010/11/29/implementation-progress</link>
		<comments>http://www.painless-security.com/blog/2010/11/29/implementation-progress#comments</comments>
		<pubDate>Tue, 30 Nov 2010 04:40:11 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Moonshot]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=81</guid>
		<description><![CDATA[At the end of September, things were quite exciting as we had our first project meeting. At that meeting those in the room saw a demonstration of the Moonshot GSS EAP mechanism and we discussed a number of open issues and began to plan for our test infrastructure. We&#8217;ve made significant progress on the specification [...]]]></description>
			<content:encoded><![CDATA[<p>At the end of September, things were quite exciting as we had our <a href="http://webmedia.company.ja.net/edlabblogs/developmenteye/2010/09/18/preparing-for-moonshot-meeting/">first project meeting</a>. At that meeting those in the room saw a demonstration of the Moonshot GSS EAP mechanism and we discussed a number of open issues and began to plan for our test infrastructure. We&#8217;ve made significant progress on the specification front and on explaining Moonshot to important communities since then. However there has been little public progress on the implementation front.</p>
<p>Unfortunately, getting the necessary legal clearance and agreements to release code often takes longer than anyone would like; that is what is happening here. We&#8217;re all eagerly awaiting final approval from the lawyers and JANET(UK) management. However, things have been moving behind the scenes. Throughout much of October, Luke Howard and Linus Nordberg were working on their respective parts of the code.
</p>
<p> I&#8217;ve also been working on putting together the test and build infrastructure. As we discussed at the meeting, we&#8217;re going to use <a href="http://www.debian.org/">Debian</a> and <a href="http://www.ubuntu.com/">Ubuntu</a> as the basis for our testing. For example, we hope to release virtual machine images for these platforms for the major Moonshot components. Thus the primary build environment for our testing and virtualization will be for Debian. I&#8217;ve been putting together that <a href="http://www.project-moonshot.org/gitweb?p=moonshot.git;a=shortlog;h=refs/heads/debian">here</a>. Right now, that branch will pull together packages of the SAML infrastructure that we need. I&#8217;ve also been looking into virtualized test frameworks and believe I&#8217;ve found one that meets our needs. I&#8217;ve also put together some primitive build infrastructure that is independent of packaging available <a href="http://www.project-moonshot.org/gitweb/?p=moonshot.git;a=shortlog;h=refs/heads/master">here</a>. I&#8217;ve set up a <a href="http://www.project-moonshot.org/buildbot">buildbot</a> that builds both environments. So, as the code becomes available we&#8217;ll be in a good position to start making it available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2010/11/29/implementation-progress/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Abfab at IETF 79</title>
		<link>http://www.painless-security.com/blog/2010/11/29/abfab-at-ietf-79</link>
		<comments>http://www.painless-security.com/blog/2010/11/29/abfab-at-ietf-79#comments</comments>
		<pubDate>Tue, 30 Nov 2010 03:08:30 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Moonshot]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=78</guid>
		<description><![CDATA[The ABFAB working group, which will be standardizing technologies that Moonshot depends on, had its first meeting at IETF 79 in Beijing, China. The meeting was quite productive. Because the meeting was the first of the working group, there were some introductory presentations. A group of authors are putting together a proposed architecture document; we [...]]]></description>
			<content:encoded><![CDATA[<p>The ABFAB working group, which will be standardizing technologies that Moonshot depends on, had its <a href="http://tools.ietf.org/wg/abfab/agenda">first meeting</a> at IETF 79 in Beijing, China. The meeting was quite productive. Because the meeting was the first of the working group, there were some introductory presentations. A group of authors are putting together a proposed architecture document; we presented the current state of our work. However things have evolved significantly since the working group meeting and I think it will make more sense to wait a couple of weeks to discuss the architecture document.</p>
<p>Most of the time was spent on two presentations. The first was the status of the <a href="http://tools.ietf.org/agenda/79/slides/abfab-3.pdf">GSS mechanism</a>. We discussed issues that were discovered while implementing the EAP GSS-API mechanism. Discussion in the room tended to support the proposals made in the slides. A few issues will need to come to the list. We had the most interesting discussion of <a href="http://tools.ietf.org/agenda/79/slides/abfab-2.pdf">SAML AAA integration</a>.
</p>
<p><a href="http://tools.ietf.org/wg/abfab/minutes?item=minutes79.html">Minutes</a> are available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2010/11/29/abfab-at-ietf-79/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Review of Git DPM</title>
		<link>http://www.painless-security.com/blog/2010/11/02/review-of-git-dpm</link>
		<comments>http://www.painless-security.com/blog/2010/11/02/review-of-git-dpm#comments</comments>
		<pubDate>Tue, 02 Nov 2010 18:23:16 +0000</pubDate>
		<dc:creator>hartmans</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://www.painless-security.com/blog/?p=76</guid>
		<description><![CDATA[I&#8217;ve been looking at git dpm. It&#8217;s a tool for managing Debian packages in git. The description promises the world: use of git to maintain both a set of patches to some upstream software along with the history of those patches both at the same time. It also promises the ability to let me share [...]]]></description>
			<content:encoded><![CDATA[<p> I&#8217;ve been looking at git dpm. It&#8217;s a tool for managing Debian packages in git. The description promises the world: use of git to maintain both a set of patches to some upstream software along with the history of those patches both at the same time. It also promises the ability to let me share my development repositories. The overhead is much less than topgit. My feelings are mixed.  It does deliver on its promise to allow you to maintain your upstream patches and to use git normallyish.  It produces nice quilt patch series.</p>
<p>In order to understand the down side, it&#8217;s necessary to understand a bit about how it works. It maintains your normal branch roughly the way you do things today. There&#8217;s also a branch that is rebased often  that is effectively the quilt series. It starts from the upstream and has a commit for every patch in your quilt series containing exactly the contents of that patch. This branch is &#8220;merged&#8221; into your debian branch when you run git dpm update-patches.
</p>
<p>The down side is that it makes the debian branch kind of fragile. If you commit an upstream change to the Debian branch it will be reverted by the next git dpm update-patches. The history will not be lost, but unless you have turned that change into a commit along your patches branch, git dpm update-patches will  remove the change without warning. This can be particularly surprising if the change in question is a merge from the upstream branch. In that case, the merged in changes will all be lost, but since the tip of the upstream branch is in your history, then future merges will not bring them back. If you either also merge your changes into the patches branch, or tell git dpm about a new upstream, then the changes will reappear at the next git dpm update-patches.
</p>
<p>The other fragility is that rebasing your debian branch can have really unpleasant consequences. The problem is that rebase removes merge commits: it assumes that the only changes introduced by merge commits are resolution of conflicts. However, git dpm synthesizes merge commits. In particular, it takes the debian directory from your debian branch, plus the upstream sources from your upstream branch, plus all the patches you applied and calls that your new debian branch. There&#8217;s also a metadata file that contains pointers to the upstream branch and the quilt patch series branch. In addition, debian/patches gets populated. Discarding this commit completely would simply roll you back to the previous state of your patches. However, this loses history! There is no reference that is left pointing to the patches branch; the only reason it is still referenced is that it&#8217;s a parent of the commit rebase is throwing away. This isn&#8217;t really all that unusual; if you merged in any branch, deleted the branch and rebased away both the merge and the commits from the branch, you&#8217;d lose history. I do find it a bit easier to do with git dpm.
</p>
<p>However, it&#8217;s more likely that you&#8217;ll manage to rebase and keep the commits from the patches branch. In particular, if the horizon of your rebase includes a merge of the patches branch,then for every patch that involves changes  to the debian branch from the point where rebase starts rewriting history, you will see a commit included by your rebase. My suspicion is that this commit is more likely to generate conflicts  than usual because it&#8217;s a patch on top of the upstream sources being applied  to a partially patched debian branch. However I have not fully worked through things: it may be that such a patch is exactly  as likely to cause conflicts as it would in a git dpm update-patches operation. If that succeeds and you do not manage to fail to pick one of these commits, you&#8217;ll end up with roughly the same debian sources you started with. There are two key exceptions: the git dpm metadata file is not updated and your debian/patches is not consistent with your sources. The first means you&#8217;re in the state of the previous paragraph: git dpm update-patches will blow away your changes. The second means that any source package you produce is going to be kind of funky if not out right broken.
</p>
<p>It is possible to recover from git dpm plus rebase. I think if you git dpm checkout-patches, then cherry pick the patch related commits from your debian branch that were introduced by the rebase, then git dpm update-patches, you&#8217;ll be in a sane state. Obviously you could also recover by finding the pre-rebase commit and resetting there. I&#8217;m assuming though that you actually needed to rebase for some reason.
</p>
<p>Of course git dpm does involve a space penalty. You generate a commit for every patch in your quilt series for every version of the upstream sources you deal with. Also, you will introduce and store every version of the quilt series directly in your debian directory. The extra commits probably aren&#8217;t a big deal: the blobs probably delta compress well. I&#8217;m not sure though that the quilt patch blobs will compress well with other things. In my opinion the ability to get nice quilt patches is well worth the space penalty.
</p>
<p>In conclusion, git dpm is a sharp tool. Actually, I think that&#8217;s understating things. Git dpm involves a bunch of rotating blades. You stick your face and foot between the blades, and if you use it correctly, there&#8217;s exactly enough clearance that nothing gets damaged and you get some fairly neat results. Other outcomes are available. I&#8217;m still trying to evaluate if it is worth it. I think the tradeoff might be different for something like the krb5 package which is maintained by two very experienced maintainers than say for Shibboleth which seems to involve several more maintainers. I&#8217;m not sure that there is much git dpm can do to make things better. Even detecting loss-of-foot events might be kind of tricky.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.painless-security.com/blog/2010/11/02/review-of-git-dpm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

