Ad Nihilum 0.4.3

Ilmus Ad Nihilum 0.4.3 — minimalistlik teenus, mis pĂ”hineb pĂ”himĂ”ttel "luges — pĂ”letada" ja on suunatud peamiselt self-hosting'ule.

Server toimib ainult kui pime sĂ€ilitustehnika. KrĂŒpteerimine ja dekrĂŒpteerimine toimub ainult kliendi kĂŒljel, braUSERIs (kasutades AES-GCM).

Omadused

  • kohalik krĂŒpteerimine ja dekrĂŒpteerimine, server ei nĂ€e kunagi vĂ”tit;
  • toetatakse tĂ€iendavat krĂŒpteerimiskihte parooli abil, millest (1) server ei saa teada, (2) ei saa teada edastatud lingi kaudu;
  • projekt sisaldab umbes 2200 rida serverikoodi C keeles ja 600 rida kliendikoodi JS'is, mis lihtsustab auditeerimist;
  • Ad Nihilum sĂ”ltub ainult libmicrohttpd-st. QR koodide genereerimiseks on lisatud muudatud versioon QRCode.js;
  • kaasas on juhend kiireks kohaliku teenuse kĂ€ivitamiseks ilma vĂ€lise IP-ta;
  • Ad Nihilum töötab ka Androidil, kaasas on vastav skript Termuxi kogumiseks;
  • ĂŒhe niidi ja sĂŒnkroonse teenus.

Muudatused

Suur redigeerimine

  • Saadetud ja vastuvĂ”etud sĂ”numite lehed on eraldatud, vastav kliendikood.
  • Tegelikult on disain oluliselt muudetud ja kohandatud lorchani soovide arvesse vĂ”tmisega.
  • "Lihtsad" ja kohalikud kliendid:
    • lihtsa disainiga klient on lisatud. https://adnihilum.net/simple;
    • kliendilehed saab salvestada kohalikult ja kasutada file:// kaudu.

BraUSERi poliitikad

  • CSP on rakendatud XSS-i vastu vĂ”itlemiseks;
  • server saadab HSTS.

Muud muudatused

  • projekt on ĂŒmbernimetatud Epha-otsist;
  • domeen adnihilum.net on ostetud;
  • TLS-i tagab Let's Encrypt, seda on oluline meeles pidada (raha pole);
  • failide kasutamine on lihtsustatud;
  • ĂŒleminek rasvastele punkti tĂ€histele;
  • vĂ€ikesed vead on parandatud;
  • auto-jsminify ja kliendifailide koostamine CMake'i kaudu koostamise ajal.

Protokolli ĂŒlevaade

Genereeri kolm juhuslikku vÀÀrtust: vĂ”ti K, initsialiseerimise vektor N ja sool S. K — 256 bitti, N — 96 bitti, S — 128 bitti.

VĂ€ljasta ID API-s K ja S HKDF abil, kasutades SHA-256.

Koosta tĂ€iendavate autentimisandmete string aad — see on lihtsalt string kujul: id=ID

Kui kasutaja on mÀÀranud parooli:

  • vĂ€ljasta Pk paroolist ja S kasutades PBKDF2, SHA-256, 800000 iteratsiooni;
  • sama soola kasutatakse kĂ”ikjal;
  • krĂŒpteerida andmed AES-GCM abil, kasutades vĂ”tit Pk, IV/nonce N ja edastada aad.

Lisa kahebiti silt juba krĂŒpteeritud andmetele, kui parool oli, vĂ”i alg-andmetele, kui parooli ei olnud.

Esimene bait on oluline: see nĂ€itab, kas andmed on parooliga krĂŒpteeritud:

  • 0x73 — andmed on parooliga krĂŒpteeritud;
  • 0x13 — andmed ei ole parooliga krĂŒpteeritud.

Teine bait on pĂŒsi vÀÀrtus 0x37.

KrĂŒpteerige tulemus uuesti AES-GCM abil, kasutades sama iv = N ja sama aad. See annab lĂ”pliku krĂŒpteeritud teksti ct.

Kleebi baitid stringiks: blob = N .. S .. ct

Saada blob serverisse koos ID. Server naaseb blob selle abil ID ja ei saa seda asendada: klient kontrollib seda esmalt ID kasutades N ja K veel enne dekrĂŒpteerimist, ja seejĂ€rel - lĂ€bi aad.

Klient salvestab K. K kunagi ei saadeta serverisse. Pk ka ei saadeta; kÔik, mis on seotud parooliga, kustutatakse mÀlust.

Klient koostab lingi: origin/#ID/K

Siin ID ja K — stringid vormingus base64url.

Kui saaja avab lingi:

  • brauser ignoreerib kĂ”ike, mis algab #; seda nimetatakse location.hash;
  • kliendi rakendus laaditakse serverist;
  • minu arvates on see peamine auk: me pĂ”rkame tegelikult taas vastu seda, et "TLS on auklik";
  • siiski ei takista miski kliendi off-line hoidmist;
  • ideaalis peaks olema eraldi iseseisev klient.

Kliendi JavaScript kontrollib location.hash ja kui seal on ID ja K, laadib ta andmed serverist.

SeejĂ€rel kontrollib ta neid, dekrĂŒpteerib ja vajadusel kĂŒsib parooli ja dekrĂŒpteerib veel kord.

Litsents

Projekt levitatakse GPLv3 alusel.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster