Kwestia skali

Co prawda, prawa fizyki są uniwersalne we wszechświecie,co jednak nie zmienia faktu,że nasze „zdroworozsądkowe” spojrzenie na świat nie jest tak do końca zgodne ze stanem faktycznym.Wydaje nam się,że tak jest,ale w istocie to bzdura. W tym wpisie spróbuję wyjaśnić dlaczego.

Człowiek.Przeciętnie jakieś 1,5-2 m wzrostu. Z ilu komórek się może składać ? Najpewniej z wielu trylionów. (1012) – ale jak z tym jest,to nawet naukowcy nie są w stanie ocenić w sposób jednoznaczny. A cóż to jest jeden metr w porównaniu z rozmiarem galaktyki czy zmierzoną w laboratorium długością Plancka ? Prawa fizyki są te same,ale rozmiary są różne,więc przy różnych rozmiarach różne kombinacje praw mogą dać zupełnie inne efekty.

W wielu horrorach klasy B głównymi antagonistami są gigantyczne owady pożerające ludzi. Jest tylko pewien problem,który każdy,kto nie spał na lekcjach biologii (o ile były dobrze prowadzone) powinien zauważyć. Układ oddechowy owadów to coś,co w naszej skali nie miałoby prawa działać tak dobrze,jak działa w ich skali.

Każdy organizm wraz ze zwiększeniem rozmiaru zwiększa masę i w pewnym momencie zasady na których ewolucja zbudowała dany organizm przestają być wystarczające. Wielkie,kilkunastocentymetrowe pająki naprawdę są bardzo różne ewolucyjnie i strukturalnie od swoich mniejszych kuzynów.

A co to daje w praktyce ? Bardzo dużo.Ludzki organizm pod wpływem zbyt wielkich przyspieszeń może paść ofiarą zawału lub krwotoków,a ludzki płód w próżni nie będzie miał łatwego i normalnego rozwoju – to ważne rzeczy,ale wciąż drobiazgi.Ponieważ nasze narzędzia też podlegają efektowi skali. Efektowi który dużo łatwiej będzie przedstawić na przykładzie mikroświata. Z tego co wiem studenci uczący się nanotechnologii w naszym kraju mogą mieć przedmiot znany jako fizyka zjawisk mezoskopowych. Mile widziana jest również mechanika kwantowa. No ale  – czym się one tak różnią od fizyki Newtona ? Podobnie jak teoria względności – szeregiem zaskakujących zjawisk z którymi nie spotykamy się w naszej skali tak często.

Zacznijmy od tego,jak się różni od naszej powszechnie spotykanej fizyki fizyka w rozmiarach mniejszych od milimetra a nawet mikrometra.W takich skalach np:

  • Znaczenia nabierać zaczynają ruchy termiczne cząstek,np. ruchy Browna.
  • Lepkość zaczyna dawać dużo bardziej znaczące efekty niż w naszej skali.
  • Znaczenia nabiera też wpływ dyfuzji.
  • Mechanika płynów i zjawiska chemiczne odgrywają większą rolę.
  • itd

W skali nano jest jeszcze dziwniej:

O ile jeszcze można od biedy jakoś zaakceptować owady (czy nawet niektóre zwierzęta) „chodzące po wodzie”,  o tyle zjawiska kwantowe wg. których światło jest i falą  i cząsteczką czy fakt,że cząsteczka może „przechodzić przez ściany” nas zdumiewa.Ale świadczy to tylko o tym,że nie jesteśmy przystosowani do tych skal,a nie że dzieją się tam „cuda”. Byłoby wręcz śmiesznie naiwnym zakładać,że oto „zdroworozsądkowe” podejście z naszej skali jest rozsądne w innych skalach.Po prostu. Tym niemniej nasze podejście – chcąc nie chcąc – jest na to skazane.

Czy jednak kwestia skali jest istotna tylko tutaj ? Ależ nie. Istotne jest z tej perspektywy przyjrzenie się bliżej rozwiązaniom stosującym np bardziej rozwinięte sieci neuronowe. Pod pewnymi względami zachowują się one jak elementy ludzkiego i zwierzęcego mózgu – ale pod pewnymi nie,są bowiem ich znacznie uproszczoną wersją.

Nawet stosunkowo proste podejście do kwestii skali jakim był czołg Car okazało się gigantyczna klęską.W czasie prób czołg utkwił w błocie.

Również w przypadku tokamaków mamy problem z utrzymaniem plazmy wewnątrz.  Dlaczego nie ma takich problemów ze Słońcem ? Olbrzymia masa Słońca jest związana z olbrzymią grawitacją, która utrzymuje tą plazmę w miejscu.

Dlaczego jednak piszę o tym ? Wydaje mi się,że podejście do różnych skal i łączenia rozwiązań występujących w różnych skalach wciąż jest stosunkowo mało kreatywne i wiele można jeszcze zrobić.

Reversing/Inżynieria odwrotna w technice i w informatyce – wstęp

No i znów jestem. Dziś napiszę coś o ciekawym zastosowaniu technik badawczych. Aby jednak to zrobić, użyję dość dalekiej – nie tylko geograficznie kwestii – kwestii Chińskiej. Dzisiejsze Chiny nadal słyną z „podróbek” – choć Chińskie produkty są coraz lepszej jakości i bynajmniej nie ograniczają się do „tandety”. To już nie te czasy. Można Chinach dzisiaj mówić wiele. Ale tak, czy inaczej trzeba Chińczykom przyznać jedno. Ku wściekłości i rozpaczy świata zachodniego, sztukę kopiowania opanowali na bardzo wysokim poziomie i na skalę przemysłową. Ale czy tylko Chiny tak robiły ? Nie. ZSRR również korzystał zapewne (obok, lub w ramach szpiegostwa przemysłowego) z technik reversingu. Ba,czy również broniące dziś swoich praw firmy informatyczne jak Apple i Microsoft nie tylko korzystały z rozwiązań konkurencji (Xeroxa) ale i w razie potrzeby również dokonywały reversingu, podobnie jak firmy od hardware które dokonywały w latach 80-tych inżynierii odwrotnej swoich układów – po to,by stworzyć specyfikację a potem opracować inne – lecz kompatybilne – rozwiązania, różne od opatentowanych ?

