V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.
Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.
FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.
K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.
Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.
Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
#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
Taky mám problém s tím, že na domény má mít monopol jakási americká společnost. V tom, mít vlastní DNS a rozdávat zdarma domény, mi brání různé korporace, které nechcou uznávát mnou darované domény.
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.