STS-protokolla tai Station -to-Station-protokolla ( Station-to-Station-protokolla , STS ) on kryptografinen protokolla , jonka avulla kaksi osapuolta voivat hankkia jaetun salaisen avaimen suojaamattoman viestintäkanavan avulla . Saatua avainta käytetään jatkossa symmetristä salausta käyttäen . Protokolla perustuu Diffie-Hellman-algoritmiin .
STS-protokollan erottuva piirre on aikaleimien puuttuminen ja tuki täydelliselle eteenpäinsalaisuusominaisuudesta . . Protokolla suorittaa myös kaksisuuntaisen avainvahvistuksen [1] , jonka avulla protokolla voidaan luokitella " autentikoiduksi avainsopimukseksi avaimen vahvistuksella " (AKC).
STS otettiin alun perin käyttöön vuonna 1987 ISDN -puhelinverkon tietoturvan yhteydessä (O'Higgins et al. 1987) [2] , laajennettiin vuonna 1989 ja sen esittelivät lopulta Whitfield Diffie , Paul C. van Oorschot ja Michael Weiner (Michael). J. Wiener) vuonna 1992. STS-protokollan pohjalta luotiin IKE -protokolla , josta on tullut alan standardi .
Jos haluat yksityiskohtaisen kuvauksen toimintaperiaatteesta, harkitse joidenkin käyttäjien - Alice ja Bob - välistä tiedonvaihtoprosessia . Oletetaan, että Alicella on Bobin varmennettu julkinen avain ja Bobilla on Liisen sertifioitu julkinen avain. Samanaikaisesti molemmat avaimet on aiemmin sertifioinut luotettava varmenneviranomainen , joka ei ole suoraan mukana prosessissa. Ennen kuin aloitat protokollan, sinun on suoritettava seuraavat vaiheet [3] [4] :
Protokolla koostuu seuraavista tiedonvaihtokierroksista Alicen ja Bobin välillä :
1. Alice valitsee satunnaisluvun x siten, että 2 ≤ x ≤ p-1 ja lähettää Bobille viestin m A = g x mod p
(1) Liisa → Bob : m A = g x mod p,2. Bob valitsee satunnaisluvun y siten, että 2 ≤ y ≤ p-1, laskee m B = g y mod p ja käyttämällä Alicelta saatua viestiä jaetun salaisen avaimen K = m A y mod p = g xy mod s. Sitten hän lähettää Alice m B :lle ja salatun viestin E K (Sig B ( m B , m A )), joka on allekirjoitettu hänen sähköisellä digitaalisella allekirjoituksellaan.
(2) Liisa ← Bob : m B = g y mod p, E K (Sig B ( m B , m A )),3. Alice laskee samalla tavalla salaisen avaimen ja purkaa Bobin viestin. Sitten se todentaa Bobin tarkistamalla hänen sähköisen allekirjoituksensa ja lähettää hänelle viestin E k (Sig A ( m A , m B )), joka on allekirjoitettu hänen allekirjoituksellaan.
(3) Liisa → Bob : E k (Sig A ( m A , m B )),4. Bob vastaanottaa viestin Alicelta, purkaa sen salauksen ja tarkistaa Alicen allekirjoituksen.
Tässä Sig A ja Sig B ovat käyttäjien Alice ja Bob digitaalisia allekirjoituksia , vastaavasti, K = g xy mod p on vaadittu yhteinen avain.
Digitaalisten allekirjoitusten käyttö lähetettäessä viestejä Alicen ja Bobin välillä takaa [5] viestin aitouden vastaanottajalta käyttäjältä, jolta sen olisi pitänyt tulla. Käyttäjän allekirjoitusarvojen salaus symmetrisellä algoritmilla E otettiin käyttöön avaimen laskennan oikeellisuuden molemminpuolisen vahvistuksen varmistamiseksi, koska on mahdotonta saada digitaalisten allekirjoitusten oikeita arvoja väärin lasketulla avaimella. .
Vuonna 1994 Oxfordin yliopiston Kevin Lowehyökkäyksen STS - protokollaa vastaan [ 6 ] Tässä tapauksessa Eva yrittää selvittää kirjeenvaihtoa [7] .
(1) Liisa → Eeva(Bob) : m A = g x mod p, (2) Eeva → Bob : m A , (3) Eve ← Bob : m B = g y mod p, E K (Sig B ( m B , m A )), (4) Liisa ← Eve (Bob) : m B , E K (Sig B ( m B , m A )), (5) Liisa → Eeva(Bob) : E K (Sig A ( m A , m B )).Kryptusanalyytikko Eve, keskellä Alicen ja Bobin välissä, käyttää laillista keskusteluaan Bobin kanssa vakuuttaakseen Alicen siitä, että tämä toimii Bobin puolesta. Istunto Bobin kanssa jää kesken, koska Eve, joka ei tiedä jaettua salaista avainta, ei pysty arvaamaan Bobin oikeaa vastausta. Siksi kaikki Eevan kolmannen vaiheen viestit hylätään. Tämä hyökkäys ei aiheuta todellista vaaraa [4] , koska salainen avain K jää Eevalle tuntemattomaksi. Tässä tapauksessa Alice erehtyy kuitenkin Eveen Bobiin. Bob luulee, että hän on muodostanut yhteisen avaimen Eevan, mutta itse asiassa Alicen kanssa. Näin ollen protokolla ei toimi oikein. Tällaisen hyökkäyksen seuraukset ovat verrattavissa tilanteeseen, jossa Eve on passiivinen, kunnes Alice lähettää viimeisen viestin Bobille. Bob ei voi vastaanottaa sitä, koska Eve estää viimeisen viestin. Bob ilmoittaa Alicelle, että viimeistä viestiä ei ole vastaanotettu. Vaikka yksittäinen hyökkäys ei ole vaarallinen, joukko hyökkääjiä, jotka ovat tehneet tällaisen hyökkäyksen, voi kuitenkin vähentää keskuspalvelimen tehoa rajusti, koska palvelin varaa resursseja käyttäjille, joiden ilmoituksia ei tule. On myös syytä huomata, että tällaisen hyökkäyksen aikana Eve ja hänen liittolaisensa eivät tarvitse todistuksia . Joten tämä hyökkäys vaatii pienen määrän resursseja .
Vuonna 1995 Martin Abadi ja Robert Needham ehdottivat tapaa estää tällainen hyökkäys palvelimeen. Tätä varten riittää, että annat käyttäjätunnuksen avoimesti [8] .
Vuonna 2004 Colin Boyd ja Wenbo Mao ehdottivat seuraavaa spesifikaatiota STS [9] -protokollalle :
(1) Liisa → Bob : m A = g x mod p (2) Liisa ← Bob : m B = g y mod p, Sig B ( m B , m A ), h K 0 ( m B , m A ) (3) Alice → Bob : Sig A ( m A , m B ), h K 0 ( m A , m B )jossa K 0 = f(k) on tiivistefunktion avainparametri h K 0 ( m A , m B ), laskettuna jonkin funktion arvona tuloksena olevasta istuntoavaimesta K = g xy mod p. P-moduuli ja g-generaattori ovat edelleen auki.
On olemassa "kahdenvälinen tuntematon avaimenjakohyökkäys" ( BUKS - hyökkäys ) [4] Tässä tapauksessa kryptanalyytikot Eva ja Mallory yrittävät selvittää kirjeenvaihtoa.
(1) Alice → Eve : m A = g x mod p (2) Eve → Mallory : m A (3) Mallory → Bob : m A (4) Mallory ← Bob : m B = g y mod p, Sig B ( m B , m A ), h K 0 ( m B , m A ) (5) Eve ← Mallory : m B , h K 0 ( m B , m A ) (6) Alice ← Eve : m B , Sig E ( m B , m A ), h K 0 ( m B , m A ) (7) Alice → Eve : Sig A ( m A , m B ), h K 0 ( m A , m B ) (8) Eeva → Mallory : h K 0 ( m A , m B ) (9) Mallory → Bob : Sig M ( m A , m B ), h K 0 ( m A , m B )Tämän seurauksena Eve ja Mallory, jotka tekevät yhteistyötä, johdattivat harhaan Alicen ja Bobin, jotka muodostivat yhteisen avaimen. Samaan aikaan Alice on varma, että hän on muodostanut jaetun avaimen Even kanssa, ja Bob on varma, että hän on muodostanut jaetun avaimen Malloryn kanssa .
Yksinkertaistettua algoritmia käytetään puhtaasti keskinäiseen todentamiseen ilman yhteistä salaisuutta. Toteutus näyttää tältä [10] :
(1) Liisa → Bob : m A = g x mod p (2) Liisa ← Bob : m B = g y mod p, Sig B ( m B , m A ) (3) Alice → Bob : Sig A ( m A , m B )Hyökkäyksen aikana Eve, joka on järjestelmän laillinen käyttäjä ja omistaa julkisen avaimen varmenteen , pyytää Alicea alustamaan protokollan. Sen jälkeen hän aloittaa keskustelun Bobin kanssa, esittelee itsensä Liisaksi ja käyttää hänen kertalukuaan. Saatuaan vastauksen Bobilta Eve korvaa hänen todistuksensa ja allekirjoituksensa omilla kopioillaan. Tämä kehottaa Alicea allekirjoittamaan Bobin viestin, mikä puolestaan antaa Even huijata Bobia. .
(1) Alice → Eve : m A = g x mod p (2) Eeva → Bob : m A (3) Eve ← Bob : m B = g y mod p, Sig B ( m B , m A ) (4) Alice ← Eve : m B = g y mod p, Sig E ( m B , m A ) (5) Alice → Eve : Sig A ( m A , m B ) (6) Eeva → Bob : Sig A ( m A , m B )Tämän seurauksena Alice luulee puhuvansa Evelle, ja Bob luulee puhuvansa Alicelle. Tämä hyökkäys on virheetön, koska Alice tai Bob eivät epäile mitään. On huomattava, että Eve on erittäin aktiivinen rooli tässä hyökkäyksessä: hän allekirjoittaa Bobin luoman viestin ja vakuuttaa Alicen myös allekirjoittamaan sen johtaakseen Bobin täysin harhaan. Jos Eve olisi toiminut tavallisen passiivisen tarkkailijan roolissa, niin Alice ei olisi koskaan allekirjoittanut Bobin viestiä eikä olisi antanut itseään pettää [7] .
Tapauksissa, joissa on mahdotonta määrittää käyttäjää, jolta viesti on vastaanotettu, K = g xy voidaan käyttää väärennetyn lisäyksen luomiseen [11] :
(1) Liisa → Bob : m A = g x mod p (2) Liisa ← Bob : m B = g y mod , Sig B ( m B , m A ), MAC K ( Sig B ( g y , g x )) (3) Alice → Bob : S A ( g x , g y ), MAC K ( Sig A ( g x , g y ))