<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Mutamblog</title>
    <description>Desenvolvimento, design e negócios. Por Eduardo Costa.</description>
    <link>http://blog.mutambal.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>pt-BR</language>
    <blogChannel:blogRoll>http://blog.mutambal.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Mutambal</dc:creator>
    <dc:title>Mutamblog</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/mutambal/blog" type="application/rss+xml" /><feedburner:emailServiceId>mutambal/blog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>ASP.NET MVC NerdDinner</title>
      <description>&lt;p&gt;
Ele &amp;eacute; um vice-presidente na MS. Ele dirige os times que constroem o CLR, o ASP.NET, o IIS, o Silverlight e ferramentas do Visual Studio para interagir com o Visual Studio.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sim, ele &amp;eacute; o &lt;a href="http://weblogs.asp.net/scottgu/" target="_blank" title="Blog do Scott Gu"&gt;Scott Gu&lt;/a&gt; (thrie). E, quando voc&amp;ecirc; acha que ele n&amp;atilde;o tem mais tempo, ele escreve um tutorial completo sobre o ASP.NET MVC com um pouco&amp;nbsp;menos de 200 p&amp;aacute;ginas. Amazing.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Voc&amp;ecirc; pode &lt;a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" target="_blank" title="NerdDinner em PDF"&gt;baixar o PDF&lt;/a&gt;, ou &lt;a href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm" target="_blank" title="NerdDinner PDF on-line"&gt;ler on-line&lt;/a&gt;, dividido por t&amp;oacute;picos. Ou comprar o livro do qual este &amp;eacute; s&amp;oacute; o primeiro cap&amp;iacute;tulo. 
&lt;/p&gt;
&lt;p&gt;
Boa leitura.
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xIupn4yRj9wBxg0TjrSMUI0iGFU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xIupn4yRj9wBxg0TjrSMUI0iGFU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xIupn4yRj9wBxg0TjrSMUI0iGFU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xIupn4yRj9wBxg0TjrSMUI0iGFU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/F65A9WutV9g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/F65A9WutV9g/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/ASPNET-MVC-NerdDinner.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=084f5352-b3e8-4478-bdea-5190eba8622d</guid>
      <pubDate>Sun, 03 May 2009 19:55:00 -0700</pubDate>
      <category>Treinamento e Aprendizado</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=084f5352-b3e8-4478-bdea-5190eba8622d</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=084f5352-b3e8-4478-bdea-5190eba8622d</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/ASPNET-MVC-NerdDinner.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=084f5352-b3e8-4478-bdea-5190eba8622d</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=084f5352-b3e8-4478-bdea-5190eba8622d</feedburner:origLink></item>
    <item>
      <title>Tech-Ed Brasil 2009 em agosto</title>
      <description>&lt;p&gt;
&amp;Eacute; isso a&amp;iacute;!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Comece a separar os cascalhos, a bufunfa, a pila, a grana, venda parte da sua cole&amp;ccedil;&amp;atilde;o de HQs (s&amp;oacute; aqueles mixes da Panini...) ou aquele seu boneco do Batman com a cara do Adam West: o Tech-Ed Brasil 2009 est&amp;aacute; confirmado para agosto!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dias 25, 26, e 27 de agosto. Mais no &lt;a href="http://www.teched.com.br/" target="_blank" title="Tech-Ed Brasil 2009"&gt;site oficial&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jXXI-u5m9XLUPCO5fMNxBzR-vro/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jXXI-u5m9XLUPCO5fMNxBzR-vro/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jXXI-u5m9XLUPCO5fMNxBzR-vro/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jXXI-u5m9XLUPCO5fMNxBzR-vro/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/ls919R8pPZM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/ls919R8pPZM/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Tech-Ed-Brasil-2009-em-agosto.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=766959a5-017d-434f-8835-82c5e988c273</guid>
      <pubDate>Sun, 26 Apr 2009 19:30:00 -0700</pubDate>
      <category>Notícias e Anúncios</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=766959a5-017d-434f-8835-82c5e988c273</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=766959a5-017d-434f-8835-82c5e988c273</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Tech-Ed-Brasil-2009-em-agosto.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=766959a5-017d-434f-8835-82c5e988c273</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=766959a5-017d-434f-8835-82c5e988c273</feedburner:origLink></item>
    <item>
      <title>Aventuras fabulosas do Eric Lippert</title>
      <description>&lt;p&gt;Se voc&amp;ecirc; programa em C#, o blog do Eric Lippert &amp;eacute; um achado.&lt;/p&gt;&lt;p&gt;Ele trabalha na MS na divis&amp;atilde;o de desenvolvimento e seu trabalho &amp;eacute;, basicamente, desenhar software (principalmente o C#).&lt;/p&gt;&lt;p&gt;Com bastante frequ&amp;ecirc;ncia ele escreve sobre decis&amp;otilde;es de design e detalhes de implementa&amp;ccedil;&amp;atilde;o da linguagem e deixa claro os motivos pelos quais&amp;nbsp;&lt;a href="http://blogs.msdn.com/ericlippert/archive/2009/02/17/references-are-not-addresses.aspx" target="_blank" title="References are not addresses"&gt;refer&amp;ecirc;ncias n&amp;atilde;o s&amp;atilde;o endere&amp;ccedil;os&lt;/a&gt;, as diferen&amp;ccedil;as entre&amp;nbsp;&lt;a href="http://blogs.msdn.com/ericlippert/archive/2009/01/14/automatic-vs-explicit-properties.aspx" target="_blank" title="Automatic vs Explicit Properties"&gt;propriedades expl&amp;iacute;citas versus autom&amp;aacute;ticas&lt;/a&gt;&amp;nbsp;e sobre&amp;nbsp;&lt;a href="http://blogs.msdn.com/ericlippert/archive/2009/03/19/representation-and-identity.aspx" target="_blank" title="Representation and Identity"&gt;representa&amp;ccedil;&amp;atilde;o e identidade&lt;/a&gt;&amp;nbsp;(um post muito interessante sobre o operador cast).&lt;/p&gt;&lt;p&gt;V&amp;aacute; conhecer. Vale a pena.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/ericlippert/default.aspx" target="_blank" title="Fabulous Adventures in Coding - Eric Lippert"&gt;Fabulous Adventures in Coding&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N3-Lpvmh92N4_qqcXltJI3bHczo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N3-Lpvmh92N4_qqcXltJI3bHczo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N3-Lpvmh92N4_qqcXltJI3bHczo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N3-Lpvmh92N4_qqcXltJI3bHczo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/IrgWoWwQrsU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/IrgWoWwQrsU/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Aventuras-fabulosas-do-Eric-Lippert.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=fe294924-1e36-40ec-af60-e9638d19fa0e</guid>
      <pubDate>Sun, 19 Apr 2009 21:07:00 -0700</pubDate>
      <category>Desenvolvimento e Codificação</category>
      <category>Dicas e Soluções de Problemas</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=fe294924-1e36-40ec-af60-e9638d19fa0e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=fe294924-1e36-40ec-af60-e9638d19fa0e</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Aventuras-fabulosas-do-Eric-Lippert.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=fe294924-1e36-40ec-af60-e9638d19fa0e</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=fe294924-1e36-40ec-af60-e9638d19fa0e</feedburner:origLink></item>
    <item>
      <title>Silverlight 3.0 - Mas já?</title>
      <description>&lt;p&gt;
&amp;Eacute; impressionante a capacidade da MS de tornar obsoleta uma tecnologia rec&amp;eacute;m-lan&amp;ccedil;ada... 
&lt;/p&gt;
&lt;p&gt;
Nem bem viramos a chave para o Silverlight 2.0 j&amp;aacute; d&amp;aacute; pra baixar o &lt;a href="http://silverlight.net/themes/silverlight/getstarted/sl3beta.aspx?AspxAutoDetectCookieSupport=1" target="_blank" title="Beta do Silverlight 3.0"&gt;beta do 3.0&lt;/a&gt;. E agora? Qual &amp;eacute; o mais sensato a fazer? Continuar implementando o 2.0 ou apostar no 3.0? 
&lt;/p&gt;
&lt;p&gt;
Com &amp;quot;mais de 50 novas caracter&amp;iacute;sticas, incluindo o suporte para rodar aplica&amp;ccedil;&amp;otilde;es fora do browser, melhoras dram&amp;aacute;ticas na performance de exibi&amp;ccedil;&amp;atilde;o de v&amp;iacute;deos..&amp;quot; e por a&amp;iacute; vai. Fica dif&amp;iacute;cil decidir. 
&lt;/p&gt;
&lt;p&gt;
E vamos que vamos pois a roda n&amp;atilde;o p&amp;aacute;ra de girar. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rg6g3g8r0Ct-cXh2UB6V1uj8dUM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rg6g3g8r0Ct-cXh2UB6V1uj8dUM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rg6g3g8r0Ct-cXh2UB6V1uj8dUM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rg6g3g8r0Ct-cXh2UB6V1uj8dUM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/uGg6kQ-rIRs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/uGg6kQ-rIRs/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Silverlight-30-Mas-ja.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=07ced07b-e001-47e1-a023-978573701584</guid>
      <pubDate>Wed, 15 Apr 2009 21:33:00 -0700</pubDate>
      <category>Notícias e Anúncios</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=07ced07b-e001-47e1-a023-978573701584</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=07ced07b-e001-47e1-a023-978573701584</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Silverlight-30-Mas-ja.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=07ced07b-e001-47e1-a023-978573701584</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=07ced07b-e001-47e1-a023-978573701584</feedburner:origLink></item>
    <item>
      <title>Introdução ao desenvolvimento utilizando certificados digitais - Parte 2</title>
      <description>&lt;p&gt;
