Millised võtmed edastatakse serverilt kliendile?
sobes.tech AI
Vastus AI-lt
Pealkiri ei ole vastavalt reeglitele vajalik:
Serverist kliendile võib edastada erinevaid võtmeid sõltuvalt kontekstist ja kasutatavast protokollist. Peamised tüübid:
-
Avalikud võtmed: Asümmeetrilises krüptograafias võib server edastada oma avaliku võtme kliendile. Seda kasutatakse:
- andmete krüpteerimiseks kliendi poolt, mida saab dekrüpteerida ainult server (omades vastavat privaatvõtit);
- digitaalallkirja kontrollimiseks, mis on loodud serveri poolt selle privaatvõtmega.
-
Sessiooni identifikaatorid / Sessiooni tokenid: Need ei ole krüptograafilised võtmed, kuid nad mängivad rolli kasutaja sessiooni identifitseerimisel. Server genereerib unikaalse identifikaatori pärast kliendi autentimist ja saadab selle (tihti küpsise vormis). Klient lisab selle ID järgmistele päringutele sessiooni staatuse säilitamiseks.
-
Sümbioorsed krüpteerimisvõtmed: Kuigi sümbioorsed võtmed edastatakse harva otse avalikus vormis, neid sageli genereeritakse või sarnastakse turvalise ühenduse loomise protsessis (näiteks TLS/SSL protokollide kaudu). Server ja klient võivad kasutada Diffie-Hellmani või selle variatsioone, et turvaliselt kokku leppida ühises sümbioorses võtmes ilma selle otsese edastamiseta. See sümbioorne võti kasutatakse kogu liikluse krüpteerimiseks seansi jooksul.
-
Autentimise ja autoriseerimise tokenid (näiteks JWT): Server võib väljastada kliendile tokeni (näiteks JSON Web Token) pärast edukat autentimist. See token sisaldab teavet kasutaja ja tema õiguste kohta. Klient saadab selle tokeni serverile iga päringuga, et kinnitada oma isikut ja õigusi. Kuigi token ei ole krüptograafiline võti, on see allkirjastatud või krüpteeritud ainult serveri teadaolevate võtmetega.
-
API võtmed / Kliendi salajased võtmed: Mõnes arhitektuuris võib server väljastada kliendile (näiteks mobiilirakendusele või teisele teenusele) staatilise API võtme või salajase võtme, mida kasutatakse päringute autentimiseks. Kuid see on vähem turvaline klientrakenduste jaoks, kuna võti võib lekkida.
-
Sertifikaadid: Server edastab oma SSL/TLS sertifikaadi kliendile turvalise ühenduse loomise alguses. Sertifikaat sisaldab serveri avalikku võtit ja on allkirjastatud usaldusväärse CA poolt. Klient kasutab sertifikaati serveri autentsuse kontrollimiseks ja selle avaliku võtme saamiseks.
Näide HTTPS/TLS kontekstis avaliku võtme kasutamisest:
- Klient alustab TLS-kättemaksu.
- Server saadab oma sertifikaadi, mis sisaldab avalikku võtit.
- Klient kontrollib sertifikaati (usaldusketi, kehtivusaja jms) ja saab serveri avaliku võtme.
- Klient genereerib ajutise sümbioorse seansi võtme.
- Klient krüpteerib selle seansi võtme, kasutades serveri avalikku võtit.
- Klient saadab krüpteeritud seansi võtme serverile.
- Server dekrüpteerib seansi võtme, kasutades oma privaatvõtit.
- Edasine andmevahetus on krüpteeritud ja dekrüpteeritud selle kokkulepitud sümbioorse seansi võtmega.
Peamised punktid:
- Otsene salajaste/privaatsete võtmete edastamine serverist kliendile on äärmiselt mitte soovitatav turvalisuse kaalutlustel.
- Enamasti server edastab avalikke võtmeid, sessiooni identifikaatoreid, tõkeneid või osaleb sümbioorsete võtmete kokkuleppimisel.
- Konkreetsete võtmetüüpide kasutamine sõltub stsenaariumist (autentimine, krüpteerimine, sessiooni säilitamine jms).