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.

Tegning: sslbrain-appliancen står på et pengeskab i jeres netværk, med en papirkode ved siden af. Private nøgler dannes på appliancen, vaulten er krypteret med XChaCha20-Poly1305, masternøglen findes kun i hukommelsen, og en papirkode på 12 ord låser op lokalt. Én pil går fra appliancen gennem åbningen i firewallen, udgående på port 443 og E2E-krypteret, til 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 eller vault-indhold, og heller ikke DNS-API-adgangsoplysninger, medmindre I vælger at bruge dem til ACME i Cloud.
  • 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.

Detaljer i manualen

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.

Tegning: sslbrain-appliancen i jeres netværk. En Windows-serviceagent og en Linux-serviceagent henter hver deres certifikater fra appliancen og installerer dem på deres egen server: IIS, Exchange, RDP og SQL Server på Windows, nginx, Apache og Postfix på Linux. Appliancen leverer gennem API eller over SSH til en firewall, FortiGate, F5, NetScaler og Palo Alto og gennem API til cloud-tjenester som AWS, Azure og Cloudflare. Der installeres intet på udstyret, og logins gemmes krypteret i appliancens vault.
  • 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.

Tegning: sslbrain Cloud øverst og fem adskilte netværk under: en filial, en DMZ, hovedkontoret med sslbrain-appliancen og Windows- og Linux-servere, et datacenter og et kundenetværk. Hvert netværk har én pil, udgående på port 443 gennem sin egen firewall, op til sslbrain Cloud, og der er ingen pile mellem netværkene. I de andre netværk leverer en service-agent til det lokale udstyr: FortiGate, webserver og F5, NetScaler og firewall.
  • 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.
Servere uden for jeres netværk i manualen

É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.

Tegning: én sslbrain-appliance til mange kundenetværk. Appliancen står i jeres eget netværk og danner nøglerne der, ikke i sslbrain Cloud. Under sslbrain Cloud er fire adskilte kundenetværk: kunde A’s LAN og kunde A’s DMZ, kunde B og kunde C. Hvert netværk har sin egen firewall og én pil, udgående på port 443, op til sslbrain Cloud, og der er ingen pile mellem netværkene. I hvert kundenetværk leverer en service-agent til det lokale udstyr: en Windows-server, F5, FortiGate og NetScaler.
  • É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.

Tegning: certifikatets rejse. sslbrain-appliancen i jeres netværk danner den private nøgle. Den sender kun certifikatanmodningen (CSR) til sslbrain Cloud, udgående på port 443 og E2E-krypteret, og får det offentlige certifikat retur samme vej. sslbrain Cloud klarer domænevalideringen med ét af tre ligeværdige valg, CNAME viderestilling til your.autodns.sslbrain.net, DNS API-adgang eller en dns-persist-01 TXT-post, og får CA’en til at udstede certifikatet: Let’s Encrypt, DigiCert, Google Public CA, Sectigo eller GlobalSign. Derefter leverer appliancen det: Windows- og Linux-servere henter det, og appliancen leverer til FortiGate, F5, NetScaler og Palo Alto.
  1. sslbrain-appliancen danner den private nøgle i jeres netværk. sslbrain Cloud ser den aldrig.
  2. 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.
  3. 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.
  4. 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.
  5. Det offentlige certifikat kommer retur til appliancen over den samme udgående forbindelse.
  6. 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.

Tegning: FairSSL signerer hver udgivelse med en hardwarenøgle. Appliancen, service-agenterne og deploy-agenterne går som signerede pakker til appliancen, der kun installerer signeret kode, automatisk eller efter manuel godkendelse. På Windows- og Linux-serverne kan alle scripts læses, før de kører, og kun signerede scripts kører. En klonet appliance skal godkendes, før den kører.
  • 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.

FairSSL-signeret: kun scripts signeret af FairSSL
Community: en indstilling i script-politikken. Kataloget har i dag ingen community-scripts
Egne agenter: signeres af jeres appliance og kører kun på en server, hvor I selv har slået det til
Frys koden: afvis alt signeret efter en valgt dato

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.

Læs mere i manualen

Prøv sslbrain

Skriv dig på listen, så får du besked, så snart Community kan installeres.