Zaciemnione hasła w plikach konfiguracyjnych Websphere Application Server
Ostatnio musiałem ręcznie edytować pliki konfiguracyjne Websphere Application Server. Chodziło konkretnie o security.xml dla serwera. Chciałem podmienić keystore z certyfikatem serwera ponieważ został wgrany wadliwy certyfikat i nawet konsola administracyjna nie działała. Żeby to zrobić trzeba wpisać hasło do keystore. Nie jest to jednak taka prosta sprawa - hasła w security.xml są pozaciemniane. Read more
Polskie znaczki na Java console
Wypisywanie polskich znaków (przy pomocy System.out) z programu napisanego w Javie uruchomionego z wiersza poleceń może przyprawić trochę kłopotów. Za globalne ustawienia domyślnego kodowania znaków odpowiada własność systemowa file.encoding ale ustawianie jej podczas działania programu nie wpływa na konsolę. Read more
Java console na i5/OS (iSeries czyli AS/400)
Miałem ostatnio styczność z serwerami iSeries. Serwery iSeries są średnimi serwerami firmy IBM opartymi obecnie na procesorach POWER™. Kiedyś (od 1988 roku) linia ta nazywała się AS400 i do dzisiaj często ta nazwa jest używana jako synonim. Pełna nazwa tej linii to IBM System i. Litera i w nazwie pochodzi od integration. Pracują przeważnie pod kontrolą systemu i5/OS. Serwery te ze względu na wysoki poziom bezpieczeństwa i niezawodności są często stosowane przez instytucje finansowe.
Przedstawię tutaj uruchamianie konsolowych programów Javy w trybie interaktywnym. Jest to dosyć ciekawe bo ten system operacyjny nie jest podobny ani do Windowsa ani do UNIXa. Plik class utworzyłem i skompilowałem po stronie serwera po to, żeby pokazać przykład użycia podstawowych komend systemu (celowo starałem się nie używać unixopodobnego shella QSH). Read more
Google hack na home.pl
Swego czasu redaktorzy portalu hack.pl znaleźli lukę polegającą na tym, że metodą http brute force można było dostać się do stron statystyk serwisów korzystających z serwerów home.pl Zrobiła się z tego niemała awantura. Nawet była sprawa w prokuraturze bo włamali się przy jej pomocy na stronkę MEN. Tutaj jest opis całej historii wraz z sposobem wykorzystania luki: krytyczna luka w home.pl
Obserwowałem te relacje uważnie zwłaszcza, że wtedy miałem konto na home.pl. “Zabezpieczenie” luki przez home.pl jest żenujące. Zmienili adresy z statsXXX na statsMD5. Najprawdopodobniej niby losowy ciąg jest sumą MD5 z jakiś danych użytkownika i być może poprzedniego xxx (z czego nie udało mi się jeszcze ustalić, ale może
jest to do ustalenia). Czyli na przykład statsff7d26270065e8a3c0d3e2a11face882.
Ale problem jak takie urle znaleźć. Sposób jest banalny. Read more
Pobieranie typu klucza z pustej EnumMap
Klasa java.util.EnumMap jest bardzo wydajną implementacją java.util.Map dla wyliczeń. Jest wydajna dlatego, że hasze dla kluczy są wartościami porządkowymi instancji danego wyliczenia. Dokładniej jej implementacja przechowuje wartości w tablicy obiektów a indeksy to wartości porządkowe wyliczeń. W metodzie get możemy znaleźć taki kod:
vals[((Enum)key).ordinal()]
służący do pobierania wartości z tablicy vals dla klucza key. Żeby miało to sens (aby uniknąć powtarzania się kluczy) jeden obiekt typu EnumMap musi mieć klucze będące obiektami tego samego wyliczenia. Mechanizm typów generycznych nie wystarczy do zapamiętania typu klucza bo informacje o typach generycznych są wymazywane podczas kompilacji. Read more
Historia obejścia zabezpieczeń HD-DVD (AACS)
Wraz z wprowadzeniem standardów HD-DVD i Blu-Ray został wprowadzony nowy sposób zabezpieczania zawartości na krążkach. Wielkie koncerny wydały miliony dolarów na jego wdrożenie a prace nad nim trwały wiele miesięcy. Mowa o AACS (Advanced Access Content System) należący do grupy systemów DRM (Digital Rights Management).
Zgodnie z jego specyfikacją odtwarzanie danych z płyt korzystających z AACS miało być możliwe tylko przy pomocy sprzętu i oprogramowania wyprodukowanego przez producenta, który podpisał umowę licencyjna z twórcami standardu. Standard przewiduje uniemożliwienie odtwarzania nowych płyt przez urządzenia, które zostałyby skompromitowane. Daje również producentom płyty możliwość zablokowania jej odtwarzania w przypadku, gdyby była masowo klonowana. Read more
Scena wyłączania elektrowni przez Trinity w Matrix
Pod koniec listopada zeszłego roku w PC World Computer (oraz także w gazeta.pl) ukazał się artykuł o największych komputerowych nonsensach w filmach. Artykuł był na raczej niskim poziomie. Pomijając dziwne stwierdzania nim zawarte zbulwersowała mnie jedna rzecz. Autor próbował napiętnować scenę hackowania elektrowni przez Trinity w Matrix Reloaded. Mało ważne jest to, że autor nie bardzo rozumie co się działo w tej scenie pisząc między innym, że W “Matrix: Reaktywacja” Trinity włamuje się do komputera elektrowni za pomocą podobnie prostego ciągu “Z1ON0101″ myśląc, że zgadła hasło.
Moim zdaniem wspomniana scena jest jedną z nielicznych scen w filmach opisującą realny i dosyć spójny scenariusz włamania. Read more
JPA w NetBeans - tutorial
Java Persistence API (JPA) jako część technologii EJB 3.0 upraszcza zapis danych obiektowych w relacyjnym modelu danych. Trwały zapis modelu aplikacji jest łatwiejszy niż przy pomocy entity beans w EJB 2.1. Używanie entity beans nie było zbyt wygodne i programiści bardzo często w zamian stosowali frameworki takie jak Hibernate, Oracle TopLink, i Java Data Objects (JDO). JPA bazuje na pomysłach grup pracujących nad tymi frameworkami.
Ten post umieściłem w kategorii Java EE. JPA jest częścią specyfikacji Enterprise JavaBeans 3.0 ale nie znaczy to, że nie można go użyć w zwykłej aplikacji SE. Opiszę tutaj właśnie taki przykład. Użyję do tego NetBeans IDE 6 wraz z biblioteką TopLink Essentials, która jest implementacją JPA wykonaną przez Oracle. Read more
JAX-WS vs SOAP:HEADER
Do uwierzytelniania w webserwisach często stosowało się HTTP Authentication (RFC 2617). Jest to sposób przesyłania danych uzytkownika uzależniony od protokołu (w nagłówko HTTP). We współczesnych aplikacjach wykorzystujących usługi sieciowe jest to niedopuszczalne. Wiadomość SOAP może na przykład iść od konsumenta usługi poprzez firewall XML do ESB i wtedy do kolejki komunikatów, z niej do kolejnego ESB aby być wkońcu skierowana do serwera dostawcy usług. W takiej sytuacji przesyłanie danych uwierzytelniających w nagłówku zupełnie się nie sprawdza nie mówiąc już o niższych warstwach jak SSL (RFC 2246). Stostuje się do tego przesyłanie danych związanych z bezpieczeństwem w nagłówku SOAP. Istnieje standard to normalizujący (WS-Security) ale jest stosunkowo nowy (1.0 marzec 2004, 1.1 luty 2006) i wiele usług korzysta z własnych rozwiązań. Read more