Stručné shrnutí

Přítomni: co, jrand0m, LeerokLacerta, mihi, mrflibble, mrsc, nop, shardy, thecrypto, w0rmus

Zápis ze schůzky

[22:53] 0) uvítání [22:54] 1) aplikace: [22:54] 1.1) IM [22:54] 1.2) NS [22:54] 2) stav vývoje: [22:54] 2.1) subsystémy [22:54] 2.2) perzistence šifrovacích klíčů [22:54] 2.3) to-do [22:54] 3) věci kolem specifikací [22:54] 3.1) úpravy [22:54] 4) administrativní záležitosti: [22:54] 4.1) anonymní CVS [22:54] 5) ? [22:55] ok, 0) uvítání [22:55] vítejte na schůzce 58 [22:55] to je všechno [22:55] si sr, pokud někdo jiný nemá co přidat? [22:55] * nop si všímá, že jrand0m je objektově orientovaný v číslování :) [22:56] 3.1.2.2.4.5.8() ;) [22:56] hele, klidně by to mohly být struktury ;) [22:56] haha [22:56] to rozhodně platí [22:56] ok, 1.1) IM. thecrypto? [22:56] i když [22:56] 2 má dědičnost [22:57] ;) [22:57] heh [22:57] nevšímejte si mě [22:57] ok [22:57] sorry [22:57] pokračujte [22:57] *** mihi_ (~none@anon.iip) se připojil na kanál #iip-dev [22:57] dobře, právě nahrávám nějaké základní specifikace pro IM [22:58] (Odkaz: http://www.thecrypto.org/i2pim.sxw)http://www.thecrypto.org/i2pim.sxw pro oowriter [22:58] a pracuji na nahrání PDF [22:59] jestli chceš, můžu to dát na I2P web [22:59] dej mi vteřinku [22:59] jasně [22:59] *** mrflibble (mrflibble@anon.iip) se připojil na kanál #iip-dev [22:59] chceš to dát do i2p/apps/IM/doc/ ? [22:59] *** mihi_ je nyní znám jako mihi_backup [23:00] můžu [23:00] ano [23:00] myslel jsem v cvs :) [23:00] to můžu udělat taky [23:00] (ale na webu je to taky v pohodě) [23:00] oh [23:00] haha [23:00] (Odkaz: http://www.thecrypto.org/i2pim.pdf)http://www.thecrypto.org/i2pim.pdf [23:01] "the file is damaged and could not be repaired" AR error [23:01] zkus to znovu [23:01] * jrand0m to načetl v pohodě [23:01] MrEcho: Ten PDF soubor? [23:01] (to sxw) [23:01] v tu chvíli byl nahraný jen částečně [23:01] teď to funguje [23:01] hehe [23:02] v zásadě jsem tam dal jen věci kolem presence, online offline zprávy a zprávu typu message [23:02] bezostyšně jsem vytrhl některé části z dokumentu I2NP [23:02] :) [23:02] heh, myslel jsem si, že mi to něco připomíná :) [23:02] také pracuji na nahrání UI, které [23:02] na kterém jsem pracoval [23:03] jrand0m: mám vytvořit adresáře apps/IM/doc [23:03] ano, a přidat je jednotlivě přes cvs add [23:03] -kb? [23:03] ano [23:03] thecrypto: myslím, že apps/ tam už je. [23:04] co je to presence? [23:05] nech mě pustit update [23:05] ale už se to tam dostává [23:05] *** Odhlášení: shardy (Ping timeout) [23:05] jen říkám: rozeberte ty specifikace na kusy [23:05] a UI tam bude brzy taky [23:05] a pokud máte něco, co je třeba upřesnit, pošlete mi to přes anonymail, e‑mail, cokoliv, a já to opravím [23:05] zmeškal jsem schůzku? [23:05] *** shardy (~shardy@anon.iip) se připojil na kanál #iip-dev [23:05] thecrypto: Možná bys to měl oznámit i na e‑mailové konferenci s odkazem na dokumenty. [23:05] myslel jsem, že jsem to tam dal? [23:05] ne, pořád jsme u první položky, mrflibble [23:05] mrflibble: Schůzka probíhá. [23:05] oh, sorry, jen jsem neviděl „logger“ [23:06] thecrypto> uvádíš, že je to destination, ale je to ta destination, na kterou se posílají zprávy? jak fungují offline zprávy? [23:06] žádní mids tady, takže žádný logger ;) [23:06] k [23:06] * mrflibble se vrací do lurku [23:06] aha počkat, tohle jsou jen oznámení o presence, sorry [23:06] jak se dá přihlásit k odběru presence? [23:06] jrand0m: žádné offline zprávy [23:07] v zásadě [23:07] presence jenom sváže dohromady destination a jméno [23:07] aby to bylo jednoduché [23:08] takže jestli chceme přejít na NS, můžeme, a k tomuhle se vrátíme později? [23:09] jo, super [23:09] a klidně mi posílejte otázky [23:09] vlastně jedna rychlá otázka [23:09] sem s ní [23:09] takže IM je čistě jen textové? [23:10] u téhle základní verze ano, ale přidám podporu pro soubory [23:10] cool [23:10] chci prostě zajistit základy systému a dál na tom stavět [23:10] (iterative and incremental)++ [23:11] ok, super. Projdu to podrobněji a ostatní by měli taky... pro teď přecházíme na 1.2) NS. co? [23:11] Verze 1.1 (finální) specifikace naming service (systém pojmenování) byla vydána dnes dříve. [23:12] (a nastalo velké jásání) [23:12] V zásadě jsem dokončil sekce o datových strukturách a síťových zprávách, které program potřebuje. [23:12] Ve čtvrtek vydám klientské API. [23:12] A začnu implementovat aplikaci NS. [23:12] skvělé [23:13] Jedna změněná myšlenka je, co dělá CA, když se u ní entity registrují. [23:13] co: jak to budeš implementovat? [23:13] co: name server nebo klienta? [23:14] thecrypto: No, nejdřív implementuji potřebné datové struktury. [23:14] Pak klienta, potom server a komponenty CA. [23:14] ok [23:15] Jak jsem říkal, teď bych chtěl, aby CA vydávala certifikát nově registrovaným entitám. [23:15] Ten certifikát předloží naming serverům při úpravě svých záznamů. [23:15] V této verzi jsem nespecifikoval, co certifikát obsahuje; to půjde do příští verze specifikace. [23:16] Připadá to někomu jako špatný nápad? [23:16] hmm. Nebylo by jednodušší/bezpečnější, aby klient používal jen veřejný/privátní klíč? [23:16] tj. při registraci poskytnout veřejný klíč pro aktualizace a registraci podepsat, a kdykoli chceš znovu aktualizovat, podepsat update [23:16] (aby CA nikdy nedostala privátní klíč) [23:17] Poznámka: všechny věci z I2PIM jsou teď zapsané do cvs repozitáře [23:17] skvělé [23:17] Možná je to opravdu jednodušší. Znovu to promyslím. Díky za připomínku. [23:17] To je teď za naming service všechno, pokud nemáte další otázky. [23:18] vypadá to dobře, verzi 1.1 jsem ještě neprošel, ale když na něco narazím, pošlu e‑mail [23:19] OK. Další téma? [23:19] ok, 2.1) stav vývoje subsystémů. [23:19] *** w0rmus (o0o@anon.iip) se připojil na kanál #iip-dev [23:20] transportní subsystém je dostatečně dobrý na postup dál. subsystém správy peerů je zatím jen s hloupými algoritmy, ale funkční. subsystémy pro síťovou DB, správu tunnelů a správu statistik jsou stále rozpracované. klientský subsystém bude triviální (jen znovupoužije SDK local only router) [23:21] Co myslíš těmi hloupými algoritmy? [23:21] ne rychlé? [23:21] eh, subsystém správy peerů nesleduje výkon peerů, jen vrací náhodné peery. [23:22] algoritmus se bude postupně aktualizovat a ladit, aby lépe zajišťoval výběr peerů [23:22] aktuální úkol na mém talíři je vytváření a zpracování garlic messages (zprávy typu garlic), což je otrava. [23:23] ale dá se to, jen je to otravné [23:23] to vlastně navazuje na 2.2) perzistenci šifrovacích klíčů. [23:24] garlic messages používají šifrování ElG+AES k zapouzdření vrstev „stroužků“ [23:24] a privátní klíče se používají i jinde (transport, správa klienta) [23:25] *** Odhlášení: thecrypto (Ping timeout) [23:25] držet privátní a session klíče pořád v paměti a nikdy na disku je ideální, ale je to na nic ve chvílích, kdy router spadne (úmyslně nebo vinou chyby) [23:26] má někdo názor, zda bychom měli 1) nikdy klíče nezapisovat na disk a riskovat zbytečně velkou ztrátu zpráv (protože nepůjdou dešifrovat), 2) před zápisem na disk je zašifrovat, nebo 3) prostě je na disk zapisovat v otevřené podobě? [23:26] Varianta 2. [23:27] jrand0m, varianta 2, nebo to, co jsme říkali dřív [23:27] musíme věřit localhostu [23:27] *** Odhlášení: cohesion (class) [23:27] předpokládáme, že localhost není kompromitovaný [23:27] divná věc na variantě 2 je, že buď bude muset uživatel zadat heslovou frázi, aby spustil router, nebo bude session klíč zjistitelný [23:27] dobrý postřeh, nop. [23:28] znovu: jsme transport, nemůžeme to tolik řešit, to se dá upravit na straně klienta, nebo jim můžeme dát volby [23:28] podle míry paranoie [23:28] bezpečnost vs. pohodlí [23:29] Pak navrhuji mít ve výchozím stavu 3 a dát uživateli možnost použít 2. [23:29] přesně [23:29] jo. ok, dobré je, že lidi mohou (a měli by!) vzít kód routeru a upravit ho podle svého kompromisu – „tinfoil I2P router“ a „jane sixpack I2P router“ [23:29] ok, super, zatím půjdu s jednoduchou variantou 3) [23:30] ok 2.3) to‑do [23:30] * co by se rád vrátil k tématu NS na konci schůzky. [23:30] * nop potřebuje dočíst e‑mail o NS [23:30] jo, jsi teď bod č. 5 [23:30] Počkám do konce. [23:31] mihi dal dohromady pár testů, aby ukázal pár bugů v implementaci SDK. Některé už opravené, některé ne. Opravy jsou na to‑do :) [23:32] taky došlo asi k tuctu změn v různých specifikacích. až budu mít čas, aktualizuji dokumentaci a vypustím to ven, i když mezitím možná dám na wiki stránku s erraty [23:33] word [23:34] další to‑do... hm, dnes ráno jsem opravil tu věc „Wrong Size generating key“ plus pár náhodných bugů [23:34] ok, to je vše ke stavu vývoje. 3) věci kolem specifikací [23:35] 3.1) viz to‑do ohledně úprav. většinou šlo o typografické změny, dnes jsem narazil na trochu větší při implementaci garliců. pořád žádný problém, jen to vyžaduje přeskládat pár datových struktur a udělat trochu kouzel s šifrováním. dám to do errat. [23:35] 3.2) [vím, tohle na programu nebylo, ale stejně] otázky ke specifikacím [23:35] (hned jsem zpět, pořád lurkuju, kdybyste mě potřebovali) [23:35] máte někdo nějaké otázky ke kterékoliv ze specifikací? [23:35] super, shardy [23:36] jrand0m: Prosím, připomeň, která specifikace je v kterém dokumentu. [23:37] (Odkaz: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs je má zmapované [23:37] Podívám se na to. [23:38] (když na to koukám, připomíná mi to, že musím zdokumentovat secure reliable UDP transport. další to‑do...) [23:39] od různých lidí přišlo pár dotazů ohledně toho, na které specifikace se dívat – v zásadě, pokud nechcete vědět, jak fungují routery (nebo je chcete pomáhat implementovat), nemusíte číst specifikaci I2NP. Stačí I2CP a část o I2CP v datových strukturách [23:40] jrand0m [23:40] si sr? [23:41] myslíš skutečné UDP jako UDP pakety [23:41] nebo UDP jako obecný UDP protokol [23:41] ano, UDP ve smyslu UDP paketů [23:41] pro I2P [23:41] *** thecrypt1 (~thecrypto@anon.iip) se připojil na kanál #iip-dev [23:41] *** thecrypt1 je nyní znám jako thecrypto [23:41] i2p/code/router/java/src/net/invisiblenet/i2p/router/transport/udp pro implementaci [23:42] zpátky [23:42] vítej zpět [23:42] pošle mi někdo, co se stalo, když jsem byl pryč? [23:43] UDP impl je docela jednoduchá – udělá DH výměnu a zprávy se rozdělí na 1K pakety a zašifrují AES256 s vygenerovaným klíčem [23:43] přegenerování klíče je podporované, ale momentálně ne automaticky [23:43] ACKy se posílají zpět v dávkách (alias „I received all packets for message 42 up through packet 18 but not 3 or 7“) [23:44] (a praktický důvod, proč jsem šel do UDP impl před TCP impl, je, že UDP dává ‚zadarmo‘ asynchronní IO s téměř nulovým režijním nákladem) [23:45] samozřejmě [23:45] v té udp impl zbývají dvě věci – udělat station‑to‑station proti MITMům a přidat paket pro „sakra, zapomněl jsem session klíč“ [23:45] dobře [23:46] po UDP transportu chci jako další implementovat polling HTTP – takže budeme mít podporu jak pro běžného uživatele (UDP), tak pro uživatele za firewallem/NATem/proxy (polling http) [23:47] ok, takže jo, to je potřeba sepsat do specifikace :) [23:48] * jrand0m si !dává přes prsty za kódění před sepsáním specifikace [23:48] kódění před specifikací mi pomáhá [23:48] jo, iterativně to funguje nejlíp [23:48] (protože při implementaci nacházíme problémy ve specifikacích atd.) [23:49] ok, to bylo 3) specifikace. 4) administrativní záležitosti [23:49] 4.1) anonymní cvs. thecrypto? :) [23:49] tak tak akorát [23:49] no, zjišťuju to, myslím, že 2401 je teď blokovaný [23:49] můžeš cvs -d :pserver: lokálně? [23:49] a asi bude třeba taky něco udělat v inetd, díky jrandom [23:50] ah, super [23:50] nech mě to otestovat, zapomněl jsem, že to takhle jde :) [23:51] bylo by to jen cvs -d :pserver: ? [23:51] cvs -d :pserver:anonymous@localhost:/home/cvsgroup/cvsroot/ co i2p [23:52] taky by bylo skvělé, kdybychom tam dostali i bugzillu [23:52] acvs [checkout aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused [23:52] jo, po přidání řádku do inetd.conf a kill -HUP identd? [23:52] zkusím ten inet řádek a ozvu se [23:52] ehm, inetd :) [23:52] jo, super [23:53] jde pserver na stejný řádek? [23:53] ano, to je všechno na jednom řádku [23:55] ok, to je vše k administrativě, aspoň co mě napadá [23:55] 5a) co, jsi na řadě [23:56] Když si dva lidé chtějí zaregistrovat stejný název entity, druhému se to odmítne. [23:56] Ale pokud použijeme přístup založený na podpisu, [23:56] osoba, které to bylo odmítnuto, by stejně mohla poslat zprávu naming serveru [23:56] a říct mu, aby upravil záznam. [23:56] Jsou dvě možnosti: [23:57] 1) CA pošle naming serveru kopii veřejného klíče pro entitu, která byla schválena. [23:57] 2) CA pošle osobě, která registruje jméno, certifikát podepsaný svým privátním klíčem. Naming server bude mít veřejný klíč CA k ověření. [23:58] Když škodlivý uživatel řekne naming serveru, aby upravil určitý záznam, absence certifikátu tu úpravu zabrání. [23:58] To jsem měl na mysli. [23:59] ale v tom případě CA zná klíč – asymetrická kryptografie by znamenala, že CA zná vždy jen veřejný klíč, navíc CA by ten veřejný klíč nikdy nemusela ani nechtěla nikomu dávat – slouží jen k tomu, aby proti němu autentický aktualizátor podepisoval, když žádá o update [00:00] to, co popisuješ, zní spíš jako symetrická kryptografie – v podstatě jen použití heslové fráze [00:00] cvs si ze mě dělá srandu! [00:00] (kde certifikát je sdílené tajemství mezi CA a skutečným vlastníkem pseudonymu) [00:00] *** mrsc (~efgsdf@anon.iip) se připojil na kanál #iip-dev [00:01] co se děje, thecrypto? [00:01] přidal jsem uživatele anonymous s prázdným heslem, přidal ho do readers a do cvsgroup a dostanu cvs login: authorization failed: server localhost rejected access to /home/cvsgroup/cvsroot for user anonymous [00:01] jrand0m: Dobrý postřeh. Řekněme, že tahle část specifikace ještě není finální, a já to ještě promyslím. [00:01] super [00:01] *** LeerokLacerta (~leerok@anon.iip) se připojil na kanál #iip-dev [00:02] Konnichiwa. [00:02] hmm, thecrypto, nemyslím, že chceš anonymního uživatele v OS [00:02] ahoj, LeerokLacerta [00:02] Ahoj, jrand0m. [00:02] dal jsem tam heslo a teď to funguje [00:03] jrand0m: A jestli budeš mít po přečtení specifikace další návrhy, pošli mi je. [00:03] jasně, co [00:03] super, thecrypto.. je /bin/false jejich shell? [00:03] teď jen musím najít tu sekci v manuálu cvs o tom, jak vytvořit uživatele [00:03] -> *thecrypto* jaké je heslo? [00:04] teď ano [00:05] ok, tohle můžeme dořešit po schůzce. [00:05] ok, poslední bod programu: 5b) ? [00:05] nějaké otázky / nápady / obavy? [00:05] jen si vyzkoušejte aplikaci IM [00:06] zatím jen vytvoří strom, ale ukáže vám, jak to začíná vypadat [00:06] Žádný SOCKS? [00:06] ohh jo, to jsem zapomněl [00:06] ah, super, thecrypto [00:06] SOCKS? jako ten proxy protokol? [00:06] je tu někdo, kdo umí dělat ikony? [00:06] Jo. [00:06] Odpověď pokaždé, když jsem se ptal, byla „Ne“. [00:07] aha. ano, určitě budeme chtít SOCKS proxy, ale momentálně na tom nikdo nedělá. [00:07] Hmm. [00:07] to bude jedna z aplikací, které budeme chtít do veřejné verze 1.0, aby lidi mohli procházet i2p‑based weby a také aby mohli anonymně procházet běžný web [00:07] řekl bych, že je zdarma k dispozici dost SOCKS proxy ;) [00:08] přesně, jen je musíme integrovat [00:08] ale žádnou v Javě neznám. [00:08] JAP klientská aplikace by mohla fungovat dobře, ale nevím, jestli je pod GPL [00:08] JAP klient proxy neobsahuje. [00:08] každopádně potřebuju nějaké ikony pro projekt I2PIM [00:09] něco, co bude reprezentovat online, offline a skupinu lidí [00:09] jediná proxy je http/ftp proxy a ta je v posledním mixu. [00:10] jako u iip – isproxy nezná žádný IRC protokol. [00:10] no, to je odchozí strana – pro i2p‑based weby budeme potřebovat něco, co přijme proxy požadavky z lokálních prohlížečů, udělá lookup destination a pošle zprávy na příslušnou destination [00:10] má někdo zájem? [00:11] thecrypto: Mohli bychom vzít ikony z projektu gaim pod GPL? [00:11] * jrand0m dělá hrozně nudnou grafiku v MS Paintu [00:11] Protože je to pod GPL a tohle taky, pokud se nepletu. [00:11] jo, mohl bych [00:11] pokud I2PIM používá klientské knihovny SDK, I2PIM je rozhodně GPL :) [00:12] ach, ta úžasná GPL [00:12] LeerokLacerta> nějaký zvláštní důvod, proč se ptáš, nebo nás jen chceš pošťouchnout, abychom to udělali? ;) [00:13] problém s těmi od gaimu je, že jsou z IM aplikací, které používají [00:14] takže kdyby někdo mohl udělat ikonu I2PIM, bylo by to skvělé [00:15] * jrand0m si myslí, že prozatím budeme mít spoustu čmáranic z Paintu... [00:16] ok, má někdo nějaké další nápady / otázky / commnets? [00:16] mám commnets [00:16] (kromě „wtf je commnet“) [00:16] je to nakažlivé? [00:16] *** nixonite (~nixonite@anon.iip) se připojil na kanál #iip-dev [00:16] lol [00:17] jo, no, jestli ne, tak to zhruba uzavíráme, na programu už nic není [00:17] zmeškal jsem schůzku? [00:17] jo, 9 večer GMT [00:17] no, technicky jsi to stihl na konec :) [00:17] oh [00:18] nop: Sem s nimi. [00:18] tak jaké jsou ty komentáře [00:18] * jrand0m si myslel, že si nop jen dělá srandu z mé překlepové chyby, ale jestli má komentáře, tak do toho, kámo [00:20] anon cvs mě pořád nemá rád, víc práce zítra [00:20] dej mi root a já to zvednu [00:21] o tom si promluv s nopem [00:21] heh, ok [00:22] ok, jelikož se zdá, že byl nop zase odtažen zpátky do práce... [00:22] nop a vlastně kdokoliv další> pokud máte jakékoliv komentáře/otázky/obavy, dejte vědět nebo napište do mailing listu (nebo klidně i do wiki) [00:23] * jrand0m to natáhne a *baf* ukončí schůzku.