De helft van privacy die techniek is.
Een beleid over wat we niet verzamelen is niets waard als het weinige dat we verzamelen achter een wachtwoord zit dat een supportmedewerker via chat kan resetten. Deze pagina behandelt de andere helft: hoe het account, de hypervisor en de mensen worden beperkt.
Jouw account
Wachtwoorden
scrypt met een per-account salt bij N=2^16, r=8, p=1, wat op onze eigen hardware ongeveer een tiende van een seconde kost. Geen maximale lengte, geen samenstellingsregels, geen gedwongen rotatie. Alledrie die dingen maken wachtwoorden slechter en deden dat altijd al.
Lekcontrole
Nieuwe wachtwoorden worden gecontroleerd tegen een lokale corpus van bekende gecompromitteerde hashes. De controle draait volledig aan onze kant, omdat het sturen van een deel van je wachtwoordhash naar iemand anders een vreemd ding zou zijn op deze specifieke website.
Tweefactorauthenticatie, correct
Tijdgebaseerde codes en hardwarebeveiligingssleutels, met WebAuthn als voorkeurspad. Er is geen optie om een code per tekst te ontvangen, om de voor de hand liggende reden dat we geen telefoonnummer van je hebben en er liever niet een beginnen te verzamelen.
Herstelcodes
Tien eenmalige codes, één keer weergegeven, gehasht in rust. Ze zijn het hele herstelverhaal, omdat er geen andere manier bestaat om je te identificeren en we er niet één zullen verzinnen onder druk.
Aanmeldingsmeldingen
Een apparaat dat we nog niet eerder hebben gezien, activeert een e-mail. Het is een van de weinige taken die het zeven dagen toegangslogboek daadwerkelijk doet.
Verlies de mailbox en de herstelcodes en het account is weg. Niet herstelbaar via een ticket, niet herstelbaar door een betaling te bewijzen, helemaal niet herstelbaar. Dat is de prijs van een aanmelding met één veld, en dat is in geen enkele richting onderhandelbaar.
Sessies
Levensduur
Veertien dagen voor een onthouden sessie, vier uur als u het vakje niet hebt aangevinkt. Beide limieten zijn absoluut, zonder glijdende verlenging die een gestolen cookie oneindig in leven houdt.
Binding
Elke sessie is gekoppeld aan de user agent en aan een grof netwerkprefix. Verander midden in een sessie van continent en u moet opnieuw inloggen, wat ongeveer één klant per maand irriteert en de irritatie waard is.
De apparaatlijst
Elke actieve sessie verschijnt in het paneel met de tijd van de laatste activiteit. Beëindig ze afzonderlijk, of beëindig ze allemaal en begin opnieuw.
Gevoelige acties vragen opnieuw om bevestiging
Het wijzigen van het e-mailadres, het uitschakelen van twee-factor-authenticatie, het aanmaken van een API-token of het aanwijzen van een terugbetalingsadres vereisen allemaal opnieuw het wachtwoord, ongeacht hoe vers de sessie is.
Cookies
Eén sessiecookie, first-party, strict same-site. Er wordt niets anders ingesteld en u wordt er niets over gevraagd, omdat er geen toestemming nodig is voor cookies die niet bestaan.
API-tokens
De API doet alles wat het paneel doet, dus een gelekt token is net zo ernstig als een gelekt wachtwoord. Het beheer van tokens gaat uit van die aanname in plaats van er later op uit te komen.
Met reikwijdte
Lezen, schrijven en vernietigen zijn afzonderlijke rechten. De meeste automatisering heeft de eerste twee nodig en bijna geen enkele de derde, en een token dat geen instantie kan verwijderen, kan uw instanties niet verwijderen.
Gehasht opgeslagen
Eenmalig getoond bij aanmaak en daarna nooit meer. We bewaren een hash, dus een databaselekkage levert geen werkende inloggegevens op.
Met voorvoegsel
Elk token draagt een vast voorvoegsel, waardoor het eenvoudig te vinden is met een repositoryscan die u zelf uitvoert voordat u iets pusht waar u spijt van krijgt.
Vast te pinnen
Een token kan worden beperkt tot een bronnetwerk en tot een benoemde set instanties. Beide beperkingen worden bij elke aanroep geëvalueerd in plaats van eenmalig bij uitgifte.
Verlopend
Optionele vervaldatum vanaf een uur en een verplicht maximum van twee jaar. Tokens die nooit verlopen, zijn hoe oude automatisering stilletjes een oude kwetsbaarheid wordt.
Snelheidsbeperking per token
Limieten gelden voor het token in plaats van voor het account, zodat een ongebreideld script zichzelf beperkt in plaats van uw andere automatisering.
Isolatie tussen tenants
Elke instantie is een gast op een host die precies één taak heeft. Wat volgt, is wat er tussen uw gast en die van alle anderen staat.
Geen geheugendeling
Same-page merging is permanent uitgeschakeld in de hele vloot. Het dedupliceren van geheugen tussen tenants is een meetbaar nevenkanaal, en het RAM-geheugen dat het oplevert, is de aanvalsklasse die het opent niet waard.
Geen overcommit
Cores, geheugen en NVMe worden één keer toegewezen en nooit dubbel geteld. Geen ballooning, geen swap op de host, en geen scheduler-truc die capaciteit vervangt die we hebben geweigerd te kopen.
Gescheiden opslagdomeinen
Elke gast heeft een eigen volume in een eigen versleutelde naamruimte. Het terugwinnen van een volume betekent het weggooien van de sleutel en het trimmen van het bereik, in plaats van er nullen overheen te schrijven en te hopen.
Netwerkscheiding
Eén bridge per tenant, adres- en hardware-adresfiltering bij de poort, en broadcastdomeinen die stoppen bij de gast. Het verkeer van een buur bereikt uw poort nooit, dus er is daar niets te onderscheppen.
GPU-passthrough
Een kaart is via de IOMMU aan één enkele gast gekoppeld en wordt tussen huurperioden gereset. Geen time-slicing, geen vGPU-laag en geen gedeelde driver die tussen twee klanten in zit.
Mitigaties blijven aan
Mitigaties voor speculatieve uitvoering zijn ingeschakeld en blijven ingeschakeld. Hosts worden maandelijks gepatcht, en out-of-band wanneer dat gerechtvaardigd is, wat in de afgelopen twee jaar drie keer is gebeurd.
Versleuteling, en waar die tegen beschermt
Elke node-volume is at-rest versleuteld. Sleutels bevinden zich in het secure element van de host en worden alleen vrijgegeven aan een kernel die een gemeten, ondertekende image heeft opgestart, dus een schijf die uit een chassis wordt getrokken is een baksteen en een chassis dat uit een gebouw wordt gedragen is een tragere baksteen.
De beperking verdient een duidelijke uitspraak. At-rest versleuteling verdedigt tegen verwijdering, diefstal en het einde van de levensduur van een schijf. Het kan niet verdedigen tegen een draaiende hypervisor, die noodzakelijkerwijs de sleutel vasthoudt terwijl uw instantie draait. Iedereen wiens dreigingsmodel de host omvat, moet volledige schijfversleuteling binnen de gast uitvoeren en de wachtzin bij het opstarten via de out-of-band console typen, wat een ondersteund pad is met een eigen pagina in de kennisbank.
Snapshots en off-node back-ups worden binnen de instantie versleuteld voordat ze deze verlaten, met een sleutel die u bezit en die wij nooit zien. Wij slaan cijfertekst en een lengte op. Herstel wordt door u ontsleuteld, wat precies één keer onhandig is en permanent correct.
In transit zijn het paneel en de API alleen TLS, met strict transport security vooraf geladen en geen downgradepad open gelaten. Beheerinterfaces bevinden zich op een out-of-band netwerk zonder openbare route, bereikbaar via een geverifieerde tunnel en op geen andere manier.
Mensen, en onderzoekers
Toegang is het aanvalsoppervlak dat niemand op een specificatieblad zet.
Niemand heeft permanente toegang
Productietoegang wordt aangevraagd, is tijdgebonden en verloopt vanzelf. Er is geen permanente administratieve sessie ergens in het platform.
Twee mensen, of niets
Elke actie die klantgegevens raakt, heeft goedkeuring nodig van iemand die het niet heeft aangevraagd, en de goedkeuring wordt vastgelegd met de opgegeven reden.
Alleen hardware-sleutels
Medewerkers authenticeren met een hardware security key vanaf een beheerde machine. Een wachtwoord op zichzelf opent niets, en persoonlijke apparaten staan helemaal niet op de lijst.
Gasten blijven gesloten
Support kan uw console niet openen, uw volume niet lezen of aan uw geheugen koppelen zonder dat de instantie wordt gepauzeerd en de actie wordt vastgelegd in een record dat u achteraf in het paneel kunt lezen.
Vertrek is onmiddellijk
Toegang wordt ingetrokken aan het einde van de laatste dienst en sleutels worden dezelfde uur uit de vloot verwijderd. De wijziging is controleerbaar en is vier keer uitgevoerd.
- 01
Rapporteer het
Mail het beveiligingsadres, versleuteld naar de gepubliceerde sleutel wanneer de bevinding dat rechtvaardigt. Een proof of concept is welkom. Ruwe scanneruitvoer zonder analyse erbij is dat niet.
- 02
Wij bevestigen binnen een dag
Van een mens in plaats van een ticketrobot. De mediaan over het afgelopen jaar is onder de vier uur geweest.
- 03
Wij triageren binnen drie werkdagen
Met een ernst, een plan en een datum. Waar wij het niet eens zijn met uw ernst, zeggen wij dat en leggen wij uit waarom, in plaats van stilzwijgend te degraderen en te hopen dat u stopt met lezen.
- 04
Wij lossen op, en wij vertellen het u
Kritieke bevindingen worden out-of-band gepatcht. Al het andere wordt in de volgende maandelijkse cyclus geleverd, en u hoort erover op de dag dat het landt.
- 05
Publiceer wanneer u wilt
Geen embargo vereist, geen juridische dreiging, geen verplichting om te coördineren. Negentig dagen wordt gevraagd voor alles wat klanten zou blootstellen voordat er een fix bestaat, en wij hebben nooit twee keer hoeven vragen.
- 06
U krijgt betaald
Op krediet of in munten, wat je maar wilt, afgestemd op de ernst in plaats van op hoe luid het rapport is geschreven. Er wordt geen bovengrens gepubliceerd, want we worden liever verrast dan beperkt.
Testen is welkom tegen je eigen instances en tegen het paneel. Het is niet welkom tegen de instance van een andere klant, en die grens is onze volledige safe-harbour-positie.
Breek het, vertel het ons dan.
Het beveiligingsadres en de sleutel staan op de contactpagina. Bevindingen die veranderen hoe het platform werkt, worden genoemd in de changelog, met vermelding van de reporter zoals die vermeld wil worden, inclusief helemaal niet.