&lt;a href="http://blog.mutambal.com/post/Introducao-ao-desenvolvimento-utilizando-certificados-digitais.aspx" title="Parte 1 desta introdu&amp;ccedil;&amp;atilde;o"&gt;Previously on&amp;nbsp;Mutamblog Galactica&lt;/a&gt;... Ops! &amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Entendendo o uso de chaves p&amp;uacute;blica e privada&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Um certificado digital &amp;eacute; basicamente um arquivo de dados. &amp;Eacute; necess&amp;aacute;rio um mecanismo que proteja o seu conte&amp;uacute;do de maneira que&amp;nbsp;seus dados n&amp;atilde;o possam ser alterados. Para confiar nos dados &amp;eacute; necess&amp;aacute;rio que se possa confiar no seu emissor. O mecanismo que possibilita a prote&amp;ccedil;&amp;atilde;o dos dados do certificado &amp;eacute; a criptografia assim&amp;eacute;trica de chaves p&amp;uacute;blica e privada.  
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; mais f&amp;aacute;cil entender a criptografia de chaves assim&amp;eacute;tricas por compara&amp;ccedil;&amp;atilde;o com a criptografia de chave sim&amp;eacute;trica. Nesta &amp;uacute;ltima, a chave utilizada para criptografar (cifrar seria um termo melhor) um dado &amp;eacute; a mesma chave utilizada para descriptograf&amp;aacute;-lo (descifr&amp;aacute;-lo). J&amp;aacute; no caso da criptografia de chaves p&amp;uacute;blica e privada &amp;eacute; utilizada uma chave para criptografar o dado (a chave p&amp;uacute;blica) e &amp;eacute; utilizada outra (a chave privada) para descriptograf&amp;aacute;-lo. 
&lt;/p&gt;
&lt;p&gt;
O grande sen&amp;atilde;o da criptografia sim&amp;eacute;trica &amp;eacute; que, por motivo de somente existir uma chave, ela deve ser conhecida tanto por quem est&amp;aacute; criptografando algum dado quanto por quem ir&amp;aacute; descriptograf&amp;aacute;-lo. Por exemplo, se voc&amp;ecirc; utilizar esta criptografia para proteger um arquivo antes de envi&amp;aacute;-lo para um amigo, este amigo somente poder&amp;aacute; descriptograf&amp;aacute;-lo se tamb&amp;eacute;m conhecer a chave. 
&lt;/p&gt;
&lt;p&gt;
J&amp;aacute; no modelo assim&amp;eacute;trico a chave p&amp;uacute;blica pode ser amplamente divulgada mantendo-se segredo somente da chave privada. No exemplo que citei, voc&amp;ecirc; poderia criptografar o arquivo utilizando a chave p&amp;uacute;blica do seu amigo e, uma vez que somente ele conhece a chave privada correspondente, somente ele poderia descriptograf&amp;aacute;-lo. Voc&amp;ecirc; pode criptografar quantos arquivos (ou mensagens) quiser que somente ele teria condi&amp;ccedil;&amp;otilde;es de utiliz&amp;aacute;-los. Nem mesmo voc&amp;ecirc; que criptografou os arquivos ser&amp;aacute; capaz de descriptograf&amp;aacute;-los. 
&lt;/p&gt;
&lt;p&gt;
Voltando aos certificados, de maneira geral o fluxo de utiliza&amp;ccedil;&amp;atilde;o das chaves inicialmente &amp;eacute; este: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;O primeiro passo para a gera&amp;ccedil;&amp;atilde;o de um certificado &amp;eacute; a gera&amp;ccedil;&amp;atilde;o do par de chaves.&lt;/li&gt;
	&lt;li&gt;Uma vez que o par de chaves tenha sido gerado, &amp;eacute; criada a requisi&amp;ccedil;&amp;atilde;o com os dados do indiv&amp;iacute;duo.&lt;/li&gt;
	&lt;li&gt;Esta requisi&amp;ccedil;&amp;atilde;o &amp;eacute; assinada utilizando a chave privada.&lt;/li&gt;
	&lt;li&gt;A requisi&amp;ccedil;&amp;atilde;o &amp;eacute; enviada para a CA junto com uma c&amp;oacute;pia da chave p&amp;uacute;blica (observe que, normalmente, a CA n&amp;atilde;o precisa conhecer a chave privada do certificado).&lt;/li&gt;
	&lt;li&gt;A CA, ao receber a requisi&amp;ccedil;&amp;atilde;o, valida sua assinatura utilizando a chave p&amp;uacute;blica associada.&lt;/li&gt;
	&lt;li&gt;Se a CA confiar na assinatura e nos dados do indiv&amp;iacute;duo ela procede gerando o certificado.&lt;/li&gt;
	&lt;li&gt;Em seguida a CA utiliza a sua pr&amp;oacute;pria chave privada (tamb&amp;eacute;m chamada de raiz) para assinar o certificado.&lt;/li&gt;
	&lt;li&gt;Finalmente, a CA devolve o certificado gerado junto com uma c&amp;oacute;pia da sua chave p&amp;uacute;blica.&lt;/li&gt;
	&lt;li&gt;Se quem realizou a requisi&amp;ccedil;&amp;atilde;o confiar na CA pode ou n&amp;atilde;o proceder com a instala&amp;ccedil;&amp;atilde;o do certificado.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
