Poziom niżej

Poziom niżej

By SemihalfTechnology
Download on the App Store

Poziom niżej episodes

  • #009 - Skazani na firmware
    Oprogramowania układowego na PC nie sposób się pozbyć. 40-letnia historia rozwoju rynku komputerów osobistych silnie związała użytkowników z Firmwarem (FW). Od BIOS po UEFI na binarnych fragmentach FW urządzeń peryferyjnych skończywszy, zawsze gdzieś w systemie czyha potencjalny cichy intruz.

    Nasuwają się więc pytania: Czy jesteśmy skazani na Firmware? Czy producenci sprzętu tworzą tajną lożę i chcą zawładnąć światem poprzez szpiegowanie nieświadomych użytkowników?
    W czyim interesie jest zaszywanie w krzemie instrukcji procesora weryfikujących podpis cyfrowy oprogramowania?

    Na te i podobne pytania staramy się odpowiedzieć w tym odcinku podcastu Poziom Niżej.

    Prowadzący: Radosław Biernacki, Marcin Wojtas, Jan Dąbroś

    Hashtag: acpi, bios, coreboot, firmware, secureboot, uefi

    ### Plan odcinka

    # 00:00 - Wprowadzenie
    # 04:56 - Czym jest firmware
    # 10:33 - Trochę historii - BIOS
    # 17:43 - Czas obecny - UEFI
    # 22:50 - EDK2
    # 28:30 - CSM - czyli UEFI potrafi w BIOS
    # 29:50 - Coreboot - KISS
    # 31:05 - Libreboot
    # 33:30 - Bootloader, czyli co następuje po…
    # 35:45 - RaspberryPi jako beneficjent otwartego firmware
    # 38:35 - Bootrom - czyli jak uruchamiają się nowoczesne procesory
    # 42:40 - Detale wczesnych etapów uruchomienia systemu
    # 45:40 - Microcode
    # 48:00 - Inicjalizacja (trening) RAM
    # 52:12 - Bootloader
    # 56:40 - Skąd firmware bierze sterowniki? (OptionROM)
    # 1:01:30 - Jak ładowany i uruchamiany jest kod kernela?
    # 1:03:18 - Dlaczego kelnerowi potrzebny jest opis sprzętu i środowiska?
    # 1:05:28 - Jak dokonywane są aktualizacje firmware?
    # 1:09:55 - ACPI
    # 1:17:25 - DeviceTree i “sprawa ARM”
    # 1:21:32 - System Management BIOS (SMBIOS)
    # 1:23:10 - Bezpieczeństwo, zaufanie i prywatność
    # 1:26:10 - SecureBoot i VerifiedBoot
    # 1:31:45 - TPM
    # 1:35:50 - Podsumowanie
    # 1:39:25 - Bonus

    ### Linki do materiałów dodatkowych:

    # 22:55 - Specyfikacja UEFI - https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf
    # 23:19 - Repozytorium EDK2 - https://github.com/tianocore/edk2
    # 27:07 - Implementacja "UEFI runtime services" w u-boot - https://source.denx.de/u-boot/u-boot/-/blob/master/lib/efi_loader/efi_runtime.c
    # 30:18 - Repozytorium i strona główna coreboot - https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master, https://www.coreboot.org/
    # 31:13 - Strona główna libreboot - https://libreboot.org/
    # 31:35 - Repozytorium FSP - https://github.com/intel/FSP
    # 33:14 - Repozytorium oreboot - https://github.com/oreboot/oreboot
    # 35:15 - Strona główna i repozytorium LinuxBoot - https://www.linuxboot.org/, https://github.com/linuxboot/linuxboot
    # 44:05 - IME - https://en.wikipedia.org/wiki/Intel_Management_Engine
    # 49:17 - Więcej o SPD(Serial Presence Detect) - https://en.wikipedia.org/wiki/Serial_presence_detect
    # 59:16 - 1:01:30 - Sterownik do uruchamiania instrukcji x86 na AArch64 https://github.com/ardbiesheuvel/X86EmulatorPkg
    # 1:04:23 - Opis "runtime services" w specyfikacji UEFI: https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#page=308
    # 1:05:06 - Opis "EFI system table": https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#page=168
    # 1:11:46 - link do kernel.org i arch/arm/mach*: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm?h=master
    # 1:14:30 - Specyfikacja ACPI i główne koncepty: https://uefi.org/specs/ACPI/6.4/index.html + https://uefi.org/specs/ACPI/6.4/03_ACPI_Concepts/ACPI_Concepts.html#acpi-concepts
    # 1:15:20 - Specyfikacja AML: https://uefi.org/specs/ACPI/6.4/20_AML_Specification/AML_Specification.html
    # 1:21:40 - Specyfikacja SMBIOS - https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf
    # 1:29:50 - Podcast Poziom Niżej #006 - "Bezpieczeństwo w krzemie zaklęte" - https://www.youtube.com/watch?v=kqaeyaH8jFs
    # 1:31:45 - Wpis dotyczący ataku na komunikacją SPI pomiędzy CPU a TPM - https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network
    1 hr 42 min
  • #008 - Zaczarowane Jabłko #2
    W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1.

    Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiązania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej.

    Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach

    Hashtag: Arm, Apple, M1

    ### Plan odcinka, część #2

    # 0:23 - Translacja kodu x86 -> ARM
    # 4:30 - Rozkazy x86 potrafią operować na pamięci (model pamięci)
    # 8:50 - Ograniczenia translacji
    # 10:00 - Translacja vs emulacja
    # 11:30 - Wydajność translacji na M1
    # 13:30 - WAŻNE: różnice modelu pamięci i wyzwania translacji!
    # 18:00 - M1 TSO (Total Store Ordering)
    # 23:26 - Wątek poboczny: Izolacja CPU
    # 28:13 - koniec wątku pobocznego
    # 28:50 - Roseta 1 i Roseta 2
    # 30:36 - TDP i testy porównawcze
    # 35:30 - Segmentacja rynku zastosowań procesora
    # 37:26 - Jądro OSX
    # 40:42 - Troche o ograniczeniach TDP
    # 44:12 - Wydajność podsystemu DRAM o SWAP
    # 45:22 - Podsumowanie #4 (ewolucja a nie rewolucja)
    # 46:40 - Polityka informacyjna Apple
    # 49:43 - wątek poboczny: Historia bywa przewrotna, Apple vs IBM, wertykalna struktura Apple
    # 51:47 - koniec wątku pobocznego
    # 52:55 - ARM otwiera ISA?!?
    # 56:30 - wątek poboczny: Linux i samo-modyfikujący się kod
    # 1:00:47 - koniec wątku pobocznego
    # 1:01:20 - Apple AMX
    # 1:06:30 - Czy ARM przejmie rynek PC?
    # 1:10:35 - Zakończenie

    ### Linki

    # 0:23 - Translacja X86 -> ARM:
    - Jak robi to Apple:
    - Jak Transitive umarł: https://www.itjungle.com/2011/09/26/tfh092611-story06/
    - Jak robi to Microsoft:
    - Niskopoziomowa analiza: https://blogs.blackberry.com/en/2019/09/teardown-windows-10-on-arm-x86-emulation
    - Kompleksowa analiza WOW64: https://wbenny.github.io/2018/11/04/wow64-internals.html
    - Qemu User Mode Emulation: https://qemu.readthedocs.io/en/latest/user/index.html
    - Narzędzia do skrośnego przygotowywania dystrybucji Debiana/Ubuntu: https://wiki.debian.org/EmDebian/CrossDebootstrap

    # 18:00 - TSO
    - Slajdy poglądowe o Total Store Ordering: https://www.cis.upenn.edu/~devietti/classes/cis601-spring2016/sc_tso.pdf
    - Hack do włączania dla każdego procesu w OSX na M1: https://github.com/saagarjha/TSOEnabler

    # 25:00 - Łatki kernela do "Total CPU Isolation"
    https://lwn.net/Articles/816298/

    # 28:50 - Roseta1 i Roseta 2
    - Rosetta 2: https://appleinsider.com/inside/rosetta-2
    - Rosetta 1 (w 2006 przy przejściu PowerPC -> Intel) będąca modyfikacją technologii QuickTransit:
    - https://en.wikipedia.org/wiki/QuickTransit
    - Prezentacja o QuickTransit na KVM Forum 2008: https://www.linux-kvm.org/images/9/98/KvmForum2008%24kdf2008_2.pdf

    # 1:01:20 - Apple AMX
    https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f
    https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/
    https://medium.com/swlh/apples-m1-secret-coprocessor-6599492fc1e1
    1 hr 13 min
  • #008 - Zaczarowane Jabłko #1
    W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1.

    Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiazania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej.

    Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach

    Hashtag: Arm, Apple, M1

    ### Plan odcinka, część #1

    # 0:23 - Wstęp
    # 4:44 - Na jakiej podstawie analizujemy procesor
    # 6:14 - Czy ISA ARM ma znaczenie?
    # 8:30 - Jak działa nowoczesny procesor
    # 11:20 - Dlaczego wszystkie procesory działają bardzo podobnie
    # 12:55 - Odstępstwa od procesorów superskalarnych
    # 14:34 - W czym faktycznie różnią się procesory
    # 18:20 - Na co procesor wydatkuje energię elektryczną
    # 20:50 - Dlaczego nie zawsze więcej znaczy lepiej
    # 24:30 - Coś za coś - czyli konsumpcja energii a wydajność
    # 30:00 - Gdzie jest magia w jabłku? - dlaczego M1 jest tak wydajny?
    # 32:40 - Jak działają mikro-benchmarki
    # 39:37 - Podsystem pamięci w M1
    # 50:30 - Interconnect jako sieć pakietowa
    # 51:47 - Nietypowy cache L3 w M1?
    # 57:29 - L2 jako punkt koherencji w M1? (słynny NSObjects i ref counting)
    # 1:04:32 - Podsumowanie #1
    # 1:07:43 - Opóźnienie L1 w M1
    # 1:08:55 - Podsumowanie #2 (nie magia)
    # 1:10:12 - Registry renaming
    # 1:12:30 - Dekoder rozkazów i SMT
    # 1:18:58 - M1 jako awangarda w mikro-architekturze?

    ### Linki

    # 4:44 - Testy od AnandTech
    https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested

    # 13:02 - VLIW
    https://en.wikipedia.org/wiki/Very_long_instruction_word

    # 13:25 - Alternatywne architektury procesorów
    Microsoft EDGE ISA - procesor grafowy
    https://www.theregister.com/2018/06/18/microsoft_e2_edge_windows_10/

    Ian Goddard o EDGE CPU i Mill CPU
    https://millcomputing.com/topic/microsoft-e2-edge-processor/

    Procesor RAW
    https://apps.dtic.mil/sti/pdfs/AD1007208.pdf

    Procesor Mill
    https://millcomputing.com/

    # 24:33 - Big-little
    https://www.usenix.org/system/files/conference/hotpower14/hotpower14_hahnel.pdf

    # 30:30 - Parametry mikroarchitektury procesora na bazie procesorów Intela i AMD
    https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake
    https://en.wikichip.org/wiki/amd/microarchitectures/zen_2

    # 31:59 - Andnatech, Apple M1
    https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested

    # 49:00 - Dougall Johnson
    https://dougallj.github.io/applecpu/firestorm.html
    https://twitter.com/dougallj

    # 50:50 - Interconnect IP od Arteris
    https://www.arteris.com/

    # 55:37 - Wykresu latencji L3 na Apple M1
    https://pasteboard.co/JUeihtx.png

    # 1:10:45 - Tomasulo Algorithm - Registry Renaming
    https://www.youtube.com/watch?v=PZZvhqnch5o
    https://www.youtube.com/watch?v=D29BgTLHYbk
    https://www.udacity.com/course/high-performance-computer-architecture--ud007

    # 1:12:50 Power 10
    https://www.hotchips.org/assets/program/conference/day1/HotChips2020_Server_Processors_IBM_Starke_POWER10_v33.pdf
    1 hr 22 min
  • Nowa seria podcastów "Poziom Niżej"
    Czy są tu słuchacze spragnieni naszych podcastów?
    Mamy dla Was dobrą wiadomość! :)
    Po dłuższej przerwie wracamy z nowym cyklem.
    Dziś przystawka, czyli nowa szata graficzna z zapowiedzią serii.
    Pozostańcie na łączach, już wkrótce usłyszymy się w nowych odcinkach!
    1 min
  • #007 - Gdy bug w krzemie drzemie...
    W siódmym odcinku rozmawiamy o ciekawym aspekcie naszej pracy tj o błędach w układach krzemowych.

    Praca z producentami układów krzemowych daje niecodzienną możliwość zajrzenia za kulisy rewolucji naszych czasów tj miniaturyzacji układów cyfrowych. Osławione prawo Moore'a niesie ze sobą wykładniczy wzrost gęstości tranzystorów. Co za tym idzie z biegiem czasu układy stają się coraz bardziej skomplikowane a tym samym pomyłki stają się nieuniknione.
    W trzech krótkich historiach opowiadanych przez członków załogi Semihalf, staramy się przybliżyć wam ciekawe strony pracy z najnowszą technologią, często niosącą bardzo intensywne tygodnie “walki” na styku oprogramowania i sprzętu. Jeśli zastanawialiście się dlaczego aktualizacje firmware (np BIOSU) są konieczne oraz dlaczego procesory zaraz po premierze rynkowej czasami po prostu nie działają jak reklamuje producent, to ten odcinek powinien odpowiedzieć na wasze pytania.

    Prowadzący: Radosław Biernacki, Jan Dąbroś, Marcin Wojtas, Stanisław Kardach

    Hashtag: FPGA, VHDL, Ryzen, ARM, hardware, symulator, emulator, bug

    ### Plan odcinka

    # 6:10 - Od czego zaczyna się projektowanie układów krzemowych
    # 7:30 - Testowanie i praca z SW - symulatory i emulatory
    # 9:20 - Dlaczego emulacja jest czasochłonna?
    # 11:50 - Narodziny krzemu - tapeout
    # 15:10 - Marcin - historia wdrożenia zarządzania energią w ARMv8
    # 23:30 - Janek - historia błędu przekierowania przerwań do Arm Trustzone
    # 30:40 - Staszek - historia błędu w procesorze sieciowym do zastosowań DataPlane
    # 34:10 - Staszek - historia błedu w ARMv8 w instrukcjach LDP/STP
    # 42:08 - Łatki w firmware
    # 48:47 - Quirki i upstream do kernela Linuxa
    # 1:01:00 - Podsumowanie, jak błędy w krzemie manifestują się u użytkowników

    ### Linki

    # 6:20 - Fabless chip manufacturing - https://en.wikipedia.org/wiki/Fabless_manufacturing
    # 8:50 - Cadance Palladium - https://www.cadence.com/en_US/home/tools/system-design-and-verification/acceleration-and-emulation/palladium-z1.html
    # 12:45 - Tape-out - https://en.wikipedia.org/wiki/Tape-out
    # 18:00 - Poziomy uprzywilejowania (Exception levels) na ARMv8
    Prezentacja ARM Trusted Firmware (ale z fajnym opowiadaniem jak Exception Levels działają) https://www.slideshare.net/linaroorg/arm-trusted-firmareforarmv8alcu13
    Artykuł w magazynie "Programista" numer #63, 08/2017r. "Na granicy światów – technologia bezpieczeństwa ARM TrustZone"
    Dość szczegółowy opis technologii ARM TrustZone http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf

    # 18:35 - Power Management na ARMv8
    Całość problemu opisana w magazynie “Programista” numer #56, 01/2017r. “Zarządzanie energią w ARMv8”
    Opis przebiegu usypiania systemu podczas Suspend-To-Ram https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/power/suspend-and-cpuhotplug.rst
    Opis funkcji zwrotnych zarządzania energią w ARM Trusted Firmware https://github.com/scorp2kk/atf/blob/master/docs/platform-migration-guide.md#22-composite-power-state-framework-platform-api-modifications

    # 35:10 - Problem atomowości instrukcji LDP/STP:
    https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile - Arm Architecture Reference Manual, rozdział B2.2.1 Requirements for single-copy atomicity
    https://www.element14.com/community/servlet/JiveServlet/previewBody/41836-102-1-229511/ARM.Reference_Manual.pdf - ARMv8 Instruction Set Overview, rozdział 5.2 Memory Access

    # 51:30 - Upstream quirka do ECAM w ARMv8
    Dyskusja na listach mailingowych odnośnie możliwości odstępstw od generycznego działania PCIE na ARMv8 opisanego tablicami ACPI https://lkml.org/lkml/2016/9/20/391
    Opis Extended Configuration Space (ECAM) dla standardu PCIE https://wiki.osdev.org/PCI_Express#Extended_Configuration_Space
    Obejście problemu niezgodności ze standardowym kontrolerem przy zastosowaniu sztuczki z tablicami ACPI https://github.com/tianocore/edk2-platforms/commit/a273cb49fe4f98f662bacb69cfd323722e0993a2#diff-e57f3ee89616dd138928c3655287b0d0
    Proste rozwiązanie problemu na poziomie sterownika w Linuksie - dozwolone tylko przy opisie poprzez Device Tree https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/pci-host-generic.c#n27
    1 hr 4 min
  • #006 - Bezpieczeństwo w krzemie zaklęte
    W szóstym odcinku przybliżamy wam tematykę zabezpieczeń nowoczesnych procesorów i SoC

    W odcinku poruszamy szereg zagadnień bezpieczeństwa których bazą są sprzętowe rozwiązania zaszyte w nowoczesnych układach scalonych znajdujących się np w każdym smartfonie. Ten z pozoru prosty przedmiot codziennego użytku posiada wbudowaną technologię której nie są w stanie złamać nawet wyspecjalizowane komórki rządowych agencji bezpieczeństwa. Staramy się pokazać, jak ogromną zasługą w zachowaniu bezpieczeństwa i poufności zarówno naszej korespondencji jak i komunikacji np z bankiem, mają te małe płatki krzemu które są cichymi towarzyszami naszych codziennych połączeń poprzez publiczną sieć Internet.

    Prowadzący: Radosław Biernacki, Michał Stanek, Jan Dąbroś, Konrad Dulęba

    Hashtag: ArmTrustZone, ATF, ArmTrustedFirmware, Android, Security, Trusty, TEE, OP-TEE, SecureBoot, VerifiedBoot, Firmware

    ### Plan odcinka

    # 0:08 - Wstęp
    # 1:25 - Kim jesteśmy
    # 5:40 - Dlaczego rozwiązania sprzętowe są podstawą modelu bezpieczeństwa
    # 9:17 - Czym są enklawy kryptograficzne
    # 10:48 - Reverse engineering krzemu
    # 14:45 - Arm Trust Zone
    # 22:22 - Trusted Platform Module
    # 24:47 - Jak i po co łączyć ATZ i TPM
    # 26:18 - Czy do budowy enklawy konieczny jest element zewnętrzny
    # 30:29 - Android jako modelowy przykład bezpiecznego systemu operacyjnego
    # 30:50 - UID jako podstawa dla sandbox
    # 32:09 - TEE (Trusty) jako podstawa enklawy kryptograficznej
    # 35:30 - Full Disk Encryption
    # 36:40 - File Based Encryption
    # 39:03 - API do kryptografii bazowane na enklawie
    # 41:00 - Luki bezpieczeństwa w TEE
    # 42:16 - Enklawy jako podstawa dla DRM ;(
    # 44:05 - SGX od Intela
    # 48:47 - Verified Boot i Secure Boot
    # 54:45 - Dlaczego nie powinno się “root’ować” smartfona
    # 58:48 - Trusted Platform Module - detale działania
    # 1:00:15 - TPM + Bitlocker
    # 1:02:00 - Atestacja serwerów przy pomocy TPM
    # 1:02:58 - Czy TPM chroni przed atakami fizycznymi? Czyli dlaczego nie szyfruj Bitlocker`em bez hasła ;)
    # 1:06:45 - Czym jest Yubikey i dlaczego jeszcze go nie używasz?
    # 1:09:10 - PSD2 vs Yubikey vs Smartfon
    # 1:10:11 - Protected Confirmation
    # 1:11:59 - Czy nadal używasz PC do przelewów?
    # 1:15:32 - Zakończenie

    ### Linki

    Trustzone TEE
    https://www.trustkernel.com/uploads/pubs/TZResearch_GetMobile2018.pdf
    https://www.arm.com/files/pdf/20160701_A04_ATF_Taiwan_I-Wei_Lin.pdf

    TEE, Secure & Measured Boot for Samsung Pay
    https://developer.samsung.com/tech-insights/pay/device-side-security

    Basics of TBSA
    https://www.arm.com/files/pdf/20160628_A01_ATF_Korea_Udi_Maor.pdf

    Apple TouchID
    https://hackernoon.com/demystifying-apples-touch-id-4883d5121b77

    (Programista 2017, numer 63, artykuł Jana Dąbrosia) - tzw. Biblia Arm TrustZone :P
    https://drive.google.com/drive/u/0/folders/0BwLtsK2HpuELallaSFcxb2RtR3c

    Extracting ECDSA
    Keys from Qualcomm’s TrustZone:
    https://www.nccgroup.trust/globalassets/our-research/us/whitepapers/2019/hardwarebackedhesit.pdf

    Google IO Android Security
    https://www.youtube.com/watch?v=0uG_RKiDmQY
    https://www.youtube.com/watch?v=r54roADX2MI

    Verified Boot
    https://www.chromium.org/chromium-os/chromiumos-design-docs/verified-boot (grep TPM)
    https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/42038.pdf
    https://source.android.com/security/verifiedboot/dm-verity
    https://www.youtube.com/watch?v=kdpZC9jFzZA

    Trusty (TEE)
    https://source.android.com/security/trusty

    TPM is SW
    https://pdfs.semanticscholar.org/42e5/216f57b17bb7dba13a2b73e36b4c057a6c96.pdf

    Google Titan
    https://android-developers.googleblog.com/2018/10/building-titan-better-security-through.html
    https://developer.android.com/training/articles/keystore#HardwareSecurityModule

    Applowy secure chip (jak Titan)
    https://www.apple.com/mac/docs/Apple_T2_Security_Chip_Overview.pdf

    Porównanie Titan’a i TPMa:
    https://harry.uno/post/google-titan.html

    Yubikey w srodku
    http://www.hexview.com/~scl/neo5/

    iOS Security
    https://inst.eecs.berkeley.edu/~cs261/fa18/scribe/11_14_revised.pdf
    https://www.apple.com/business/docs/site/iOS_Security_Guide.pdf (grep Secure Enclave)

    Blackhat Demystifying TPM
    https://www.blackhat.com/docs/us-16/materials/us-16-Mandt-Demystifying-The-Secure-Enclave-Processor.pdf
    https://www.bleepingcomputer.com/news/security/tpm-chipsets-generate-insecure-rsa-keys-multiple-vendors-affected/

    Blackhat 2010 Semiconductor Security Awareness Today and yesterday
    https://www.youtube.com/watch?v=WXX00tRKOlw

    SGX
    https://hackernoon.com/adventures-of-an-enclave-sgx-tees-9e7f8a975b0b
    https://news.ycombinator.com/item?id=17463687
    https://lwn.net/Articles/786487/
    https://software.intel.com/sites/default/files/managed/f1/b8/intel-sgx-support-for-third-party-attestation.pdf
    https://software.intel.com/en-us/blogs/2018/12/09/an-update-on-3rd-party-attestation
    https://medium.com/golem-project/graphene-v1-0-has-been-released-cca5443f0887

    Private contact discovery for Signal
    https://signal.org/blog/private-contact-discovery/

    Ataki na file based encryption w Android 7
    https://delaat.net/rp/2016-2017/p45/report.pdf

    Widevine DRM on OPTEE
    https://www.slideshare.net/linaroorg/las16406-android-widevine-on-optee
    1 hr 17 min
  • #005 - Quo Vadis ARM?
    W piątym odcinku zastanowimy się jaka przyszłość stoi przed architekturą ARM.

    Przedstawiamy wam historię powstania firmy ARM Holdings, tłumaczymy dlaczego energooszczędność nigdy nie idzie w parze z wydajnością oraz dlaczego procesory ARM są wewnątrz bardzo podobne do procesorów Intel x86. Przy okazji wyjaśniamy dlaczego wydajność nie zależy od listy rozkazowej oraz dlaczego prawo Moore'a przestało obowiązywać.
    Główną osią odcinka jest jednak odwiecznie nurtujące nas pytanie: “Dlaczego architektura ARM nie gości (mimo wielkich wysiłków) na PC oraz na serwerach?”. Starając się odpowiedzieć na to pytanie dryfujemy w różnych kierunkach, od standaryzacji po globalną politykę na styku USA i Chin. Odcinek kończymy nieco żartobliwą dyskusją na temat RISC-V oraz odnosimy się do komentarza Linusa Torvaldsa.

    Prowadzący: Radosław Biernacki, Rafał Jaworowski, Maciej Czekaj, Marcin Wojtas

    Hashtag: ARM, AArch64, ARMv8, ARm on ARM, RISC-V

    ### Plan odcinka

    # (0:50) Historia firmy ARM
    # (3:28) Czym wyróżnia się firma ARM
    # (7:42) Na czym zarabia ARM?
    # (8:17) Modele współpracy z firmą ARM (poziomy licencji)
    # (15:32) Wyzwania przy tworzeniu całkiem nowej architektury
    # (22:06) Mit energooszczędności ARM
    # (28:13) Co zużywa najwięcej energii w CPU?
    # (33:25) Dlaczego ARM nie istnieje w świecie PC?
    # (42:39) Próby stworzenia ARM PC
    # (44:27) Dlaczego firma ARM nie wspiera ARM PC
    # (46:40) Problem GPU na ARM (optional ROM)
    # (49:13) Problem kompatybilności SW na ARM
    # (53:14) Co jest potrzebne do adopcji ARM w serwerach
    # (54:46) Polityka globalna w HPC
    # (56:45) Wojna cenowa w HPC
    # (1:01:23) Problem standaryzacji w serwerach
    # (1:08:30) Dlaczego ARM nie wyprodukował CPU serwerowego?
    # (1:10:35) Poważne konsekwencje bierności ARM
    # (1:11:09) Czy w ogóle ARM chce wejść na rynek serwerowy?
    # (1:14:42) Procentowy udział ARM w rynkach procesorów
    # (1:16:54) Co przekonuje kupujących do zmiany?
    # (1:22:40) A może RISC V?
    # (1:30:12) A Linus powiedział że...

    Odnośniki

    (0:50) ARM Architecture history - https://en.wikipedia.org/wiki/ARM_architecture#History
    (1:14) ACorn - https://en.wikipedia.org/wiki/Acorn_Computers
    (1:30) BBC micro - https://en.wikipedia.org/wiki/BBC_Micro
    (1:59) VLSI - https://en.wikipedia.org/wiki/VLSI_Technology
    (2:35) 68000 - https://en.wikipedia.org/wiki/Motorola_68000
    (2:21) ARM 1 - https://en.wikichip.org/wiki/acorn/microarchitectures/arm1
    (4:24) Apple Newton - https://en.wikipedia.org/wiki/Apple_Newton
    (8:30) How ARM’s business model works - https://www.anandtech.com/show/7112/the-arm-diaries-part-1-how-arms-business-model-works/2
    (12:52) Atmel - Microchip - https://en.wikipedia.org/wiki/Atmel
    (13:47) Cortex - https://en.wikipedia.org/wiki/ARM_Cortex-A
    (14:35) Marvell - https://en.wikipedia.org/wiki/Marvell_Technology_Group
    (15:00) wersje ARM - https://www.cs.umd.edu/~meesh/cmsc411/website/proj01/arm/armchip.html
    (15:35) Polski Procesor D32PRO - https://pclab.pl/news65816.html
    (18:33) - przykład reverse engineer’ingu CPU do BLE - https://github.com/sylvek/itracing2/issues/5#issuecomment-226080683
    (19:39) Parallella - https://www.parallella.org/board/
    (21:38) Qualcomm Centriq - https://en.wikipedia.org/wiki/Qualcomm_Centriq
    (21:44) Cavium - Marvell Thunder - https://www.marvell.com/server-processors/thunderx-arm-processors/
    (21:46) APM X-Gene - https://www.apm.com/products/data-center/x-gene-family/x-gene/
    (21:49) Broadcomm Snapdragon - https://en.wikipedia.org/wiki/Qualcomm_Snapdragon
    (24:59) Arm Delivers on Cortex A76 Promises: What it Means for 2019 Devices -
    https://www.anandtech.com/show/13614/arm-delivers-on-cortex-a76-promises
    (28:25) Way-Predicting Set-Associative Cache for High Performance and Low Energy Consumption http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.5610&rep=rep1&type=pdf
    (29:12) Power Wall - 45-year CPU evolution: one law and two equations - https://arxiv.org/pdf/1803.00254.pdf
    (31:02) Static power loss - Leakage Current: Moore’s Law Meets Static Power - http://www.ruf.rice.edu/~mobile/elec518/readings/DevicesAndCircuits/kim03leakage.pdf
    (32:51) Cortex A73 overview - https://www.anandtech.com/show/10347/arm-cortex-a73-artemis-unveiled
    (35:30) Raspbian - https://www.raspberrypi.org/downloads/raspbian/
    (36:17) Cortex-A - https://developer.arm.com/ip-products/processors/cortex-a
    (36:20) ARM GIC - https://developer.arm.com/ip-products/system-ip/system-controllers/interrupt-controllers
    (37:05) SBSA - https://developer.arm.com/architectures/platform-design/server-systems
    (37:28) ACPI - http://uefi.org/sites/default/files/resources/ACPI_6_2.pdf
    (40:20) Macchiatobin - http://macchiatobin.net/
    (42:04) Arm on Arm - https://www.youtube.com/watch?v=rl0sls6vnmk
    (43:15) SocioNext SynQuacer - https://www.socionext.com/en/products/assp/SynQuacer/Edge/
    (45:30) ARM roadshow slides 2018 -
    https://www.arm.com/-/media/global/company/investors/PDFs/Arm_SBG_Q4_2018_Roadshow_Slides_FINAL.pdf?revision=ebab8585-b3df-4235-b515-c3ef20379baf&la=en
    (48:07) EDK2 - https://github.com/tianocore/edk2
    (48:12) x86 Option ROM for ARM - https://www.suse.com/c/revolutionizing-arm-technology-x86_64-option-rom-aarch64/
    (48:17) Commit do ARM GPU - https://github.com/tianocore/edk2-non-osi/commit/77b5eefd9
    (50:28) Open Compute Project - https://en.wikipedia.org/wiki/Open_Compute_Project
    (52:54) Stacja Robocza ThunderX - https://www.asacomputers.com/Cavium-ThunderX-ARM.html
    (55:00) Kumpeng 920 - https://www.servethehome.com/huawei-kunpeng-920-64-core-arm-server-cpu/
    (57:19) PowerPC - https://en.wikipedia.org/wiki/PowerPC
    (57:27) SPARC - https://en.wikipedia.org/wiki/SPARC
    (1:00:37) Linaro - https://en.wikipedia.org/wiki/Linaro
    (1:00:54) RAS - https://www.kernel.org/doc/html/v4.14/admin-guide/ras.html
    (1:04:37) Amazon Graviton - https://en.wikichip.org/wiki/annapurna_labs/alpine/al73400
    (1:05:00) Amazon EC2 - https://aws.amazon.com/ec2/instance-types/a1/
    (1:06:43) Jon Masters - https://www.linkedin.com/in/jonmasters/
    (1:07:48) Intel wpiera rozwój AI - https://software.intel.com/en-us/devcloud/datacenter
    (1:09:42) ARM roadshow slides 2018 -
    https://www.arm.com/-/media/global/company/investors/PDFs/Arm_SBG_Q4_2018_Roadshow_Slides_FINAL.pdf?revision=ebab8585-b3df-4235-b515-c3ef20379baf&la=en
    (1:10:47) Qualcomm zamyka dział serwerowy - https://www.tomshardware.com/news/qualcomm-server-chip-exit-china-centriq-2400,38223.html
    (1:13:22) Galileo, Edison, Julie, Curie - https://software.intel.com/en-us/iot/hardware/discontinued
    (1:15:02) ARM roadshow slides 2018 -
    https://www.arm.com/-/media/global/company/investors/PDFs/Arm_SBG_Q4_2018_Roadshow_Slides_FINAL.pdf?revision=ebab8585-b3df-4235-b515-c3ef20379baf&la=en
    (1:18:00) AARch64 virtualization - https://developer.arm.com/docs/100942/latest/aarch64-virtualization
    (1:18:31) Cavium ThunderX2 Review and Benchmarks a Real Arm Server Option
    https://www.servethehome.com/cavium-thunderx2-review-benchmarks-real-arm-server-option/
    (1:19:22) SRIOV - https://en.wikipedia.org/wiki/Single-root_input/output_virtualization
    (1:21:25) Octeon TX - https://www.marvell.com/embedded-processors/infrastructure-processors/octeon-tx-multi-core-armv8-processors/index.jsp
    (1:22:58) RISC V - https://en.wikipedia.org/wiki/RISC-V
    (1:26:50) WD i RISC V - https://blog.westerndigital.com/risc-v-swerv-core-open-source/
    (1:29:04) ARM RISC-V FUD -https://github.com/arm-facts/arm-basics.com/blob/master/assets/img/riscv-basics.com-screenshot.jpg
    (1:30:16) Linus o ARM na serwerach - https://www.extremetech.com/computing/286311-linus-torvalds-claims-arm-wont-win-in-the-server-space
    (1:30:41) Packet.net - https://www.packet.com/
    (1:31:04) Amper eMAG - https://amperecomputing.com/wp-content/uploads/2019/01/eMAG8180_PB_v0.5_20180914.pdf
    1 hr 37 min
  • #004 - Odczarować Komputery Kwantowe
    W czwartym odcinku podcastu Semihalf, rozprawiamy się mitami które narosły wokół komputerów kwantowych. Staramy się nieskomplikowanym językiem, przy zachowaniu ścisłej terminologii przybliżyć Wam temat komputerów kwantowych.

    Zdajemy sobie sprawę że temat nie jest prosty ale zależy nam na jego "odczarowaniu", ponieważ poziom publikacji popularno-naukowych często pozostawia wiele do życzenia. Wg nas po zapoznaniu z kilkoma podstawowymi zagadnieniami (do których linki znajdziesz poniżej), komputery kwantowe przestają być "magicznymi cudami techniki". Oczywiście nie sposób zostać fizykiem kwantowym w kilka wieczorów, dlatego zaprosiliśmy do naszego studia Wojtka Burkota z firmy Beit, który na codzienne zajmuje się tymi zagadnieniami i udziela odpowiedzi na nurtujące nas pytania. Okazuje się że komputery kwantowe mają więcej wspólnego z komputerami klasycznymi niż się powszechnie uważa. Z punktu widzenia pojedynczego bitu, podstawa ich działania, bardzo przypomina klasyczny układ tranzystora przełączający się pomiędzy stanem zatkania i nasycenia. Mogło by się wydawać że to tylko analogia, ale już obecnie wielkości tranzystorów w układach scalonych są na tyle małe że do ich prawidłowego (czyt. oczekiwanego) działania inżynierowie muszą walczyć z efektami kwantowymi!
    Analogi jest dużo więcej, niemniej jednak podstawową różnicą jest to iż ze względu na występowanie superpozycji (jedna z konsekwencji mechaniki kwantowej) oraz stanów splątanych, układy kwantowe są w stanie reprezentować matematyczny zapis całej dziedziny problemu przy użyciu jednego tylko "rejestru kwantowego". To pozwala tworzyć algorytmy które dają złożoność wielomianową dla problemów dla których algorytmy klasyczne mają złożoność wykładniczą, ponieważ pojedynczy przebieg algorytmu, rozwiązuje równanie dla całej dziedziny.

    Ten wstęp jest tylko krótkim streszczeniem naszej rozprawy z mitami komputerów kwantowych. Odpowiadamy na pytania jak skonstruowany jest kubit oraz czy komputery kwantowe faktycznie są w stanie obecnie rozwiązywać trudne algorytmiczne problemy. Jeśli podobnie jak my, szukałeś konkretnych odpowiedzi na podobne pytania, to czym prędzej wysłuchaj naszego podcastu! Mamy nadzieje że spełnimy Twoje oczekiwania w zakresie mięsistej wiedzy. Smacznego ;)

    Prowadzący: Radosław Biernacki, Maciej Czekaj, Wojciech Burkot

    Hashtag: QC, Quantum Computing, Komputery Kwantowe

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

    (Youtube) Seria krótkich filmów o istocie działania komputerów kwantowych (samo mięso prostym językiem):
    https://www.youtube.com/watch?v=tqN6I-WCXTY&list=PL50XnIfJxPDWDyea8EbbLe8GHfXkWU7W_

    (Youtube) Komputery kwantowe, wprowadzenie dla programistów:
    https://www.youtube.com/watch?v=F_Riqjdh2oM

    (Youtube) Złącze Josephsona i jak skonstruowany jest nadprzewodzący kubit:
    https://www.youtube.com/watch?v=EWd1r8nssnQ
    https://www.youtube.com/watch?v=2pB87H3_F_c

    O fizyce kwantowej wykłady Richarda Feynmana:
    http://www.feynmanlectures.caltech.edu/III_toc.html

    Tutorial Quantum Computing:
    https://medium.com/%40jonathan_hui/qc-quantum-algorithm-with-an-example-cf22c0b1ec31

    ### Terminologia
    # 18:28 - Złącze Josephsona -
    (patrz też wcześniej podane linki do Youtube o złączu Josephsona)
    https://www.scientificamerican.com/article/what-are-josephson-juncti/
    # 21:09 - Ion Trap Quantum Computing - https://medium.com/%40jonathan_hui/qc-how-to-build-a-quantum-computer-with-trapped-ions-88b958b81484
    # 28:50 - Odwracalność operacji - https://www.youtube.com/watch?v=YTNug9tQOzU&list=PL50XnIfJxPDWDyea8EbbLe8GHfXkWU7W_&index=6
    # 43:50 - Algorytm Grovera - https://en.wikipedia.org/wiki/Grover%27s_algorithm
    # 1:15:54 - Quantum Supremacy - https://en.wikipedia.org/wiki/Quantum_supremacy
    # 1:19:45 - Quantum Inspired Classical Solution - https://cstheory.stackexchange.com/questions/42338/list-of-quantum-inspired-algorithms
    # 1:39:14 - Gartner Hype Curve - https://www.gartner.com/smarterwithgartner/5-trends-emerge-in-gartner-hype-cycle-for-emerging-technologies-2018/
    # 1:57:16 - Eksperyment Bella - https://en.wikipedia.org/wiki/Bell_test_experiments
    # 1:53:50 - NP zupełność i NP trudność - https://www.geeksforgeeks.org/np-completeness-set-1/

    ### Plan odcinka:
    # 0:00 - Wyjaśnienie
    # 1:16 - Wstęp
    # 5:47 - Język matematyki
    # 12:18 - Układ kwantowy a tranzystor - analogia
    # 14:48 - Czym jest kubit?!? Jak fizycznie realizowany jest kubit.
    # 26:30 - Bramki kwantowe - czyli jak liczą komputery kwantowe
    # 31:00 - 34:20 - Operacja Hadamard’a
    # 38:30 - “Kubit to bit który jest jednocześnie 0 i 1” - clarified
    # 44:26 - Algorytm Grovera - przeszukiwanie zbioru
    # 47:13 - Pomiar - rola obserwatora
    # 50:00 - Podsumowanie 1
    # 50:56 - Algorytm Shora - "Upadek kryptografii ratuj się kto może" - busted
    # 54:55 - Ograniczenia rozwoju komputerów kwantowych
    # 1:00:20 - Problemy produkcyjne procesów kwantowych (szczegóły działania kubitów)
    # 1:04:54 - Problemy topologii procesorów kwantowych
    # 1:06:33 - Problemy korekcji błędów
    # 1:08:06 - Dwave - Quantum annealing
    # 1:13:46 - Praktyczne zastosowania obecnie istniejących komputerów kwantowych
    # 1:18:20 - Beit - Osiągnięcia na polu algorytmów kwantowych
    # 1:21:22 - Quantum Hype
    # 1:32:08 - Zjawiska kwantowe w zwykłych CPU
    # 1:39:14 - Gertner Hype Curve
    # 1:40:45 - Wpływ komputerów kwantowych na algorytmy dla komputerów klasycznych
    # 1:41:42 - Kwantowe telefony komórkowe? - "To tylko kwestia czasu" - busted
    # 1:45:46 - Co napędza rynek komputerów kwantowych?
    # 1:51:00 - Sztuczna inteligencja a komputery kwantowe
    # 1:53:50 - NP zupełność i NP trudność
    # 1:57:16 - Eksperyment Bella - zmienne ukryte
    # 1:59:22 - 2:06:40 - Równanie Schrödinger’a
    # 2:03:07 - Czy musisz być biegły w fizyce aby projektować algorytmy kwantowe?
    # 2:04:23 - “Komputer kwantowy jest budowany per zadanie” - busted
    # 2:04:47 - Jak czytać “schematy” algorytmów dla komputerów kwantowych. Jak wykonywać aproksymację przy pomocy obliczeń na komputerach kwantowych?
    # 2:09:57 - Co jest wynikiem obliczeń algorytmu kwantowego?
    # 2:12:23 - Zakończenie
    2 hr 14 min
  • #003 - Ultra szybkie sieci LAN
    W trzecim odcinku przybliżamy Wam tematykę ultra szybkich sieci LAN, tj rozwiązań sieci LAN pracujących z prędkościami 100/400 Gbit/s. Rozmawiamy o tym jak działa chmura, jak dobrze Linux sprawdza się w roli routera, czym są rozwiązania dataplane oraz ile filmów 4k można jednocześnie oglądać.

    W naszej pracy w większości przypadków mamy do czynienia z technologiami, które światło dzienne ujrzą dopiero za kilka lat. Częstokroć pracujemy nad rozwiązaniami dla których standardy nie zostały jeszcze w pełni zatwierdzone.
    Ponieważ prędkości rozwiązań sieciowych nad którymi pracujemy obecnie, mogą wydawać się kosmiczne, postanowiliśmy przybliżyć Wam nieco kulisy technicznych niuansów użytych tam technologi.

    Z odcinka dowiesz się: czym jest SDN oraz co jest podstawą działania "chmury". Od 17 minuty usłyszysz jak maszyny wirtualne tworzą sieci wirtualne oraz czym jest SRIOV. Poruszamy też zagadnienia akceleracji rozwiązań sieciowych w sprzęcie. Ok 27 minuty zdradzamy motywację stojącą za rozwiązaniami sieciowymi opartymi o FPGA, nad którymi obecnie pracujemy. Ok 36 minuty zahaczamy również o rozwiązania dataplane, przybliżając świat frameworków DPDK i ODP oraz kontrastujemy je z typowymi rozwiązaniami opartymi o kernel systemu operacyjnego Linux. W 45 minucie przechodzimy przez ograniczenia, które trzeba pokonać aby możliwe było skorzystanie z dobrodziejstw ultra szybkich sieci. Odcinek kończymy detalami związanych z medium i fizycznymi aspektami transmisji, począwszy od historycznych już rozwiązań 10Mbit/s na kablu koncentrycznym, a na światłowodowej technologi 400Gbit/s skończywszy.

    Prowadzący: Radosław Biernacki, Wojciech Macek, Maciej Czekaj, Michał Dubiel

    Hashtag: SDN, OpenContrail, TungstenFabric, OVS, FPGA, SmartNic, DataPlane, DPDK, ODP, Pcie 4.0, Fibre, 400Gbit

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

    # Microsoft Azure on FPGA
    https://www.microsoft.com/en-us/research/uploads/prod/2018/03/Azure_SmartNIC_NSDI_2018.pdf

    # Dobre źródło nowości ze świata SDN https://www.sdxcentral.com/

    # Dataplane frameworks
    DPDK https://www.dpdk.org/
    ODP https://www.opendataplane.org/

    #Nasza implementacja ODP dla ThunderX
    https://github.com/Linaro/odp-thunderx

    # jak zrozumieć “pasmo przenoszenia” w kontekście medium transmisyjnego https://www.youtube.com/watch?v=0OOmSyaoAt0

    # zasada działania modulatorów elektro optycznych, czyli jak realizowane są modulacje QAMx na promieniu lasera
    https://www.youtube.com/watch?v=ShXHOJEUcrs

    # zbiór informacji o światłowodach
    https://www.youtube.com/watch?v=_KFpXuHqHQg

    # przykład akceleracji w HW poprzed odpowiedni wybór algorytmów hashujących
    https://www.cs.cmu.edu/~binfan/papers/conext13_cuckooswitch.pdf

    # OVS offloads
    Hardware Offload with TC Flower https://www.slideshare.net/Netronome/ovs-hardware-offload-with-tc-flower
    OVS Offload Models Used with NICs and SmartNICs: Pros and Cons https://www.netronome.com/blog/ovs-offload-models-used-nics-and-smartnics-pros-and-cons/
    OVS Acceleration using Network Flow Processors
    http://www.openvswitch.org//support/ovscon2014/18/1300-ovs-accel-nfp-2014-11-18.pdf
    Performance evaluation of OVS offload using Mellanox Accelerated Switching And Packet Processing (ASAP2) technology in a RedHat OSP13 OpenStack environment - https://community.mellanox.com/s/article/performance-evaluation-of-ovs-offload-using-mellanox-accelerated-switching-and-packet-processing--asap2--technology-in-a-redhat-osp13-openstack-environment---draft
    1 hr 19 min
  • #002 - Ataki na procesory - PortSmash, TLBleed, Foreshadow
    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)
    1 hr 32 min

About Poziom niżej

From the publisher's feed

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ń…