Resumo rápido

Presentes: beefbroth, CCD, ChZEROHag, co, dcat, dm, godmode0, jrand0m, mihi, mihi_backup, mrflibble, Myself248, myself248, nop, pitu, Ryan_Singer, shardy, thecrypto, UserX, yodel

Registro da reunião

[22:56] ok ok [22:56] agenda [22:56] 0.0) boas-vindas [22:56] 1.0) status do desenvolvimento [22:56] 1.1) router [22:56] *** Myself248 (~ident@anon.iip) entrou no canal #iip-dev [22:56] 1.2) pré-cálculo de DH [22:56] 2.0) microrroteiro [22:56] 3.0) aplicativos / uso [22:56] 4.0) ns [22:56] 5.0) IM [22:56] 6.0) administravia (cvs, bugzilla, cvs list, cvs web) [22:56] 7.0) perguntas [22:57] (sim, 7 pontos hoje. w00t) [22:57] 0.0) boas-vindas [22:57] oi. [22:57] oi [22:57] 17 usuários hoje. legal [22:57] *** Ryan_Singer (chatzilla@anon.iip) entrou no canal #iip-dev [22:57] e subindo [22:57] ok [22:57] 1~oi [22:57] 1.1) status do desenvolvimento para o router [22:58] o router de implementação de referência em Java está indo muito bem [22:58] *** ChZEROHag (hag@anon.iip) entrou no canal #iip-dev [22:58] agora podemos executar aplicativos em routers diferentes e enviar mensagens uns aos outros [22:59] Desculpa interromper, mas espero que seja só uma vez [22:59] adotando uma abordagem iterativa e incremental, o estado atual é seguro, não anônimo, não escalável e suscetível a coleta [22:59] Alguém mais está trabalhando numa API em C? [22:59] 'lo ChZEROHag, o que manda? [22:59] Porque eu estou, mas bem devagar [22:59] *** dcat (dirtycat@anon.iip) entrou no canal #iip-dev [22:59] ah, legal [22:59] shardy vai trabalhar em uma depois que a toorcon terminar [22:59] talvez vocês dois possam trabalhar juntos nisso? [23:00] jrand0m: Você pode inserir manualmente um destination para enviar mensagens? [23:00] Melhor dizendo, existe uma representação ASCII de um destination? [23:00] sim, co, para ambas [23:00] Excelente. [23:00] os destinations, e todas as estruturas do I2P, são carregáveis e serializáveis em base 64 (com um alfabeto alternativo) [23:01] então não será fácil de lembrar, mas será ASCII? [23:01] (por exemplo, no netDb de um dos meus routers, eu tenho leaseSet-enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8.dat que contém o lease set do destination enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8) [23:02] [embora isso seja H(destination).toBase64() [23:03] ChZEROHag> se houver algo que possamos fazer para te ajudar com isso, é só falar [23:03] ok, isso foi 1.1. 1.2) pré-cálculo de DH [23:03] Você poderia fazer isso por mim? :-) [23:04] ontem à noite escrevi uma otimização de pré-cálculo para trocas DH para economizar ~1s de negociações de sessão que levam 1,5s. Eu adoraria que alguém que entende de cripto garantisse que eu não estou maluco ;) [23:04] lol ChZEROHag [23:04] aah, lembrei do que eu precisava [23:04] Uma implementação de netdb [23:04] está no cvs? [23:04] o dh [23:04] sim, thecrypto [23:05] C:\dev\i2p\code\core\java\src\net\invisiblenet\i2p\crypto\DHSessionKeyBuilder.java [23:05] Bem, vou ficar acordado por umas boas 3/4 horas ainda, talvez isso me dê algo para fazer [23:05] er, s/C:\\dev/g; s/\\/\//g [23:05] *** wax_off (~nomail@anon.iip) entrou no canal #iip-dev [23:06] certo. para que você precisa de uma impl de netdb? [23:06] Não lembro [23:06] atualmente temos um netdb não escalável no cvs [23:06] heh [23:06] Não mexo nisso há pelo menos uma semana [23:06] você está trabalhando numa API em C para I2CP, certo? não I2NP? [23:07] Eu ia simplesmente fazer tudo [23:07] *** wax_off saiu de #iip-dev [23:07] I2NP é muito, muito, muito mais trabalho do que I2CP [23:07] Assim que eu realmente começar direito, vai sair [23:07] mas se você implementar um I2NP em C seria fantástico [23:07] já existe um I2NP em alguma coisa agora? [23:07] (I2CP:I2NP::FCP:FNP) [23:07] sim, dm [23:08] * ChZEROHag restaura o emacs [23:08] a impl em Java na qual estou trabalhando tem o I2NP funcionando [23:08] beleza... [23:08] jrand0m: url? Eu precisava de uma referência, mesmo que seja numa linguagem horrível. [23:08] heh [23:08] erm, na verdade isso é 6.0 administravia: vulgo onde diabos está nosso acesso cvs anônimo ;) [23:09] estou pegando o material de DH [23:09] legal [23:09] Ah, certo [23:09] jrand0m, voltando à pauta, o microrroteiro? [23:09] * thecrypto esconde o rosto [23:09] bem, vou esperar :) [23:09] heh 'k [23:09] microrroteiro [23:09] tenho de 0.1 até 0.5 delineado [23:09] seguiu o roadmap do freenet então? [23:10] *** mrflibble (mrflibble@anon.iip) entrou no canal #iip-dev [23:10] 0.1) funcional, seguro, não anônimo, não escalável, suscetível a coleta [23:10] o desenvolvimento desacelera e congela durante a 0.5... [23:10] estamos agora em 0.1. [23:10] heh, notei isso, dm, o flinks também sumiu na 0.5.2 ;) [23:10] Como você está chamando o pacote todo? [23:10] (coincidência estranha) [23:10] isto é, versão 0.1 de quê? [23:10] o pacote todo? implementação de referência do router do i2p [23:10] co: Wonga [23:10] * beefbroth entra na reunião [23:11] buenos noches beefbroth [23:11] Certo. Isso explica. [23:11] Na verdade talvez eu chame assim. Com certeza soa mais interessante do que 'i2pd' [23:11] 0.1 tem bugs. isso é certo. e não tem otimizações dignas de nota (embora o pré-cálculo de DH ajude). [23:11] heh [23:11] jrand0m, então o que é 0.2)? [23:11] departamento de polícia da internet invisível [23:11] ok, 0.2 [23:12] 0.2 é funcional, seguro, anônimo, não escalável, suscetível a coleta [23:12] 0.2 adiciona suporte para tunnels de comprimento não-zero [23:12] na verdade implementei a maior parte disso na noite passada, mas não testei completamente [23:12] acho que 0.2 estará pronto até o fim da semana [23:12] quão longe estamos disso do ponto de vista de desenvolvimento? [23:13] ótimo [23:13] 0.3) é funcional, seguro, anônimo, escalável, suscetível a coleta [23:13] * thecrypto pega o bochs para poder simular uma rede e ajudar com isso [23:13] 0.3 adiciona um kademliaDatabaseManager [23:13] agora usamos um BroadcastDatabaseManager [23:13] (vulgo gnunet ;) [23:14] trivial de implementar e funcional para redes pequenas, mas precisamos do kademlia para escalar [23:14] 0.4) é funcional, seguro, anônimo, escalável, não suscetível a coleta [23:14] isso adiciona links confiáveis [23:14] jrand0m, e quão desafiador é implementar kademlia? [23:14] tenho duas ideias para links confiáveis... uma é mais fácil de implementar e usar [23:15] kademlia provavelmente levará uma semana inteira [23:15] (para acertar) [23:15] note que tudo isso tem muito espaço para refatoração e ajuste. Meu objetivo é primeiro ficar funcional, depois afinamos. [23:16] Você tem certeza de que vai conseguir desenvolver e testar tão rápido? [23:16] Não tenho certeza de nada [23:16] é apenas minha estimativa [23:16] co, ele deixa funcional, nós testamos [23:16] Tem certeza? [23:16] (desculpa) [23:16] Ryan_Singer: Entendi. [23:17] * jrand0m <3 pessoas que testam :) [23:17] Quando você diz "nós" testamos. Há espaço para não-programadores ajudarem nos testes? [23:17] Myself248> provavelmente não até a 0.4 [23:17] vamos só torcer para nunca chegar ao ponto em que fica funcional, mas ninguém sabe que diabos está acontecendo dentro da rede para fazê-la funcionar bem (ex.: freenet) [23:18] quando 0.4 estiver pronta, isso é pré-alfa. quando for 0.4 vou ajustar e refatorar e preencher as lacunas para preparar a 0.5 (alfa) [23:18] Documentar, documentar, documentar. [23:18] há algum pensamento em monitoramento ativo dos internos da rede, ou é simples? [23:18] sim, dm, com certeza [23:18] uma das peças-chave do i2np é a inclusão de estatísticas nas estruturas routerInfo publicadas [23:18] jrand0m: faça um s/0./0.0./ ;) [23:18] as revisões iniciais vão publicar estatísticas reais para podermos ajustar [23:19] revisões posteriores ou não publicarão estatísticas ou publicarão falsas [23:19] * jrand0m não faz 0.0 [23:19] ok, estou aqui [23:19] bem-vindo de volta, shardy [23:19] desculpa o atraso, esqueci que esta janela estava aberta, heh [23:19] legal. [23:19] existe um documento de nível mais alto descrevendo a arquitetura para a rede sob .4? [23:19] cortem-lhe a cabeça [23:20] Ryan_Singer> hmm, eu tinha alguns docs de visão geral há alguns meses que o mids e o nop espelharam, e tem o doc de visão geral do i2p [23:20] 0.4 é i2np completo como descrito na spec, só não implementado de forma otimizada [23:20] ah, e jrand0m, vou revisar a otimização de DH para você [23:20] valeu, gracias [23:20] posso conseguir esses docs? [23:21] a visão geral está em (Link: http://www.invisiblenet.net/i2p/i2p_philosophy.pdf)http://www.invisiblenet.net/i2p/i2p_philosophy.pdf [23:21] estão no wiki, acho? [23:21] os docs antigos de overview... hmm [23:21] (as especificações do i2p estão em (Link: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs) [23:21] Estão em (Link: www.invisiblenet.net/i2p/.)www.invisiblenet.net/i2p/. [23:21] isso aí, beefbroth [23:22] embora haja docs antigos em formato html com figuras feias do ms paint de antes mostrando como os tunnels funcionam... [23:22] Eu devia saber, já os li bastante [23:22] hehe [23:22] A menos que sejam versões mais antigas ou mirrors. [23:22] aqueles arquivos no wiki são 0.9 (0.9.1 saiu para o I2NP e as estruturas de dados, mas incluem apenas mudanças menores) [23:23] jrand0m: o pré-cálculo parece bom [23:23] legal [23:24] *** pitu (~pitu@anon.iip) entrou no canal #iip-dev [23:24] * jrand0m executa o router com java -Dcrypto.dh.precalc.min=3 -Dcrypto.dh.precalc.max=10 -Dcrypto.dh.precalc.delay=5000 -jar C:\dev\i2p\code\router\java\src\router.jar [23:25] ok, esse é o microrroteiro [23:25] como podem ver, estou aceitando que a alpha não ficará pronta até o fim do mês. 0.4 provavelmente será na primeira semana de outubro [23:26] tudo bem, mesmo assim seria a implementação mais rápida de uma rede desse tipo ;) [23:26] lol [23:26] ao lerem as estimativas de tempo do jrand0m aqui, lembrem que ele está bebendo uísque nas últimas 4 horas :-P [23:26] heh [23:26] ok...aplicativos/uso? [23:26] uísque bom, diga-se ;) [23:26] ok, aplicativos/uso [23:27] 0.7 em 4 segundos....3...2...1..!! [23:27] estou mirando nos frutos baixos aqui - são coisas que podemos fazer com zero ou mínimo código novo. [23:27] Como é que se supõe que se programe direito estando totalmente sóbrio? [23:27] todos esses fazem uso significativo do i2ptunnel excelente do mihi [23:27] ChZEROHag: Facilmente. [23:27] *** mihi mudou o tópico no canal #iip-dev para 0.7 em 4 segundos....3...2...1..!! [23:28] usando o i2ptunnel, podemos fazer o seguinte sem escrever nenhum código novo: [23:28] proxy ww público (usando i2ptunnel + squid) [23:28] * dm tira o chapéu para mihi. [23:28] JAP (usando i2ptunnel + JAP) [23:28] você não pode chutar bundas através do i2p (nem através de um tunnel...) [23:28] navegar www anonimamente (i2ptunnel + navegador web) [23:28] rodar um servidor web i2p (i2ptunnel + httpd) [23:29] Muito bom. Bravo, mihi. [23:29] cvs outproxy (i2ptunnel) [por exemplo, cvs outproxy para a sourceforge para dev anônimo do freenet] [23:29] cliente cvs, servidor cvs [23:29] app de IM, servidor pop3, servidor imap, opennap [23:29] esses são realmente frutos bem baixos [23:29] ok, agora tudo que precisamos é do i2p :) [23:30] certo ;) [23:30] um webserver no i2p não meio que substituiria o freenet? :) [23:30] * jrand0m acha que isso se qualifica como uma FAQ que eu deveria responder [23:30] jrand0m, mas eles também são muito valiosos [23:30] Dessa lista, eu consideraria cvs mais importante/útil [23:30] Em parte porque eu quero permanecer anônimo, mas também porque se fornecer www anônimo você vai atrair lusers [23:30] i2p + web não substitui o freenet - o freenet adiciona valor significativo por cima de um framework de comunicação anônima - distribuição de conteúdo [23:31] E no momento a ideia de e-mail anônimo assusta :) [23:31] * dm anota: "sem lusers" [23:31] cvs definitivamente está no top 3 [23:31] acho que se o webserving no i2p funciona bem, você tem que considerar mesclar as partes de DHT/armazenamento do freenet por cima do i2p e então terá o melhor dos dois mundos. [23:31] ChZEROHag, se for escalável isso é bom [23:31] dm: lusers só são um problema nas fases iniciais, mas eles tendem a não usar cvs [23:31] ok, adicionar bastante hashcash a qualquer coisa de e-mail anônimo. [23:31] Ou, aliás, nem saber o que é (ou que existe) [23:31] Acho que um dos testes que precisa ser feito é um ataque de teste na rede. [23:31] sim, beefbroth, uma vez que o i2p faça o que queremos, o freenet provavelmente vai se ajustar para fazer uso dele [23:32] Desculpe se isso é off-topic. [23:32] Myself248: é só adicionar um redirecionador para um remailer anônimo. [23:32] não, isso com certeza é on-topic, co - atacar esta rede é fundamental [23:32] Myself248: hashcash é principalmente para parar flooding enquanto somos forçados a usar o protocolo antigo que é o 'irc' [23:32] Não para parar o que poderia ser chamado de 'abuso' [23:32] certo, embora talvez rodar mixminion sobre i2p fosse útil [23:33] certo, hashcash está até embutido no i2p para evitar que mensagens sejam entregues em um único salto a menos que 'paguem' [23:33] jrand0m, poderíamos rodar imap sobre isso facilmente? [23:33] absolutamente [23:33] impressionante [23:33] imapd com um i2ptunnel apontando para ele, com um i2ptunnel no cliente apontando para o destination desse tunnel [23:34] e motores de busca do freenet :) [23:34] ftp ou vários mensageiros instantâneos não-jabber vão dar problemas... [23:34] certo, coisas que exigem duas conexões são mais complexas [23:34] jrand0m: hashcash no i2p? [23:34] Vou te importunar sobre isso quando isso acabar. [23:34] hashcash no i2p? legal. [23:34] estamos nos adiantando! ah tá, quem liga.. QUAKE + IIP!!!!!! [23:34] desculpa, I2p :) [23:34] lol dm [23:35] Nós que temos CPUs fracas ficamos nervosos quando alguém diz hashcash, mas como medida anti-spam eu entendo. [23:35] dm: Isso é realmente se adiantar demais. [23:35] * mihi é jabber:schierlm@a-message.de ;) [23:35] sim, ChZEROHag - Destination == public signing key (DSA) + public encryption key (ElGamal) + certificate (either null or hashcash(keys)) [23:35] o i2p tunnel é estático ou dinâmico no lado do cliente? [23:35] beefbroth: no momento é tudo estático. mas você poderia usar um proxy socks como dest. ;) [23:35] Myself248> Estou recebendo um sun ultra1 animal pelo correio em algumas semanas. se uma máquina de 160 MHz consegue, qualquer um consegue [23:35] bem. hashcash não deveria ser algo terrível nem para CPUs pequenas. só se você quiser fazer algo um zilhão de vezes vai notar. [23:36] beefbroth: pode ser dinâmico. [23:36] as aplicações potenciais dos 'frutos baixos' aqui são muito impressionantes [23:36] certo, mihi [23:36] “eleventy”. heh [23:36] os frutos baixos são essencialmente apps 'normais' da internet, mas de forma anônima [23:36] certo? [23:36] certo [23:36] sim [23:36] (quake) [23:37] 0.1 os executa com segurança, 0.2 os executa anonimamente, 0.3 os executa de forma escalável, 0.4 os executa de forma não suscetível a coleta [23:37] (estamos @ 0.1 agora) [23:37] o que você quer dizer com não suscetível a coleta? [23:37] Desculpe, o que é 'suscetível a coleta' mesmo? [23:37] dm: Infelizmente fomos atrasados o suficiente para que, depois de mais de 30 anos, tempo real ainda não seja 'normal' [23:37] Ufa. Eu esperava que alguém perguntasse isso. ;) [23:37] registrável [23:37] colheita significa que um atacante ativo pode rodar um router, descobrir muitos outros routers ("colher" eles), e mandar os capangas arrombarem suas portas [23:38] ah, como dá para fazer com gnutella. :) [23:38] capangas tipo serviços secretos [23:38] certo [23:39] ah, entendi. [23:39] ok, mas é isso, esse é o microrroteiro. [23:40] agora, estou sendo estúpido chamando isso de 0.x em vez de 0.0.x? 1.0 deveria ser 'perfeita' ou deveria ser funcional e segura? [23:40] jrand0m, e veremos a .4 quando? [23:40] 0.4 provavelmente está a 2 semanas [23:40] * jrand0m vai tirar cerca de uma semana de folga em meados de outubro porque vai receber visitas [23:40] *** Saiu: dm (EOF do cliente) [23:40] 1.0 deve ser estável. [23:40] Que 1.0 seja funcional e segura. [23:40] dito, co [23:41] 1.0 deve ser funcional, estável e segura [23:41] jrand0m: Minha filosofia, sobre numeração de versão, é: em caso de dúvida, copie o Linux [23:41] 5.0 pode ser "perfeita". O pessoal de software livre tem medo demais de inflar números de versão. [23:41] é isso [23:41] jrand0m, v1 das coisas nunca é perfeita :) [23:41] *** dm (~gj@anon.iip) entrou no canal #iip-dev [23:41] as pessoas também não esperam que sejam perfeitas [23:41] perdi a 1.0? [23:41] mrflibble: As pessoas não esperam que nenhum software seja perfeito. As pessoas usam Windows. [23:41] este software será GPL ou LGPL? [23:41] legal, já levei bronca por a 1.0 não ser perfeita ainda [23:41] Isso não significa que não deva ser. [23:41] bom ponto, ChZEROHag [23:42] ah droga, perdi mesmo, né.. [23:42] dm: para de brincar [23:42] sim, perdeu [23:42] o router é GPL. a biblioteca de cliente em Java atualmente é GPL, mas estou aberto. o thecrypto e eu somos donos de tudo, exceto uma parte (a impl de AES da Cryptix, que é MIT) [23:42] tá bom, tá bom, desculpa :( [23:42] na verdade, retiro isso [23:42] Usei o Base64.java do freenet também [23:43] ainda estamos no item 0.3 da agenda, Apps? [23:43] então base64 é GPL :) [23:43] e o cliente de IM será GPL [23:43] ah é, estamos no 0.3, né [23:43] assim que eu colocar comentários no código [23:43] *** UserX_ (~User@anon.iip) entrou no canal #iip-dev [23:43] heh thecrypto [23:43] GPL me parece bom [23:43] uau, 23 usuários [23:43] estamos no item 6,02E23 da agenda, bobagens aleatórias. :) [23:43] jrand0m, se tiver tempo, quero falar com você sobre licenciamento e possíveis trabalhos de consultoria [23:43] legal, Ryan_Singer [23:43] Embora como alguém (Fillament?) apontou - se alguém quebrar a licença, como uma pessoa anônima vai fazer algo a respeito? [23:43] jrand0m: 22 ;) [23:43] ChZEROHag> leia minha licença no flinks ;) [23:43] precisamos de um sistema judiciário anônimo. [23:44] * mihi está aqui duas vezes [23:44] Myself248> chama-se yodel ;) [23:44] "O tribunal passa a ouvir o processo número 34534, J. Doe vs. J. Doe" [23:44] ChZEROHag, a razão de eu perguntar é para corporações usarem este software para segurança contra espionagem industrial [23:44] O naming server será licenciado sob GPL também. [23:44] lol [23:44] "Oficial de justiça, não são as mesmas partes dos últimos 34533 casos que ouvimos?" [23:44] bem [23:45] sempre existe a ideia de que se você quer que as pessoas realmente usem seu protocolo, e você não está preocupado com dinheiro, apenas torne-o completamente aberto. nem mesmo restrito por gpl. [23:45] shardy: Você quer dizer domínio público? [23:45] acho que isso foi a deixa do co para o item 0.4 da pauta :-P [23:45] shardy> as specs são públicas e abertas. Eu não afirmei copyright sobre as specs. [23:45] shardy, não, gostaríamos que o trabalho no protocolo permanecesse disponível [23:45] domínio público, licença bsd, "faça o que quiser, só nos dê crédito por favor", etc. [23:45] o código é GPL para o router. uma implementação da API do cliente em Java é GPL [23:46] confira o liberty protocol.... (Link: http://projectliberty.org)http://projectliberty.org [23:46] jrand0m: ok, legal. entendi. [23:46] * jrand0m pensou em licenças "sem uso governamental" ;) [23:46] ok, o motivo de eu ter colocado 3.0) aplicativos na lista de questões é este [23:46] precisamos de ajuda. [23:46] ajuda com o quê? [23:46] i2ptunnel é um bom código. o router do i2p será um bom código. [23:47] o que precisamos é que as pessoas comecem a acertar os detalhes da engenharia de release [23:47] por que você precisa de apps se pode simplesmente usar i2ptunner? [23:47] jrand0m: como é? [23:47] ou seja, como realmente empacotar algo que o 'Zé' possa baixar e navegar na web [23:47] dm: Por que você precisa de apps se pode simplesmente usar telnet? [23:47] o quê? [23:47] * dm coça a cabeça. [23:47] err, existe algo além do telnet? [23:48] * jrand0m acha que esse é o ponto do ChZEROHag, dm ;) [23:48] *** Myself248 agora é conhecido como myself248 [23:48] *** Saiu: thecrypto (Ping timeout) [23:48] dm: Usar o i2ptunnel seria como ter um carro funcionando e puxá-lo em uma carroça [23:48] ok, é só isso. só queria mencionar caso as pessoas tivessem tempo livre :) [23:48] ok, 4.0) [23:48] naming service [23:48] Dá para ver que ele está tentando fazer um ponto. [23:48] oi, co, como vão as coisas? :) [23:48] O naming server deve ser GPL, já que pelo menos a implementação em Java usa código da biblioteca do cliente para contatar routers. [23:49] mas acabamos de passar 20 minutos dizendo: I2Ptunnel + servidor web!, I2Ptunnel + quake! ;) [23:49] Ou, em termos de computação, como fazer tudo da internet com telnet em vez de diretamente na pilha IP [23:49] Eu não fiz muito na semana passada. Lancei a API do cliente, que também precisa de trabalho. [23:49] i2ptunnel é uma solução interina [23:49] Vou ter tempo esta semana, porém, para começar a implementar o naming server. [23:49] legal [23:49] onde está mesmo a API do cliente? [23:50] na lista de e-mails ;) [23:50] Uma de suas premissas é que os destinations podem ser codificados em base64, por isso perguntei sobre isso antes. [23:50] ChZEROHag> de certa forma é provisório [23:50] * jrand0m dá um tapa em si mesmo [23:50] *** thecrypto (~thecrypto@anon.iip) entrou no canal #iip-dev [23:50] TCP também! [23:50] *** yodel (yodel@anon.iip) entrou no canal #iip-dev [23:50] 'lo yodel [23:50] como serão as convenções de nomes? é algo com o qual o usuário comum vai se identificar (isto é, (Link: www.somthing.com)www.somthing.com ou (Link: www.something.i2p)www.something.i2p para http/web)? [23:50] Vou colocar a especificação do naming service e a API do cliente no CVS. [23:50] wb thecrypto [23:50] Provavelmente isso já foi tratado antes, mas como o ns fornecerá nomes únicos de forma justa? [23:50] * mihi quer ter *.mihi.iip ;) [23:50] beefbroth> com o naming service ou sem? [23:50] heh mihi [23:50] evitando o squatting, etc., que assola o DNS [23:50] alguém pode me dizer o que aconteceu? [23:51] jrand0m: com. acho que sem seria uma longa sequência de números. [23:51] ChZEROHag: Você vai se registrar com um grupo de naming servers e depois usará o nome desse grupo para se identificar. [23:51] Como em IM.beefbroth.mygroup se você fornece serviço de IM. [23:51] oops, s/iip/i2p [23:51] *** godmode0_ (~mode@anon.iip) entrou no canal #iip-dev [23:51] *** Saiu: godmode0 (EOF do cliente) [23:51] ChZEROHag> o naming service do co tem grupos confiáveis, onde cada grupo administra um nome de grupo (tld). você escolhe quais grupos executam cada tld [23:51] Sim, será possível alguém registrar o username beefbroth com o group2. [23:51] nos 4 minutos em que estive fora [23:52] co: Então o único problema é a unicidade de .mygroup? [23:52] E quem fica com o grupo 'com'? :-) [23:52] e isso é selecionado pelo cliente [23:52] ChZEROHag: i2p não é COMercial [23:52] (por exemplo, você diz para sua lib cliente de ns "o grupo '.com' é o grupo 0123ff33aefcbb34fe [23:52] Odeio sugerir, mas quase acho que os grupos deveriam ter padrão de 3 letras para preservar a ilusão de que é semelhante à web normal [23:52] ChZEROHag: Não sei quem fica com o grupo "com". [23:52] Boa pergunta. [23:53] beefbroth: exceto que a "web normal" não tem mais apenas tlds de 3 letras [23:53] beefbroth: ou adicione um .i2p a todos os endereços. [23:53] beefbroth: Essa ilusão só está presente na américa [23:53] tlds. [23:53] para começar, talvez queiramos inicialmente ter um único grupo de naming servers, ".i2p" [23:53] beefbroth: O software do naming server permite ter até 32 letras. [23:53] Em outros lugares usamos os códigos de país de 2 letras que nos foram dados [23:53] .us também é usado na américa. [23:53] Na verdade, eu queria que o primeiro grupo fosse "test". [23:53] assim como .info e .name [23:53] heh 'k [23:54] shardy: é, por umas 5 pessoas. [23:54] Mas isso talvez seja um desabafo para outra hora :) [23:54] na verdade... [23:54] tem até .museum [23:54] jrand0m, usar .12p parece bom [23:54] Outro dia me deparei com um DNS distribuído baseado em JXTA [23:54] ChZEROHag: Mas a questão é que se você não gosta das pessoas que administram o grupo "com", você pode estabelecer o grupo "com2" e rodar seus servidores (e se registrar nele). [23:55] Sim, essa parte faz todo sentido [23:55] ChZEROHag: (Link: http://www.nic.us/press/audio/dotus-mayEM.wav)http://www.nic.us/press/audio/dotus-mayEM.wav ;) [23:55] co> (Link: http://wiki.java.net/bin/view/Jxta/DisDNS)http://wiki.java.net/bin/view/Jxta/DisDNS é um wiki de DNS distribuído, embora seja bem cru e não trate questões realmente difíceis [23:55] Você pode configurar seu cliente para fazer qualquer coisa. [23:56] ChZEROHag: Ao registrar seu username com um grupo, sim. [23:56] jrand0m: Vou olhar isso depois da reunião. [23:56] o jxta executa naming servers a partir de pontos de rendevous [23:56] mihi: o que é isso? [23:56] então é possível alguém tentar atacar o sistema de NS imitando o grupo já existente de naming servers do i2p [23:57] *** Saiu: jeremiah (Ping timeout) [23:57] beefbroth: Acho que não. [23:57] ChZEROHag: ouça. por que xxx milhões de americanos preferem .us ao invés de .com [23:57] 68 milhões [23:57] Como imagino, pessoas criando grupos irão anunciar esses grupos. [23:57] imitando? eles não podem imitar, pois os servidores no grupo são autenticados por sistemas de chave pública [23:58] porém, se os grupos permitirem que membros não confiáveis entrem, podem ser tomados trivialmente. [23:58] mas como é feita a troca de chaves? [23:58] As pessoas que vierem depois enfrentarão o problema de que o grupo já está estabelecido, e os arquivos de configuração do software do cliente contêm os destinations do grupo anterior. [23:58] mihi: de qualquer modo, vou ouvir [23:58] o que acontece se dois grupos de naming servers alegarem resolver o grupo .i2p? [23:58] Boa pergunta, porém, e vou repensá-la cuidadosamente. [23:58] co: É, essa é outra coisa que eu estava tentando levantar [23:58] shardy> sem troca de chaves - publicação de chaves [23:58] entendi, bom ponto [23:58] :) [23:58] mas chaves ainda podem ser interceptadas se forem publicadas online [23:58] beefbroth> ninguém alega nada. seu cliente diz "i2p == [dest1, dest2, dest]" [23:59] o que precisamos é de um sistema de dns baseado em confiança :) [23:59] assim você pode enviar uma consulta pelo nome e receber de volta uma lista de respostas... e então ir com a confiável [23:59] Obrigado por levantar isso. [23:59] shardy> ah, acho que entendi a confusão. Acho que o naming service vai querer vir com um conjunto de destinations fora de banda (vulgo empacotado com a instalação) [23:59] É, temos um — todo mundo confia na IANA (ou como quer que se chamem) ou então... [23:59] * shardy se abaixa [23:59] :-D [23:59] estão tentando isso com dnssec, mas claro que não é anônimo [00:00] o que este naming service faz é se afastar de root servers [00:00] você sempre poderia ter uma homepage do i2p que listasse grupos de nomes e autoridades ativas? [00:00] jrand0m: ok. só apontando que ainda pode ser interceptado não importa o que faça, a menos que haja um canal fisicamente seguro para transmitir inicialmente essas chaves... [00:00] shardy: Acho que cobri a troca de chaves na spec. Se não, me diga. [00:00] mas empacotar isso fora de banda melhora [00:00] co: Vou conferir. [00:00] shardy> ah, certo. sim, as pessoas precisam poder confiar no código que baixam [00:00] beefbroth: Certamente. [00:01] aah, isso me lembrou [00:01] beefbroth> sim, esse é com certeza um dos primeiros apps que serão implementados - um servidor web i2p com bbs & wiki que as pessoas possam acessar através do i2p [00:01] Devo criar uma chave gpg para meu iipmail [00:01] *** yodel saiu de #iip-dev [00:01] * ChZEROHag faz isso enquanto coisas pouco empolgantes acontecem [00:01] heh ok [00:01] Por favor, entendam que a especificação do naming server ainda está aberta a sugestões de melhoria. [00:02] Acho que vou levar todas as specs comigo no voo para a toorcon... isso vai me dar tempo para lê-las [00:02] Não afirmo que esteja perfeita ou finalizada no momento. [00:02] heh, espero que seja um voo longo [00:02] e é mais produtivo do que jogar FFT Advance o tempo todo, heh [00:02] * jrand0m descobriu que a crítica virá mais livremente quando houver código implementando as specs [00:02] *** godmode0_ agora é conhecido como godmode0 [00:02] E eu tenho que escrever o código. [00:02] Acho que podemos passar para o próximo tópico agora. [00:02] 'k [00:02] 5.0) IM [00:03] oi, thecrypto [00:03] nomes não devem poder colidir com representações base64. [00:03] oi [00:03] ok [00:03] e o naming server deve retornar transparentemente endereços base64 como estão. [00:03] mihi: Muito bem, vou tentar evitar esse problema. [00:03] primeiro, como meu e-mail não está funcionando de novo (malditos spammers) [00:03] (todas as classes que estendem DataStructure têm String .toBase64() e .fromBase64(InputStream) ) [00:03] vou responder aqui às perguntas do whit sobre o meu sistema [00:04] * jrand0m abre o e-mail do co [00:04] jrandom? por que InputStream e não Reader? [00:04] "network" foi a primeira coisa que veio à cabeça, você está fazendo conexões pela rede i2p, é muito p2p então eu chamei de rede [00:04] se você quer um Reader, é só usar um InputStreamReader, seu pentelho [00:04] base64 são caracteres, não bytes, na minha opinião. [00:04] jrand0m: IM == Instant Messaging? [00:04] sim, ChZEROHag [00:04] se as pessoas tiverem problema com isso, me deem uma sugestão de como chamar [00:05] jabber? [00:05] IM == minha própria rede de IM distribuída [00:05] você deveria chamar de "bob" [00:05] o i2p im é uma rede da mesma forma que aim é uma rede, ou kazaa é uma rede, todas rodando sobre tcp/ip ou udp/ip [00:05] Que tal aplicativo de IM? [00:05] (anonabber) [00:05] jrand0m: Entendi. [00:05] jabber requer um servidor centralizado [00:05] a terminologia não importa para mim. Eu gosto da ideia do shardy [00:05] Nada "requer" um servidor centralizado [00:05] e eu não consigo soletrar hoje, então tenham paciência [00:05] É só a forma como as coisas são escritas [00:05] (embora eu prefira Betty) [00:05] então você quer que eu chame de I2PIM bob? [00:05] :) [00:05] que tal wilma? [00:05] fred já está tomado [00:05] Que tal IM distribuído? [00:05] DIM, heh [00:05] Mas então, aplicativo de IM distribuído? [00:05] AIM, anonymous Instant messaging! [00:05] acrônimo ruim :) [00:06] aí podemos tomar a AOL. [00:06] ahh mal posso esperar a AOL saber disso [00:06] dm: Isso deixaria certos babacas muito irritados. Eu gosto. [00:06] heh, manda ver [00:06] thecrypto, vamos conseguir implementar IM de forma descentralizada, ou terá que ser centralizado? [00:06] dm: Boa ideia. Eu apoiaria esse acrônimo. [00:06] pelo que li dos docs do thecrypto, o IM é totalmente descentralizado [00:06] estou implementando um IM distribuído, está no CVS [00:06] Eu votaria contra qualquer coisa que vá confundir as pessoas [00:07] AOL TimeWarner mudou o nome para Time Warner [00:07] dm: Isso deixaria certos babacas muito irritados. Eu gosto. [00:07] ser anonimamente transparente não é útil se as pessoas não entendem o que é anônimo. [00:08] Ah, espera, tenho algo assim anotado no papel [00:08] Eu gosto da ideia do thecrypto [00:08] em qual "network" o I2PIM roda é o que estou procurando [00:08] ensinar as pessoas a se proteger é algo realmente importante [00:08] eu estava pensando em Sistema de Presença? [00:08] enfatizar o aspecto de segurança do anônimo [00:08] I2M (instant 2 messaging) [00:08] Embora eu só tenha chamado de XIrc [00:09] você que manda, thecrypto, o que funcionar pra você ;) [00:09] e no logo do I2M, o 2 será bem pequeno :) [00:09] bem, I2P se expande para Invisible ... jrand0m? [00:09] A principal coisa que eu gostei foi que todos eram chamados de Borg e conversavam em Collectives [00:09] i2p = i^2p (invisible internet project) [00:09] Achei que o P era de protocol. [00:09] também [00:09] bem, na verdade, não [00:10] então é Invisible Internet Project Instant Messaging [00:10] i2np é o protocolo [00:10] i2p é o projeto [00:10] i2cp é o protocolo do cliente [00:10] Achei que era "poop" [00:10] thecrypto: Você está certo, o nome não importa muito. [00:10] i2m = i^2m = instant invisible messaging [00:10] então próximo tópico [00:10] ok.... estamos saindo da pauta... terminamos com IM? [00:10] se "bob" não serve, podemos chamar de "jimbob" [00:10] 0k, 6.0) administravia [00:10] não, ainda tem mais aqui [00:11] desculpa [00:11] É administrivia. [00:11] não, é IM [00:11] nop> me dá root. Preciso instalar anon cvs, bugzilla e cvsweb. [00:11] eu não tinha terminado [00:11] :) [00:11] rebobine! [00:11] * jrand0m dá ré [00:11] 5.1) thecrypto v2 [00:11] o que mais tem no IM, thecrypto? [00:12] thecrypto: só fale; /me idi do mesmo jeito que perdi os naming services [00:12] ok, a coisa sobre presenças se comunicando é diferente [00:12] nem todo mundo conhece todo mundo [00:12] praticamente não há como "stalkear" alguém [00:12] você tem que pedir para ser mostrado [00:13] em redes anônimas, geralmente ninguém conhece ninguém ;) [00:13] (desde que o Destination das pessoas seja aleatório) [00:13] *** Saiu: pitu (Lost terminal) [00:13] o que você quer dizer? [00:13] Alice quer falar com Bob [00:13] mihi> embora o naming service permita buscar por serviço [00:13] (serviço sendo IM, www, etc) [00:13] Alice encontra o IM destination do Bob de alguma forma, provavelmente pelo naming service [00:14] Então Alice envia uma mensagem para o IM destination do Bob [00:14] sim? [00:14] ele recebe uma mensagenzinha dizendo "Alice tentou te contatar"; se ele quiser falar com ela, pode, ou pode ignorar [00:15] mas não há servidor central de presença, Alice também pode simplesmente ver sua mensagem desaparecer e não receber resposta [00:15] ok, tipo o MSN então? [00:15] (embora Alice possa saber que Bob a ignorou) [00:15] e Alice não pode simplesmente colocar Bob na lista de contatos dela e esperar por ele [00:15] thecrypto, ok... em que isso é diferente de Y!, MSN ou AIM devidamente configurados... além da parte de não ter servidor central [00:15] porque Bob tem que enviar uma mensagem para Alice para ver ela entrar [00:15] ah [00:15] ok, não muda nada do ponto de vista do usuário, mas entendi o que você quer dizer. [00:16] thecrypto> não é bem assim [00:16] entendi... sem funcionalidade de lista de contatos... [00:16] oh, bem, hmm, tecnicamente... [00:16] Ryan_Singer: não, ainda há lista de contatos [00:16] como a Alice envia uma mensagem para o Bob se ela não consegue vê-lo? [00:16] você só tem que tentar contatos aleatórios na esperança de que eles estejam lá? [00:16] bob tem que enviar uma mensagem para o router da alice, o que pode acontecer sem a alice saber [00:16] Alice pode simplesmente tentar aleatoriamente [00:17] isso não é muito conveniente? você entra e tem que enviar para todo mundo uma mensagem dizendo (tá aí?, tá aí?) [00:17] thecrypto: um usuário não pode "notificar" todos os seus contatos quando entra enviando-lhes uma mensagem? ou é isso que você estava dizendo [00:17] * co observa que pode haver dois Bobs registrados com dois grupos de naming servers diferentes. [00:17] beefbroth: era exatamente isso que eu estava dizendo [00:17] ok, então similar ao esquema atual, mas você fica invisível por padrão. [00:17] entendi. [00:18] dm: não, é o contrário; quando você entra, você envia uma mensagem para todo mundo dizendo "Estou online, estou online"; se você receber uma mensagem dizendo "Estou online", você devolve [00:18] se quiser [00:18] Então o usuário controla quem pode vê-lo/la/ele(a). [00:18] então Alice pode te colocar na lista de contatos dela e você vai receber uma mensagem quando ela entrar dizendo "Alice te colocou na lista de contatos, você gostaria de notificá-la da sua presença" [00:19] quando você sair você manda antes uma msg que diz "estou saindo"? [00:19] ok, então a experiência de IM é a mesma de hoje. Só queria confirmar. [00:19] se Bob tem Alice na lista de contatos e Bob recebe uma mensagem de Online da Alice, a mensagem de retorno é automática [00:19] Pode ser necessário "pingar" o outro usuário de IM de tempos em tempos para garantir que não houve uma desconexão não intencional [00:19] Se Bob não tem Alice na lista de contatos e Bob recebe uma mensagem de online da Alice, o usuário é perguntado [00:19] ok, isso é só uma maneira de contornar ter um servidor, mas a questão é se os apps serão configurados por padrão para enviar um "Estou online" quando alguém entra. [00:20] esperamos que sim [00:20] Ryan_Singer> ou apenas ter um ping periódico de "ainda estou online" [00:20] (e ping ausente == offline) [00:20] um tipo de keep-alive? [00:20] Pode ser necessário "pingar" o outro usuário de IM de tempos em tempos para garantir que não houve uma desconexão não intencional [00:20] se Bob tem Alice na lista de contatos e Bob recebe uma mensagem de Online da Alice, a mensagem de retorno é automática [00:20] heh [00:20] Se Bob não tem Alice na lista de contatos e Bob recebe uma mensagem de online da Alice, o usuário é perguntado [00:21] ok, então a experiência de IM é a mesma de hoje. Só queria confirmar. [00:21] só que agora você tem uma confirmação ao adicionar contatos [00:21] o que acho que só o ICQ tem [00:21] o app de IM será standalone ou vou poder usar o Trillian? [00:21] sim, é assim que o MSN funciona. [00:21] [etc] [00:21] thecrypto: o ICQ só finge exigir confirmação [00:21] dm: errado. você não vai ter que lidar com MSN, Y! e AIM mudando seus protocolos e bloqueando pessoas a cada poucos meses :) [00:22] jrand0m: vou fazer uma spec; o Trillian pode me dar uma interface de plugin ou eles podem escrever a deles [00:22] vou escrever um plugin para o gaim pelo menos [00:22] junto com um cliente standalone [00:22] legal [00:22] que é construído para ser usado com a rede [00:22] o gaim suporta transferência de arquivos ou isso será o benefício do cliente i2pim? [00:22] thecrypto: você pode querer avisar os desenvolvedores do kopete só para eles saberem [00:22] * jrand0m mostra sua falta de noção [00:23] vou tentar fazer o plugin do gaim funcionar tão bem quanto o standalone, mas não sei [00:23] thecrypto: Vamos ter o aplicativo standalone primeiro. [00:23] acho que a transferência de arquivos do gaim só funciona no AIM [00:23] então pode exigir algum trabalho para colocar isso num plugin [00:23] ok.. acho que todos entendemos isso agora... mais questões de IM? [00:24] e a última coisa do co [00:24] o gaim sofre problemas com suas transferências de IM para pessoas usando NAT [00:24] mais de uma pessoa pode ter o mesmo nome [00:24] elas terão destinations únicos [00:24] *** Saiu: mihi (Ping timeout) [00:24] Tudo bem. [00:24] * mihi_backup ainda está aqui... [00:24] mas alguém não pode se passar por outro [00:25] heh boa, mihi_backup [00:25] Se você usar o naming server, será "Bob do group1" e "Bob do group2". [00:25] Com destinations únicos. [00:25] certo, thecrypto. nomes são arbitrários. meio como dns ;) [00:25] *** mihi (~none@anon.iip) entrou no canal #iip-dev [00:25] também o cliente de IM em si pode opcionalmente verificar "Ei, esse IM que você recebeu foi de alguém chamado Bob, o destination do Bob na sua lista é diferente, aceitar a mensagem?" [00:26] mihi: seu backup falou enquanto você estava fora. [00:26] se a pessoa está tentando se passar pelo Bob, você vai saber; caso contrário, você pode criar um alias para ela [00:26] eu sei... [00:26] "alguém chamado bob"? diz quem? ele se chama bob? ou algum grupo o chama de bob? ou você chama o dest dele de bob? [00:26] há um campo na presença chamado name [00:26] estou olhando isso [00:27] * jrand0m gosta do jeito que o ICQ lida com esse problema - todo mundo é um número e você apenas cria alias localmente de números para nomes [00:27] Como observação, devo tornar os nomes de entidade do NS case-insensitive? [00:27] provavelmente, co [00:27] coisas base64 ainda devem ser case-sensitive ;) [00:27] * jrand0m não quer pessoas fazendo spoof de Jrand0m [00:27] mihi: Nomes de entidade, não destinations. [00:27] certo, certo, mihi [00:28] (bem, as pessoas podem fazer spoof de jrand0m o quanto quiserem. Eu só quero o jrandom de volta) [00:28] Continue, thecrypto. [00:28] *** Saiu: UserX_ (Ping timeout) [00:28] é isso [00:28] finalmente :) [00:28] co: você deve poder colocar um destination onde quer que possa colocar um nome de entidade. [00:28] como é com nomes dns e IPs [00:28] mihi: Bom ponto. Vou adicionar isso à especificação. [00:28] jrand0m: na verdade é meio como o ICQ, exceto que você diz às pessoas qual você gostaria que fosse seu alias [00:29] o que acho que eles fazem agora [00:29] A ideia, porém, é que será muito mais curto digitar nomes do que destinations. [00:29] mihi> o naming service apenas converte nomes para destinations - se você pedir ao naming service pelo destination de um destination, ele deve retornar muito, muito rápido [00:29] ok pessoal... tenho uma reunião... jrand0m, me manda um anonymail [00:29] 'k, adiós [00:29] jrand0m: sim, e deve retornar esse dest em si, e não "não encontrado" [00:30] certo [00:30] *** Saiu: Ryan_Singer ((null)) [00:30] ok. estamos em 7.0) [00:30] perguntas [00:30] oi [00:30] E 6.0) Administrivia? [00:31] Ou você já terminou isso? [00:31] 6.0 administravia foi só eu enchendo o saco do nop para me dar root para conseguir para vocês: acesso cvs anônimo, bugzilla e uma interface cvsweb :) [00:31] vai haver responsáveis para trabalhar no empacotamento das versões alpha, beta e releases para Win/Mac/SuSE/RehHat/Debian para acelerar a adoção? [00:32] você está se voluntariando? [00:32] (ou seja, sim, seria ótimo) [00:32] Se eu aprender a fazer um pacote para minha distribuição :) [00:32] qual distro você usa? [00:33] Pelo que me lembro, os desenvolvedores do IIP queriam reimplementar o IIP sobre o I2P. Se o I2P cumprir suas promessas de anonimato, não seria mais simples apenas ter IRC sobre I2P? [00:33] Mas meu ponto é, muita gente depende disso. Facilitaria a adoção. O Freenet sofre com falta de mantenedores ativos. [00:33] jr é um bom gerente :) [00:33] sim, co, mais simples, mas não tão escalável [00:33] *** UserX_ (~User@anon.iip) entrou no canal #iip-dev [00:33] sim, mas algumas pessoas não querem IRC [00:34] beefbroth> você está absolutamente certo, há muito trabalho a fazer, e eu preciso dormir pelo menos 4 horas por noite [00:34] thecrypto: Bom ponto, embora o I2P vá anonimizar os endereços IP das pessoas. [00:34] jrand0m: posso ajudar a empacotar quando as coisas estiverem prontas. acho que é uma ótima maneira de alguns não-desenvolvedores com um pouco de expertise técnica contribuírem. [00:34] excelente, beefbroth [00:34] se tivermos IM e IRC, mais adoção [00:35] co: o problema é que com irc há algo a ser derrubado (servidores). [00:35] *** jeremiah (~jeremiah@anon.iip) entrou no canal #iip-dev [00:35] thecrypto> adoção instantânea: opennap [00:35] é mais fácil aprender a fazer pacotes do que aprender as estruturas de dados do i2p. é uma maneira fácil de algumas pessoas se envolverem [00:35] IRC é bem difícil, não é? [00:35] IRC distribuído, digo... [00:35] mihi: Claro. Eu tinha esquecido disso. Obrigado por me lembrar. Objeção retirada. [00:36] dm> irc pode ter múltiplos servidores irc (à la efnet, etc.) que falam entre si através do i2p [00:36] você quer dizer um protocolo de chat "parecido com irc"? [00:36] ou adaptar o irc? [00:36] com as pessoas conversando entre si tunelando para um dos servidores irc via i2p [00:36] irc com servidores atrás do i2p é ok; estou dizendo sem servidores. Tanto faz, acho. [00:37] dm> certo, pode ser feito muito melhor sem servidores, e já se pensou nisso, mas nada realmente sólido (que eu saiba) [00:38] de qualquer forma, é off-topic. [00:38] continuem! [00:38] mais alguma pergunta? [00:38] alguém já leu as specs? ;) [00:38] (além do beefbroth, que as tem decoradas) [00:38] * dm olha para o teto. [00:39] ok, então reunião de 100 minutos [00:39] estou lendo quando preciso de algo :) [00:39] specs! [00:39] Era isso que eu esqueci! [00:39] heh [00:40] *** dm mudou o tópico no canal #iip-dev para topic1 [00:40] * jrand0m carrega e... [00:40] * jrand0m encerra a reunião com um *baf*