Godkendelse af brugere og IoT-enheder med gensidig TLS

Lær at implementere gensidig TLS (mTLS) godkendelse til sikring af bruger- og IoT-enhedsforbindelser. Inkluderer trin-for-trin certifikatopsætning, serverkonfiguration, klientimplementering og retningslinjer for fejlfinding.

Lignende indhold

Vil du blive ved med at lære?

Tilmeld dig SSL.com's nyhedsbrev, bliv informeret og sikker.

Gensidig TLS (mTLS) autentificering skaber en sikker ramme for godkendelse af både brugere og IoT-enheder. Denne guide vil guide dig gennem implementeringen af ​​mTLS for at sikre sikker tovejsgodkendelse mellem klienter og servere.

Quick Start Guide

Opsætning af gensidig TLS følger en ligetil proces. Generer først de nødvendige server- og klientcertifikater. Konfigurer derefter din server til at kræve klientcertifikater. Indstil derefter dine kunder med deres certifikater og implementer korrekt certifikatvalidering. Til sidst skal du teste forbindelsen for at sikre, at alt fungerer som forventet.

Envejs og gensidig SSL /TLS Godkendelse

En af de definerende funktioner i SSL /TLS protokol er dens rolle i godkendelse af ellers anonyme parter på computernetværk (såsom internettet). Når du besøger et websted med en offentligt betroet SSL /TLS certifikat, kan din browser kontrollere, at webstedejeren med succes har demonstreret kontrol over dette domænenavn til en betroet tredjepartscertifikatmyndighed (CA), såsom SSL.com. Hvis denne verifikation mislykkes, advarer webbrowseren dig om ikke at stole på dette websted.

For de fleste applikationer, SSL /TLS bruger denne slags envejsgodkendelse af en server til en klient; en anonym klient (webbrowseren) forhandler en krypteret session med en webserver, der præsenterer en offentligt betroet SSL /TLS certifikat til at identificere sig selv under SSL /TLS håndtryk: Gensidig godkendelse, hvor begge server og klient i SSL /TLS session er godkendt, er også mulig og kan være meget nyttig under visse omstændigheder. I gensidig godkendelse, når serveren er godkendt under håndtrykket, sender den en CertificateRequest besked til klienten. Klienten vil svare ved at sende et certifikat til serveren til godkendelse: Klientgodkendelse via gensidig TLS kræver, at et certifikat inklusive Client Authentication (1.3.6.1.5.5.7.3.2) Extended Key Usage (EKU) er installeret på klientenheden. Alle SSL.com's E-mail-, klient- og dokumentsigneringscertifikater inkluderer klientgodkendelse.

Detaljeret implementeringsvejledning

Forståelse af gensidig TLS

Traditionel TLS giver servergodkendelse og kryptering, men gensidig TLS går videre ved at kræve, at begge parter fremviser digitale certifikater. Denne tovejsverifikation sikrer serverægthed, muliggør klientgodkendelse, etablerer en krypteret kommunikationskanal og forhindrer man-in-the-middle-angreb. Resultatet er en yderst sikker forbindelse, der er velegnet til følsomme applikationer og IoT-enhedskommunikation.

Forudsætninger

Før du begynder implementeringen, skal du sikre dig, at du har adgang til OpenSSL eller et lignende certifikatstyringsværktøj. Din webserver skal understøtte TLS, og du skal enten have adgang til en Certifikatmyndighed (CA) eller muligheden for at oprette en privat CA. Dine klienter skal også understøtte certifikatbaseret godkendelse.

Trin 1: Certifikatgenerering og -styring

Start med at generere de nødvendige certifikater til både server- og klientgodkendelse. Servercertifikatopsætningen kræver oprettelse af en privat nøgle, generere en anmodning om certifikatsignering, og underskrive certifikatet med din CA.

# Generer privat servernøgle
openssl genrsa -ud server.nøgle 2048
?
# Opret servercertifikat signeringsanmodning (CSR)
openssl req -ny -nøgle server.nøgle -ud server.csr
?
# Signer servercertifikatet med din CA
openssl x509 -krav -i server.csr -CA ca.crt -CAnøgle ca.nøgle -CAcreateserial -ud server.crt

For klientcertifikater skal du følge en lignende proces for at oprette deres unikke legitimationsoplysninger:

