Nemosyne
Menu

Vertrouwen

Wat we afdwingen, en wat we nog niet doen.

Dit is wat het systeem door zijn bouw afdwingt, en de grenzen die we al kennen — nog voordat uw vragenlijst ernaar vraagt.

Afgedwongen door de bouw

Rechten op documentniveau, afgedwongen in de query.

Zichtbaarheid is een clausule in de query

Elke leesactie wordt in de query zelf ingeperkt tot wie de vraag stelt, niet achteraf in code, zodat een feit, samenvatting of passage die u niet mag zien nooit wordt samengesteld en nooit meegeteld. Wie we niet kunnen identificeren, ziet alleen wat openbaar is — nooit de weergave van een beheerder — en niets wat iemand in een verzoek zet, kan dat verruimen.

Een afgeleid feit erft zijn smalste invoer

Als het geheugen één zin uit vijf documenten schrijft, zien alleen mensen die alle vijf mogen zien die zin: bronnen combineren kan rechten alleen versmallen, nooit verruimen. En waar de rechten van een bron niet te lezen zijn, valt de connector terug op een smaller publiek — het account dat het document ophaalde — en niet op het hele kantoor.

Een verwijzing kan alleen binnen het bewijs wijzen

Elke bronvermelding wordt opgelost tegen de gesloten verzameling passages die de engine zelf aan het model voorlegde, dus een verwijzing naar een passage die niet bestaat, kan niet blijven staan. Als u een vraag stelt, kiest het model uit labels die de engine terugvertaalt in plaats van zelf een locatie te noemen, en alles waarop u kunt klikken opent een echte passage uit het bewijs dat onder uw rechten is verzameld.

Het geheugen van je kantoor is geïsoleerd

Eén databaseschema en één object-storageprefix per kantoor: geen gedeelde tabel bevat de documenten, feiten of passages van een klant. De enige tabellen die alle kantoren delen zijn account-, facturatie- en sessiegegevens, en geen daarvan bevat iets wat het geheugen heeft geleerd. Wilt u dat de database zelf de grens bewaakt, dan kunnen de queries van een kantoor draaien als een rol die alleen rechten heeft op het eigen schema — verplicht op onze gehoste dienst, en beschikbaar en standaard uit op een implementatie die u zelf draait, als tweede laag achter de schemagrens. Een kantoor waarvan de rol ontbreekt, wordt geweigerd, nooit via een gedeelde bediend.

Uitgaand bereik wordt verklaard, niet ontdekt

De egress-allowlist bevat standaard het modelendpoint en verder niets. Er is geen telemetrie en geen updatecontrole om uit te zetten, omdat geen van beide ooit is gebouwd, en het licentiebestand is informatief: er wordt niets bij ons gecontroleerd. Componenten weigeren te starten als hun configuratie de lijst tegenspreekt, en de netwerkhandhaving is uw firewall. Dit geldt voor een implementatie die u zelf draait, niet voor de gehoste dienst. Maak de lijst leeg en er gaat niets meer naar buiten, ook niet naar het model, dus er wordt niets nieuws gelezen; zoeken rangschikt dan op trefwoorden over wat al gelezen is.

Het archief groeit alleen

Elke observatie, elk feit, elke correctie en elke intrekking is een regel in een logboek dat nooit wordt herschreven — een correctie is een nieuwe regel, en de oude blijft leesbaar. Alles wat u op een pagina leest, is van dat logboek afgeleid en wordt opnieuw opgebouwd door het af te spelen, niet ter plekke gerepareerd.

Uw sleutels blijven van u

Modelgegevens worden in rust versleuteld onder de sleutel van uw eigen implementatie, één versleutelde tekst per kantoor, en verwijderd wanneer het kantoor dat wordt. Met single sign-on bereikt de gateway uw identiteitsprovider en die van niemand anders. Alleen extractie en uitgeschreven antwoorden hebben een bereikbaar model nodig — alles wat al gelezen is, blijft zonder model doorzoekbaar.

Wat we nog niet doen

