Het is onmogelijk om een ​​veilige verbinding tot stand te brengen in de browser - wat te doen? Hoe HTTPS verbindingsbeveiliging garandeert: wat elke webontwikkelaar moet weten

Op de een of andere manier begon er bij het bezoeken van een van mijn blogs een antivirusfout van Kaspersky te verschijnen - “ De authenticiteit van het domein waarmee een gecodeerde verbinding tot stand wordt gebracht, kan niet worden gegarandeerd". Ik ben het al eerder op internet tegengekomen en ik weet hoe vervelend dit venster kan zijn: de gebruiker moet 2-3 klikken maken en 5-10 seconden besteden om op de site te komen. Als ik er niet 100% zeker van was dat ik daarheen moest (en ik ging er voor de eerste keer heen na een zoekopdracht), dan zou ik met grote waarschijnlijkheid gewoon de pagina sluiten.

Misschien is dit niet zo ernstig als, maar zelfs rekening houdend met het feit dat niet iedereen Kaspersky heeft geïnstalleerd, wilde ik potentiële bezoekers niet verliezen. Over het algemeen begon ik het probleem aan te pakken. Eerst laat ik je precies zien hoe het eruit ziet:

Er verschijnt onmiddellijk een waarschuwing bij het openen van de webbron in de rechter benedenhoek. De gebruiker wordt gevraagd de “onbetrouwbare verbinding” voor eigen bestwil te verbreken, of op eigen risico naar de site te gaan.

Bijna alle redenen voor het verschijnen van een domeinnaamverificatiefout houden verband met een probleem met het certificaat (de digitale handtekening van een gecodeerde HTTPS-verbinding). Het certificaat kan zijn:

  • ingetrokken door gebruiker;
  • niet geheel legaal uitgegeven;
  • niet bedoeld als bewijs van authenticiteit;
  • schendingen hebben in de structuur of keten van certificaten;
  • een ander domein bevatten dan het domein waarop het is geïnstalleerd.

In al deze gevallen ziet u een waarschuwing zoals in de afbeelding hierboven. En hier is er 2 verschillende oplossingen, afhankelijk van of dit werkt voor uw project of voor een webbron van derden.

Domeinverificatiefout op uw website

Omdat de situatie zich per definitie voordoet als er fouten in het Secure Protocol-certificaat zitten, moet u vaststellen wat er precies mis mee is (bijvoorbeeld door contact op te nemen met het bedrijf waar u het heeft besteld). In mijn specifieke geval was de oorzaak van het probleem niet helemaal duidelijk, omdat... op de blog HTTPS-protocol is NIET geïnstalleerd!

En toen herinnerde ik me hoe ik op internet las dat zoekmachines (of browsers) bij het bezoeken van een bepaalde URL automatisch controleren of deze een HTTPS-verbinding heeft, en pas daarna om HTTP vragen.

Ik besloot te proberen het beveiligde protocol https://design-mania.ru te vervangen in plaats van het gebruikelijke http://design-mania.ru, en het bleek dat de site ook op het tweede adres werd geopend. Het is waarschijnlijk dat de antivirus volgens dezelfde logica handelde, en aangezien er geen certificaat op de blog staat, veroorzaakte dit de fout.

Over het algemeen heb ik contact opgenomen met de technische ondersteuning van mijn hostingprovider FastVPS, waar zij mij de situatie in technisch bekwame taal hebben verduidelijkt:

Als u daarom een ​​soortgelijke fout op uw eigen website ervaart, aarzel dan niet om naar de host te schrijven om de redenen te achterhalen en de juiste instellingen in te stellen. Nadat u wijzigingen heeft aangebracht, moet u de cache van uw browser en de cookies wissen.

Domeinverificatie uitschakelen in Kaspersky

Als het probleem zich voordoet server van derden, dan kan het ook vervelend zijn dat Kaspersky Anti-Virus voortdurend waarschuwingen geeft en tijd verspilt aan het verwerken ervan. Er zijn hier 2 oplossingen:

  • schakel het scannen in het programma volledig uit;
  • voeg een specifieke project-URL toe aan uitzonderingen.

Ik herinner me meteen een soortgelijke - blijkbaar probeert "Casper" op safe te spelen in een onduidelijke situatie.

Om de analyse van beveiligde verbindingen uit te schakelen:

1. Open het hoofdvenster Kaspersky-programma's Internetbeveiliging(helaas, ik ben niet bekend met de interface van anderen). Klik vervolgens op het tandwielpictogram (Instellingen), waar u “Geavanceerd” - “Netwerk” moet selecteren.

2. Zoek vervolgens de optie “Controleer beveiligde verbindingen” en selecteer het eerste item daarin – “niet controleren”.

3. Er verschijnt een pop-upvenster waarin wordt gewaarschuwd dat het niveau zal dalen. Ga hiermee akkoord.

