TLS
Ressourser:
Medium on TLS
"Transport Layer Security (TLS) encrypts data sent over the Internet to ensure that eavesdroppers and hackers are unable to see what you transmit."
I udarbejdelsen af min microservice backend i fht. CerebralPareseMidt har TLS været et kæmpe fundament i fht. sikkerhed.
TLS er et protokollag som anvendes ovenpå TCP protokollen og som udbygger TCP-handshaket med udveksling af certifikater, understøttet ssl-protokol-version og understøttet krypteringsalgoritme.
Et typisk workflow for brug af TLS som et lag på en TCP-HTTP udveksling ser således ud:
I min løsning har jeg brugt Mutual-Transport-Layer-Security (mTLS) som er en dobbeltsikringsmekanisme der pålyder, at server og klientcertifikaternes CA skal være i truststoren for både klient og server; på denne måde kan vi vide os sikre, at både klient og server er hvad de udgiver sig for at være, og forhindrer dermeds uautoriseret adgang på et applikationsniveau.
Certifikatsdannelse og generel TLS kodning har helt sikkert været det mest traumatiserende og noget af det mest læringsrige ved udarbejdelsen af projektet her på 4. semester. Det har været kaninhullet som har åbnet mine øjne for openssl, krypteringsformer, mounting af certifikater, truststores og generelt besværet ved selfsigned certifikater.
Hvorfor bruger man TLS?
For at kryptere indholdet i en kommunikationsmodel såsom AMQP eller HTTP. På det nye internet skal alt hvis du spørger mig være krypteret. Http med TLS er HTTPS, som browsers såsom DuckDuckGo udelukkende accepterer. TLS er end-to-end kryptering og gør eavesdropping/man-in-the-middleangreb tæt på umulige at blive udsat for.I løsningen har jeg anvendt mTLS imellem gateway og frontend, og anvender det i øvrigt imellem RMQ og alle microservices; både for at kryptere indholdet der sendes, og for at holde en verificering af microservicesene til rabbitmq i hævd.