Så fungerar sslbrain

Arkitektur, säkerhet och dataflöden.

sslbrain Cloud och er sslbrain-appliance

Er sslbrain-appliance körs lokalt hos er. sslbrain Cloud utfärdar certifikaten och levererar dem tillbaka.

Teckning: sslbrain-appliancen står på ett kassaskåp i ert nätverk, med en papperskod bredvid. Privata nycklar skapas på appliancen, valvet är krypterat med XChaCha20-Poly1305, huvudnyckeln finns bara i minnet och en papperskod med 12 ord låser upp lokalt. En pil visar den utgående, E2E-krypterade anslutningen på port 443 från appliancen genom öppningen i brandväggen till sslbrain Cloud, ett EU-företag med hosting i EU. Cloud hanterar inloggningar till Cloud, aviseringar via e-post, licens och betalning, CSR:er och publika certifikat. Cloud ser aldrig privata nycklar, inloggningsuppgifter till servrar och appliance eller valvets innehåll, och inte heller inloggningsuppgifter till DNS-API:t, om ni inte väljer att använda dem för ACME i Cloud.
  • Stannar på appliancen: privata nycklar skapas här · krypterat valv (XChaCha20-Poly1305) · huvudnyckel bara i minnet · papperskod med 12 ord låser upp lokalt.
  • Appliancen kommunicerar med sslbrain Cloud bara via utgående, E2E-krypterade anslutningar på port 443. sslbrain Cloud drivs av ett EU-företag med hosting i EU.
  • Cloud hanterar: inloggningar till Cloud · aviseringar via e-post · licens och betalning · CSR:er och publika certifikat.
  • Cloud ser aldrig: privata nycklar · inloggningsuppgifter till servrar och appliance · valvets innehåll (servernamn, IP-adresser, OS och programvara, tjänster, SSL-bindningar och inställningar, lokala användare) · inloggningsuppgifter till DNS-API:t* (*om ni inte väljer att använda dem för ACME i Cloud).

Vilka data som går vart

Era data stannar på appliancen och syns bara i den lokala kontrollpanelen med lokal åtkomst. sslbrain Cloud kan inte hämta eller se dem.

Från appliancen skickas bara data för de funktioner ni använder: data om offentligt utfärdade certifikat, data för inloggning i sslbrain Cloud, data till ACME-servern och ACME-klienten i sslbrain Cloud samt de server- och certifikatdata ni väljer att ta med i e-postvarningar.

Till sslbrain Cloud skickas anonyma metadata när ni utfärdar certifikat och använder DNS-API-proxyn.

Om ni vill kan ni låta sslbrain Cloud ta emot vissa diagnostikdata, skicka serverinformation i varningsmejl och ta emot loggar för felsökning och för att förbättra produkten och agenterna.

Nycklarna till ert DNS-API kan stanna i ert nätverk. Appliancen anropar DNS-leverantören direkt eller via vår proxy med TLS hela vägen till DNS-leverantören, så sslbrain Cloud kan inte läsa dem. Vill ni använda ACME-klienter direkt mot sslbrain Cloud kan ni välja att spara nycklarna där.

Appliancens vault krypteras med XChaCha20-Poly1305 och en 256-bitarsnyckel. Meddelanden mellan appliancen och serviceagenterna är signerade och krypterade med AES-256-GCM, både direkt och via sslbrain Cloud, som inte kan läsa dem.

Detaljer i manualen

sslbrain och era servrar

Två modeller: push via SSH eller API till nätverksutrustning och molntjänster, eller pull via serviceagenten på era servrar.

Teckning: sslbrain-appliancen i ert nätverk. En Windows-serviceagent och en Linux-serviceagent hämtar var sina certifikat från appliancen och installerar dem på sin egen server: IIS, Exchange, RDP och SQL Server på Windows, Nginx, Apache och Postfix på Linux. Appliancen levererar via API eller över SSH till en brandvägg, FortiGate, F5, NetScaler och Palo Alto och via API till molntjänster som AWS, Azure och Cloudflare. Ingen programvara installeras på utrustningen, och inloggningsuppgifterna lagras krypterat i appliancens vault.
  • Windows- och Linux-servrar får en serviceagent. Den hämtar certifikatet från appliancen och installerar det på sin egen server: IIS, Exchange, RDP och SQL Server på Windows, Nginx, Apache och Postfix på Linux.
  • Utrustning som inte kan köra en agent, till exempel FortiGate, F5, NetScaler och Palo Alto, får certifikatet från appliancen. Den loggar in via utrustningens API (oftast port 443) eller över SSH (port 22) och installerar det. Ingen programvara installeras på utrustningen.
  • Molntjänster som AWS, Azure och Cloudflare får certifikatet från appliancen via sitt API.
  • Appliancen lagrar bara inloggningsuppgifter till utrustning utan agent, krypterade i sin vault. Varje leverans kontrolleras, och om den misslyckas kan sslbrain rulla tillbaka till certifikatet som fanns där innan.