# Generer klientens private nøgle
openssl genrsa -ud klient.nøgle 2048
?
# Opret klient CSR
openssl req -ny -nøgle klient.nøgle -ud client.csr
?
# Underskriv klientcertifikatet
openssl x509 -krav -i client.csr -CA ca.crt -CAnøgle ca.nøgle -CAcreateserial -ud client.crt

Trin 2: Serverkonfiguration

Serveren skal konfigureres til at kræve og validere klientcertifikater. Her er et eksempel på konfiguration for Nginx:

server {
    lytte 443 ssl;
    server navn eksempel.com;
?
    ssl_certificate /sti/til/server.crt;
    ssl_certifikatnøgle /sti/til/server.nøgle;
    ssl_client_certificate /sti/til/ca.crt;
    ssl_verify_client på;
    ssl_protokoller TLSv1.2 TLSv1.3;
    ssl_ciphers HØJ:!aNULL:!MD5;
    ssl_prefer_server_ciphers på;
}

Til Apache-servere skal du bruge denne konfiguration:

<VirtualHost *:443>
    Server navn example.com
    
    SSLengine on
    SSLCertificateFile /sti/til/server.crt
    SSLCertificateKeyFile /sti/til/server.nøgle
    SSLCACertificateFile /sti/til/ca.crt
    SSLVerifyClient kræver
    SSLVerifyDepth 1

Trin 3: Klientimplementering

Browserbaseret godkendelse kræver import af klientcertifikatet til din browsers certifikatlager. Hver browser håndterer denne proces forskelligt, men generelt finder du muligheden i sikkerheds- eller privatlivsindstillingerne.

For IoT-enheder skal du implementere certifikatbaseret godkendelse i din kode. Her er et eksempel, der bruger Pythons anmodningsbibliotek:

importere anmodninger
?
klient_certifikat = ('client.crt', 'client.key')
ca_cert = 'ca.crt'
?
svar = anmodninger.('https://example.com',  
                       cert=klient_certifikat,
                       verificere=ca_cert)

Trin 4: Certifikatvalidering

Korrekt certifikatvalidering er afgørende for sikkerheden. Din implementering skal verificere certifikatkædens integritet, kontrollere udløbsdatoer, validere tilbagekaldelsesstatus og sikre korrekt nøglebrug. Her er et eksempel på implementering:

fra kryptografi importere x509
fra kryptografi.hazmat.backends importere default_backend
?
def validere_certifikat(cert_path):
    med åbent(cert_path, 'rb') as cert_fil:
        cert_data = cert_fil.læse()
        cert = x509.load_pem_x509_certifikat(cert_data, default_backend())
        
        if cert.ikke_gyldig_efter < dato tid.dato tid.nu():
            rejse ValueError("Certifikatet er udløbet")
            
        prøv:
            key_usage = cert.udvidelser.get_extension_for_class(x509.Nøglebrug)
            if ikke key_usage.værdi.digital_signatur:
                rejse ValueError("Certifikatet er ikke gyldigt til digital signatur")
        undtagen x509.udvidelser.ExtensionNotFound:
            rejse ValueError("Påkrævet nøglebrugsudvidelse blev ikke fundet")

Sager om gensidig godkendelse

Gensidig TLS godkendelse kan bruges både til at godkende slutbrugere og til gensidig godkendelse af enheder på et computernetværk.

Brugergodkendelse

Virksomheder og andre organisationer kan distribuere digitale klientcertifikater til slutbrugere som medarbejdere, entreprenører og kunder. Disse klientcertifikater kan bruges som en godkendelsesfaktor for adgang til virksomhedsressourcer såsom Wi-Fi, VPN'er og webapplikationer. Når det bruges i stedet for (eller ud over) traditionelle brugernavn / adgangskode legitimationsoplysninger, gensidig TLS tilbyder flere sikkerhedsfordele:
  • Gensidig TLS godkendelse er ikke sårbar over for legitimationstyveri via taktik som f.eks Phishing. Verizons 2020 Rapport om dataovertrædelse indikerer, at næsten en fjerdedel (22%) af dataovertrædelserne skyldes phishing. Phishing-kampagner er ude for let høstede legitimationsoplysninger som login-adgangskoder til websteder, ikke de private nøgler til brugernes klientcertifikater. Som et yderligere forsvar mod phishing, alle SSL.com'er E-mail-, klient- og dokumentsignering certifikater inkluderer offentligt tillid S/MIME til signeret og krypteret e-mail.
  • Gensidig TLS godkendelse kan ikke kompromitteres af dårlig adgangskodshygiejne eller brutale angreb på adgangskoder. Du kan kræve, at brugerne opretter stærke adgangskoder, men hvordan ved du, at de ikke bruger den samme "sikre" adgangskode på 50 forskellige websteder eller har den skrevet på en klæbrig note? EN Google-undersøgelse fra 2019 angiver, at 52% af brugerne genbruger adgangskoder til flere konti, og 13% af brugerne genbruger den samme adgangskode til alle af deres konti.
  • Klientcertifikater giver en klar kæde af tillidog kan styres centralt. Med gensidig TLS, verifikation af, hvilken certifikatmyndighed (CA), der har udstedt en brugers legitimationsoplysninger, bages direkte i godkendelsesprocessen. SSL.com's online styringsværktøjerSWS APIog adgang til standardprotokoller som SCEP gør udgivelse, fornyelse og tilbagekaldelse af disse legitimationsoplysninger et øjeblik!
