Kryptografisten riippuvuuksien auditointi ja valinta
Soveltakaa viitekehystä kryptografisten kirjastoriippuvuuksien arviointiin, auditointiin ja ylläpitoon.
Kryptografisten riippuvuuksien auditointi ja valinta on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.
Miksi kirjaston valinnalla on merkitystä
Valitsemanne salauskirjasto on yksi projektin merkittävimmistä tietoturvapäätöksistä. Vaikka kehittäjät toimisivat hyvässä uskossa, he voivat huonon kirjaston avulla tuottaa turvattomia järjestelmiä. Hyvin suunniteltu kirjasto puolestaan vaikeuttaa vakavien virheiden tekemistä. Valintaprosessin tulisi olla järjestelmällinen, ja siinä tulisi arvioida kirjaston tietoturvahistoriaa, API-suunnittelua, ylläpidon tilaa ja soveltuvuutta käyttötarkoitukseen.
Auditoinnin ajankohta ja laajuus
Yksi ensimmäisistä salauskirjastoa koskevista kysymyksistä on, milloin se on viimeksi auditoitu riippumattomasti ja mitä auditointi kattoi. Viisi vuotta sitten versiolle 1.0 tehty auditointi antaa vähemmän varmuutta nykyisin käytettävästä versiosta 3.0. Etsikää hyvämaineisten tietoturvayritysten, kuten NCC Groupin, Trail of Bitsin, Quarkslabin ja Cure53:n, tekemiä auditointeja, jotka kattavat juuri ne toiminnallisuudet, joita aiotte käyttää. Jotkin kirjastot julkaisevat auditointiraportit avoimesti; auditointien täydellinen puuttuminen on merkittävä riskitekijä.
CVE-historia ja korjausten julkaiseminen
Tarkistakaa kirjaston CVE-historia NVD:stä (National Vulnerability Database). Tarkastelkaa seuraavia asioita: CVE-tapausten määrää, niiden vakavuusluokituksia, sitä, millaisia haavoittuvuuksia ne edustavat (logiikkavirheitä, muistivaurioita vai algoritmien heikkouksia), sekä sitä, kuinka nopeasti ylläpitäjät julkaisivat korjaukset. Kirjasto, jossa esiintyy ajoittain nopeasti korjattavia CVE-haavoittuvuuksia, osoittaa ylläpidon reagoivan hyvin. Kirjasto, jossa on paljon vakavia CVE-haavoittuvuuksia tai jonka korjausten julkaiseminen on hidasta, on varoitusmerkki.
Aktiivinen ylläpito ja yhteisö
Ylläpitämättömät salauskirjastot ovat vaarallisia. Tarkistakaa viimeisimmän commitin päivämäärä, julkaisutiheys ja se, käsitelläänkö tietoturvatiedotteissa ilmoitettuja ongelmia. Kirjastossa, jonka viimeisin commit on kolmen vuoden takaa, voi olla tunnettuja haavoittuvuuksia, joita ei koskaan korjata. Yhteisön koolla on merkitystä tarkastelun laajuuden kannalta: tietoturvatutkijat tarkastelevat laajasti käytettyjä kirjastoja perusteellisemmin kuin pieniä erikoisprojekteja.
API-pinta ja väärinkäytön estäminen
Suppeampi ja vahvemmin kantaa ottava API-pinta on tietoturvan kannalta parempi. Kirjastot, jotka tarjoavat paljon algoritmivaihtoehtoja ja määritysasetuksia, luovat mahdollisuuksia virheellisiin asetuksiin. Verratkaa libsodiumia (yksi funktio käyttötapausta kohden, kiinteä algoritmi) OpenSSL EVP:hen (salausalgoritmi, toimintatila, avaimen koko, täyte ja IV:n käsittely valitaan erikseen). Mitä vaikeampaa kirjaston virheellinen käyttö on, sitä paremmin se soveltuu tietoturvatietoisiin projekteihin.
Vakioaikaisen toteutuksen varmistaminen
Salaisia tietoja käsittelevissä toiminnoissa, kuten avainten vertailussa, salauksen purkamisessa ja allekirjoitusten varmentamisessa, toteutuksen on käytettävä vakioaikaisia algoritmeja, jotka eivät tee haarautumisia eivätkä käytä muistia salaisten arvojen perusteella. Varmistakaa, että kirjaston dokumentaatiossa ilmoitetaan nimenomaisesti arkaluontoisten toimintojen vakioaikaiset takuut tai että lähdekoodissa käytetään hyväksyttyjä vakioaikaisia vertailufunktioita. Kirjastot, jotka eivät tarjoa tällaista takuuta, ovat alttiita ajoitukseen perustuville sivukanavahyökkäyksille.
Algoritmituki ja ajanmukaisuus
Hyvän salauskirjaston tulisi tukea nykyaikaisia algoritmeja ja valmistautua vanhentuneiden algoritmien poistamiseen käytöstä. Sen tulisi tarjota salaukseen ChaCha20-Poly1305 tai AES-256-GCM, allekirjoituksiin Ed25519 tai ECDSA P-256, avaintenvaihtoon X25519 ja salasanojen hajautukseen Argon2id. Kirjastot, jotka tarjoavat vain vanhoja algoritmeja (DES, RC4, MD5, SHA-1), eivät sovellu uusiin käyttöönottoihin muista ominaisuuksistaan riippumatta.
Toimitusketjun tietoturva
Arvioikaa transitiviset riippuvuudet: mistä kirjastoista salauskirjastonne riippuu ja millainen niiden tietoturvan taso on? Kirjastolla, jolla ei ole ulkoisia riippuvuuksia, kuten libsodiumilla, on toimitusketjun kannalta vain vähän riskejä. Kirjastolla, joka riippuu tusinasta npm-paketista ja jonka jokaisella paketilla on omat riippuvuutensa, on toimitusketjun kautta laaja hyökkäyspinta. Tarkistakaa, käyttääkö kirjasto toistettavia koontiversioita, joiden avulla voidaan varmistaa, että jaeltu binääri vastaa lähdekoodia.
FIPS 140-2/3 -validointivaatimukset
Säännellyillä toimialoilla, kuten terveydenhuollossa, rahoitusalalla ja julkishallinnossa, edellytetään usein FIPS 140-2- tai FIPS 140-3 -standardin mukaisesti validoituja salausmoduuleja. FIPS-validointi on kallista ja aikaa vievää, joten vain osalla kirjastoista on se. OpenSSL FIPS-providerin kanssa, BoringCrypto (Go:n crypto/tls:n käyttämä) ja jotkin HSM-kirjastot ovat FIPS-validoituja. Jos käyttöönottonne edellyttää FIPS-vaatimustenmukaisuutta, tämä vaatimus rajaa kirjastovaihtoehtoja huomattavasti.
HSM- ja pilvipalveluiden KMS-toimittajaloukun riski
Hardware Security Modules (HSM:t) ja pilvipalveluiden KMS-palvelut käyttävät avaintoimintoihin usein omia rajapintojaan. Sovelluksen tiivis kytkeminen AWS KMS:ään tai tietyn HSM-toimittajan ratkaisuun aiheuttaa toimittajaloukun riskin. Arvioikaa, tarjoaako kirjasto abstraktiokerroksia, kuten Tinkin KMS-integraation, joiden avulla palveluntarjoajaa voidaan vaihtaa. Huomioikaa myös, että jos HSM-toimittaja lopettaa tuen tai korottaa hintoja, siirtymiskustannukset voivat olla huomattavat.
Perusperiaate
Tärkein sääntö salausriippuvuuksia valittaessa on käyttää tunnettuja ja laajasti käyttöönotettuja kirjastoja, jotka toteuttavat vakiintuneita standardeja, eikä koskaan toteuttaa salausprimitiivejä itse. Vaikka ymmärtäisitte teorian kuinka hyvin tahansa, AES:n, RSA:n, elliptisten käyrien operaatioiden tai todennetun salauksen toteuttaminen oikein tuotantokoodissa on erittäin vaikeaa, eikä se lähes koskaan ole todistetun kirjaston käyttämiseen verrattuna riskin arvoista.
Salauskirjaston arviointi
Mikä tekijä on TÄRKEIN arvioitaessa salauskirjastoa uutta projektia varten?
Salausriippuvuuksien auditoinnin yhteenveto
Kirjaston valinnan tarkistuslista: tarkistakaa viimeaikaisen riippumattoman auditoinnin laajuus ja raportti, tarkastelkaa CVE-historiaa ja korjausten julkaisemiseen kuluvaa aikaa, varmistakaa aktiivinen ylläpito ja yhteisön osallistuminen, suosikaa väärinkäyttöä rajoittavia suppeampia API-pintoja, varmistakaa arkaluontoisten toimintojen vakioaikaiset takuut, varmistakaa nykyaikaisten algoritmien tuki, arvioikaa toimitusketjun riippuvuudet, tarkistakaa FIPS-validointi säännellyillä toimialoilla, huomioikaa KMS-toimittajaloukun riski ja käyttäkää aina vakiintuneita kirjastoja sen sijaan, että toteuttaisitte primitiivit itse.
Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 67
- Oppitunnit
- 261
Usein kysytyt kysymykset
Onko oppitunti ”Kryptografisten riippuvuuksien auditointi ja valinta” ilmainen?
Kyllä – oppitunnin ”Kryptografisten riippuvuuksien auditointi ja valinta” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Kryptografisten riippuvuuksien auditointi ja valinta”?
Soveltakaa viitekehystä kryptografisten kirjastoriippuvuuksien arviointiin, auditointiin ja ylläpitoon. Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Kryptografisten riippuvuuksien auditointi ja valinta”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?
Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- libsodium: väärinkäytön kestävä kryptografiakirjasto
- OpenSSL API: keskeiset rakenteet ja sudenkuopat
- Google Tink: turvallinen korkean tason kryptografia
- Kryptografisten riippuvuuksien auditointi ja valinta