W istocie tak było, a choćby technika reversingu „clean room” (nie mająca chyba wiele wspólnego poza nazwą z technologią produkcyjną cleanroom), polegająca na wykorzystanie reversingu do stworzenia specyfikacji a następnie wykonaniu własnego układu, wykorzystana do stworzenia BIOSu kompatybilnego z BIOSem koncernu IBM przez firmę Phoenix,a później inne firmy, przełożyła się na to,że IBM PC stał się standardem komputera osobistego, dzięki nasileniu wolnej konkurencji i obecności różnych rozwiązań. Oczywiście korporacja taka jak IBM mogłaby i na tym zarobić i tak mając odpowiednie podejście, w późniejszych latach, a to dlaczego tak nie było to kwestia,którą powinien rozważać kto inny. Świadczy o tym fakt, że stosujące otwarte standardy korporacje nie tylko na tym dziś nie tracą,ale i często zyskują dzięki intensywniejszej współpracy – często wchłaniając później korzystające z ich rozwiązań startupy . WIN-WIN z wolną konkurencją w tle. Ale czy inżynieria odwrotna, znana pod angielskimi terminami jako „reverse engineering” czy „reversing” ogranicza się do takich, często wątpliwych prawnie kwestii jak kopiowanie cudzych produktów ? Niekoniecznie. W istocie reversing może polegać np. na:

  • W przypadku produktów materialnych:
    • zrozumieniu i ewentualnemu skopiowaniu a nawet udoskonaleniu istniejącego rozwiązania technicznego
    • odtworzeniu zagubionej/utraconej dokumentacji produktu
    • znalezieniu właściwego sposobu na dokonanie samodzielnej naprawy,bądź naśladowania określonej techniki naprawczej
    • odtworzeniu dawnych technik o znaczeniu historycznym oraz odrestaurowanie / wykonanie możliwie repliki przedmiotu o znaczeniu historycznym
    • rozpoznanie lub odtworzenie procesu produkcyjnego i jego parametrów
  • W informatyce:
    • Poznawanie działania algorytmów szyfrujących celem deszyfracji komunikatu
    • Poznanie działania oprogramowania (tak cudzego programu jak i wirusa) i ewentualna reimplementacja w innym środowisku informatycznym (inny procesor,system itd.) bądź modyfikacja
    • Poznanie zastosowanych technik programistycznych i ewentualne ich wykorzystanie,bądź stworzenie rozwiązań dających podobne rezultaty bez naruszania patentów
    • Określenie specyfikacji urządzenia/oprogramowania – celem wytworzenia nowego,kompatybilnego
    • Wykrycie błędów programistycznych i luk oprogramowania którego kod źródłowy jest niedostępny

W istocie, część tych rozwiązań jest jak najbardziej legalna,natomiast część pozostałych zawadzać może o szpiegostwo przemysłowe. Nawet jeśli tak jest,to należy pamiętać,że zakazanie danych działań lub ich kryminalizacja , nigdy nie oznacza całkowitego wykluczenia danych działań w praktyce. (Gdyby było inaczej to przestępcy w Polsce nie posiadaliby broni, czy narkotyków, ponieważ to nielegalne). Oznacza to,że zgodnie z przysłowiem „dżina wypuszczonego z pudełka” bardzo trudno zamknąć w nim ponownie, całkowite powstrzymanie postępu technologicznego jest właściwie niemożliwe. Należy też zwrócić uwagę, że inżynieria odwrotna zastosowanych produktów materialnych, jak najbardziej mogłaby być wykorzystana celem wykrycia ewentualnych wad zastosowanego procesu produkcyjnego, oraz celowego wykorzystania jego słabości – szczególnie w wojskowości,ale nie tylko – w literaturze fachowej dotyczącej bezpieczeństwa znany jest przykład amerykańskich inżynierów, którzy dokonali inżynierii odwrotnej automatów do gier hazardowych,aby wygrywać. Wracając do „sprawy Chińskiej”. Chińczykom pewnych rzeczy nie udało się skopiować, pomimo usilnych starań. Do takich rzeczy należą silniki lotnicze. W dalszej części tego tekstu, spróbuję również wyjaśnić potencjalne powody. Tekst ten również wyjaśni, dlaczego jednak łączę przypadki reversingu informatycznego oprogramowania i produktów materialnych. Jeśli się zastanowić,wbrew pozorom, stosowane w tych dziedzinach metodologie mają podobny sens i jedna może inspirować drugą – zarówno, jeśli chodzi o koncepcję znalezienia sposobu na osiągnięcie powtórnego wykorzystania rozwiązania – jak i przeciwnie – koncepcję sposobu utrudnienia, lub wręcz uniemożliwienia czegoś podobnego. Jak wspominałem, inżynieria odwrotna jest techniką badawczo-(re)produkcyjną, zmierzającą do poznania struktury i działania obiektu badań i jego ewentualnego odtworzenia. Co za tym idzie oczywiście należy przeprowadzić:

  • Badania zmierzające do określenia jego struktury – najlepiej w sposób nieniszczący, jednak jeśli dysponować się może większą (bądź w informatyce) nieograniczoną liczbą kopii obiektu badań – również w sposób inwazyjny
  • Badania jego zachowania i działania w możliwie naturalnym środowisku/środowiskach w których obiekt badań pracuje / mógłby pracować.
  • Badania zmierzające do określenia cech charakterystycznych i ograniczeń procesu produkcyjnego (oraz porównać go z dostępnymi sobie procesami produkcyjnymi).

