Whitepaper over versleuteling

Laatst bijgewerkt op 21 oktober 2019

Inleiding

Waarom stappen bedrijven over op de cloud? Meestal komt dit doordat cloudomgevingen schaalbaar, betrouwbaar en vrijwel altijd beschikbaar zijn. Dit zijn echter niet de enige overwegingen: beveiliging kan belangrijker zijn dan de andere voordelen van de cloud.

Dit is de reden waarom cloudproviders een uitgebreide beveiligingsstrategie moeten hebben. De beveiligingsstrategie van Zoho omvat meerdere dimensies en versleuteling is een cruciaal onderdeel ervan.

Op deze pagina vindt u alles wat u wilt weten over de versleutelingsstrategie van Zoho en hoe we deze gebruiken om uw gegevens veilig te houden.

Wat is versleuteling?

Versleuteling wordt voornamelijk gebruikt om de inhoud van een bericht te beschermen, zodat alleen de bedoelde ontvanger het kan lezen. Dit werd gedaan door de inhoud te vervangen door onherkenbare gegevens, die alleen door de bedoelde ontvanger begrepen konden worden. Op deze manier is versleuteling een methode geworden om gegevens te beschermen tegen personen die deze willen stelen.

Versleuteling is het wijzigen van gegevens met een speciaal versleutelingsproces, zodat de gegevens onherkenbaar (versleuteld) worden. U kunt vervolgens een speciaal ontsleutelingsproces toepassen en de oorspronkelijke gegevens terugzetten (ontsleuteld). Door het ontsleutelingsproces geheim te houden, kan niemand anders de oorspronkelijke gegevens uit de versleutelde gegevens herstellen.

Het versleutelingsproces volgt een versleutelingsalgoritme zoals AES 256, dat openbaar is. Het proces zelf is echter afhankelijk van de sleutel waarmee de gegevens worden versleuteld, en waarmee ze worden ontsleuteld om de oorspronkelijke gegevens op te halen.

De sleutel wordt geheim gehouden. Zonder de sleutel kan iedereen die toegang heeft tot de gegevens, alleen een 'ciphertext' zien die geen echte betekenis heeft. De gegevens zijn dus beveiligd.

Waarom wij uw gegevens versleutelen

Het laatste element dat de beveiliging compleet maakt: hoewel een uitgebreide beveiligingsstrategie een bedrijf helpt om gegevens te beschermen tegen hackers, is versleuteling het laatste verdedigingsmiddel dat ervoor zorgt dat uw gegevens niet worden gestolen. De versleuteling zorgt ervoor dat uw gegevens niet beschadigd raken of worden gestolen in het geval van een inbreuk op de beveiliging.

Privacy - Versleuteling biedt geruststelling voor privacykwesties rond internet. Versleuteling helpt de privacy te beschermen door persoonlijke gegevens om te zetten in gegevens die uitsluitend bedoeld zijn voor de partijen die deze nodig hebben. Wanneer u met ons communiceert en uw gegevens op onze servers opslaat, kunnen wij met versleuteling garanderen dat u absolute privacy hebt.

Wat we bedoelen met 'gegevens'

Wij verwerken twee soorten gegevens:

  1. Klantgegevens - De gegevens die u bij ons opslaat via Zoho-services. Deze gegevens worden doorgaans verwerkt door een Zoho-service via een klantaccount die kan worden geïdentificeerd in onze IAM-database (Identity and Access Management).

    Afhankelijk van de gevoeligheid van de gegevens en de vereisten van de gebruiker worden sommige klantgegevens versleuteld en andere niet. Gevoelige gegevens zijn gegevens die, wanneer ze worden blootgesteld, schade kunnen toebrengen aan de desbetreffende personen of organisaties.

  2. Afgeleide gegevens - De gegevens die niet rechtstreeks door u worden verstrekt, maar die zijn afgeleid van uw gegevens. Bijvoorbeeld verificatietokens, unieke ID's, URL's en rapporten worden bij ons opgeslagen.

    Afhankelijk van de gevoeligheid van de gegevens worden sommige afgeleide gegevens versleuteld en andere niet.

In de volgende secties wordt met 'gegevens' de versleutelde gegevens bedoeld.

Versleuteling bij overdracht

