Grunnleggende
I Verji er alle data beskyttet av kryptering, både under flyvning og i hvile. I tillegg er meldinger, filer og bilder som kommuniseres i Verji-rom, beskyttet av et ekstra lag med ende-til-ende-kryptering (E2EE).
Bruk av standarder
Motstandere og angripere har tilgang til stadig kraftigere verktøy og metoder, så selv om ekspertise og kunnskap og kunnskap tidligere var avgjørende for effektive angrep, er vi nå i ferd med å komme i en situasjon der motivasjon er det eneste som kreves for å utføre avanserte angrep.
I tillegg er det notorisk vanskelig å implementere sikker teknologi.
Med dette som bakteppe unngår Verji Tech å finne opp ny krypto og nye protokoller, og baserer seg i stedet på industristandarder, beste praksis og kamptestede rammeverk og implementeringer der det er mulig.
Kjernen i Verji er basert på Matrix, som er en åpen standard og protokoll, med et levende fellesskap og en sunn og transparent styringsmodell (https://matrix.org/about/)
Med denne strategien er Verji i godt selskap, ettersom mange andre sikkerhetsbevisste organisasjoner har valgt valgt å bygge sine løsninger på de samme kjerneteknologiene, f.eks.
- Det tyske forsvaret: https://element.io/blog/bundesmessenger-is-a-milestone-in-germanys-ground-breaking-vision/
- Gematik (tysk helsevesen): https://element.io/matrix-in-germany/projects/ti-messenger
- Franske myndigheter: https://element.io/case-studies/tchap
- Sverige: https://element.io/blog/dsam-och-esam-forordar-matrix-for-saker-och-federerad-kommunikation-inom-sveriges-offentliga-sektor/
- Mozilla: https://matrix.org/blog/2019/12/19/welcoming-mozilla-to-matrix/
Meldingsformidling
Verji benytter seg av kamptestede og anerkjente metoder for meldingskryptering. Verji benytter Elliptic Curve Cryptopgraphy (ECC) sammen med Advanced Encryption Standard (AES), for å beskytte innhold som
meldinger, filer og bilder. For å støtte asynkron kommunikasjon, der alle parter kanskje ikke er online samtidig, bruker vi en Double Ratched-algoritme (https://en.m.wikipedia.org/wiki/Double_Ratchet_Algorithm.)
Verji bruker en implementering av Double Ratchet-algoritmen kalt Olm. For å muliggjøre effektiv kommunikasjon også i gruppesamtaler med mange deltakere, brukes en gruppeskralle kalt Megolm. For mer informasjon om Olm og Megolm, se:
- https://gitlab.matrix.org/matrix-org/olm/-/blob/master/docs/olm.md
- https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md
En tredjeparts, uavhengig analyse og revisjon av Olm 1.3.0 finner du her:
Sårbarhetene som er omtalt i rapporten, ble adressert og rettet i den påfølgende versjonen av Olm (v2.0.0 fra 25/10-2016).
En nyere, Rust-basert implementering av Olm- og Megolm-protokollene (kalt Vodozemac) er utviklet og vedlikeholdt her:
Og en tredjepartsanalyse og revisjon av implementasjonen finnes her:
For å utveksle meldinger og forhandle om nøkler bruker Verji den åpne, kamptestede og veldokumenterte Matrix protokoll https://en.wikipedia.org/wiki/Matrix_(protocol)
En analyse av nøkkelutvekslingsprotokollen i Matrix finner du her:
Autentisering og autorisasjon
Autentisering
For å autentisere brukere bruker Verji industristandarden OpenIdConnect-protokollen, som er basert på OAuth 2.0-rammeverket. Implementeringen bruker det modne og OpenId-sertifiserte Duende-rammeverket, som også er omtalt i den offisielle Microsoft Identity-dokumentasjonen:
- https://duendesoftware.com/
- https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-8.0&tabs=visual-studio
Autorisasjon
Finkornet tilgangskontroll er implementert i Verji ved hjelp av det populære Casbin-rammeverket.
Oppsummering
For å oppsummere: Verji bruker veletablerte, velprøvde, industristandardiserte algoritmer, protokoller og rammeverk for å sikre brukerens meldinger og kontoer.