Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.
Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …
Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.
Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).
DNS4EU, tj. evropská infrastruktura služeb DNS založená na vysoce federovaném a distribuovaném ochranném ekosystému, byla spuštěna v testovacím režimu [𝕏]. Na výběr je 5 možností filtrování DNS.
Skriptovací programovací jazyk PHP (PHP: Hypertext Preprocessor, původně Personal Home Page) dnes slaví 30 let. Přesně před třiceti lety, 8. června 1995, oznámil Rasmus Lerdorf vydání PHP Tools (Personal Home Page Tools) verze 1.0.
Ve středu v 17:00 byl ve Francii zablokován přístup k PornHubu a dalším webům pro dospělé. K 17:30 došlo k nárůstu počtu registrací Proton VPN o 1 000 % [𝕏]. Dle nového francouzského zákona jsou provozovatelé těchto webů povinni ověřovat věk uživatelů prostřednictvím průkazu totožnosti nebo platební karty.
Před 32 lety, 6. června 1993, byl spuštěn první český WWW server (ještě pod TLD .cs), pro potřeby fyziků zabývajících se problematikou vysokých energií.
Střílečku Borderlands 2 lze v rámci výprodeje série Borderlands na Steamu získat zdarma napořád, když aktivaci provedete do 8. června 19:00.
#ifndef JardikSSL_h_from_JardikuvNSAProofToolkit #define JardikSSL_h_from_JardikuvNSAProofToolkit enum JardikSSL_ERR { JARDIK_SSL_ERR_OK, JARDIK_SSL_ERR_SSL_NOT_SECURE }; enum JardikSSL_CTXTYPE { JARDIK_SSL_CTX_CLIENT, JARDIK_SSL_CTX_SERVER }; struct JardikSSL_CTX; struct JardikSSL_CERT; static inline enum JardikSSL_ERR JardikSSL_CreateContext(struct JardikSSL_CTX **ctx_out, enum JardikSSL_CTXTYPE ctx_type, int socket_fd, struct JardikSSL_CERT *cert) { return JARDIK_SSL_ERR_SSL_NOT_SECURE; } #endif
Tiskni
Sdílej:
$ gcc JardikSSL.c JardikSSL.c:16:1: error: expected ‘;’, identifier or ‘(’ before ‘struct’ struct JardikSSL_CTX;^
$ g++ JardikSSL.cpp JardikSSL.c:16:8: error: multiple types in one declaration struct JardikSSL_CTX;
$ javac JardikSSL.java JardikSSL.java:1: error: illegal character: \35 #ifndef JardikSSL_h_from_JardikuvNSAProofToolkit ^ JardikSSL.java:2: error: illegal character: \35 #define JardikSSL_h_from_JardikuvNSAProofToolkit ^ JardikSSL.java:16: error: class, interface, or enum expected struct JardikSSL_CTX; ^ JardikSSL.java:17: error: class, interface, or enum expected struct JardikSSL_CERT; ^ JardikSSL.java:19: error: class, interface, or enum expected static inline enum JardikSSL_ERR ^ JardikSSL.java:19: error: '{' expected static inline enum JardikSSL_ERR ^ JardikSSL.java:20: error: ')' expected JardikSSL_CreateContext(struct JardikSSL_CTX **ctx_out, ^ JardikSSL.java:20: error: ',', '}', or ';' expected JardikSSL_CreateContext(struct JardikSSL_CTX **ctx_out, ^ JardikSSL.java:20: error: '}' expected JardikSSL_CreateContext(struct JardikSSL_CTX **ctx_out, ^ JardikSSL.java:21: error: '{' expected enum JardikSSL_CTXTYPE ctx_type, ^ JardikSSL.java:21: error: <identifier> expected enum JardikSSL_CTXTYPE ctx_type, ^ JardikSSL.java:22: error: ',', '}', or ';' expected int socket_fd, ^ JardikSSL.java:22: error: '}' expected int socket_fd, ^ JardikSSL.java:26: error: class, interface, or enum expected } ^ JardikSSL.java:28: error: illegal character: \35 #endif ^ 15 errors
jardik
je bezpečný. Každý požadavek je zašifrován funkcí f(x) = 1 xor tmp
. Počáteční hodnota tmp
je 1. Takový obsah je pak nemožné při cestě rozšifrovat ani nejmodernějšími technologiemi NSA, odolný vůči standardním* MITM útokům a odolný dokonce i vůči hloupému příjemci zprávy. Ten ji může rozšifrovat jen se znalostí původní zprávy!
Tohle nebyla chyba protokolu.
Může pomoci použít dvouúrovňové zabezpečení založené na dvou různých protokolech a dvou různých šifrách. Třeba SSL + SSH. Buď tunel, VPN, IPSEC… a nad tím ještě šifrování v aplikaci (ve které ideálně přenášíš zprávy šifrované end-to-end zase jinou technologií – např. GnuPG).
Případně ta jedna úroveň nemusí být šifrování, ale aspoň něco jako port-knocking nebo SCRAM, ke kterému musíš znát heslo, abys měl vůbec šanci se připojit k tomu SSL/SSH. A taky nějaký IDS/IPS systém.
Tohle nebyla chyba protokolu.Vím. A myslím, že Jardík má hlavně problém s tím, že existují CA - ale to se SSL nemá nic společného.
Jardík má hlavně problém s tím, že existují CAAno, to je pravda. Viz níže
Chyba je hlavně v tom, že některé prohlížeče či jiné balíčky, či operační systémy, s sebou tahají jakýsi "důvěryhodný seznam" certifikačních autorit, jímž je ve výchozím nastavení důvěřováno. Tato volba důvěry by měla zůstat na uživateli. Pokud už s sebou ten seznam tahají, měli by být všechny nastaveny jako nedůvěryhodné, dokud uživatel neurčí jinak.
To je sice hezké, ale uživatelé toho většinou nejsou schopní, takže jak to pak dopadne? Všechno bude nedůvěryhodné. Ale uživatel se k těm službám potřebuje připojit, takže to odklikne cokoli, jen aby se dostal na svůj Facebook, do své banky, na e-mail atd.
Bezpečné spojení pak pro BFU bude vypadat úplně stejně, jako spojení, na které dělá MITM jeho zlomyslný soused, správce sítě, ISP, tajná služba atd. Proto tu jsou výchozí CA, které umožňují alespoň části těchto útoků předejít.
Samozřejmě jim nelze slepě věřit a je vhodné to doplnit o další úroveň zabezpečení – např. by mohly být CA důvěryhodné systémově a pak důvěryhodnější ty. které si označil uživatel (zobrazovala by se jiná ikonka). Navíc by se měla kontrolovat změna certifikátu/klíče oproti minulému spojení a uživatel by měl být varován (to umí některé doplňky do prohlížečů). Případně to lze všechno podepsat ještě jinou CA – tím myslím DNSSEC/TLSA, což je sice špatné v tom, že je to monopolní systém, ale pro kontrolu to použít lze (jako pojistka, dvojitá kontrola). Také by šlo kontrolovat z více míst v Internetu, z různých sítí, zda server používá stejný certifikát – na to jsou opět doplňky do prohlížečů. Dále lze použít WOT a nechat uživatele podepisovat certifikáty jako je tomu v PGP.
Nakonec to vede na celou škálu úrovní důvěryhodnosti spojení, nikoli jen binární informaci důvěryhodný/nedůvěryhodný.
Navíc by se měla kontrolovat změna certifikátu/klíče oproti minulému spojení a uživatel by měl být varován (to umí některé doplňky do prohlížečů)Jaké? Nedávno mi někdo doporučoval CA Patrol, jenže ten nefunguje "správně", protože nezabrání spojení a odeslání dat, pouze mi vykydne varování, ale to už je pozdě. viz tu.
jj, to mi taky vadí, že sice zařve, ale kdyby se v tu chvíli odesílala nějaká důvěrná data1, tak je už pozdě.
Tyhle chyby se dají řešit, ale bez toho předschváleného seznamu důvěryhodných CA se BFU stejně asi neobejde – jak jsem psal, jsou různé kategorie útoků a je dobré ochránit uživatele alespoň před některými z nich, než to hodit všechno do jednoho pytle i s důvěryhodnými spojeními a tvářit se, že je všechno nedůvěryhodné, dokud si uživatel ručně nezkontroluje otisk klíče (protože většina uživatelů se na to bohužel vykašle).
[1] POST, HTTP autentizace nebo vlastně i cookies
Vždyť o tom píšu:
Také by šlo kontrolovat z více míst v Internetu, z různých sítí, zda server používá stejný certifikát – na to jsou opět doplňky do prohlížečů.
Jenže zkus se nad tím zamyslet. Znamená to, že pak věříš notářským serverům provozovaných nějakou jednou organizací nebo v rámci nějaké jedné infrastruktury. Tudíž vlastně jedné CA. A jak se do prohlížeče dostane seznam důvěryhodných notářských serverů? A jak zajistíš bezpečnou komunikaci s nimi? Asi by to chtělo šifrovat a podepisovat ten kanál, po kterém se ty informace posílají. Jak to budeš šifrovat? Kde na klientovi vezmeš certifikáty či veřejné klíče druhé strany (notáře), abys ji ověřil? Co budeš dělat, až dojde k vypršení nebo kompromitaci nějakého klíče notářského serveru a bude potřeba ho revokovat a vydat nový? Jak tuhle informaci dostaneš na klienty? Je to podobná situace jako u DNSSEC/TLSA – stále řešíš tu samou otázku (jak dostat nějaké veřejné klíče bezpečně na klienty) a navíc je to centralizovaný systém, nad kterým bdí jedna autorita (buď hierarchie DNS s jedním kořenem nebo nějací provozovatelé sítě notářských serverů). Navíc u těch notářských serverů je problém v tom, když se záškodník dohodne s datacentrem, kde je server, nebo jeho ISP a budou dělat MITM tam – pak všichni, včetně všech notářských serverů, uvidí stejný certifikát.
Řešení vidím v kombinaci více prostředků, několikanásobné ochraně a kontrole. Což tedy vede na nebinární hodnocení důvěryhodnosti (ne jen ano/ne, ale celá škála), se kterým se uživatel musí nějak vyrovnat a nějak ho vyhodnotit… což se asi uživatelé budou muset naučit nebo tu bude muset být nějaké rozumné výchozí nastavení. Ale každopádně plnohodnotná náhrada k systému PKI/CA v současnosti neexistuje.