Wymaga zaznaczyć,że przeprowadzenie takich badań wymaga dostatecznych kwalifikacji badacza/badaczy w danej dziedzinie.Przez „dostateczne” rozumiem „potrafi więcej,niż zaprojektować coś samodzielnie” i zna całkiem dziedzinę,w której przeprowadza działania,o chakterze reversingowym. Ponadto, z naturalnych względów analiza oprogramowania, bądź obiektu materialnego ,o którym nic nie wiemy, powoduje znacznie większe trudności, niż analiza czegoś, o czym mamy możliwie sporo informacji nawet specjaliście. W końcu, jeśli ktoś nie wie co to są tosty, nie będzie rozumieć tego czym dokładnie jest toster i tym,co jest istotne w procesie jego działania – choć może, możliwie prawidłowo, nadal określić jego budowę, przy zachowaniu odpowiedniej staranności i doboru właściwości / właściwego materiału, co umożliwia, przynajmniej częściowe skopiowanie jego funkcjonalności w praktyce. Istotne jest jednak wtedy zebranie kompletnych – ba, często wręcz nadmiarowych danych na temat obiektu badań, przy użyciu najnowocześniejszych możliwych narzędzi – które, w praktyce i tak mogą być prymitywne, bądź nieadekwatne, w porównaniu z napotkanym problemem. Odkrycie statku kosmicznego obcej cywilizacji na ziemi wcale nie musiałoby się więc przełożyć na znaczne rozwinięcie technologii podróży kosmicznej.Choć oczywiście mogłoby znacznie ułatwić sprawę, o ile ta cywilizacja byłaby na tyle podobna do naszej,by można było zrozumieć jak działają jej urządzenia. Ponadto, inżynieria odwrotna badając zastosowanie danej koncepcji ma ten naturalny problem,że nie zawsze da się określić, co było błędem wykonawcy obiektu badań/wynikiem eksploatacji, lub niewłaściwego przechowywania, a co jego naturalnych cech. Ujmując to dowcipnie: kopiując zardzewiały gwóźdź, nie każdy musi zauważyć,że gwóźdź nie musi być zardzewiały – zwłaszcza, jeśli kopiuje się coś bardziej zaawansowanego technicznie, jak zardzewiały gwóźdź. Reguły są niezwykle pomocne, lecz nie wszystkie reguły są znane publicznie. Co gorsza, (szczególnie w przypadku produktów materialnych, ale nie tylko) informacja na temat procesu produkcyjnego może być utracona, w rezultacie zastosowania danego procesu wytwarzania, a informacje z nim powiązane mogą być również zmienione,lub zatarte/usunięte w inny sposób. Dla przykładu:

  • Obróbka cieplna lub chemiczna stopów metali może zmienić skład chemiczny stopu startowego – lokalnie lub w całym stopie (to samo zresztą dotyczy polimerów i innych materiałów)
  • W przypadku wielokrotnego kucia i wielokrotnej obróbki cieplnej pewne parametry procesowe mogą zostać zatarte lub utracone.

Ale też:

  • Po kompilacji do wersji binarnej utracone mogą być pewne dane dotyczące języka programowania, i wykorzystanych bibliotek oraz planowanego algorytmu i ewentualnej specyfikacji programu w UML.

Samo prowadzenie analizy produktu materialnego konieczne jest określenie:

  • Wymiarów odtwarzanego obiektu /obiektów wraz z tolerancjami i pasowaniami
  • Charakteru powierzchni
  • Uzyskanie porównywalnych właściwości materiałowych – takich jak np.:
    • Skład chemiczny i fazowy
    • Morfologia i struktura
    • Właściwości mechaniczne,plastyczne i zmęczeniowe
    • Twardość
    • Odporność na zmęczenie materiałów
    • Odporność chemiczna
    • Wprowadzone naprężenia w materiale
    • itd.

Jeśli chodzi o tolerancje,pasowania i charakter powierzchni pod względem ekonomicznym i praktycznym ważne jest określenie jakie są tolerancje i które z nich mają krytyczne znaczenie dla prawidłowego działania produktu oraz określenie prawidłowych punktów bazowych. Samych pomiarów dokonać tego można poprzez zastosowanie:

  • standardowych narzędzi pomiarowych wykorzystujących metody dotykowe i bezdotykowe
  • skanerów laserowych 3d
  • itp.