A assinatura de um certificado &amp;eacute; o que permite confiar seus dados. Sempre que &amp;eacute; necess&amp;aacute;rio apresentar um certificado &amp;eacute; necess&amp;aacute;rio apresentar a sua assinatura. E a sua assinatura &amp;eacute; validada contra o seu par de chaves. 
&lt;/p&gt;
&lt;p&gt;
A maior fraqueza de um sistema baseada em par de chaves &amp;eacute; a prote&amp;ccedil;&amp;atilde;o das chaves privadas. Se uma CA tem a sua chave privada desprotegida e roubada todos os certificados gerados por ela estar&amp;atilde;o comprometidos. Num n&amp;iacute;vel abaixo, se a chave privada de um certificado &amp;eacute; conhecida, o mesmo certificado tamb&amp;eacute;m estar&amp;aacute; comprometido. 
&lt;/p&gt;
&lt;p&gt;
O algoritmo criptogr&amp;aacute;fico utilizado para gerar o par de chaves &amp;eacute; o RSA&lt;sup&gt;1&lt;/sup&gt;. A partir daqui podemos falar dos famosos padr&amp;otilde;es de criptografia de chave p&amp;uacute;blica. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Padr&amp;otilde;es de criptografia de chave p&amp;uacute;blica (PKCS)&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
A melhor parte dos padr&amp;otilde;es de criptografia de chave p&amp;uacute;blica &amp;eacute; que eles n&amp;atilde;o s&amp;atilde;o realmente um padr&amp;atilde;o&amp;nbsp;&lt;em&gt;oficial&lt;/em&gt; da ind&amp;uacute;stria mas o s&amp;atilde;o &lt;em&gt;de facto&lt;/em&gt;. Explico: depois de inventarem o algoritmo de chave p&amp;uacute;blica os caras da RSA publicaram uma s&amp;eacute;rie de artigos, os tais padr&amp;otilde;es, para promover diversos usos para o algoritmo. A ind&amp;uacute;stria como um todo adotou a maioria destes padr&amp;otilde;es e, embora eles n&amp;atilde;o tenham sido publicados por autoridades t&amp;eacute;cnicas (ANSI, ISO, IETF, voc&amp;ecirc; diz qual), eles t&amp;ecirc;m este super-status. 
&lt;/p&gt;
&lt;p&gt;
Chamados de PKCS ou public-key cryptography standards, h&amp;aacute; cerca de quinze padr&amp;otilde;es&amp;nbsp;(voc&amp;ecirc; pode acessar a documenta&amp;ccedil;&amp;atilde;o original completa no &lt;a href="http://www.rsa.com/rsalabs/node.asp?id=2124" target="_blank" title="Documentos sobre os PKCS."&gt;site da RSA&lt;/a&gt;). Cada um destes padr&amp;otilde;es corresponde a um prop&amp;oacute;sito de uso para uma chave p&amp;uacute;blica, por exemplo, assinar ou encriptar mensagens, como armazenar chaves privadas e por a&amp;iacute; vai. 
&lt;/p&gt;
&lt;p&gt;
Para nossa pequena introdu&amp;ccedil;&amp;atilde;o os padr&amp;otilde;es relevantes s&amp;atilde;o: PKCS #7, PKCS #10 e PKCS#12. Tem tamb&amp;eacute;m o PKCS #11 mas eu falarei dele somente quando comentar sobre CSPs (esse, como diria um amigo meu, &amp;eacute; &amp;quot;nervoso&amp;quot;). :) 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PKCS #7 e PKCS #10&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
O padr&amp;atilde;o PKCS #7 e PKCS #10 s&amp;atilde;o, normalmente, utilizados em conjunto. Lembra-se quando eu comentei um pouco mais acima sobre o fluxo inicial de utiliza&amp;ccedil;&amp;atilde;o do par de chaves? Eu omiti alguns detalhes na esperan&amp;ccedil;a de que eles ficassem mais claros agora. :) 
&lt;/p&gt;
&lt;p&gt;
Quando&amp;nbsp;a requisi&amp;ccedil;&amp;atilde;o de um certificado &amp;eacute; criada para ser enviada para uma CA ela &amp;eacute; formatada utilizando o padr&amp;atilde;o PKCS #10 (seu nome de batismo &amp;eacute; &lt;em&gt;Certification Request Standard&lt;/em&gt;), ou seja, a CA recebe a requisi&amp;ccedil;&amp;atilde;o neste formato. Este formato &amp;eacute; bin&amp;aacute;rio mas pode ser convertido para texto (em base 64). Veja um exemplo (que eu peguei l&amp;aacute; na &lt;a href="http://en.wikipedia.org/wiki/Certificate_signing_request" target="_blank" title="Certificate Signing Request"&gt;Wikipedia&lt;/a&gt;): 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier"&gt;-----BEGIN CERTIFICATE REQUEST-----&lt;br /&gt;
MIIBnTCCAQYCAQAwXTELMAkGA1UEBhMCU0cxETAPBgNVBAoTCE0yQ3J5cHRvMRIw&lt;br /&gt;
EAYDVQQDEwlsb2NhbGhvc3QxJzAlBgkqhkiG9w0BCQEWGGFkbWluQHNlcnZlci5l&lt;br /&gt;
eGFtcGxlLmRvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAr1nYY1Qrll1r&lt;br /&gt;
uB/FqlCRrr5nvupdIN+3wF7q915tvEQoc74bnu6b8IbbGRMhzdzmvQ4SzFfVEAuM&lt;br /&gt;
MuTHeybPq5th7YDrTNizKKxOBnqE2KYuX9X22A1Kh49soJJFg6kPb9MUgiZBiMlv&lt;br /&gt;
tb7K3CHfgw5WagWnLl8Lb+ccvKZZl+8CAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GB&lt;br /&gt;
AHpoRp5YS55CZpy+wdigQEwjL/wSluvo+WjtpvP0YoBMJu4VMKeZi405R7o8oEwi&lt;br /&gt;
PdlrrliKNknFmHKIaCKTLRcU59ScA6ADEIWUzqmUzP5Cs6jrSRo3NKfg1bd09D1K&lt;br /&gt;
9rsQkRc9Urv9mRBIsredGnYECNeRaK5R1yzpOowninXC&lt;br /&gt;
-----END CERTIFICATE REQUEST-----&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
Quando a CA envia de volta o certificado gerado ele &amp;eacute; formatado utilizando o padr&amp;atilde;o PKCS #7 (cujo nome de pia &amp;eacute; &lt;em&gt;Cryptographic Message Syntax Standard&lt;/em&gt;), ou seja, o processo que gerou a requisi&amp;ccedil;&amp;atilde;o recebe de volta um certificado neste formato. Este formato tamb&amp;eacute;m &amp;eacute; bin&amp;aacute;rio e tamb&amp;eacute;m pode ser convertido para um texto em base 64. Sem exemplo agora, depois eu edito o post e coloco um... 
&lt;/p&gt;
&lt;p&gt;
Update (em 27/04/2009): meu amigo Badar&amp;oacute; me mandou um &lt;a href="http://sandbox.orkut.com/46/o/pub.1199819524.-1556113204990931254.cer" target="_blank" title="Arquivo .CER em base 64."&gt;link com um certificado&lt;/a&gt; em base 64. Superinteressante porque voc&amp;ecirc; pode baix&amp;aacute;-lo e ter como checar seu conte&amp;uacute;do. Para quem n&amp;atilde;o quiser baix&amp;aacute;-lo, ele est&amp;aacute; logo abaixo (copie-o e cole num arquivo .CER que voc&amp;ecirc; conseguir&amp;aacute; abri-lo e visualizar os detalhes do indiv&amp;iacute;duo e da CA associada): 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier"&gt;-----BEGIN CERTIFICATE-----&lt;br /&gt;
MIIDHDCCAoWgAwIBAgIJAMbTCksqLiWeMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV&lt;br /&gt;
BAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIG&lt;br /&gt;
A1UEChMLR29vZ2xlIEluYy4xDjAMBgNVBAsTBU9ya3V0MQ4wDAYDVQQDEwVscnlh&lt;br /&gt;
bjAeFw0wODAxMDgxOTE1MjdaFw0wOTAxMDcxOTE1MjdaMGgxCzAJBgNVBAYTAlVT&lt;br /&gt;
MQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChML&lt;br /&gt;
R29vZ2xlIEluYy4xDjAMBgNVBAsTBU9ya3V0MQ4wDAYDVQQDEwVscnlhbjCBnzAN&lt;br /&gt;
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAseBXZ4NDhm24nX3sJRiZJhvy9eDZX12G&lt;br /&gt;
j4HWAMmhAcnm2iBgYpAigwhVHtOs+ZIUIdzQHvHeNd0ydc1Jg8e+C+Mlzo38OvaG&lt;br /&gt;
D3qwvzJ0LNn7L80c0XVrvEALdD9zrO+0XSZpTK9PJrl2W59lZlJFUk3pV+jFR8NY&lt;br /&gt;
eB/fto7AVtECAwEAAaOBzTCByjAdBgNVHQ4EFgQUv7TZGZaI+FifzjpTVjtPHSvb&lt;br /&gt;
XqUwgZoGA1UdIwSBkjCBj4AUv7TZGZaI+FifzjpTVjtPHSvbXqWhbKRqMGgxCzAJ&lt;br /&gt;
BgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEU&lt;br /&gt;
MBIGA1UEChMLR29vZ2xlIEluYy4xDjAMBgNVBAsTBU9ya3V0MQ4wDAYDVQQDEwVs&lt;br /&gt;
cnlhboIJAMbTCksqLiWeMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA&lt;br /&gt;
CETnhlEnCJVDXoEtSSwUBLP/147sqiu9a4TNqchTHJObwTwDPUMaU6XIs2OTMmFu&lt;br /&gt;
GeIYpkHXzTa9Q6IKlc7Bt2xkSeY3siRWCxvZekMxPvv7YTcnaVlZzHrVfAzqNsTG&lt;br /&gt;
P3J//C0j+8JWg6G+zuo5k7pNRKDY76GxxHPYamdLfwk=&lt;br /&gt;
-----END CERTIFICATE-----&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PKCS #12&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Normalmente um certificado digital n&amp;atilde;o &amp;eacute; transmitido ou mantido junto de sua chave privada. Porqu&amp;ecirc;? Bem simples: seria o equivalente a trancar uma gaveta e manter a chave presa na fechadura. Contudo, h&amp;aacute; situa&amp;ccedil;&amp;otilde;es em que isto &amp;eacute; necess&amp;aacute;rio. Por exemplo, quando se precisa fazer backup de uma CA. Neste caso &amp;eacute; feito um backup do certificado raiz da CA junto com sua chave privada para que, em caso de perda da CA (HDs fritam, servidores pegam fogo, principalmente os da Telefonica...) a CA possa ser reinstalada utilizando o mesmo certificado raiz. 
&lt;/p&gt;
&lt;p&gt;
Neste caso, o certificado digital &amp;eacute; salvo num arquivo (extens&amp;atilde;o .p12 ou&amp;nbsp;.pfx) junto com seu par de chaves. O formato deste arquivo obedece o padr&amp;atilde;o PKCS #12 (ou Personal Information Exchange Syntax Standard para os puros de cora&amp;ccedil;&amp;atilde;o). &amp;Eacute; importante ressaltar que o certificado digital &amp;eacute; salvo protegido por um algoritmo sim&amp;eacute;trico ou seja, para gerar o arquivo voc&amp;ecirc; informa uma senha e para utiliz&amp;aacute;-lo depois tamb&amp;eacute;m ter&amp;aacute; de informar a senha novamente. 
&lt;/p&gt;
&lt;p&gt;
Ok, agora que falamos um pouco sobre as chaves p&amp;uacute;blica e privada podemos prosseguir para o conceito de PKI. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Infra-estrutura de chave p&amp;uacute;blica (PKI)&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Uma infra-estrutura de chave p&amp;uacute;blica ou public-key infraestructure ou PKI (para simplificar) &amp;eacute; toda estrutura voltada para gerenciar certificados digitais e suas chaves p&amp;uacute;blicas. 
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; mais ou menos assim: ao conjunto de processos respons&amp;aacute;vel por associar numa CA, de maneira indubit&amp;aacute;vel, um indiv&amp;iacute;duo com uma chave p&amp;uacute;blica &amp;eacute; dado o nome de PKI. Sendo assim, a PKI n&amp;atilde;o &amp;eacute; uma tecnologia mas sim um conjunto de processos. Somando tudo que se requer para gerenciar indiv&amp;iacute;duos e suas chaves p&amp;uacute;blicas &amp;eacute; que se denomina PKI. (Vale lembrar que por indiv&amp;iacute;duo deve-se entender uma pessoa ou um hardware ou um servi&amp;ccedil;o.) 
&lt;/p&gt;
&lt;p&gt;
No mundo MS, o componente mais importante de uma PKI &amp;eacute; a CA ou Certificate Authority. Este &amp;eacute; um componente que pode ser instalado a partir dos sistemas operacionais de servidor (Windows 2000 / 2003 / 2008) e &amp;eacute; encontrado l&amp;aacute; no Adicionar / Remover Programas. 
&lt;/p&gt;
&lt;p&gt;
H&amp;aacute; basicamente dois tipos de CA, na vis&amp;atilde;o MS: Enterprise e Standard. 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;Enterprise&lt;/em&gt;: &amp;eacute; a CA instalada em conjunto com o Active Directory (AD). &amp;Eacute; a CA mais poderosa e cheia de recursos que a MS oferece pois voc&amp;ecirc; tem numa solu&amp;ccedil;&amp;atilde;o integrada tanto a base de usu&amp;aacute;rios quanto os certificados digitais. Exclua um usu&amp;aacute;rio e o seu certificado digital ser&amp;aacute; revogado, por exemplo.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Standard&lt;/em&gt;: &amp;eacute;&amp;nbsp;a CA instalada num ambiente sem o Active Directory (ou pelo menos sem integra&amp;ccedil;&amp;atilde;o). Permite gerar certificados normalmente, por&amp;eacute;m, n&amp;atilde;o conta com uma s&amp;eacute;rie de facilidades e recursos dispon&amp;iacute;veis na vers&amp;atilde;o Enterprise. Isto fica claro porque a CA n&amp;atilde;o conhece a base de usu&amp;aacute;rios. Exclua um usu&amp;aacute;rio e voc&amp;ecirc; ter&amp;aacute; de possuir um processo / procedimento para revogar o certificado digital correspondente, por exemplo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
N&amp;atilde;o vou entrar no m&amp;eacute;rito de instala&amp;ccedil;&amp;atilde;o da CA pois existem &amp;oacute;timos tutoriais de como proceder. Veja este &lt;a href="http://www.itcentral.com.br/default.asp?id=18&amp;amp;ACT=5&amp;amp;content=210&amp;amp;mnu=18" target="_blank" title="Instalando Microsoft Certificate Authority"&gt;aqui da IT Central&lt;/a&gt; para ter uma id&amp;eacute;ia. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;No pr&amp;oacute;ximo post...&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Ok, falta pouco para o final desta s&amp;eacute;rie introdut&amp;oacute;ria&amp;nbsp;(mentira!) . :) Eu preciso comentar sobre cryptostore, snap-ins do Windows, CSPs&amp;nbsp;e outras coisas mais. A&amp;iacute; entraremos no .NET Framework, ActiveX e c&amp;oacute;digo (at last!). Fique comigo e mande ver nos coment&amp;aacute;rios! 
&lt;/p&gt;
&lt;p&gt;
Abra&amp;ccedil;os. 
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;1&lt;/sup&gt; Trivia: RSA vem de Ron &lt;strong&gt;R&lt;/strong&gt;ivest, Adi &lt;strong&gt;S&lt;/strong&gt;hamir e Leonard &lt;strong&gt;A&lt;/strong&gt;dleman,&amp;nbsp;seus inventores. Eles tamb&amp;eacute;m fundaram a empresa RSA para poder divulgar seu trabalho e poder ganhar um dinheirinho. :) 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PCSDEG-akkcfCmPr0FAPRHgd4JY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PCSDEG-akkcfCmPr0FAPRHgd4JY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PCSDEG-akkcfCmPr0FAPRHgd4JY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PCSDEG-akkcfCmPr0FAPRHgd4JY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/zsbS_56uGWc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/zsbS_56uGWc/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Introducao-ao-desenvolvimento-utilizando-certificados-digitais-Parte-2.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=bf792f0b-e8b2-49f2-920a-71293c98b6a8</guid>
      <pubDate>Sun, 12 Apr 2009 17:14:00 -0700</pubDate>
      <category>Segurança Digital</category>
      <category>Treinamento e Aprendizado</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=bf792f0b-e8b2-49f2-920a-71293c98b6a8</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=bf792f0b-e8b2-49f2-920a-71293c98b6a8</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Introducao-ao-desenvolvimento-utilizando-certificados-digitais-Parte-2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=bf792f0b-e8b2-49f2-920a-71293c98b6a8</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=bf792f0b-e8b2-49f2-920a-71293c98b6a8</feedburner:origLink></item>
    <item>
      <title>Codificando .Net e-magazine edição 09</title>
      <description>&lt;p&gt;
