<?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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"><channel><title>Disruptive Library Technology Jester &#187; ssl</title> <atom:link href="http://dltj.org/tag/ssl/feed/" rel="self" type="application/rss+xml" /><link>http://dltj.org</link> <description>We&#039;re Disrupted, We&#039;re Librarians, and We&#039;re Not Going to Take It Anymore</description> <lastBuildDate>Fri, 18 May 2012 15:43:10 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <cloud domain='dltj.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' /> <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/us/</creativeCommons:license> <item><title>Thursday Threads: Unprotected Social Media Sites, Value of Free, and Real Life Net Neutrality</title><link>http://dltj.org/article/thursday-threads-2010w43/</link> <comments>http://dltj.org/article/thursday-threads-2010w43/#comments</comments> <pubDate>Thu, 28 Oct 2010 19:41:20 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Thursday Threads]]></category> <category><![CDATA[Cory Doctorow]]></category> <category><![CDATA[digital rights management]]></category> <category><![CDATA[encryption]]></category> <category><![CDATA[Firesheep]]></category> <category><![CDATA[network neutrality]]></category> <category><![CDATA[security]]></category> <category><![CDATA[session hijacking]]></category> <category><![CDATA[ssl]]></category><guid isPermaLink="false">http://dltj.org/?p=1813</guid> <description><![CDATA[Receive DLTJ Thursday Threads by E-mail! Enter your email address:Delivered by FeedBurnerThis week&#8217;s Thursday Threads looks at a big hole in the security model of most internet sites that require you to log into them with a username and password &#8230; <a href="http://dltj.org/article/thursday-threads-2010w43/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=1813"></abbr><div id="feedburner-thursday-threads-email" class="wp-caption alignright" style="width: 310px;;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><form style="border:1px solid #ccc;padding:3px;text-align:center;" action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=thursday-threads', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true"><p>Receive <i><acronym title="Disruptive Library Technology Jester">DLTJ</acronym></i> Thursday Threads by E-mail!  Enter your email address:</p><input type="text" style="width:140px" name="email"/><input type="hidden" value="thursday-threads" name="uri"/><input type="hidden" name="loc" value="en_US"/><input type="submit" value="Subscribe" /><p style="font-size: 80%">Delivered by <a href="http://feedburner.google.com" target="_blank" title="Google Feedburner Service">FeedBurner</a></p></form></div><p>This week&#8217;s <a href="http://dltj.org/category/thursday-threads/">Thursday Threads</a> looks at a big hole in the security model of most internet sites that require you to log into them with a username and password plus a pair of stories about &#8220;big media&#8221; battles.  If you find these interesting and useful, you might want to add the <a href="http://feeds.dltj.org/thursday-threads/">Thursday Threads RSS Feed</a> to your feed reader or subscribe to e-mail delivery using the form to the right.  If you would like a more raw and immediate version of these types of stories, watch <a href="http://friendfeed.com/dltj" title="Peter Murray - FriendFeed">my FriendFeed stream</a> (or subscribe to <a href="feed://friendfeed.com/dltj?format=atom">its feed</a> in your feed reader).  Comments, as always, are welcome.<br /><span id="more-1813"></span><br /><h2>Users of Non-SSL Sites are Prone to Hijacking</h2></p><blockquote><p>When logging into a website you usually start by submitting your username and password. The server then checks to see if an account matching this information exists and if so, replies back to you with a &#8220;cookie&#8221; which is used by your browser for all subsequent requests.</p><p>It&#8217;s extremely common for websites to protect your password by encrypting the initial login, but surprisingly uncommon for websites to encrypt everything else. This leaves the cookie (and the user) vulnerable. HTTP session hijacking (sometimes called &#8220;sidejacking&#8221;) is when an attacker gets a hold of a user&#8217;s cookie, allowing them to do anything the user can do on a particular website. On an open wireless network, cookies are basically shouted through the air, making these attacks extremely easy.</p><p><div id="attachment_1816" class="wp-caption alignright" style="width: 310px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; float: right;"><a href="http://codebutler.com/firesheep" title="Firesheep announcement"><img src="http://cdn.dltj.org/wp-content/uploads/2010/10/Firesheep-exploit-in-action-300x181.png" alt="Firesheep exploit in action" title="Firesheep exploit in action" width="300" height="181" class="size-medium wp-image-1816" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Screenshot of Firesheep in action, from codebutler.com</p></div><p>This is a widely known problem that has been talked about to death, yet very popular websites continue to fail at protecting their users. The only effective fix for this problem is full end-to-end encryption, known on the web as HTTPS or SSL. Facebook is constantly rolling out new &#8220;privacy&#8221; features in an endless attempt to quell the screams of unhappy users, but what&#8217;s the point when someone can just take over an account entirely? Twitter forced all third party developers to use OAuth then immediately released (and promoted) a new version of their insecure website. When it comes to user privacy, SSL is the elephant in the room.</p><p> Today at <a href="http://sandiego.toorcon.org/" title="ToorCon - Home">Toorcon 12</a> I announced the release of <a href="http://codebutler.github.com/firesheep/" title="Firesheep plugin distribution site">Firesheep</a>, a Firefox extension designed to demonstrate just how serious this problem is.</p></blockquote><p>Most of the <a href="http://news.google.com/news/search?pz=1&amp;cf=all&amp;ned=us&amp;hl=en&amp;as_q=firesheep&amp;as_epq=&amp;as_oq=&amp;as_eq=&amp;as_scoring=o&amp;btnG=Search&amp;as_qdr=a&amp;as_drrb=b&amp;as_minm=10&amp;as_mind=20&amp;as_maxm=10&amp;as_maxd=28&amp;as_nsrc=&amp;as_nloc=&amp;geo=&amp;as_author=&amp;as_occt=any" title="Google News/Blog search for 'Firesheep'">coverage</a> of <a href="http://codebutler.com/firesheep" title="Firesheep announcement">Firesheep</a> this week focused on the fact that using Facebook on an open wi-fi network in a coffee shop makes you prone to having your account broken into.  That is true, and perhaps most the most common scenario, but the problem goes deeper than that.  This can occur at any point where a third-party can intercept the communication between your browser and the web server:  your home wireless router, your internet service provider, or even some types of local area networks.  The real answer is to have the entire session &#8212; from the point when you log in to when you log out &#8212; encrypted.  Google recently made this the <a href="http://gmailblog.blogspot.com/2010/01/default-https-access-for-gmail.html" title="Default https access for Gmail - Official Gmail Blog">default for GMail sessions</a>, and some of the engineers involved in the effort <a href="http://www.imperialviolet.org/2010/06/25/overclocking-ssl.html" title="Overclocking SSL - ImperialViolet">published findings about how the SSL encryption overhead isn&#8217;t that bad</a>.  In the meantime, Network World has some options to consider to <a href="http://www.networkworld.com/news/2010/102610-how-to-protect-against-firesheep.html" title="How to protect against Firesheep attacks  | Network World">protect yourself a little bit</a> from this kind of attack. (Hat tip to Dan Scott on Code4Lib IRC.)</p><p><h2>Cory Doctorow on the Role of &#8220;Free&#8221;</h2></p><blockquote><p>The topic I leave my family and my desk to talk to people all over the world about is the risks to freedom arising from the failure of copyright giants to adapt to a world where it&#8217;s impossible to prevent copying. Because it <em>is</em> impossible. Despite 15 long years of the copyright wars, despite draconian laws and savage penalties, despite secret treaties and widespread censorship, despite millions spent on ill-advised copy-prevention tools, more copying takes place today than ever before.</p><p>As <a href="http://www.guardian.co.uk/technology/2007/sep/18/informationeconomy" title="I've written here before">I&#8217;ve written here before</a>, copying isn&#8217;t going to get harder, ever. Hard drives won&#8217;t magically get bulkier but hold fewer bits and cost more.</p><p>Networks won&#8217;t be harder to use. PCs won&#8217;t be slower. People won&#8217;t stop learning to type &#8220;Toy Story 3 bittorrent&#8221; into Google. Anyone who claims otherwise is selling something – generally some kind of unworkable magic anti-copying beans that they swear, this time, will really work.</p></blockquote><p>Cory writes <a href="http://www.guardian.co.uk/technology/blog/2010/oct/05/free-online-content-cory-doctorow" title="The real cost of free | Cory Doctorow | Guardian technology blog">this piece in the U.K. Guardian</a> in response to a column from a fellow Guardian writer on how creative people can control their own intellectual property and some media companies&#8217; demands for digital rights management are actually stifling creativity.  It starts as a rant and moves quickly into a powerful summary of what is at stake in the &#8220;copyright wars.&#8221;  (Hat tip to <a href="http://www.oclc.org/research/publications/newsletters/abovethefold/default.htm" title="Above the Fold">OCLC&#8217;s Above the Fold</a>.)</p><p><h2>What Network Neutrality Really Means</h2></p><blockquote><p>In its continuing contract showdown with <a href="http://topics.nytimes.com/top/news/business/companies/cablevision_systems_corporation/index.html" title="More information about Cablevision Systems Corp">Cablevision</a>, the <a href="http://topics.nytimes.com/top/news/business/companies/news_corporation/index.html" title="More information about News Corporation">News Corporation</a> tried to extend its blackout of the Fox Broadcasting network to Fox.com and to Hulu, the popular Web site for free TV viewing, on Saturday. Angry Cablevision customers reported being unable to watch episodes of “Glee” and “House” on Hulu.</p><p>The blackout caused shock waves because it had not been done before by a programmer. Though the shutdown was brief, the message was unmistakable: do not expect to be able to watch Fox online unless you are paying for Fox on TV.</p><p>The attempted Web blockade was leverage for Fox in its contract negotiations, but more important, it was the latest evidence that entrenched media companies hope to replicate their walled gardens in a new medium, the Internet.</p></blockquote><p>Broadcast and cable companies in the New York City area are locked in a dispute over what the latter needs to pay the former for the right to retransmit the content on cable TV.  The dispute <a href="http://www.nytimes.com/2010/10/20/business/media/20hulu.html" title="Internet Is a Weapon in Cable Fight | New York Times">spilled over into the internet</a> when the cable company started blocking internet subscribers from reaching the broadcast company&#8217;s shows on its website and on Hulu.  This could be seen as a litmus test for <a href="http://en.wikipedia.org/wiki/Network_neutrality" title="Network Neutrality | Wikipedia">net neutrality</a>:  should an internet service provider be able to decide what content it sends to end-users &#8212; either by giving preferential treatment to some content or by blocking other content?  The dispute, by the way, continues&#8230;even <a href="http://www.nytimes.com/2010/10/27/sports/baseball/27sandomir.html" title="Rabbit Ears Redux | New York Times">impacting those who want to watch baseball&#8217;s World Series</a>.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/thursday-threads-2010w43/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Thursday Threads: Technical Debt, QR Codes in National Parks, WebP Image Format, and SSL Cautions</title><link>http://dltj.org/article/thursday-threads-2010w40/</link> <comments>http://dltj.org/article/thursday-threads-2010w40/#comments</comments> <pubDate>Thu, 07 Oct 2010 16:17:11 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Thursday Threads]]></category> <category><![CDATA[cryptography]]></category> <category><![CDATA[jpeg2000]]></category> <category><![CDATA[open courseware]]></category> <category><![CDATA[qr-code]]></category> <category><![CDATA[security]]></category> <category><![CDATA[software development]]></category> <category><![CDATA[ssl]]></category> <category><![CDATA[technical debt]]></category> <category><![CDATA[WebP]]></category><guid isPermaLink="false">http://dltj.org/?p=1706</guid> <description><![CDATA[Week #2 of this new project to highlight interesting tidbits from the previous seven days. Well, things that were interesting to me that I hope will be interesting to DLTJ readers. Time will tell.Technical Debt: A Perspective for ManagersWhat is &#8230; <a href="http://dltj.org/article/thursday-threads-2010w40/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/?p=1706"></abbr><p>Week #2 of this new project to highlight interesting tidbits from the previous seven days.  Well, things that were interesting to me that I hope will be interesting to <i><acronym title="Disruptive Library Technology Jester">DLTJ</acronym></i> readers.  Time will tell.<br /><span id="more-1706"></span><br /><h2>Technical Debt: A Perspective for Managers</h2></p><blockquote><p><a href="http://www.infoq.com/articles/technical-debt-levison" title="InfoQ: Technical Debt a Perspective for Managers">What is Technical Debt?</a> It’s all “those <em>internal</em> things that you choose not to do now, but which will impede future development if left undone” [<a href="http://c2.com/cgi/wiki?TechnicalDebt" title="Technical Debt">Ward Cunningham</a>]. On the surface the application looks to be of high quality and in good condition, but these problems are hidden underneath. QA may even tell you that the application has quality and few defects, but there is still debt. If this debt isn’t managed and reduced, the cost of writing/maintaining the code will eventually outweigh its value to customers.</p><p>Technical Debt is like a credit card that charges a high interest rate, just leaving the team with an outstanding balance cost. In this case, the costs are represented by time and effort needed to work around the problems. The longer the team takes to pay off the debt, the more interest is accumulated (in the form of additional workarounds) and the higher the costs for the business.</p></blockquote><p>This definition of the amorphous stuff that gets in the way of moving faster really resonates with me.</p><p><h2>A Case of Taking QR Codes to the Park</h2><br /><a href="http://cdn.dltj.org/wp-content/uploads/2010/10/NPS-QR-Code.jpg"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://cdn.dltj.org/wp-content/uploads/2010/10/NPS-QR-Code.jpg" alt="" title="Sample National Park Service QR-Code" width="230" height="280" class="alignright size-full wp-image-1708" /></a><br /><blockquote>[Fort Smith Park Superintendent Bill Black] sat through a few conference sessions held by the Arkansas Parks and Tourism Department about information technology, where he heard about QR (or Quick Response) codes—which are two-dimensional bar codes that can be used in a variety of ways. A company can choose from any number of sites that will generate a QR code for free and put that code almost anywhere—on a website, a postcard, or even a T-shirt. Then smartphone users use the camera on their phones to scan the bar code—some phones have the scanning technology built in, but older iPhones and the like will have to download a free app—and are instantly taken to whatever content is linked to the bar code.</p><p>“On the drive home I got thinking about how it might work for interpretation purposes,” Black says, and he began to consider how this technology might be deployed to provide information to park visitors.</p></blockquote><p>Econtent Magazine has this <a href="http://www.econtentmag.com/Articles/ArticleReader.aspx?ArticleID=69984" title="EcontentMag.com: A Case of Taking QR Codes to the Park">brief use case for QR Codes</a> as a way to link to more information in a national park.  Usage of <a href="http://en.wikipedia.org/wiki/QR_Code" title="QR Code - Wikipedia">QR Codes</a> seem to be creeping up, helped in no small part by efforts at Google in its <a href="http://www.google.com/help/maps/favoriteplaces/business/barcode.html" title="QR Code - Google Favorite Places">Favorite Places</a> and <a href="http://tech.fortune.cnn.com/2010/10/01/google-url-shortenerqr-code-service-goes-public/" title="Google URL shortener/QR code service goes public | CNN Money">URL Shortner</a> services.  They aren&#8217;t exactly common yet, but this is a place where libraries might get ahead of the game.  There have been several experiments with QR Codes in <a href="http://www.bath.ac.uk/library/services/qrcode.html" title="QR Codes at The Library">OPACs</a> and <a href="http://www.libsuccess.org/index.php?title=QR_Codes" title="QR Codes - Library Success: A Best Practices Wiki">other services</a>, for instance, and some <a href="http://musingsaboutlibrarianship.blogspot.com/2010/02/qr-codes-for-libraries-some-thoughts.html" title="Musings about librarianship: QR codes for libraries - some thoughts">great</a> <a href="http://lonewolflibrarian.wordpress.com/2010/02/28/application-of-qr-codes-in-libraries-02-28-10/" title="Application of QR Codes in Libraries | The Proverbial Lone Wolf Librarian's Weblog">thinking</a> about how they could be used.  Is there an education role for libraries in helping patrons use this new technique for connecting to information?</p><p><h2>WebP, a new image format for the Web</h2></p><blockquote><p>Most of the common image formats on the web today were established over a decade ago and are based on technology from around that time. Some engineers at Google decided to figure out if there was a way to further compress lossy images like JPEG to make them load faster, while still preserving quality and resolution. As part of this effort, we are releasing a developer preview of a new image format, <a href="http://code.google.com/speed/webp/" title="WebP Home">WebP</a>, that promises to significantly reduce the byte size of photos on the web, allowing web sites to load faster than before.</p></blockquote><p>On the heels of the <a href="http://dltj.org/article/thursday-threads-2010w39/">mention here last week</a> of the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=36351#c155" title="Comment #155 on Mozilla Buzilla bug #36351">bounty to add JPEG2000 support to Firefox</a> comes this <a href="http://blog.chromium.org/2010/09/webp-new-image-format-for-web.html" title="WebP, a new image format for the Web | Chromium Blog">announcement from Google</a> of a new image format for websites that is supposedly better than JPEG2000.  Lots of buzz around this, but not much in the way of commitment to support it yet.  I suppose the real test will be whether WebP will be supported in Firefox before JPEG2000&#8230;</p><p><h2>General Counsel&#8217;s Role in Shoring Up Authentication Practices Used in Secure Communications</h2></p><blockquote><p>The major Internet browsers all currently use the Certificate Authority Trust Model to verify the identity of websites on behalf of end-users. (The Model involves third parties known as certificate authorities or &#8220;CAs&#8221; issuing digital certificates to browswers and website operators that enable the end-user&#8217;s computer to cryptographically prove that the same CA that issued a certificate to the browser also issued a certificate to the website).  The CA Trust Model <a href="http://twit.tv/sn243" title="The TWiT Netcast Network with Leo Laporte"> has recently come under fire by the information security community </a>because of technical and institutional defects.  Steve Schultze and Ed Felten, <a href="http://www.freedom-to-tinker.com/blog/sjs/web-security-trust-models" title="Web Security Trust Models | Freedom to Tinker"> in previous posts here</a>, have outlined the Model&#8217;s shortcomings and examined potential fixes.  The vulernabilities are a big deal because of the potential for man-in-the-middle wiretap exploits as well as imposter website scams.</p></blockquote><p>Is &#8216;https&#8217; and &#8216;SSL&#8217; as secure as you believe it is? <a href="http://www.freedom-to-tinker.com/blog/sroosa/general-counsels-role-shoring-authentication-practices-used-secure-communications" title="General Counsel's Role in Shoring Up Authentication Practices Used in Secure Communications | Freedom to Tinker">These researchers point out</a> that it is only as good as your trust in the Certificate Authorities to issue SSL certificates to the appropriate web site owners and to keep safe the secrets necessary to make &#8216;https&#8217; work.  Read this so that you have an informed sense of how secure your communications on the web actually are.</p><p><h2>M.I.T. Weighs Charges for Online Lectures</h2></p><blockquote><p>The Massachusetts Institute of Technology has announced that it is considering charging for access to online lectures and class notes, which are currently available free on the Web. Speaking at the Organization for Economic Cooperation and Development’s Institutional Management in Higher Education conference in Paris this month, Lori Breslow, director of M.I.T.’s Teaching and Learning Laboratory, said that free access “may not be the best economic model, so we are now looking seriously at new e-learning opportunities.”</p></blockquote><p>I only saw this <a href="http://www.nytimes.com/2010/09/27/education/27iht-educBriefs27.html" title="Briefly: M.I.T. Weighs Charges for Online Lectures | New York Times">brief mention</a> of this in the New York Times.  Were MIT seriously considering reversing its ground-breaking course to open up access to its lectures, I think there would be more talk.  Maybe I missed other discussion, but if this turns out to be the case then the open courseware movement has been dealt a serious blow.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/thursday-threads-2010w40/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>SSL for WordPress Admin and the Problem with  XMLHttpRequest</title><link>http://dltj.org/article/wordpress-ssl-xmlhttprequest/</link> <comments>http://dltj.org/article/wordpress-ssl-xmlhttprequest/#comments</comments> <pubDate>Thu, 20 Mar 2008 15:38:34 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Meta Category]]></category> <category><![CDATA[ajax]]></category> <category><![CDATA[fix_admin_ssl]]></category> <category><![CDATA[ssl]]></category> <category><![CDATA[WordPress]]></category> <category><![CDATA[XMLHttpRequest]]></category><guid isPermaLink="false">https://dltj.org/article/wordpress-ssl-xmlhttprequest/</guid> <description><![CDATA[Note! The updates to SSL handling in WordPress version 2.6 handle the problem of SSL-encrypted admin sessions in a much less hackish sort of way. It doesn&#8217;t make any sense to use this plugin with WordPress version 2.6 when you &#8230; <a href="http://dltj.org/article/wordpress-ssl-xmlhttprequest/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="https://dltj.org/article/wordpress-ssl-xmlhttprequest/"></abbr><div style="border: 2px solid grey; padding: 1.5em;">Note!  The updates to <a href="http://boren.nu/archives/2008/07/14/ssl-and-cookies-in-wordpress-26/" title="&amp;raquo; SSL and Cookies in WordPress 2.6 Ryan Boren">SSL handling in WordPress version 2.6</a> handle the problem of SSL-encrypted admin sessions in a <em>much</em> less hackish sort of way.  It doesn&#8217;t make any sense to use this plugin with <a href="http://wordpress.org/development/2008/07/wordpress-26-tyner/" title="http://wordpress.org/development/2008/07/wordpress-26-tyner/">WordPress version 2.6</a> when you can simply add <code>define(’FORCE_SSL_ADMIN’, true);</code> to your wp-config.php file.</div><p>The WordPress Codex has documentation for <a href="http://codex.wordpress.org/Administration_Over_SSL" title="Administration Over SSL &amp;laquo; WordPress Codex">running the login, registration, and administration interfaces on an SSL server</a>.  There is even a <a href="http://wordpress.org/extend/plugins/admin-ssl-secure-admin/" title="WordPress &#8250; Admin-SSL &laquo; WordPress Plugins">plug-in</a> that will do much of the heavy lifting for you.  I have found both of these methods, by themselves, to be rather unsatisfactory, though, in that admin services that rely on AJAX calls back to WordPress break (such as the periodic saving of drafts).  What happens is this:</p><ol type="1" start="1"><li>Plugins will use the &#8216;siteurl&#8217; and/or &#8216;home&#8217; values in the <a href="http://codex.wordpress.org/General_Options_SubPanel" title="General Options SubPanel &laquo; WordPress Codex">Options &rarr; General</a> admin page, and that value is typically set to the &#8220;http://&#8221; rather than &#8220;https://&#8221; address of the blog.</li><li>The URL that plugins construct to talk back to the WordPress installation will go to an &#8220;http&#8221; address instead of the SSL-encrypted &#8220;https&#8221; address.</li><li>The admin page, loaded in the browser from the &#8220;https&#8221; address, attempts to talk back to the WordPress installation on a &#8220;http&#8221; address and triggers a exception.  In Firefox, the error looks like this: <tt>Error: [Exception... "'Permission denied to call method XMLHttpRequest.open' when calling method: [nsIDOMEventListener::handleEvent]"...]</tt></li></ol><p>The security model in the browser prevents scripts on a page from using XMLHttpRequest<sup><a href="http://dltj.org/article/wordpress-ssl-xmlhttprequest/#footnote_0_344" id="identifier_0_344" class="footnote-link footnote-identifier-link" title="See http://en.wikipedia.org/wiki/XMLHttpRequest for more information on XMLHttpRequest.">1</a></sup> back to any host on the internet <em>except</em> for the host where the script came from.  In this case, the difference between &#8220;http://&#8230;&#8221; and &#8220;https://&#8230;&#8221; is enough to trigger the problem.</p><p>So I fixed it with plug-in that uses an undocumented hook in WordPress 2.3.  If a plugin requests the value of &#8216;siteurl&#8217; or &#8216;home&#8217;, a filter is called to check if the requested page is on the SSL server.  If it is, the filter changes the URL from &#8216;http&#8217; to &#8216;https&#8217;.  In that way, plug-ins will use the proper form of the URL.</p><div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #666666; font-style: italic;">/*
Plugin Name: Fix Admin SSL
Plugin Script: fix_admin_ssl.php
Plugin URI: http://dltj.org/tag/fix_admin_ssl
Description: Fix the 'siteurl' and 'home' option values to make the protocol 'https' rather than 'http' when the page was requested with SSL.
Version: 1.0
License: GPL
Author: Peter Murray
Author URI: http://dltj.org/about
&nbsp;
=== RELEASE NOTES ===
2008-02-18 - v1.0 - first version
*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fix_admin_ssl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTPS'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'on'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$url</span><span style="color: #339933;">=</span><span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^http:\/\//'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'https://'</span><span style="color: #339933;">,</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$url</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_action <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'option_siteurl'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fix_admin_ssl'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_action <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'option_home'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fix_admin_ssl'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div><p>One downside to this plug-in, though, is that it will appear to change the values of &#8216;siteurl&#8217; and &#8216;home&#8217; on the <a href="http://codex.wordpress.org/General_Options_SubPanel" title="General Options SubPanel &laquo; WordPress Codex">Options &rarr; General</a> admin page.  The values in the database are still the &#8216;http&#8217; ones, but since the Options page is an admin page the filter will run when it pre-loads those form fields.</p><p>If there is interest, I can package up the above code into a legitimate plugin and submit it to the <a href="http://wordpress.org/extend/plugins/" title="WordPress &#8250; WordPress Plugins">WordPress plugins list</a>.</p><h2>Footnotes</h2><ol class="footnotes"><li id="footnote_0_344" class="footnote">See <a href="http://en.wikipedia.org/wiki/XMLHttpRequest" title="XMLHttpRequest - Wikipedia">http://en.wikipedia.org/wiki/XMLHttpRequest</a> for more information on XMLHttpRequest.</li></ol>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/wordpress-ssl-xmlhttprequest/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>OpenLDAP with a Go Daddy &#8220;Turbo SSL Secure Certificate&#8221;</title><link>http://dltj.org/article/openldap-with-intermediary-cert/</link> <comments>http://dltj.org/article/openldap-with-intermediary-cert/#comments</comments> <pubDate>Sat, 09 Sep 2006 03:16:23 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[Gentoo]]></category> <category><![CDATA[Go Daddy]]></category> <category><![CDATA[openldap]]></category> <category><![CDATA[ssl]]></category> <category><![CDATA[tls]]></category><guid isPermaLink="false">http://dltj.org/2006/09/openldap-with-intermediary-cert/</guid> <description><![CDATA[Okay &#8212; this seemed like a lot harder than it should have been. At the very least, it took piecing together information from a number of places in order to make it happen. The goal is to use a Go &#8230; <a href="http://dltj.org/article/openldap-with-intermediary-cert/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/2006/09/openldap-with-intermediary-cert/"></abbr><p>Okay &#8212; this seemed like a lot harder than it should have been.  At the very least, it took piecing together information from a number of places in order to make it happen.  The goal is to use a Go Daddy <a href="https://www.godaddy.com/gdshop/ssl/turbo.asp?se=%2B&#038;app%5Fhdr=&#038;ci=1858">Turbo SSL Secure Certificate</a> (the $19.95/year one) to secure an OpenLDAP server.  On the surface, this shouldn&#8217;t be so hard.  The tricky part comes because the requested SSL cert is not signed by a recognized Certificate Authority root; instead, Go Daddy uses an <em>intermediary certificate</em> and the tricky part is making sure the whole chain of SSL certificates line up properly.  There is a wealth of documentation for using intermediary certificates with web servers, but I found very little for OpenLDAP servers.  I hope by posting this into the blogosphere you will find it useful someday, too.</p><p><br /><h2>Environment</h2><br />The servers are running the <a href="http://www.gentoo.org/" title="Gentoo Linux -- Gentoo Linux News">Gentoo</a> distribution of Linux.  The critical bits out of portage are <a href="http://gentoo-portage.com/net-nds/openldap" title="Gentoo-Portage - net-nds/openldap">OpenLDAP</a> (version 2.3.24-r1), <a href="http://gentoo-portage.com/dev-libs/openssl" title="Gentoo-Portage - dev-libs/openssl">OpenSSL</a> (version 0.9.8c), <a href="http://gentoo-portage.com/sys-auth/nss_ldap" title="Gentoo-Portage - sys-auth/nss_ldap">nss_ldap</a> (version 249), and <a href="http://gentoo-portage.com/sys-auth/pam_ldap" title="Gentoo-Portage - sys-auth/pam_ldap">pam_ldap</a> (version 180).  On Monday I&#8217;m going to ask OhioLINK&#8217;s resident Redhat Fedora Core expert to try the equivalent on that distribution.  (I&#8217;ve put him through so much trouble already that I hope this process goes smoothly from here on out.)  You&#8217;ll need to get all of those and their prerequisites installed and configured on your machine.  There is a <span class="removed_link" title="http://gentoo-wiki.com/HOWTO_LDAPv3">HOWTO LDAPv3 on the Gentoo Wiki</span> and <a href="http://wiki.debian.org/LDAP/OpenLDAPSetup" title="OpenLDAPSetup - Debian Wiki">another on the Debian Wiki</a> plus <a href="http://www.saas.nsw.edu.au/solutions/ldap-auth-pam.html" title="LDAP authentication using pam_ldap and nss_ldap" class="broken_link" rel="nofollow">numerous</a> <a href="http://www.howtoforge.com/linux_ldap_authentication" title="LDAP Authentication In Linux | HowtoForge - Linux Howtos and Tutorials">other</a> <a href="http://www.ofb.net/~jheiss/krbldap/howto.html" title="Replacing NIS with Kerberos and LDAP HOWTO">documents</a> out there to help you get started.  When you&#8217;ve had enough fun beating your head up against that wall and have got basic LDAP-based account management to work, you can come back here.</p><p><h2>The Certificate</h2><br />I picked the Go Daddy <a href="https://www.godaddy.com/gdshop/ssl/turbo.asp?se=%2B&#038;app%5Fhdr=&#038;ci=1858">Turbo SSL Secure Certificate</a> because, well, it&#8217;s cheap.  As their own marketing literature says &#8212; why pay a couple hundred dollars for something when Go Daddy will give you the equivalent thing for $19.95?  To be completely fair, Go Daddy offers two types of certificates:  the Turbo SSL one that we&#8217;ll be using and the <a href="https://www.godaddy.com/gdshop/ssl/high.asp?se=%2B&#038;app%5Fhdr=&#038;ci=1859">High-Assurance Secure Certificate</a>.  The difference is in the verification process.  The former verifies only the domain name and control of that domain name by sending e-mail to the WHOIS administrative contact to confirm that the certificate request is legitimate.  The latter is a manual verification process that looks at the domain name and control of that domain name as well as verifies identity of requesting person or company and the authority to make request.  The latter is probably overkill for our uses and costs $89.99.</p><p>So go through the modestly convoluted process of generating the Certificate Signing Request (CSR), giving Go Daddy your $19.95, requesting the certificate, have the request approved by your DNS zone administrator, receive the e-mail of the signed certificate from Go Daddy, and then come back here.</p><p><h2>OpenLDAP&#8217;s &#8216;slapd.conf&#8217; Server Setup</h2><br />So here is the really tricky part (where &#8220;tricky&#8221; is defined as the piece that took me the longest to figure out).  As I said in the introduction, Go Daddy uses an intermediary certificate to form a chain from one of the highly-trusted root certificates.  The key to making this work becomes getting the intermediary certificate into the evaluation chain at the right time so the client can see it an trust the server.  It is possible to install the intermediary certificate on all of the clients who might someday make use of our server&#8217;s certificate, but we would, ideally, like the server to offer the client the certificate and let the client do all of the cryptology to determine whether the server can be trusted.  This section describes what it takes to make that happen.</p><p>First, one has to go to the <a href="https://certificates.godaddy.com/Repository.go">Go Daddy Secure Certificate Services Repository</a>.  Many of the directions I found for getting the intermediary certificate working with web servers said to download the intermediate certificate alone (or, as Go Daddy calls it, the <code>sf_issuing.crt</code> file).  I found this didn&#8217;t work &mdash; rather, the &#8220;Root Bundle&#8221; (or <code>ca_bundle.crt</code> file) is what is needed.</p><p>[Updated 20070904T1104 : It looks like Go Daddy changed their certificate chain last month.  What you need now is called "gd_bundle.crt" from the Go Daddy certificate repository -- you'll find it under the heading "New Go Daddy Certificate Chain" (at least that is where you'll find it today).]</p><p>Then add this to your <code>slapd.conf</code> file:</p><pre>TLSCipherSuite HIGH:MEDIUM:+SSLv2# Your signed CSR that you got back from Go DaddyTLSCertificateFile /etc/ssl/certs/ldap.ohiolink.crt# The private key file for the certificateTLSCertificateKeyFile /etc/ssl/certs/ldap.ohiolink.key# The "Root Bundle" file from Go Daddy's Certificates RepositoryTLSCACertificateFile /etc/ssl/certs/ca_bundle.crt</pre><p>Next, move onto the client side.  (Your LDAP server also has the client libraries installed &#8212; you&#8217;ll likely want to start there.)</p><p><h2>OpenLDAP&#8217;s &#8216;ldap.conf&#8217; Client Setup</h2><br />In case you haven&#8217;t discovered it by now, there are two &mdash; count &#8216;em, <em>two</em> &mdash; <code>ldap.conf</code> files on your box.  One is read by tools derived from the OpenLDAP package and the other is for the pam_ldap/nss_ldap combination.  And to make things even more interesting &#8212; the syntax of the files are not the same!  Boy, sometimes I really dislike the profession I&#8217;m in&#8230;</p><p>So let&#8217;s start with OpenLDAP&#8217;s <code>ldap.conf</code> file; you&#8217;ll likely find this in the <code>/etc/openldap</code> directory.  (At least that is where you&#8217;ll find it with Gentoo &#8212; YMMV.)  In that file, you&#8217;ll want to put these pieces:<br />[code]<br />BASE            dc=ohiolink,dc=edu<br />URI             ldap://ldap.ohiolink.edu/<br />TLS_CACERTDIR   /etc/ssl/certs<br />TLS_REQCERT     demand<br />[/code]<br />You&#8217;ll, of course, want to replace the BASE and URI parameters with the ones most appropriate for your installation.  I&#8217;ve found that third line to be somewhat unexpectedly important, however.  The OpenLDAP libraries need to know where to go to find the trusted root certificates, and so you need to specify the path where they exist on your system.  These got installed with OpenSSL, which you needed back in &#8220;The Certificate&#8221; stage when you generated the CSR.  Again, these are in <code>/etc/ssl/certs</code> on a typically-configured Gentoo box; you might find them elsewhere in other distributions.</p><p><h2>NSS/PAM&#8217;s &#8216;ldap.conf&#8217; Client Setup</h2><br />This is the <em>other</em> <code>ldap.conf</code> file, and on a Gentoo system you&#8217;re likely to find it in the <code>/etc</code> directory.  Remember &mdash; the file name is the same but the directives are different.  You&#8217;ll use much of the knowledge from the previous section here&#8230;you&#8217;ll just need to change the preceding labels:<br />[code]<br />suffix "dc=ohiolink,dc=edu"<br />uri ldap://ldap.ohiolink.edu<br />sslpath /etc/ssl/certs<br />ssl start_tls<br />[/code]<br />See the similarity? <code>base</code> becomes <code>suffix</code>, <code>tls_cacertdir</code> becomes <code>sslpath</code>, and so forth.  There will likely be much more in this file &#8212; <code>pam_login_attribute</code>, <code>nss_base_passwd</code>, and more.  Follow a more comprehensive set of directions to get those pieces right.</p><p><h2>Testing</h2><br />To test to see if the SSL certificate is really securing the connection, you can use the <code>-ZZ</code> parameter (to force an SSL/TLS interaction with the server) on <code>ldapsearch</code> with the debugging level set in order to see some of the protocol interaction.  I find that this command is most instructive:<br />[code]<br />ldapsearch -d 9 -ZZ -h ...ldap.server.address.net...<br />[/code]<br />You can scroll back and make sure that the SSL/TLS-secured connection was, in fact being used.  You can also turn up debugging on the server and look at the server log files to verify the same thing.</p><p><h2>Conclusion</h2><br />So there you go.  I hope you find this useful.  I also hope that if you find it in error, you&#8217;ll let me know.  (Although, at the moment, this does seem to be working for us.  Perhaps it only works because I have faith that it will work.  If so, please be gentle when you tell me I&#8217;ve made an error&#8230; <img src='http://cdn.dltj.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )<p style="padding:0;margin:0;font-style:italic;" class="removed_link">The text was modified to remove a link to http://gentoo-wiki.com/HOWTO_LDAPv3 on January 19th, 2011.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://wiki.debian.org/OpenLDAPSetup to http://wiki.debian.org/LDAP/OpenLDAPSetup on January 19th, 2011.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/openldap-with-intermediary-cert/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> </channel> </rss>
<!-- Served from: dltj.org @ 2012-05-24 16:39:45 by W3 Total Cache -->
