Wykonaj

https://chacker.pl/

Sprawdziliśmy, że zsyntetyzowane dane wyglądają jak dane, które otrzymaliśmy bezprzewodowo. Pozostało tylko włączyć odbiornik osmocom

przesłać, wykonując wykres przepływu i obserwować, jak włącza się gniazdo zasilania. Aby włączyć odbiornik, po prostu kliknij prawym przyciskiem myszy blok i wybierz Włącz. Jeśli grasz, prawdopodobnie będziesz chciał wyłączyć odbiornik plików, aby zminimalizować używane miejsce do przechowywania. W tym momencie możesz się pokłonić, ponieważ pomyślnie odtworzyłeś funkcjonalność pilota od podstaw, używając SDR.

Podgląd

https://chacker.pl/

Jesteśmy teraz w punkcie, w którym mamy nadzieję, że cały wysiłek się opłaci i będziemy mogli zsyntetyzować nasze własne dane, korzystając z wyników analizy. Celem kroku podglądu jest sprawdzenie, czy dane, które zamierzamy wysłać, wyglądają tak, jak oczekujemy, przed wysłaniem ich bezprzewodowo. Ten krok można połączyć z krokiem wykonania, ale myślę, że jest wystarczająco ważny, aby uzasadnić jego osobny krok, aby upewnić się, że go nie pominiemy i nie zaczniemy przesyłać. Do tej pory tworzone przez nas wykresy przepływu były stosunkowo proste i zawierały bardzo mało ruchomych części. Aby utworzyć sygnał od podstaw, użyjemy kilku nowych bloków, jak opisano w Tabeli

Wykres przepływu na Rysunku  obejmuje blok odbiornika osmocom, ale zauważ, że strzałka i blok mają inny kolor niż pozostałe strzałki i bloki.

Oznacza to, że są wyłączone. Inną subtelną zmianą jest to, że przełączyliśmy się na 1 MSps zamiast typowych 4 MSps. Ponieważ syntetyzujemy dane, nie musimy używać tej samej częstotliwości próbkowania, co wcześniej. Ponadto wybrana częstotliwość próbkowania ułatwiła wykazanie, że szybkość symboli wynosiła 275 μs. Wzory są pobierane z binarnej reprezentacji zdalnej na polecenie:

Po uruchomieniu wykresu przepływu otrzymasz nowy plik przechwytywania o nazwie test-preview. Powtórzenie kroków analizy na przechwycie test-preview powinno dać takie same (lub podobne) wyniki, jeśli nie popełniłeś żadnych błędów w wykresie przepływu

Zwróć uwagę, że całkowita liczba okresów symboli wynosi 128, co odpowiada wzorowi z przerwą.

Analiza

https://chacker.pl/

