:: ::

W drugim odcinku przybliżamy wam techniczne aspekty ataków side-channel na procesory superskalarne, ujawnione w ostatnich miesiącach. Jest to niejako kontynuacja naszego wykładu ze stycznia w cyklu Barcampów gdzie omawialiśmy ataki Spectre i Meltdown.

W naszej pracy często optymalizujemy kod różnych krytycznych części systemu, począwszy od procedur kryptograficznych po wysokowydajny kod sieciowy. Takie zadania poza oczywistym aspektem dostarczania całej masy satysfakcji, pozostawiają również cenną wiedzę o tym jak działają nowoczesne procesory. A my lubimy dzielić się wiedzą ;)

Dlatego też odcinek rozpoczynamy od szybkiego przeglądu podstawowych bloków funkcjonalnych występujących we wszystkich rodzinach procesorów znajdujących się obecnie na rynku. Następnie od ok. 19 minuty przechodzimy do omówienia genezy ataków "side channel". Od ok. 36 minuty omawiamy atak Foreshadow który w naszej ocenie jest przykładem całkowitego braku zabezpieczeń przed tą nową klasą ataków, w tym na rozwiązania celowo stworzone z myślą o zwiększonym bezpieczeństwie czyli enklawach (Intel SGX). W dalszej części podcastu omawiamy również ataki TLBleed oraz PortSmash w kontekście kryptografii z użyciem krzywych eliptycznych.

Prowadzący: Radosław Biernacki, Michał Stanek, Łukasz Bartosik, Wojciech Macek, Maciej Czekaj

### Linki (chcesz wiedzieć więcej?):

### Linki chronologicznie:

#0:30 - Barcamp “Ghostbusting Meltdown Spectre” - https://youtu.be/FBy2gZD3OUw

#10:30 - Tomasulo algorithm -
https://www.youtube.com/watch?v=PZZvhqnch5o
https://www.youtube.com/watch?v=D29BgTLHYbk
https://www.youtube.com/watch?v=I2qMY0XvYHA
cały kurs na Udacity - https://classroom.udacity.com/courses/ud007/lessons/3643658790/concepts/8736801430923

#25:26 - audio side channel na RSA - https://www.cs.tau.ac.il/~tromer/acoustic/

#27:45 - Mnożenie zabiera różną ilość cykli w zależności od ilości 1ek lub wielkości liczby tzw Early Termination -
https://eprint.iacr.org/2009/538.pdf
http://infocenter.arm.com/help/index.jsp?topic= /com.arm.doc.100165_0201_00_en/ric1414056333562.html
http://oldwww.nvg.ntnu.no/amiga/MC680x0_Sections/timstandard.HTML
http://infocenter.arm.com/help/index.jsp?topic= /com.arm.doc.ddi0337e/BABBCJII.html
http://infocenter.arm.com/help/index.jsp?topic= /com.arm.doc.ddi0210c/Chddggdf.html

#1:01:50 - PortSmash https://eprint.iacr.org/2018/1060.pdf
Krzywe eliptyczne - https://youtu.be/4M8_Oo7lpiA?t=742

#1:37:15 - Nowe instrukcje jako pseudo rozwiązanie Intel - https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf
Reakcja dev Linuxa - https://lwn.net/Articles/773118/

### Linki tematycznie:

#Side channel attacks on algorithms:
https://en.wikipedia.org/wiki/Exponentiation_by_squaring#Montgomery 's_ladder_technique
http://cat.eyalro.net/
https://youtu.be/uQG_8TGcY84?list=PLbRoZ5Rrl5lew16BZO_C6wihpBkAYYaxi&t=190
http://www.cs.columbia.edu/~simha/spyjs.ccs15.pdf (javascript)
https://www.usenix.org/node/184416 and https://eprint.iacr.org/2013/448.pdf

#(FLUSH+RELOAD):
https://signal.org/blog/contact-discovery/ (SGX, side-channel proof hash table lookup)
https://signal.org/blog/private-contact-discovery/ (more detailed info)
https://www.bearssl.org/constanttime.html

#Timing atack:
https://en.wikipedia.org/wiki/Timing_attack

#Blinding - biekcja stosowana na klucz aby przeciwdziałać side channel:
https://en.wikipedia.org/wiki/Blinding_(cryptography)
Side-Channel Analysis of Cryptographic Software via Early-Terminating Multiplications - https://eprint.iacr.org/2009/538.pdf

#TLBleed:
TLBleed - https://www.vusec.net/wp-content/uploads/2018/07/tlbleed-author-preprint.pdf
https://youtu.be/LFvd0UaxL-0

#Notka od Redhata na temat TLBleed (również dobre wprowadzenie do side channel) https://www.redhat.com/en/blog/temporal-side-channels-and-you-understanding-tlbleed

#PortSmash:
https://eprint.iacr.org/2018/1060.pdf

#L1TF/Foreshadow:
https://foreshadowattack.eu/foreshadow.pdf
https://youtu.be/fEV6eA9o21o
https://www.youtube.com/watch?v=kqg8_KH2OIQ


#Elliptic curves for dummies:
https://youtu.be/4M8_Oo7lpiA?t=742

#SGX enclaves:
https://www.blackhat.com/docs/us-16/materials/us-16-Aumasson-SGX-Secure-Enclaves-In-Practice-Security-And-Crypto-Review.pdf
https://youtu.be/NP7f3M_saUs (pierwsze kilka min)

#Intel CAT:
https://software.intel.com/en-us/articles/introduction-to-cache-allocation-technology
https://lwn.net/Articles/694800/

#Historia side channel:
https://www.daemonology.net/papers/htt.pdf (2005, CACHE MISSING FOR FUN AND PROFIT)
https://cr.yp.to/antiforgery/cachetiming-20050414.pdf (2005, Cache-timing attacks on AES)
https://eprint.iacr.org/2007/336.pdf (2007, I-Cache RSA)
http://cryptome.org/sbpa.pdf (2007, Branch Prediction RSA)
https://pdfs.semanticscholar.org/b028/22567d583b89acc0b2bd5afa417ffa835d0a.pdf (2010, I-Cache, SMT, RSA, DSA)
https://2459d6dc103cb5933875-c0245c5c937c5dedcca3f1764ecc9b2f.ssl.cf2.rackcdn.com/sec14/yarom.mp4 (2013, FLUSH+RELOAD L3)
https://cyber.wtf/2017/07/28/negative-result-reading-kernel-memory-from-user-mode/ (2017)

Jest to odcinek podkastu:
Poziom niżej

Unikalny w skali polskiego internetu podcast o budowie i zasadzie działania systemów wbudowanych oraz związkach krzemu wszelkiej postaci. Prowadzący są programistami firmy Semihalf i na co dzień tworzą m.in system Linux i FreeBSD. Dzielą się swoimi wieloletnimi doświadczeniami i w sposób przystępny opisują świat na styku programowania i sprzętu.

Kategorie:
Technologia

Informacja dotycząca prawa autorskich: Wszelka prezentowana tu zawartość podkastu jest własnością jego autora

Wyszukiwanie

Kategorie