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

Odcinki od najnowszych:

#009 - Skazani na firmware
2022-08-08 23:15:22

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

#008 - Zaczarowane Jabłko #2
2021-03-25 11:02:22

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

#008 - Zaczarowane Jabłko #1
2021-03-25 11:02:17

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

Nowa seria podcastów "Poziom Niżej"
2021-03-11 21:44:03

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!
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!

#007 - Gdy bug w krzemie drzemie...
2020-05-17 16:23:31

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

#006 - Bezpieczeństwo w krzemie zaklęte
2019-09-30 11:08:57

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

#005 - Quo Vadis ARM?
2019-07-05 17:11:19

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

#004 - Odczarować Komputery Kwantowe
2019-04-28 04:03:23

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

#003 - Ultra szybkie sieci LAN
2019-02-14 18:44:10

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

#002 - Ataki na procesory - PortSmash, TLBleed, Foreshadow
2018-12-19 18:12:19

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)
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)

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

Wyszukiwanie

Kategorie