Wanneer u gebruikmaakt van Zoho Services, worden uw gegevens via internet van uw browser naar ons datacenter of andere derden verzonden (indien u integraties van derden gebruikt). Het versleutelen van gegevens tijdens de overdracht beschermt uw gegevens tegen man-in-the-middle-aanvallen.

Er zijn twee scenario's waarin gegevens die worden verzonden, worden versleuteld:

  • Wanneer gegevens van uw browser naar onze servers worden verzonden.
  • Wanneer gegevens van onze server naar servers worden verzonden die niet van Zoho zijn (van derden)

Tussen u en Zoho

Zoho heeft strikte beleidsregels opgesteld om de Transport Layer Security (TLS) voor alle verbindingen toe te passen. TLS zorgt voor een veilige verbinding tussen u en de Zoho-servers door verificatie van beide partijen die betrokken zijn bij de verbinding, mogelijk te maken, en door versleuteling van de gegevens die moeten worden overgedragen. Het TLS-protocol zorgt ervoor dat derden de communicatie tussen u en Zoho niet kunnen afluisteren of manipuleren.

We volgen de nieuwste TLS-protocolversie 1.2/1.3 en gebruiken certificaten die zijn uitgegeven door SHA 256, en ciphers (AES_CBC/AES_GCM 256-bits/128-bits sleutels voor versleuteling, SHA2 voor berichtauthenticatie en ECDHE_RSA als mechanisme voor sleuteluitwisseling). We implementeren ook Perfect Forward Secrecy en gebruiken HTTPS Strict Transport Security (HSTS) voor alle sites.

Tussen Zoho en derden

We volgen het https-protocol tijdens onze communicatie met derden. Voor transacties met gevoelige gegevens en use-cases wordt asymmetrische versleuteling gebruikt, waarbij een systeem van openbare en persoonlijke sleutels wordt gebruikt om gegevens te versleutelen en te ontsleutelen.

Voor deze methode genereren we een paar openbare en persoonlijke sleutels in onze KMS (Key Management Service), waarmee sleutels voor alle services worden gemaakt, opgeslagen en beheerd. Deze paren worden versleuteld met behulp van een hoofdsleutel en de versleutelde sleutelparen worden opgeslagen in de KMS zelf. De hoofdsleutel wordt opgeslagen op een aparte server.

We stellen via de certificaten openbare sleutels beschikbaar aan derden terwijl de persoonlijke sleutel in de KMS wordt opgeslagen. Na verificatie worden de versleutelde gegevens ontsleuteld in de KMS.

Versleuteling in rust

Er zijn twee belangrijke versleutelingsniveaus:

  1. Versleuteling op app-niveau
  2. Hardwaregebaseerde Full Disk Encryption

De strategie voor het versleutelen van gegevens op app-niveau is afhankelijk van waar en hoe de gegevens worden opgeslagen:

  • Database (DB) - opgeslagen als tabellen
  • Distributed File System (DFS) - opgeslagen als bestanden
  • URL-versleuteling
  • Back-up
  • Logboeken
  • Cache

De onderstaande afbeelding schetst een breed beeld van onze versleutelingsstrategie:

versleutelingsstrategie

App-niveau

Elke Zoho-service (of app) die u gebruikt, maakt gebruik van gegevens, namelijk de gegevens die u verstrekt, en de gegevens die wij namens u opslaan als onderdeel van de service. De gegevens kunnen worden ontvangen als een bestand of als gegevensvelden. Elk van deze categorieën wordt op een andere manier versleuteld.

In dit gedeelte wordt versleuteling in rust op app-niveau besproken.

DB-versleuteling

Wanneer u services gebruikt zoals Zoho Creator of Zoho Forms, worden de gegevens die u invoert in de app, of de servicegegevens in onze database opgeslagen als tabellen.

Gegevens in deze tabellen worden versleuteld volgens de AES 256-standaard met de AES/CBC/PKCS5Padding-modus. Afhankelijk van de gevoeligheid van het gegevensveld en de keuze en vereisten van de gebruiker kan het versleutelingsniveau echter variëren.

Er zijn twee niveaus van DB-versleuteling:

  1. Afhankelijk van de gevoeligheid van gegevens
  2. Afhankelijk van de zoekfunctionaliteit

Opmerking: we verwijzen naar een klant of een organisatie die gebruikmaakt van een Zoho-service en die een eindig aantal gebruikers heeft, als een 'Org'.