Oi. 
&lt;/p&gt;
&lt;p&gt;
Para 2009 eu tinha decidido n&amp;atilde;o fazer mais posts de an&amp;uacute;ncios:&amp;nbsp;o objetivo era evitar ser mais um blog de ecos como tantos por a&amp;iacute;. Saiu isso, lan&amp;ccedil;ado aquilo, vers&amp;atilde;o beta daquilo outro, etc. 
&lt;/p&gt;
&lt;p&gt;
Contudo, o an&amp;uacute;ncio da edi&amp;ccedil;&amp;atilde;o 09 da revista eletr&amp;ocirc;nica da &lt;a href="http://comunidade.codificando.net/" target="_blank" title="Comunidade Codificando .Net"&gt;comunidade Codificando .Net&lt;/a&gt; eu n&amp;atilde;o podia deixar passar batido. Por dois motivos: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;div&gt;
	O novo projeto da revista, principalmente o gr&amp;aacute;fico, ficou muito melhor. O Diego Nogare e o Alexandre Tarifa conseguiram montar uma equipe bem competente para tocar a revista. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	A &lt;a href="http://www.fernandasallai.com" target="_blank" title="Blog da Fernanda Sallai"&gt;Fernanda Sallai&lt;/a&gt;, nossa estagi&amp;aacute;ria aqui na Pakua, faz parte dessa equipe. :) 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Os t&amp;oacute;picos cobertos pela revista est&amp;atilde;o mais abrangentes e a edi&amp;ccedil;&amp;atilde;o 09 possui artigos sobre Scrum, Silverlight, cubos Olap, recursos de auditoria no SQL Server e muito mais. 
&lt;/p&gt;
&lt;p&gt;
Acesse o &lt;a href="http://diegonogare.spaces.live.com/Blog/cns!C9B677082DFAE43D!2146.entry" target="_blank" title="Site da revista Codificando .Net"&gt;site&lt;/a&gt; e fa&amp;ccedil;a o download gratuito do arquivo PDF. Vale a pena. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hGzSEvRRroEg51nOC0q0Gd0h7Zc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hGzSEvRRroEg51nOC0q0Gd0h7Zc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hGzSEvRRroEg51nOC0q0Gd0h7Zc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hGzSEvRRroEg51nOC0q0Gd0h7Zc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/tmDZOf5CQkI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/tmDZOf5CQkI/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Codificando-Net-e-magazine-edicao-09.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=24bd1633-8b80-4e57-b6d4-3a0953778435</guid>
      <pubDate>Wed, 08 Apr 2009 06:15:00 -0700</pubDate>
      <category>Notícias e Anúncios</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=24bd1633-8b80-4e57-b6d4-3a0953778435</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=24bd1633-8b80-4e57-b6d4-3a0953778435</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Codificando-Net-e-magazine-edicao-09.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=24bd1633-8b80-4e57-b6d4-3a0953778435</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=24bd1633-8b80-4e57-b6d4-3a0953778435</feedburner:origLink></item>
    <item>
      <title>Introdução ao desenvolvimento utilizando certificados digitais</title>
      <description>&lt;p&gt;