sslbrain hanterar certifikat för alla plattformar från ett och samma ställe, oavsett om det är Windows, Linux, nätverksutrustning eller molntjänster.

Många platser, en appliance

Servrar på ett filialkontor, i en DMZ eller hos en hostingleverantör får en serviceagent som kommunicerar via sslbrain Cloud. Det behövs ingen VPN, och inga portar öppnas för inkommande anslutningar.

Teckning: sslbrain Cloud överst och fem separata nätverk under: ett filialkontor, en DMZ, huvudkontoret med sslbrain-appliancen och Windows- och Linux-servrar, ett datacenter och ett kundnätverk. En pil från varje nätverk visar en utgående anslutning på port 443 genom nätverkets egen brandvägg upp till sslbrain Cloud. Det finns inga pilar mellan nätverken. I de andra nätverken levererar en serviceagent certifikat till den lokala utrustningen: FortiGate, webbserver och F5, NetScaler och brandvägg.
  • sslbrain-appliancen står på huvudkontoret. Vart och ett av de andra nätverken, till exempel ett filialkontor, en DMZ, ett datacenter eller ett kundnätverk, får en serviceagent.
  • Varje nätverk har bara utgående anslutningar till sslbrain Cloud, på port 443 genom sin egen brandvägg. Det finns inga anslutningar mellan nätverken.
  • Serviceagenten levererar certifikat till utrustningen i sitt eget nätverk, till exempel FortiGate, webbserver, F5, NetScaler eller brandvägg.
  • Ingen VPN och inga inkommande portar. En serviceagent per nätverk räcker.
Servrar utanför ert nätverk i manualen

En appliance, många kundnätverk

Sköter ni IT åt flera kunder kan en appliance i ert eget nätverk betjäna dem alla. Varje kunds nätverk, även en DMZ, får en egen serviceagent och ansluter bara utåt till sslbrain Cloud.

Teckning: en sslbrain-appliance för många kundnätverk. Appliancen står i ert eget nätverk och skapar nycklarna där, inte i sslbrain Cloud. Under sslbrain Cloud finns fyra separata kundnätverk: kund A:s LAN och kund A:s DMZ, kund B och kund C. Varje nätverk har sin egen brandvägg och en pil som visar en utgående anslutning på port 443 upp till sslbrain Cloud. Det finns inga pilar mellan nätverken. I varje kundnätverk levererar en serviceagent certifikat till den lokala utrustningen: en Windows-server, F5, FortiGate och NetScaler.
  • En sslbrain-appliance i ert eget nätverk hanterar certifikat för många kundnätverk. De privata nycklarna skapas på appliancen, inte i sslbrain Cloud.
  • Varje kundnätverk får en serviceagent. En kunds DMZ är ett eget nätverk med en egen serviceagent.
  • Varje nätverk har bara utgående anslutningar till sslbrain Cloud, på port 443 genom sin egen brandvägg. Det finns inga anslutningar mellan kunderna och inte heller mellan en kunds LAN och DMZ.
  • Serviceagenten levererar certifikat till utrustningen i sitt eget nätverk, till exempel en Windows-server, F5, FortiGate eller NetScaler.
  • Ingen VPN till kunderna och inga inkommande portar.

Certifikatflödet för ACME i sslbrain Cloud

sslbrain Cloud provar CA:erna i prioritetsordning och byter automatiskt om en CA inte svarar.

Teckning: certifikatets väg. sslbrain-appliancen i ert nätverk skapar den privata nyckeln. Den skickar bara certifikatbegäran (CSR) till sslbrain Cloud via en utgående, E2E-krypterad anslutning på port 443 och får tillbaka det utfärdade certifikatet samma väg. sslbrain Cloud sköter domänvalideringen med en av tre likvärdiga metoder: CNAME-vidarebefordran till your.autodns.sslbrain.net, åtkomst till DNS-API:t eller en TXT-post för dns-persist-01. Certifikatet utfärdas sedan av en CA: Let’s Encrypt, DigiCert, Google Public CA, Sectigo eller GlobalSign. Sedan levererar appliancen det: Windows- och Linux-servrar hämtar det, och appliancen skickar det till FortiGate, F5, NetScaler och Palo Alto.
  1. sslbrain-appliancen skapar den privata nyckeln i ert nätverk. sslbrain Cloud ser den aldrig.
  2. Appliancen skickar certifikatbegäran (CSR) till sslbrain Cloud via en utgående HTTPS-anslutning på port 443, krypterad hela vägen (E2E). I det här flödet kommunicerar appliancen bara med sslbrain Cloud.
  3. sslbrain Cloud visar att domänen är er, på det sätt ni väljer: CNAME-vidarebefordran till your.autodns.sslbrain.net, åtkomst till er DNS-leverantörs API eller en TXT-post för dns-persist-01. Det räcker med en av dem.
  4. Certifikatet utfärdas av en CA: Let’s Encrypt, DigiCert, Google Public CA, Sectigo eller GlobalSign. sslbrain Cloud följer en prioriterad lista och går vidare till nästa CA om en misslyckas.
  5. Det utfärdade certifikatet kommer tillbaka till appliancen över samma utgående anslutning.
  6. Appliancen levererar det dit det används: serviceagenter på Windows- och Linux-servrar (IIS, Exchange, Nginx, Apache) hämtar det, och appliancen skickar det till FortiGate, F5, NetScaler, Palo Alto och annan utrustning.

