Sådan fungerer sslbrain
Arkitektur, sikkerhed og dataflow.
sslbrain Cloud og din sslbrain
Din sslbrain kører lokalt hos dig. Cloud udsteder certifikaterne og leverer dem tilbage.
- Bliver på appliancen: private nøgler dannes her · krypteret vault (XChaCha20-Poly1305) · masternøgle kun i hukommelsen · papirkode på 12 ord låser op lokalt.
- Appliancen taler kun udgående på port 443, E2E-krypteret, med sslbrain Cloud, en EU-virksomhed med EU-hosting.
- Cloud håndterer: Cloud-logins · e-mailadvarsler · licens og betaling · CSR’er og offentlige certifikater.
- Cloud ser aldrig: private nøgler · adgangsoplysninger til servere og appliance · vault-indhold (servernavne, IP’er, OS og software, services, SSL-bindinger og indstillinger, lokale brugere) · DNS-API-adgangsoplysninger* (*medmindre I vælger at bruge dem til ACME i Cloud).
Hvilke data går hvorhen
Jeres data bliver på appliancen og ses kun i det lokale kontrolpanel med lokal adgang. Cloud kan ikke hente eller se dem.
Ud af appliancen sendes kun det, I bruger: data om offentligt udstedte certifikater, login til Cloud, data til Cloud-ACME-server og -klient, og de server- og certifikatdata, I vælger at få med i e-mail-advarsler.
Til Cloud sendes anonym metadata, når I udsteder certifikater og bruger DNS-API-proxyen.
Valgfrit kan I give Cloud adgang til bestemte diagnosedata, afsendelse af serverinformation i advarselsmails og logs til fejlfinding og til at forbedre produktet og agenterne.
DNS-API-credentials kan blive på jeres netværk. Appliancen kalder DNS-udbyderen direkte eller gennem vores proxy med TLS hele vejen til DNS-udbyderen, så Cloud kan ikke læse dem. Vil I bruge ACME-klienter direkte mod Cloud, kan de valgfrit gemmes i Cloud.
Appliancens vault krypterer med XChaCha20-Poly1305 og en nøgle på 256 bit. Beskeder mellem appliancen og service-agenterne er signeret og krypteret med AES-256-GCM, både direkte og via Cloud, som ikke kan læse dem.
sslbrain og dine servere
To modeller: push via SSH eller API til netværksudstyr og cloud-tjenester, eller pull via service-agenten på jeres servere.
- Windows- og Linux-servere får en service-agent. Den henter certifikatet fra appliancen og installerer det på sin egen server: IIS, Exchange, RDP og SQL Server på Windows, nginx, Apache og Postfix på Linux.
- Udstyr, der ikke kan køre en agent, fx FortiGate, F5, NetScaler og Palo Alto, får certifikatet fra appliancen. Den logger ind gennem udstyrets API (som regel port 443) eller over SSH (port 22) og installerer det. Der installeres intet på udstyret.
- Cloud-tjenester som AWS, Azure og Cloudflare får certifikatet fra appliancen gennem deres API.
- Appliancen gemmer kun logins til udstyr uden agent, krypteret i sin vault. Hver levering kontrolleres, og fejler den, kan sslbrain rulle tilbage til det certifikat, der var der før.
sslbrain håndterer alle platforme med certifikater fra ét sted, uanset om det er Windows, Linux, netværksudstyr eller cloud-tjenester.
Mange lokationer, én appliance
Servere i filialer, i en DMZ eller hos en hostingudbyder får en service-agent, der går via sslbrain Cloud. Der skal ikke bruges VPN, og der åbnes ingen porte ind.
- sslbrain-appliancen står på hovedkontoret. Hvert af de andre netværk, fx en filial, en DMZ, et datacenter eller et kundenetværk, får én service-agent.
- Hvert netværk forbinder kun udgående på port 443, gennem sin egen firewall, til sslbrain Cloud. Der er ingen forbindelser mellem netværkene.
- Service-agenten leverer certifikater til udstyret i sit eget netværk, fx FortiGate, webserver, F5, NetScaler eller firewall.
- Ingen VPN og ingen porte ind. Én service-agent pr. netværk er nok.
Én appliance, mange kundenetværk
Driver I it for flere kunder, kan én appliance i jeres eget netværk betjene dem alle. Hver kundes netværk, også en DMZ, får sin egen service-agent og forbinder kun udad til sslbrain Cloud.
- Én sslbrain-appliance i jeres eget netværk betjener mange kundenetværk. De private nøgler dannes på appliancen, ikke i sslbrain Cloud.
- Hvert kundenetværk får en service-agent. En kundes DMZ er et netværk for sig med sin egen service-agent.
- Hvert netværk forbinder kun udgående på port 443, gennem sin egen firewall, til sslbrain Cloud. Der er ingen forbindelser mellem kunderne og heller ingen mellem en kundes LAN og DMZ.
- Service-agenten leverer certifikater til udstyret i sit eget netværk, fx en Windows-server, F5, FortiGate eller NetScaler.
- Ingen VPN til kunderne og ingen porte ind.
ACME Cloud certifikatflow
sslbrain Cloud prøver CA'erne efter en prioriteret liste og skifter automatisk ved fejl.
- sslbrain-appliancen danner den private nøgle i jeres netværk. sslbrain Cloud ser den aldrig.
- Appliancen sender certifikatanmodningen (CSR) til sslbrain Cloud, udgående HTTPS på port 443, krypteret hele vejen (E2E). I dette flow taler appliancen kun med sslbrain Cloud.
- sslbrain Cloud beviser, at domænet er jeres, på den måde I vælger: CNAME viderestilling til your.autodns.sslbrain.net, adgang til jeres DNS-udbyders API eller en dns-persist-01 TXT-post. Én af dem er nok.
- CA’en udsteder certifikatet: Let’s Encrypt, DigiCert, Google Public CA, Sectigo eller GlobalSign. sslbrain Cloud følger en prioriteret liste og går videre til næste CA, hvis én fejler.
- Det offentlige certifikat kommer retur til appliancen over den samme udgående forbindelse.
- Appliancen leverer det, hvor det bruges: service-agenter på Windows- og Linux-servere (IIS, Exchange, nginx, Apache) henter det, og appliancen leverer det til FortiGate, F5, NetScaler, Palo Alto og andet udstyr.
Gratis CA'er som Let's Encrypt og Google Public CA bruges direkte. Betalte CA'er som DigiCert, GlobalSign og Sectigo kræver en enhedslicens.
Vault og kryptering
Al lokal data krypteres. Krypteringsnøglerne ligger i sslbrain Cloud Vault.
Hovednøglen ligger kun hos dig. sslbrain Cloud opbevarer kun en oplåsningsnøgle, der ikke giver adgang til dine data, og gemmer de tidligere oplåsningsnøgler, så en ældre backup stadig kan gendannes.
To måder at låse op på
Ved opstart henter sslbrain oplåsningsnøglen fra cloud, åbner den lokale kryptering og fjerner nøglen fra hukommelsen igen. Hvis du gendanner fra et ældre backup-snapshot, bruger cloud automatisk en tidligere nøgle til at åbne det. Mister du forbindelsen til cloud, kan du bruge den papirbackup, vi udleverede ved installation. Den ligger ikke hos os.
Beskyttelse mod kopiering
En kopi af din database virker ikke på en anden maskine. Cloud genkender den oprindelige installation, og en gendannelse skal om nødvendigt bekræftes af kontoejeren.
Agent-signering
FairSSL's agenter og scripts signeres med ECDSA P-384 på en fysisk YubiKey. Egne agenter signeres af jeres appliance. Intet kører usigneret.
- FairSSL signerer hver udgivelse med en hardwarenøgle (YubiKey): appliancen, service-agenterne og deploy-agenterne.
- Appliancen installerer kun signeret kode. Opdateringer kommer automatisk, eller I godkender dem manuelt.
- Alle scripts kan læses, før de kører på jeres servere.
- Serverne kører kun signerede scripts, og parametrene filtreres mod injection.
- En klonet appliance skal godkendes, før den kører.
Forslag fra brugere gennemgås, låses og udgives af FairSSL under FairSSL's signatur. Hvis vi signerer det, har vi gennemgået koden.
Du bestemmer, hvad agenterne må køre
Som standard kører agenterne kun agenter og scripts signeret med FairSSL's hardwarenøgle. Hver server har sit eget regelsæt for, hvad der må køre, og reglerne kan låses centralt via Group Policy. Appliancen kan ikke ændre dem.
Kodetransparens
Alt kan inspiceres. Ingen skjult kode, ingen black boxes.
Alt, der kører hos jer, er læsbar kode: appliancen, service-agenterne og installationsagenterne til push og pull. Intet hos jer er skjult. Windows-agenten leveres som MSI, og I kan selv bygge den fra kildekoden. Koden ligger på github.com/sslbrain.
Agenterne er YAML og scripts, som I kan læse i kontrolpanelet og på GitHub. Windows-service-agenten er en signeret Windows-tjeneste, der afviser usignerede scripts. sslbrain taler ACME med CA'en, så jeres servere ikke selv skal tale med en CA.
Hvis noget bliver kompromitteret
Hvad en angriber kan og ikke kan i hver del af systemet.
sslbrain Cloud
Kan stoppe en appliance, som er låsen mod kloning, og nægte en licens. Kan ikke se de data, der ligger på appliancen, styre appliancen, sende opgaver til jeres servere eller installere noget. Opdateringer kræver FairSSL's YubiKey-signatur, og I kan vælge manuel opdatering.
Appliancen
Kan bede de agenter, der allerede er installeret, om at køre FairSSL-signerede agentpakker med input, angriberen vælger. En pakke kan kun det, den er lavet til: certifikater, bindings og genstart af den tjeneste, der hører til. Kan ikke udgive opdateringer eller nye FairSSL-agenter. Egne agenter kører kun, hvor I har slået dem til på serveren. Push-adgangene i appliancens vault kan angriberen bruge.
En service-agent
Giver kun adgang til den server, den står på. Dens nøgle kan ikke bruges til andre servere, og appliancen kan spærre den.
Prøv sslbrain
Skriv dig på listen, så får du besked, så snart Community kan installeres.