Zeven grenzen, in onze eigen woorden.

  1. Ons leeslogboek dekt antwoorden, niet elke deur

    Beheerhandelingen worden vastgelegd en je eigen beheerder kan ze lezen: wie een geheugen aanmaakte, wie toegang gaf of introk, wie het schema veranderde. We houden daarnaast een teller bij van elke agent-aanroep — welke persoon, in welk geheugen, via welk gereedschap, en wanneer — al lezen wij die, en jij nog niet. Daaronder wordt nu elk antwoord gelogd: wie het vroeg, wat er gevraagd werd en welke documenten het antwoord citeerde, standaard 90 dagen bewaard. Sommige deuren vallen buiten dat logboek: een vraag plannen, iets opslaan wat een assistent het vroeg te onthouden, het vocabulaire van het geheugen lezen, de beheerhandelingen, en een opgeslagen bestand rechtstreeks ophalen. Een verzoek aan een kantoor dat niet meer bestaat kan helemaal niet gelogd worden, omdat er nergens is om het te schrijven.

    Het leesverslag en het beheerspoor zijn allebei voor elke periode als bestand te exporteren, zodat u een auditor er een kunt overhandigen; leesregels worden standaard 90 dagen bewaard. Wat ontbreekt is selfservice: het leesverslag heeft geen scherm in de console, en op de gehoste dienst voeren wij de export op verzoek voor uw beheerder uit. Bij private cloud en self-hosting voert wie de operator-inloggegevens van de installatie heeft de export zelf uit.

  2. Een intrekking bij de bron bereikt niet alles tegelijk

    Als een gekoppeld systeem iemand een document afneemt, merkt de volgende peiling dat op en verdwijnt het document binnen het interval van die connector uit de documentlijst van die persoon — standaard vijf minuten. Alles wat ervan is afgeleid, volgt. In dezelfde stap worden de feiten, samenvattingen en passages die onder het oude publiek zijn geëxtraheerd ingetrokken, zodat een bronvermelding die een ingetrokken lezer al heeft niet meer opent.

    Werk dat op dat moment al loopt, kan kort een ingetrokken document citeren; de volgende synchronisatie van dat document herstelt dat.

    Dit geldt alleen waar de bron überhaupt rechten per document bijhoudt: Google Drive, SharePoint en OneDrive, Box, Confluence, Slack en Gmail, en onze eigen schijf. Een bewaakte map, Salesforce, HubSpot en Affinity, een Jira-project, een Notion-workspace en DocuSign worden vastgelegd met één kantoorbreed publiek, dus is er geen intrekking per document die wij kunnen volgen.

  3. Onze verdediging tegen prompt-injectie is structureel, geen detector

    We gaan ervan uit dat elk vastgelegd document vijandig is, en beperken wat de tekst kan veroorzaken in plaats van die te proberen te herkennen: niets wat erin staat kan de rechten van de bron verruimen of een bronvermelding opleveren buiten de passages die de engine heeft gekozen.

    We leveren geen classifier die injectiepogingen herkent, en we beweren dat ook niet. Elke bron draait bovendien in een eigen proces, zodat de inloggegevens die uw schijf bereiken en de onbetrouwbare inhoud die ze terugbrengen van elkaar gescheiden blijven.

  4. We zijn op de schaal van ontwerppartners

    Het systeem is gebouwd voor een klein aantal kantoren met elk veel materiaal, en sommige beschermingen zijn nog geschreven voor één proces in plaats van voor een vloot: de rem op herhaalde inlogpogingen houdt zijn teller in het geheugen, dus achter meer dan één instantie remt hij per instantie.

  5. Verwijderen is grondig, en wat overblijft wordt benoemd

    Een kantoor vernietigen laat zijn schema en zijn opslagprefix vallen — het grootboek, de passages, de feiten, de samenvattingen en de zoekindex gaan mee —, verwijdert zijn opgeslagen inloggegevens en ruimt zijn sessies op. Wat overblijft is de regel die zegt dat dat kantoor bestond — de naam ingetrokken en nooit opnieuw bruikbaar —, de gebruiksgegevens die ernaar verwijzen, de rechtenregels die benoemden wie het kantoor kon bereiken, inert gelaten in plaats van verwijderd, en het beheerspoor van wat ermee gedaan is, dat we met opzet bewaren.

    Eén document verwijderen is beperkter. De feiten, samenvattingen en passages die eruit zijn gehaald worden ingetrokken, zodat niets wat eruit is afgeleid nog een vraag beantwoordt. Wat niet gewist wordt zijn de bytes van het bestand zelf, de logboekregel die vastlegt dat we het gelezen hebben, en de prompttekst van werk dat er al voor in de wachtrij staat — dat laatste een paar dagen, tot het verloopt. Het logboek is met opzet alleen-toevoegen: zo blijft elk antwoord herleidbaar tot zijn bron. Als bytes echt weg moeten en niet alleen onbereikbaar, is het vernietigen van het kantoor de handeling die dat vandaag doet.

    Back-ups zijn de uitzondering. De gegevens van een vernietigd kantoor blijven in al gemaakte back-ups tot uw eigen bewaartermijn ze laat verlopen, en niets wat wij draaien reikt erin.

  6. Een heel lang document wordt mogelijk maar deels gelezen

    Elke ronde over een document stuurt de lezer een begrensd aantal passages. De meeste documenten passen in hun geheel. Een document dat dat niet doet — een gescand rapport van enkele honderden pagina's — wordt tot die grens gelezen, en wat daarachter ligt wordt in die ronde niet geëxtraheerd. Een succesvol geüpload document is niet per se van begin tot eind begrepen. We maken dit hervatbaar zodat elke passage precies één keer gelezen wordt; tot die tijd: ga ervan uit dat een heel lang document aan het begin gedekt is en niet overal.

  7. Een bronvermelding bewijst waar een zin vandaan komt, niet dat er hetzelfde staat

    Wat een bronvermelding niet aantoont, is dat de passage de zin ondersteunt. Het model kiest welke echte passage elke zin draagt, en het kan er een kiezen die de zin niet parafraseert. De controle die een lezer heeft, is die waarvoor we de bronvermelding hebben gebouwd: open hem en kijk. We voegen automatische controles toe voor bedragen, perioden en valuta, die een bewering achterhouden in plaats van haar ongecontroleerd te tonen.

Deze lijst is wat we weten. Vindt uw review iets wat er niet in staat, laat het ons weten en we voegen het hier toe.

Vragen over beveiliging?

Laten we uw vereisten bespreken.

Vragen over toegang, implementatie of iets anders op deze pagina? Schrijf ons.

Het papierwerk, intussen: onze verwerkersovereenkomst en de subverwerkers waarmee we de dienst draaien.