Necmettin,<br><br>I may be wrong, here is my comment;<br><br>Assume you have a package sum and you want to verify it from a database. Don't forget the unsecurity of the communication channels. You use an unsecure channel in order to get trusted md5 from database. Some eavesdropper can change the md5 value on air and send you the md5 of the file you get. And thus you verify the wrong package.<br>
<br>I think public key cryptography still needed. Because packager signs the package with his/her private key, and sign can not be changed on air. Because corresponding public key verifes the sign, any changed sign can be detected..<br>
<br><br><br>yavuz....<br><br><br><div><span class="gmail_quote">On 18/04/2008, <b class="gmail_sendername">Necmettin Begiter</b> <<a href="mailto:necmettin.begiter@gmail.com">necmettin.begiter@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2008/4/18, Serdar Dalgic <<a href="mailto:serdar@cclub.metu.edu.tr">serdar@cclub.metu.edu.tr</a>>:<br> <br> As far as I know, packages in Pardus do not include themselves' SHA1<br> or MD5 sums. Included in the pspec.xml is the SHA1 sum of the<br>
.tar.gz/.zip/.whatever (the actual package, not the container (the<br> .pisi file)), and the pisi-index.xml file is basically a container for<br> all the pspec.xml files in the repository, which means it does not<br> include SHA1 or MD5 sums of the .pisi files either. The .pisi file is<br>
a container for the pspec.xml, translations.xml, files/*, and the<br> actual package, which makes it just a shell AFAIK.<br> <br> When the user tries to install a .pisi file (either manually or<br> through the 200x or contrib repositories), PiSi could easily get a<br>
MD5-or-SHA1 sum of the .pisi file and check it against the value in<br> the database table if the system is online.<br> <br> On the database side, package maintainers (of the 200x and contrib<br> repositories or of any other repository) would not have to do anything<br>
for this system to work. The system would add/update the MD5 or SHA1<br> sum of the new/updated .pisi packages automatically, once it learns<br> that any one of the repositories has updated its index.<br> <br><br> ><br>
> So when somebody tries to install a package, pisi will check whether the<br> > release files match and signed with distribution key; otherwise tell the<br> > user that the packages s/he is trying to install may harm his/her system,<br>
> but also pisi gives the chance to continue.. User may have the chance to<br> > keep on installing the "unsigned" package, but pisi freaks out on every step<br> > (or one in two steps =) ) that's a little bit "fork" of debian's apt-secure<br>
> system as stated here[1]. The mechanism that's going to be implemented to<br> > PiSi would evolve in terms of needs and PiSi structure..<br> ><br> > and that's my proposal for the situation.<br> ><br>
> any comments and reviews are welcomed.<br> ><br> > serdar<br> ><br> > [1] <a href="http://wiki.debian.org/SecureApt">http://wiki.debian.org/SecureApt</a><br> <br> <br>Here is a short criticism of Debian's SecureApt system (I am not a<br>
security professional but I will not confide in it just because Debian<br> said so, and I believe the package signing mechanism of Debian is a<br> little bit too limited):<br> <br> 1. Keeping the MD5 sums in the Release file is logical as long as all<br>
the repositories and packages are in your reach/control. The Release<br> file is updated whenever a package is updated, and once developers<br> start creating packages outside the "accepted" sources<br> (devel-200x-contrib repositories in our case), the Release file, thus<br>
the MD5 sums and gpg keys, is/are out of reach for anybody but the<br> packager/developer/repository owner.<br> <br> 2. The package management system not asking anything (because the<br> definitions needed are already installed to the local system) to the<br>
official package signatures center (that would be the database table<br> in my proposal) decreases the "amount" of security if I may say so.<br> <br> 3. In Debian's SecureApt system, a developer can have his/her own<br>
secure apt repository; all the signatures and sums are provided by<br> that very developer, which means the distribution "authorities" have<br> no control whatsoever over what that developer provides (both as a<br>
package and as a control mechanism (signatures/keys/sums)). The<br> disadvantage this creates comes from the fact that being signed and<br> being secure are two *very* different things. Apt the application is<br> secure, the package is signed, but that's all, the packages are not<br>
secure.<br> <br> 4. SecureApt, in its current form, tries only to make sure that there<br> has been no intervention in the process of package download; it is<br> simply like using the HTTPS protocol in place of the HTTP protocol.<br>
<br> Long story short: I believe Pardus project will in a near future<br> encourage (at least not discourage) .pisi packages not in the current<br> repositories (200x and contrib). Debian's SecureApt assumes safety as<br>
long as the maintainer of a repository or package knows how to take<br> md5 sums and how to gpg-sign something. This is not the way to<br> security. IMHO, a "secure package" is secure as long as it is approved<br>
by both users/ developers/ maintainers/ packagers. Debian's current<br> mechanism makes "safe to download" packages, not "safe to install"<br> packages. That is why I propose of a database table that is controlled<br>
by official Pardus developers or someone who has authority either<br> officially or not.<br> <br> Even shorter: MD5 sums and signatures/ keys must be controllable<br> officially, not locally.<br> <br> So, it appears to me, what we need might be not a package signing<br>
mechanism but a package verification mechanism.<br> <br><br> Necmettin<br> _______________________________________________<br> Gsoc mailing list<br> <a href="mailto:Gsoc@pardus.org.tr">Gsoc@pardus.org.tr</a><br> <a href="http://liste.pardus.org.tr/mailman/listinfo/gsoc">http://liste.pardus.org.tr/mailman/listinfo/gsoc</a><br>
</blockquote></div><br>