kryptwit 0.1
Bom dia. Tenho, com alguma tristeza, assistido ao flagelo que o Twitter se tornou nos últimos tempos. Esta actividade inútil, 'twitar', fomentou a minha última criação: o kryptwit. A prova viva que inutilidade gera inutilidade.
Esta biblioteca tem como função cifrar updates do twitter, por forma a poderem apenas ser lidos pelos possuidores de uma password adequada. O RFC que proponho é o seguinte:
Mensagens de entrada - Não podem ultrapassar os 100 bytes (isto inclui caracteres unicode que podem ocupar mais de 1 byte) de tamanho.
Mensagem de saída - Tem exactamente 139 caracteres ASCII de tamanho. Tem como prefixo ";-) ". Os seguintes 10 caracteres (em Base 85) correspondem ao IV utilizado. Os restantes caracteres, também em Base85, correspodem à mensagem propriamente dita.
Algoritmo para cifração - AES no modo CTR (RFC3686), chave de 256 bits.
Derivação de chave - Password de tamanho arbitrário (até 2^32 bytes), 'salt' consiste no nome do utilizador que envia a mensagem. O algoritmo utilizado é o PBKDF2, 1000 iterações, SHA-256.
O IV tem apenas 64 bits. Esta escolha foi feita para contrabalançar a probabilidade de colisões (2^(n/2)) com o tamanho roubado à mensagem. 64 bits dá-nos um bom balanço entre 10 chars e 2^32 mensagens por colisão, em média.
A implementação foi feita em C, recorrendo às implementações excelentes do Brian Gladman do AES, SHA-2 e companhia. O resultado é algo pouco retocado, mas parece funcionar.
A aplicação de exemplo, sample.c, pode ser utilizada para cifrar e/ou decifrar mensagens. A utilização é simples:
sample e/d username password mensagem
Apresento agora um exemplo de funcionamento:
C:\kryptwit>sample.exe e dongs morte "ola sirs" ;-) lyqf(mXkLw&xU[53F8fP#Owitr}o6VVMAsf[C,h$POG=(M{u9sDT9t68Tfgj{RM}k6sGG.[n#V4i(jbdmp-FLxr#ENS`+Djv (zV+t*imiCz=Aj]H39iRKcImO&DcSsmqZu-.f#F C:\kryptwit>sample.exe d dongs morte ";-) lyqf(mXkLw&xU[53F8fP#Owitr}o6VVMAsf[C,h$POG=(M{ u9sDT9t68Tfgj{RM}k6sGG.[n#V4i(jbdmp-FLxr#ENS`+Djv(zV+t*imiCz=Aj]H39iRKcImO&DcSsmqZu-.f#F" ola sirs
Divirtam-se!
EDIT: Disponibilizei uma nova versão (no mesmo link), com 1 bugfix menor e um Makefile e binario para Unix (amd64).
ui que tesão!!!!
amanha (alias hoje), vou ver se consigo implementar isto em algum cliente basico !!! so pelo lulz, e com autodetect do ;-) no inicio
Já está a nova trend iniciada! quem não kryptwita não mama! e daqui a dias não se pode fazer ;-) no twitter!!!
tesoa, mas tenho uma reputaçao a manter (LOL), nao vou twitar mt com isto!
se eu fosse vivo, usava isso
/comments