<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Trust.</title>
	<atom:link href="http://divisionbyzero.net/blog/2006/07/12/trust/feed/" rel="self" type="application/rss+xml" />
	<link>http://divisionbyzero.net/blog/2006/07/12/trust/</link>
	<description>question . authority</description>
	<pubDate>Tue, 06 Jan 2009 22:17:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: brad</title>
		<link>http://divisionbyzero.net/blog/2006/07/12/trust/#comment-3</link>
		<dc:creator>brad</dc:creator>
		<pubDate>Thu, 20 Jul 2006 00:31:58 +0000</pubDate>
		<guid isPermaLink="false">http://divisionbyzero.net/2006/07/12/trust/#comment-3</guid>
		<description>That was nicely put.  I think the reason that concept of not trusting the users in programming sticks, is because most programmers are slightly egotistical.  It shifts some of the responsibility for various unsound programming practices into userland.

While that's definately not a good thing, if you lock a programmer in an epic battle with user _INPUT_, it certainly sounds more interesting.  I don't agree that the programmer should see the user as the enemy.  The programmer should be concerned with User Interface primarily, and handling "exceptions" should be a key element in the UI.  Trust got thrown into the mix, because at heart, all us old school programmers worship the BOFH.

And email is broke.  Email messages might benefit from checksuming at the client ends.  Most spam today generates random content to skew Bayesian logic.  So, if I require you to compute the SHA1 and MD5 sum of the email text with respect to each individual recipient, your processor has to do so some work.  If I could block non checksummed messages, or bad checksums, I could force the spammers to utilize more and more processor power.  

There are other ways:  Autoblock any non RFC Compliant transfer, grey list, white list, use queueing systems with autoresponders linked to database employing captcha's and other identity verification methods.  Or cry.</description>
		<content:encoded><![CDATA[<p>That was nicely put.  I think the reason that concept of not trusting the users in programming sticks, is because most programmers are slightly egotistical.  It shifts some of the responsibility for various unsound programming practices into userland.</p>
<p>While that&#8217;s definately not a good thing, if you lock a programmer in an epic battle with user _INPUT_, it certainly sounds more interesting.  I don&#8217;t agree that the programmer should see the user as the enemy.  The programmer should be concerned with User Interface primarily, and handling &#8220;exceptions&#8221; should be a key element in the UI.  Trust got thrown into the mix, because at heart, all us old school programmers worship the BOFH.</p>
<p>And email is broke.  Email messages might benefit from checksuming at the client ends.  Most spam today generates random content to skew Bayesian logic.  So, if I require you to compute the SHA1 and MD5 sum of the email text with respect to each individual recipient, your processor has to do so some work.  If I could block non checksummed messages, or bad checksums, I could force the spammers to utilize more and more processor power.  </p>
<p>There are other ways:  Autoblock any non RFC Compliant transfer, grey list, white list, use queueing systems with autoresponders linked to database employing captcha&#8217;s and other identity verification methods.  Or cry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: theed</title>
		<link>http://divisionbyzero.net/blog/2006/07/12/trust/#comment-2</link>
		<dc:creator>theed</dc:creator>
		<pubDate>Wed, 19 Jul 2006 14:25:08 +0000</pubDate>
		<guid isPermaLink="false">http://divisionbyzero.net/2006/07/12/trust/#comment-2</guid>
		<description>The concept that a programmer should not trust their users is a really bitter and amusing way to state the programmer's purpose.  The actual goal is to get the user to trust that the software he's using will do what it's asked, when it is requested, and notify him if it can't.  Additionally, it's really nice if the program can help in correcting problems if there are any, and not create any additional problems along the way.

If the programmer trusts the user not to do anything stupid (from a programmer's perspective), then the user is not free to try things that may not make sense (to a programmer).  A well-written, hardened program actually frees the user to do their job, and not have to think like a programmer.

Good computer security can do the same, allowing users to feel secure in what they can do and to keep them from doing anything really self destructive.  The boundaries should be clear, explicit, and few.  For instance, if you had an e-mail server that actually dropped all malicious stuff and informed you of what it did and why, then your users could feel free to use their e-mail to send stuff that wasn't malicious, and to open things that came to them.  Isn't that a neat concept?  Almost like it's 1990.

Current mail screening implementations provide incomplete security, so the users still need to be wary, and we're still spending a ton on mail cleaning anyway.  Then the users probably get yelled at for sending things that get mangled by the "protection" for reasons they don't understand.  This is a partial solution to a problem, making the problem actually more difficult and expensive to deal with, and in essence isn't a solution at all.

Not trusting the users is a crude, programmer-centric way of saying that users should be able to trust the products of programmers.  It's actually manners, kind of a programmer's way of saying "here, let me make this simple for you."  IT needs to understand this in the same way.</description>
		<content:encoded><![CDATA[<p>The concept that a programmer should not trust their users is a really bitter and amusing way to state the programmer&#8217;s purpose.  The actual goal is to get the user to trust that the software he&#8217;s using will do what it&#8217;s asked, when it is requested, and notify him if it can&#8217;t.  Additionally, it&#8217;s really nice if the program can help in correcting problems if there are any, and not create any additional problems along the way.</p>
<p>If the programmer trusts the user not to do anything stupid (from a programmer&#8217;s perspective), then the user is not free to try things that may not make sense (to a programmer).  A well-written, hardened program actually frees the user to do their job, and not have to think like a programmer.</p>
<p>Good computer security can do the same, allowing users to feel secure in what they can do and to keep them from doing anything really self destructive.  The boundaries should be clear, explicit, and few.  For instance, if you had an e-mail server that actually dropped all malicious stuff and informed you of what it did and why, then your users could feel free to use their e-mail to send stuff that wasn&#8217;t malicious, and to open things that came to them.  Isn&#8217;t that a neat concept?  Almost like it&#8217;s 1990.</p>
<p>Current mail screening implementations provide incomplete security, so the users still need to be wary, and we&#8217;re still spending a ton on mail cleaning anyway.  Then the users probably get yelled at for sending things that get mangled by the &#8220;protection&#8221; for reasons they don&#8217;t understand.  This is a partial solution to a problem, making the problem actually more difficult and expensive to deal with, and in essence isn&#8217;t a solution at all.</p>
<p>Not trusting the users is a crude, programmer-centric way of saying that users should be able to trust the products of programmers.  It&#8217;s actually manners, kind of a programmer&#8217;s way of saying &#8220;here, let me make this simple for you.&#8221;  IT needs to understand this in the same way.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
