{"id":172755,"date":"2026-05-19T18:24:53","date_gmt":"2026-05-19T16:24:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/ad-nihilum-0-4-3"},"modified":"2026-05-19T18:24:53","modified_gmt":"2026-05-19T16:24:53","slug":"ad-nihilum-0-4-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/ad-nihilum-0-4-3","title":{"rendered":"Ad Nihilum 0.4.3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ilmus Ad Nihilum 0.4.3 \u2014 minimalisti teenus kr\u00fcpteeritud s\u00f5numite vahetamiseks p\u00f5him\u00f5ttel \"lugesin \u2014 p\u00f5letasin\", mis on peamiselt suunatud self-hosting'ule.<\/p>\n<p>Server toimib ainult kui pime s\u00e4ilitustehnika. Kr\u00fcpteerimine ja dekr\u00fcpteerimine toimub ainult kliendi k\u00fcljel, braUSERIs (kasutades AES-GCM).<\/p>\n<h3>Omadused<\/h3>\n<ul>\n<li>kohalik kr\u00fcpteerimine ja dekr\u00fcpteerimine, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\">server<\/a> ei n\u00e4e kunagi v\u00f5tit;<\/li>\n<li>toetatakse t\u00e4iendavat kr\u00fcpteerimiskihte parooli abil, millest (1) server ei saa teada, (2) ei saa teada edastatud lingi kaudu;<\/li>\n<li>projekt sisaldab umbes 2200 rida serverikoodi C keeles ja 600 rida kliendikoodi JS'is, mis lihtsustab auditeerimist;<\/li>\n<li>Ad Nihilum s\u00f5ltub ainult libmicrohttpd-st. QR koodide genereerimiseks on lisatud muudatud versioon QRCode.js;<\/li>\n<li>kaasas on juhend kiireks kohaliku teenuse k\u00e4ivitamiseks ilma v\u00e4lise IP-ta;<\/li>\n<li>Ad Nihilum t\u00f6\u00f6tab ka Androidil, kaasas on vastav skript Termuxi kogumiseks;<\/li>\n<li>\u00fche niidi ja s\u00fcnkroonse teenus.<\/li>\n<\/ul>\n<h3>Muudatused<\/h3>\n<h4>Suur redigeerimine<\/h4>\n<ul>\n<li>Saadetud ja vastuv\u00f5etud s\u00f5numite lehed on eraldatud, vastav kliendikood.<\/li>\n<li>Tegelikult on disain oluliselt muudetud ja kohandatud lorchani soovide arvesse v\u00f5tmisega.<\/li>\n<li>\"Lihtsad\" ja kohalikud kliendid:\n<ul> <noindex><\/p>\n<li>lihtsa disainiga klient on lisatud. <a rel=\"nofollow\" href=\"https:\/\/adnihilum.net\/simple\">https:\/\/adnihilum.net\/simple<\/a>;<\/li>\n<p><\/noindex> <\/p>\n<li>kliendilehed saab salvestada kohalikult ja kasutada file:\/\/ kaudu.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>BraUSERi poliitikad<\/h4>\n<ul>\n<li>CSP on rakendatud XSS-i vastu v\u00f5itlemiseks;<\/li>\n<li>server saadab HSTS.<\/li>\n<\/ul>\n<h4>Muud muudatused<\/h4>\n<ul>\n<li>projekt on \u00fcmbernimetatud Epha-otsist;<\/li>\n<li>domeen adnihilum.net on ostetud;<\/li>\n<li>TLS-i tagab Let\u2019s Encrypt, mida tasub meeles pidada (raha pole);<\/li>\n<li>failide kasutamine on lihtsustatud;<\/li>\n<li>\u00fcleminek rasvastele punkti t\u00e4histele;<\/li>\n<li>v\u00e4ikesed vead on parandatud;<\/li>\n<li>auto-jsminify ja kliendifailide koostamine CMake'i kaudu koostamise ajal.<\/li>\n<\/ul>\n<h3>Protokolli \u00fclevaade<\/h3>\n<p>Genereeri kolm juhuslikku v\u00e4\u00e4rtust: v\u00f5ti <strong>K<\/strong>, initsialiseerimise vektor <strong>N<\/strong> ja sool <strong>S<\/strong>. <strong>K<\/strong> \u2014 256 bitti, <strong>N<\/strong> \u2014 96 bitti, <strong>S<\/strong> \u2014 128 bitti.<\/p>\n<p>V\u00e4ljasta <strong>ID<\/strong> API-s <strong>K<\/strong> ja <strong>S<\/strong> HKDF abil, kasutades SHA-256.<\/p>\n<p>Koosta t\u00e4iendavate autentimisandmete string <strong>aad<\/strong> \u2014 see on lihtsalt string kujul: id=ID<\/p>\n<p>Kui kasutaja on m\u00e4\u00e4ranud parooli:<\/p>\n<ul>\n<li>v\u00e4ljasta <strong>Pk<\/strong> paroolist ja <strong>S<\/strong> kasutades PBKDF2, SHA-256, 800000 iteratsiooni;<\/li>\n<li>sama soola kasutatakse k\u00f5ikjal;<\/li>\n<li>kr\u00fcpteerida andmed AES-GCM abil, kasutades v\u00f5tit <strong>Pk<\/strong>, IV\/nonce <strong>N<\/strong> ja edastada <strong>aad<\/strong>.<\/li>\n<\/ul>\n<p>Lisa kahebiti silt juba kr\u00fcpteeritud andmetele, kui parool oli, v\u00f5i alg-andmetele, kui parooli ei olnud.<\/p>\n<p>Esimene bait on oluline: see n\u00e4itab, kas andmed on parooliga kr\u00fcpteeritud:<\/p>\n<ul>\n<li>0x73 \u2014 andmed on parooliga kr\u00fcpteeritud;<\/li>\n<li>0x13 \u2014 andmed ei ole parooliga kr\u00fcpteeritud.<\/li>\n<\/ul>\n<p>Teine bait on p\u00fcsi v\u00e4\u00e4rtus 0x37.<\/p>\n<p>Kr\u00fcpteerige tulemus uuesti AES-GCM abil, kasutades sama iv = N ja sama <strong>aad<\/strong>. See annab l\u00f5pliku kr\u00fcpteeritud teksti <strong>ct<\/strong>.<\/p>\n<p>Kleebi baitid stringiks: blob = N .. S .. ct<\/p>\n<p>Saada <strong>blob<\/strong> serverisse koos <strong>ID<\/strong>. Server naaseb <strong>blob<\/strong> selle abil <strong>ID<\/strong> ja ei saa seda asendada: klient kontrollib seda esmalt <strong>ID<\/strong> kasutades <strong>N<\/strong> ja <strong>K<\/strong> veel enne dekr\u00fcpteerimist, ja seej\u00e4rel - l\u00e4bi <strong>aad<\/strong>.<\/p>\n<p>Klient salvestab <strong>K<\/strong>. <strong>K<\/strong> kunagi ei saadeta serverisse. <strong>Pk<\/strong> ka ei saadeta; k\u00f5ik, mis on seotud parooliga, kustutatakse m\u00e4lust.<\/p>\n<p>Klient koostab lingi: origin\/#ID\/K<\/p>\n<p>Siin <strong>ID<\/strong> ja <strong>K<\/strong> \u2014 stringid vormingus base64url.<\/p>\n<p>Kui saaja avab lingi:<\/p>\n<ul>\n<li>brauser ignoreerib k\u00f5ike, mis algab #; seda nimetatakse location.hash;<\/li>\n<li>kliendi rakendus laaditakse serverist;<\/li>\n<li>minu arvates on see peamine auk: me p\u00f5rkame tegelikult taas vastu seda, et \"TLS on auklik\";<\/li>\n<li>siiski ei takista miski kliendi off-line hoidmist;<\/li>\n<li>ideaalis peaks olema eraldi iseseisev klient.<\/li>\n<\/ul>\n<p>Kliendi JavaScript kontrollib location.hash ja kui seal on <strong>ID<\/strong> ja <strong>K<\/strong>, laadib ta andmed serverist.<\/p>\n<p>Seej\u00e4rel kontrollib ta neid, dekr\u00fcpteerib ja vajadusel k\u00fcsib parooli ja dekr\u00fcpteerib veel kord.<\/p>\n<h3>Litsents<\/h3>\n<p>Projekt levitatakse GPLv3 alusel.<\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18293734\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ad Nihilum 0.4.3 \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 &laquo;\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u2014 \u0441\u0436\u0435\u0433&raquo;, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 self-hosting. C\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043b\u0438\u0448\u044c \u0432 \u0440\u043e\u043b\u0438 \u0433\u043b\u0443\u0445\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (\u0447\u0435\u0440\u0435\u0437 AES-GCM). \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u043a\u043b\u044e\u0447\u0430; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-172755","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ad Nihilum 0.4.3 \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u00ab\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u2014 \u0441\u0436\u0435\u0433\u00bb, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 self-hosting. C\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043b\u0438\u0448\u044c \u0432 \u0440\u043e\u043b\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/ad-nihilum-0-4-3\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Ad Nihilum 0.4.3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ad Nihilum 0.4.3 \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u00ab\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u2014 \u0441\u0436\u0435\u0433\u00bb, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 self-hosting. C\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043b\u0438\u0448\u044c \u0432 \u0440\u043e\u043b\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/ad-nihilum-0-4-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-19T16:24:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-19T16:24:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ad Nihilum 0.4.3 | ProHoster","description":"V\u00e4lja anti Ad Nihilum 0.4.3 \u2014 minimalistlik teenus kr\u00fcpteeritud s\u00f5numite vahetamiseks p\u00f5him\u00f5ttega \"loetud - p\u00f5letatud\", mis on suunatud peamiselt self-hostingule. Server m\u00e4ngib vaid rolli.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/ad-nihilum-0-4-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Ad Nihilum 0.4.3 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Ad Nihilum 0.4.3 \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u00ab\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u2014 \u0441\u0436\u0435\u0433\u00bb, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 self-hosting. C\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043b\u0438\u0448\u044c \u0432 \u0440\u043e\u043b\u0438.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/ad-nihilum-0-4-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-19T16:24:53+00:00","article:modified_time":"2026-05-19T16:24:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/172755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=172755"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/172755\/revisions"}],"predecessor-version":[{"id":173166,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/172755\/revisions\/173166"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=172755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=172755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=172755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}