SSL.com tilbyder flere muligheder for udstedelse og styring af klientcertifikater:
  • Enkeltpersoner eller organisationer, der kun kræver et eller et par certifikater, kan bestille E-mail-, klient- og dokumentsigneringscertifikater á la carte fra SSL.com.
  • Protokoller som SCEP, EST og CMP kan bruges til at automatisere tilmelding og fornyelse af klientcertifikater til virksomhedsejede enheder og BYO-enheder.
  • For kunder, der har brug for en stor mængde certifikater, fås engrosrabatter via vores Forhandler- og volumenindkøbsprogram.

Bedste praksis for sikkerhed

Stærk sikkerhed kræver mere end blot at implementere mTLS:

  • Implementer automatisk certifikatrotation for at sikre, at certifikater opdateres regelmæssigt
  • Vedligehold en certifikattilbagekaldelsesliste for hurtigt at ugyldiggøre kompromitterede certifikater
  • Brug stærke nøglestørrelser på mindst 2048 bit til RSA-nøgler
  • Konfigurer dine servere til kun at acceptere sikker TLS versioner og stærke chiffersuiter

Din klientsikkerhedsstrategi bør omfatte beskyttelse af private nøgler med stærke adgangskontroller. Regelmæssige sikkerhedsrevisioner vil hjælpe med at opretholde systemets integritet over tid.

Fejlfinding af almindelige problemer

Certifikatkædeproblemer

Ved implementering af mTLS, kan du støde på problemer med certifikatkæden. Disse stammer typisk fra:

  • Ufuldstændige certifikatkæder
  • Forkert installerede mellemliggende certifikater

Sådan løser du disse problemer:

  • Bekræft, at din tillidsankerkonfiguration er korrekt
  • Sørg for, at alle nødvendige certifikater er til stede

Forbindelsesproblemer

Forbindelsesproblemer relaterer sig ofte til:

  • Firewall-indstillinger blokerer TLS Trafik
  • Forkerte certifikattilladelser

Sådan foretages fejlfinding:

  • Kontroller, at dine certifikater er korrekt navngivet
  • Sørg for, at de er tilpasset deres tilsigtede brug

Ydelsesovervejelser

Ydelsesovervejelser bliver vigtige i skala. Sådan optimerer du ydeevnen:

  • Implementer sessionscache for at reducere omkostningerne ved gentagne håndtryk
  • Vælg effektive krypteringspakker, der balancerer sikkerhed og ydeevne
  • Overvåg din certifikatvalideringsproces for at sikre, at den ikke skaber unødvendige overhead

Konklusion

Gensidig TLS giver robust sikkerhed for både bruger- og IoT-enhedsgodkendelse. Denne vejledning har ledt dig gennem de væsentlige trin i implementeringen, fra certifikatgenerering til fejlfinding af almindelige problemer. Ved at følge disse retningslinjer og opretholde god sikkerhedspraksis kan du skabe et sikkert godkendelsessystem, der beskytter mod netværksbaserede angreb, samtidig med at du sikrer pålidelig klientidentifikation.

Kontakt en SSL.com-specialist om Mutual TLS og IoT

Hold dig informeret og sikker

SSL.com er en global leder inden for cybersikkerhed, PKI og digitale certifikater. Tilmeld dig for at modtage de seneste industrinyheder, tips og produktmeddelelser fra SSL.com.

Vi vil meget gerne have din feedback

Tag vores undersøgelse og fortæl os dine tanker om dit seneste køb.