O b&amp;aacute;sico: &lt;strong&gt;certificados digitais s&amp;atilde;o utilizados para identificar indiv&amp;iacute;duos, recursos e servi&amp;ccedil;os dentro de um ambiente computacional.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Agora, um pouco mais extendido. :) 
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; tudo uma quest&amp;atilde;o de identidade. Pessoas, empresas, softwares, todos precisam informar quem s&amp;atilde;o e de onde v&amp;ecirc;m. 
&lt;/p&gt;
&lt;p&gt;
A beleza dos certificados digitais &amp;eacute; que eles garantem uma estrutura em que estes indiv&amp;iacute;duos podem afirmar quem s&amp;atilde;o, por&amp;eacute;m,&amp;nbsp;com condi&amp;ccedil;&amp;otilde;es e mecanismos que permitem sua confirma&amp;ccedil;&amp;atilde;o. Cada certificado digital cont&amp;eacute;m informa&amp;ccedil;&amp;otilde;es b&amp;aacute;sicas sobre seu propriet&amp;aacute;rio e, mais importante, sobre a entidade que pode confirm&amp;aacute;-lo.
&lt;/p&gt;
&lt;p&gt;
A ado&amp;ccedil;&amp;atilde;o deste tipo de certificado aumenta diariamente.&amp;nbsp;N&amp;atilde;o entenda com isto que&amp;nbsp;estes certificados s&amp;atilde;o tecnologia futura. Longe disso. Os certificados s&amp;atilde;o tecnologia utilizada no dia a dia e, citando dois exemplos, voc&amp;ecirc; n&amp;atilde;o faria compras na internet ou pagaria contas no seu banco on line se eles j&amp;aacute; n&amp;atilde;o houvessem sido implantados. Quando o dinheiro, ou melhor, cr&amp;eacute;dito, come&amp;ccedil;ou a ser utilizado na internet os certificados j&amp;aacute; estavam l&amp;aacute; pois era&amp;nbsp;necess&amp;aacute;rio &amp;quot;confiar&amp;quot; na identidade dos sites que lidavam com isto.
&lt;/p&gt;
&lt;p&gt;
Entender o uso dos certificados digitais e para&amp;nbsp;qu&amp;ecirc; eles servem &amp;eacute; presumivelmente simples. O complicado &amp;eacute; entender como eles funcionam e toda a estrutura que os suporta. Voc&amp;ecirc; pode aprender sobre certificados digitais com uma vis&amp;atilde;o de TI, ou seja, preocupando-se com a infra-estrutura que os faz funcionar ou, como eu, aprender como desenvolver&amp;nbsp;software para interagir com toda esta infra-estrutura: voc&amp;ecirc; pode ter de gerar certificados, armazen&amp;aacute;-los, exclu&amp;iacute;-los (o termo correto &amp;eacute; revog&amp;aacute;-los) e valid&amp;aacute;-los.&amp;nbsp;No m&amp;iacute;nimo.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;De que tipo de certificados digitais estou falando?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Dos que dependem de autoridades certificadoras (CAs)&lt;sup&gt;1&lt;/sup&gt;. Lembra quando comentei que um certificado n&amp;atilde;o apenas cont&amp;eacute;m informa&amp;ccedil;&amp;otilde;es sobre seu propriet&amp;aacute;rio mas tamb&amp;eacute;m cont&amp;eacute;m informa&amp;ccedil;&amp;otilde;es sobre a entidade que pode confirm&amp;aacute;-lo? Ent&amp;atilde;o. Esta entidade &amp;eacute; chamada de autoridade certificadora (ou certificate authority ou CA para os &amp;iacute;ntimos).
&lt;/p&gt;
&lt;p&gt;
Uma CA possui dois prop&amp;oacute;sitos b&amp;aacute;sicos:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	Gerar os certificados digitais (voc&amp;ecirc; n&amp;atilde;o &amp;quot;cria&amp;quot; um certificado - voc&amp;ecirc; envia uma requisi&amp;ccedil;&amp;atilde;o para uma CA faz&amp;ecirc;-lo);
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Manter uma lista atualizada de certificados gerados por ela que n&amp;atilde;o s&amp;atilde;o mais v&amp;aacute;lidos (a famosa CRL ou certificate revocation list);
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;E, afinal, o que &amp;eacute; um certificado digital?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Um certificado digital &amp;eacute; um arquivo. Ele &amp;eacute; especialmente formatado (encodado seria um termo melhor) e obedece a um padr&amp;atilde;o chamado X.509. Atualmente este padr&amp;atilde;o est&amp;aacute; na vers&amp;atilde;o 3 e dita que um certificado contenha estas informa&amp;ccedil;&amp;otilde;es:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Version / Vers&amp;atilde;o&lt;/em&gt;: a vers&amp;atilde;o do formato do certificado;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Serial number&lt;/em&gt; / N&amp;uacute;mero serial: uma sequ&amp;ecirc;ncia alfanum&amp;eacute;rica que identifica de forma &amp;uacute;nica o certificado&amp;nbsp;(pelo menos para a CA que o gerou);
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Algorithm ID&lt;/em&gt; / ID do algoritmo: as informa&amp;ccedil;&amp;otilde;es de um certificado n&amp;atilde;o s&amp;atilde;o mantidas em texto simples (o arquivo &amp;eacute; criptografado). Este campo indica qual algoritmo criptogr&amp;aacute;fico foi utilizado. Exemplos s&amp;atilde;o: MD5 (em desuso) e SHA-1;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Issuer / Emissor&lt;/em&gt;: identifica quem &amp;eacute; a CA;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Validity (Not Before / Not After) / Validade (N&amp;atilde;o antes de / N&amp;atilde;o depois de)&lt;/em&gt;: esta &amp;eacute; uma informa&amp;ccedil;&amp;atilde;o crucial num certificado. Todo certificado &amp;eacute; v&amp;aacute;lido somente por um intervalo de tempo. Desta forma, um certificado n&amp;atilde;o &amp;eacute; valido antes da data inicial e nem tampouco &amp;eacute; v&amp;aacute;lido ap&amp;oacute;s a data final. Somente durante o per&amp;iacute;odo indicado ele &amp;eacute; v&amp;aacute;lido, mesmo que ele n&amp;atilde;o tenha sido revogado;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Subject / Sujeito ou Indiv&amp;iacute;duo&lt;/em&gt;: &amp;eacute; para quem o certificado foi gerado. &amp;Eacute; o &amp;quot;propriet&amp;aacute;rio&amp;quot; do certificado;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Public key info / Informa&amp;ccedil;&amp;otilde;es da chave p&amp;uacute;blica&lt;/em&gt;: vou comentar sobre chaves mais adiante;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Signature algorithm&amp;nbsp;/ Algoritmo da assinatura&lt;/em&gt;: cada certificado possui uma assinatura digital criptografada. Este campo indica qual algoritmo criptogr&amp;aacute;fico foi utilizado;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;em&gt;Signature / Assinatura&lt;/em&gt;: &amp;eacute; a assinatura digital criptografada do certificado. &amp;Eacute; gerada a partir das informa&amp;ccedil;&amp;otilde;es do pr&amp;oacute;prio certificado e &amp;eacute; o que impede que as informa&amp;ccedil;&amp;otilde;es do certificado sejam &amp;quot;temperadas&amp;quot; (ou modificadas, se preferir);
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Tem mais campos, opcionais, mas estes s&amp;atilde;o todos os campos realmente relevantes.
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Como um certificado digital &amp;eacute; gerado?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Olhando para tr&amp;aacute;s seria melhor ter escrito &amp;quot;emitido&amp;quot; mas como escrevi &amp;quot;gerado&amp;quot; em todo o texto acima vai ficar assim mesmo...
&lt;/p&gt;
&lt;p&gt;
Um certificado digital &amp;eacute; gerado em dois passos (de maneira geral): requisi&amp;ccedil;&amp;atilde;o e emiss&amp;atilde;o. Qualquer software que obede&amp;ccedil;a os protocolos certos pode criar uma requisi&amp;ccedil;&amp;atilde;o para um certificado, contudo, somente uma CA &amp;eacute; capaz de emit&amp;iacute;-lo.
&lt;/p&gt;
&lt;p&gt;
O primeiro passo para a gera&amp;ccedil;&amp;atilde;o de um certificado &amp;eacute; gerar sua requisi&amp;ccedil;&amp;atilde;o. Uma requisi&amp;ccedil;&amp;atilde;o, como implica o nome, &amp;eacute; um &amp;quot;pedido&amp;quot; enviado para a CA com todas as informa&amp;ccedil;&amp;otilde;es sobre o indiv&amp;iacute;duo que se deseja gerar o certificado assim como informa&amp;ccedil;&amp;otilde;es sobre a pr&amp;oacute;pria requisi&amp;ccedil;&amp;atilde;o. A requisi&amp;ccedil;&amp;atilde;o tamb&amp;eacute;m &amp;eacute; criptografada e esta criptografia deve obedecer a um dos algoritmos criptogr&amp;aacute;ficos que a CA consegue lidar. N&amp;atilde;o adianta nada enviar um requisi&amp;ccedil;&amp;atilde;o criptografada com SHA2-256 se a CA somente lida com SHA1.
&lt;/p&gt;
&lt;p&gt;
A &amp;uacute;nica informa&amp;ccedil;&amp;atilde;o obrigat&amp;oacute;ria sobre um indiv&amp;iacute;duo &amp;eacute; o subject (ou CN ou common name). Common name &amp;eacute; a identifica&amp;ccedil;&amp;atilde;o &amp;uacute;nica de um indiv&amp;iacute;duo (ou recurso ou servi&amp;ccedil;o). Se voc&amp;ecirc; j&amp;aacute; trabalhou com Active Directory ou outro reposit&amp;oacute;rio LDAP um exemplo de CN pode ser &lt;em&gt;CN=Eduardo Costa,OU=pakua&lt;/em&gt;. Mas um CN &amp;eacute; simplesmente a identifica&amp;ccedil;&amp;atilde;o do indiv&amp;iacute;duo para o qual voc&amp;ecirc; est&amp;aacute; gerando o certificado. Al&amp;eacute;m do CN uma requisi&amp;ccedil;&amp;atilde;o (e posteriormente o certificado) pode armazenar tamb&amp;eacute;m estas informa&amp;ccedil;&amp;otilde;es:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	E-mail;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Empresa;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Departamento;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Cidade;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Pa&amp;iacute;s.
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Finalmente, &amp;eacute; necess&amp;aacute;rio definir um prop&amp;oacute;sito para o certificado digital a ser gerado. Sim, certificados digitais possuem prop&amp;oacute;sitos. Um certificado digital pode ser utilizado para autentica&amp;ccedil;&amp;atilde;o (o caso cl&amp;aacute;ssico, quando ele serve para certificar a identidade do propriet&amp;aacute;rio e permitir o acesso a algum recurso) mas tamb&amp;eacute;m pode ser utilizado para assinar c&amp;oacute;digo-fonte, assinar e-mails, criptografar arquivos e por a&amp;iacute; vai.
&lt;/p&gt;
&lt;p&gt;
A partir destas informa&amp;ccedil;&amp;otilde;es a requisi&amp;ccedil;&amp;atilde;o &amp;eacute; gerada (e eu vou mostrar como fazer isto via c&amp;oacute;digo - aguarde e confie) e enviada para a CA de destino. Quando uma requisi&amp;ccedil;&amp;atilde;o chega at&amp;eacute; a CA ela pode aceitar a requisi&amp;ccedil;&amp;atilde;o e gerar o certificado ou ent&amp;atilde;o aguardar para uma aprova&amp;ccedil;&amp;atilde;o manual da requisi&amp;ccedil;&amp;atilde;o ou finalmente neg&amp;aacute;-la.
&lt;/p&gt;
&lt;p&gt;
Caso a requisi&amp;ccedil;&amp;atilde;o seja aceita, por processo autom&amp;aacute;tico ou manual, a CA retornar&amp;aacute; um certificado digital novinho.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Onde os certificados digitais est&amp;atilde;o sendo utilizados?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Eles s&amp;atilde;o utilizados para certificar conex&amp;otilde;es SSL (o famoso https dos bancos e com&amp;eacute;rcio eletr&amp;ocirc;nico). Para assinar c&amp;oacute;digo-fonte, para assinar execut&amp;aacute;veis e bibliotecas (voc&amp;ecirc; n&amp;atilde;o executa um ActiveX no IE - facilmente - sem assin&amp;aacute;-lo com um certificado), para criptografar dados sigilosos, para criptografar conversas e v&amp;iacute;deo pela internet, para assinar manifestos ClickOnce e, nas empresas, para certificar funcion&amp;aacute;rios utilizando single-sign-on. Empresas est&amp;atilde;o baseando o acesso a sistemas e recursos&amp;nbsp;pela valida&amp;ccedil;&amp;atilde;o dos certificados digitais gerados para seus funcion&amp;aacute;rios e colaboradores. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;No pr&amp;oacute;ximo post...&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Eu falei que o assunto era extenso? Pois &amp;eacute;. Eu ainda n&amp;atilde;o falei sobre chaves p&amp;uacute;blica-privada, nem sobre PKI, nem sobre PKCS7 / PKCS10 / PKCS12, nem sobre a Microsoft CA, e n&amp;atilde;o mostrei uma &amp;uacute;nica linha de c&amp;oacute;digo. Tenha paci&amp;ecirc;ncia. Estou tentando cobrir o b&amp;aacute;sico para o c&amp;oacute;digo fazer sentido l&amp;aacute; na frente. Continue comigo e mande ver nos coment&amp;aacute;rios.
&lt;/p&gt;
&lt;p&gt;
Abra&amp;ccedil;os.
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;1&lt;/sup&gt; O outro caso que conhe&amp;ccedil;o s&amp;atilde;o as &amp;quot;web of trust&amp;quot;. &amp;Eacute; o mecanismo que faz funcionar o PGP e no qual n&amp;atilde;o h&amp;aacute; necessidade de CAs centralizadoras para os certificados&amp;nbsp;(&amp;eacute; um modelo descentralizado por defini&amp;ccedil;&amp;atilde;o). Esta fora do escopo desta s&amp;eacute;rie. Pelo menos por enquanto... :)
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RZyESqCppgCYu8PvhJf5dOuwxUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RZyESqCppgCYu8PvhJf5dOuwxUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RZyESqCppgCYu8PvhJf5dOuwxUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RZyESqCppgCYu8PvhJf5dOuwxUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/DC8DzQXmbHM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/DC8DzQXmbHM/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Introducao-ao-desenvolvimento-utilizando-certificados-digitais.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=20425f34-84eb-4a26-8c39-4b47534a200b</guid>
      <pubDate>Sun, 05 Apr 2009 18:29:00 -0700</pubDate>
      <category>Segurança Digital</category>
      <category>Treinamento e Aprendizado</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=20425f34-84eb-4a26-8c39-4b47534a200b</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=20425f34-84eb-4a26-8c39-4b47534a200b</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Introducao-ao-desenvolvimento-utilizando-certificados-digitais.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=20425f34-84eb-4a26-8c39-4b47534a200b</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=20425f34-84eb-4a26-8c39-4b47534a200b</feedburner:origLink></item>
    <item>
      <title>Série sobre certificados digitais</title>
      <description>&lt;p&gt;
