<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Programing</title>
        <link>http://www.unmitigatedrisk.com/category/10.aspx</link>
        <description>Programing</description>
        <language>en-US</language>
        <copyright>Ryan M. Hurst</copyright>
        <managingEditor>rmh@unmitigatedrisk.com</managingEditor>
        <generator>Subtext Version 1.9.3.51</generator>
        <item>
            <title>Generic Identity Device Specification Published</title>
            <link>http://unmitigatedrisk.com/archive/2010/04/09/227.aspx</link>
            <description>&lt;p&gt;&lt;font face=""&gt;In the PC ecosystem, when a new device (say mass storage) technology is introduced, commonly there is little standardization, vendors produce proprietary software stacks for interacting with that device, they have custom hardware interfaces for interacting with the device, custom software for managing those devices, etc. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;As a device picks up in popularity common platform programing interfaces typically emerge, sometimes these are commercial in nature, other times they are standards based; in either case the goals of these interfaces are simple: abstract out the variety in the hardware ecosystem for the application developer allowing them to write software that can run on any machine regardless of which vendor manufactured a given device. These abstractions also commonly allow the sharing of devices so that multiple applications can use them at the same time.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;The next phase in a devices maturity is normally the definition of a class interface for interacting with hardware, it’s this last phase that allows the “no driver needed” story that users like so much; we all reap the rewards of this with flash drives today, plug in the device and it just works (the same is true for display technologies like VGA).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;These class drivers commonly cater to the lowest common denominator when it comes to functionality, but vendors are always able to add additional capabilities that are exposed when their drivers and custom software are present (again think about display technologies here as a good example).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;There is one device in particular that has not entirely followed this flow that I wanted to talk about and that is &lt;a href="http://en.wikipedia.org/wiki/Smart_card"&gt;Smart Cards&lt;/a&gt;; as a concept was they emerged in the 1970s, the first cards went into production in the &lt;a href="http://www.cardwerk.com/smartcards/smartcard_history.aspx"&gt;late 70s&lt;/a&gt;. Here we are 40 years later and there is no clear “class driver” for these devices, that is not to say there have not been attempts, some even with success, but those that have had success have been closed system solutions, for example the &lt;a href="http://csrc.nist.gov/groups/SNS/piv/index.html"&gt;PIV&lt;/a&gt; interfaces used within the US Federal Government.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;In the commercial space however, no class specification that has been attempted really was viable, there are lots of reasons for this but I am cautiously optimistic that there is now a candidate.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;One of the projects I was working on over the last few years was the specification of the Generic Identity Device Specification, this attempts to build on the success of the government based card specifications and extend it to commercial applications as well. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;I had opportunities to work with some great folks on this effort, we all had the same goal make smart cards as reliable, cost effective and accessible as possible; I believe this work does just that.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;This specification has now been &lt;a href="http://www.microsoft.com/whdc/device/input/smartcard/GIDS.mspx"&gt;released&lt;/a&gt; by Microsoft under the &lt;a href="http://www.microsoft.com/interop/cp/default.mspx"&gt;Microsoft Community Promise&lt;/a&gt;, that means it is available royalty free for anyone to adopt; this is a big win for our partners and above all the customers who will benefit the most from it.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;So what does this mean for you? Well if you’re a customer looking to deploy smart cards you should seriously look for vendors who produce cards that are compliant with this specification, it means lower cost of deployment, makes it easier for you to multi-source cards and in the end it will likely reduce the overall cost of cards as volumes go up based on function of scale.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;For a card manufacturer there are a number of benefits as well, it is possible to develop a GIDS card that is compatible with the PIV card-edge, this means you can develop a single card stock get it evaluated for FIPS (or whatever other standard) that can be sold into commercial or government applications (reducing cost) and these cards will have a great experience in Windows.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;If you are a platform or operating system developer you now have a specification you can use as a baseline for testing card scenarios, a way to (hopefully) support a large number of “real” cards that will exist on the market (soon I hope), if this happens we can experience driver coverage numbers similar to other device classes. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;For those of you not in this segment, this last point is super important, there is so much fragmentation in the market no solution has over a couple percent of card coverage in-box, if this specification gets adopted that number can start to look more like other device classes where the number is in the 90 percentile range.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;In any event, I am pleased to see this out there, here’s hoping it gets adopted broadly…&lt;/font&gt;&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/227.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2010/04/09/227.aspx</guid>
            <pubDate>Fri, 09 Apr 2010 17:21:34 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/227.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2010/04/09/227.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/227.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/227.aspx</trackback:ping>
        </item>
        <item>
            <title>Resources about the Windows Biometric Framework</title>
            <link>http://unmitigatedrisk.com/archive/2009/01/14/222.aspx</link>
            <description>&lt;p&gt;I will use this post to catalog public resources on the &lt;a href="http://www.microsoft.com/whdc/device/biometric/default.mspx"&gt;Windows Biometric Framework&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you run across any that I miss please let me know, I should reliably catch the technical content ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;TECHNICAL&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/WBFIntro.docx"&gt;Introduction to the Windows Biometric Framework (WBF)&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/COR-T611_WH08.pptx"&gt;New Windows Biometric Framework and Driver Model&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/WDK/default.mspx#win7wdk-beta"&gt;Windows 7 Beta WDK&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/Win7DeveloperGuide"&gt;Windows 7 Developer Guide&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb870474.aspx"&gt;API Documentation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face=""&gt;Windows Biometric Framework API - (&lt;a href="http://msdn.microsoft.com/en-us/library/dd401509(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd401509(VS.85).aspx&lt;/a&gt;)&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa972908.aspx"&gt;Driver Kit Documentation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/COR-T611_WH08.pptx"&gt;New Windows Biometric Framework and Driver Model&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.microsoft.com/whdc/device/biometric/WBF_CodeSign.mspx"&gt;Windows Biometric Code Signing Guide&lt;/a&gt; - (&lt;font face=""&gt;&lt;a href="http://www.microsoft.com/whdc/device/biometric/WBF_CodeSign.mspx"&gt;http://www.microsoft.com/whdc/device/biometric/WBF_CodeSign.mspx&lt;/a&gt;)&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;MSDN Documentation for WBF (&lt;a href="http://msdn.microsoft.com/en-us/library/dd401509(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd401509(VS.85).aspx&lt;/a&gt;)&lt;/li&gt;
    &lt;li&gt;&lt;font face=""&gt;Design Guidance for a Enrollment Application - (&lt;a href="http://www.microsoft.com/whdc/device/biometric/FMA_Design.mspx"&gt;http://www.microsoft.com/whdc/device/biometric/FMA_Design.mspx&lt;/a&gt;) &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;Bio Approval Workflow - (&lt;font face=""&gt;&lt;a href="http://www.jwsecure.com/files/Samples2009/Implementing_a_Biometric_Approval_Workflow.pdf"&gt;http://www.jwsecure.com/files/Samples2009/Implementing_a_Biometric_Approval_Workflow.pdf&lt;/a&gt;)&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face=""&gt;A partial managed wrapper - (&lt;a href="http://bioapprovalworkflow.codeplex.com/"&gt;http://bioapprovalworkflow.codeplex.com/&lt;/a&gt;)&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;EDITORIAL&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;ArsTechnica - &lt;a href="http://arstechnica.com/articles/paedia/windows-7-beta.ars"&gt;Deep inside the Windows 7 Public Beta&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;NeoWin - &lt;a href="http://www.neowin.net/news/main/09/01/11/windows-7-bitlocker-to-go--biometric-improvements-overview"&gt;Bitlocker-To-Go and Biometric Improvements&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;CNET - &lt;a href="http://news.cnet.com/8301-13860_3-10086819-56.html"&gt;7 things you did not know about Windows 7&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;Windows Team Blog - &lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/01/08/windows-7-puts-it-s-finger-on-enhanced-biometric-support.aspx"&gt;Windows 7 Puts it’s Finger on Enhanced Biometric Support&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;WindowsSecurity.com Blog - &lt;font face=""&gt;&lt;a href="http://www.windowsecurity.com/articles/Whats-new-security-front-Windows-7.html"&gt;http://www.windowsecurity.com/articles/Whats-new-security-front-Windows-7.html&lt;/a&gt;&lt;/font&gt;  &lt;/li&gt;
    &lt;li&gt;&lt;font face=""&gt;&lt;font face=""&gt;&lt;a href="http://www.net-security.org"&gt;www.net-security.org&lt;/a&gt; - &lt;/font&gt;Strong authentication with biometrics for Windows 7 - &lt;font face=""&gt;&lt;a href="http://www.net-security.org/secworld.php?id=7358"&gt;http://www.net-security.org/secworld.php?id=7358&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;Windows Team Blog - End-To-End Trust and Windows7 - &lt;font face=""&gt;&lt;a href="http://windowsteamblog.com/blogs/windowssecurity/archive/2009/04/21/end-to-end-trust-and-windows-7.aspx"&gt;http://windowsteamblog.com/blogs/windowssecurity/archive/2009/04/21/end-to-end-trust-and-windows-7.aspx&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face=""&gt;eWeek - &lt;font face=""&gt;Windows 7 Security Enhancements Summed Up - &lt;font face=""&gt;&lt;a href="http://www.eweek.com/c/a/Security/Windows-7-Security-Enhancements-Summed-Up-358323/"&gt;http://www.eweek.com/c/a/Security/Windows-7-Security-Enhancements-Summed-Up-358323/&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/222.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2009/01/14/222.aspx</guid>
            <pubDate>Thu, 15 Jan 2009 06:22:10 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/222.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2009/01/14/222.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/222.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/222.aspx</trackback:ping>
        </item>
        <item>
            <title>Thinking outside-the-box, or loosing your privacy little by little</title>
            <link>http://unmitigatedrisk.com/archive/2008/11/29/214.aspx</link>
            <description>&lt;p&gt;I ran across a neat &lt;a href="http://www.azarask.in/blog/post/socialhistoryjs/"&gt;article&lt;/a&gt; on using Javascript and default CSS behaviors to infer what &lt;a href="http://ha.ckers.org/weird/CSS-history.cgi"&gt;sites you frequent&lt;/a&gt;, this is not new, the earliest reference I could find of this was from &lt;a href="http://jeremiahgrossman.blogspot.com/2006/08/i-know-where-youve-been.html"&gt;2006&lt;/a&gt; but I bet this has been going on for much longer.&lt;/p&gt;  &lt;p&gt;An example of analytics that can be applied to this data is that one follow is using your URL history to infer &lt;a href="http://www.mikeonads.com/2008/07/13/using-your-browser-url-history-estimate-gender/"&gt;gender&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;These are great examples of thinking outside the box and how privacy is an illusion (especially on the web).&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/214.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/11/29/214.aspx</guid>
            <pubDate>Sun, 30 Nov 2008 07:31:04 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/214.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/11/29/214.aspx#feedback</comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/214.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/214.aspx</trackback:ping>
        </item>
        <item>
            <title>How to tell if a volume is Bitlocker protected with TPM and PIN</title>
            <link>http://unmitigatedrisk.com/archive/2008/11/12/208.aspx</link>
            <description>&lt;p&gt;Today I was presented with a question, how can I tell if the OS volume is protected with Bitlocker a TPM and a PIN.&lt;/p&gt;
&lt;p&gt;Since I could not sleep (its 2:30AM right now) I figured I would throw together a quick and dirty script that checks for that, it was pretty easy to do.&lt;/p&gt;
&lt;p&gt;I started with the documentation for &lt;a href="http://msdn.microsoft.com/en-us/library/aa376483(VS.85).aspx"&gt;Win32_EncryptableVolume&lt;/a&gt; which I recall seeing previously in a unrelated mail at some point, from there I discovered the &lt;a href="http://msdn.microsoft.com/en-us/library/aa376441(VS.85).aspx"&gt;GetKeyProtectors&lt;/a&gt; method, I then did a search on &lt;a href="http://search.live.com/results.aspx?q=site%3Amicrosoft.com+GetKeyProtectors+VBSCRIPT&amp;amp;form=QBLH"&gt;Live&lt;/a&gt; for GetKeyProtectors and VBSCRIPT that was scoped to Microsoft.com domains.&lt;/p&gt;
&lt;p&gt;This got me a handful of samples, I took one hacked it up and came up with this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;' -------------------------------------------------------------------------------- &lt;br /&gt;
' Get configuration we will need &lt;br /&gt;
' -------------------------------------------------------------------------------- &lt;br /&gt;
' Get the OS System Drive &lt;br /&gt;
set shell = WScript.CreateObject( "WScript.Shell" ) &lt;br /&gt;
strDriveLetter = shell.ExpandEnvironmentStrings("%SystemDrive%") &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' Target computer name &lt;br /&gt;
' Use "." to connect to the local computer &lt;br /&gt;
strComputerName = "." &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' -------------------------------------------------------------------------------- &lt;br /&gt;
' Connect to the BitLocker WMI provider class &lt;br /&gt;
' -------------------------------------------------------------------------------- &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;strConnectionStr = "winmgmts:" _ &lt;br /&gt;
                 &amp;amp; "{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _ &lt;br /&gt;
                 &amp;amp; strComputerName _ &lt;br /&gt;
                 &amp;amp; "\root\cimv2\Security\MicrosoftVolumeEncryption" &lt;br /&gt;
On Error Resume Next 'handle permission errors &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Set objWMIService = GetObject(strConnectionStr) &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If Err.Number &amp;lt;&amp;gt; 0 Then &lt;br /&gt;
     WScript.Echo "Failed to connect to the BitLocker interface (Error 0x" &amp;amp; Hex(Err.Number) &amp;amp; ")." &lt;br /&gt;
     Wscript.Echo "Ensure that you are running with administrative privileges." &lt;br /&gt;
     WScript.Quit -1 &lt;br /&gt;
End If &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;On Error GoTo 0 &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' -------------------------------------------------------------------------------- &lt;br /&gt;
' Get a list of volumes that could be bitlocker protected. &lt;br /&gt;
' -------------------------------------------------------------------------------- &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;strQuery = "Select * from Win32_EncryptableVolume where DriveLetter='" &amp;amp; strDriveLetter &amp;amp; "'" &lt;br /&gt;
Set colTargetVolumes = objWMIService.ExecQuery(strQuery) &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If colTargetVolumes.Count = 0 Then &lt;br /&gt;
    WScript.Echo "FAILURE: Unable to find BitLocker-capable drive " &amp;amp;  strDriveLetter &amp;amp; " on computer " &amp;amp; strComputerName &amp;amp; "." &lt;br /&gt;
    WScript.Quit -1 &lt;br /&gt;
End If &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' there should only be one volume found &lt;br /&gt;
For Each objFoundVolume in colTargetVolumes &lt;br /&gt;
    set objVolume = objFoundVolume &lt;br /&gt;
Next &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' -------------------------------------------------------------------------------- &lt;br /&gt;
' Now check if it was protected with a TPM and a PIN &lt;br /&gt;
' -------------------------------------------------------------------------------- &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;nKeyProtectorTypeIn = 4 ' type associated with "TPM and Pin" protector &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;nRC = objVolume.GetKeyProtectors(nKeyProtectorTypeIn, aKeyProtectorIDs) &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If nRC &amp;lt;&amp;gt; 0 Then &lt;br /&gt;
WScript.Echo "FAILURE: GetKeyProtectors failed with return code 0x" &amp;amp; Hex(nRC) &lt;br /&gt;
WScript.Quit -1 &lt;br /&gt;
End If &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' there should only be one volume found &lt;br /&gt;
For Each objFoundVolume in colTargetVolumes &lt;br /&gt;
    set objVolume = objFoundVolume &lt;br /&gt;
Next &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;' -------------------------------------------------------------------------------- &lt;br /&gt;
' Now return what we found. &lt;br /&gt;
' -------------------------------------------------------------------------------- &lt;br /&gt;
On Error Resume Next 'handle unitialized array &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If IsNull(aKeyProtectorIDs(0)) Then &lt;br /&gt;
    WScript.Echo "This volume is NOT TPM and PIN protected." &lt;br /&gt;
Else &lt;br /&gt;
    WScript.Echo "This volume IS TPM and PIN protected." &lt;br /&gt;
End If&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;From the time I decided to write the script, to the time I wrote it and tested it was about 15 to 20 minutes; the samples were great, the MSDN documentation was pretty decent too; all this without ever doing anything with Bitlocker before, WMI is great stuff.&lt;/p&gt;
&lt;p&gt;I may never use this but if nothing else it was quick and fun to throw together, maybe it will help you.&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/208.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/11/12/208.aspx</guid>
            <pubDate>Wed, 12 Nov 2008 10:47:57 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/208.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/11/12/208.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/208.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/208.aspx</trackback:ping>
        </item>
        <item>
            <title>How to do away with the Delete/Resume/Restart Page...</title>
            <link>http://unmitigatedrisk.com/archive/2008/07/06/205.aspx</link>
            <description>&lt;p spellchecked="true"&gt;I don't know about you but I just hate the Delete/Resume/Start page in Media Center; I would prefer that when the video is done that it just take you back to the page that invoked the play operation in the first place.&lt;/p&gt;
&lt;p spellchecked="true"&gt;This isn't so hard to do, all you need to do is wait for &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb189375.aspx"&gt;MediaTransport.PropertyChanged&lt;/a&gt;&lt;/font&gt; to file and when &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms816500.aspx "&gt;PlayState&lt;/a&gt;&lt;/font&gt; goes into the "Stopped" &lt;a href="http://msdn.microsoft.com/en-us/library/aa468446.aspx"&gt;state&lt;/a&gt; navigate back to whatever page you feel is appropriate.&lt;/p&gt;
&lt;p spellchecked="true"&gt;A generic way to get this page out of Media Center would be to call &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb189151.aspx"&gt;HistoryOrientedPageSession.BackPage&lt;/a&gt;&lt;/font&gt; every time the playback goes from Playing to Stopped.&lt;/p&gt;
&lt;p&gt;While I have not tried this myself, this &lt;font class="" face="fmisspellt" spellchecked="true"&gt;appears&lt;/font&gt; fairly straight forward and is probably safe to do at any time (given the nature of this state transition).&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/205.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/07/06/205.aspx</guid>
            <pubDate>Mon, 07 Jul 2008 00:57:13 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/205.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/07/06/205.aspx#feedback</comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/205.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/205.aspx</trackback:ping>
        </item>
        <item>
            <title>How to determine what content a MCE Extender supports...</title>
            <link>http://unmitigatedrisk.com/archive/2008/07/06/204.aspx</link>
            <description>&lt;p spellchecked="true"&gt;So your a Media Center add-in and &lt;font class="" face="fmisspellt" spellchecked="true"&gt;you want to determine if a file is a supported format for the playback device that is being used at any given time, here is what you do:&lt;/font&gt;&lt;/p&gt;
&lt;p spellchecked="true"&gt;First things first you should detect if your on a Extender or not you should make sure the &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa468315.aspx"&gt;Capabilities.IsConsole&lt;/a&gt;&lt;/font&gt; is false.&lt;/p&gt;
&lt;p spellchecked="true"&gt;At this point you know your on a extender, the next thing need to do is check to see that the file you are about to play is supported by the the Extender, to do that you can use &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa468340.aspx"&gt;DeviceInfo.ProtocolInfo&lt;/a&gt;&lt;/font&gt; (), this will either return null which means you can assume a base set of capabilities (documented on &lt;a href="http://msdn.microsoft.com/en-us/library/aa468340.aspx"&gt;here&lt;/a&gt;) or return a string which can be parsed to find out what "Content Types" the Extender supports.&lt;/p&gt;
&lt;p spellchecked="true"&gt;What is a "Content Type" you ask? its a string that gives you a basic idea of what sort of content your looking at (obvious eh?) for a mpeg file it will be "video/mpeg".&lt;/p&gt;
&lt;p spellchecked="true"&gt;You can determine the "Content Type" for a given file extension by looking in the registry under "&lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;HKEY_CLASSES_ROOT&lt;/font&gt;\.{&lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;FileExtension&lt;/font&gt;}" where {&lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;FileExtension&lt;/font&gt;} is the extension of the file in question, the value of "Content Type" will have what you need.&lt;/p&gt;
&lt;p spellchecked="true"&gt;Another &lt;font class="" face="fmisspellt" spellchecked="true"&gt;useful thing to know is the "&lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;PercievedType&lt;/font&gt;" for a given file, its very similar to "Content Type" in purpose but the king thing to understand is that the Videos Library in &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;MCE&lt;/font&gt; uses this to determine if a given file is a "Video" or not, as such if you were to build a Video library of sorts what you would likely want to do is:&lt;/font&gt;&lt;/p&gt;
&lt;ol spellchecked="true"&gt;
    &lt;li spellchecked="true"&gt;
    &lt;div spellchecked="true"&gt;Find all content that has a &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;PercievedType&lt;/font&gt; of Video&lt;/div&gt;
    &lt;/li&gt;
    &lt;li spellchecked="true"&gt;
    &lt;div spellchecked="true"&gt;Identity which of those files are supported &lt;font class="" face="fmisspellt" spellchecked="true"&gt;by the device being used at the time by checking the &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;ProtocolInfo&lt;/font&gt; method.&lt;/font&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li spellchecked="true"&gt;
    &lt;div spellchecked="true"&gt;Either filter out or disable content that is not supported by the current playback device.&lt;/div&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p spellchecked="true"&gt;As I said this approach &lt;font class="" face="fmisspellt" spellchecked="true"&gt;isn't&lt;/font&gt; &lt;font class="" face="fmisspellt" spellchecked="true"&gt;perfect&lt;/font&gt;, it has a couple short &lt;font class="" face="fmisspellt" spellchecked="true"&gt;comings&lt;/font&gt;:&lt;/p&gt;
&lt;ol spellchecked="true"&gt;
    &lt;li spellchecked="true"&gt;
    &lt;div spellchecked="true"&gt;You are not &lt;font class="" face="fmisspellt" spellchecked="true"&gt;guaranteed&lt;/font&gt; that a device will return you a &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;ProtocolInfo&lt;/font&gt; string so you have to special case that with the default content types called out in the &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;ProtocolInfo&lt;/font&gt; documentation.&lt;/div&gt;
    &lt;/li&gt;
    &lt;li spellchecked="true"&gt;
    &lt;div spellchecked="true"&gt;Content Type, while &lt;font class="" face="fmisspellt" spellchecked="true"&gt;useful &lt;font class="" face="fmisspellt" spellchecked="true"&gt;isn't&lt;/font&gt; enough to tell you for sure the content will play, for example bit rate and other encoding options can make content not playable.&lt;/font&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p spellchecked="true"&gt;With that being said this is a fairly reliably means for you to filter out the &lt;font class="misspellet" face="fmisspellt" spellchecked="true"&gt;cruft&lt;/font&gt; that will cause users of your add-ins problems, and you should consider implementing it if you create a library view in your application.&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/204.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/07/06/204.aspx</guid>
            <pubDate>Sun, 06 Jul 2008 22:12:20 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/204.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/07/06/204.aspx#feedback</comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/204.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/204.aspx</trackback:ping>
        </item>
        <item>
            <title>Automate the mundane for sanity sake (part 4) </title>
            <link>http://unmitigatedrisk.com/archive/2008/06/22/197.aspx</link>
            <description>&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;A recent change in My Movies results in users having to have the rips be conformant with the DVD standards, specifically it now requires that the VOB, IFO, and BUP files are in a VIDEO_TS folder.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;I threw together a very basic script that can take folders that are in the form of sourcedir\moviename\dvdfiles to sourcedir\moviename\video_ts\dvdfiles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;As always use this script at your own risk, I have only done limited testing, but it worked on the two folders I tried &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/tounge_smile.gif" /&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_1" style="VISIBILITY: visible; WIDTH: 14.25pt; HEIGHT: 14.25pt; mso-wrap-style: square" o:spid="_x0000_i1025" type="#_x0000_t75" alt="http://unmitigatedrisk.com/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/tounge_smile.gif"&gt;&lt;v:imagedata src="file:///C:\Users\rmh\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif" o:title="tounge_smile"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;To use this copy the following script to foo.vbs, put it in the root of your movies folder, open a command prompt in that directory and type "cscript foo.vbs" and you should be good to go.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;I recommend trying it on a small folder set before you run it on your whole collection to make sure you would be happy with the results.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Dim FileSystem, szMovieFolder&lt;br /&gt;
szMovieFolder = "C:\test"&lt;br /&gt;
Set FileSystem = CreateObject("Scripting.FileSystemObject")&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Dim Folder, File, Files, oMovieFolder, szFolderName, iEndOfShortFileName, szDestPath&lt;br /&gt;
Set oMovieFolder = FileSystem.GetFolder(szMovieFolder)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Set Folders = oMovieFolder.SubFolders&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;For Each Folder in Folders&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt; szFolderName = szMovieFolder  &amp;amp; "\" &amp;amp; Folder.Name  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt; If (FileSystem.FileExists(szFolderName &amp;amp; "\" &amp;amp; "VIDEO_TS.ifo")) = True Then&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;  ' Looks like we have a movie name folder that directly contains a VIDEO_TS.IFO&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;  szDestPath = szFolderName &amp;amp; "\" &amp;amp; "VIDEO_TS"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;  If (FileSystem.FolderExists(szDestPath)) = False Then&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;   ' Looks like it also does not yet have a VIDEO_TS folder&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;   FileSystem.CreateFolder(szDestPath)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;   ' Now it does!&lt;/font&gt;&lt;/p&gt;
&lt;font face="Arial"&gt;
&lt;p&gt;&lt;br /&gt;
   Set Files = Folder.Files&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
   For Each File In Files&lt;br /&gt;
    bMove = False&lt;/p&gt;
&lt;p&gt;    ' If its a VOB, BUP, or IFO move it.&lt;br /&gt;
    If InStr(1, LCase(File.Name), ".vob") &amp;lt;&amp;gt; 0 Then bMove = True&lt;br /&gt;
    If InStr(1, LCase(File.Name), ".ifo") &amp;lt;&amp;gt; 0 Then bMove = True&lt;br /&gt;
    If InStr(1, LCase(File.Name), ".bup") &amp;lt;&amp;gt; 0 Then bMove = True&lt;/p&gt;
&lt;p&gt;    if bMove = True then&lt;br /&gt;
     ' ok lets move file&lt;br /&gt;
     wscript.echo "Moving '" &amp;amp; File.Name &amp;amp; "' to '" &amp;amp; szDestPath &amp;amp; "'"&lt;br /&gt;
     File.Move(szDestPath &amp;amp; "\" &amp;amp; File.Name)&lt;/p&gt;
&lt;p&gt;    end if&lt;br /&gt;
   Next &lt;/p&gt;
&lt;p&gt;  End If&lt;br /&gt;
 End If&lt;br /&gt;
Next&lt;/p&gt;
&lt;/font&gt;&lt;/blockquote&gt;
&lt;p dir="ltr"&gt;Good luck.&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/197.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/06/22/197.aspx</guid>
            <pubDate>Sun, 22 Jun 2008 23:23:26 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/197.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/06/22/197.aspx#feedback</comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/197.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/197.aspx</trackback:ping>
        </item>
        <item>
            <title>OK, I admit it, I am twisted...</title>
            <link>http://unmitigatedrisk.com/archive/2008/03/22/184.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;I was catching up on reading blogs and such and ran across this post from Bruce Schneier over at Wired titled "&lt;a href="http://www.wired.com/politics/security/commentary/securitymatters/2008/03/securitymatters_0320"&gt;Inside the Twisted Mind of the Security Professional&lt;/a&gt;".&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The premise of this so aptly titled post is that security professional's just think differently, and that this difference is a trait that might just be innate in certain individuals; I have to agree.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;I got into electronics (including computers) as a child as a means to figure out how they worked, it started by taking them apart and putting them back together; though in many cases I ended up with extra parts most of the time they went back together just fine &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/tounge_smile.gif" /&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;I quickly learned that this was mostly a mechanical exercise, and that no amount of assembly and re-assembly would really tech me how these things worked; so I started looking at the software.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The interest in software was really again trying to understand how these magnificent boxes worked, I recall looking at the files that made up programs trying to understand their role and ultimately realizing for me to really understand how things worked I had to be able to re-produce approximations of them and so I taught my-self to program (Basic, Pascal, C, and c64 and x86 assembly).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Once I mastered the basics I came back to looking at these programs, trying to understand them and utilizing the basic understanding of computer architecture and programming I had amassed, from there I started trying to see how I could bypass the copy protections on games; it's really this that got me into computer security.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Here there was this commercial software developed by a mass of professionals designed to prevent me, a punk kid from doing something and I was able to by-pass it; I recall how proud I was of myself at first but this quickly lapsed as I realized problems like this were impassable, I was 10.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;My friend Josh and I started fumbling around on bulletin boards across the nation, It remember going into a chat room with Josh and some guy offered us a step-by-step guide of sorts to log in and control phone switches as a means to make free international calls; he had written this guide based on a manual he stolen out of the back of a telephone operators truck, the inside cover of the manual included the default password for this switch.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;I remember this guy telling us how he went about it, and how amazed he was when he found that most of the switches out there were based on this same system and no one changed the default password; this guy was not much older than us, maybe 15 or 16 but again clearly pleased with how he was able to figure this all out.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;For me this was the beginning of understanding social and computer networking, and the beginning of me seeing myself as a "hacker".&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;As a "hacker", I prided my myself in my common sense and the lack of common sense in others; every where I went I was looking for flaws, things that other people missed.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;I remember when we moved to our new house, my mom called the power and phone companies to have our service transferred, I listened to her side of the phone call and she never had to give them any private information; I was amazed. Several months later some kid picked on me at school so I called the phone and power company to have their service disconnected, it worked.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;This view on life has continued to this day, I have of course grown up and no longer use my insights for evil (at least intentionally) but I thank my lucky stars I see the world the way I do.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;As for this view of life being innate in some, as I said. I believe it is; however I also believe it can be learned though I don't know if it can be taught. As a "hacker" when I watch movies I look for the mistakes, the things that were of such a small detail that they were missed by the production staff, when I got married I started to share these findings with my wife who was always surprised I noticed such things.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;However at one point in our marriage she started finding these flaws before I did and when we discuss strategy on issues she also now finds angles I may have missed; she tells me that this is something she has learned from me, all I can say is I certainly didn't mean to teach it as now she can use it against me &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/184.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/03/22/184.aspx</guid>
            <pubDate>Sun, 23 Mar 2008 01:22:27 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/184.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/03/22/184.aspx#feedback</comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/184.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/184.aspx</trackback:ping>
        </item>
        <item>
            <title>RFC 5216 is published!</title>
            <link>http://unmitigatedrisk.com/archive/2008/03/22/183.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Previously I &lt;a href="http://www.unmitigatedrisk.com/archive/2007/06/28/87.aspx"&gt;mentioned&lt;/a&gt; I was working on an update to &lt;a href="http://www.ietf.org/rfc/rfc2716.txt"&gt;RFC 2716&lt;/a&gt; that process is now complete, the RFC number for this new work is &lt;a href="http://tools.ietf.org/rfc/rfc5216.txt"&gt;5216&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;This update was really about adding clarifying text address common implementation issues, better aligning the specification with its dependent RFCs (like &lt;a href="http://tools.ietf.org/rfc/rfc4346.txt"&gt;RFC 4346&lt;/a&gt;, &lt;a href="http://tools.ietf.org/rfc/rfc3280.txt"&gt;RFC 3280&lt;/a&gt;, etc), updating to specification to represent actual implementation practices to aid in interoperability and of course improving security guidance for implementers.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;To be clear, no new capabilities were added to this RFC; despite that the document increased 35.9934% in size (from 50.2 KB  to 71.7 KB); larger doesn't always mean better but in this case I think it does.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/183.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/03/22/183.aspx</guid>
            <pubDate>Sat, 22 Mar 2008 19:33:05 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/183.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/03/22/183.aspx#feedback</comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/183.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/183.aspx</trackback:ping>
        </item>
        <item>
            <title>My Netflix is dead, long live My Netflix.</title>
            <link>http://unmitigatedrisk.com/archive/2008/02/10/174.aspx</link>
            <description>&lt;p&gt;Back in 2004 ended up getting a cold or flu of some sort that kept me from going into work for a day or so and I used that time to throw together a Media Center add-in called My Netflix; I have done a few minor updates over the years (&lt;a href="http://unmitigatedrisk.com/archive/2007/08/25/119.aspx"&gt;http://unmitigatedrisk.com/archive/2007/08/25/119.aspx&lt;/a&gt;) but my work has become increasingly demanding and finding  the time to give the project the TLC it deserves has been difficult at best.&lt;/p&gt;
&lt;p&gt;As a result I am now officially announcing the death of My Netflix, I will no longer fix anything no mater how minor; if you have issues I released it under the MSFT permissive license and the source is still available (&lt;a href="http://www.unmitigatedrisk.com/mce/mynetflixsource.zip"&gt;http://www.unmitigatedrisk.com/mce/mynetflixsource.zip&lt;/a&gt;) so you can go to town if you like.&lt;/p&gt;
&lt;p&gt;With that being said, My Netflix has also been re-born (&lt;a href="http://www.anpark.com/index.php/2008/02/10/new-vista-media-center-plugin-mynetflix-beta/"&gt;http://www.anpark.com/index.php/2008/02/10/new-vista-media-center-plugin-mynetflix-beta/&lt;/a&gt;); a kind soul (Anthony Park) has done a bunch of what I wanted to see done and re-wrote the add-in as a MCML application giving it experience more consistent with MCE plus he added support for Watch It now.&lt;/p&gt;
&lt;p&gt;I have not been a Netflix subscriber for some time (they started rate limiting me, I think this is a dishonest practice) so I switched to Blockbuster (which has its own issues but that's another post) but from the screen shots Anthony has done a great job; in fact I think I will sign up for Netflix on one of the trials and play with it.&lt;/p&gt;
&lt;p&gt;I can't say how excited I am to see this happen :)&lt;/p&gt;
&lt;p&gt;Thanks Anthony!&lt;/p&gt;&lt;img src="http://unmitigatedrisk.com/aggbug/174.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan M. Hurst</dc:creator>
            <guid>http://unmitigatedrisk.com/archive/2008/02/10/174.aspx</guid>
            <pubDate>Sun, 10 Feb 2008 22:50:24 GMT</pubDate>
            <wfw:comment>http://unmitigatedrisk.com/comments/174.aspx</wfw:comment>
            <comments>http://unmitigatedrisk.com/archive/2008/02/10/174.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://unmitigatedrisk.com/comments/commentRss/174.aspx</wfw:commentRss>
            <trackback:ping>http://unmitigatedrisk.com/services/trackbacks/174.aspx</trackback:ping>
        </item>
    </channel>
</rss>