Een uitzondering maken voor een specifieke site:

1. Eerst doen we dat soortgelijke acties naar de vorige methode: ga naar instellingen, waar je op het tabblad “Geavanceerd” “Netwerk” selecteert.

2. Voor de optie om verbindingen te controleren, vindt u hieronder een link "Uitzonderingen configureren".

In principe is dat alles. Meer informatie U kunt dit vinden in de online help van uw antivirusprogramma. Als het probleem na alle manipulaties niet verdwijnt, zijn er nog twee opties: gewoon stoppen of contact opnemen met de technische ondersteuning van Kaspersky. De fout dat het onmogelijk is om de authenticiteit van een domein te garanderen, kan in theorie optreden bij het gebruik van andere antivirussoftware. Ik denk dat het algoritme in dit geval vergelijkbaar is: zoek in de instellingen waar je certificaatcontrole op sites kunt uitschakelen of uitzonderingen op de regels kunt maken.

P.S. Een ander interessant artikel is een gedetailleerde checklist over hoe en wanneer SEO-tekstanalyse moet worden uitgevoerd. Gezien wat belangrijke rol inhoud wordt nu afgespeeld, dit is handig om te weten.

Wij hebben vrijgelaten nieuw boek"Contentmarketing in sociale netwerken: Hoe je in de hoofden van je abonnees kunt kruipen en ze verliefd kunt maken op je merk.”

Abonneren

De wereld is geobsedeerd door internetbeveiliging. Als u trendy bent en uitsluitend in Telegram correspondeert, lees dan hoe u een veilige verbinding tot stand kunt brengen op de site. Het zal in ieder geval nuttig zijn, en als je een online winkel bent, kun je niet meer zonder. Onderweg vertellen we u over certificaten: wat ze zijn en waarvoor ze nodig zijn.

Wat is HTTPS

Dit is een beveiligd verbindingsprotocol. Het codeert de informatie die wordt uitgewisseld tussen de server en de browser van de gebruiker - dit helpt informatie over wachtwoorden, creditcardnummers en adressen te beschermen e-mail. Het gebruik van HTTPS is krachtig en maakt het iets aantrekkelijker in de ogen van zoekmachines: Google rangschikt beveiligde sites hoger dan onbeveiligde sites. Om HTTPS op uw website in te schakelen, moet u eerst een SSL-certificaat op de server installeren.

Waarom heb je een SSL-certificaat nodig?

Het vormt een unieke digitale handtekening voor de site, die de verbinding helpt beschermen. Zonder SSL-certificaat kunt u het HTTPS-protocol niet verkrijgen, hoe hard u ook probeert. Het bevat:

  • sitedomein;
  • volledige wettelijke naam van het eigenaarbedrijf;
  • fysiek adres van het bedrijf;
  • geldigheidsduur van het certificaat;
  • Details van SSL-ontwikkelaar.

U hebt ook een certificaat nodig om er een aan te sluiten betalingssysteem, bijvoorbeeld "Yandex.Money". De logica is simpel: niemand zal toestaan ​​dat je het geld van anderen riskeert.

Hoe u een SSL-certificaat kiest

Ze zijn onderverdeeld in twee typen, afhankelijk van de mate van bescherming en.

Domeinvalidatie SSL

De eenvoudigste optie. Het werkt nadat u het eigendom van het domein heeft bevestigd. U kunt dit op drie manieren doen:

  • Via een DNS-invoer. Als u een e-mailserver hebt geconfigureerd, maakt u een speciale DNS-vermelding aan. Als u dit gebruikt, bevestigt het systeem dat u inderdaad de eigenaar van de site bent. De methode is geautomatiseerd en geschikt voor degenen wier Whois-e-mail verborgen is in hun instellingen.
  • Via een hashbestand. Plaats een speciaal .txt-bestand op uw server zodat de certificeringsinstantie de aanwezigheid ervan kan vaststellen.

Deze verificatie is geschikt als u dat heeft persoonlijke blog of een klein offline bedrijf, omdat u hiermee geen subdomeinen kunt beschermen en financiële transacties kunt uitvoeren. Bovendien hoeft u niets ingewikkelds te doen om de zuiverheid van het domein en uw bedoelingen te bevestigen, en is het voltooide certificaat snel klaar.

Bedrijfsvalidatie