Oi.
&lt;/p&gt;
&lt;p&gt;
Estou pensando seriamente em escrever uma s&amp;eacute;rie de posts sobre certificados digitais. Por experi&amp;ecirc;ncia pr&amp;oacute;pria, sei bem o quanto &amp;eacute; complicado encontrar informa&amp;ccedil;&amp;otilde;es sobre o tema...
&lt;/p&gt;
&lt;p&gt;
Com esta hist&amp;oacute;ria de nota fiscal eletr&amp;ocirc;nica, comunica&amp;ccedil;&amp;atilde;o segura, gerenciamento de identidades e tudo o mais, acho que pode valer a pena.
&lt;/p&gt;
&lt;p&gt;
Abril logo est&amp;aacute; a&amp;iacute;. Vamos ver. Sigam-me os bons.
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xibYDfL-Q_h7SleWxfMPQiu9cRo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xibYDfL-Q_h7SleWxfMPQiu9cRo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xibYDfL-Q_h7SleWxfMPQiu9cRo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xibYDfL-Q_h7SleWxfMPQiu9cRo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/iq5JJhG-aXM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/iq5JJhG-aXM/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Serie-sobre-certificados-digitais.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=2015df87-9698-4293-9896-54431b86086f</guid>
      <pubDate>Sun, 29 Mar 2009 22:26:00 -0700</pubDate>
      <category>Treinamento e Aprendizado</category>
      <category>Segurança Digital</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=2015df87-9698-4293-9896-54431b86086f</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=2015df87-9698-4293-9896-54431b86086f</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Serie-sobre-certificados-digitais.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=2015df87-9698-4293-9896-54431b86086f</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=2015df87-9698-4293-9896-54431b86086f</feedburner:origLink></item>
    <item>
      <title>Citação - Em Deus eu acredito...</title>
      <description>&lt;blockquote&gt;
	&amp;quot;Em Deus eu acredito. Para os demais solicito certificado X509.&amp;quot; 
&lt;/blockquote&gt;
&lt;p&gt;
An&amp;ocirc;nimo at&amp;eacute; eu lembrar quem disse isto para o &lt;a href="http://www.picoloto.com.br/" target="_blank" title="Gustavo Picoloto"&gt;Gustavo Picoloto&lt;/a&gt; que depois me contou... 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Xb3fBkw9PTWER7qD9tG6ycmGLH0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Xb3fBkw9PTWER7qD9tG6ycmGLH0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Xb3fBkw9PTWER7qD9tG6ycmGLH0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Xb3fBkw9PTWER7qD9tG6ycmGLH0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/PHTRmYznAcg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/PHTRmYznAcg/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Citacao-Em-Deus-eu-acredito.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=54cbf0df-06dd-4f6a-92cf-f1cf82f9a378</guid>
      <pubDate>Sun, 22 Mar 2009 19:28:00 -0700</pubDate>
      <category>Citações</category>
      <category>Segurança Digital</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=54cbf0df-06dd-4f6a-92cf-f1cf82f9a378</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=54cbf0df-06dd-4f6a-92cf-f1cf82f9a378</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Citacao-Em-Deus-eu-acredito.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=54cbf0df-06dd-4f6a-92cf-f1cf82f9a378</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=54cbf0df-06dd-4f6a-92cf-f1cf82f9a378</feedburner:origLink></item>
    <item>
      <title>Folksonomia é um conceito utópico?</title>
      <description>&lt;p&gt;
Sabe, folksonomia &amp;eacute; um conceito bacana. Ele dita que os usu&amp;aacute;rios s&amp;atilde;o os pr&amp;oacute;prios respons&amp;aacute;veis por organizar as informa&amp;ccedil;&amp;otilde;es garantindo assim uma &amp;quot;naturalidade&amp;quot; na organiza&amp;ccedil;&amp;atilde;o e no &amp;quot;idioma / linguajar&amp;quot; em que isto &amp;eacute; feito. 
&lt;/p&gt;
&lt;p&gt;
Voc&amp;ecirc; faz isto o tempo todo: qualquer sistema que voc&amp;ecirc; tenha utilizado e que lhe pe&amp;ccedil;a para incluir tags sobre o conte&amp;uacute;do que voc&amp;ecirc; est&amp;aacute; inserindo &amp;eacute; um sistema folkson&amp;ocirc;mico&lt;sup&gt;1&lt;/sup&gt;. &lt;a href="http://www.youtube.com" target="_blank" title="Youtube"&gt;Youtube&lt;/a&gt;, &lt;a href="http://del.icio.us" target="_blank" title="del.icio.us"&gt;del.icio.us&lt;/a&gt;, &lt;a href="http://www.flickr.com/" target="_blank" title="Flickr"&gt;flickr&lt;/a&gt;, sistemas de blog como o &lt;a href="http://www.dotnetblogengine.net/" target="_blank" title="Blogengine"&gt;blogengine&lt;/a&gt; (o que eu utilizo), e por a&amp;iacute; vai. 
&lt;/p&gt;
&lt;p&gt;
Na teoria &amp;eacute; lindo. Estes sistemas v&amp;atilde;o agregando conte&amp;uacute;do semelhante baseado nas inser&amp;ccedil;&amp;otilde;es dos usu&amp;aacute;rios e, claro, os usu&amp;aacute;rios s&amp;atilde;o beneficiados por essa minera&amp;ccedil;&amp;atilde;o do conte&amp;uacute;do. Voc&amp;ecirc; chega no meu blog, clica na tag asp.net e encontra todos os posts que eu relacionei sobre isso. 
&lt;/p&gt;
&lt;p&gt;
O problema &amp;eacute; para isto dar realmente certo e os resultados forem justos o sistema depende de mim! E eu sou humano, se &amp;eacute; que me entende. :) 
&lt;/p&gt;
&lt;p&gt;
Entenda, num dia um dado post pode ser relacionado &amp;agrave; asp.net. No outro, .net framework. No outro, jQuery. E finalmente, programa&amp;ccedil;&amp;atilde;o defensiva. Eu vejo pessoas colocando dez tags no mesmo conte&amp;uacute;do / post, talvez com a inten&amp;ccedil;&amp;atilde;o de abranger o m&amp;aacute;ximo poss&amp;iacute;vel de categorias. Funciona? Sim. Mas gera ru&amp;iacute;do. 
&lt;/p&gt;
&lt;p&gt;
Eu olho meus posts passados e n&amp;atilde;o entendo como eu categorizei tal coisa em tal tag. At&amp;eacute; pensei em passar uma madrugada corretiva, relendo e revisando todos os meus posts. Mas, p&amp;ocirc;xa, s&amp;atilde;o cento e tantos (e olha que eu n&amp;atilde;o escrevo muito...). N&amp;atilde;o pude prosseguir. 
&lt;/p&gt;
&lt;p&gt;
Para mim, folksonomia &amp;eacute; interessante mas est&amp;aacute; fadado ao insucesso. Ele ajuda a sair do caos organizacional mas n&amp;atilde;o &amp;eacute; uma solu&amp;ccedil;&amp;atilde;o completa. 
&lt;/p&gt;
&lt;p&gt;
E qual seria uma solu&amp;ccedil;&amp;atilde;o melhor? N&amp;atilde;o sei. Aguardo sugest&amp;otilde;es. 
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;1&lt;/sup&gt; Ok, eu realmente acredito que, como o Acre, esta palavra existe. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UhHQKQAt-5oYdat4GBZr_MZ5Xl8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UhHQKQAt-5oYdat4GBZr_MZ5Xl8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UhHQKQAt-5oYdat4GBZr_MZ5Xl8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UhHQKQAt-5oYdat4GBZr_MZ5Xl8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/cqV795U9H_g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/cqV795U9H_g/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Folksonomia-e-um-conceito-utopico.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=474685d3-b08a-4698-b28f-6f971682426a</guid>
      <pubDate>Sun, 15 Mar 2009 16:15:00 -0700</pubDate>
      <category>Sobre o Blog</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=474685d3-b08a-4698-b28f-6f971682426a</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=474685d3-b08a-4698-b28f-6f971682426a</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Folksonomia-e-um-conceito-utopico.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=474685d3-b08a-4698-b28f-6f971682426a</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=474685d3-b08a-4698-b28f-6f971682426a</feedburner:origLink></item>
    <item>
      <title>Vim, vi e tuitei</title>
      <description>&lt;p&gt;
Oi.
&lt;/p&gt;
&lt;p&gt;
Muito se discute sobre a utiliza&amp;ccedil;&amp;atilde;o do Twitter como ferramenta de microblogging. Tem gente que gosta, tem gente que n&amp;atilde;o gosta, tem gente que n&amp;atilde;o fala coisa com coisa. 
&lt;/p&gt;
&lt;p&gt;
Contudo, tem gente que tuita coisas realmente &amp;uacute;teis. D&amp;ecirc; uma olhada nos usu&amp;aacute;rios abaixo e os adicione se tamb&amp;eacute;m acreditar no conte&amp;uacute;do:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://twitter.com/elijahmanor" target="_blank"&gt;@elijahmanor&lt;/a&gt;: asp.net, asp.net mvc, jquery&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://twitter.com/Dennes" target="_blank"&gt;@dennes&lt;/a&gt;: asp.net, sql server, .net&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://twitter.com/uaudecadadia" target="_blank"&gt;@uaudecadadia&lt;/a&gt;: silverlight&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O Dennes Torres &lt;a href="http://tinyurl.com/c4n28x" target="_blank"&gt;compilou v&amp;aacute;rias dicas&lt;/a&gt; de usu&amp;aacute;rios do Twitter controlados por times da MS. Vale a pena dar uma lida. &amp;Eacute; um mecanismo muito bom para acompanhar os times dos produtos e as novidades.
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; isso. Boas tuitadas.
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9HQUxvXFAmLFQh82_bEAPG3rD_4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9HQUxvXFAmLFQh82_bEAPG3rD_4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9HQUxvXFAmLFQh82_bEAPG3rD_4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9HQUxvXFAmLFQh82_bEAPG3rD_4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/6xPuCIxQEP4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/6xPuCIxQEP4/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Vim-vi-e-tuitei.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=c482a2a8-8e42-4532-a174-534785d2d402</guid>
      <pubDate>Sun, 08 Mar 2009 22:49:00 -0700</pubDate>
      <category>Treinamento e Aprendizado</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=c482a2a8-8e42-4532-a174-534785d2d402</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=c482a2a8-8e42-4532-a174-534785d2d402</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Vim-vi-e-tuitei.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=c482a2a8-8e42-4532-a174-534785d2d402</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=c482a2a8-8e42-4532-a174-534785d2d402</feedburner:origLink></item>
    <item>
      <title>Um projeto não termina quando acaba</title>
      <description>&lt;p&gt;