Określenie tolerancji wymiarowych,choć kluczowe, może zostać dokonane:

  • korzystając z wiedzy, na temat innych elementów produktu i powszechnej wiedzy inżynierskiej / standardów, uwzględniając szczególnie czytelność, charakterystykę procesu produkcyjnego (jeśli jest dostatecznie znany) i łatwość realizacji pomiarów (np. GD&T)
  • eksperymentalnie metodą prób i błędów (testowanie prototypów uzyskanych metodami rapid prototyping [wiki: PL, ANG).

Na ustalenie składu chemicznego,fazowego i wielu innych parametrów materiałowych istnieje bardzo wiele specyficznych metod charakterystycznych dla inżynierii materiałowej i fizyki ciała stałego. Są to np.:

  • Analiza rentgenowska
  • Mikroskopia optyczna
  • Różne techniki mikroskopii elektronowej – SEM,TEM
  • Spektroskopia (masy ale nie tylko)
  • Techniki nieniszczące – np. ultradźwiękowe
  • Technologia FIB
  • i wiele wiele innych rozwiązań

Należy pamiętać,że kwestią pierwszorzędną jest nie uzyskanie w miarę identycznej struktury,lecz raczej w miarę identycznych krytycznych właściwości, wszelkie zaś zmiany zmierzające do poprawienia właściwości produktu – nawet przy wykorzystaniu innych rozwiązań są wysoce wskazane. Krytyczne właściwości zaś, jak zwykle są bardzo trudne do ustalenia bez zewnętrznych informacji,bądź przeprowadzenia eksperymentów. Ponadto, w praktyce działanie urządzeń materialnych, powinno być badane poprzez wykorzystanie m.in. szeregu sensorów (uwaga: tu szczególnie sensorem może być nawet kamera) i narzędzi pomiarowych poza obiektem w trakcie działania, jak również (co byłoby wskazane) wewnątrz obiektu badań inżynierii odwrotnej, celem określenia parametrów i samego działania urządzenia. Przydatne jest również określenie przyczyn ewentualnej usterki, poprzez określenie np. efektów zmęczeniowych,czy korozyjnych („czas życia” produktu poddanego reversingowi). W praktyce uruchomienie urządzenia / jego fragmentów i wykonanie pewnych testów, to niezbędne minimum. Jak widać, przy produktach materialnych, dużo większego znaczenia nabierają koszty przeprowadzania prób i eksploatacji, sam zaś proces inżynierii odwrotnej ma dość dobrze określone reguły i może mieć duże szanse powodzenia. Mimo to, należy pamiętać, że zarówno wykorzystanie sensorów wewnątrz badanego obiektu napotyka na ograniczenia techniczne (odpowiednio małe i odporne sensory) i ekonomiczne. W praktyce, wiele stwierdzeń ma charakter hipotez przeprowadzonych nie wprost,a każda zastosowana metoda analityczna posiada własne ograniczenia i wady,mogące spowodować błąd. Wspomniany przykład problemu z odtworzeniem przez Chiny silników lotniczych z Rosji prawdopodobnie nie wynika głównie z użytych stopów (to rozwiązania zachodnie koncentrują się na lepszych stopach i materiałach w lotnictwie),lecz na braku dostatecznie precyzyjnej bazy przemysłowej i mierniczej, oraz wynikają z braku dostatecznego zrozumienia fizycznych zasad działania takich silników (brak dostatecznej kwalifikacji i wiedzy kadr) ,co wobec braku dostatecznej liczby sensorów wewnątrz działającego silnika utrudniać może zrozumienie koniecznych szczegółów i w konsekwencji wymaga zastosowania metody prób i błędów. W praktyce produkcyjnej zabezpieczania koncepcji produktu, stosunkowo niewiele stoi na przeszkodzie wprowadzania celowych „udziwnień” procesu produkcyjnego jak i swego rodzaju mechanizmów samozniszczenia w niektórych mechanizmach czy układach elektronicznych. W pewnych warunkach możliwe jest też dobranie specyficznej technologii produkcyjnej przez specjalistów,celem utrudnienia reversingu i ewentualnego stworzenia rozwiązania bliskiego duplikatowi. Dla przykładu spotkałem się ostatnio z problemem, który rozwiązywał mój ojciec – z wykształcenia ślusarz-mechanik, w praktyce – mechanik hobbysta. Pewien element samochodowy był bardzo kosztowny (a producent nie wytwarza części zamiennych),a żeby go naprawić trzeba było wykonać pewną „kostkę” z odpowiednio rozmieszczonymi otworami.Cały problem polegał jednak na tym,ze położenie tych otworów nie było jakoś symetryczne (kiedyś było to pewnie zabezpieczenie chroniące właśnie przed mechanikami-hobbystami i nie autoryzowanymi serwisami,aby wymienić całe urządzenie a nie jego część), stąd wykonanie pomiarów ich położenia było w praktyce bardzo trudne bez dokonania wielu pomiarów (uszkodzony oryginał bynajmniej nie był prostokątną płytą) – mimo braku konieczności stosowania wyrafinowanych tolerancji (gdyby jednak było trzeba sprawa wyglądałaby inaczej). Ale mojemu ojcu udało się to obejść (inaczej bym o tym nie pisał). Jak ? Wystarczy pomyśleć, do czego można wykorzystać dostatecznie cienką tekturową kartkę. 😀 Jednak kto nie wpadnie na pomysł obejścia danego rozwiązania, nie zrobi tego i tyle. Większość ludzi nie pracuje z prymitywnym sprzętem, większość ludzi nie potrzebuje być osobą pomysłową – lub wręcz nie jest. W dzisiejszych czasach można zastosować naprawdę skomplikowane rozwiązania przeciwdziałające inżynierii odwrotnej produktu. Trzeba jednak wiedzieć jak to zrobić… Przejdźmy do kwestii informatycznych. W informatyce reversing dotyczy głównie oprogramowania lub jego fragmentów – czy to zapisanego na dysku, czy to funkcjonującego w pamięci komputera. Zarówno środki jak i stosowane odpowiedzi są tutaj bardziej zaawansowane – lecz tu również ich skuteczność bywa różna. Jeśli chodzi o analizę kodu stosowna jest:

  • Disasemblacja kodu – czyli sprowadzenie kodu do instrukcji najbliższego procesorowi języka jakim jest asembler
  • Dekompilacja – czyli próba sprowadzenia kodu do języka wysokiego poziomu.

Pamiętać należy o fakcie, że niektóre kompilatory są stosunkowo uniwersalne – jak GCC i mogą być wykorzystane dla wielu architektur, jak i mogą być przystosowane do konkretnej architektury procesora, tak jak kompilatory Intela. Przekłada się to nie tylko na szybkość pracy kodu na danej architekturze procesora,ale też na nieco inny kod danego asemblera. Sama disasemblacja wymaga zatem znajomości cech charakterystycznych dla danego kompilatora, oraz procesora, oraz zrozumienia instrukcji asemblera. Konieczna jest też stosunkowo duża wyobraźnia,ponieważ stosunkowo wiele instrukcji asemblera przekłada się na pojedynczą instrukcję języka wysokiego poziomu. Problem dekompilacji to problem sprowadzenia kodu z powrotem do poziomu języka wysokiego poziomu. Zależnie od tego,czy język jest:

  • kompilowany do kodu binarnego jak C czy C++
  • sprowadzany do interpretowalnego pseudokodu jak Java czy C# (MSIL / .NET)

Pseudokod jest stosunkowo łatwiejszy do dekompilacji, ze względu na pozostawienie szeregu tagów w kodzie (możliwe do usunięcia np. podczas obfuskacji) jak i na bardziej „wysokopoziomowy” jego charakter, natomiast kwestia dekompilacji kodu binarnego napotyka na większe przeszkody i zazwyczaj tego rodzaju kod jest dużo mniej zrozumiały. Jako zabezpieczenia przed tego typu rozwiązaniami jak dekompilacja i disasemblacja stosuje się:

  • Szyfrowanie kodu (szczególnie różnego rodzaju wirusy – najbardziej prymitywne rozwiązania wykorzystują do szyfrowania operację XOR)
  • Obfuskacja („zaciemnianie”) celem skomplikowania kodu dla:
    • programisty (np. rozrzucenie operacji po kodzie)
    • dekompilatora (wprowadzenie nie obsługiwanych przez dekompilator instrukcji)
  • Unieszkodliwienie disasemblera (z reguły wymaga jednak znajomości stosowanego środowiska i dostosowania do niego, polega na wprowadzeniu instrukcji z którymi program tego typu sobie nie poradzi,jako przykład podaje się instrukcję GOTO w pseudokodzie języka Java)

Jednak również przeciwko tego typu rozwiązaniom istnieją odpowiednie rozwiązania i narzędzia programistyczne służące do deobfuskacji – dostępne np. [tutaj] Jeśli chodzi o określenie funkcjonalności konieczne jest przeprowadzenie testów z operatorem,lub testów zautomatyzowanych mających określić funkcjonowanie aplikacji. Specjalną kategorię takich testów są testy przeprowadzane na wirusach. Stosunkowo bezpieczną metodą przeprowadzania takiego testu jest wirtualizacja. Znane są jednak również metody na wykrycie środowiska wirtualizacji przez wirusa – a tym samym znaczne utrudnienie reversingu. Zdecydowanie najgorsza sytuacja jest jeśli chodzi o ślady procesu produkcji aplikacji,rozpoznania wymaganych funkcjonalności i rozpoznanie braków funkcjonalności (szczególnie w systemach bezpieczeństwa). Niemal niemal niemożliwe jest określenie oryginalnego środowiska testowego i specyfikacji klienta. Osobiście nie uważam,że zawarłem w tym artykule bardzo dużo informacji mimo jego długości. Jest to jak zwykle cała dziedzina wiedzy,której można się uczyć przez lata – i do której możliwe,że potrzebny jest – podobnie jak w przypadku tworzenia wynalazków – talent.

Piezoelektryki – jasno i w miarę zwięźle.

Znamy je już ponad stulecie,a mimo to nie każdy je u nas kojarzy. Wielokrotnie wspominane na tym blogu piezoelektryki odgrywają ogromną rolę w przekształcaniu energii elektrycznej w zachowanie mechaniczne i odwrotnie bez konieczności użycia np. odrębnego silnika (oczywiście nie uważam,że należy silniki samochodowe zastąpić piezoelektrykami,bo raczej nie byłoby to wydajne w takiej skali – ale w małych skalach to co innego). A mimo to są tak słabo kojarzone…

Jeśli chodzi o Wikipedię,to zjawisko piezoelektryczne i odwrotne zjawisko piezoelektryczne, znane jako elektrostrykcja są tam dobrze opisane, tak samo jak podstawowe informacje dotyczące piezoelektryków,oraz same piezoelektryki są tam co prawda dobrze opisane.Oczywiście lepiej w wersji anglojęzycznej. No ale można lepiej i bardziej treściwie:

O co chodzi ? Kto zna grekę rozumie,że określenie piezo pochodzi z tego języka od ciśnienia.

Ciśnienie<->Elektryczność. Cała natura zjawiska w jednym słowie.Coś pięknego.

Faktycznie, w istocie:

Piezoelektryczność polega na pojawieniu się ładunku elektrycznego pod wpływem nacisku na materiał (odkształcenia w zakresie sprężystym),a zjawisko elektrostrykcji – na zmianie kształtu pod wpływem działania prądu elektrycznego jak na rysunku. Całość zjawiska powstawania ładunku można też streścić do  poniższego obrazka z Wikipedii:

CC, Wikipedia.de, user: Degreen
Strzałka zielona – naprężenie, pomarańczowa – wygenerowany ładunek.

Prawda że proste i piękne zjawisko ?

Zjawisko to, jest oczywiście stosunkowo od dawna znane, ponieważ odkryto je już w XIX wieku – zrobili to w 1880 roku bracia Curie (tak, jeden z nich to ten,co potem poślubił naszą noblistkę – Marię)

Jeśli chodzi o jego naturę – występuje ono w szeregach substancji – aczkolwiek szczególnie często w przypadku kryształów o strukturze perowskitu, pod względem „teoretycznym”-krystalograficznym można powiedzieć, że występują w dość specyficznych grupach krystalograficznych określanych jako non-centrosymetryczne polarne.

Z typowych ceramik o strukturze perowskitu wymienić można chociażby:

  • BaTiO3
  • PaTiO3
  • Pa(Ti,Zr)O3

Zjawisko nie ogranicza się zresztą do specyficznych ceramik,ale i występuje w polimerach itd. Duża część polimerów stosowanych na piezoelektryki (np. PVDF) wymaga poddania rozciąganiu w procesie produkcyjnym, wyjątkiem jest jednak kopolimer difluorku winilidenu i trifluorku etylenu.

Zastosowań jest jak zwykle mnóstwo – od prostego generowania ładunków (a choćby piezoelektryk w podeszwach butów 🙂 – niby dziwne,a to skuteczny sposób na „przenośną ładowarkę”), czy odzyskiwania energii,poprzez przenoszenie drgań czy wytłumianie drgań, kontrola wrzeciona dysku twardego, a nawet kontrola ułożenia ostrza śmigła helikoptera (mała zmiana kąta,ale duży wpływ na sterowność). Najciekawszym jednak zastosowaniem jest ultrasonografia oraz wykorzystanie głowicy ultradźwiękowej w badaniach nieniszczących – w defektoskopii ultradźwiękowej.[Przykładowy materiał dla studentów PG lub AGH – można poczytać]. Z tego co wiem głowice – nawet te „ceramiczne” są w istocie chyba raczej kompozytami o osnowie ceramicznej zawierającymi polimery piezoelektryczne też. To podobno poprawia wydajność tych głowic.

CC BY-SA 2.5 Wikipedia - user: Drickey

Piezoelektryki wreszcie, pozwalają na dokonanie szeregu pomiarów w akcelerometrach i urządzeniach typu MEMS, o których krótko wstępnie wspomniałem. Warto więc kojarzyć efekt piezoelektryczny i piezoelektryki. A w każdym razie – nie zaszkodzi.

Nauka a walka z terroryzmem – przykłady

W związku z ostatnimi zamachami terrorystycznymi we Francji pomyślałem,że na czasie będzie krótki artykuł o sposobach zwalczania zagrożenia terrorystycznego przy użyciu nowoczesnych środków technicznych. Rzecz jasna, dużo większą wiedzę mają specjaliści – antyterroryści, z racji wykonywanego zawodu. No ale.Nie można mieć wszystkiego.

Zacznijmy od klasycznych zabezpieczeń przeciwko bombom,szczególnie na lotniskach. Podstawowym rozwiązaniem są bramki,stosowane w celu wykrycia urządzeń metalowych. Ich zasada działania jest podobna jak zasada działania wykrywacza metalu – jednak, jak podaje choćby polskojęzyczna Wikipedia, lotniskowe detektory metalu często mogą nie wykryć małych pistoletów,ze względu na świadomą kalibrację w celu ograniczenia niepotrzebnych alarmów.Jednocześnie zaś rozwiązanie to – jak wszystkie wysokie pola magnetyczne – jest potencjalnie niebezpieczne dla osób z rozrusznikiem serca, które mogą mieć już problemy.Co prawda niektórzy pracownicy obsługi lotniska twierdzą, że nie ma tu aż takiego zagrożenia ale… Zdecydowanie zagrożone są osoby z urządzeniami mierzącymi EKG metodą Hotlera,dla których może to stanowić zagrożenie życia.

Kolejnym sposobem jest „prześwietlenie” zawartości bagażu często przy pomocy promieniowania X, które jednak ocenia się generalnie jako nieszkodliwe dla układów elektronicznych – gorzej jednak np. z czułymi kliszami fotograficznymi.

W przypadku ludzi nowszym rozwiązaniem może to być np. promieniowanie mikrofalowe pochodzące ze skanera tetrahercowego pracującego na falach milimetrowych.[Wiki: Ang]. Przykładowe niewielkie urządzenie pasywne tego typu (o ile dobrze pamiętam z telewizji w Australii coś takiego chyba służy do sprawdzania np. wwożonej żywności) można zobaczyć na poniższym obrazku:

Rozmaite urządzenia tego typu umożliwiają wgląd w zawartość bagażu oraz pod ubranie. Urządzenia aktywne,to natomiast tego rodzaju bramki:

Oczywiście, klasycznym dzisiaj narzędziem do wykrywania podejrzanych substancji chemicznych wciąż jest pies. Tym niemniej coraz powszechniejsze jest jednoczesne stosowanie sensorów chemicznych wykrywających opary materiałów wybuchowych i np. technik spektroskopowych będących wariacją spektroskopii Ramana (spektroskopia CARS).Tym niemniej – wiem,że istnieją np. substancje wybuchowe bardzo trudne w wykryciu jak PETN, a przy użyciu produktów powszechnie dostępnych w sklepach wolnocłowych terroryści mogą wykonać broń, o czym wspomina niebezpiecznik i strona Evana Bootha. Pełne bezpieczeństwo jest zatem oczywiście niemożliwe, pytanie jakie sobie zadają osoby które chcą zapobiegać zagrożeniu terrorystycznemu powinno więc brzmieć „jak zapewnić większe bezpieczeństwo” np. od materiałów wybuchowych i innych niebezpiecznych substancji.

Niewątpliwie całkiem dobrym sposobem są rozwiązania związane ze „sztucznym węchem” i omawianymi już urządzeniami podobnymi, do omawianych już urządzeń typu lab on a chip ,oraz klasyczne,obecne już dziś sensory chemiczne. Być może nie wykryją one takich substancji jak PETN,ale mogą wykryć tani materiał wybuchowy zastosowany choćby przez takiego Andersa Brevika i zamachowca z Oklahoma City. W Polsce podobno planował go użyć Dr Brunon Kwiecień aresztowany przez ABW pod zarzutem próby organizowania ataku na sejm. Materiał ten to ANFO, czyli mieszanina Saletry z olejem napędowym,gdzie na saletrę przypada jakieś 3-6% oleju napędowego. Jest to niewątpliwie najtańszy materiał wybuchowy stosowany przez współczesnych terrorystów. Współcześnie jednak, do saletry dodawać można podobno odpowiednie inhibitory zwłaszcza związki takie jak typu FeSO4 i Fe2[SO4]3, które uniemożliwiają wybuch. Prawdopodobnie „zanieczyszczenia” te można jakoś usunąć. Zresztą akurat te sole żelaza i kwasu siarkowego nie są korzystne dla wszystkich gleb no i więcej kosztują, jest to też stosunkowo nowe rozwiązanie. Co szczególnie istotne, dzięki upowszechnieniu takich urządzeń, możliwe byłoby też wykrycie zagrożeń biologicznych związanych z bioterroryzmem. Po 11 września 2001 roku doszło bowiem do incydentów z przesyłkami zawierającymi sproszkowane bakterie wąglika, znane są też przypadku prób wykorzystania broni chemicznej przez japońską sektę „Aum Shinrikyo”. Co jeszcze ważniejsze, wykrycie powszechnego w przypadku współcześnie stosowanej broni i amunicji prochu strzelniczego powinno skutecznie ograniczyć możliwość niepostrzeżonego poruszania się z bronią palną potencjalnych zamachowców. Kluczowe jest jednak zwrócenie uwagi na problem sygnałów typu „false positive” i związanych z tym nieprzyjemności, jakie mogą spotkać zwykłych, nieuzbrojonych obywateli. Jak na razie obecne urządzenia najprawdopodobniej nie umożliwiają jeszcze dokładnego „widzenia przez ściany” – trwają jednak badania nad tym rozwiązaniem w technologii tetrahercowej. Powszechne są jednak (choć kosztowne) już dziś celowniki termowizyjne, dzięki którym można obserwować cel już dziś, przez mgłę lub dym (a dym może np. pochodzić z granatu dymnego). Ponadto do obserwacji mogą posłużyć wprowadzane przez szczelinę mikrokamery (na kablu elektronicznym lub światłowodowym) – stosowane również przykładowo w defektoskopii.

Oczywiście w przypadku przeciwdziałania terroryzmowi, wyszkolonym agentom pomóc może również znajomość technik kryminalistycznych i korzystanie z klasycznych urządzeń podsłuchowych. Pomimo faktu,że w Polsce nie stosuje się często zaawansowanych typowo zachodnich technik kryminalistycznych (koszty,koszty !) również te techniki są do dyspozycji przeciętnego agenta służb specjalnych. Wiele takich technik w pewnej formie można poznać choćby w serialach takich jak seria CSI, wielu rzeczy oficerowie śledczy mogą nauczyć się choćby z podręcznika „Kryminalistyka” autorstwa prof. Brunona Hołysta.

Jeśli chodzi o informatyczne technologie inwigilacji, to nie bez powodu o współpracę ze służbami oskarżani są giganci, tacy jak np. Facebook czy Google+ oraz giganci branż elektronicznych jak Microsoft. NSA i FBI swego czasu wydawały krótkie podręczniki m.in. o prowadzeniu inwigilacji w portalach społecznościowych. O tym wie wiele osób, zresztą, nie zawsze dane oskarżanych o przestępstwa są ujawniane przez gigantów. Mniej powszechna jest jednak świadomość coraz istotniejszej roli w inwigilacji obywateli, jakie stanowią i stanowić będą m.in. drony obserwacyjne. Niestety zignorowanie przez nie będzie dużo trudniejsze,niż wymknięcie się portalom społecznościowym,które przecież na podstawie cudzej książki adresowej nie tylko zdobyć mogą imię i nazwisko adresata,ale potrafią naprzykrzać się z „zaproszeniami”. Przechwytywanie ruchu sieciowego czy analiza zawartości przechwyconych dysków twardych często pozwala często na wykrycie u podejrzanych zaszyfrowanej zawartości bądź danych mogących mieć potencjalne steganograficzne dodatki wykorzystując odpowiednie oprogramowanie analityczne. Każda aktywność w internecie pozostawia też sporo śladów które mogą być monitorowane. Ponadto komputery kwantowe w posiadaniu władz, mogą skutecznie położyć kres bezpieczeństwu niektórych dotychczas stosowanych szyfrów, o czym już wspominałem. Również telefonia komórkowa jest wspaniałym narzędziem inwigilacji – i jednorazowe korzystanie z telefonów na kartę nie jest tu rozwiązaniem choćby ze względu na numer IMEI. Zapisywanie położenia telefonu komórkowego względem anten, czy możliwość zastosowania choćby IMSI Catchera [patrz niebezpiecznik] to podstawowe możliwości (a dla osoby inwigilowanej – wady) telefonii komórkowej, które należy wymienić. W przypadku smartfonów dochodzą np. dane exif zdjęć i geolokalizacja (jak się jej nie wyłączy). Dane geolokalizacyjne zdjęcia wykorzystali choćby w 2007 roku Irakijczycy (czyli bojownicy/terroryści), którzy korzystając ze wrzuconych na FB zdjęć zniszczyli 4 helikoptery AH-64 (Apache) warte w sumie 80 mld. dolarów. Nie można też zapominać o koniach trojańskich – zarówno klasycznych wirusach jak i rządowych narzędziach takich jak RCS Galileo. Współcześnie z ich pomocą atakować można zarówno telefony komórkowe jak i komputery. Możliwości jest wiele, a wprawny czytelnik może być nawet lepiej poinformowany niż ja w tych kwestiach,dlatego też nie będę opisywał problemu szerzej.

Dość istotne są również publiczne i prywatne systemy monitoringu. Współcześnie znane są bardzo wydajne narzędzia stosowane do rozpoznawania twarzy na podstawie pomiarów różnych jej parametrów, znane są też inne biometryczne mechanizmy rozpoznawania osób np. poprzez analizę chodu. Jeśli chodzi o systemy rozpoznawania twarzy – niektóre są nawet OpenSource – np. dostępny na serwisie Github CCV , czy OpenCV. (kod źródłowy OpenCV tutaj). Część z tych systemów (przynajmniej te tańsze),można jednak stosunkowo łatwo „oślepić”.

Słabością systemu jest jednak (jak zwykle) człowiek i jego metody kojarzenia. W przypadku zamachowców z Paryża, braci Kouachi jeden z napastników był znany z rekrutowania dżihadystów dla terrorystów tzw. „państwa islamskiego”, ba – był skazany za to przez sąd. Mimo to nie prowadzono w jego przypadku stałej i dokładnej obserwacji – choć niewątpliwie, nawet gdyby nie dokonał zamachu byłaby ona niezmiernie pouczająca dla Francuskich specsłużb.

Jest zatem zwyczajnie głupie (no chyba, że założymy przestępczy charakter służb i funkcjonariuszy państwowych oraz ich złą wolę – co w ich oczach zresztą, uczyniłoby nas „groźnymi ekstremistami”), że służby w odpowiedzi na takie zdarzenie chcą inwigilować wszystkich obywateli, a politycy twierdzą,że Europie potrzebny jest „Europejski Patriot Act”. Prawo do skorzystania ze wszystkich technologii bez nakazu sądu wobec każdego jest polem do nadużyć i jest bezzasadne, bo skoro służby nie potrafią skorzystać z posiadanych już praw, przeciwko osobom które w sposób jasny są ogniwami organizacji jawnie terrorystycznej – to albo nie posiadają na tyle kompetentnych ludzi by to zrobić, albo też nie zależy im na rzeczywistym zwalczeniu terroryzmu. Które zresztą, może być realizowane tylko przez profilaktykę (monitorowanie krytycznych zdarzeń i usuwanie przyczyn terroryzmu) i intensywną inwigilację już istniejących organizacji terrorystycznych sprawiających realne zagrożenie. Jest to tym bardziej wyraźne,że zamachowiec ze sklepu koszernego nawet nie odłożył poprawnie telefonu, co sugeruje,że przynajmniej wykonawcy zamachów nader często mogą być wręcz tzw. „osobami elektronicznie wykluczonymi”,a jego nieznajomość technologii ułatwiła przeprowadzenie szturmu. Również bracia Kouachi potrzebowali zmuszenia jednej z pracownic do otwarcia im przejścia do redakcji Charlie Hebdo. Nie było w tym wykorzystania żadnej technologii – wręcz przeciwnie. Monitorowanie przepływu informacji i ścisły monitoring stanu posiadania obywateli ma natomiast inny, niebezpieczny cel. Jest to celowe – lub nie – działanie, które skutkować może tylko obaleniem porządku demokratycznego przez organa rządowe, które w teorii tego porządku miały właśnie strzec.

I to też byłaby forma terroryzmu / zamachu stanu, tyle że w wykonaniu osób które przez pewien czas pracowały w organach państwowych. Pewną formę takiej niewłaściwej, wręcz terrorystycznej działalności służb (i oporu wobec takich działań) opisał Doctorow Cory w swojej książce „Mały Brat” (licencja CC). Problem wiec w istocie, nie ogranicza się wcale do techniki – lecz również jest związany z osobami ją stosującymi i nader ważnymi kwestiami socjologicznymi,psychologicznymi itd. Nie jest to jednak już problem który powinien być rozpatrywany na tym blogu w sposób dokładny.

Systemy MEMS – wstęp

Systemy mikroelektromechaniczne znane w skrócie jako MEMS otaczają nas,choć nie zawsze o tym wiemy. Zarówno nowoczesne sensory jak i aktuatory. (siłowniki/napędy mechanizmów/… – nie do końca potrafię tu dokonać przekładu tego terminu). Urządzenia tego typu zawierały np. twarde dyski (choćby sensor upadku). Jest to stosunkowo „nowa” technologia,ale coraz powszechniejsza w elektronice,dlatego też warto się z nią zapoznać. Cechą charakterystyczną układów tego typu jest to,że przynajmniej jeden z wymiarów urządzenia ma rozmiary w mikroskali ( czyli10-6 metra), co sprawia,że często podlegać mogą zjawiskom fizyki zjawisk mezoskopowych [Anglojęzyczna wikipedia]. Należy również zaznaczyć,że ich kompleksowo brzmiąca nazwa nie jest przypadkiem. Bardzo często tego typu małe urządzenia pełnią równocześnie rolę sensora, aktuatora, układu elektronicznego itd. Streszczając – można powiedzieć, że są one niekiedy nawet połączeniem technologii mikroelektroniki, mikrosensorów i mikroaktuatorów w jednym maleńkim urządzeniu.

Zastosowania są bardzo liczne. Od dysków twardych i samochodów po pomiary chemiczne, żyroskopy, produkcja energii przy wykorzystaniu piezoelektryka, a nawet pomiary biologiczne.

Wiele podstawowych informacji o systemach MEMS można poznać na wikipedii [PL] [Ang] oraz w poniższym filmie:

Ponieważ te materiały oraz artykuł Pana Marcina Karbowniczka na stronie czasopisma „Elektronika Praktyczna” tłumaczy bardzo dużo, nie ma sensu tytułem wstępu tak się rozpisywać (ok.wiem.Trochę w tym i mojego „lenistwa” czy raczej braku czasu dzisiaj. Większy artykuł umieszczę następnym razem, przyrzekam )

Polecam zainteresowanym czytelnikom również bardzo rozbudowaną anglojęzyczną stronę, dotyczącą tej rodziny układów:

http://www.memsnet.org/news/

Pozdrawiam.