<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pedro Filho</title>
	<atom:link href="http://www.pedrofilho.com.br/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pedrofilho.com.br/blog</link>
	<description>Blog do programador e tecnico em redes ....</description>
	<lastBuildDate>Mon, 11 Jan 2010 04:40:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>cast128 com php</title>
		<link>http://www.pedrofilho.com.br/blog/2010/01/11/cast128-com-php/</link>
		<comments>http://www.pedrofilho.com.br/blog/2010/01/11/cast128-com-php/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 04:39:55 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Criptografia]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pedrofilho.com.br/?p=69</guid>
		<description><![CDATA[abaixo mais um algoritimo com classe e exemplo para usar com o php, ele usa um dos meios de criptografias mais rápidos e eficientes que já testei:
< ?php require_once('cast128.class'); ? >
< ?php
$example = new cast128;
$teste = $example->encrypt(&#8220;Francisco Pedro da Costa Filho&#8221;,&#8221;suasenha&#8221;);
echo $teste;
echo &#8220;
&#8220;;
$testebb = $example->decrypt($teste,&#8221;suasenha&#8221;);
echo $testebb;
? >
em http://www.pedrofilho.com.br/arquivos/cast128.class vc pode baixa a classe do mesmo, [...]]]></description>
			<content:encoded><![CDATA[<p>abaixo mais um algoritimo com classe e exemplo para usar com o php, ele usa um dos meios de criptografias mais rápidos e eficientes que já testei:</p>
<p>< ?php require_once('cast128.class'); ? ><br />
< ?php</p>
<p>$example = new cast128;</p>
<p>$teste = $example->encrypt(&#8220;Francisco Pedro da Costa Filho&#8221;,&#8221;suasenha&#8221;);</p>
<p>echo $teste;</p>
<p>echo &#8220;</p>
<p>&#8220;;</p>
<p>$testebb = $example->decrypt($teste,&#8221;suasenha&#8221;);</p>
<p>echo $testebb;</p>
<p>? ></p>
<p>em <a href="http://www.pedrofilho.com.br/arquivos/cast128.class">http://www.pedrofilho.com.br/arquivos/cast128.class</a> vc pode baixa a classe do mesmo, vlw &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2010/01/11/cast128-com-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MD5SUM</title>
		<link>http://www.pedrofilho.com.br/blog/2009/12/14/md5sum/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/12/14/md5sum/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 02:03:14 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://www.pedrofilho.com.br/?p=59</guid>
		<description><![CDATA[Esse artigo é mais uma dica de como é importante chegar o MD5 dos arquivos que vc baixa na internet, primeiro para saber se não ocorreu algum erro durante a trnasferencia para seu computador ou se o arquivo é realmente o que foi disponibilizado para download.
No windows um excelente programa para chegar o MD5 de [...]]]></description>
			<content:encoded><![CDATA[<p>Esse artigo é mais uma dica de como é importante chegar o MD5 dos arquivos que vc baixa na internet, primeiro para saber se não ocorreu algum erro durante a trnasferencia para seu computador ou se o arquivo é realmente o que foi disponibilizado para download.</p>
<p>No windows um excelente programa para chegar o MD5 de arquivos é o md5summer disponivel para download no link abaixo:</p>
<p><a href="http://www.megaupload.com/?d=Y7SMNDGP" target="_blank">http://www.megaupload.com/?d=Y7SMNDGP</a></p>
<p><img src="http://img46.imageshack.us/img46/2232/md5summer.jpg" alt="md5summer" width="411" height="244" /></p>
<p>No linux existe o comando md5sum que é usado para chegar o md5 de um arquivo, é muito simples de usar, apenas digite no terminal md5sum + nome_do_arquivo que é exibido no terminal o md5 do arquivo, bom é isso espero ter ajudado &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/12/14/md5sum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HASH com senha &#8211; HMAC</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/14/hash-com-senha-hmac/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/14/hash-com-senha-hmac/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 00:59:40 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Criptografia]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://www.pedrofilho.com.br/?p=49</guid>
		<description><![CDATA[Em criptografia, HMAC (Hash-based Message Authentication Code), é uma construção específica para o cálculo de um código de autenticação de mensagem (MAC), envolvendo uma função hash de criptografia, em combinação com uma chave secreta. Como com qualquer Mac, pode ser utilizado simultaneamente para verificar tanto a integridade de dados ea autenticidade de uma mensagem. Qualquer função hash criptográfica iterativa, tal como MD5 ou SHA-1, pode ser usado no cálculo de um HMAC, o resultado é denominado algoritmo MAC HMAC-MD5 ou HMAC-SHA1 conformidade. A força criptográfica do HMAC depende da força de criptografia da função hash subjacente, do tamanho e da qualidade da peça e do tamanho do comprimento de saída hash em bits.]]></description>
			<content:encoded><![CDATA[<p>Dias atrais precisei criar um algoritmo para verificar se um form realmente esta vindo de uma pagina especifica, usando MD5 para isso como hoje existem alguns sites com dicionarios inteiros de hash que facilita a vida dos malas, pensei em concatenar a string com outra que seria secreta para ficar diferente.</p>
<p>Mais para minha surpresa pesquisei no site do php sobre as funções de hash nativas e encontrei um recurso bem interessante chamado <strong>HMAC </strong>( Hash-based Message Authentication Code ) que permite você adicionar um código de autenticação ao hash final.</p>
<p><strong>Como ele é bem simples, irei colocar abaixo um codigo em php e mais abaixo a saida do codigo:</strong></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">// varios  - md5, sha1, sha256, crc32 e ripemd160 com e senha senha e hmac</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo MD5&lt;/b&gt;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash(&#8216;md5&#8242;,&#8217;pedro&#8217;,&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash_hmac(&#8216;md5&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo SHA1&lt;/b&gt;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash(&#8217;sha1&#8242;,&#8217;pedro&#8217;,&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash_hmac(&#8217;sha1&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo SHA256&lt;/b&gt;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash(&#8217;sha256&#8242;,&#8217;pedro&#8217;,&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash_hmac(&#8217;sha256&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo crc32&lt;/b&gt;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash(&#8216;crc32&#8242;,&#8217;pedro&#8217;,&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash_hmac(&#8216;crc32&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo ripemd160&lt;/b&gt;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash(&#8216;ripemd160&#8242;,&#8217;pedro&#8217;,&#8221;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo hash_hmac(&#8216;ripemd160&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 50px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">echo &#8220;&lt;br&gt;&#8221;;</div>
<p>&lt;?php</p>
<p>// varios  - md5, sha1, crc32 e ripemd160 com e sem senha em hmac</p>
<p>echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo MD5&lt;/b&gt;&lt;br&gt;&#8221;;</p>
<p>echo hash(&#8216;md5&#8242;,&#8217;pedro&#8217;,&#8221;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo hash_hmac(&#8216;md5&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo SHA1&lt;/b&gt;&lt;br&gt;&#8221;;</p>
<p>echo hash(&#8217;sha1&#8242;,&#8217;pedro&#8217;,&#8221;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo hash_hmac(&#8217;sha1&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo crc32&lt;/b&gt;&lt;br&gt;&#8221;;</p>
<p>echo hash(&#8216;crc32&#8242;,&#8217;pedro&#8217;,&#8221;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo hash_hmac(&#8216;crc32&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo &#8220;&lt;br&gt;&lt;b&gt;Algoritmo ripemd160&lt;/b&gt;&lt;br&gt;&#8221;;</p>
<p>echo hash(&#8216;ripemd160&#8242;,&#8217;pedro&#8217;,&#8221;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<p>echo hash_hmac(&#8216;ripemd160&#8242;,&#8217;pedro&#8217;,&#8217;senha&#8217;);</p>
<p>echo &#8220;&lt;br&gt;&#8221;;</p>
<div>?&gt;</div>
<div>
<div><strong>saida do codigo acima:</p>
<p></strong></div>
<div>Algoritmo MD5</div>
<div></div>
<div>c6cc8094c2dc07b700ffcc36d64e2138</div>
<div>a1d018ffaf490f6a5b92742ef3ccd173</div>
<div>
<p>Algoritmo SHA1</p></div>
<div>4410d99cefe57ec2c2cdbd3f1d5cf862bb4fb6f8</div>
<div>5c82ffca9902349d22bf36ab133b40cbb2f2ea76</div>
<div>
<p>Algoritmo crc32</p></div>
<div>e86f00aa</div>
<div>0f6fd579</div>
<div>
<p>Algoritmo ripemd160</p></div>
<div>7755874530352e4d9fce481fbf92ac0e46581b16</div>
<div>a2a25fa6891b36bbd4761cf84ad01a7a0ceee458</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/14/hash-com-senha-hmac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VPN com Mikrotik</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/14/vpn-com-mikrotik/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/14/vpn-com-mikrotik/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 15:39:11 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[MikroTik]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=35</guid>
		<description><![CDATA[vpn com mikrotik entre matriz e filial ....]]></description>
			<content:encoded><![CDATA[<p>VPN com Mikrotik</p>
<p>Uma Rede Particular Virtual (Virtual Private Network &#8211; VPN)é uma rede de comunicações privada normalmente utilizada por umaempresa ou um conjunto de empresas e/ou instituições, construída emcima de uma rede de comunicações pública (como por exemplo, a Internet). O tráfego de dados é levado pela rede pública utilizando protocolos padrão, não necessariamente seguros.</p>
<p>Criação de VPN entre matriz e filial de uma empresa usando servidores Mikrotik nas duas pontas.</p>
<p>Levando em consideração a seguinte estrutura:</p>
<p>Matriz:</p>
<p>* Rede Local: 192.168.0.X/24<br />
* Ip local do Servidor: 192.168.0.1<br />
* Ip Internet do Servidor: 201.200.200.200</p>
<p>Filial:</p>
<p>* Rede Local: 192.168.10.X/24<br />
* Ip local do Servidor: 192.168.10.1<br />
* Ip Internet do Servidor: 189.50.1.200</p>
<p>VPN:</p>
<p>* Faixa IPs: 10.0.0.X/24</p>
<p>Configurações<br />
Partindo do ponto de que os dois servidores já estão devidamente configurados e navegando na Internet repassando a navegação para redeInterna e seus clientes via NAT, iremos configurar o Server VPN namatriz.</p>
<p>Antes de mais nada, devemos habilitar duas opções no menu Ip&gt; firewall &gt; Service Ports, clique com o botão direito eselecione enable em &#8220;GRE&#8221; e &#8220;PPTP&#8221;.</p>
<p>Abra o servidor Mikrotik pelo winbox, acesse o menu ppp. Naprimeira guia Interfaces clique na opção PPTP Server marque a opção enable.</p>
<p>Na segunda guia, &#8220;secrets&#8221;, crie um usuário para conectar ao Server pela VPN:</p>
<p>Usuário: teste<br />
Senha: teste<br />
Local address: 10.0.0.1<br />
Remote address: 10.0.0.2</p>
<p>Dessa forma seu servidor estará preparado para ouvir e autenticar requisições PPTP. Ainda falta configurar as rotas nesseservidor para que as máquinas internas possam ver a outra rede e vice-versa. Vá em Ip &gt; routes e crie as duas rotas abaixo:</p>
<p>Primeira Rota: 10.0.0.0/24 &gt; gateway 192.168.0.1<br />
Segunda Rota: 192.168.10.0/24&gt; Gateway 10.0.0.2</p>
<p>A rota 10.0.0.0/24 apontando para o gateway 192.168.0.1 indicaque a rede usada pela vpn será roteada pelo ip 192.168.0.1 que é daplaca interna do servidor e a rota 192.168.10.0/24 indica que a rede interna do servidor da filial será roteada pelo ip remoto que o servidor da filial receberá quando conectar.</p>
<p>Configuramos o servidor da matriz, agora vamos para o servidor da Filial:</p>
<p>Vá em PPP, na aba Interfaces crie o usuário para se conectar conforme abaixo:</p>
<p>Server: 201.200.200.200<br />
user: teste<br />
password: teste</p>
<p>Clique em ok e logo o usuário já se conectará ao outro servidor, dessa forma você já poderá testar do próprio servidor Mikrotik se está pingando para o IP de alguma maquina na rede internada matriz.</p>
<p>Para que suas máquinas na Filial com a faixa 192.168.10.X possam acessar as máquinas da matriz você terá que criar a mesma estrutura de rotas que foi criada para na matriz só que direcionandopra sua rede interna, abaixo:</p>
<p>Primeira Rota: 10.0.0.0/24 &gt; gateway 192.168.10.1<br />
Segunda Rota: 192.168.0.0/24&gt; Gateway 10.0.0.1</p>
<p>Bom pessoal, com isso estaremos com a vpn funcionando nos dois pontos caso queiram adicionar mais pontos é só seguir o mesmo raciocínio. Outra coisa, você pode também criar um usuário para acessarde qualquer máquina Windows diretamente em rede assistente para novas conexões e marcar a opção conectar-me a uma vpn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/14/vpn-com-mikrotik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Endereços IP&#8217;S com violação da RFC1918 e mascaras de rede incorretas</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/14/enderecos-ips-com-violacao-da-rfc1918-e-mascaras-de-rede-incorretas/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/14/enderecos-ips-com-violacao-da-rfc1918-e-mascaras-de-rede-incorretas/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 15:37:43 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=33</guid>
		<description><![CDATA[Configuraçõa correta de ip's e mascaras de rede ...]]></description>
			<content:encoded><![CDATA[<p>Vejo hoje muitos provedores utilizando faixas de ip que não são reservadas para redes internas, e isso é um erro pois a internet é constituida por endereços IP versão 4, quatro sequencias decimais de 0 a 255 são usadas para isso. Acontece que para haver comunicação numa rede cada computador deve possuir um endereço único, como o número de computadores é muito superior a de endereços válidos disponíveis, foram reservados faixas para uso privado livre, estes endereços, listados abaixo, não estão autorizados a trafegar na internet e para isso é necessário empregar NAT para que computadores com estes ips:</p>
<p>169.254.0.0/16<br />
192.168.0.0/16<br />
10.0.0.0/8<br />
172.16.0.0/16</p>
<p>Usar ips fora da faixa RFC1918 resulta nos seguintes problemas:<br />
- Se você colocar o ip 40.40.40.40 em um computador na rede local, este computadores estará usando um ip de algum servidor existente na internet, logo o site ou serviço que use este ip na internet não poderá ser acessado.<br />
- Softwares de servidores, roteadores, access points são projetados obedecendo as regras internacionais (RFC&#8217;s), infringí-las pode resultar em mal funcionamento envolvendo estes equipamentos.</p>
<p>Outra coisa que observo sempre é duvidas a respeito de mascaras de rede, e coloquei abaixo uma lista de quantos hosts cada rede pode ter com determinada mascara:</p>
<p>mascara &#8211; numero de hosts<br />
8/255.0.0.0 &#8211; 16.777.216<br />
16/255.255.0.0 &#8211; 65.536<br />
20/255.255.240.0 &#8211; 4096<br />
21/255.255.248.0 &#8211; 2048<br />
22/255.255.252.0 &#8211; 1028<br />
23/255.255.254.0 &#8211; 512<br />
24/255.255.255.0 &#8211; 256<br />
25/255.255.255.128 &#8211; 128<br />
26/255.255.255.192 &#8211; 64<br />
27/255.255.255.224 &#8211; 32<br />
28/255.255.255.240 &#8211; 16<br />
29/255.255.255.248 &#8211; 8<br />
30/255.255.255.252 &#8211; 4<br />
31/255.255.255.254 &#8211; 2<br />
32/255.255.255.255 &#8211; 1</p>
<p>Fica ai a dica &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/14/enderecos-ips-com-violacao-da-rfc1918-e-mascaras-de-rede-incorretas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Identificador Universal Original (UUID)</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-um-identificador-universal-original-uuid/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-um-identificador-universal-original-uuid/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:26:13 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=24</guid>
		<description><![CDATA[(UUID) é um padrão do identificador usado na construção do software, criado pela fundação de software aberto (OSF) como parte do Distributed Computing Environment (DCE).A intenção de UUIDs é permitir sistemas distribuídos de identificar excepcionalmente a informação sem coordenação central significativa.]]></description>
			<content:encoded><![CDATA[<p>Um identificador universal original (UUID) é um padrão do identificador usado na construção do software, criado pela fundação de software aberto (OSF) como parte do Distributed Computing Environment (DCE).</p>
<p>A intenção de UUIDs é permitir sistemas distribuídos de identificar excepcionalmente a informação sem coordenação central significativa.</p>
<p>Assim, qualquer um pode criar um UUID e usá-lo para identificar algo com confiança razoável que o identificador que esta sendo usado nunca irar se repetir mesmo involuntariamente por qualquer um para qualquer outra coisa. A informação etiquetada com UUIDs pode conseqüentemente mais tarde ser combinada em uma única base de dados sem precisar de resolver os conflitos conhecidos. O uso o mais difundido deste padrão está em identificadores originais de Microsoft global &#8211; (GUIDs). Outros usos significativos incluem o filesystem de ext2/ext3 do linux, as divisórias cifradas LUKS, o GNOME, os KDE, e o Mac OS X, que usam as execuções derivadas da biblioteca do uuid encontrada no pacote de e2fsprogs.<br />
Definição</p>
<p>Um UUID é (128-bit) um número 16-byte. O número de UUIDs teórica possível é conseqüentemente 216 o × 8 = 2128 = 25616 ou aproximadamente 3.4 o × 1038. Isto significa que 1 trilhão UUIDs teriam que ser criados cada nanossegundo por ligeiramente mais de 10 bilhão anos para esgotar o número de UUIDs.</p>
<p>Em seu formulário canônico, um UUID consiste em 32 dígitos hexadecimal indicado em 5 grupos separados por hífens, no formulário 8-4-4-4-12 para um total de 36 caráteres (32 dígitos e 4 “-”). Por exemplo:</p>
<p>550e8400-e29b-41d4-a716-446655440000</p>
<p>Um UUID pode igualmente ser usado com um identificador específico usado intencionalmente repetidamente para identificar a mesma coisa em contextos diferentes. Por exemplo, no modelo de objeto componente de Microsoft, cada componente deve executar a relação de IUnknown, que é feita criando um UUID que representa IUnknown. Em todos os casos onde quer que IUnknown seja usado, se está sendo usado por um processo que tenta alcançar a relação de IUnknown em um componente, ou por um componente que executa a relação de IUnknown, é provido sempre pelo mesmo identificador: 00000000-0000-0000-C000-000000000046.<br />
Versão 1 (MAC address)</p>
<p>Conceptual, (versão 1) o esquema original da geração para UUIDs era concatenar a versão de UUID com o MAC address do computador que está gerando o UUID, e com o número dos intervalos 100-nanosegundos desde a adoção do calendário gregoriano no oeste. Na prática, o algoritmo real é mais complicado. Este esquema foi criticado que não é suficientemente “opaco”; revela a identidade do computador que gerou o UUID e o tempo em que fêz assim.<br />
Versão 2 (segurança do DCE)</p>
<p>A versão 2 UUIDs é similar à versão 1 UUIDs, com o byte superior da seqüência do pulso de disparo substituída pelo identificador para “domínio local” (tipicamente de “domínio POSIX UID” ou de “domínio POSIX GID”) e os primeiros 4 bytes do timestamp substituído por POSIX UID ou GID do usuário (com “a indicação do identificador do domínio local”).<br />
Versão 3 (mistura MD5)</p>
<p>Uso de UUIDs da versão 3 um esquema que deriva um UUID através de MD5 de um URL, um Fully Qualified Domain Name, um identificador do objeto, um distinto nome (DN um pouco usado no Directory Access Protocol ), ou em nomes em namespaces nãos especificado. A versão 3 UUIDs tem o formulário xxxxxxxx-xxxx-3xxx-xxxx-xxxxxxxxxxxx com dígitos hexadecimais x.</p>
<p>Para determinar a versão 3 UUID de um nome dado o UUID do namespace, por exemplo 6ba7b810-9dad-11d1-80b4-00c04fd430c8 para um domínio, é transformado a uma corda dos bytes que correspondem a seus dígitos hexadecimais, concatenada com o nome da entrada, junto com o MD5 que rende 128 partes. Seis partes são substituídas pelos valores fixos, quatro destas indicam a versão, 0011 para a versão 3. A mistura fixa é transformada finalmente de novo no formulário hexadecimal com os hífens que separam as peças relevantes em outras versões de UUID.<br />
Versão 4 (aleatória)</p>
<p>Uso de UUIDs da versão 4 um esquema que confia somente em números aleatórios. Este algoritmo ajusta o número de versão assim como duas partes reservadas. Todo o restante são ajustados usando uma origem de dados aleatória ou pseudo-randonicos. A versão 4 UUIDs tem o formulário xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx com dígitos hexadecimais x e os dígitos hexadecimais 8, 9, o A, ou o B para Y, exemplo:</p>
<p>f47ac10b-58cc-4372-a567-0e02b2c3d479.<br />
Versão 5 (mistura SHA-1)</p>
<p>Uso de UUIDs da versão 5 um esquema com hashing SHA-1, se não é a mesma idéia que em RFC 4122 da versão 3. indica que a versão 5 está referida sobre a versão 3 UUIDs baseada em nome.<br />
Probabilidade aleatória de UUID duplicatas</p>
<p>UUIDs aleatória gerado como aqueles gerados pela classe de java.util.UUID tem 122 partes aleatórias. Há 128 partes completamente com as 4 partes que estão sendo usados para a versão (“UUID aleatória gerado”), e 2 partes para a variação (“Lixivie-Salz “). Com UUIDs aleatório, a possibilidade de dois que têm o mesmo valor pode ser calculada usando a teoria de probabilidade (paradoxo de aniversário).</p>
<p>68.719.476.736 = 236 / 0.0000000000000004 (4 × 10−16)</p>
<p>2.199.023.255.552 = 241 / 0.0000000000004 (4 × 10−13)</p>
<p>70.368.744.177.664 = 246 / 0.0000000004 (4 × 10−10)</p>
<p>Para por estes números na perspectiva, seu risco anual de batida por um meteorito é estimado para ser uma possibilidade em 17 bilhões, que significa que a probabilidade é aproximadamente 0.00000000006 (6 × 10−11), equivalente às probabilidades de criar alguns dez dos trilhões de UUIDs em um ano e de ter uma duplicata. Ou seja, somente depois a geração de 1 bilhão UUIDs a cada segundo pelos próximos 100 anos, a probabilidade de criar apenas uma duplicata seria aproximadamente 50%. A probabilidade de uma duplicata seria aproximadamente 50% assim cada pessoa na terra possui 600 milhões UUIDs.</p>
<p>Entretanto, estas probabilidades prendem somente para geradores criptograficamente seguros do número pseudo-randonicos. Estes devem ser usados para gerar os valores, se não a probabilidade das duplicatas pode ser significativamente mais elevada, desde que a dispersão estatística pode ser mais baixa.<br />
História</p>
<p>O projeto inicial de DCE UUIDs foi baseado em UUIDs como definido no sistema de computação de rede, cujo o projeto por sua vez foi inspirado pelos identificadores originais (64-bit) definido e usado pervasively em Domain/OS, o sistema de exploração projetado pela Apollo Computer Inc.</p>
<p><strong>abaixo codigo para gerar UUID em php:</strong></p>
<p>&lt;?</p>
<p>function uuid() {</p>
<p>return sprintf(’%04x%04x-%04x-%03×4-%04x-%04x%04x%04x’,<br />
mt_rand(0, 65535), mt_rand(0, 65535), // 32 bits for “time_low”<br />
mt_rand(0, 65535), // 16 bits for “time_mid”<br />
mt_rand(0, 4095),  // 12 bits before the 0100 of (version) 4 for “time_hi_and_version”<br />
bindec(substr_replace(sprintf(’%016b’, mt_rand(0, 65535)), ‘01′, 6, 2)),<br />
mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535) // 48 bits for “node”<br />
);<br />
}</p>
<p>echo uuid();</p>
<p>echo “&lt;br&gt;&lt;br&gt;”;</p>
<p>$token = uniqid(”&#8221;);<br />
echo $token;</p>
<p>?&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-um-identificador-universal-original-uuid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sobre o algoritmo TEA</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-algoritmo-tea/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-algoritmo-tea/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:23:08 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=22</guid>
		<description><![CDATA[O algoritmo TEA foi criado por David Wheeler e Roger Needham no laboratório de computação da Universidade de Cambridge, Inglaterra, em novembro de 1994. A idéia principal dos autores foi criar um algoritmo seguro que, ao mesmo tempo, fosse fácil de ser implementado nas mais diversas linguagens de programação]]></description>
			<content:encoded><![CDATA[<p>O algoritmo TEA foi criado por David Wheeler e Roger Needham no laboratório de computação da Universidade de Cambridge, Inglaterra, em novembro de 1994. A idéia principal dos autores foi criar um algoritmo seguro que, ao mesmo tempo, fosse fácil de ser implementado nas mais diversas linguagens de programação, pequeno e por isto facilmente guardado de memória pelos programadores, de execução rápida e que consumisse poucos recursos das máquinas. Parece que conseguiram&#8230; Também é importante frisar que este algoritmo não é patenteado (domínio público).</p>
<p>Este texto trata apenas da primeira versão do TEA, um algoritmo do tipo Feistel que faz uso de operações de vários grupos algébricos &#8211; XOR, ADD e SHIFT. Esta é uma forma muito engenhosa de obter as propriedades de difusão e confusão, os dois componentes essenciais da segurança da cifra, sem a necessidade de usar P-boxes (caixas de permutação para gerar difusão) ou S-boxes (caixas de substituição para gerar confusão).</p>
<p>O TEA cifra blocos de 64 bits de dados usando uma chave de 128 bits. Parece ser bastante resistente à criptoanálise diferencial e adquire uma difusão completa (quando a diferença de um bit no texto claro causa aproximadamente 32 bits de diferença no texto cifrado) após seis ciclos. Por ser muito curto e simples, a velocidade de processamento impressiona.</p>
<p>De acordo com os autores, este algoritmo pode substituir o DES com vantagens. Além disso, apesar de ter 32 ciclos (64 etapas Feistel) e apesar da velocidade de processamento não ser o principal objetivo, o TEA é três vezes mais rápido que o melhor software de implementação de DES com 16 etapas. Todos os modos de uso do DES também são aplicáveis ao TEA. O número de ciclos pode variar ou até fazer parte da chave. Os autores também sugerem que a segurança pode ser aumentada quando se aumenta o número de iterações.</p>
<p>De acordo com o Prof. Simon Shepher, da Universidade de Bradford, Inglaterra, a segurança do TEA é muito boa, salientando que, até o momento (fevereiro de 2006), não se obteve sucesso com nenhum tipo de criptoanálise. Acredita-se que o TEA seja tão seguro quanto o algoritmo IDEA, projetado por Massey e Xuenjia Lai. Usa a mesma técnica de grupos algébricos misturados, mas é muito mais simples e, por isto mesmo, muito mais rápido. Além disso é de domínio público, enquanto que o IDEA foi patenteado pela Ascom-Tech AG na Suíça. Parece que o professor é um fã de carteirinha do TEA. Louva seu tamanho diminuto, sua velocidade, sua segurança e ressalta que &#8220;também é um ótimo gerador de números randômicos que pode ser usado em simulações Monte Carlo e afins&#8221;.</p>
<p><strong>abaixo um exemplo do algaritmo em PHP:</strong></p>
<p>&lt;?</p>
<p>class crypto{</p>
<p>var $keyPhrase=&#8221;";<br />
var $input=&#8221;";<br />
var $output=&#8221;";</p>
<p>function encryption_keyer($txt,$encrypt_key){<br />
$ctr=0;<br />
$tmp = &#8220;&#8221;;<br />
$txt_len=strlen($txt);<br />
for ($i=0;$i&lt;$txt_len;$i++)<br />
{<br />
if ($ctr==strlen($encrypt_key)) $ctr=0;<br />
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);<br />
$ctr++;<br />
}<br />
return $tmp;<br />
}</p>
<p>function encrypt_string(){<br />
$txt = $this-&gt;input;<br />
$key = $this-&gt;keyPhrase;</p>
<p>srand((double)microtime()*1000000);<br />
$encrypt_key = md5(rand(0,32000));<br />
$ctr = 0;<br />
$tmp = &#8220;&#8221;;<br />
$txt_len = strlen($txt);<br />
for ($i=0;$i &lt; $txt_len;$i++)<br />
{<br />
if ($ctr==strlen($encrypt_key)) $ctr=0;<br />
$tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));<br />
$ctr++;<br />
}<br />
$hash= $this-&gt;encryption_keyer($tmp,$key);<br />
$hashLen = strlen($hash);<br />
$hexa = &#8220;&#8221;;<br />
for ($j=0;$j &lt; $hashLen;$j++){<br />
$tmpH =  base_convert((ord(substr($hash,$j,1))), 10, 16);<br />
$hexa .= strlen($tmpH)&lt;2?&#8221;0$tmpH&#8221;:&#8221;$tmpH&#8221;;<br />
}<br />
$this-&gt;output = $hexa;<br />
}</p>
<p>function decrypt_string(){<br />
$txt = $this-&gt;input;<br />
$key = $this-&gt;keyPhrase;</p>
<p>$hexaLen = strlen($txt);<br />
$hash = &#8220;&#8221;;<br />
for ($j=0;$j &lt; $hexaLen;$j++){</p>
<p>$tmpHex =  substr($txt,$j,2);<br />
$tempOrd = base_convert($tmpHex,16,10);<br />
$hash .=chr($tempOrd);<br />
$j++;<br />
}<br />
$hashd= $this-&gt;encryption_keyer($hash,$key);</p>
<p>$tmp = &#8220;&#8221;;<br />
$txt_len=strlen($hashd);<br />
for ($i=0;$i&lt;$txt_len;$i++)<br />
{<br />
$md5 = substr($hashd,$i,1);<br />
$i++;<br />
$tmp.= (substr($hashd,$i,1) ^ $md5);<br />
}<br />
$this-&gt;output = $tmp;<br />
}<br />
}</p>
<p>function cripto($action, $texto, $senha) {<br />
$dest = &#8221;;</p>
<p>if($action == &#8220;E&#8221;) {</p>
<p>$k =new crypto();<br />
$k-&gt;keyPhrase = $senha;<br />
$k-&gt;input = $texto;<br />
$k-&gt;encrypt_string();<br />
$dest = $k-&gt;output;<br />
}</p>
<p>if($action == &#8220;D&#8221;) {</p>
<p>$w =new crypto();<br />
$w-&gt;keyPhrase = $senha;<br />
$w-&gt;input = $texto;<br />
$w-&gt;decrypt_string();<br />
$dest = $w-&gt;output;</p>
<p>}</p>
<p>return $dest;<br />
}</p>
<p>$cript = cripto(&#8220;E&#8221;, &#8220;jesus salva&#8221;, &#8220;senha&#8221;);<br />
$decript = cripto(&#8220;D&#8221;, $cript, &#8220;senha&#8221;);</p>
<p>echo &#8220;Texto jesus salva com criptografia TEA com &lt;b&gt;senha&lt;/b&gt; como senha:&lt;br /&gt;&#8221;.$cript;<br />
echo &#8220;&lt;br /&gt;&#8221;.$decript;</p>
<p>?&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-algoritmo-tea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VRRP no MikroTik</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/vrrp-no-mikrotik/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/vrrp-no-mikrotik/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:18:23 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[MikroTik]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=19</guid>
		<description><![CDATA[A execução virtual do protocolo da redundância do router (VRRP). O protocolo de VRRP é usado para assegurar o acesso constante a alguns recursos. Dois ou mais routeres (consultados como routeres de VRRP neste contexto) criam o conjunto disponível da altamente - (igualmente consultado como routeres virtuais) com falha dinâmica sobre. Cada router pode participar em não mais de 255 routeres virtuais por a relação. Muitos routeres modernos suportam este protocolo. As instalações da rede com conjuntos de VRRP fornecem a disponibilidade elevada para routeres sem usar certificados. ]]></description>
			<content:encoded><![CDATA[<p>A execução virtual do protocolo da redundância do router (VRRP). O protocolo de VRRP é usado para assegurar o acesso constante a alguns recursos. Dois ou mais routeres (consultados como routeres de VRRP neste contexto) criam o conjunto disponível da altamente &#8211; (igualmente consultado como routeres virtuais) com falha dinâmica sobre. Cada router pode participar em não mais de 255 routeres virtuais por a relação. Muitos routeres modernos suportam este protocolo.As instalações da rede com conjuntos de VRRP fornecem a disponibilidade elevada para routeres sem usar certificados.</p>
<h3>Descrição</h3>
<p>O protocolo virtual da redundância do router é um protocolo da eleição que forneça a disponibilidade elevada para routeres. Um número de routeres podem participar em uns ou vários routeres virtuais. Uns ou vários IP address podem ser atribuídos a um router virtual. Um nó de um router virtual pode estar em um dos seguintes estados:</p>
<ul>
<li>Estado <strong>MASTER</strong>, quando o nó responder a todos os pedidos aos IP address do exemplo. Pode somente haver um nó MESTRE em um router virtual. Este nó emite pacotes da propaganda de VRRP a todos os routeres alternativos (que usam o endereço do multicast) cada ocasionalmente (ajuste na propriedade do <strong>intervalo</strong>).</li>
<li>Estado <strong>BACKUP</strong>, quando o router de VRRP monitorar a disponibilidade e o estado do router mestre. Não responde a nenhuma pedidos aos IP address do exemplo. Deve dominar tornado não disponível (se três pacotes seqüenciais de VRRP são perdidos pelo menos), o processo eleitoral acontece, e o mestre novo é proclamado baseou em sua prioridade. Para mais detalhes em routeres virtuais, veja RFC2338.</li>
</ul>
<h3>Obs:</h3>
<p>VRRP não trabalha atualmente em relações de VLAN, porque é impossível ter o MAC address de uma relação de VLAN diferente do MAC address da relação que física é colocar sobre.</p>
<h2>VRRP Routers</h2>
<p>Sub-menu em nível: <strong><em>vrrp de /ip</em></strong></p>
<h3>Descrição</h3>
<p>Um número de routeres de VRRP podem dar forma a um router virtual. O número máximo de conjuntos em uma rede é 255 cada que têm um VRID original (identificação virtual do router). Cada router que participa em um conjunto de VRRP deve tê-lo jogo de prioridade a um valor válido.</p>
<p><strong>authentication</strong> (nenhuma | simples | ah; defeito: <strong>nenhuns</strong>) &#8211; método de autenticação usar-se para pacotes da propaganda de VRRP<strong>none</strong> &#8211; nenhuma autenticação<br />
<strong>simple</strong> &#8211; autenticação do texto liso<br />
<strong>ah</strong> &#8211; encabeçamento da autenticação usando o algoritmo HMAC-MD5-96<br />
<strong>interface</strong> (<em>nome</em>) &#8211; nome que da relação o exemplo está funcionando sobre</p>
<p><strong>interval</strong> (<em>inteiro</em>: 1..255; defeito: <strong>1</strong>) &#8211; intervalo da actualização de VRRP nos segundos. Define como freqüentemente o mestre do conjunto dado emite pacotes da propaganda de VRRP</p>
<p><strong>name</strong> (<em>nome</em>) &#8211; nome atribuído do exemplo de VRRP</p>
<p><strong>on-backup</strong> (<em>nome</em>; defeito: <strong>&#8220;&#8221;</strong>) &#8211; script para executar quando o interruptor do nó ao estado alternativo</p>
<p><strong>on-master</strong> (<em>nome</em>; defeito: <strong>&#8220;&#8221;</strong>) &#8211; script para executar quando o interruptor do nó para dominar o estado</p>
<p><strong>password</strong> (<em>texto</em>; defeito: <strong>&#8220;&#8221;</strong>) &#8211; a senha exigida para a autenticação dependendo do método usado pode ser ignorada (se nenhuma autenticação usada), corda de texto longa de 8 caráteres (para a autenticação do plain-text) ou corda de texto longa de 16 caráteres (128-bit fecham exigido para AH a autenticação)</p>
<p><strong>preemption-mode</strong> (sim | não; defeito: <strong>sim</strong>) &#8211; se a modalidade do preemption está permitida<strong>No.</strong> &#8211; um nó alternativo não será elegido para ser um mestre até a falha mestra atual mesmo se o nó alternativo tem uma prioridade mais elevada do que o mestre atual<br />
<strong>Yes. </strong>- o nó mestre tem sempre a prioridade</p>
<p><strong>priority</strong> (<em>inteiro</em>: 1..255; defeito: ) &#8211; prioridade <strong>100 do</strong> nó atual (prioridade mais elevada do meio dos valores mais elevados) <strong>255</strong> &#8211; O RFC exige que o router que possui os IP address atribuídos a este exemplo teve a prioridade de 255</p>
<p><strong>vrid</strong> (<em>inteiro</em>: 0..255; defeito: <strong>1</strong>) &#8211; identificador virtual do router (deve ser original em uma relação)</p>
<p>nos proximos post&#8217;s continuo&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/vrrp-no-mikrotik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sobre o Blowfish</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-blowfish/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-blowfish/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:16:54 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=17</guid>
		<description><![CDATA[Na criptografia, Blowfish é uma cifra simetrica de blocos que pode ser usado em substituição ao DES ou IDEA. Ele toma uma chave de tamanho variável, de 32 a 448 bits, tornando-o ideal para aplicações tanto domésticas, quanto comerciais. O Blowfish foi desenvolvido em 1993 por BRUCE SCHNEIER como uma alternativa grátis mais rápida para os algorítmos criptográficos existentes. Desde então ele vem sendo analisado de forma considerável e está conquistando a aceitação do mercado como um algoritmo forte. O Blowfish não é patenteado, tem sua licença grátis e está a disposição para todos.]]></description>
			<content:encoded><![CDATA[<p>Muitos estudiosos em criptografia examinaram o Blowfish, entretanto,ainda são poucos os resultados publicados. Serge Vaudenay examinouchaves fracas no Blowfish: existe uma classe de chaves que podem serdetectadas &#8211; mas não &#8220;quebradas&#8221; &#8211; no Blowfish com variantes de 14iterações ou menos.</p>
<p>Qualquer pessoa pode obter uma cópia do codigo-fonte do Blowfish apartir da internet e fazer uso em suas aplicações. Não há regras de usodo código. Bruce Schneier pede, somente, que seja notificado deaplicações comerciais para que possam ser listadas em sua página naInternet.</p>
<p>No site oficial, pode se obter o codigo para C, C++, Perl, JAVA eoutras linguagens e na web em geral encontra-se para JavaScript, PHPentre outras tudo livre.</p>
<p><span style="font-size: large;"> </span></p>
<p><span style="font-size: large;">Descrição do Algoritmo</span></p>
<p>A criptografia é feita através de uma função com 16 iterações.Apesar do complexo algoritmo de inicialização, o Blowfish tem grandeeficiência com os microprocessadores atuais. A cifragem do texto éfeita em blocos de 64 ou 128 bits, nos quais os bits não são tratadosseparadamente, mas em grupos de 32 bits. A fim de aumentar suaeficiência, foi escolhido usar na confecção deste algoritmo funçõessimples para os microprocessadores, tais como XOR, adição emultiplicação modular. O algoritmo consiste de duas partes, sendo elasa expansão da chave e a criptografia dos dados. A primeira consiste natransformação da chave em subchaves, totalizando 4168 bits. A segundaconsiste de 16 fases, sendo que, em cada uma dessas, é feita umapermutação dependente da chave e uma substituição dependente da chave edos dados.</p>
<p><span style="font-size: medium;"> </span></p>
<p><span style="font-size: medium;">Criação das sub-chaves</span></p>
<p>A matriz P consiste de 18 subchaves de 32 bits, com seus elementosvariando de P1 ate P18. Utilizam-se também 4 s-boxes, cada umaconstituída de 256 elementos de 32 bits cada. Inicialmente, as S-boxessão preenchidas com os dígitos hexadecimais de PI, exceto o dígitoinicial 3. O bit mais significativo da fração de Pi se torna o maissignificativo da primeira subchave. Como exemplo:</p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">P1 = 0&#215;243f6a88</span></p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">P2 = 0&#215;85a308d3</span></p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">P3 = 0&#215;13198a2e</span></p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">P4 = 0&#215;03707344</span></p>
<p>Em seguida, faz-se um XOR entre os 32 primeiros bits da chave comP1, os próximos 32 bits da chave com P2, e assim por diante, até P14.Caso os bits da chave cheguem ao fim antes de P14, então se deverepeti-los até o fim da matriz.</p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">Ex: Chave de 64 bits.</span></p>
<p>Após isso, usando-se uma cadeia de caracteres de constituída apenaspor zeros, executa-se o algoritmo usando as sub-chaves já criadas. Oresultado desse processo deve ser armazenado em P1 e P2, e em seguidaservirá de entrada para o algoritmo novamente. Esse novo produto seráarmazenado em P3 e P4, e servirá mais uma vez de entrada, ate que sejampreenchidas todas as subchaves e S-boxes.</p>
<p>No total, serão feitas 512 iterações apenas para gerar assub-chaves. A fim de tornar a utilização do algoritmo mais simples, ésugerido que os aplicativos guardem essas sub-chaves geradas, ao invésde fazer esse complexo processo múltiplas vezes.</p>
<p><span style="font-size: medium;"> </span></p>
<p><span style="font-size: medium;">Cifragem</span></p>
<p>A entrada para essa parte do algoritmo são 64 bits, que serãodivididos em dois grupos de 32 bits, que serão chamados de xL e xR. Asoperações abaixo deverão ser feitas 16 vezes.</p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">xL = xL XOR Pi</span></p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">xR = F(xL) XOR xR</span></p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">Troca de xL com xR</span></p>
<p>Após a décima sexta iteração, é necessário trocar xL e xR mais umavez (troca de xL e xR). Em seguida, são feitas as seguintes operações:</p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">R = xR XOR P17;</span></p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">xL = xL XOR P18.</span></p>
<p>O texto cifrado será a união desses dois grupos (xLxR). A função F segue os seguintes passos:</p>
<p><span style="font-family: Symbol; font-size: x-small;">· </span><span style="font-family: Times New Roman; font-size: small;">1)Separar xL em quatro blocos de 8 bits. O primeiro bloco será usado comoentrada para achar uma entrada na primeira S-Box, o segundo na segunda,e assim sucessivamente. Em seguida são feitas duas adicões em módulo de232 e um Xor da seguinte forma:(S1 (B1) + S2(B2)) XOR (S3(B3) + S4(B4))</span></p>
<p>O processo de obtenção do texto original a partir do cifrado é feitoda mesma forma, porém utilizando a matriz P em ordem inversa.</p>
<p><span style="font-size: large;"> </span></p>
<p><span style="font-size: large;">Conclusão</span></p>
<p>Blowfish é uma das cifras mais rápidas em uso, exce(p)to ao mudarchaves. Cada chave nova requer o pre-processamento equivalente aencriptação de aproximadamente 4 kilobytes do texto, o que é muitolento se comparado a outras cifras. Isto impede seu uso em determinadasaplicações, mas não é um problema em outras. Em algumas aplicações érealmente um benefício: o método da troca de senha usado em OpenBSD usaum algoritmo derivado de Blowfish que emprega a programação de chavelenta; a idéia/ideia é que o esforço computacional extra requerido dá aprote(c)ção de encontro aos ataques de dicionário. Em algumasexecuções, Blowfish tem uma exigência relativamente grande da memória(acima de 4 kilobytes). Este não é um problema mesmo para computadoresmenores e mais velhos ou laptops, mas impede o uso em sistemas menorestais como smartcards.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-blowfish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criptografia com XTEA</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/criptografia-com-xtea/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/criptografia-com-xtea/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:09:16 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=12</guid>
		<description><![CDATA[Em criptografia, XTEA (eXtended TEA) é um bloco cifra projetada para corrigir deficiências no tea. A cifra de David Wheeler e Roger Needham da Cambridge Computer Laboratory, e um algoritmo que foi apresentado em um relatório técnico não publicado em 1997 (Needham e Wheeler, 1997). Não está sujeito a quaisquer patentes.]]></description>
			<content:encoded><![CDATA[<p>Em criptografia, XTEA (eXtended TEA) é um bloco cifra projetada para corrigir deficiências no tea. A cifra de David Wheeler e Roger Needham da Cambridge Computer Laboratory, e um algoritmo que foi apresentado em um relatório técnico não publicado em 1997 (Needham e Wheeler, 1997). Não está sujeito a quaisquer patentes.</p>
<p>Como TEA, XTEA é um bloco 64-bit Feistel rede com uma chave de 128 bits e um sugerido 64 rodadas. Várias diferenças são visíveis a partir de TEA, inclusive um pouco mais complexo chave-horário e um rearranjo dos turnos, XORs e aditamentos.</p>
<p>XTEA foi apresentado juntamente com um bloco de largura variável cifra denominado Bloco TEA, que utiliza a função XTEA rodadas, mas aplica-se ciclicamente em toda uma mensagem para várias iterações. Porque opera em toda a mensagem, Bloco TEA tenha a propriedade que não tem um modo de funcionamento. Um ataque a todo o Bloco TEA foi descrito em (Saarinen, 1998), que também detalha uma fraqueza no Bloco TEA do sucessor, XTEA.</p>
<p>Criado após hackers haverem quebrado o a segurança de um console de video game da microsoft que utilizava o TEA como algoritmo de criptografia, parece que foi um erro no bloco 32.</p>
<p>A partir de 2004, o melhor ataque é relatado sobre XTEA-chave relacionadas com um diferencial ataque a 26 dos 64 rounds de XTEA, exigindo 220,5 escolhido plaintexts e complexidade de um tempo 2.115,15 (Ko et al, 2004).</p>
<p>O extraordinariamente pequena dimensão do XTEA algoritmo tornaria uma opção viável em situações onde há extrema constrangimentos por exemplo sistemas legados hardware (talvez embutido), onde a quantidade de RAM disponível é mínimo.</p>
<p>e baixe uma classe bem legal em php para xtea <a href="http://www.pedrofilho.com.br/arquivos/xtea.class">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/criptografia-com-xtea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sobre o HTMLencode</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-htmlencode/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-htmlencode/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:07:04 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=10</guid>
		<description><![CDATA[Server.HTMLEncode é uma função que serve para codificar uma string em HTML. Vejam um exemplo prático:
Suponha que você tenha um site que permita o usuário cadastrar-se à vontade. Então, um engraçadinho resolve cadastrar o nome dele da seguinte maneira:
&#60;font color=&#8221;red&#8221; style=&#8221;font-size: 30pt&#8221;&#62;Adriano Nântua&#60;/font&#62;
Pronto. De agora em diante, toda vez que o nome dele for escrito [...]]]></description>
			<content:encoded><![CDATA[<p>Server.HTMLEncode é uma função que serve para codificar uma string em HTML. Vejam um exemplo prático:</p>
<p>Suponha que você tenha um site que permita o usuário cadastrar-se à vontade. Então, um engraçadinho resolve cadastrar o nome dele da seguinte maneira:</p>
<p>&lt;font color=&#8221;red&#8221; style=&#8221;font-size: 30pt&#8221;&gt;Adriano Nântua&lt;/font&gt;</p>
<p>Pronto. De agora em diante, toda vez que o nome dele for escrito no site estará vermelho e bem grande, diferente das outras pessoas (isso se o palhaço não resolver botar tamanho 800 e esculhambar de vez o seu site).</p>
<p>Para evitar isso, na hora de escrever o nome, ao invés de fazer o usual:</p>
<p>&lt;%= nome %&gt;</p>
<p>faça o funcional:</p>
<p>&lt;%= Server.HtmlEncode(nome) %&gt;</p>
<p>Desta maneira, nome do espertinho, será escrito da mesma maneira que ele informou, pois a função codifica a string em HTML, escrevendo &amp;lt; ao invés de &lt;.</p>
<p>Obviamente, a função não serve somente para se proteger de usuários humoristas. Em geral serve para que os caracteres cadastrados sejam escritos fielmente.<br />
Imagine que você vá jogar a string O filme &#8220;A Rocha&#8221; ganhou 20 prêmios no value de um input de texto. Só vai dar O Filme, pois o browser vai ler o &#8221; como fim do value, e o resto da string vai ficar fazendo sujeira na Tag. Um desmantelo.<br />
Basta usar, então, o Server.HTMLEncode para consertar as coisas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-htmlencode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL com PHP/ASP e AJAX</title>
		<link>http://www.pedrofilho.com.br/blog/2009/11/13/ola-mundo/</link>
		<comments>http://www.pedrofilho.com.br/blog/2009/11/13/ola-mundo/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 00:14:08 +0000</pubDate>
		<dc:creator>Pedro Filho</dc:creator>
				<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=1</guid>
		<description><![CDATA[aSSL uma biblioteca é distribuído sob licença MIT que implementa uma tecnologia semelhante à SSL sem HTTPS.aSSL permite ao cliente para negociar um segredo aleatória 128-bit tecla com o servidor utilizando o algoritmo RSA. Quando a ligação tiver sido estabelecida, os dados serão enviados e recebidos usando o algoritmo AES.]]></description>
			<content:encoded><![CDATA[<div id="result_box" dir="ltr">Hoje irei fala sobre uma das mais importantes bibliotecas que achei na net com linguagem asp e ajax.</div>
<div dir="ltr">aSSL uma biblioteca é distribuído sob licença MIT que implementa uma tecnologia semelhante à SSL sem HTTPS.</p>
<p>aSSL permite ao cliente para negociar um segredo aleatória 128-bit tecla com o servidor utilizando o algoritmo RSA. Quando a ligação tiver sido estabelecida, os dados serão enviados e recebidos usando o algoritmo AES.</p>
<p>aSSL é composto por alguns arquivos Javascript e um componente lado do servidor. esta sendo mudada recentemente a negociação de algoritmo RSA RC4 para somente um puro Javascript (ASP) servidor componente está disponível no momento. e esta sendo um porte para as principais línguagens da web (PHP, Java, Perl, Python, TKL, etc) logo que possível, uma vez que a biblioteca já passou da fase beta.</p>
<p>Como funciona aSSL 1.2</p>
<p>1. O navegador solicita ao servidor para iniciar o processo.</p>
<p>2. O servidor retorna a sua RSA modulus e o público expoente.</p>
<p>3. O browser gera uma troca aleatória 128-bit chave, e o criptografa usando a chave pública do servidor e passa o intercâmbio chave criptografada para o servidor.</p>
<p>4. O servidor recebe esta encriptado 128-bit chave, descodifica-la com sua chave privada e, caso o resultado é ok, retorna a sessão duração tempo.</p>
<p>5. O navegador recebe a sessão duração tempo, e define um tempo limite para manter viva a ligação.</p>
<p>Notas. Todas as subsequentes cliente-servidor por meio de intercâmbios aSSL estão codificados e descodificada utilizando algoritmo AES. aSSL permite múltiplas conexões seguras a ser estabelecido com um ou mais servidores, sendo ideal para uso em sites de comercio eletronico sem ser preciso comprar um certificado de alguma empresa de certificação que podem custa muito caro.</p></div>
<div dir="ltr">Tambem podem ser usadas chaves 1024-bits, o que torna o sistema ainda mais seguro do que com o uso de certificados digitas que usam chaves 512-bits</div>
<div dir="ltr">mais informações em <a href="http://assl.sullof.com/assl/">http://assl.sullof.com/assl/</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pedrofilho.com.br/blog/2009/11/13/ola-mundo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