:O 
&lt;/p&gt;
&lt;p&gt;
Outro dia lan&amp;ccedil;amos o site de um cliente. Pode-se ter a ilus&amp;atilde;o de que, quando um site/sistema est&amp;aacute; em produ&amp;ccedil;&amp;atilde;o, o projeto est&amp;aacute; terminado. Ledo engano. 
&lt;/p&gt;
&lt;p&gt;
Pra atender bem um cliente &amp;eacute; necess&amp;aacute;rio acompanh&amp;aacute;-lo na p&amp;oacute;s-implanta&amp;ccedil;&amp;atilde;o. No m&amp;iacute;nimo para se certificar de que o trabalho foi bem feito. 
&lt;/p&gt;
&lt;p&gt;
Sistemas&amp;nbsp;web s&amp;atilde;o criaturas arredias e &amp;eacute; necess&amp;aacute;rio muito esfor&amp;ccedil;o para deix&amp;aacute;-los bem. Veja: voc&amp;ecirc; precisa testar no Firefox, no IE 6/7/8 (j&amp;aacute; est&amp;aacute; pra sair oficialmente mas o beta j&amp;aacute; est&amp;aacute; no mercado faz um tempinho...), no Safari, no Opera, no Chrome, etc, etc. 
&lt;/p&gt;
&lt;p&gt;
H&amp;aacute; pequenos&amp;nbsp;gaps que voc&amp;ecirc; somente perceber&amp;aacute; quando estiver em produ&amp;ccedil;&amp;atilde;o. Quando os dados forem reais e n&amp;atilde;o lorem ipsum (ali&amp;aacute;s, deixando bem claro, odeio lorem ipsum...), voc&amp;ecirc; perceber&amp;aacute; que alguns determinados textos n&amp;atilde;o encaixam, que uma div desce pra onde n&amp;atilde;o devia e que a performance com cache ainda n&amp;atilde;o est&amp;aacute; ideal. 
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; a vida. N&amp;atilde;o tem jeito. O melhor a fazer &amp;eacute; se planejar desde antes de assinar o contrato para acomodar esta p&amp;oacute;s-implanta&amp;ccedil;&amp;atilde;o. Planeje seus recursos. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VJjJO20OPzlAVivP9jX99P033Cs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VJjJO20OPzlAVivP9jX99P033Cs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VJjJO20OPzlAVivP9jX99P033Cs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VJjJO20OPzlAVivP9jX99P033Cs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/nimPmgAOWAs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/nimPmgAOWAs/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Um-projeto-nao-termina-quando-acaba.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=109c0281-ba45-4990-8669-223c2705ee9a</guid>
      <pubDate>Sun, 01 Mar 2009 13:27:00 -0700</pubDate>
      <category>Negócios e Empreendedorismo</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=109c0281-ba45-4990-8669-223c2705ee9a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=109c0281-ba45-4990-8669-223c2705ee9a</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Um-projeto-nao-termina-quando-acaba.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=109c0281-ba45-4990-8669-223c2705ee9a</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=109c0281-ba45-4990-8669-223c2705ee9a</feedburner:origLink></item>
    <item>
      <title>Utilize usuários diferentes para homologação e produção</title>
      <description>&lt;p&gt;
Certa&amp;nbsp;manh&amp;atilde; um usu&amp;aacute;rio&lt;sup&gt;1&lt;/sup&gt; precisava liberar espa&amp;ccedil;o em disco do servidor de homologa&amp;ccedil;&amp;atilde;o. 
&lt;/p&gt;
&lt;p&gt;
Como era praxe, conectou no servidor de homologa&amp;ccedil;&amp;atilde;o, acessou o SQL Server e... apagou o banco de dados de produ&amp;ccedil;&amp;atilde;o. Depois desconectou e, sem desconfiar do imenso #fail,&amp;nbsp;foi tomar caf&amp;eacute;. 
&lt;/p&gt;
&lt;p&gt;
Como assim? Explico: o usu&amp;aacute;rio e senha pra conectar no servidor de homologa&amp;ccedil;&amp;atilde;o era o mesmo usu&amp;aacute;rio e senha pra conectar no servidor de produ&amp;ccedil;&amp;atilde;o. Os neur&amp;ocirc;nios em estado dormente e a aus&amp;ecirc;ncia de caf&amp;eacute; no organismo o fizeram confundir o ip do servidor de produ&amp;ccedil;&amp;atilde;o 110.110.110.106 com o ip de homologa&amp;ccedil;&amp;atilde;o 110.110.110.109. 
&lt;/p&gt;
&lt;p&gt;
Uma vez que o usu&amp;aacute;rio e senha era o mesmo ele s&amp;oacute; foi perceber quando o cliente ligou perguntando &amp;quot;cad&amp;ecirc; meu sistema?&amp;quot;. ;) 
&lt;/p&gt;
&lt;p&gt;
Por isso, nunca, nunca, nunca, jamais mesmo, permita que seja utilizado o mesmo usu&amp;aacute;rio para acessar os ambientes de homologa&amp;ccedil;&amp;atilde;o e produ&amp;ccedil;&amp;atilde;o. 
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; isso. 
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;1&lt;/sup&gt; Foi um programador mas n&amp;atilde;o conte pra ningu&amp;eacute;m, ok? Isto pode horrorizar muitas pessoas mas h&amp;aacute; empresas em que&amp;nbsp;um programador cuida do design, banco de dados, infra-estrutura e, provavelmente, faz caf&amp;eacute;. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5088LVdy0XRgjONttdAN-9ibJrE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5088LVdy0XRgjONttdAN-9ibJrE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5088LVdy0XRgjONttdAN-9ibJrE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5088LVdy0XRgjONttdAN-9ibJrE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/GVsOz3xTWIc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/GVsOz3xTWIc/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Utilize-usuarios-diferentes-para-homologacao-e-producao.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=fe141c92-9484-427a-9658-5f6cf9c11c18</guid>
      <pubDate>Sun, 22 Feb 2009 12:37:00 -0700</pubDate>
      <category>Design e Boas Práticas</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=fe141c92-9484-427a-9658-5f6cf9c11c18</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=fe141c92-9484-427a-9658-5f6cf9c11c18</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Utilize-usuarios-diferentes-para-homologacao-e-producao.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=fe141c92-9484-427a-9658-5f6cf9c11c18</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=fe141c92-9484-427a-9658-5f6cf9c11c18</feedburner:origLink></item>
    <item>
      <title>Etiqueta básica sobre participar em fóruns on line</title>
      <description>&lt;p&gt;
F&amp;oacute;runs s&amp;atilde;o excelentes lugares para buscar por suporte e ajuda. Normalmente s&amp;atilde;o gratuitos e, claro, s&amp;atilde;o t&amp;atilde;o bons quanto a comunidade que os rodeia. 
&lt;/p&gt;
&lt;p&gt;
A grande maioria das pessoas, na minha opini&amp;atilde;o, chega a um f&amp;oacute;rum fazendo buscas (j&amp;aacute; falei sobre isto &lt;a href="http://blog.mutambal.com/post/A-arte-de-procurar-ajuda.aspx" title="A arte de procurar ajuda"&gt;aqui&lt;/a&gt;, d&amp;ecirc; uma olhada). Fica alguns minutos, l&amp;ecirc; alguns t&amp;oacute;picos e vai embora. Se der sorte, algu&amp;eacute;m j&amp;aacute; passou pelo problema, j&amp;aacute; pediu ajuda e j&amp;aacute; obteve uma resposta satisfat&amp;oacute;ria. &amp;Oacute;timo. 
&lt;/p&gt;
&lt;p&gt;
Contudo, pode ser necess&amp;aacute;rio abrir um novo t&amp;oacute;pico ou criar uma nova pergunta. Ser humilde o suficiente para explicitar que precisa de ajuda (ora, todo mundo precisa). Nesta hora, antes de mais nada, &amp;eacute; muito valioso seguir uma etiqueta b&amp;aacute;sica que melhorar&amp;aacute; suas chances de obter uma resposta: 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Escolha o local correto&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Uma quest&amp;atilde;o de ASP.NET deve ser inserida no f&amp;oacute;rum de... ASP.NET! Entenda, um f&amp;oacute;rum gira em torno de um assunto. Cada assunto &amp;eacute; dominado por um grupo de pessoas especialistas naquela tecnologia e/ou expertise. Fazer uma pergunta de uma tecnologia ou assunto diferente far&amp;aacute; com que as pessoas n&amp;atilde;o respondam. Portanto, antes de inserir sua pergunta, certifique-se de que ir&amp;aacute; faz&amp;ecirc;-lo no f&amp;oacute;rum adequado. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Seja espec&amp;iacute;fico&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Conte detalhes. Coloque um peda&amp;ccedil;o de c&amp;oacute;digo. Diga como reproduzir o problema. N&amp;atilde;o seja t&amp;iacute;mido. Escreva de forma simples, por&amp;eacute;m correta. N&amp;atilde;o fa&amp;ccedil;a perguntas subjetivas ou de pouco aspecto pr&amp;aacute;tico. Evite&amp;nbsp;o non-sense&amp;nbsp;(ex. &amp;quot;se um programa quebra na floresta e n&amp;atilde;o h&amp;aacute; ningu&amp;eacute;m monitorando...&amp;quot;). 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Seja gentil&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Ningu&amp;eacute;m &amp;eacute; obrigado a responder. Muito menos quando se escreve numa pergunta &amp;quot;Esta aqui &amp;eacute; para os feras/g&amp;ecirc;nios/gurus/ninjas/jedis/nome do especialista XYZ!&amp;quot;. Trate as pessoas com respeito. Todos querem ajudar, mas voc&amp;ecirc; tem que merecer ser ajudado. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Monitore as respostas e d&amp;ecirc; feedback&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Ao fazer uma pergunta voc&amp;ecirc; assume o compromisso de monitorar as respostas. Certamente algu&amp;eacute;m vai doar algum tempo da pr&amp;oacute;pria vida (&lt;em&gt;nossa, isso foi meio dram&amp;aacute;tico...&lt;/em&gt;) pra escrever sua resposta ent&amp;atilde;o o m&amp;iacute;nimo que se pode fazer &amp;eacute; dar algum feedback em retorno. Diga se funcionou, se n&amp;atilde;o funcionou, ou como acontece muitas vezes, informe mais alguns detalhes para quem est&amp;aacute; ajudando. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Encerre a quest&amp;atilde;o&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Algu&amp;eacute;m lhe deu uma resposta certeira para o problema? &amp;Oacute;timo, feche a quest&amp;atilde;o! N&amp;atilde;o, mas voc&amp;ecirc; mesmo encontrou a resposta? &amp;Oacute;timo, feche a quest&amp;atilde;o! A maioria dos sistemas de f&amp;oacute;runs possui mecanismos para que a pessoa que fez uma pergunta possa indicar qual resposta resolveu a quest&amp;atilde;o. &amp;Eacute; a forma de as pessoas no f&amp;oacute;rum saberem que o assunto est&amp;aacute; fechado e que todos est&amp;atilde;o felizes. Em f&amp;oacute;runs que permitem busca interna&amp;nbsp;&amp;eacute; comum exibir&amp;nbsp;os t&amp;oacute;picos dos f&amp;oacute;runs ordenados por ordem de &amp;quot;respondido/n&amp;atilde;o respondido&amp;quot;. Faz sentido as perguntas que supostamente possuem respostas OK aparecem antes das perguntas que ainda est&amp;atilde;o pendentes, correto?&amp;nbsp;J&amp;aacute; vi muitas perguntas nos f&amp;oacute;runs com a resposta certa para o problema, por&amp;eacute;m, com a quest&amp;atilde;o em um estado n&amp;atilde;o resolvido. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mas e se&amp;nbsp;voc&amp;ecirc; estiver do outro lado do &amp;quot;balc&amp;atilde;o&amp;quot;?&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
Quase tudo vale. Seja gentil, seja educado, monitore sua resposta, seja claro e espec&amp;iacute;fico no texto. Criticar a pergunta em si &amp;eacute; v&amp;aacute;lido? &amp;Eacute;, mas tem de ser feito com jeito. Responder com &amp;quot;Hey, vai no Google, baby!&amp;quot; tamb&amp;eacute;m n&amp;atilde;o ajuda de verdade. No m&amp;iacute;nimo, aponte uma dire&amp;ccedil;&amp;atilde;o ou passe um link que voc&amp;ecirc; entende que v&amp;aacute; ajudar. Ok? 
&lt;/p&gt;
&lt;p&gt;
Tem alguma dica extra? Manda ver nos coment&amp;aacute;rios! 
&lt;/p&gt;
&lt;p&gt;
&amp;Eacute; isso a&amp;iacute;. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UzBFzBE7wooCUSakoTj0bcSfA08/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UzBFzBE7wooCUSakoTj0bcSfA08/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UzBFzBE7wooCUSakoTj0bcSfA08/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UzBFzBE7wooCUSakoTj0bcSfA08/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/vjKqdi8jA8A" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/vjKqdi8jA8A/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Etiqueta-basica-sobre-participar-em-foruns-on-line.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=eea4341f-a270-4f08-b3d4-ca4e3e49e8ae</guid>
      <pubDate>Sun, 15 Feb 2009 19:25:00 -0700</pubDate>
      <category>Design e Boas Práticas</category>
      <category>Treinamento e Aprendizado</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=eea4341f-a270-4f08-b3d4-ca4e3e49e8ae</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=eea4341f-a270-4f08-b3d4-ca4e3e49e8ae</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Etiqueta-basica-sobre-participar-em-foruns-on-line.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=eea4341f-a270-4f08-b3d4-ca4e3e49e8ae</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=eea4341f-a270-4f08-b3d4-ca4e3e49e8ae</feedburner:origLink></item>
    <item>
      <title>Programação defensiva: assumindo atitude negativa para escrever código mais forte</title>
      <description>&lt;p&gt;
