<div dir="ltr">I don&#39;t understand.<div>An executable can be signed or unsigned. Anyone can sign it, but the name of the signee would appear on it.</div><div>If I see your script with your name on it, I can decide whether or not to execute it.</div>
<div>What cannot happen in that case that I&#39;ll think your script is the update manager, since the executable is signed (as I mentioned signature can be implemented using, say, executable path and not only with crypto).</div>
<div><br></div><div>The user has a variable amount of clue, but it doesn&#39;t matter. </div><div><br></div><div>Even an experienced user (like yourself) won&#39;t be able to differentiate a script claiming he&#39;s the update manager from the real update manager. This is solved. Because it&#39;s theoretically impossible, the input on the screen is identical in both cases.</div>
<div>We never drop the executable signing idea, which has no relation whatsoever to the question whether or not the user has clue.<br><br><div class="gmail_quote">On Mon, Jun 14, 2010 at 10:21 PM, Tzafrir Cohen <span dir="ltr">&lt;<a href="mailto:tzafrir@cohens.org.il">tzafrir@cohens.org.il</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Mon, Jun 14, 2010 at 09:22:23PM +0300, Elazar Leibovich wrote:<br>
&gt; On Mon, Jun 14, 2010 at 8:41 PM, Tzafrir Cohen &lt;<a href="mailto:tzafrir@cohens.org.il">tzafrir@cohens.org.il</a>&gt;wrote:<br>
&gt;<br>
&gt; &gt; On Mon, Jun 14, 2010 at 08:12:43PM +0300, Elazar Leibovich wrote:<br>
&gt; &gt;<br>
&gt; [snip]<br>
&gt;<br>
&gt; &gt; &gt; But I&#39;m not interested with extra limitations. I want to allow the user<br>
&gt; &gt; &gt; sudo&#39;ing whatever he wishes, to allow any program to prompt for extra<br>
&gt; &gt; &gt; permissions, but still disallow a malicious software to disguise as a<br>
&gt; &gt; &gt; legitimate software, and trick the user to give it extra privileges.<br>
&gt; &gt;<br>
&gt; &gt; Define &quot;malicious software&quot;.<br>
&gt; &gt;<br>
&gt; &gt; For instance, should a script that I wrote be considered &quot;malicious&quot;? A<br>
&gt; &gt; script that root wrote?<br>
&gt; &gt;<br>
&gt; &gt; Depends on the user. He will decide if your script should get root<br>
&gt; privileges. If I were him I&#39;ll never give root privileges to anything which<br>
&gt; is not an installer.<br>
&gt;<br>
&gt; But what shouldn&#39;t happen is that *his *script will disguise as your script,<br>
&gt; and will ask for root permissions. I will then give *his* script permission<br>
&gt; because I trust your script, this is the heart of the problem and this is<br>
&gt; wrong.<br>
<br>
</div>So you need to grant local {user?|admin?} the permission to sign<br>
executables?<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; How did Vista &quot;solve&quot; this problem?<br>
&gt; &gt; &gt; When the a software prompts for extra permissions, the user see which<br>
&gt; &gt; &gt; software asked for that, and if it&#39;s digitally the application&#39;s name and<br>
&gt; &gt; &gt; author are displayed.<br>
&gt; &gt; &gt; The user is expected to examine those details and allow the program to<br>
&gt; &gt; get<br>
&gt; &gt; &gt; extra privileges if he wishes (software from sun? OK it&#39;s a java update,<br>
&gt; &gt; I<br>
&gt; &gt; &gt; clicked on Firefox installer I expect software from Mozilla Foundation to<br>
&gt; &gt; &gt; prompt for permissions, unsigned software is asking for permissions after<br>
&gt; &gt; I<br>
&gt; &gt; &gt; clicked to update my Java - wow, that&#39;s alarming!).<br>
&gt; &gt; &gt; Of course there are many problems with this approach (for instance let&#39;s<br>
&gt; &gt; &gt; sign my malware for &quot;the Sun Inc&quot; instead of &quot;Sun Inc&quot;), but it&#39;s a good<br>
&gt; &gt; &gt; first step.<br>
&gt; &gt;<br>
&gt; &gt; A certificate may serve to guarantee that the software indeed comes from<br>
&gt; &gt; a well-known vendor. But it says nothing about it being safe for running<br>
&gt; &gt; under sudo.<br>
&gt; &gt;<br>
&gt; &gt; Do I want to allow my users to run all the Sun programs? (and by<br>
&gt; &gt; extension: all Java programs, through a JVM) with root privs?<br>
&gt; &gt;<br>
&gt;<br>
&gt; Hold it a bit, most software won&#39;t need to run as root, so usually the<br>
&gt; answer is no. It is legitimate to require scripts that are supposed to run<br>
&gt; as root to be compiled to a signed executable that would be signed. (It is a<br>
&gt; good idea in general BTW, for instance gnome-do fails to recognize java<br>
&gt; programs which are ran by bash script).<br>
&gt;<br>
&gt; BTW you don&#39;t have to sign the executables by crypto. It is enough to show<br>
&gt; the full path of the software, and warn the user if he has write permission<br>
&gt; to the place where the executable resides.<br>
<br>
</div></div>So now we don&#39;t assume user is completely clueless, and we basically<br>
drop the whole signing idea.<br>
<br>
Full command-line sounds saner. gksudo alsready does that here.<br>
<div class="im"><br>
&gt;<br>
&gt; But even for scripts it improves the system security. Since you would see<br>
&gt; exactly which command line is about to run, and you would be able to decide<br>
&gt; if you are being tricked or not. (It is much more unlikely that a malicious<br>
&gt; software will follow your keystroke an would switch the script you&#39;re just<br>
&gt; about to sudo).<br>
&gt;<br>
&gt; The bottom line is, that I feel 100% safe to click OK on my Java update sudo<br>
&gt; in Vista, but I feel scared to do the same for the update manager on Ubuntu.<br>
<br>
&gt;<br>
&gt; While its not the ideal solution, I believe it gives a good MAANE<br>
<br>
</div>--<br>
<div><div></div><div class="h5">Tzafrir Cohen         | <a href="mailto:tzafrir@jabber.org">tzafrir@jabber.org</a> | VIM is<br>
<a href="http://tzafrir.org.il" target="_blank">http://tzafrir.org.il</a> |                    | a Mutt&#39;s<br>
<a href="mailto:tzafrir@cohens.org.il">tzafrir@cohens.org.il</a> |                    |  best<br>
<a href="mailto:tzafrir@debian.org">tzafrir@debian.org</a>    |                    | friend<br>
<br>
_______________________________________________<br>
Linux-il mailing list<br>
<a href="mailto:Linux-il@cs.huji.ac.il">Linux-il@cs.huji.ac.il</a><br>
<a href="http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il" target="_blank">http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il</a><br>
</div></div></blockquote></div><br></div></div>