Afhankelijk van de gevoeligheid van gegevens

Niveau 1 - Dit is het standaardversleutelingsniveau dat we op gegevens van alle Org's toepassen. Op dit niveau wijst onze KMS een sleutel toe aan elke org. Gegevens die overeenkomen met die org, worden versleuteld met deze sleutel. De sleutel wordt versleuteld met een hoofdsleutel en de versleutelde sleutel wordt opgeslagen op een aparte server.

Niveau 2 - We passen dit versleutelingsniveau toe voor gevoelige en persoonlijk identificeerbare informatie (PII). Deze categorie bevat velden zoals bankrekeningnummers, identificatienummers en biometrische gegevens.

Op dit niveau genereert de KMS een unieke sleutel voor elke kolom in de tabel. Alle gegevens in een bepaalde kolom worden versleuteld met de sleutel die voor die kolom is gegenereerd. Deze sleutels worden opnieuw versleuteld met een hoofdsleutel en opgeslagen op een aparte server.

Afhankelijk van de zoekfunctionaliteit

Een initialisatievector (IV) is een willekeurige waarde die het versleutelingsproces start. Deze willekeurige waarde zorgt ervoor dat elk blok/elke gegevenseenheid anders wordt versleuteld. Het betekent ook dat het tweemaal versleutelen van dezelfde gegevens verschillende ciphertexts oplevert.

Waarom is de IV belangrijk?

Als u geen IV had en de CBC-modus (Cipher Block Chaining) met alleen uw sleutel hebt gebruikt, produceren twee gegevenssets die beginnen met identieke gegevens, identieke eerste blokken. IV's maken het onwaarschijnlijk dat de versleuteling van twee afzonderlijke gegevens ooit dezelfde ingangs-/uitgangsparen zal opleveren (op blokversleutelingsniveau en met dezelfde sleutel), zelfs als de gegevens op een of andere manier aan elkaar zijn gerelateerd (met inbegrip van, maar niet beperkt tot beginnen met hetzelfde eerste blok).

Wanneer bij elke versleutelingsaanvraag het gebruik van een willekeurige IV wordt ingeschakeld, is het eerste blok anders. De aanvaller kan aan niets afleiden dat de versleutelde gegevens zou kunnen ontsleutelen.

Equality Preserving Encryption: dit is het standaardversleutelingsniveau voor alle tabellen. Op dit niveau krijgt de volledige gegevenstabel één IV. Dit betekent dat het hele blok ciphertext kan worden gebruikt in een zoekquery in een tabel. Aangezien de IV gelijk is voor alle gegevens in de tabel, worden de gegevens opgehaald door een zoekopdracht.

Standaardversleuteling: op dit niveau heeft elke gegevensinvoer een unieke IV. Zelfs als u de hele tabel met één sleutel versleutelt, produceert elke versleutelde gegevensinvoer een unieke ciphertext. Aangezien de IV willekeurig en uniek is voor elke gegevens, worden de gegevens niet opgehaald door een zoekquery. Dit is een veiligere optie dan de variant 'Equality Preserving'.

In welke situaties worden deze varianten gebruikt?

De beslissing om voor een bepaalde variant te gaan, hangt meestal af van de eis. Als gegevens het hoogste beveiligingsniveau moeten hebben, kiezen we voor niveau 2 met de standaardversleuteling. Als de maximale beveiliging slechts voor bepaalde velden nodig is, is beveiliging van niveau 2 met de standaardversie voldoende.

Het gaat echter niet altijd alleen om beveiliging. Soms willen gebruikers een veld zoals 'e-mail-id' zoeken en ophalen om het aan hun eisen te laten voldoen. In dat geval zou een standaardoptie niet zinvol zijn en kiezen we voor de variant 'Equality Preserving'.

Bestands- of DFS-versleuteling

Wanneer u services zoals Zoho Docs gebruikt, maakt u bestanden die worden opgeslagen in ons DFS (Distributed File System).

De versleuteling is gebaseerd op het standaard AES 256-algoritme, maar de versleutelingsmodus is CTR of de Counter Mode. In AES 256 wordt de tekst die moet worden versleuteld, verdeeld in gegevenspakketten of blokken. Aangezien we hier de inhoud van bestanden versleutelen, moet het algoritme ervoor zorgen dat de versleuteling van elk blok onafhankelijk is van een ander blok. Op deze manier kan de aanvaller geen informatie over het bestand krijgen, zelfs niet als de blokversleuteling wordt gecompromitteerd. Voor deze vereiste is de CTR-modus ideaal.