Kostnadsfria CA:er som Let's Encrypt och Google Public CA används direkt. Kommersiella CA:er som DigiCert, GlobalSign och Sectigo kräver en enhetslicens.

Vault och kryptering

Alla lokala data är krypterade. Nyckeln som låser upp dem hämtas från sslbrain Cloud.

Huvudnyckeln finns bara hos er, på appliancen. sslbrain Cloud har bara en nyckel som öppnar appliancens krypterade kopia av huvudnyckeln. Utan appliancen ger den ingen åtkomst till era data.

Två sätt att låsa upp

Vid start hämtar appliancen nyckeln från sslbrain Cloud, öppnar vaulten och raderar sedan nyckeln ur minnet. Utan sslbrain Cloud öppnas vaulten med de 12 backup-orden, som ni får under den första konfigurationen. FairSSL har ingen kopia av dem.

Skydd mot kopiering

En kopia av databasen fungerar inte på en annan maskin. sslbrain Cloud känner igen den ursprungliga installationen, och en kopierad appliance låses tills kontoägaren har bekräftat den.

Signerade agenter

FairSSL:s agenter och skript signeras med ECDSA P-384 på en fysisk YubiKey. Egna agenter signeras av er appliance. Inget körs osignerat.

Teckning: FairSSL signerar varje version med en hårdvarunyckel. Nya versioner av appliancen, serviceagenterna och installationsagenterna levereras som signerade paket till appliancen, som bara installerar signerad kod, automatiskt eller efter manuellt godkännande. På Windows- och Linux-servrarna kan alla skript läsas innan de körs, och bara signerade skript körs. En klonad appliance måste godkännas innan den körs.
  • FairSSL signerar varje version av appliancen, serviceagenterna och installationsagenterna med en hårdvarunyckel (YubiKey).
  • Appliancen installerar bara signerad kod. Uppdateringar kommer automatiskt, eller så godkänner ni dem manuellt.
  • Alla skript kan läsas innan de körs på era servrar.
  • Servrarna kör bara signerade skript, och parametrarna filtreras för att skydda mot injektionsattacker.
  • En klonad appliance måste godkännas innan den körs.

Förslag från användare granskas, låses och släpps av FairSSL under FairSSL:s signatur. Om vi signerar något har vi granskat koden.

Ni bestämmer vad agenterna får köra

Som standard kör serviceagenterna bara installationsagenter och skript som är signerade med FairSSL:s hårdvarunyckel. Varje server har sina egna regler för vad som får köras, och reglerna kan låsas centralt med Group Policy. Appliancen kan inte ändra dem.

FairSSL-signerad kod: bara skript som FairSSL har signerat
Community: ett val i skriptpolicyn. Katalogen innehåller inga community-skript
Egna agenter: signeras av er appliance och körs bara på en server där ni själva har aktiverat dem
Kodfrysning: avvisa allt som är signerat efter ett valt datum

Kod som kan granskas

Allt kan granskas. Ingen dold kod och inga svarta lådor.

Allt som körs hos er är läsbar kod: appliancen, serviceagenterna och installationsagenterna för push och pull. Inget hos er är dolt. Windows-agenten levereras som MSI, och ni kan själva bygga den från källkoden. Koden finns på github.com/sslbrain.

Agenterna består av YAML-definitioner och skript som ni kan läsa i kontrollpanelen och på GitHub. Windows-serviceagenten är en signerad Windows-tjänst som avvisar osignerade skript. sslbrain sköter ACME mot CA:n, så era servrar behöver aldrig själva kommunicera med en CA.

Om något komprometteras

Vad en angripare kan och inte kan göra i varje del av systemet.

sslbrain Cloud

Kan stoppa en appliance, vilket är skyddet mot kloning, och neka en licens. Kan inte se de data som finns på appliancen, styra appliancen, skicka uppgifter till era servrar eller installera något. Uppdateringar kräver FairSSL:s YubiKey-signatur, och ni kan välja manuell uppdatering.

Appliancen

Kan be de agenter som redan är installerade att köra FairSSL-signerade agentpaket med indata som angriparen väljer. Ett paket kan bara göra det som det är byggt för: certifikat, bindningar och omstart av den tillhörande tjänsten. Kan inte ge ut uppdateringar eller nya FairSSL-agenter. Egna agenter körs bara på servrar där ni har aktiverat dem. Angriparen kan använda inloggningsuppgifterna för push i appliancens vault.

En serviceagent

Ger bara åtkomst till den server där den är installerad. Agentens nyckel kan inte användas till andra servrar, och appliancen kan spärra den.

Läs mer i manualen

Prova sslbrain

Skriv upp er på listan, så hör vi av oss så snart Free kan installeras.