Do tej pory udowodniliśmy, że możemy przechwytywać i odtwarzać sygnał, ale tak naprawdę nie wiemy, co jest transmitowane. Podczas tej fazy spróbujemy dowiedzieć się, jak urządzenie rozróżnia różne naciśnięcia przycisków i czy jest wystarczająco inteligentne, aby wykluczyć inne piloty. Aby wykonać oba te zadania, musimy dowiedzieć się, jak kodowane są dane. Chociaż moglibyśmy użyć gnuradio_companion do przeprowadzenia analizy, zamierzamy użyć innego narzędzia, które nieco ułatwi to zadanie: inspectrum. Inspectrum (https://github.com/miek/inspectrum) to analizator sygnału radiowego offline, który działa na przechwyconych sygnałach radiowych. W momencie pisania tego tekstu wersja inspectrum zainstalowana przez apt w Ubuntu jest opóźniona w stosunku do najnowszej wersji i nie zawiera niektórych niezwykle przydatnych funkcji. Zalecam zbudowanie jej z GitHub. Aby zbudować inspectrum ze źródła, musisz również zainstalować liquid-dsp. W podstawowej instalacji Ubuntu, inspectrum można zainstalować za pomocą poleceń znajdujących się w pliku README.txt katalogu Analyze ze strony pobierania książki. Aby przesyłać dane między stacjami, sygnał nośny jest modulowany danymi do przesłania. Sygnał nośny lub częstotliwość są znane obu stronom i „niosą” dane. Kluczowanie on-off to prosta metoda modulacji amplitudy, która skutkuje obecnością lub brakiem częstotliwości nośnej w celu przekazania informacji.

Prosta forma kluczowania on-off może mieć tylko impulsy o jednym czasie trwania, gdzie obecność impulsu to 1, a brak impulsu przez ten czas to 0. Nieco bardziej skomplikowana forma może używać długiego impulsu jako 1 i krótkiego impulsu jako 0. Najmniejszy okres czasu przejścia od pewnej amplitudy do braku amplitudy nazywa się okresem symbolu. Po zainstalowaniu inspectrum po prostu uruchamiamy je i wprowadzamy niezbędne zmiany dla naszych próbek w GUI. Jeśli nie masz urządzenia, możesz użyć plików przechwytywania zawartych w katalogu Capture ze strony pobierania książki, aby śledzić. Na rysunku 22-7 zauważysz, że otworzyliśmy przechwytywanie w celu włączenia gniazda 1 (remote1-1on-4m-316mhz) i ustawiliśmy częstotliwość próbkowania na 4000000 (częstotliwość, z jaką przechwyciliśmy sygnał).

Oś pozioma to czas, a oś pionowa to częstotliwość. Kolor informacji wyświetlanych na ekranie można traktować jako intensywność i można go dostosować, przesuwając suwaki Power Max i Min. Dostosuj suwaki Power Max i Min tak, aby w tym przypadku widzieć wyraźniejsze krawędzie. –1 MHz na skali pionowej odnosi się do 316 MHz do 1 MHz (lub 315 MHz). Co więcej, jeśli będziesz podążać za diagramem poziomo, zobaczysz mnóstwo kresek o różnych rozmiarach z odstępem między nimi. Kreski na naszej częstotliwości roboczej wyglądają jak kod Morse’a i wskazują na formę klawiszowania on-off.

Aby zdekodować dane, musimy obliczyć okres symbolu i przetłumaczyć symbole pojedynczego pakietu. Na szczęście inspectrum udostępnia kilka narzędzi do pomiaru sygnału i przechwytywania danych symboli. Funkcja kursora zapewnia sposób graficznego podziału diagramu na symbole o określonej długości. Ponadto, ukryta na środkowym przycisku myszy jest możliwość dodania wykresu amplitudy i wyodrębnienia symboli. Na rysunku widać dodanie kursora przy okresie symbolu 272μs i ośmiu okresach nałożonych na sygnał.

Aby określić okres symbolu, wyrównaj przednią krawędź kursora na początku najmniejszego symbolu i przeskaluj kursor, aby wyrównał się na końcu tego samego symbolu. Następnie po prostu przesuń region, aby wyrównać na początku wszystkich symboli i zwiększyć liczbę symboli. Oryginalny okres symbolu nie będzie dokładny, ale powinien być w przybliżeniu. Głównym pomysłem jest zapewnienie, że krawędzie wszystkich symboli są wyrównane z krawędzią okresu. Nawet przy tak prostym wykresie przekazywanych jest kilka ważnych informacji:

  • Najkrótszy impuls trwający 272μs.
  • Najdłuższy impuls trwający jest trzy razy dłuższy od najmniejszego impulsu trwającego.
  • Cztery okresy symboli 272μs występują między początkiem jednego impulsu a początkiem następnego impulsu.

Teraz, gdy mamy to, co wydaje się być okresem symboli, powinniśmy zwiększyć liczbę symboli i sprawdzić, czy nadal pokrywamy się z krawędziami kresek w całym pakiecie danych. Po prostu oddal diagram i zobacz, gdzie pokrywa się ostatni impuls. W naszym przypadku byliśmy nieco poza zasięgiem i musiałem lekko rozciągnąć okres, tak aby okres symboli wynosił 275μs zamiast 272μs. Nie jest to nieoczekiwane, biorąc pod uwagę, że wszelkie błędy w początkowym pomiarze są w tym przypadku mnożone przez 100. Po potwierdzeniu szybkości symboli i okresu możemy teraz wyodrębnić symbole i przetłumaczyć je na dane binarne. Aby to osiągnąć, używamy wykresu amplitudy ze środkowego przycisku myszy. Po dodaniu wykresu amplitudy do wykresu widma dodawany jest nowy nawias z trzema poziomymi liniami. Nawias musi być wyrównany (wyśrodkowany) na danych symbolu, aby uzyskać wykres amplitudy danych symbolu na nowo dodanym wykresie amplitudy. W takim przypadku, gdy nawiasy są wyśrodkowane na danych symbolu, a ustawienia Power Max/Min są rozsądne, wykres zaczyna wyglądać jak fala kwadratowa

Gdy fala kwadratowa wygląda jak fala kwadratowa, używamy ponownie środkowego przycisku myszy, aby wyodrębnić symbole do standardowego wyjścia (stdout). Wyodrębnione wartości są następnie drukowane w wierszu poleceń, w którym wywołano inspectrum

W tym momencie przejdziemy do małego programowania w Pythonie, aby przetłumaczyć wektor amplitudy na wektor binarny w celu dalszego przetwarzania.

Wyodrębnione symbole mieszczą się w przedziale od –1 do 17, dlatego musimy je przekonwertować na dane binarne, aby ułatwić przetwarzanie. Rozsądną metodą konwersji jest wybranie wartości progowej, gdzie wszystko powyżej progu jest binarną 1, a wszystko poniżej jest binarnym 0. Nadchodzący skrypt decode-inspectrum.py pozwala użytkownikowi wybrać próg na podstawie wartości wyodrębnionych z inspectrum.

UWAGA: Rzeczywiste wartości minimalne i maksymalne będą się różnić w zależności od ustawień Power Min/Max. Dodałem thresh (od progu) do funkcji decode, aby umożliwić uwzględnienie różnych wartości

Aby interaktywnie bawić się danymi, używam ipython3 (1), ale możesz uruchomić kod w dowolny sposób. Jedną z zalet ipython3 jest to, że możesz modyfikować rutynę i przeładowywać ją (2) według własnego uznania. Rutyna dekodowania (3) pobiera dane wyjściowe (4) symboli ekstrakcji z inspectrum i drukuje zdekodowane dane w postaci surowego dekodowania szesnastkowego (5), przetłumaczonych symboli decode(6) i surowego dekodowania binarnego (7). Dekodowanie przetłumaczonych symboli opiera się na fakcie, że kluczowanie włącz-wyłącz wydawało się mieć dwa symbole. Dane binarne odzwierciedlają te same dwa symbole, przy czym długi impuls to 0xe, a krótki impuls to 0x8. Wynik uruchomienia dekodowania dla wszystkich przechwytów pokazano poniżej:

Nie jest do końca jasne, jaki jest początek każdego pakietu, ale konsekwentnie wydaje się zaczynać od binarnej 10 (reprezentowanej jako 0xe8 w systemie szesnastkowym). Następnie dane różnią się tylko między pilotami, co może wskazywać na schemat adresowania, ponieważ piloty działają tylko na sparowanych gniazdach. Jeśli porównamy tę samą operację na obu pilotach, ostatnie 4 bity to wyraźnie wykonywana operacja (czyli włączenie gniazda 1). Jeśli wcześniej nie było to oczywiste, teraz wiemy, że ataki replay będą działać tylko na sparowanym gnieździe.

Powtórka

https://chacker.pl/

Teraz, gdy przechwyciliśmy sygnały, nadszedł czas, aby spróbować odtworzyć dane. Chociaż niemożność pomyślnego odtworzenia danych niekoniecznie oznacza, że ​​nie udało nam się ich poprawnie przechwycić, możliwość pomyślnego odtworzenia danych wskazuje na potencjalną wadę komunikacji. W przypadku systemów, w których bezpieczeństwo jest kwestią priorytetową, należy wdrożyć środki zaradcze zapobiegające powtórzeniom, aby zapobiec nieautoryzowanemu dostępowi. Ogólnym przypadkiem użycia takiego urządzenia jest po prostu włączanie lub wyłączanie światła, wentylatora lub innego prostego urządzenia. Dlatego podejrzewam, że ataki powtórzeniowe prawdopodobnie nie zostaną złagodzone. Głównym celem ataku powtórzeniowego jest pomyślne przetestowanie urządzenia przy minimalnym zrozumieniu rzeczywistego protokołu. Wykres przepływu fazy powtórzenia będzie wyglądał jak faza przechwytywania, z wyjątkiem tego, że teraz używamy pliku jako źródła i osmocom jako odbiornika. Musimy ponownie użyć tej samej częstotliwości próbkowania i częstotliwości, aby sygnał mógł zostać odtworzony w takiej postaci, w jakiej został odebrany. Dodatkowo, bloki Multiply Const, QT GUI Time Sink i Throttle zostały dodane do wykresu na Rysunku , aby ułatwić ewentualne korekty.

Throttle jest dodawany, aby utrzymać niskie wykorzystanie procesora, jeśli nie mamy zewnętrznego odbiornika, który skutecznie ograniczyłby szybkość danych. Zasadniczo, jeśli odbiornik osmocom jest wyłączony, a przepustnica nie istnieje, dane odczytywane z pliku nie są ograniczone szybkością, a wykorzystanie procesora może być wysokie.

UWAGA Upewnij się, że używasz funkcji Kill (F7), aby zamknąć bieżący wykres przepływu, aby umożliwić SDR prawidłowe oczyszczenie. Odkryłem, że czasami nadajnik nie przestaje nadawać, nawet gdy używana jest funkcja Kill, więc uważaj, aby nie kontynuować nadawania po zakończeniu. Niestety, bez dodatkowego SDR do monitorowania transmisji trudno jest określić, czy transmisja jest ciągła. Reset urządzenia może być użyty, aby upewnić się, że transmisja została zatrzymana.

Gdy wykres przepływu był pierwotnie uruchomiony ze stałą mnożnika równą 1, gniazdo zasilania nie włączało się. Z wykresu częstotliwości na rysunku wynika, że ​​przynajmniej nadajemy na prawidłowej częstotliwości, więc coś innego musi utrudniać nasz postęp.

W wielu przypadkach możliwość pomyślnego odtworzenia oznacza „koniec gry”. Na przykład, jeśli urządzenie kontroli dostępu do drzwi nie ma środków łagodzących odtwarzanie, atakujący może uzyskać próbkę i uzyskać nieautoryzowany dostęp. Teraz, gdy pomyślnie odtworzyliśmy przechwycony sygnał, możemy przejść do fazy analizy.

Przechwytywanie

https://chacker.pl/

zbrojeni w częstotliwość roboczą, mamy wystarczająco dużo informacji, aby rozpocząć eksperymenty z SDR i testowanym urządzeniem (DUT). W tym momencie musimy mieć zainstalowane SDR (HackRF) i oprogramowanie (narzędzia gnuradio i HackRF) oraz antenę zdolną do odbioru 315 MHz (ANT500 75 MHz do 1 GHz). Chociaż nie będziemy przechodzić bezpośrednio przez proces instalacji, polecam użycie PyBOMBS i zainstalowanie narzędzi w katalogu domowym przy użyciu argumentu prefiksu do PyBOMBS. Instalując go w katalogu domowym, będziesz mieć możliwość eksperymentowania z kilkoma konfiguracjami i łatwiejszego odzyskiwania po wszelkich przyszłych problemach z aktualizacjami. Na stronie pobierania książki możesz znaleźć plik README.txt z instrukcjami instalowania narzędzi, wykresy przepływu przywoływane w całym rozdziale do wykorzystania w GNU Radio Companion oraz pliki przechwytywania do wykorzystania w analizie w przypadku, gdy nie masz urządzenia, do którego się odwołujesz. GNU Radio Companion (uruchamiany przez uruchomienie gnuradio_companion) to narzędzie GUI, które pozwala użytkownikowi na tworzenie radia programowego poprzez łączenie jednego lub wielu bloków przetwarzania sygnału. Narzędzie generuje kod Pythona w tle i pozwala użytkownikowi definiować zmienne i używać instrukcji Pythona w GUI.  Aby zminimalizować liczbę wymaganych transmisji, do zapisu danych zarówno do odtwarzania, jak i analizy offline używany jest odpływ pliku.

UWAGA : Należy odnotować częstotliwość próbkowania i częstotliwość kanału, ponieważ będą one niezbędne podczas korzystania z narzędzi offline i ataków odtwarzania.

Podczas fazy przechwytywania próbowałem przechwycić plik dla każdego znanego bodźca. W przypadku naszego DUT znane bodźce naciskają przycisk włączania/wyłączania dla każdego gniazda. Ponadto, aby pomóc nam zrozumieć protokół urządzenia, do porównania użyto dwóch pilotów. W tym momencie, w oparciu o nasze zrozumienie z raportu testowego, powinniśmy zobaczyć skok przy lub w okolicach 315 MHz, jak pokazano na rysunku.

Zauważysz również, że skok występuje przy 316 MHz; jest to artefakt sprzętu testowego (przesunięcie DC) i nie jest to problem dla naszego testowania. Przesunięcie DC pojawia się na częstotliwości środkowej i jest powodem, dla którego dostroiliśmy odbiornik do 316 MHz, aby go odsunąć. W tym momencie mamy wystarczająco dużo przechwyconych danych, aby przejść do następnej fazy, odtwarzania.

Szukanie

https://chacker.pl/

Podczas fazy wyszukiwania procesu SCRAPE staramy się dowiedzieć jak najwięcej o charakterystyce radia bez konieczności używania specjalistycznego sprzętu. Wiesz już, że FCC reguluje widmo radiowe, ale możesz nie wiedzieć, że większość urządzeń nadających musi być certyfikowana przez FCC, aby mieć pewność, że działają zgodnie z ustalonymi zasadami. Gdy produkt lub moduł jest certyfikowany, wydawany jest identyfikator FCC, który musi być widoczny na produkcie lub module. Ten identyfikator FCC będzie naszym kluczem wyszukiwania do badania charakterystyki RF. Urządzeniem, które będziemy analizować, jest pilot Prime Indoor Wireless Power Outlet . Nie musisz kupować tego urządzenia, aby śledzić rozdział. Identyfikator FCC pilota to QJXTXTNRC. Identyfikator można znaleźć na etykiecie na zewnątrz produktu. Wyszukiwanie autoryzacji sprzętu FCC nie znajdzie raportu dla tego urządzenia, chyba że użyjesz „-TXTNRC” jako kodu produktu. Aby obejść takie problemy, po prostu używam Google do wyszukiwania, tak jak tutaj:

Strona internetowa fccid.io zwykle pojawia się wśród najlepszych wyników. W naszym przypadku najlepszym linkiem był https://fccid.io/QJX-TXTNRC. Na stronie fccid.io znajdujemy kilka powiązanych dokumentów i raportów, które mówią nam, że zakres częstotliwości roboczej tego urządzenia wynosi od 315,0 MHz do 315,0 MHz (lub po prostu 315,0 MHz). Raporty te zawierają częstotliwości robocze, przykładowe przebiegi wskazujące rodzaj transmisji, pomiary czasu wskazujące długość pakietu i różne szerokości impulsów. Użyjemy zakresu częstotliwości roboczej jako punktu wyjścia i pozostawimy resztę raportu testowego jako kontrolę poprawności po zakończeniu testów.

Ucz się na przykładzie

https://chacker.pl/

Teraz, gdy zapoznałeś się z SDR, przejdziemy przez proces oceny nowego urządzenia, abyś mógł nauczyć się, jak korzystać z SDR i powiązanego oprogramowania. Przez resztę tego rozdziału będziemy używać systemu Ubuntu z narzędziami HackRF SDR i GNU Radio do oceny wewnętrznego urządzenia do gniazdka zasilania bezprzewodowego. Nie ma nic szczególnego w tym wyborze urządzenia, poza tym, że znajdowało się ono w moim obecnym inwentarzu i jest wystarczająco proste, aby omówić je. HackRF został wybrany ze względu na połączenie funkcji, ceny i łatwości dostępu. Oprogramowanie używane w całym rozdziale powinno działać z dowolną z niedrogich platform SDR. Ogólny proces, który zastosujemy w tym rozdziale, jest znany jako SCRAPE, co oznacza wyszukiwanie, przechwytywanie, odtwarzanie, analizowanie, podgląd i wykonywanie.

Nie tak szybko: poznaj zasady

https://chacker.pl/

Jeśli weźmiemy pod uwagę liczbę urządzeń bezprzewodowych, którymi jesteśmy otoczeni — radia, telefony, satelity, Wi-Fi itd. — logiczne jest, że powietrze kontroluje organ zarządzający. Dwa takie organy zarządzające to Federal Communications Commission (FCC) i International Telecommunication Union (ITU). W Stanach Zjednoczonych FCC reguluje widmo RF, a do transmisji w większości widma RF za pomocą nielicencjonowanego urządzenia, takiego jak SDR, trzeba mieć licencję. Aby uzyskać licencję na obsługę radia, trzeba zdać egzamin, aby wykazać się znajomością zasad i przepisów. Odwiedź stronę www.arrl.org, aby dowiedzieć się więcej o licencjonowaniu i zasadach legalnej obsługi radia.

Co kupić

https://chacker.pl/

Teraz, gdy masz pojęcie, czym jest SDR, czas znaleźć nową zabawkę. Niektóre przykłady SDR to HackRF, bladeRF i USRP. Każdy z nich wykorzystuje port USB w komputerze i może być używany z oprogramowaniem typu open source, takim jak GNU Radio. Częstotliwość robocza określa, do jakich częstotliwości radio może się dostroić. Na przykład Bluetooth działa w zakresie od 2,4 GHz do 2,48 GHz na 40 do 80 kanałach, w zależności od wersji. Radio FM działa w zakresie od 87,8 MHz do 108 MHz na 101 kanałach. Dostępne są dodatki, takie jak Ham It Up Nano, które skutecznie obniżają ich dolne limity.

Szerokość pasma to ilość widma RF, które może zostać zeskanowane przez aplikację/urządzenie. Wymienione szerokości pasma są publikowane na odpowiednich stronach internetowych, ale mogą się różnić w zależności od załadowanego oprogramowania układowego. Na przykład oprogramowanie układowe HackRF w wersji 2017.02.01 lub nowszej obsługuje tryb przeszukiwania, który umożliwia urządzeniu przeszukiwanie pełnego zakresu 6 GHz. Jedną z potencjalnych korzyści zwiększonej szerokości pasma jest możliwość jednoczesnego monitorowania wszystkich kanałów Bluetooth (80 MHz).

Dupleks odnosi się do sposobu, w jaki dwa systemy mogą się ze sobą komunikować. Pełny dupleks oznacza, że ​​urządzenie może jednocześnie nadawać i odbierać. Półdupleks, jak zapewne zgadłeś, oznacza, że ​​urządzenie może nadawać i odbierać dane, ale nie w tym samym czasie. Przykładami komunikacji półdupleksowej są krótkofalówki i wiele komputerowych aplikacji Voice over IP (VoIP). Gdy obie strony próbują mówić w tym samym czasie, dochodzi do kolizji i utraty danych. Chociaż pełny dupleks jest bardziej elastyczny, dupleks SDR prawdopodobnie nie będzie utrudniał skuteczności analizy.

Rozdzielczość konwersji analogowo-cyfrowej (ADC) odnosi się do liczby odrębnych wartości napięcia, jakie może przyjąć każda próbka. Na przykład 8-bitowy ADC o zakresie napięcia 4 V ma rozdzielczość 15,6 mV, czyli 0,39 procent. W połączeniu z częstotliwością próbkowania, większa rozdzielczość ADC bitów skutkuje dokładniejszą reprezentacją cyfrową sygnału analogowego. Opublikowane szybkości próbek na sekundę zależą od przepustowości USB, procesora, przetwornika ADC i rozmiaru na próbkę. Na przykład wartość USRP B200 wynosząca 61 MSps jest oparta na użyciu 16-bitowych próbek kwadraturowych; jednak system można skonfigurować tak, aby używał 8-bitowych próbek kwadraturowych, co skutecznie podwaja przepustowość próbek na sekundę. Niższa obsługiwana wartość próbki HackRF na sekundę jest zarówno wynikiem wybranego ADC, jak i przepustowości USB. Oprócz zakupu SDR prawdopodobnie będziesz musiał kupić kilka kabli, obciążeń pozornych, tłumików i anten o różnych zakresach częstotliwości. Do testowania urządzeń w laboratorium przydatne są anteny kierunkowe, które pomagają w izolowaniu źródeł. Na koniec, choć nie jest to konieczne, prosta komora izolacyjna (lub skrzynka) może być niezwykle przydatna w przypadku typowych częstotliwości, takich jak 2,4 GHz.

Pierwsze kroki z SDR

https://chacker.pl/

SDR to radio, które jest implementowane przy użyciu modyfikowalnych komponentów programowych do przetwarzania surowych danych, zamiast polegać wyłącznie na sprzęcie RF specyficznym dla aplikacji i procesorach sygnału cyfrowego. SDR wykorzystuje zasoby procesora ogólnego przeznaczenia, takiego jak komputer z systemem Linux, do przetwarzania sygnału, wraz ze sprzętem RF ogólnego przeznaczenia do przechwytywania i przesyłania danych. Zalety SDR obejmują możliwość przetwarzania szerokiej gamy sygnałów i częstotliwości w ramach jednego (i potencjalnie zdalnie aktualizowanego) pakietu oprogramowania układowego. Ponadto SDR zapewnia deweloperom/badaczom elastyczność podczas prototypowania nowych systemów.