<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<!--last modified on Saturday, October 03, 1998 04:19 PM -->
<HTML><!-- #BeginTemplate "/Templates/caplet.dwt" -->

<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
<!-- #BeginEditable "doctitle" --> 
<TITLE>Admonition Systems</TITLE>
<!-- #EndEditable --> 
<meta name="Author" content="Mark S. Miller">
<link rel=author rev=made href="mailto:markm@caplet.com" title="Mark S. Miller">
<META NAME="description" CONTENT="Caplet(tm) Security: A Consulting Company">
<META NAME="keywords" CONTENT="Capability Security, Capabilities, Cryptography, Distributed Objects, Distributed
  Language, Distributed Capabilities, Lambda Calculus, Scripting Language, Distributed Language, Persistent
  Language, Persistent Capabilities, Persistent Objects, Java Shell, Capability Shell, Scripting Java, Smart
  Contracting, Agoric E-Commerce, Open Source ">
</HEAD>

<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#800080" background="../../images/back.jpg">
<P> 
<TABLE BORDER="0" width="100%">
  <TR VALIGN="TOP"> 
    <TD WIDTH="10%">&nbsp;</TD>
    <TD> 
      <P> 
      <TABLE BORDER="0" WIDTH="100%">
        <TR> 
          <TD ALIGN="LEFT"><a href="../../index.html"><img src="../../images/lgmarb3.gif" width="26" height="26" align="absmiddle" border="0"></a></TD>
          <TD ALIGN="RIGHT"> 
            <!-- #BeginEditable "BigTitle" --> 
            <P><FONT SIZE="7"><b>Admonition Systems
              </b></FONT><br>
              <font size="4">&quot;</font><i><font size="4">I have always depended 
              on the kindness of strangers.</font></i><font size="4">&quot;</font><i><font size="4"><br>
              </font></i>--Stella, in <i>A Streetcar Named 
              Desire</i> 
            
            <!-- #EndEditable -->
          </TD>
        </TR>
      </TABLE>
      <hr>
      <!-- #BeginEditable "LongBody" --> 
      <p>&lt;&lt;<a href="reputation.html">Reputation</a>&lt;&lt; Up to <a href="index.html">Taxonomy</a> 
      </p>
      <p>[Admonition Systems are expected to be of more use directly supporting 
        humans, as a memory prosthesis, than within computation. Accordingly, 
        names like Alice, Bob, and Mallet below refer to people, not objects.]</p>
      <p>Alice sends Bob a document, asking Bob not to show it to Mallet. If Bob 
        wishes to show it to Mallet anyway, no computer security system in the 
        universe can <a href="conspirators.html">prevent</a> him--even if Bob 
        is reading on a tamper resistant box, he can always photograph the screen. 
        Also, Alice may not be able to <a href="deterence.html">deter</a> Bob 
        from showing it to Mallet, if Bob can trust Mallet not to let Alice know 
        that he revealed her secret. However, Bob may wish to not show the document 
        to Mallet simply because Alice asked him not to. Unfortunately, a month 
        later he ftp's a directory to Mallet that happens to contain the secret 
        document Should Bob have been using an admonition system?</p>
      <p>With a hypothetical admonition system, Alice sends Bob the document together 
        with a somewhat machine-understandable admonition not to show it to Mallet. 
        On receiving the document, Bob is asked if he wishes to:</p>
      <center>
        <table border=1 cellpadding=4 bgcolor="#C0C0C0" >
          <tr> 
            <td> 
              <ol>
                <li>keep the document and abide by the admonition.</li>
                <li>ignore the admonition, refuse the document, and inform Alice 
                  of this.</li>
                <li>keep the document and silently ignore the admonition.</li>
              </ol>
            </td>
          </tr>
        </table>
      </center>
      <p>Because Bob can neither be prevented nor detered from engaging action 
        #3, it is better to provide option #3 in the user interface. To do otherwise 
        is only to provide Alice with a false sense of security. This is one of 
        the arguments against <a href="impediments.html">impediments</a>.</p>
      <p>But back to our original scenario. Let's say Bob chooses #1. A month 
        later when forgetful Bob tries to ftp that directory to Mallet, if he's 
        lucky his memory prosthetic reminds him</p>
      <center>
        <table border=1 cellpadding=4 bgcolor="#C0C0C0" >
          <tr> 
            <td align=CENTER> 
              <center>
                <p>Alice asked you not to show that to Mallet, and you wanted 
                  to abide by that. <br>
                  Are you sure?</p>
              </center>
            </td>
          </tr>
        </table>
      </center>
      <p>Such admonition systems can lower the probability of such accidents, 
        but probably not to zero. Many otherwise hard to rationalize computer 
        security systems are used for this purpose, such as the sys-admin who 
        normally operates as a regular user to avoid accidentally doing those 
        things he actually could do, but only as <tt>root</tt>. Plausibly, admonitions 
        are typically not just <i>to </i>people, but <i>about </i>people (as in 
        our example), making the notion of <a href="http://www.cap-lore.com/CapTheory/Principal.html">Principal</a> 
        plausible. However, this is a valuable but unforseen use of systems built 
        primarily for different purposes. </p>
      <p>What would a system look like that was designed for this purpose? What 
        logic might underlie admonitions that a human and computer might be able 
        to jointly understand well enough to be of help? Bob in this scenario 
        is a <a href="deputy.html">confused deputy</a>, confused not by Mallet 
        but by his own forgetfulness. Even though Bob is a person and not an object, 
        might our observations about the confused deputy help here?</p>
      <p>Many programming language constructs let a programmer admonish himself 
        to abide by certain restrictions, except for when he says &quot;no I really 
        mean it&quot;, such as type declarations in C that can be overridden by 
        a cast. C's type system is an admonition system, Java's is a prevention 
        system. Similarly for <tt>lint </tt>and compiler warnings. </p>
      <blockquote> 
        <p><i><font size=+1>Never ascribe to malice what can be explained by incompetence.</font></i></p>
        <ul>
          <p>--Anon</p>
        </ul>
      </blockquote>
      <p>Admonition systems can help lower our incompetence at actions others 
        might ascribe to malice. This area is wide open for productive research, 
        and we have barely scratched the surface</p>
      <!-- #EndEditable --></TD>
    <TD WIDTH="10%">&nbsp;</TD>
  </TR>
  <TR VALIGN="TOP"> 
    <TD WIDTH="10%">&nbsp;</TD>
    <TD> 
      <hr>
      <div align="center"> 
        <p><a href="../../index.html"><img src="../../images/lgmarb3.gif" width="26" height="26" align="bottom" border="0"></a> 
          <i><b><font size="5">H</font>ome</b></i></p>
        <table width="100%" border="0" cellspacing="0" cellpadding="4">
          <tr> 
            <td> 
              <div align="left"><i><a href="mailto:webmaster@caplet.com">email 
                MarkM</a></i><br>
                or <a href="http://www.blindpay.com/crit-me-now.cgi"><img src="../../images/cmn.gif" width="98" height="21" border="0"></a> 
              </div>
            </td>
            <td> 
              <div align="right"><a href="http://www.epic.org/crypto/"><img src="../../images/key.gif" width="37" height="19" alt="Golden Key Campaign" border="0"></a>&nbsp;<a href="http://www.eff.org/br/"><img src="../../images/ribbon.gif" width="18" height="30"
alt="Blue Ribbon Campaign" border="0"></a><br>
                <a href="http://www.freesklyarov.org/"><i>Free Dimitry!</i></a> 
              </div>
            </td>
          </tr>
        </table>
      </div>
    </TD>
    <td width="10%" valign="bottom">&nbsp;</td>
  </TR>
</TABLE>
</BODY>

<!-- #EndTemplate --></HTML>
