< Return to Video

Deploying TLS 1.3: the great, the good and the bad (33c3)

  • 0:00 - 0:15
    33C3 intromusiikki
  • 0:15 - 0:20
    Herald: Seuraava esitelmä käsittelee
    TLS 1.3 käyttöönottoa
  • 0:20 - 0:24
    ja sen esittävät Filippo Valsorda
    sekä Nick Sullivan,
  • 0:24 - 0:27
    jotka he molemmat työskentelevät
    Cloudflarelle.
  • 0:27 - 0:32
    Joten toivottakaamme lämpimästi
    tervetulleeksi Nick ja Filippo!
  • 0:32 - 0:39
    aplodeja
  • 0:39 - 0:44
    Filippo: Hei kaikki. Puheenaiheenamme
    tänään on TLS 1.3.
  • 0:44 - 0:48
    TLS 1.3 on tietenkin uusin versio
    TLS:stä, joka tulee sanoista
  • 0:48 - 0:53
    "Transport Layer Security".
    Se on ehkä tutuin
  • 0:53 - 0:58
    vihreästä lukon kuvasta selaimessa,
    tai vanhasta nimestään: SSL,
  • 0:58 - 1:03
    jota yritämme edeelleen tappaa.
    TLS on
  • 1:03 - 1:08
    läpinäkyvä turvallisuusprotokolla,
    joka voi turvallisesti tunneloida
  • 1:08 - 1:12
    mielivaltaista sovellusliikennettä.
    Sitä käyttävät tietenkin web-selaimet,
  • 1:12 - 1:17
    sitä käyttävät sähköpostipalvelimet
    turvaamaan keskinäistä
  • 1:17 - 1:22
    SMTP liikennettään. Sitä käyttävät
    Tor-solmut keskinäiseen kommunikointiinsa.
  • 1:22 - 1:27
    Mutta se kehittyi yli 20 vuoden ajan,
  • 1:27 - 1:31
    mutta pohjimmiltaan se koskee asiakasta
    ja palvelinta jotka haluavat kommunikoida
  • 1:31 - 1:36
    turvallisesti verkon yli.
    Kommunikoidakseen turvallisesti verkon yli
  • 1:36 - 1:41
    niiden täytyy luoda avainmateriaalia,
    sopia keskenään avainmateriaalista
  • 1:41 - 1:47
    molemmin puolin salatakseen
    tulevan liikenteen.
  • 1:47 - 1:52
    Se, miten avainmateriaalista sovitaan,
    hoidetaan vaiheessa, jota kutsumme
  • 1:52 - 1:58
    "kättelyksi". Kättelyssä on mukana
    julkisen avaimen kryptografiaa ja
  • 1:58 - 2:03
    dataa, jota lapioidaan asiakkaalta
    palvelimelle, palvelimelta asiakkaalle.
  • 2:03 - 2:07
    Tältä kättely näyttää TLS 1.2:ssa.
  • 2:07 - 2:13
    Asiakas aloittaa tanssit
    lähettämällä "Client Hello"-viestin,
  • 2:13 - 2:19
    jossa kertoo, mitä tuettuja
    parametreja se voi käyttää.
  • 2:19 - 2:23
    Palvelin vastaanottaa sen ja lähettää
    oman viestinsä, joka on
  • 2:23 - 2:28
    "Server Hello", joka sanoo "Selvä!
    Käytetään tätä salausalgoritmien yhdistelmää,
  • 2:28 - 2:33
    jota sanot tukevasi, ja tässä on minun
    avainosuuteni käytettäväksi
  • 2:33 - 2:39
    tässä avaintenvaihtoalgoritmissa.
    Lisäksi, tässä on sertifikaatti,
  • 2:39 - 2:45
    jonka on allekirjoittanut auktoriteetti,
    joka todistaa, että todellakin olen
  • 2:45 - 2:50
    Cloudflare.com. Ja tässä on allekirjoitus
    sertifikaatista todistamaan, että tämä
  • 2:50 - 2:55
    avainosuus on todellakin se, jota haluan
    sinun käyttävän avainten luomiseen."
  • 2:55 - 3:01
    Asiakas vastaan ottaa sen ja generoi
    oman avainosuutensa, eli oman puolensa
  • 3:01 - 3:06
    Diffie-Hellman avaintenvaihdosta,
    ja lähettää avainosuuden sekä
  • 3:06 - 3:11
    viestin kertoakseen: "Se oli siinä.
    Kättely on nyt paketissa".
  • 3:11 - 3:15
    Tätä kutsutaan "Finished" viestiksi.
    Palvelin vastaanottaa sen, luo
  • 3:15 - 3:21
    oman "Finished" viestinsä ja
    vastaa sillä. Eli
  • 3:21 - 3:26
    nyt voimme vihdoin lähettää sovellusdataa.
    Kerrataanpa vielä prosessi:
  • 3:26 - 3:30
    Asiakas -> Palvelin, Palvelin -> Asiakas;
    Asiakas -> Palvelin, Palvelin -> Asiakas.
  • 3:30 - 3:35
    Meidän täytyi tehdä 2 edestakaista matkaa
    asiakkaan ja palvelimen välillä ennen
  • 3:35 - 3:41
    mitään muuta. Emme ole lähettäneet
    tavuakaan sovelluskerroksella
  • 3:41 - 3:46
    ennen tätä. Tämä tietenkin
    matkapuhelinverkoissa
  • 3:46 - 3:51
    tai tietyissä maailmankolkissa
    voi kerryttää
  • 3:51 - 3:55
    satojen millisekuntien viiveen.
    Ja tämä täytyy tehdä
  • 3:55 - 4:01
    joka kerta, kun uutta yhteyttä avataan.
    Joka kerta asiakkaan ja palvelimen
  • 4:01 - 4:06
    täytyy kulkea kahdesti välinsä
    luodakseen avaimet ennen
  • 4:06 - 4:13
    kuin yhteyttä voi oikeasti
    käyttää. TLS 1.1
  • 4:13 - 4:18
    ja 1.0 eivät eronneet suuresti
    1.2:sta. Voisikin kysyä: miksi sitten
  • 4:18 - 4:24
    pitää kokonainen esitys TLS 1.3:sta,
    joka on luultavasti vain taas yksi
  • 4:24 - 4:31
    iteraatio samasta konseptista? No,
    TLS 1.3 on oikeasti iso uudelleensuunnittelu.
  • 4:31 - 4:37
    Erityisesti kättely on uudelleen järjestetty.
    Ja tämän näkyvin tulos
  • 4:37 - 4:43
    on se, että yksi kokonainen
    edestakainen matka on karsittu pois.
  • 4:43 - 4:49
    Eli, tältä näyttää TLS 1.3-kättely.
  • 4:49 - 4:53
    Kuinka 1.3 poistaa edestakaisen matkan?
    Miten se pystyy siihen? Se kykenee siihen
  • 4:53 - 5:00
    ennustamalla, mitä
    avaintenvaihtoalgoritmia
  • 5:00 - 5:05
    palvelin tulee käyttämään, ja
    lähettämällä ennakkoon avainosuuden
  • 5:05 - 5:10
    tuota algoritmia varten palvelimelle.
    Eli ensimmäisessä viestissä meillä oli
  • 5:10 - 5:16
    "Client Hello", tuetut parametrit
    ja avainosuus algoritmille,
  • 5:16 - 5:22
    josta asiakas uskoo palvelimen pitävän.
    Palvelin vastaanottaa viestin
  • 5:22 - 5:27
    ja jos kaikki menee hyvin, se ajattelee:
    "Ah! Okei! Tykkään tästä avainosuudesta.
  • 5:27 - 5:33
    Tässä on oma avainosuuteni samaa
    algoritmia varten, ja tässä muut
  • 5:33 - 5:38
    parametrit, joita meidän tulisi käyttää."
    Se välittömästi sekoittaa avainosuudet
  • 5:38 - 5:42
    saadakseen jaetun yhteisen avaimen, koska
    nyt sillä on molemmat avainosuudet -
  • 5:42 - 5:47
    asiakkaan ja palvelimen - ja lähettää
    taas sertifikaatin ja allekirjoituksen
  • 5:47 - 5:51
    sertifikaatista, ja sitten välittömästi
    lähettää "Finished"-viestin, koska
  • 5:51 - 5:56
    se ei tarvitse mitään muuta asiakkaalta.
    Asiakas vastaanottaa tuon, ottaa
  • 5:56 - 6:02
    avainosuuden, luo jaetun yhteisen avaimen
    ja lähettää oman "Finished" viestinsä,
  • 6:02 - 6:07
    ja on valmis lähettämään sitä sovellus-
    dataa, jota olikaan lähettämässä.
  • 6:07 - 6:13
    Esimerkiksi HTTP-pyyntösi.
    Nyt prosessi meni näin:
  • 6:13 - 6:16
    Asiakas -> Palvelin, Palvelin -> Asiakas.
  • 6:16 - 6:21
    Ja olemme valmiita lähettämään
    sovelluskerroksen dataa. Eli, jos olit
  • 6:21 - 6:27
    avaamassa HTTPS-yhteyttä, selaimesi
  • 6:27 - 6:33
    ei tarvitse odottaa nelinkertaista viivettä,
    nelinkertaista pingiä. Sen täytyy
  • 6:33 - 6:39
    odottaa vain kaksinkertainen, ja tämä
    tietysti säästää satoja millisekunteja
  • 6:39 - 6:46
    viivettä kun avataan uusia yhteyksiä.
    Tämä oli onnellinen tapaus.
  • 6:46 - 6:52
    Näin käy kun ennustus osuu oikeaan
    ja palvelin tykkää asiakkaan
  • 6:52 - 6:58
    avainosuudesta. Jos palvelin ei tue
    avainosuutta, jonka
  • 6:58 - 7:05
    asiakas lähetti, se lähettää kohteliaan
    pyynnön käyttää jotain toista algoritmiä,
  • 7:05 - 7:11
    jota asiakas sanoi tukevansa. Tätä viestiä
    kutsutaan nimellä "Hello Retry Request".
  • 7:11 - 7:16
    Siinä on eväste, joten se voi olla tilaton
    mutta periaatteessa se on varakeino,
  • 7:16 - 7:22
    jolla palataan käytännössä TLS 1.2
    kaltaiseen kättelyyn. Eikä se ole kovin
  • 7:22 - 7:27
    vaikea toteuttaa, koska asiakas jatkaa
    uudella "Client Hello":lla, joka näyttää
  • 7:27 - 7:34
    periaattessa täysin samalta kuin
    täysin tuorekin. Nyt...
  • 7:34 - 7:42
    Tässä kohtaa olen valehdellut. TLS 1.2
    ei aina ole 2 edestakaista matkaa.
  • 7:42 - 7:48
    Suurin osa yhteyksistä, joita näemme
    esimerkiksi Cloudflaren reunalta ovat
  • 7:48 - 7:53
    istunnon jatkamisia. Eli asiakas on ollut
    yhteydessä k.o. sivustolle aiemmin.
  • 7:53 - 7:59
    Ja voimme käyttää tätä, voimme hyödyntää
    tätä ja tehdä kättelystä nopeamman.
  • 7:59 - 8:06
    Tämä tarkoittaa, että asiakas muistaa
    jotain avainmateriaalista, jotta pystyy
  • 8:06 - 8:11
    avaamaan seuraavan yhteyden vain yhdellä
    edestakaisella matkalla myös TLS 1.2:ssa.
  • 8:11 - 8:16
    Eli tältä se näyttää. Tässä on normaali
    TLS 1.2 täysi kahden edestakaisen
  • 8:16 - 8:22
    matkan yhteys. Ja tässä palvelin lähettää
    lipun uutta istuntoa varten. Istuntolippu
  • 8:22 - 8:30
    ei ole sen kummempi kuin salattu
    kapseloitu blob sisältäen avainmateriaalia
  • 8:30 - 8:35
    jonka asiakas säilyttää. Lippu on
    salattu ja allekirjoitettu avaimella,
  • 8:35 - 8:40
    jonka vain palvelin tietää. Eli se on
    täysin läpinäkymätön asiakkaalle.
  • 8:40 - 8:45
    Mutta asiakas säilyttää sen sekä
    yhteyden avainmateriaalin,
  • 8:45 - 8:49
    jotta seuraavan kerran kun se avaa
    yhteyttä samalle sivustolle
  • 8:49 - 8:54
    se lähettää "Client Hello":n ja
    istuntolipun.
  • 8:54 - 8:59
    Jos palvelin tunnistaa lipun, se purkaa
    salauksen ja löytää sisältä
  • 8:59 - 9:04
    avainmateriaalin. Ja nyt, vain yhden edes-
    takaisen matkan jälkeen, palvelimella on
  • 9:04 - 9:10
    yhteistä avainmateriaalia asiakkaan kanssa
    koska asiakas säilytti sen viime kerrasta
  • 9:10 - 9:15
    ja palvelin juuri purki sen
    salatusta istuntolipusta.
  • 9:15 - 9:21
    Ok? Eli nyt palvelimella on jo käytet-
    tävissä yhteisiä jaettuja avaimia ja se
  • 9:21 - 9:26
    lähettää "Finished" viestin ja asiakas
    vastaa "Finished" viestillä ja pyynnöllä.
  • 9:26 - 9:32
    Eli tämä on TLS 1.2. Tätä tapahtuu jo
    joka päivä useimpien
  • 9:32 - 9:37
    modernien TLS-yhteyksien kanssa.
  • 9:37 - 9:44
    TLS 1.3-istunnon jatkaminen ei ole kovin
    erilainen. Siinäkin on istuntolipun käsite
  • 9:44 - 9:48
    Istuntolipun sisällön nimi on muutettu
    "PSK":ksi, mutta se tulee vain sanoista
  • 9:48 - 9:53
    "Pre-shared Key", koska sitähän se on:
    pelkkää avainmateriaalia, josta
  • 9:53 - 9:58
    oli sovittu aiemmin.
    Ja se toimii samalla tavalla:
  • 9:58 - 10:03
    palvelin vastaanottaa istuntolipun,
    purkaa salauksen ja hyppää
  • 10:03 - 10:07
    "Finished" viestiin.
  • 10:07 - 10:13
    Ongelma istunnon jatkamisessa on se, että
    jos hyökkääjällä on hallussaan
  • 10:13 - 10:17
    istuntolippu - eli avain, jota palvelin
    käyttää salamaan istuntolipun,
  • 10:17 - 10:22
    jonka sisällä avainmateriaali on -
  • 10:22 - 10:27
    hyökkääjä voi passiivisesti, tai jopa
    tulevaisuudessa kaapatun yhteyden
  • 10:27 - 10:33
    tapauksessa, purkaa istuntolipun
    "Client Hello":sta, löytää sieltä PSK:n
  • 10:33 - 10:38
    ja käyttää sitä purkamaan koko yhteyden
    salauksen. Tämä ei ole hyvä.
  • 10:38 - 10:43
    Tämä tarkoittaa, että joku voi tehdä
    passiivisesti purkaa salausta
  • 10:43 - 10:48
    hallinnoimalla istuntolippua. Tähän
    vastataan yleensä sanomalla, että
  • 10:48 - 10:53
    istuntoliput vanhenevat nopeasti. Mutta
    eikö olisi mukavaa, jos meidän ei
  • 10:53 - 10:56
    tarvitsisi luottaa siihen. Ja on olemassa
    julkaisuja, jotka kertovat meille,
  • 10:56 - 11:01
    että toteutukset eivät aina tee tätä
    oikein. Siispä,
  • 11:01 - 11:07
    TLS 1.3 sen sijaan mahdollistaa
    Diffie-Hellmanin käytön
  • 11:07 - 11:12
    istunnon jatkamisessa. 1.2:ssa ei ollut
    keinoja suojautua
  • 11:12 - 11:17
    istuntolipun joutumiselta vääriin
    käsiin. 1.3:ssa voi sen sijaan
  • 11:17 - 11:21
    lähettää avainosuuden osana
    "Client Hello":ta
  • 11:21 - 11:25
    ja palvelin lähettää avainosuuden
    "Server Hello":n yhteydessä,
  • 11:25 - 11:32
    ja osapuolet suorittavat Diffie-Hellmanin.
    Diffie-Hellmania käytettiin
  • 11:32 - 11:36
    jatkosuojauksen toteuttamiseen esimerkiksi
    sen varalta, että sertifikaatin yksityinen
  • 11:36 - 11:41
    avain joutuisi vääriin käsiin 1.2:ssa, ja
    tässä sitä käytetään jatkosuojauksen
  • 11:41 - 11:46
    toteuttamiseen istunnon jatkamisessa.
    Nyt, saatatte miettiä:
  • 11:46 - 11:51
    "Tämä näyttää periaatteessa normaalilta
    1.3 kättelyltä,
  • 11:51 - 11:56
    mikä virka PSK:lla on ylipäätään?"
    Tästäpä puuttuukin jotakin,
  • 11:56 - 12:00
    sertifikaattia ei ole. Koska ei ole
    tarvetta uudelleen autentikoida
  • 12:00 - 12:05
    sertifikaatin avulla, koska asiakas ja
    palvelin juttelivat aiemmin, joten
  • 12:05 - 12:09
    palvelin tietää tarkistaneensa jo
    palvelimen sertifikaatin,
  • 12:09 - 12:13
    ja mikäli palvelin pystyy purkamaan
    istuntolipun salauksen, se tarkoittaa,
  • 12:13 - 12:18
    että palvelin on se joksi itseään väittää.
    Joten kaksi avainosuutta yhdistetään.
  • 12:18 - 12:23
    Sitten yhdistetään PSK:n kanssa, jotta
    saadaan avain, jolla salataan loput
  • 12:23 - 12:30
    yhteydestä. On olemassa vielä yksi
    uusi ominaisuus, jonka
  • 12:30 - 12:35
    TLS 1.3 istunnon jatkaminen tuo mukanaan.
    Se on se seikka, että se
  • 12:35 - 12:41
    mahdollistaa kättelyn ilman edestakaista
    matkaa (0-RTT). Muistutuksena,
  • 12:41 - 12:47
    kaikki kättelyt 1.3:ssa koostuvat enim-
    mäkseen yhdestä edestaikaisesta matkasta.
  • 12:47 - 12:52
    TSL 1.2 istunnon jatkamiset voivat olla
    minimissään yhden edestakaisen matkan.
  • 12:52 - 12:58
    TLS 1.3 istunnon jatkamiset voivat toimia
    ilman edestakaista matkaa. Kuinka se
  • 12:58 - 13:04
    toimii? Ajatellaanpa.
    Alkuun on PSK.
  • 13:04 - 13:10
    Pre-shared Key.
    Asiakas voi käyttää sitä salaamaan
  • 13:10 - 13:16
    tämän alkudatan, jonka haluaa lähettää
    palvelimelle. Joten asiakas avaa
  • 13:16 - 13:20
    yhteyden, palvelimeen johon on aiemmin
    jo ollut yhteydessä,
  • 13:20 - 13:25
    ja lähettää "Client Hello":n,
    istuntolipun,
  • 13:25 - 13:30
    avainosuuden Diffie-Hellmaniin ja
    alkudatan. Alkudata on
  • 13:30 - 13:34
    blob sovellusdataa - se voi olla
    esimerkiksi HTTP-pyyntö -
  • 13:34 - 13:39
    salattuna PSK:lla.
    Palvelin vastaanottaa tämän,
  • 13:39 - 13:45
    purkaa istuntolipun, löytää PSK:n,
    käyttää PSK:ta purkamaan
  • 13:45 - 13:51
    alkudatan ja jatkaa sitten normaalisti:
    yhdistää avainosuudet, lisää PSK:N,
  • 13:51 - 13:55
    luo uuden avaimen lopulle yhteydelle
    ja jatkaa yhteyttä.
  • 13:55 - 14:00
    Eli mitä tässä tapahtui? Voimme lähettää
    sovellusdataa välittömästi yhteyden
  • 14:00 - 14:05
    avaamisen yhteydessä. Tämä tarkoittaa,
    että poistimme suorituskyvyn
  • 14:05 - 14:11
    yleiskustannukset TLS:ssä.
  • 14:11 - 14:16
    0-RTT kättelyissä on kuitenkin kaksi
    vaaran paikkaa, jotka ovat teoriassa
  • 14:16 - 14:23
    mahdoton poistaa. Yksi on se, että
    se kiva asia joka tuli PSK ECDHE moodin
  • 14:23 - 14:28
    mukana, se jossa käytetään Diffie-
    Hellmania istunnon jatkamiseen
  • 14:28 - 14:33
    1.3:ssa ei auta 0-RTT datan kanssa.
  • 14:33 - 14:39
    Käytämme Diffie-Hellmania kun saavumme
    dian vihreään laatikkoon.
  • 14:39 - 14:44
    Tietysti alkudata on salattu vain
    PSK:lla. Mietitäänpä taas
  • 14:44 - 14:49
    hyökkääjää. Hyökkääjä jollain keinolla
    varasti istuntolippumme salausavaimet.
  • 14:49 - 14:55
    Se voi katsoa "Client Hello":a, purkaa
    istuntolipun, saada PSK:n,
  • 14:55 - 15:00
    käyttää PSK:ta purkamaan alkudatan
    salauksen.
  • 15:00 - 15:05
    Se voi tehdä tämän kaapatustakin liiken-
    teestä, jos saa istuntolipun myöhemmin.
  • 15:05 - 15:12
    Siispä alkudata ei ole jatkosuojattu
    istuntolipun avainten suhteen.
  • 15:12 - 15:17
    Pelkkä PSK on kuitenkin hyödytön, jos
    käytämme Diffie-Hellmania palvelimen
  • 15:17 - 15:23
    vastauksessa. Se on hyödyllinen ainoastaan
    asiakkaan ensimmäisen viestin kohdalla.
  • 15:23 - 15:28
    Kerrataanpa. Tässä on paljon
    asiaa. TLS 1.2 toi
  • 15:28 - 15:33
    jatkosuojauksen sen varalle, että
    sertifikaatin yksityinen avain
  • 15:33 - 15:39
    joutuisi vääriin käsiin jo kauan sitten
    käyttämällä ECDHE moodeja.
  • 15:39 - 15:45
    Siis 1.2 yhteydet voivat olla aina jatko-
    suojattuja sertifikaatin väärinkäyttöä
  • 15:45 - 15:50
    vastaan. TLS 1.3 toimii samoin.
  • 15:50 - 15:55
    Ei ole moodia joka olisi jatkosuojaamaton
    sertifikaatin väärinkäytön varalta.
  • 15:55 - 16:01
    Mutta jos ajatellaan mitä istuntolipun
    avaimelle voi käydä:
  • 16:01 - 16:06
    TLS 1.2 ei koskaan ole jatkosuojattu.
  • 16:06 - 16:11
    TLS 1.2:ssa istuntolipun murtaminen
    johtaa aina kykyyn passiivisesti
  • 16:11 - 16:16
    ja jatkossa murtaa jatkettujen istuntojen
    salaus.
  • 16:16 - 16:23
    1.3:ssa sen sijaan, jos käytämme PSK ECDHE:tä,
    ainoastaan alkudatan salaus
  • 16:23 - 16:28
    voidaan purkaa käyttämällä
    pelkästään istuntolippua.
  • 16:28 - 16:33
    Kuten sanoin, vaaran paikkoja on kaksi.
  • 16:33 - 16:39
    Toinen se, että 0-RTT dataa voidaan
    käyttää toistohyökkäyksessä.
  • 16:39 - 16:45
    Olkoon tilanne tämä: alkudata
    sisältää dataa, joka on jollain tapaa
  • 16:45 - 16:52
    autentikoitu. Se voi olla HTTP-pyyntö,
    joka sisältää evästeitä.
  • 16:52 - 16:58
    Tuo HTTP-pyyntö jollain tapaa
    suorittaa transaktion,
  • 16:58 - 17:03
    okei? Ehkä se on tilisiirto. Ohjeistaa
    palvelinta tekemään jotain. Hyökkääjä
  • 17:03 - 17:08
    haluaa toistaa tuota tapahtumaa. Se ei
    tietenkään voi purkaa sen salausta
  • 17:08 - 17:13
    - sehän on suojattu TLS:llä. Eli se ei voi
    nähdä evästeen sisältöä eikä se voi
  • 17:13 - 17:18
    muokata sitä, koska se on TLS-suojattu.
    Mutta se voi kaapata salatun
  • 17:18 - 17:23
    viestin ja lähettää sen uudelleen
  • 17:23 - 17:28
    palvelimelle. Jos palvelimia on yksi,
    tähän on helppo ratkaisu.
  • 17:28 - 17:33
    Pidä kirjaa nähdyistä viesteistä
    ja ajattele kutakuinkin näin:
  • 17:33 - 17:38
    "Ei. Tämä näyttää täsmälleen samalta kuin
    mitä sain aiemmin." Mutta jos esimerkiksi
  • 17:38 - 17:42
    kuten Cloudflare pyörität useita data-
    keskuksia ympäri maailmaa, et voi pitää
  • 17:42 - 17:48
    yhdenmukaisia tiloja jatkuvasti, reaali-
    ajassa, kaikkien koneiden välillä. Olisi
  • 17:48 - 17:52
    ei koneita, jotka tämän viestin saatuaan
    ajattelisivat näin:
  • 17:52 - 17:58
    "Toki, minulla on istuntolipun avain,
    dekryptaan PSK:n, käytän PSK:ta,
  • 17:58 - 18:02
    dekryptaan alkudatan, löydän sieltä jotain,
    ja suoritan sen, mitä se käskee minun
  • 18:02 - 18:08
    tehdä." Tämä ei tietenkään ole suotavaa.
  • 18:08 - 18:13
    Yksi TLS.n tarjoama vastatoimi on,
    että asiakas lähettää samassa
  • 18:13 - 18:19
    paketissa arvon, joka kertoo
    millisekunteina, kuinka kauan sitten sain
  • 18:19 - 18:24
    haltuuni istuntolipun. Palvelin katsoo
    sitä arvoa, ja jos se ei täsmää
  • 18:24 - 18:29
    sen omaan näkemykseen tästä
    tiedosta, se hylkää viestin.
  • 18:29 - 18:34
    Tämä tarkoittaa, että jos hyökkääjä
    kaappaa viestin ja 10s myöhemmin
  • 18:34 - 18:40
    yrittää toistohyökkäystä, ajat eivät
    täsmää ja palvelin hylkää viestin.
  • 18:40 - 18:45
    Tämä ei kuitenkaan ole täysi ratkaisu,
    sillä tarpeeksi nopea hyökkääjä voi
  • 18:45 - 18:50
    silti tehdä toistohyökkäyksiä.
    Eli, palvelin voi ainoastaan joko
  • 18:50 - 18:56
    hyväksyä 0-RTT datan tai
    hylätä sen.
  • 18:56 - 19:01
    Se ei voi vain ottaa jotain osaa siitä tai
    kurkistaa siihen ja päättää sitten, koska
  • 19:01 - 19:06
    "Server Hello" viesti kertoo
    hyväksyttiinkö vai hylättiinkö se.
  • 19:06 - 19:10
    Ja asiakas jatkaa alkudatan lähettämistä
    kunnes se saa "Server Hello" viestin.
  • 19:10 - 19:16
    Tässä on kilpailu. Joten palvelimen täytyy
    sokkona pättää "Otanko 0-RTT data vastaan
  • 19:16 - 19:21
    vai hylkäänkö sen kaiken?" Jos se hyväksyy
    sen, ja sitten huomaa sen olevan jotain
  • 19:21 - 19:27
    mitä se ei voi prosessoida koska "Herran-
    jestas, täällä on HTTP POST, joka käskee
  • 19:27 - 19:32
    siirtämään rahaa. En voi tehdä tätä, jos
    en tiedä ettei tämä ole toistohyökkäys."
  • 19:32 - 19:37
    Palvelimen täytyy saada jonkinlainen
    vahvistus. Hyvä uutinen on se, että jos
  • 19:37 - 19:41
    palvelin odottaa "Finished"
    viestiä... Palvelin lähettää
  • 19:41 - 19:45
    "Server Hello":n, "Finished":n ja
    odottaa asiakkaan vastaavaa.
  • 19:45 - 19:51
    Kun asiakkaan oma saapuu, se tarkoittaa,
    ettei kyseessä ollut toistohyökkäys,
  • 19:51 - 19:55
    sillä tuo "Finished" viesti
    viimeistelee koko kättelyn
  • 19:55 - 20:00
    yhdessä tietyn satunnaisarvon kanssa,
    jonka palvelin lähetti. Kyseessä ei siis
  • 20:00 - 20:04
    voi olla toistohyökkäys. Eli nämä ovat
    palvelimen vaihtoehdot: se voi hyväksyä
  • 20:04 - 20:09
    alkudatan ja jos se on jotain mikä
    ei ole idempotenttia, jotain mikä on
  • 20:09 - 20:15
    vaarallista, jos se toistetaan, se voi
    yksinkertaisesti odottaa vahvistusta.
  • 20:15 - 20:19
    Mutta se tarkoittaa, että se on laitettava
    välimuistiin, ja tässä on riski, mikäli
  • 20:19 - 20:26
    hyökkääjä lähettää HTTP POST:n valtavalla
    rungolla tarkoituksenaan täyttää muisti.
  • 20:26 - 20:32
    Tajusimme voivamme auttaa tässä, jos
    kirjoitamme istuntolippuihin,
  • 20:32 - 20:37
    mikä on maksimimäärä alkudataa,
    jonka asiakas voi lähettää.
  • 20:37 - 20:42
    Jos huomaamme jonkun lähettävän enemmän,
    kyseessä on hyökkääjä ja
  • 20:42 - 20:47
    katkaisemme yhteyden, tyhjennämme
    välimuistin vapauttaaksemme muistia.
  • 20:47 - 20:53
    Mutta. Jokatapauksessa. Vastatoimista
    huolimatta, ellemme pysty pitämään
  • 20:53 - 20:59
    yhtenäistä maailmanlaajuista tilaa
    palvelimien välillä, meidän täytyy kertoa
  • 20:59 - 21:03
    sovellukselle toistohyökkäyksen mahdol-
    lisuudesta. Spesifikaatio tietää tämän.
  • 21:03 - 21:08
    TLS 1.3 spesifikaatio YKSISELITTEISESTI toteaa
  • 21:08 - 21:14
    protokollien EI tule käyttää
    0-RTT:tä ilman profiilia, joka
  • 21:14 - 21:19
    määrittelee sen käytön. Eli tarkoittaa
    "tietämättä mitä ne ovat tekemässä".
  • 21:19 - 21:24
    Tämä tarkoittaa, että TLS-pinon APIen
    täytyy tehdä 1-RTT oletuksena,
  • 21:24 - 21:30
    joihin toistohyökkäykset eivät toimi,
    ja sitten antaa palvelimen
  • 21:30 - 21:36
    kutsua joitakin API:ja hylätäkseen
    tai odottaakseen vahvistusta,
  • 21:36 - 21:41
    ja antaa asiakkaan päättää, mitä tähän
    vaaralliseen toistohyökkäysalttiiseen
  • 21:41 - 21:46
    dataan tulee. Tämä riippuu
  • 21:46 - 21:50
    protokollasta, mutta entäpä
    lempiprotokollamme? Entäpä
  • 21:50 - 21:55
    HTTP? HTTP:n pitäisi olla
    helppo. HTTP-spesifikaatio,
  • 21:55 - 22:01
    käykää vaikka lukemassa, sanoo:
    "GET-pyynnöt ovat idempotentteja,
  • 22:01 - 22:06
    niiden ei tule muuttaa mitään palveli-
    mella". Selvä! Sallimme nyt ainoastaan
  • 22:06 - 22:11
    GET-pyynnöt alkudatassa, koska niitä ei
    voi hyödyntää toistohyökkäyksissä!
  • 22:11 - 22:17
    Jes! Ei. Internetissä on
    takuuvarmasti palvelin,
  • 22:17 - 22:23
    jossa on sen kaltaista kuin
    “send-money.php?to=filippo&amount=this”
  • 22:23 - 22:29
    ja se on GET-pyyntö. Ja jos hyökkääjä
    kaappaa tämän, mikä on alkudataa,
  • 22:29 - 22:34
    ja sitten käyttää tätä toistohyökkäykses-
    sä toista palvelinta vastaan, se
  • 22:34 - 22:39
    suoritetaan kahdesti.
    Ja se ei käy päinsä.
  • 22:39 - 22:43
    Mitä siis voidaan tehdä?
  • 22:43 - 22:47
    Teemme kompromisseja!
  • 22:47 - 22:52
    Jos tunntet sovelluksesi, voit tehdä hyvin
    spesifejä kompromisseja. Esimerkiksi
  • 22:52 - 22:57
    Google on ajanut QUIC:iä
    0-RTT:llä hyvinkin pitkään.
  • 22:57 - 23:02
    Uskoakseni 3 vuotta? Se tarkoittaa, että
    he tuntevat oman sovelluksena oiken hyvin.
  • 23:02 - 23:07
    Ja he tietävät ettei heillä ole
    "send-money.php" päätepisteitä.
  • 23:07 - 23:13
    Mutta jos olet kuin Cloudflare, joka
    hallinnnoi suurta määrää sovelluksia,
  • 23:13 - 23:18
    et voi tehdä noin laajoja olettamuksia,
    ja täytyy sen sijaan yrittää
  • 23:18 - 23:23
    löytää kultainen keskitie. Me
    saattaisimme esimerkiksi päättää
  • 23:23 - 23:29
    salli GET-pyynnöt juurihakemistoon.
    Eli "GET /",
  • 23:29 - 23:33
    mikä saattaisi tuoda eniten hyötyä, sillä
    ehkä suurin osa yhteyksistä alkaa noin,
  • 23:33 - 23:39
    ja se on vähiten todennäköinen
    aiheuttamaan hankaluuksia.
  • 23:39 - 23:43
    Mietimme edelleen kuinka sovellamme
    tätä sovelluksiin. Eli jos tiedossasi
  • 23:43 - 23:48
    on sovellus, joka tulisi kärsimään
    jostain noin yksinkertaisesta,
  • 23:48 - 23:54
    lähetä meille sähköpostia. Mutta
    itseasiassa, jos sinulla on noin
  • 23:54 - 23:59
    haavoittuvainen sovellus, minulla
    on huonoja uutisia. Thai Duong et. al.
  • 23:59 - 24:04
    osoittivat, että tämän päivän selaimet,
    ilman TLS 1.3:a tai muutakaan,
  • 24:04 - 24:10
    toistavat HTTP-pyyntöjä
    verkkovirheiden sattuessa.
  • 24:10 - 24:16
    Ja ne toistavat ne hiljaisesti.
    Eli lopputulema ei välttämättä ole
  • 24:16 - 24:22
    huonompi kuin nykytila. Selvä.
    Näen, että kaikki alkavat olla
  • 24:22 - 24:28
    levottomia ja ajattelevat
    "Kryptografit ovat taas asialla!
  • 24:28 - 24:33
    He tekevät tarvitsemastamme turvallisuus-
    protokollasta tarpeettoman monimutkaisen
  • 24:33 - 24:39
    turvatakseen työpaikkansa
    seuraavaksi 15 vuodeksi!" Eikö?
  • 24:39 - 24:44
    Ei. Ei. Voin itseasiassa taata, että
  • 24:44 - 24:50
    yksi suurista muutoksista, mielestäni
    suurempi kuin edestakaiset matkat 1.3:ssa,
  • 24:50 - 24:55
    on, että kaikkea punnitaan saadun hyödyn
    ja sen aiheuttaman monimutkaisuuden
  • 24:55 - 24:59
    kannalta. Ja vaikka 0-RTT pääsi jatkoon
  • 24:59 - 25:03
    valtaosa ei päässyt.
  • 25:03 - 25:08
    Nick: Selvä. Kiitos Filippo.
  • 25:08 - 25:14
    TLS 1.3 ollessa iteraatio TLS:stä
    mekin menimme taaksepäin, tai,
  • 25:14 - 25:18
    "me", jotka olemme ihmiset jotka tutkimme
    TLS:ää, katsoimme taaksepäin ja
  • 25:18 - 25:23
    kertasimme olemassaolevia TLS 1.2 ominai-
    suuksia, jotka vaikuttivat järkeviltä
  • 25:23 - 25:27
    aikanaan ja päätimme, oliko kompleksisuus
    tai vaara, jotka nämä TLS:n ominaisuudet, tai
  • 25:27 - 25:32
    protokollat, tai primitiivit toivat mukanaan
  • 25:32 - 25:38
    järkeviä säilyttää. Ja yksi iso, joka
    sattui prosessin alussa on
  • 25:38 - 25:44
    "staattinen RSA" moodi. Näin TLS on
    toiminut SSL:n ajoista lähtien.
  • 25:44 - 25:48
    Sen sijaan, että käytettäisiin Diffie-
    Hellmania yhteisen avaimen luontiin,
  • 25:48 - 25:52
    asiakas luo oman jaetun avaimensa, ja
    salaa sen palvelimen sertifikaatin
  • 25:52 - 25:57
    julkisella avaimella, joka on RSA-avain,
    ja lähettää sen sitten
  • 25:57 - 26:01
    sellaisenaan palvelimelle.
    Ja palvelin sitten käyttää omaa
  • 26:01 - 26:05
    yksityistä avaintaan purkamaan salauksen ja
    luomaan yhteisen avaimen. Eli asiakas
  • 26:05 - 26:10
    luo kaiken avainmateriaalin tässä
    tapauksessa. Yksi asia on melko selvä
  • 26:10 - 26:14
    tässä on, että jos sertifikaatin
    yksityinen avain murretaan,
  • 26:14 - 26:18
    vaikka vuosiakin myöhemmin, joku
    jolla on tallenteet tapahtumista voi
  • 26:18 - 26:23
    mennä taaksepäin ja purkaa tämän avain-
    materiaalin ja siten koko keskustelun.
  • 26:23 - 26:28
    Tämä poistettiin ihan TLS 1.3-prosessin
    alkuvaiheessa, noin kaksi vuotta sitten.
  • 26:28 - 26:34
    Joten suureksi yllätykseksemme,
    ja kaikkien, jotka kuuluvat
  • 26:34 - 26:40
    TLS:ää koskevaan sähköpostitus-
    listaa, ihan vasta äskettäin,
  • 26:40 - 26:45
    standardointiprosessin loppuvaiheessa,
    kun TLS 1.3 oli melkein valmis,
  • 26:45 - 26:51
    tämä sähköposti ilmestyi. Ja tämä on
    Andrew Kennedyltä, joka työskentelee
  • 26:51 - 26:57
    BITS:lle, mikä tarkoittaa pääpiirteittäin,
    että hän työskentelee pankeille. Hän sanoo
  • 26:57 - 27:02
    "RSA-avaintenvaihdon tuen lopettaminen
    TLS 1.3:ssa aiheuttaa suuria ongelmia
  • 27:02 - 27:07
    finanssilaitoksille, joista melkein kaikki
    käyttävät TLS:ää sisäisesti ja joilla on
  • 27:07 - 27:13
    suuria, turvallisuuskriittisiä investoin-
    teja ulkopuoliseen TLS-dekryptaamiseen.
  • 27:13 - 27:18
    "Ulkopuoliseen (3. osapuolen) TLS-dekryp-
    taamiseen" hmm.. (naurua - aplodeja)
  • 27:18 - 27:23
    Se todella kuulostaa kriittiseltä...
    kriittiseltä jollekin, eikö?
  • 27:23 - 27:26
    (naurua - aplodeja)
    Eli...
  • 27:26 - 27:32
    (naurua)
    (aplodeja)
  • 27:32 - 27:37
    Yksi valonpilkahduksista oli Kenny
    Patersonin vastaus tähän,
  • 27:37 - 27:42
    joka kuului näin: "Minun näkemykseni
    pyyntöäsi koskien: ei.
  • 27:42 - 27:45
    Perustelu: Yritämme rakentaa turvallisem-
    paa internettiä." Korostus
  • 27:45 - 27:47
    on oma lisäykseni, mutta hän varmasti
    tarkoitti sitä
  • 27:47 - 27:54
    (aplodeja)
  • 27:54 - 27:59
    Tämän jälkeen pankkiväki saapui IETF:ään
    ja näytti tämän dian kuvaillakseen, kuinka
  • 27:59 - 28:04
    vaikeaa heidän järjestelmänsä
    debuggaaminen on. Tämä on yksinkertaista..
  • 28:04 - 28:09
    Ilmeisesti pankkiympäristössä. Nuo ovat
    eri kytkimiä, reitittimiä,
  • 28:09 - 28:14
    väliohjelmistoja, web-sovelluksia, ja
    kaikki keskustelevat TLS:llä.
  • 28:14 - 28:20
    Tämän keskustelun jälkeen
    päädyimme kompromissiin.
  • 28:20 - 28:24
    Protokollan vaarantamisen sijaan
    Matthew Green
  • 28:24 - 28:29
    opetti heille, kuinka käyttää Diffie-
    Hellmania väärin. Lopulta he kykenivät
  • 28:29 - 28:33
    siihen, mitä halusivat ilman,
    että me - tai kukaan muu
  • 28:33 - 28:37
    akateemisessa yhteisössä, tai
    TLS yhteisössä - palautti
  • 28:37 - 28:42
    TLS:ään tämän turvattoman osan.
  • 28:42 - 28:46
    Jos haluat lukea tämän, se kertoo
    kuinka tähän pystytään. Joka tapauksessa
  • 28:46 - 28:50
    - emme laittaneet sitä takaisin.
    Kiteytettynä, älkää tehkö näin!
  • 28:50 - 28:54
    (aplodeja)
  • 28:54 - 29:00
    Eli tapoimme staattisen RSA:n, ja mitä
    muuta tapoimme? No, kun katsotaan
  • 29:00 - 29:04
    taaksepäin hyötyihin ja haittoihin,
    TLS 1.2 käyttää tiettyjä primitiivejä,
  • 29:04 - 29:09
    jotka vain eivät ole kestäneet
    ajan hammasta.
  • 29:09 - 29:12
    RC4 jonosalain. Poissa!
    (aplodeja)
  • 29:12 - 29:15
    3DES (Triple DES) lohkosalain. Poissa!
    (aplodeja)
  • 29:15 - 29:22
    MD5, SHA1... molemmat poissa. Yo!
    (jatkuvia aplodeja)
  • 29:22 - 29:26
    On vielä rakennelmia, jotka...
    perus lohkosalain rakennelmia,
  • 29:26 - 29:32
    jotka ovat poissa: AES-CBC.
    Poissa. RSA-PKCS1-1.5,
  • 29:32 - 29:37
    tämä on tiedetty ongelmalliseksi
    jo vuodesta 1998, myöskin poissa!
  • 29:37 - 29:42
    Myös useita ominaisuuksia kuten kompressio
    ja uudellenneuvottelu on poistettu, jonka
  • 29:42 - 29:47
    korvasi hyvin kevyt "avaimen päivitys"
    mekanismi. Siis TLS 1.3:ssa
  • 29:47 - 29:52
    mikään näistä ei läpäissyt hyöty vs.
    kompleksisuus -testiä. Ja monet näistä
  • 29:52 - 29:58
    haavoittuvuksista, joita saatatte
    tunnistaa, on mahdottomia TLS 1.3:ssa.
  • 29:58 - 30:04
    (aplodeja)
  • 30:04 - 30:09
  • 30:09 - 30:15
  • 30:15 - 30:19
  • 30:19 - 30:24
  • 30:24 - 30:28
  • 30:28 - 30:32
  • 30:32 - 30:38
  • 30:38 - 30:42
  • 30:42 - 30:47
  • 30:47 - 30:53
  • 30:53 - 30:59
  • 30:59 - 31:03
  • 31:03 - 31:07
  • 31:07 - 31:12
  • 31:12 - 31:16
  • 31:16 - 31:21
  • 31:21 - 31:28
  • 31:28 - 31:33
  • 31:33 - 31:37
  • 31:37 - 31:42
  • 31:42 - 31:48
  • 31:48 - 31:52
  • 31:52 - 31:57
  • 31:57 - 32:01
  • 32:01 - 32:06
  • 32:06 - 32:11
  • 32:11 - 32:16
  • 32:16 - 32:22
  • 32:22 - 32:28
  • 32:28 - 32:33
  • 32:33 - 32:37
  • 32:37 - 32:43
  • 32:43 - 32:49
  • 32:49 - 32:56
  • 32:56 - 33:03
  • 33:03 - 33:08
  • 33:08 - 33:14
  • 33:14 - 33:18
  • 33:18 - 33:24
  • 33:24 - 33:30
  • 33:30 - 33:36
  • 33:36 - 33:42
  • 33:42 - 33:47
  • 33:47 - 33:53
  • 33:53 - 33:59
  • 33:59 - 34:04
  • 34:04 - 34:09
  • 34:09 - 34:14
  • 34:14 - 34:19
  • 34:19 - 34:26
  • 34:26 - 34:32
  • 34:32 - 34:37
  • 34:37 - 34:42
  • 34:42 - 34:48
  • 34:48 - 34:53
  • 34:53 - 34:59
  • 34:59 - 35:04
  • 35:04 - 35:10
  • 35:10 - 35:15
  • 35:15 - 35:19
  • 35:19 - 35:23
  • 35:23 - 35:29
  • 35:29 - 35:33
  • 35:33 - 35:39
  • 35:39 - 35:44
  • 35:44 - 35:50
  • 35:50 - 35:56
  • 35:56 - 35:59
  • 35:59 - 36:04
  • 36:04 - 36:11
  • 36:11 - 36:13
  • 36:13 - 36:16
  • 36:16 - 36:21
  • 36:21 - 36:26
  • 36:26 - 36:30
  • 36:30 - 36:34
  • 36:34 - 36:40
  • 36:40 - 36:45
  • 36:45 - 36:51
  • 36:51 - 36:55
  • 36:55 - 37:00
  • 37:00 - 37:03
  • 37:03 - 37:08
  • 37:08 - 37:13
  • 37:13 - 37:20
  • 37:20 - 37:25
  • 37:25 - 37:29
  • 37:29 - 37:34
  • 37:34 - 37:40
  • 37:40 - 37:46
  • 37:46 - 37:52
  • 37:52 - 37:57
  • 37:57 - 38:02
  • 38:02 - 38:08
  • 38:08 - 38:12
  • 38:12 - 38:16
  • 38:16 - 38:21
  • 38:21 - 38:28
  • 38:28 - 38:33
  • 38:33 - 38:36
  • 38:36 - 38:41
  • 38:41 - 38:47
  • 38:47 - 38:53
  • 38:53 - 38:59
  • 38:59 - 39:04
  • 39:04 - 39:09
  • 39:09 - 39:14
  • 39:14 - 39:18
  • 39:18 - 39:23
  • 39:23 - 39:29
  • 39:29 - 39:34
  • 39:34 - 39:39
  • 39:39 - 39:44
  • 39:44 - 39:50
  • 39:50 - 39:56
  • 39:56 - 40:01
  • 40:01 - 40:05
  • 40:05 - 40:11
  • 40:11 - 40:16
  • 40:16 - 40:22
  • 40:22 - 40:27
  • 40:27 - 40:33
  • 40:33 - 40:38
  • 40:38 - 40:44
  • 40:44 - 40:49
  • 40:49 - 40:55
  • 40:55 - 41:00
  • 41:00 - 41:02
  • 41:02 - 41:08
  • 41:08 - 41:13
  • 41:13 - 41:18
  • 41:18 - 41:23
  • 41:23 - 41:26
  • 41:26 - 41:30
  • 41:30 - 41:35
  • 41:35 - 41:39
  • 41:39 - 41:45
  • 41:45 - 41:50
  • 41:50 - 41:55
  • 41:55 - 42:00
  • 42:00 - 42:05
  • 42:05 - 42:11
  • 42:11 - 42:15
  • 42:15 - 42:20
  • 42:20 - 42:24
  • 42:24 - 42:28
  • 42:28 - 42:33
  • 42:33 - 42:38
  • 42:38 - 42:44
  • 42:44 - 42:49
  • 42:49 - 42:54
  • 42:54 - 42:59
  • 42:59 - 43:03
  • 43:03 - 43:08
  • 43:08 - 43:13
  • 43:13 - 43:19
  • 43:19 - 43:25
  • 43:25 - 43:31
  • 43:31 - 43:36
  • 43:36 - 43:40
  • 43:40 - 43:44
  • 43:44 - 43:49
  • 43:49 - 43:54
  • 43:54 - 43:57
  • 43:57 - 44:01
  • 44:01 - 44:06
  • 44:06 - 44:09
  • 44:09 - 44:14
  • 44:14 - 44:19
  • 44:19 - 44:23
  • 44:23 - 44:29
  • 44:29 - 44:33
  • 44:33 - 44:38
  • 44:38 - 44:43
  • 44:43 - 44:49
  • 44:49 - 44:53
  • 44:53 - 44:58
  • 44:58 - 45:03
  • 45:03 - 45:08
  • 45:08 - 45:13
  • 45:13 - 45:18
  • 45:18 - 45:24
  • 45:24 - 45:28
  • 45:28 - 45:34
  • 45:34 - 45:39
  • 45:39 - 45:45
  • 45:45 - 45:51
  • 45:51 - 45:56
  • 45:56 - 46:01
  • 46:01 - 46:07
  • 46:07 - 46:12
  • 46:12 - 46:18
  • 46:18 - 46:24
  • 46:24 - 46:29
  • 46:29 - 46:35
  • 46:35 - 46:40
  • 46:40 - 46:45
  • 46:45 - 46:51
  • 46:51 - 46:55
  • 46:55 - 47:00
  • 47:00 - 47:05
  • 47:05 - 47:11
  • 47:11 - 47:16
  • 47:16 - 47:22
  • 47:22 - 47:27
  • 47:27 - 47:31
  • 47:31 - 47:36
  • 47:36 - 47:41
  • 47:41 - 47:46
  • 47:46 - 47:51
  • 47:51 - 47:56
  • 47:56 - 48:00
  • 48:00 - 48:12
  • 48:12 - 48:16
  • 48:16 - 48:20
  • 48:20 - 48:24
  • 48:24 - 48:28
  • 48:28 - 48:32
  • 48:32 - 48:34
  • 48:34 - 48:40
  • 48:40 - 48:46
  • 48:46 - 48:51
  • 48:51 - 48:55
  • 48:55 - 49:00
  • 49:00 - 49:07
  • 49:07 - 49:10
  • 49:10 - 49:13
  • 49:13 - 49:18
  • 49:18 - 49:21
  • 49:21 - 49:25
  • 49:25 - 49:28
  • 49:28 - 49:33
  • 49:33 - 49:39
  • 49:39 - 49:43
  • 49:43 - 49:48
  • 49:48 - 49:55
  • 49:55 - 49:58
  • 49:58 - 50:02
  • 50:02 - 50:07
  • 50:07 - 50:11
  • 50:11 - 50:18
  • 50:18 - 50:23
  • 50:23 - 50:27
  • 50:27 - 50:32
  • 50:32 - 50:36
  • 50:36 - 50:43
  • 50:43 - 50:47
  • 50:47 - 50:50
  • 50:50 - 50:54
  • 50:54 - 50:58
  • 50:58 - 51:04
  • 51:04 - 51:09
  • 51:09 - 51:15
  • 51:15 - 51:20
  • 51:20 - 51:22
  • 51:22 - 51:25
  • 51:25 - 51:29
  • 51:29 - 51:33
  • 51:33 - 51:37
  • 51:37 - 51:42
  • 51:42 - 51:46
  • 51:46 - 51:50
  • 51:50 - 51:56
  • 51:56 - 52:02
  • 52:02 - 52:06
  • 52:06 - 52:11
  • 52:11 - 52:17
  • 52:17 - 52:23
  • 52:23 - 52:29
  • 52:29 - 52:35
  • 52:35 - 52:40
  • 52:40 - 52:45
  • 52:45 - 52:49
  • 52:49 - 52:53
  • 52:53 - 52:59
  • 52:59 - 53:03
  • 53:03 - 53:09
  • 53:09 - 53:14
  • 53:14 - 53:20
  • 53:20 - 53:22
  • 53:22 - 53:26
  • 53:26 - 53:29
  • 53:29 - 53:33
  • 53:33 - 53:38
  • 53:38 - 53:41
  • 53:41 - 53:47
  • 53:47 - 53:54
  • 53:54 - 53:59
  • 53:59 - 54:03
  • 54:03 - 54:07
  • 54:07 - 54:12
  • 54:12 - 54:18
  • 54:18 - 54:23
  • 54:23 - 54:27
  • 54:27 - 54:31
  • 54:31 - 54:36
  • 54:36 - 54:43
  • 54:43 - 54:49
  • 54:49 - 54:53
  • 54:53 - 55:00
  • 55:00 - 55:04
  • 55:04 - 55:10
  • 55:10 - 55:16
  • 55:16 - 55:22
  • 55:22 - 55:26
  • 55:26 - 55:31
  • 55:31 - 55:36
  • 55:36 - 55:42
  • 55:42 - 55:46
  • 55:46 - 55:52
  • 55:52 - 55:58
  • 55:58 - 56:02
  • 56:02 - 56:07
  • 56:07 - 56:13
  • 56:13 - 56:19
  • 56:19 - 56:24
  • 56:24 - 56:29
  • 56:29 - 56:32
  • 56:32 - 56:35
  • 56:35 - 56:38
  • 56:38 - 56:43
  • 56:43 - 56:46
  • 56:46 - 56:48
  • 56:48 - 56:53
  • 56:53 - 56:59
  • 56:59 - 57:03
  • 57:03 - 57:07
  • 57:07 - 57:13
  • 57:13 - 57:18
  • 57:18 - 57:24
  • 57:24 - 57:28
  • 57:28 - 57:32
  • 57:32 - 57:38
  • 57:38 - 57:44
  • 57:44 - 57:51
  • 57:51 - 57:54
  • 57:54 - 57:59
  • 57:59 - 58:03
  • 58:03 - 58:08
  • 58:08 - 58:14
  • 58:14 - 58:21
  • 58:21 - 58:28
  • 58:28 - 58:33
  • 58:33 - 58:38
  • 58:38 - 58:42
  • 58:42 - 58:47
  • 58:47 - 58:53
  • 58:53 - 58:58
  • 58:58 - 59:03
  • 59:03 - 59:08
  • 59:08 - 59:13
  • 59:13 - 59:19
  • 59:19 - 59:25
  • 59:25 - 59:30
  • 59:30 - 59:36
  • 59:36 - 59:42
  • 59:42 - 59:45
  • 59:45 - 59:47
  • 59:47 - 59:52
  • 59:52 - 59:57
  • 59:57 - 60:02
  • 60:02 - 60:09
  • 60:09 - 60:14
  • 60:14 - 60:18
  • 60:18 - 60:23
  • 60:23 - 60:28
  • 60:28 - 60:33
  • 60:33 - 60:38
  • 60:38 - 60:42
  • 60:42 - 60:44
  • 60:44 - 60:47
  • 60:47 - 60:50
  • 60:50 - 60:53
  • 60:53 - 60:59
  • 60:59 - 61:03
  • 61:03 - 61:07
  • 61:07 - 61:09
  • 61:09 - 61:11
  • 61:11 - 61:20
  • 61:20 - 61:39
  • 61:39 - 61:44
Title:
Deploying TLS 1.3: the great, the good and the bad (33c3)
Description:

more » « less
Video Language:
English
Duration:
01:01:44

Finnish subtitles

Revisions Compare revisions