Net als bij DB-versleuteling heeft bestandsversleuteling ook twee niveaus:

Niveau 1 - Op dit niveau wordt elke organisatie voorzien van een sleutel. Elk bestand van die organisatie wordt versleuteld met deze sleutel, maar met een unieke willekeurige IV die samen met het bestand wordt opgeslagen. Deze sleutel wordt opnieuw versleuteld met een hoofdsleutel en opgeslagen in de KMS.

Niveau 2 - Op dit niveau wordt elk bestand voorzien van een unieke sleutel en wordt het versleuteld met die sleutel. Elke sleutel die wordt gebruikt om een bestand te versleutelen, wordt opnieuw versleuteld met een hoofdsleutel en de versleutelde sleutel wordt samen met het bestand in de DFS opgeslagen. Deze hoofdsleutel is uniek voor de service of applicatie en wordt opgeslagen en beheerd in de KMS.

URL-versleuteling

De uitnodigingslinks of andere communicatie tussen ons kunnen gevoelige gegevens in de URL's doorgegeven. Om deze communicatie te beveiligen, worden delen van een URL versleuteld. Als er iets in de URL kan worden herkend, zoals de ID van een document, wordt dat onderdeel versleuteld.

Deze versleuteling heeft twee niveaus: één sleutel per organisatie of één sleutel per URL. Dit hangt dus af van de gevoeligheid van de gegevens in de URL.

Back-upversleuteling

We maken back-ups op basis van twee schema's: dagelijks en wekelijks. De back-upservers zijn uitgerust met hetzelfde beveiligingsniveau als de hoofdservers. Alle gegevens die we als back-up nemen, worden in rust versleuteld. We gebruiken het AES 256-algoritme voor versleuteling en slaan de sleutels op een aparte server op. We hebben ook redundante datacenters (DC) die een hoge beschikbaarheid garanderen. Deze DC's hebben ook een kopie van uw versleutelde gegevens en er wordt ook een back-up van gemaakt, net zoals bij het primaire DC.

Versleuteling van logboeken

Zoho Logs gebruikt Hadoop Distributed File System (HDFS) om logboeken op te slaan en te beheren. We gebruiken de versleutelingstechnologie van Hadoop Inc om de gegevens te versleutelen, terwijl het sleutelbeheer wordt uitgevoerd door onze KMS.

Versleuteling van cache

We gebruiken Redis open source-software voor het opslaan en beheren van cachegegevens. Cache bevat gegevens die herhaaldelijk worden gebruikt bij de werking van de service en die gedurende een bepaalde tijd moeten worden opgeslagen. Soms worden uw gegevens in de cache opgeslagen om de service te verbeteren of om problemen op te lossen. Als gegevens gevoelige persoonlijke gegevens bevatten, kiezen we ervoor om deze te versleutelen.

Sleutelbeheer

Onze eigen Key Management Service (KMS) maakt, bewaart en beheert sleutels voor alle services. We bewaren en onderhouden de sleutels met behulp van KMS. Momenteel hebben we geen voorziening om gegevens te versleutelen met sleutels die eigendom zijn van de klant.

Er worden verschillende typen sleutels in verschillende versleutelingsfasen gebruikt:

Data Encryption Key (DEK): de sleutel die wordt gebruikt om de gegevens te converteren van niet-versleutelde tekst naar versleutelde tekst, of de sleutel die wordt gebruikt om de gegevens te versleutelen.

Key Encryption Key (KEK): de sleutel die wordt gebruikt om de DEK te versleutelen. Deze is servicespecifiek en biedt een extra beveiligingslaag.

Hoofdsleutel: de sleutel die wordt gebruikt om de KEK te versleutelen. Deze sleutel wordt voor de veiligheid op een afzonderlijke server opgeslagen.

Hoe werkt de KMS?

Alle typen versleuteling zijn conform het AES 256-algoritme. Volgens dit algoritme worden de gegevens behandeld als 'blokken' die moeten worden versleuteld. Ongeacht of het een veld in de database of een bestand in de DFS is, begint de versleuteling wanneer een gegevensblok met een DEK wordt versleuteld.

