<br><br><div class="gmail_quote">On Sat, Dec 11, 2010 at 19:51, Brandon S Allbery KF8NH <span dir="ltr">&lt;<a href="mailto:allbery@ece.cmu.edu">allbery@ece.cmu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
</div><div class="im">On 12/9/10 16:04 , Richard O&#39;Keefe wrote:<br>
&gt; I thought &quot;X is a mirror of Y&quot; meant X would be a read-only replica of Y,<br>
&gt; with some sort of protocol between X and Y to keep X up to date.<br>
&gt; As long as the material from Y replicated at X is *supposed* to be<br>
&gt; publicly available, I don&#39;t see a security problem here.  Only Y accepts<br>
&gt; updates from outside, and it continues to do whatever authentication it<br>
&gt; would do without a mirror.  The mirror X would *not* accept updates.<br>
<br>
</div>The above assumes that the operator of the mirror is trustworthy.  It<br>
wouldn&#39;t be difficult for a hostile party to set up a mirror, but then<br>
modify the packages to include malware payloads --- if the packages aren&#39;t<br>
signed.  (Or even if they are signed if it&#39;s a sufficiently weak algorithm.<br>
 MD5 is already unusable for the purpose.)<br></blockquote><div><br>How about, as a cheep and cheerful method to get up running. If the premise is that the original server is trustworthy and the mirrors aren&#39;t, then:<br>
<br>1) Hash all packages on the original server.<br>2) Hash goes into a side car file (e.g. &lt;packagename&gt;.sha) that lives next to the package<br>3) Modify cabal so that it can install from a mirror, but always gets the hash from the original server.<br>
4) Before install you check the hash is correct.<br><br>This gives you a few things:<br><br>1) Every package downloaded from a mirror is guarenteed to be the same as downloading from the original server. This seems to avoid most peoples security concern.<br>
2) Although there&#39;s a transfer from the central server for every download, it&#39;s low bandwidth, so he majority of the load is tranfered to the mirror.<br>3) If the central server goes down a user could elect to ignore the hash, and still get the package.<br>
<br>If this isn&#39;t enough then you&#39;re down the road of a GPG based solution. Setting up some signing keys for packages, distributing the public halves to all clients, etc, etc... If that&#39;s the road you want I&#39;d suggest looking at how Debian solved the problem. &lt;<a href="http://wiki.debian.org/SecureApt">http://wiki.debian.org/SecureApt</a>&gt;<br>
<br></div></div>