Dit type SSL-certificaat is betrouwbaarder omdat u bevestigt dat het bedrijf verbonden is met de site. Om dit te doen, moet u verschillende documenten naar het verificatiecentrum sturen en gebeld worden bedrijfsnummer. Business Validation-certificaten zijn onderverdeeld in 3 soorten:

  • Uitgebreide validatie SSL. Dit zijn Extended Validation-certificaten. Ze zijn nodig voor iedereen die met grote hoeveelheden geld werkt: banken, grote online winkels, financiële bedrijven, betalingssystemen.
  • Wildcard-SSL. Zo'n certificaat beschermt zowel de site zelf als de subdomeinen ervan. Bovendien kunnen er een willekeurig aantal zijn en kunnen ze zich bevinden verschillende servers. Vereist als u subdomeinen gebruikt met verschillende regio's of verschillende projecten.
  • SAN-SSL. Het belangrijkste voordeel van dit type certificaat is de ondersteuning van alternatieve domeinnamen: zowel extern als intern.
  • CodeSigning-SSL. Bevestigt de code en softwareproducten van de site. Geschikt voor ontwikkelaars van alle applicaties.

Kan ik een gratis SSL-certificaat op mijn website installeren?

Ja. De meeste van deze producten zijn betaald, maar er zijn ook opties waarvoor je geen geld hoeft te betalen. Dit zijn basiscertificaten met domeinvalidatie. Ze staan ​​niet toe dat u een online kassa aan een bron koppelt, maar ze kunnen wel de verbinding van de gebruiker met de server beschermen. Dergelijke SSL's zijn geschikt voor kleine informatiesites of offline bedrijven. Een voorbeeld is het StartSSL basiscertificaat.

Een SSL-certificaat installeren

Eerst moet je genereren MVO verzoek om een ​​certificaat te ontvangen. Het bevat alle informatie over de domeineigenaar en openbare sleutel. Bij de meeste SSL-providers kunt u dit doen tijdens het certificaatbestelproces, maar u kunt het verzoek ook aan de webserverzijde genereren.

Tijdens het genereren van de CSR-sleutel moet u het volgende specificeren:

  • Servernaam: “site.com” of “*.site.com” als u een WIldcard-certificaat ontvangt. Een asterisk betekent een willekeurig aantal tekens vóór de punt.
  • Landcode: RU, UA, KZ enzovoort.
  • Regio, bijvoorbeeld de regio Saratov.
  • Stad.
  • De volledige naam van de organisatie of de naam van de site-eigenaar.

Het CSR-verzoek wordt naar het verificatiecentrum gestuurd. Als gevolg hiervan ontvangt u een SSL-certificaat en een bestand met een privésleutel, die niet verloren kan gaan of openbaar kan worden geplaatst.

Hierna moet u het certificaat op de webserver installeren. Laten we de gevallen met Apache en nginx bekijken.

Apache

Om dit te doen, moet u alle certificaten naar de server uploaden: zowel hoofd- als tussenliggende certificaten. Allereerst heb je deze laatste nodig in de map /usr/local/ssl/crt (standaard gebruikt, in jouw geval kan dit verschillen). Alle certificaten worden daar opgeslagen.

Download daarna het hoofdcertificaat en open het in een willekeurig bestand teksteditor en kopieer de volledige inhoud samen met de regels "BEGIN" en "END".

Maak in de map /ssl/crt/ een bestand met de naam vashsite.crt en plak de inhoud van het certificaat daarin.

Verplaats het privésleutelbestand naar de map /usr/local/ssl/private/

Voeg in het VirtualHost-bestand de regels toe:

SSLEngine ingeschakeld

SSLCertificateKeyFile /usr/local/ssl/private/private.key

SSLCertificateFile /usr/local/ssl/crt/uwsite.crt

SSLCertificateChainFile /usr/local/ssl/crt/intermediate.crt

U moet geldige paden naar de bestanden opgeven. Sla de wijzigingen op en start de server opnieuw op.

nginx

Hier is het proces van het installeren van een SSL-certificaat enigszins anders. Eerst moet u de root-, intermediate- en SSL-certificaten in één combineren. Om dit te doen, maakt u een bestand met de naam vashsite.crt en plakt u de inhoud van de certificaten daar, samen met de regels "BEGIN" en "END" (volgorde: SSL, tussenproduct, root). Lege regels dat zou niet zo moeten zijn.

Bijna hetzelfde moet worden gedaan met de privésleutel: maak het bestand vashsite.key en breng de inhoud over van de sleutel die is gedownload van de website van de leverancier.

Plaats beide bestanden (yoursite.crt en vashsite.key) in de map /etc/ssl/ (dit is de standaard, maar kan verschillen).

Bewerk VirtualHost in het configuratiebestand. Toevoegen:

server(
luister 443;
ssl aan;

ssl_certificaat /etc/ssl/uwsite.crt;
ssl_certificate_key /etc/ssl/uwsite.key;
servernaam uwsite.com;

Als de directory met het certificaat en de sleutel afwijkt van de standaardmap, wijzig deze dan.

Sla nu de wijzigingen op en start nginx opnieuw.

Hoe u een werkende HTTPS-verbinding kunt krijgen

Na het installeren van SSL-certificaten is de site toegankelijk op twee adressen: http://uwsite.com en https://uwsite.com. Je hoeft alleen de laatste te bewaren. Om dit te doen, configureert u het robots.txt-bestand en maakt u een 301-omleiding vanaf de oude site.

In "robots" moet je de host updaten. Voorbeeld: Host: https://uwsite.com. Om de omleiding te configureren, moet je de volgende regels toevoegen aan het .htacsess-bestand:

HerschrijfCond %(SERVER_PORT) !^443$

RewriteRule ^(.*)$ https://uwsite.com/$1 .

Nu hoeft u alleen nog maar de zoekmachines over de wijzigingen te informeren. Voeg in de webmaster van Yandex een pagina met https toe en specificeer deze als de hoofdpagina voor de oude site.

Resultaten

We hebben uitgezocht wat https is, hoe je het op je website installeert en hoe je alles correct configureert. Dit protocol is al een verbindingsstandaard geworden en na verloop van tijd zullen alle livesites hiernaar overstappen. Dit proces wordt aangemoedigd door zoekmachines - de aanwezigheid van een gevestigd veilig protocol HTTPS-verbindingen werd een van de rankingfactoren. Daarom moet je het installeren als je de top wilt bereiken.

Moderne browsers Google Chrome, Yandex, Opera, Firefox en vele anderen kunnen hun hoofdtaken goed uitvoeren en de ontwikkelaars van deze software betalen speciale aandacht beveiliging. Soms veroorzaakt dit enig ongemak voor gebruikers.

Waarom treedt de fout op?

Er zijn verschillende redenen waarom een ​​dergelijke fout in browsers kan verschijnen, waaronder de volgende:

  • Probleem met SSL-certificaten. Sites moeten deze aan browsers verstrekken, en wanneer dit niet gebeurt, "staat" de browser de gebruiker geen toegang tot de site toe en wordt de genoemde fout weergegeven.
  • De browser controleert verbindingen en wanneer er een DNS-knooppunt in de keten zit en deze om bepaalde redenen niet kan worden geverifieerd, wordt de verbinding geblokkeerd. Een soortgelijke situatie doet zich voor bij VPN-verbindingen of bij proxyservers.
  • Browsers verbreken verbindingen als de site geen https-certificaat heeft en u persoonlijke gegevens moet invoeren.

Hoe kan ik de foutmelding ‘Kan geen beveiligde verbinding tot stand brengen’ omzeilen?

  • Hoe browsercache te wissen - instructies voor alle browsers
  • Onvoldoende rechten om te verwijderen, neem contact op met uw beheerder - wat moet ik doen?
  • Als u naar een specifieke site moet gaan, maar dit is niet mogelijk vanwege de foutmelding 'Kan niet installeren beveiligde verbinding", je kunt het omzeilen. Houd er rekening mee dat dit uw computer in gevaar brengt, dus doe dit alleen wanneer extreme gevallen. Laten we het algoritme van acties bekijken met behulp van het voorbeeld van Yandex.Browser:

    • Open uw browserinstellingen.
    • Ga onderaan naar het tabblad ‘Geavanceerde instellingen weergeven’.
    • Zoek het https/ssl-menu en klik op de knop "Geavanceerd".
    • Om de beveiliging die de fout veroorzaakt te omzeilen, schakelt u de selectievakjes 'Serverauthenticatie' en 'Vertrouwde DNS-server' uit.

    Browser-add-ons

    In Chrome, Yandex en vele andere browsers kunt u add-ons installeren, waarvan sommige het openen van bepaalde sites verhinderen. Probeer alles uit te schakelen geïnstalleerde add-ons en open de site. Als het zonder fouten wordt geopend, schakel dan de add-ons één voor één in om te bepalen welke de toegang blokkeert tot de bron waarin u geïnteresseerd bent, en verwijder deze of laat deze uitgeschakeld.

    Andere manieren om de fout op te lossen

    De foutmelding “Het is niet mogelijk om een ​​beveiligde verbinding tot stand te brengen” kan om een ​​aantal andere redenen optreden bij het openen van afzonderlijke sites. Als het uitschakelen van certificaatcontrole niet helpt, probeer dan het volgende:

    • Update of installeer uw browser opnieuw.
    • Installeren juiste datum, tijdzone en computertijd.
    • Probeer vanaf de site naar de site te gaan zoekmachine, en niet via een opgeslagen bladwijzer.
    • Soms is het probleem virussen op de harde schijf, waarvan een antivirusprogramma kan helpen zich te ontdoen.

    Het kan niet worden uitgesloten tijdelijk probleem op de site die u probeert te openen. In dit geval verdwijnt de fout na een bepaalde tijd vanzelf.

    Tegenwoordig is het vrij moeilijk om iemand te vinden die geen internet gebruikt.

    Veel gebruikers brengen behoorlijk wat tijd door in de open ruimtes. groot aantal tijd. Daarom is er meer dan ooit vraag naar.

    Maar wat te doen als alle plannen worden verstoord door een plotseling verschijnende waarschuwing? uw verbinding is niet beveiligd.

    In dit artikel zullen we bekijken waarom deze fout V verschillende browsers en wat er moet gebeuren als het zich voordoet.

    Inhoud:

    Laten we eerst eens kijken naar het optreden van dit probleem tijdens het gebruik.

    De betekenis van zo'n bericht

    Vaak verschijnt deze melding bij het bezoeken van beveiligde sites. Dergelijke sites, wanneer u ermee communiceert FireFox-browser gebruik een speciale coderingsmethode - #encryption. Dit wordt gedaan om de mogelijkheid tot bezichtiging uit te sluiten doorgegeven informatie door indringers.

    Om te begrijpen dat u precies zo'n site bezoekt, let u op de regel met het adres van de pagina die u bezoekt. In de statusregel ( #status_Bar) van de beschermde site zal een pictogram weergeven zoals gesloten slot. Het zal ook worden weergegeven in adresbalk (#locatie_bar).

    Bovendien geeft de browser ook de domeinnaam van de site weer in de statusbalk, geel gemarkeerd. Dit is nodig om ervoor te zorgen dat de gebruiker niet voor dit doel kan worden misleid.

    Dergelijke sites kunnen niet alleen beschermde informatie bevatten, maar ook onbeschermde informatie waartoe iedereen gratis toegang heeft.

    Als de informatie van de site niet beveiligd is, zal FireFox een hangslotpictogram met een schuine streep erdoor weergeven in de statusbalk. Er zal ook geen domeinnaam in de adresbalk en statusbalk staan. Als u op dergelijke informatie let, zult u onmiddellijk begrijpen dat de site die u bezoekt gedeeltelijk beschermd is.

    Om dit probleem op te lossen, moet u de antivirus opnieuw installeren of het onderscheppen van beveiligde verbindingen uitschakelen in de instellingen.

    Als u bijvoorbeeld systeembeveiliging gebruikt, opent u “Instellingen” en gaat u naar het tabblad « Actieve bescherming» .

    Daar moet u op de knop “Configureren” naast het webschild klikken.

    In het geopende venster haalt u het vinkje weg uit het selectievak op de regel 'HTTPS-scannen inschakelen'. Ten slotte moet u de wijzigingen in de instellingen bevestigen door op de knop "Ok" te klikken.

    Als u een product gebruikt zoals - je zult moeten doen volgende stappen:

    • open een venster met antivirusinstellingen;
    • klik linksonder in dit venster op de knop “Instellingen”;
    • gebruik het punt "Aanvullend" om naar het tabblad “Netwerk” te gaan;
    • deselecteer de menubalk "Gecodeerde verbindingen scannen";
    • vink het vakje naast de parameter aan "Geen gecodeerde verbindingen scannen";
    • Bevestig de wijzigingen door op de knop “Ok” te klikken.

    Het is niet moeilijk te vinden op internet noodzakelijke informatie en voor anderen antivirusproducten.

    Uw browser kan een gebrek aan vertrouwen in het certificaat tonen, niet alleen op weinig bekende sites, maar ook op giganten als Google. Meestal kunnen eigenaren dit tegenkomen. Dit komt door het feit dat Microsoft Familie-instellingen, die zich in gebruikersaccounts bevinden, zijn geactiveerd.

    De volgende stap is het verwijderen van alle bestaande gezinsleden met behulp van de functie "Verwijderen uit familie" op het tabblad aanvullende parameters.

    Kortom, u moet het gezin zelf verlaten, met behulp van de optie met dezelfde naam.

    Vierde fout

    Het bestaat uit een gebrek aan vertrouwen in het certificaat, aangezien dit zelfondertekend is.

    Dit soort certificaten zijn bedoeld om te beschermen tegen afluisteren, maar geven geen informatie over de ontvanger.

    Meestal gebruiken niet-openbare sites dit, dus u kunt dit gemakkelijk omzeilen deze waarschuwing.

    Vijfde fout

    Het probleem is dat het aan u verstrekte certificaat tot een geheel andere internetbron behoort.

    Dit probleem komt vrij vaak voor en is voornamelijk te wijten aan het feit dat het uitgegeven certificaat geldig is voor een deel van de bezochte site.

    Je bent bijvoorbeeld op bezoek geweest https://voorbeeld.com en ontving een waarschuwing over een soortgelijke fout, en er werd een certificaat uitgegeven voor https://www example.com. Als je naar dat laatste gaat, verschijnen er geen waarschuwingen.

    Certificaatopslag

    Opkomst soortgelijke berichten kan ook optreden als gevolg van bestandsbeschadiging cert9.db, waarin al uw certificaten worden opgeslagen.

    In dit geval verwijdert u het bovenstaande bestand zonder FireFox te openen, zodat het de volgende keer dat u het start, kan worden hersteld.

    Om dit te doen, volgt u deze stappen:

    • open het menu en selecteer “Help”;
    • ga naar het tabblad "Informatie voor het oplossen van problemen";
    • open de profielmap in de sectie "Applicatiedetails";
    • open het menu opnieuw en selecteer “Exit”;
    • selecteer het bestand db en verwijder het;
    • herstart uw browser.
    • Vertaling

    Hoe werkt HTTPS eigenlijk? Dit is een vraag waarmee ik al een aantal dagen worstel tijdens een werkproject.

    Als webontwikkelaar begreep ik dat het gebruik van HTTPS om gebruikersgegevens te beschermen heel erg is goed idee, maar ik heb nooit een goed begrip gehad van hoe HTTPS eigenlijk werkt.

    Hoe worden gegevens beschermd? Hoe kunnen een client en server een veilige verbinding tot stand brengen als iemand al naar hun kanaal luistert? Wat is een beveiligingscertificaat en waarom zou ik iemand moeten betalen om er een te krijgen?

    Pijpleiding

    Voordat we ingaan op hoe het werkt, laten we eerst kort bespreken waarom het belangrijk is om internetverbindingen te beveiligen en waartegen HTTPS beschermt.

    Wanneer een browser een verzoek indient bij uw favoriete website, moet het verzoek via vele verzoeken gaan diverse netwerken, die allemaal mogelijk kunnen worden gebruikt om een ​​bestaande verbinding af te luisteren of te verstoren.

    Van jouw eigen computer naar andere computers van u lokaal netwerk, via routers en switches, via uw ISP en via vele andere tussenliggende providers - een groot aantal organisaties geven uw gegevens door. Als een aanvaller in minstens één daarvan terechtkomt, heeft hij de mogelijkheid om te zien welke gegevens worden verzonden.

    Normaal gesproken worden verzoeken verzonden via reguliere HTTP, waarbij zowel het clientverzoek als het serverantwoord worden verzonden open vorm. En er zijn veel goede argumenten waarom HTTP standaard geen encryptie gebruikt:

    Er is meer voor nodig rekenkracht
    Er worden meer gegevens overgedragen
    Caching kan niet worden gebruikt

    Maar in sommige gevallen, wanneer het communicatiekanaal uitsluitend verzendt belangrijke informatie(zoals wachtwoorden of data creditcards), moeten aanvullende maatregelen worden genomen om het afluisteren van dergelijke verbindingen te voorkomen.

    Transportlaagbeveiliging (TLS)

    Nu gaan we in de wereld van de cryptografie duiken, maar hiervoor hebben we geen speciale ervaring nodig - we zullen alleen de meest overwegen algemene vragen. Met cryptografie kun je dus een verbinding beschermen tegen potentiële aanvallers die de verbinding willen beïnvloeden of deze eenvoudigweg willen afluisteren.

    TLS – de opvolger van SSL – is het protocol dat het meest wordt gebruikt om de veiligheid te garanderen HTTP-verbindingen(zogenaamde HTTPS). TLS bevindt zich een niveau lager HTTP-protocol in het OSI-model. Simpel gezegd betekent dit dat tijdens het uitvoeren van een verzoek eerst alle “dingen” gebeuren die verband houden met de TLS-verbinding en pas daarna alles wat verband houdt met de HTTP-verbinding.

    TLS is een hybride cryptografisch systeem. Dit betekent dat het verschillende cryptografische benaderingen gebruikt, die we hierna zullen bekijken:

    1) Asymmetrische encryptie (cryptosysteem met publieke sleutel) voor het genereren van een gedeelde geheime sleutel en authenticatie (dat wil zeggen, verifiëren dat u bent wie u zegt dat u bent).
    2) Symmetrische codering met behulp van geheime sleutel voor verdere versleuteling van verzoeken en antwoorden.

    Cryptosysteem met openbare sleutel

    Een cryptosysteem met publieke sleutel is een type van cryptografisch systeem, wanneer elke zijde zowel open als heeft privé sleutel, wiskundig met elkaar verbonden. De publieke sleutel wordt gebruikt om de tekst van het bericht te versleutelen in ‘brabbeltaal’, terwijl de privésleutel wordt gebruikt om de originele tekst te ontsleutelen en op te halen.

    Zodra een bericht is gecodeerd met een publieke sleutel, kan het alleen worden gedecodeerd met de bijbehorende privésleutel. Geen enkele sleutel kan beide functies vervullen. De publieke sleutel wordt gepubliceerd in open toegang zonder het risico dat het systeem wordt blootgesteld aan bedreigingen, maar de privésleutel mag niet in handen komen van iemand die niet de rechten heeft om de gegevens te ontsleutelen. We hebben dus sleutels - openbaar en privé. Een van de meest indrukwekkende voordelen van asymmetrische encryptie is dat twee partijen voorheen volledig met elkaar verbonden zijn deskundige vriend vriend, kan een beveiligde verbinding tot stand brengen, waarbij in eerste instantie gegevens worden uitgewisseld via een open, onbeveiligde verbinding.
    De client en server gebruiken hun eigen privésleutels en een gepubliceerde openbare sleutel om een ​​gedeelde geheime sleutel voor de sessie te creëren.

    Dit betekent dat als iemand zich tussen de cliënt en de server bevindt en de verbinding waarneemt, hij nog steeds niet in staat zal zijn om de privésleutel van de cliënt, de privésleutel van de server of de geheime sleutel van de sessie te achterhalen.

    Hoe is dit mogelijk? Wiskunde!

    Diffie-Hellman-algoritme

    Een van de meest voorkomende benaderingen is het Diffie-Hellman (DH) sleuteluitwisselingsalgoritme. Met dit algoritme kunnen de client en de server overeenstemming bereiken over een gedeelde geheime sleutel zonder dat de geheime sleutel via de verbinding hoeft te worden verzonden. Aanvallers die naar het kanaal luisteren, zullen dus niet in staat zijn de geheime sleutel te achterhalen, zelfs als ze zonder uitzondering alle datapakketten onderscheppen.

    Zodra de sleutels zijn uitgewisseld met behulp van het DH-algoritme, kan de resulterende geheime sleutel worden gebruikt om verdere communicatie binnen die sessie te versleutelen met behulp van veel eenvoudigere symmetrische versleuteling.

    Een beetje wiskunde...

    De wiskundige functies die aan dit algoritme ten grondslag liggen, zijn belangrijk onderscheidend kenmerk- ze zijn relatief eenvoudig te berekenen in de voorwaartse richting, maar praktisch niet in de omgekeerde richting. Dit is precies het gebied waar zeer grote priemgetallen een rol spelen.

    Laat Alice en Bob twee partijen zijn die sleutels uitwisselen met behulp van het DH-algoritme. Eerst zijn ze het op een bepaalde basis eens wortel(meestal een klein aantal zoals 2,3 of 5) en een heel groot aantal priemgetal prima(meer dan 300 cijfers). Beide waarden worden in duidelijke tekst over het communicatiekanaal verzonden, zonder de dreiging dat de verbinding in gevaar komt.

    Bedenk dat zowel Alice als Bob hun eigen privésleutels hebben (van meer dan 100 cijfers), die nooit via communicatiekanalen worden verzonden.

    Het mengsel wordt verzonden via het communicatiekanaal mengsel, afgeleid van zowel de privésleutels als de waarden prima En wortel.

    Dus:
    Alice's mengsel = (wortel ^ Alice's Secret)% prime
    Bob's mengsel = (wortel ^ Bob's Secret)% prime
    waarbij % de rest van de deling is

    Zo creëert Alice haar mengsel op basis van de goedgekeurde waarden van de constanten ( wortel En prima), Bob doet hetzelfde. Zodra ze de waarden hadden mengsel elkaar, ze produceren extra wiskundige bewerkingen om de privésleutel van de sessie te verkrijgen. Namelijk:

    De berekeningen van Alice
    (Bob's mengsel ^ Alice's Secret) % prime

    Bobs berekeningen
    (Alice's mengsel ^ Bob's Secret) % prime

    Het resultaat van deze bewerkingen is hetzelfde nummer voor zowel Alice als Bob, en dit nummer wordt de privésleutel deze sessie. Merk op dat geen van beide partijen hun privésleutel via het communicatiekanaal hoefde te verzenden, en dat de resulterende geheime sleutel ook niet via de openbare verbinding werd verzonden. Geweldig!

    Voor degenen die minder wiskundig onderlegd zijn, biedt Wikipedia een uitstekend beeld van de uitleg dit proces Gebruik kleurmenging als voorbeeld:

    Merk op hoe de startkleur (geel) uiteindelijk dezelfde “gemengde” kleur is voor zowel Bob als Alice. Het enige dat wordt overgedragen open kanaal communicatie bestaat uit halfgemengde kleuren, die feitelijk betekenisloos zijn voor iedereen die naar het communicatiekanaal luistert.

    Symmetrische codering

    Sleuteluitwisseling vindt slechts één keer per sessie plaats, tijdens het tot stand brengen van de verbinding. Wanneer de partijen al overeenstemming hebben bereikt over een geheime sleutel, client-server-interactie gebeurt met de hulp symmetrische encryptie, wat veel efficiënter is voor het verzenden van informatie, omdat er geen extra bevestigingsoverhead vereist is.

    Met behulp van een eerder verkregen geheime sleutel en een overeenkomst over de encryptiemodus kunnen de client en de server veilig communiceren door berichten die van elkaar zijn ontvangen met behulp van de geheime sleutel te coderen en decoderen. Een aanvaller die verbinding maakt met een kanaal ziet alleen ‘rommel’ over het netwerk heen en weer lopen.

    Authenticatie

    Met het Diffie-Hellman-algoritme kunnen twee partijen een privégeheime sleutel verkrijgen. Maar hoe kunnen beide partijen er zeker van zijn dat ze echt met elkaar praten? We hebben het nog niet gehad over authenticatie.

    Wat als ik mijn vriend bel, we een DH-sleuteluitwisseling doen, maar ineens blijkt dat mijn oproep is onderschept en dat ik eigenlijk met iemand anders aan het praten was?! Ik zal nog steeds veilig met deze persoon kunnen communiceren - niemand anders kan naar ons luisteren - maar dit zal niet de persoon zijn met wie ik denk dat ik communiceer. Het is niet erg veilig!

    Om het authenticatieprobleem op te lossen, hebben we een Public Key Infrastructure nodig om ervoor te zorgen dat proefpersonen zijn wie ze zeggen dat ze zijn. Deze infrastructuur is ontworpen om digitale certificaten aan te maken, te beheren, te distribueren en in te trekken. Certificaten zijn die vervelende dingen waarvoor u moet betalen om uw site via HTTPS te laten werken.

    Maar wat is een certificaat precies en hoe biedt het ons zekerheid?

    Certificaten

    In de meest grove benadering is een digitaal certificaat een bestand dat gebruikmaakt van een elektronische digitale handtekening (daarover later meer) en dat de openbare sleutel van een computer koppelt aan het eigendom ervan. Digitale handtekening op een certificaat betekent dat iemand certificeert dat een bepaalde openbare sleutel toebehoort aan een specifieke persoon of organisatie.

    In wezen zijn certificaten bindend domeinnamen met een specifieke publieke sleutel. Dit voorkomt de mogelijkheid dat een aanvaller zijn openbare sleutel, waarbij de server wordt nagebootst waartoe de client toegang heeft.

    In het telefoonvoorbeeld hierboven kan een hacker proberen mij zijn openbare sleutel te laten zien door zich voor te doen als een vriend van mij, maar de handtekening op zijn certificaat zou niet die zijn van iemand die ik vertrouw.

    Om een ​​certificaat door een webbrowser te kunnen vertrouwen, moet het ondertekend zijn door een geaccrediteerde certificeringsinstantie (Certificate Authority, CA). CA zijn bedrijven die presteren handmatige controle, dat de persoon die het certificaat probeert te verkrijgen, aan de volgende twee voorwaarden voldoet:

    1. bestaat echt;
    2. toegang heeft tot het domein waarvoor hij een certificaat probeert te verkrijgen.

    Zodra de CA ervan overtuigd is dat de aanvrager echt is en daadwerkelijk het domein beheert, ondertekent de CA een certificaat voor die site, waarmee in feite een stempel wordt gedrukt op het feit dat de publieke sleutel van de site er daadwerkelijk toe behoort en kan worden vertrouwd.

    Uw browser is al vooraf geladen met een lijst met geaccrediteerde CA's. Als de server een certificaat retourneert dat niet is ondertekend door een geaccrediteerde CA, verschijnt er een grote rode waarschuwing. Anders zou iedereen valse certificaten kunnen ondertekenen.

    Dus zelfs als een hacker de openbare sleutel van zijn server zou pakken en een digitaal certificaat zou genereren waarin wordt bevestigd dat deze openbare sleutel is gekoppeld aan de website facebook.com, zal de browser dit niet geloven omdat het certificaat niet is ondertekend door een geaccrediteerde CA.

    Andere dingen die u moet weten over certificaten

    Uitgebreide validatie
    Naast de reguliere X.509-certificaten zijn er Extended Validation-certificaten die meer bieden hoog niveau vertrouwen. Door een dergelijk certificaat uit te geven, voert de CA nog meer controles uit op de persoon die het certificaat ontvangt (meestal aan de hand van paspoortgegevens of rekeningen).

    Bij ontvangst van een dergelijk certificaat toont de browser een groene balk in de adresbalk, naast het gebruikelijke pictogram met een hangslot.

    Presenteren van meerdere websites op één server
    Omdat gegevensuitwisseling is TLS-protocol plaatsvindt voordat de HTTP-verbinding begint, kunnen er problemen optreden als meerdere websites zich op dezelfde webserver bevinden, op hetzelfde IP-adres. Routering virtuele gastheren wordt uitgevoerd door de webserver, maar de TLS-verbinding vindt zelfs eerder plaats. Er zal één enkel certificaat voor de gehele server worden gebruikt bij het aanvragen van een site op de server, wat tot problemen kan leiden