Deze DEK wordt verder versleuteld met een KEK. De KEK wordt opnieuw versleuteld met behulp van een hoofdsleutel die is opgeslagen op een aparte server. Dit zijn dus de elementen die moeten worden beheerd:

  • Versleutelde gegevens
  • DEK's
  • Versleutelde DEK's
  • KEK's
  • Versleutelde KEK's
  • Hoofdsleutel

De KMS beheert deze elementen op de volgende manier:

kms1

1
Aanvragen initiëren

Gebruiker is geverifieerd voor Zoho-service en vraagt om gegevens

2
Versleuteling bij overdracht

TLS-gebaseerde versleuteling

3
Front-endapplicatie

Leidt gegevensverkeer naar applicatieservers

4
Applicatieserver

Start het versleutelingsproces

5
Sleutelbeheerservice

Genereert of haalt de Data Encryption Key (DEK) op

6
Master-server

Genereert/haalt sleutelversleuteling (KEK) op

7
KMS-database

Slaat versleutelde DEK op

8
Sleutelbeheerservice

Retourneert DEK voor versleuteling

9
Versleutelingsagent

Versleutelt gegevens met behulp van DEK

10
Opslag

Slaat versleutelde gegevens op

Hoe worden de sleutels gegenereerd?

KMS genereert 256-bits sleutels die voldoen aan het AES 256-protocol, samen met een initialisatievector (IV). Zoals we al eerder hebben vermeld, zorgt IV ervoor dat het eerste blok met versleutelde gegevens willekeurig is. Daarom wordt dezelfde tekst met behulp van de IV's versleuteld in verschillende ciphertexts.

KMS genereert deze sleutels en IV met behulp van een Java-beveiligde bibliotheek en een veilige generator voor willekeurige getallen. 

Waar worden de sleutels opgeslagen?

De DEK's die in de KMS worden gegenereerd, worden versleuteld met behulp van een KEK. Dit biedt een extra beveiligingslaag. De versleutelde DEK's worden opgeslagen in de KMS-database.

lagen-beveiliging

We scheiden de sleutels fysiek (slaan ze op verschillende locaties op) zodat wanneer een aanvaller een van de sleutels in bezit krijgt, die ook geen andere gerelateerde sleutels te pakken kan krijgen. We versleutelen de KEK met behulp van een hoofdsleutel en slaan deze op een aparte server op.

Voor Zoho Docs bieden we een extra beveiligingslaag voor de documenten die in rust zijn opgeslagen.

lagen-beveiliging1

Een aanvaller kan de gegevens niet in gevaar brengen door alleen de KMS aan te vallen.

Hoe veilig zijn de sleutels?

Fysieke scheiding - Zoals eerder vermeld, blijft de hoofdsleutel op een fysiek gescheiden en beveiligde server staan. Dit maakt het voor een aanvaller moeilijk om zowel DEK's als KEK's in gevaar te brengen.

Toegangsbeheer - Met het toegangsbeheer kunnen we misbruik en toegang tot sleutels voorkomen. Met een toegangscontrolelijst (Access Control List, ACL) kunnen alleen bepaalde services toegang krijgen tot bepaalde sleutels. Telkens wanneer er een sleutel wordt gebruikt, gebeurt dit via authenticatie en wordt het proces geregistreerd. Regelmatige controles van deze logboeken helpen het proces te bewaken.

Toegang tot sleutelbeheerservers is standaard beperkt en is alleen toegestaan voor specifiek personeel van Zohocorp. Andere toegang wordt als ticket ingediend en is alleen toegestaan na goedkeuring van het management. 

Sleutelroulatie - We gebruiken een sleutelrouleerysteem waarbij we de hoofdsleutel periodiek wijzigen, wat extra beveiliging garandeert. Wanneer een nieuwe hoofdsleutel en IV worden gegenereerd, betekent dit dat de sleutels in de database ook moeten worden herzien. Daarom worden alle sleutels in de database eerst opgehaald en ontsleuteld met behulp van de oude hoofdsleutel, daarna opnieuw versleuteld met de nieuwe hoofdsleutel en bijgewerkt in de database.

Er is een voorziening voor het handmatig activeren van de sleutelroulatie beschikbaar om potentiële kritieke situaties aan te kunnen.