Essa &amp;eacute; bem simples, por&amp;eacute;m, exige uma certa experi&amp;ecirc;ncia para come&amp;ccedil;ar a utiliz&amp;aacute;-la. &amp;Eacute; mais f&amp;aacute;cil entender com um exemplo. Vejamos: 
&lt;/p&gt;
&lt;p&gt;
Num dado aplicativo, quando o usu&amp;aacute;rio precisa executar uma a&amp;ccedil;&amp;atilde;o administrativa, o aplicativo faz uma consulta a um m&amp;eacute;todo para verificar se o usu&amp;aacute;rio possui o perfil administrativo. Se possuir, o aplicativo permite ao usu&amp;aacute;rio execut&amp;aacute;-la, caso contr&amp;aacute;rio, &amp;eacute; &amp;oacute;bvio, n&amp;atilde;o permite. Entenda um m&amp;eacute;todo como o abaixo: 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font face="courier new,courier"&gt;private bool IsAdministrator(string userName) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; bool isAdministrator = true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Consulta ao banco,&amp;nbsp;checagem do perfil, etc&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return(isAdministrator);&lt;br /&gt;
}&lt;/font&gt;&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
Qual &amp;eacute; o problema com este m&amp;eacute;todo? A princ&amp;iacute;pio, nada. Se tudo ocorrer bem na consulta ao banco, em seguida &amp;agrave; valida&amp;ccedil;&amp;atilde;o do perfil, o m&amp;eacute;todo &amp;eacute; capaz de avaliar se o usu&amp;aacute;rio&amp;nbsp;possui ou n&amp;atilde;o o perfil administrativo. Mas... e se ocorrer um exce&amp;ccedil;&amp;atilde;o? Se a consulta ao banco falhar ou se a checagem n&amp;atilde;o puder ser feita?&amp;nbsp;A&amp;iacute; o m&amp;eacute;todo retorna &amp;quot;Sim, este usu&amp;aacute;rio &amp;eacute; administrador.&amp;quot;. 
&lt;/p&gt;
&lt;p&gt;
Isto acontece porque a vari&amp;aacute;vel isAdministrator &amp;eacute; setada (isso existe?) de maneira positiva. O m&amp;eacute;todo assume que o usu&amp;aacute;rio possui o perfil administrativo e a&amp;iacute; consulta o banco para provar o contr&amp;aacute;rio. Ocorrendo alguma exce&amp;ccedil;&amp;atilde;o, como o bloco catch esconde qualquer problema, o m&amp;eacute;todo retorna um resultado positivo. E coisas ruins acontecer&amp;atilde;o ao aplicativo... 
&lt;/p&gt;
&lt;p&gt;
Existe pelo menos duas maneiras r&amp;aacute;pidas de trabalhar com este tipo de situa&amp;ccedil;&amp;atilde;o, contudo, tudo depende muito mais de se fazer um esfor&amp;ccedil;o consciente para evitar este tipo de coisa. &lt;em&gt;Shit happens&lt;/em&gt; &lt;sup&gt;(c)&lt;/sup&gt; Forrest Gump. :) Mas voc&amp;ecirc; tem que estar preparado para antecip&amp;aacute;-la. Como? 
&lt;/p&gt;
&lt;p&gt;
Para todos as classes e m&amp;eacute;todos que voc&amp;ecirc; escrever, pense que coisas ruins v&amp;atilde;o acontecer a ele. O banco de dados vai ficar fora do ar por alguns segundos, o input do usu&amp;aacute;rio vai ser viciado, algu&amp;eacute;m vai (n&amp;atilde;o voc&amp;ecirc;, claro) esquecer de informar aquele par&amp;acirc;metro important&amp;iacute;ssimo no arquivo de configura&amp;ccedil;&amp;atilde;o ou sua classe/m&amp;eacute;todo vai ser burlada de alguma forma. Eu sei, n&amp;atilde;o &amp;eacute; um jeito Pollyanna de viver, mas vai salvar sua pele v&amp;aacute;rias vezes. &lt;u&gt;Assuma o resultado negativo primeiro, que causa&amp;nbsp;&lt;strong&gt;menor&lt;/strong&gt; impacto, e a&amp;iacute; tente prov&amp;aacute;-lo contr&amp;aacute;rio&lt;/u&gt;. 
&lt;/p&gt;
&lt;p&gt;
Voltando ao m&amp;eacute;todo acima, s&amp;oacute; pra fechar o exemplo, seria razo&amp;aacute;vel: 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	Assumir um valor negativo para a vari&amp;aacute;vel isAdministrator de sa&amp;iacute;da e da&amp;iacute; fazer as checagens no banco. 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	Ocorrendo uma exce&amp;ccedil;&amp;atilde;o, for&amp;ccedil;ar o valor da vari&amp;aacute;vel isAdministrator para falso. Ora, se ocorreu uma exce&amp;ccedil;&amp;atilde;o, melhor remediar, certo? 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Utilizando ambos os expedientes o m&amp;eacute;todo ficaria assim: 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;font face="Courier New"&gt;private bool IsAdministrator(string userName) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; bool isAdministrator = false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Consulta ao banco,&amp;nbsp;checagem do perfil, etc&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isAdministrator = false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return(isAdministrator);&lt;br /&gt;
}&lt;/font&gt;&lt;/em&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
E &amp;eacute; isso. C&amp;oacute;digo mais robusto no capricho. 
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YUXdxnf9a0-83G3kiasajRJFbpI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YUXdxnf9a0-83G3kiasajRJFbpI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YUXdxnf9a0-83G3kiasajRJFbpI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YUXdxnf9a0-83G3kiasajRJFbpI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/mutambal/blog/~4/W59Cu_N4vrY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/mutambal/blog/~3/W59Cu_N4vrY/post.aspx</link>
      <author>blog.nospam@nospam.mutambal.com (SrECosta)</author>
      <comments>http://blog.mutambal.com/post/Programacao-defensiva-assumindo-atitude-negativa-para-escrever-codigo-mais-forte.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.mutambal.com/post.aspx?id=35c48aba-0f9a-46fe-bb89-8d71fc785da6</guid>
      <pubDate>Sun, 08 Feb 2009 19:33:00 -0700</pubDate>
      <category>Desenvolvimento e Codificação</category>
      <category>Design e Boas Práticas</category>
      <dc:publisher>SrECosta</dc:publisher>
      <pingback:server>http://blog.mutambal.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.mutambal.com/post.aspx?id=35c48aba-0f9a-46fe-bb89-8d71fc785da6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.mutambal.com/trackback.axd?id=35c48aba-0f9a-46fe-bb89-8d71fc785da6</trackback:ping>
      <wfw:comment>http://blog.mutambal.com/post/Programacao-defensiva-assumindo-atitude-negativa-para-escrever-codigo-mais-forte.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.mutambal.com/syndication.axd?post=35c48aba-0f9a-46fe-bb89-8d71fc785da6</wfw:commentRss>
    <feedburner:origLink>http://blog.mutambal.com/post.aspx?id=35c48aba-0f9a-46fe-bb89-8d71fc785da6</feedburner:origLink></item>
  </channel>
</rss>