Beschikbaarheid van sleutels - Als de primaire opslag van schijven in een datacenter (DC) mislukt, zijn er een slave en een secundaire slave als back-up die dezelfde gegevens bevatten als het master-DC. Zowel de slave als de secundaire slave heeft de DEK's versleuteld, net als de master.

Welke gegevens versleutelen we in onze services?

De gegevens die in rust worden versleuteld, variëren afhankelijk van de services waarvoor u kiest. De opties en versleutelingsniveaus voor een bepaalde gegevensinvoer worden bepaald door u of ons, of door instemming van beide.

In de volgende tabelkolom worden gegevens beschreven die zijn versleuteld door verschillende Zoho-services:

ServiceVersleutelde velden
CRMAangepaste velden die persoonlijke gegevens bevatten, alle bestanden
DocsAlle bestanden
CreatorAangepaste velden
CampagnesVelden die persoonlijke gegevens bevatten, door de gebruiker geüploade bestanden
CliqChatTranscript en persoonlijke informatie
PeopleAangepaste velden, alle bestanden
ConnectTitel, URL en inhoud van feeds, forumberichten, artikelen, plaatsen, groepen, aankondigingen, taken en hun opmerkingen, videobestanden en bijlagen
DeskInhoud van de ticketthread, bijlagen en tokens
FinanceBankrekeninggegevens, aangepaste velden met persoonlijke informatie, werknemersgegevens met persoonlijke informatie, reisdocumenten, bankafschriften en bijlagen
ProjectsBijlagen, velden met persoonlijke informatie, tokens
NotebookNotecard en bijlagen
SignDocumenten, afbeeldingen van handtekeningen en tokens
RapportenAangepaste velden, bestanden geüpload door gebruikers, aangepaste query's
MailAlle e-mailinhoud, bijlagen en velden die persoonlijke informatie bevatten
RecruitAangepaste velden, door de gebruiker geïmporteerde documenten
SocialTokens, velden die persoonlijke informatie bevatten

Full-disk encryption

We gebruiken self-encrypting drives (SED's) om de hardwaregebaseerde full disk encryption te ondersteunen.

SED is een hard disk drive (HDD) of solid state drive (SSD) met een in het station ingebouwd versleutelingscircuit. Zelfversleuteling houdt in dat alle gegevens die naar het opslagmedium worden geschreven, door het schijfstation worden versleuteld voordat ze door het schijfstation worden weggeschreven en ontsleuteld wanneer ze worden gelezen.

SED-stations voldoen aan FIPS 140-2 of TCG. Het versleutelingsalgoritme dat voor de SED's is geconfigureerd, is het AES-algoritme. De sleutel die wordt gebruikt voor het versleutelen en ontsleutelen, is 256 tekens lang.

Er worden twee typen sleutels gebruikt in SED's, namelijk de data encryption key (DEK) en de verificatiesleutel.

Data Encryption Key - Deze sleutel wordt gebruikt om de gegevens op het station te versleutelen/ontsleutelen. Deze sleutel wordt gegenereerd door een leverancier tijdens het productieproces. Wanneer we nieuwe servers met SED-stations krijgen, genereren we om veiligheidsredenen de sleutel opnieuw.

Verificatiesleutel - Deze sleutel versleutelt de DEK en wordt gebruikt voor het vergrendelen en ontgrendelen van het station. Verificatiesleutels worden gegenereerd onder een streng beleid en opgeslagen in ons Key Management System. Dezelfde sleutel wordt op een veilige manier naar elke server overgebracht wanneer versleuteling op de servers is ingeschakeld. We gebruiken local key management (LKM) om de verificatiesleutel te beheren.

Opmerking: op dit moment is hardwaregebaseerde full disk encryption alleen van toepassing in datacenters in India (IN).

Conclusie

We versleutelen gevoelige klantgegevens wanneer deze worden opgeslagen, wanneer deze via internet worden verzonden en wanneer ze tussen onze DC's worden overgedragen. Versleuteling is echter slechts een onderdeel van onze beveiligingsstrategie. We innoveren voortdurend en streven ernaar de gegevensbescherming te verbeteren door de nieuwste protocollen en technologie te implementeren. Ga voor meer informatie over onze volledige beveiligingsstrategie naar https://www.zoho.com/security.html.