OpenTTD | Sugestie dla Programistów Grafiki 32bpp\nSugestie dla Programistów Grafiki 32bpp\nZdecydowanie zaleca się (czytaj: opcjonalnie! ), Aby każdy, kto opracowuje dowolną grafikę dla OpenTTD w 32 bitach, postępował zgodnie z tymi wytycznymi, aby zapewnić, że ich praca jest najwyższej jakości, tak łatwa dla gracza, jak to możliwe. i jak najłatwiej jest kontynuować, gdy artysta zniknie ze społeczności.\nJeśli opracowujesz elementy dla 32bit base set conversion project , istnieją bardziej rygorystyczne (i obowiązkowe) reguły, o których możesz przeczytać.\n1 Poziomy powiększenia\n2 Wydawanie prac\n2.1 Standardowy format tar\n2.2 Repozytorium plików\nWszystkie opracowane grafiki powinny zawierać 'sprites' na poziomie normalnym, zi2 i zi4. Kiedyś istniały poziomy “extra zoom” i “standard zoom” - dziś, jeśli chodzi o projekt, wszystkie są standardowymi poziomami powiększenia.\nPrzeskalowanie grafiki w locie jest kosztowne pod względem wydajności, a pod względem wynikowej jakości grafiki automatyczne skalowanie jest najgorszą opcją ze wszystkich. Ponadto, aby zapobiec pogorszeniu jakości obrazu, zaleca się, aby wszystkie 'sprites' były przygotowane i renderowane osobno dla wszystkich poziomów powiększenia. Ma to na celu uniknięcie niechlujnego i/lub zajętego wyglądu przy niższych poziomach powiększenia.\nEtap przygotowawczy może obejmować pracę LOD (poziom szczegółowości), zmiany ustawień oświetlenia lub cieniowania itp. Można wykonać mniej więcej ręczne przeskalowanie w oprogramowaniu do edycji bitmap, ale należy podjąć dodatkowe środki, aby uniknąć pogorszenia jakości. Zwykle należy unikać przeskalowywania bitmap, ponieważ może to bardzo łatwo doprowadzić do złej jakości grafiki.\nZ technicznego punktu widzenia możliwe jest wydawanie wersji jako .grfs, zgodnie z zamierzeniami projektu. Jesteśmy w trakcie dokumentowania tej opcji. W międzyczasie możesz użyć standardowego formatu tar.\nStandardowy format tar\nObecnie 'sprites' powinny być wydane w naszym standardowym formacie tar.\nStandardowy format tar dla wydań graficznych 32-bitowych to zwykły plik tarball, pierwotnie utworzony przez GeekToo , ze znormalizowanym drzewem treści. Użycie tego formatu zapewnia, że grafika będzie działała przynajmniej w pewnym stopniu we wszystkich konfiguracjach OpenTTD (zestaw podstawowy DOS, zestaw podstawowy Windows, zestaw podstawowy OpenGFX, niepakowany (unpatched) , z łatką EZ (EZ-patched) ).\nWydawcom mogą, ale nie muszą, towarzyszyć źródła i informacje licencyjne, w zależności od tego, czy są przeznaczone do dystrybucji w grze, czy tylko niezależne NewGRF. W obu przypadkach zalecane jest udostępnienie archiwum tar w 32-bitowym repozytorium plików graficznych z obu źródeł i licencji zgodnej z GPL.\nOpis formatu znajduje się w 32bit standard tar format .\nIstnieje oficjalne repozytorium dla 32-bitowej zawartości graficznej, uruchomionej przez Jupix i na początku 2009 r. Cała zawartość powinna się tam udać, w tym grywalne wydania i ich pliki źródłowe, prace w toku itp. W przypadku normalnego przesyłania 32-bitowej zawartości graficznej do repozytorium jest zalecane, w przypadku elementów zestawu podstawowego jest to obowiązkowe.\nAby uzyskać więcej informacji na temat zasad i użytkowania, przeczytaj 32bit Graphics Development File Repository i 32bit Graphics Development File Repository User Manual .\nStandardowym nośnikiem komunikacji publicznej między twórcami grafiki 32-bitowej a graczami jest forum działające pod adresem tt-forums.net , a dokładniej subforum rozwoju grafiki 32-bitowej OpenTTD.\n32-bitowy wątek programistyczny zestawu podstawowego powinien być wykorzystywany do wydawania, opracowywania i omawiania prac, które mają zostać włączone do wersji 32-bit zestaw podstawowy. Wątek Prace w toku (AKA “wątek Blend”)) będzie używany do wszystkich innych czynności; zakłada się, że elementy opublikowane tam są NewGRF. W kwestiach związanych z organizacją i zarządzaniem istnieje wątek Organizacja projektu. Tworzenie nowych wątków jest zalecane podczas opracowywania zestawów lub rozwiązywania problemów.


7. Przegląd filmowy „Echa Katynia” już w piątek na Zamku Pia\n7. Przegląd filmowy „Echa Katynia” już w...\nErscheinungsdatum: 12 April 2016\n7. Przegląd filmowy „Echa Katynia” już w piątek na Zamku Piastowskim\nJuż 15 kwietnia Katowicki Oddział Instytutu Pamięci Narodowej oraz Zamek Piastowski w Raciborzu po raz kolejny zapraszają na spotkania edukacyjne dla młodzieży oraz wszystkich chętnych mieszkańców powiatu raciborskiego pt. „Echa Katynia”. Poznaj szczegóły!\n10.00 – Rozpoczęcie, krótki wstęp do filmu\n10.15 - 11.20 – Pokaz filmu „Zapora”\nFilm „Zapora” w reżyserii Konrada Starczewskiego, pracownika BEP IPN, jest dokumentem poświęconym majorowi Hieronimowi Dekutowskiemu. Na godzinny obraz składają się przede wszystkim wspomnienia podkomendnych „Zapory”, jego kolegów, przyjaciół i członków rodziny. Dobór tych osób oraz ich wypowiedzi czyni z filmu wartką, dramatyczną opowieść o jednym z najwybitniejszych dowódców partyzanckich Lubelszczyzny – cichociemnego, żołnierza polskiego podziemia niepodległościowego, zamordowanego przez komunistów i skazanego przez nich na wieczną niepamięć.\n11.30 – Wstęp do kolejnego filmu\n11.45 – „Epitafia katyńskie”\n12.20 – Zakończenie


Marta Anna: Alterna - Caviar Anti-Aging - szampon + odżywka\nPostanowiłam, że do czasu kiedy dzieci nie pojawią się na świecie, będę w miarę systematycznie pisać bloga, aby za bardzo nie rozmyślać :) Czas który ostatnio mam chciałabym dobrze wykorzystać i już na pewno nie na przesiadywaniu w przychodniach z powodu bo coś mi się ubzdurało.\nA blog to mój zawsze sprawdzony sposób na odcięcie się i chwilowe zapomnienie :)\nPowracając do tematu, dzisiaj recenzja luksusowej pielęgnacji do włosów.\nKosmetyki firmy Alterna bardzo długo za mną chodziły, byłam szalenie ciakawa, czy drogie kosmetyki do włosów mogą być lepsze od drogeryjnych. A ponieważ od 9 miesięcy nie farbuję włosów - co pozwala zaoszczędzić mi sporą sumę pieniędzy - pozwoliłam kupić sobie coś ekstra w nagrodę za wytrwanie w moim postanowieniu. Wybrałam szampon i odżywkę z lini Caviar Moisture. Kosmetyki kupiłam przez amazon.de.\nIntensywnie nawilżający szampon przeznaczony do pielęgnacji słabych i łamliwych włosów. Zapobiega starzeniu struktury włosów. Zawiera dwa opatentowane kompleksy: Age-Controll Complex połączenie ekstraktu z kawioru, witaminy C i cytokin, odpowiedzialnych za rewitalizację włosów oraz Seasilk - kombinacja silnych ekstraktów z alg morskich, zapewniająca wyjątkowe nawilżenie i pomoc w odbudowie struktury włosów. Polecany dla włosów cienkich, zniszczonych oraz farbowanych. 200ml\nIntensywnie nawilżająca odżywka przeznaczona do pielęgnacji słabych i łamliwych włosów. Zapobiega starzeniu struktury włosów. Zawiera dwa opatentowane kompleksy: Age-Controll Complex połączenie ekstraktu z kawioru, witaminy C i cytokin, odpowiedzialnych za rewitalizację włosów oraz Seasilk - kombinacja silnych ekstraktów z alg morskich, zapewniająca wyjątkowe nawilżenie i pomoc w odbudowie struktury włosów. Polecana dla włosów normalnych, suchych, farbowanych, zniszczonych i kręconych. 200ml\nProdukty marki nie zawierają parabenów, siarczanów, ani ftalanów.\nWygodne, higieniczne opakowanie, przekręcamy nakrętkę nie ściągając jej i przez silikonową końcówkę wydobywa się szampon. Po umyciu stawiam butelkę na "głowie". Jedynie pod koniec, gdy niewiele już zostaje, ciężko jest wydobyć resztki. Aby nie stracić nerwów, warto opakowanie przeciąć w połowie i szpatułką kosmetyczną wydobyć pozostałość szamponu/odżywki.\nKonsystencja gęsta, nie spływa z dłoni, wystarczy niewielka ilość, aby umyć długie włosy. Na początku nie mogłam się przyzywyczaić i za każdym razem nakładałam za dużo - szampon bardzo się pienił i dało się wyraźnie odczuć, że za dużo produktu nakładam. Odżywka skończyła się, a szampon miał zużycie ok 70%.\nDobrze się pieni i cudownie pachnie! Podczas mycia czułam się jak w SPA. Delikatnie ale skutecznie oczyszcza włosy i skórę głowy. Nie wysuszyła, nie podrażniła, ani nie powoduje większego przetłuszczania się - włosy myłam i myję co drugi dzień i tu nic nie uległo zmianie. Po umyciu włosy nie są splątane.\nJeden z lepszych szamponów jakie używałam. Na pewno kupię ponownie.\nMoja ocena - 1minimum -10 max: 10.\nNakładałam na bardzo dobrze odciśnięte z wody włosy. Pachnie jak szampon - cudnie! Jak dla mnie wydajność średnia, starałam się nakładać taką ilość jaka jest zalecana, ale za każdym razem wydawało mi się, że to za mało. Osobiście lubię konkretną ilość i cieżko było mi się odzywczaić. W głowie miałam jednak cenę, która skutecznie mobilizowała mnie do umiarkowanego nakładania - największy minus produktu, żeby stresować się z powodu ilości nakładanej maski:) Dodam, że efekt był taki sam, czy nałożyłam więcej czy mniej.\nPo myciu włosy ładnie się błyszczały, były miękkie w dotyku, lekkie, dobrze się układały i widać było to idealne wygładzenie na całej długości.\nRaczej nie kupię ponownie, ale tylko z powodu moich przyzwyczajeń. Lubię czuć jak włosy są porządnie oblepione maską, a ta do tego celu jest stanowczo za droga.\nMoja ocena - 1minimum -10 max: 7,5.\nProdukty wystarczyły mi na dobre 3 miesiące systematycznego używania. W tym czasie moja pielęgnacja ze względu na ciążę i złe samopoczucie bardzo zubożała, tak więc miałam okazję przekonać się, jak skuteczne są produkty. Całkowice zrezygnowałam w tym czasie z olejowania włosów. Używałam tylko tych dwóch produktów plus serum na końcówki przed suszeniem i niedzielna maska na 0,5h.\nEfekt po 3 miesiącach: kondycja moich włosów nie uległa pogorszeniu mimo, iż bardzo ograniczyłam ilość produktów. Włosy cały czas wyglądały zdrowo, pięknie się błyszczały, były miękkie, niesamowice gładkie na całej długości, żadnych rozdwojonych końcówek.\nPo jakimś czasie do pielęgnacji wprowadziłam dodatkowo odżywkę z Isany - kuracja z olejkiem arganowym klik - ponieważ odniosłam wrażenie, że sam luksus dla moich włosów z czasem przestaje być wystarczający, że włosy potrzebują mimo wszystko urozmaicenia i to nie koniecznie z wysokiej półki. Odżywki stosowałam na zmianę i to było to, co potrzebowały do szczęścia:)\nI to byloby na tyle w temacie. Mam nadzieję, że o czymś nie zapomniałam. W razie czego dopiszę:)\nObecie używam serię z Color Hold+, pożyjemy zobaczymy. Pierwsze wrażenie dobre, ale recenzja po skończeniu opakowań.\nEingestellt von Marta Anna um 12:20\nDolly Cocossino 5/03/2015\nInteresuja mnie od dluzszego czasu szampony tej marki - nie wiem jednak ile one kosztuja, bo jeszcze tak daleko w swoim zainteresowaniu nie doszlam ;) Czytam na razie o nich na roznych blogach. Kiedys mialam szampon nawilzajacy Kanebo, ktory byl dobry, ale tez jakos bez przesady znowu..Hmmm moze sie skusza o ile znajde w jakims sklepie internetowym bo u na tej marki nie widzialam.Pozdrawiam x\nPS. Ciesz sie, ze piszesz na nowym portalu bo na tamtym ciezko mi bylo dodawac komentarze\nAn gie 5/03/2015\nGratuluję ciąży :) Produkty wydają się naprawdę fajne :)\nMarta Anna 5/07/2015\nHunger (For Beauty) 5/06/2015\nchodza za mna te produkty, ale jak na razie nie moge "usprawiedliwic" wydania na nie takiej kasy:PP na pewno kiedys ulegne i kupie :))\nZa mną też długo chodziły i trównież czekałam na odpowieni moment, bo jednak do tanich nie należą, niestety.\nMoże uda ci się trafić na dobrą cenę:)\nzdecydowanie w ich stronę mnie ciągnie, powstrzymuje mnie jedynie fakt połowy litrowej butli Rusk i całej litrowej Redken w łazience ;p\nDiscount Hair Products 7/23/2015


Zobacz wątek - Stokrotkania - moja arkadia cz.3\nStokrotkania - moja arkadia cz.3\nTytuł: Re: Stokrotkania - moja arkadia cz.3\nNapisane: 13 cze 2012, o 18:54\nNa początek pokażę paczuszkę od nuta23, dziękuję za gratiski\nPowiedz mi co to jest to obok grudnika na dole i czy grudniki są takie same czy dwa inne ?\nDzisiaj się zdenerwowałam, że bratki są takie tycie i nie kwitną, poszłam do kwiaciarni i kupiłam turki i werbeny.\nA tak to wygląda, zostawiłam między nimi trochę luki, bo są tam małe bratki jak urosną to będzie w sam raz. ;) A jak nie to coś dokupię.\nPaczucha fajna, życzę szybkich korzonków i nowych listków\nWerbenki śliczne Mam jedną czerwoną ale nie chce rozwinąć kwiatków mimo iż ma sporo pączków\nŚliczne werbeny, czy one pachną?\nNapisane: 13 cze 2012, o 20:42\nWerbenki i aksamitki śliczne, boskie kolorki\nŚliczne kwiatuszki kupiłaś.\nGrudnie są taki same a to obok kupiłam jako _aeschynantus_ specius (chyba tak sie go pisze). Ciszę się, że roślinki się podobają.\nNapisane: 13 cze 2012, o 21:20\nBardzo fajna rabatka kwiatowa przy schodach\nStokrotkaniu, pięknie obsadziłaś tę rabatkę przy schodach. Mnie tez nosi, żeby wyrwać ze skrzyni smagliczkę, która nie kwitnie i wsadzić coś ładnego, no bo tyle pięknych kolorowych kwiatków kusi dookoła. Pewnie wiele nie wydałaś, bo aksamitki i werbeny nie są drogie, a jaki fajny efekt.\nNapisane: 14 cze 2012, o 10:43\na no tak przyszłam wczoraj, pooglądałam, zaśliniłam się i z wrażenia nic nie napisałam\npięknie se poradziłaś z posadzeniem nowości jedyne co mi przyszło do głowy "że też Ci się chciało tam grzebać..." bo mnie leń ogarnia przeokropny ostatnio... wczoraj nosiłam koleusy z kąta w kąt i nosiłam.. i skończyło się, że obcięłam co suche, podcięłam trochę i odstawiłam na miejsce a miało być przesadzanie\nPozdrawiam z dalekiego zachodu... Aga\nNapisane: 14 cze 2012, o 11:31\nŚliczną paczuchę dostałaś od Renatki. Korzonków życzę u nowości. A chęci do grzebania w ziemi to i ja zazdroszczę. Ja z kolei wczoraj miałam maluchy powsadzać do doniczek, bo im już korzenie porosły w wodzie ale z ledwością udało mi się podlać te najbardziej potrzebujące (bo niestety w trakcie obiadu udało mi się zjeść kawałek zęba więc wizyta u dentysty musiała być. ).\nTurki ? pierwszy raz słyszę tę nazwę u nas to aksamitki albo popularnie "smrodluszki" nowości niech zdorwo rosną:)\nNapisane: 14 cze 2012, o 17:47\nPaczka - super\nNowości - też. Uwielbiam werbeny Twoje - w ślicznych kolorach.\nU mnie na aksamitki mówi się "śmierdziuszki"\nNapisane: 14 cze 2012, o 20:02\nSuper kolorowe obrazeczki z kwiatkami\nNapisane: 14 cze 2012, o 20:48\nNiunia1981, baiana, tesia39, justus27, Arkadius121\nKarolina__ coś tam pachną, ale nie intensywnie ;)\nnuta23 dziękuję jeszcze raz, wszystko moczy nóżki, oprócz grudników, które powędrowały do doniczki ;)\nrapunzel za szt. zapłaciłam tylko 1,50 Mój M nawet mnie pochwalił\nmniodkowa, anik jakie tam grzebanie, raz dwa trzy i było po sadzeniu.\ntrzynastka w zależności od regionu, znamy je jako żaczki, bździuszki, śmierdziuszki, turki, byczki, kopciuszki... Zobacz taki skromny kwiatek, a posiada tyle nazw\nDzisiaj dostałam piękną paczuszkę od heliofitki,\nzdradzę, że były to grudniki i nawet dwa fiołki się przypałętały\nJak znajdę czas to pstrykne im grupową fotkę.\nKochana bardzo Ci dziękuję\nNapisane: 14 cze 2012, o 21:50\nTo ja już czekam na pokaz nowości\n[ Posty: 704 ] Idź do strony nr... 1 ... 24, 25, 26, 27, 28, 29, 30 ... 51


| Data: 2012-10-19 17:24 | Kategorie: Security | 7 Komentarze\nCzasem zdarza mi się wystąpić na jakiejś konferencji. Z reguły jest tak, że na każdą taka okazję przygotowuję inna prezentację. Nie jest to zbyt efektywne podejście, ilość czasu poświęcona na przygotowanie prezentacji jest zdecydowanie większa, niż czas, przez który wykorzystuję otrzymany "produkt". By trochę poprawić sytuację, umieszczam treść (oczywiście nie słowo w słowo) prezentacji na blogu. Tym razem jest to prezentacja przygotowana na SecurityBSIDEs Polska (albo Warszawa, jak kto woli).\nPrzykłady podawane w tekście brane są z różnych aplikacji mobilnych, z którymi miałem do czynienia. Nie podaje ich nazw i nie demonstruję konkretnych podatności w konkretnej aplikacji. Raczej staram się dokonać uogólnienia i wykazać ogólne klasy problemów.\nCałość dotyczy jednej z podstawowych funkcji bezpieczeństwa, czyli uwierzytelnienia użytkownika. Czy atakujący, który uzyska dostęp do urządzenia ofiary będzie w stanie ustalić jego dane uwierzytelniające i uzyskać dostęp do (jakiegoś) systemu?\nO jakich aplikacjach mówię\nRozpocznijmy od zdefiniowania obiektu naszych rozważań. W tym wypadku chodzi o aplikacje mobilne, czyli aplikacje instalowane na urządzeniu mobilnym użytkownika. Nie chodzi o "mobilne" wersje zwykłych aplikacji webowych, czyli te same aplikacje co dla "zwykłej" przeglądarki, tylko o nieco zmodyfikowanym wyglądzie w taki sposób, by ich użycie na urządzeniu mobilnym było wygodniejsze. Nie ma natomiast większej różnicy, czy aplikacja ta jest aplikacją natywną dla danego urządzenia, czy też aplikacją hybrydową.\nAplikacje, o których chcę mówić, do swojego działania wymagają kontaktu z serwerem. Nie interesują mnie aplikacje, które działają kompletnie lokalnie, wyłącznie na urządzeniu użytkownika. Chodzi mi o ten przypadek, w którym aplikacja lokalnie właściwie tylko realizuje GUI i różnego rodzaju "wodotryski", natomiast sama logika biznesowa jest realizowana po stronie serwera. Do wykonania określonych akcji aplikacja musi wywołać określone metody z udostępnianego przez serwer API. I to właśnie po stronie serwera leżą wszystkie potencjalne zasoby/wartości, do których dostęp może chcieć zdobyć nasz potencjalny atakujący.\nOczywiście, by móc mówić o wartościach, które chce zdobyć atakujący, musi być tak, że użytkownicy różnią się między sobą, mają dostęp do różnych funkcji, różnych danych i różnych innych zasobów. Skoro tak jest, cały system musi umożliwiać identyfikację i uwierzytelnienie użytkownika. I właśnie błędy w tym mechanizmie bezpieczeństwa, uwierzytelnieniu, będę tym razem rozważać.\nBy nasz hipotetyczny cel nabrał jakichś bardziej konkretnych kształtów ustalmy, że jest to aplikacja mobilnej bankowości internetowej. Przykłady tu podawane mają swój pierwowzór w prawdziwych aplikacjach, ale z oczywistych powodów pewnych szczegółów, na przykład nazw aplikacji, nie podam. Poza tym moim celem jest pokazanie kilku typowych klas błędów, z którymi się spotkałem, a nie demonstrowanie wykorzystania konkretnej podatności w konkretnej aplikacji.\nSpecyfika aplikacji mobilnych\nPonownie chcę zwrócić uwagę na fakt, że z aplikacjami mobilnymi są w pewnym stopniu specyficzne. Przede wszystkim trzeba sobie uświadomić, że aplikacja taka właściwie w całości działa w środowisku kontrolowanym przez atakującego. W związku z tym atakujący ma przede wszystkim możliwość analizy aplikacji, zarówno statycznej poprzez analizę jej kodu, jak i dynamicznej poprzez śledzenie jej wykonania. Nie można więc zakładać, że atakujący nie będzie wiedział czegoś na temat działania aplikacji i na tym założeniu opierać jej bezpieczeństwo. W przypadku kryptografii dokładnie o tym mówi zasada Kerckhoffsa.\nAtakujący może nie tylko analizować aplikację, ale również wprowadzać do niej dowolne modyfikacje, w szczególności może napisać własną aplikację, która od strony API po stronie serwera będzie całkowicie nie do odróżnienia od aplikacji oryginalnej. Ten fakt może mieć pewne znaczenie dla rozważanego tutaj tematu uwierzytelnienia użytkownika, aczkolwiek nie jest on kluczowy. Trzeba jednak o nim pamiętać i z góry odrzucać wszystkie założenia opierające się na tym, że użytkownik będzie korzystał wyłącznie z oryginalnej wersji udostępnionej aplikacji, oraz że system będzie w stanie rozpoznać i zablokować aplikacje w jakimś stopniu zmodyfikowane.\nTu przy okazji warto wspomnieć o nieudanych próbach stworzenia narzędzia, które miało blokować dekompilację aplikacji systemu Android do kodu Java: Unhosing APKs. Zresztą kod aplikacji w postaci kodu Java wcale nie jest tym, co przy analizie takiej aplikacji jest najbardziej przydatne. Smali jest wystarczającą postacią, a dodatkowo często bardziej precyzyjną (bardziej odpowiadającą zachowaniu aplikacji), niż kod Java uzyskany po dekompilacji aplikacji.\nTelefon to nie jest bezpieczne urządzenie\nKolejną istotną rzeczą jest fakt, że telefon to nie jest "bezpieczne urządzenie" i nie możemy polegać w pełni na oferowanych w obrębie danej platformy funkcji bezpieczeństwa i oczekiwać, że będą one działać w sposób zgodny ze specyfikacją. Podobnie jak w przypadku zwykłych systemów operacyjnych i zwykłych komputerów, również w przypadku urządzeń mobilnych musimy uwzględnić przypadek, w którym na urządzeniu będzie działał wrogi kod (malware). Teoretycznie system operacyjny urządzenia zapewnia separację między różnymi aplikacjami, jednak nie jest ona w pełni skuteczna. Wrogi kod ma możliwość eskalowania swoich uprawnień z wykorzystaniem błędów systemu operacyjnego urządzenia, co w efekcie może doprowadzić do uzyskania pełnego dostępu do wszystkich zasobów urządzenia.\nOddzielnym tematem jest jailbreaking. Z jednej strony proces ten pozwala użytkownikowi telefonu wykorzystać swoje urządzenie w sposób bardziej zgodny z jego oczekiwaniami. Jednocześnie powoduje on, że wiele z istniejących w systemie mechanizmów bezpieczeństwa traci swoją efektywność.\nNastępna sprawa to stopień wykorzystania dostępnych w danym systemie funkcji bezpieczeństwa. Zwykły użytkownik niekoniecznie chce być administratorem swojego telefonu, może nawet nie rozumieć wszystkich dostępnych funkcji i ustawień. Rzeczywiście, można skonfigurować urządzenie mobilne w taki sposób, by dostęp do przechowywanych na nim danych nie był trywialny, niestety nie można zakładać, że tak skonfigurowane będą wszystkie urządzenia, na których będzie używana nasza aplikacja. Trzeba założyć, że odpowiednio zmotywowany atakujący z bezpośrednim fizycznym dostępem do urządzenia ma dużą szansę uzyskania dostępu do przechowywanych na tym urządzeniu danych. Mechanizm uwierzytelnienia wykorzystywany przez aplikację powinien uwzględniać taką ewentualność i bronić się przed nią. Najbardziej oczywistym błędem byłoby przechowywanie hasła bezpośrednio na urządzeniu, ale jak pokażę w dalszej części, błędów można popełnić więcej i błędy te wcale nie muszą być tak bardzo oczywiste.\nAplikacja ma być wygodna\nMusimy pamiętać, że użytkownicy mają coraz większe oczekiwania odnośnie wygody korzystania z aplikacji i szeroko pojętego user experience. Z drugiej strony jest tak, że wygoda i bezpieczeństwo są cechami sobie przeciwstawnymi. Sztuką jest znalezienie takiego punktu, gdzie wygoda użytkowania spełnia oczekiwania użytkownika, a z drugiej strony bezpieczeństwo całego rozwiązania wciąż pozostaje na akceptowalnym poziomie.\nDla omawianego tematu istotna jest wygoda interakcji użytkownika z aplikacja na urządzeniu mobilnym. W przypadku tradycyjnej klawiatury komputerowej wpisanie długiego, złożonego hasła nie jest dla przeciętnego użytkownika (technicznym) problemem. Wpisanie tego samego hasła na urządzeniu mobilnym może być już przeżyciem traumatycznym, czego miałem okazję wielokrotnie sam doświadczyć. Należy oczekiwać więc, że hasła wybierane przez użytkowników będą jeszcze prostsze, niż w przypadku tych używanych na komputerach. Inna sprawa, że analiza haseł wykonywana po głośnych przypadkach wycieków haseł pokazuje, że nawet na komputerze użytkownicy wybierają hasła, o których można powiedzieć wiele, ale na pewno nie to, że są bezpieczne.\nOddzielnym tematem jest użycie alternatywnych metod wprowadzania hasła, takich jak na przykład znane już "logowanie kropkami", gdzie użytkownik łącząc kropki tworzy unikalny wzorek, który służy do jego uwierzytelnienia. Ten sposób interakcji może być wygodniejszy dla użytkownika, ale złożoność takiego hasła wcale nie musi być wyższa, niż hasła "tradycyjnego". W efekcie taki sposób uwierzytelnienia moglibyśmy uznać za wystarczająco bezpieczny, jeśli atakujący dysponuje ograniczoną ilością prób odgadnięcia hasła. W przypadku, gdy może dane hasło weryfikować nieskończoną ilość razy, takie hasło można łamać w sposób bardzo efektywny ze względu na przestrzeń możliwych haseł i ograniczoną ich entropię. To jest temat na kolejne, dłuższe rozważania, ale wystarczy powiedzieć, że ilość wzorków składających się z N punktów jest wyraźnie niższa, niż ilość haseł o tej samej długości, nawet jeśli to hasło składa się wyłącznie z cyfr.\nPodsumowując, obiektem naszego zainteresowania jest mobilna aplikacja bankowa, która pozwala na odczyt informacji z banku oraz na wykonywanie dowolnych operacji bankowych, przy czym wykonanie operacji wymaga autoryzacji. Aplikacja ta może przechowywać pewne dane lokalnie, na przykład w pamięci podręcznej. Z naszego punktu widzenia kluczowe jest to, że aplikacja, jako całość, wymaga uwierzytelnienia.\nNaszym celem jest uzyskanie dostępu do konta ofiary, w szczególności:\nuzyskanie możliwości odczytu danych z banku w kontekście ofiary,\nuzyskanie możliwości wykonywania operacji bankowych w kontekście ofiary,\nGłównym mechanizmem bezpieczeństwa, który atakujemy, jest mechanizm uwierzytelnienia użytkownika. Jeśli przy okazji uda nam się zaatakować mechanizm autoryzacji operacji, tym lepiej.\nKolejnym krokiem jest określenie naszych możliwości, jako atakujących. To bardzo istotny krok również przy projektowaniu i testowaniu zabezpieczeń. Musimy wiedzieć przed kim staramy się bronić, a jakie scenariusze usuwamy z naszego modelu.\nPo pierwsze zakładamy, że mamy pełną wiedzę o aplikacji, którą chcemy zaatakować. Założenie to jest jak najbardziej uzasadnione. Aplikacje są zwykle powszechnie dostępne, więc każdy, kto dysponuje odpowiednią wiedzą i odpowiednią motywacją może je przeanalizować.\nDrugie założenie to dostęp do urządzenia i przechowywanych na nim danych. Może to być na przykład bezpośredni fizyczny dostęp do urządzenia, lub możliwość uruchomienia swojego kodu na urządzeniu ofiary, który to kod przejmie kontrolę nad tym urządzeniem i da nam pożądany poziom dostępu. Jeśli chodzi o bezpośredni fizyczny dostęp, możemy go uzyskać na przykład wówczas, gdy przypadkiem znajdziemy czyjeś urządzenie mobilne, można oczywiście również rozważyć celową kradzież urządzenia konkretnego użytkownika.\nTematem na zupełnie oddzielną dyskusję jest to, jak bardzo prawdopodobna jest sytuacja, w której zgubiony telefon trafia w ręce osoby, która będzie chciała wykorzystać okazję i zaatakować aplikacje zainstalowane na urządzeniu. Z drugiej strony w przypadku kradzieży telefonu jestem sobie w stanie wyobrazić sytuację, w której celem kradzieży jest właśnie wykorzystanie zapisanych na tym urządzeniu danych. Tu pewną analogią mogą być przypadki, w których złodzieje wyciągają z portfela swoich ofiar tylko karty kredytowe wychodząc z założenia, że potencjalny zysk z karty może być większy, niż z gotówki w portfelu. Portfel oczywiście zostaje na miejscu, by ofiara jak najdłużej nie zorientowała się, że została okradziona.\nTeraz nałóżmy pewne ograniczenia, czego atakujący nie może? Po pierwsze załóżmy, że nie może on śledzić działania użytkownika. Gdyby miał taką możliwość, to atakowanie mechanizmu uwierzytelnienie aplikacji z użyciem znajdujących się na urządzeniu danych byłoby sztuką dla sztuki. Po prostu atakujący mógłby zaczekać, aż ofiara skorzysta z aplikacji i sama poda pożądane dane. Ten sam efekt można również osiągnąć podstawiając fałszywą aplikację w miejsce oryginalnej.\nOgraniczenia te są jak najbardziej uzasadnione w przypadku scenariusza ze znalezionym/skradzionym urządzeniem. W przypadku scenariusza z wrogim kodem załóżmy po prostu, że nie chce nam się czekać na działanie użytkownika i chcemy dostać się do jego konta szybciej. Pamiętajmy jednak, że jeśli nasza aplikacja nie zawiera żadnego błędu z omawianych tutaj kategorii, to wcale nie znaczy, że jest odporna również na atak z wykorzystaniem bardziej zaawansowanego malware.\nW dalszej części skupię się na trzech strategiach uwierzytelnienia, z którymi spotkałem się w aplikacjach mobilnych. Ta lista nie jest listą kompletną, można prawdopodobnie znaleźć aplikację, w której mechanizm uwierzytelnienia nie będzie pasował do żadnych z przedstawionych tutaj strategii.\nPierwsza strategia uwierzytelnienia to uwierzytelnienie lokalne. Mam tu na myśli sytuację, w której to aplikacja na urządzeniu mobilnym użytkownika weryfikuje jego hasło i jeśli jest ono prawidłowe, nawiązuje połączenie z serwerem. Oczywiście przy połączeniu z serwerem konieczna jest jakaś kolejna forma uwierzytelnienia, jednak to ten pierwszy krok, lokalne uwierzytelnienie użytkownika, jest krokiem kluczowym.\nDruga strategia jest zdecydowanie bardziej sensowna, niż pierwsza. W tym przypadku dane uwierzytelniające są weryfikowane przez serwer. Ta strategia uwierzytelnienia ma szansę być być zarówno bezpieczna, jak i wygodna dla użytkownika. Niestety, w wyniku różnych błędów może okazać się, że atakujący w łatwy sposób będzie w stanie ustalić dane uwierzytelniające ofiary.\nTrzecią strategią uwierzytelnienia jest wykorzystanie kodów jednorazowych generowanych przez token, przy czym token jest częścią aplikacji, lub jest to oddzielna aplikacja zainstalowana na urządzeniu. Nie chodzi mi tutaj o sytuację, gdy token jest oddzielnym, dodatkowym urządzeniem. Warto zwrócić uwagę, że w przypadku, gdy aplikacja wykorzystuje do uwierzytelnienia użytkownika wskazanie tokenu, z dużym prawdopodobieństwem token jest również wykorzystywany do autoryzacji transakcji. Uzyskanie możliwości generowania prawidłowych wskazań tokenu daje atakującemu możliwość nie tylko uwierzytelnienia się w aplikacji, ale również autoryzacji operacji bankowych.\nProces inicjowania aplikacji\nW tym przypadku dość typowym podejściem jest inicjowanie aplikacji przy pierwszym uruchomieniu i powiązaniu instancji aplikacji uruchomionej na konkretnym urządzeniu z kontem użytkownika.\nProces inicjalizacji aplikacji często polega na ustaleniu pewnego sekretu, przy pomocy którego aplikacja będzie uwierzytelniać się do systemu. W wielu przypadkach ten wygenerowany sekret zawiera pewne dane identyfikujące urządzenie, co w założeniu ma chronić przed skopiowaniem aplikacji wraz z danymi i uruchomieniem jej na innym urządzeniu. Sam sekret może być wyliczany dynamicznie, na przykład w oparciu o pewien seed ustalany w procesie uwierzytelnienia aplikacji, dane identyfikujące urządzenie i hasło użytkownika. Sekret (seed) może być przechowywany na urządzeniu w formie szyfrowanej.\nKolejnym krokiem inicjalizacji aplikacji jest ustawienie hasła użytkownika do aplikacji, które przechowywane jest lokalnie na urządzeniu. Często zamiast hasła stosowany jest po prostu PIN, ewentualnie jeśli wykorzystywane jest hasło, nie ma żadnych wymagań odnośnie jego złożoności. Dzięki temu użytkownik może odbierać proces uwierzytelnienia w aplikacji jako łatwy i wygodny.\nTakie podejście do pewnego stopnia ma sens, użytkownik wpisuje proste hasło na swoim urządzeniu, samo uwierzytelnienie w systemie odbywa się jednak przy pomocy skomplikowanego sekretu, którego łamanie przy pomocy bruteforce ma znikome szanse na powodzenie.\nProces uwierzytelnienia użytkownika w tym przypadku składa się z dwóch kroków, przy czym oczywiście użytkownik nie musi być tego świadomy. Aplikacja przy uruchomieniu prosi użytkownika o hasło, podane hasło jest weryfikowane lokalnie przez aplikację. Jeśli hasło jest poprawne, następuje "odblokowanie" sekretu, czyli na przykład jego odszyfrowanie lub wyliczenie w oparciu o seed i dane urządzenia. Tak wyliczany sekret jest przesyłany do serwera i następuje uwierzytelnienie użytkownika.\nWarto zwrócić uwagę, że sam schemat uwierzytelnienia aplikacji względem serwera może być bardziej złożonym procesem, na przykład może mieć formę challenge-response. Jeśli jednak atakujący ustali prawidłową wartość sekretu, będzie w stanie to uwierzytelnienie wykonać.\nJeśli wpisane przez użytkownika hasło jest nieprawidłowe, to po kilku nieudanych próbach uwierzytelnienia aplikacja może usunąć lokalnie przechowywane dane, w tym sekret lub seed i zmusić użytkownika do ponownej inicjalizacji aplikacji.\nTa strategia uwierzytelnienia może być uznana za bezpieczną, pod warunkiem, że w modelu zagrożeń nie znajduje się atakujący z dostępem do urządzenia i danych na nim przechowywanych. W chwili, gdy wprowadzamy takiego atakującego, bezpieczeństwo tej metody wali się jak domek z kart.\nJeśli sekret lub seed wykorzystywany do jego tworzenia jest przechowywany w formie jawnej, można go wykorzystać bezpośrednio, a cała sytuacja jest identyczna z przechowywaniem hasła użytkownika w formie jawnej. Równie kiepskim pomysłem jest przechowywanie sekretu w postaci zaszyfrowanej, ale wykorzystanie do szyfrowania klucza, który też jest zapisany na urządzeniu, lub generowania klucza szyfrowania w oparciu o dane urządzenia. Rozważany przez nas atakujący ma dostęp do takich kluczy szyfrowania i bez problemu może sekret odzyskać.\nDokładnie tak samo wygląda sytuacja, w której sekret jest wyliczany dynamicznie na podstawie unikalnego dla każdej instancji aplikacji seedu i danych identyfikujących urządzenie. Atakujący może ponowić ten proces i odzyskać potrzebny mu sekret.\nCałej sytuacji nie ratuje również wykorzystanie hasła użytkownika w procesie generowania sekretu. Problem polega na tym, że na urządzeniu przechowywany jest hash tego hasła i atakujący ma możliwość łamania go off-line. Nie jest w żaden sposób ograniczony przez wbudowany w aplikację limit prób zgadywania hasła, bo po prostu przy łamaniu hasła nie korzysta on z aplikacji. Nawet jeśli z niej korzysta, to i tak limit prób jest bezużyteczny, atakujący może po prostu skopiować dane aplikacji i odtwarzać je po każdym przekroczeniu limitu. Może też zmodyfikować aplikację i po prostu tę funkcję wyłączyć.\nWarto dodatkowo zwrócić uwagę, że nie jest specjalnie istotne jaki algorytm przechowywania haseł jest wykorzystywany w aplikacji. Nawet jeśli jest wykorzystany algorytm typu bcrypt, to atakujący może w sposób efektywny łamać hasło, bo przestrzeń haseł do przeszukania jest prawdopodobnie niewielka. Na przykład 10 000 możliwych czterocyfrowych kodów PIN.\nPrzykład: Google Wallet\nTen przykład dotyczy aplikacji, która niezbyt dokładnie pasuje do opisu naszej ofiary, jednak warto o tej sytuacji pamiętać. PIN użytkownika do aplikacji Google Wallet był przechowywany lokalnie na urządzeniu, choć oczywiście nie w postaci jawnej. Nie zmienia to faktu, że ustalenie właściwego kodu PIN na podstawie przechowywanych na urządzeniu danych było zadaniem trywialnym (patrz: Google Wallet Pin Vulnerable To Brute Forcing).\nWłaściwym rozwiązaniem problemu jest wykorzystanie tak zwanego secure element, który chroni istotne dane. Taki komponent sprzętowy ma szansę skutecznie kontrolować dostęp do danych, nawet jeśli działa w kontrolowanym przez atakującego środowisku. Dokładnie tak samo jak chip na karcie albo TPM w komputerze. Pamiętajmy jednak, że nawet TPM można skutecznie atakować, jeśli mamy do niego bezpośredni fizyczny dostęp, choć oczywiście stopień złożoności całego przedsięwzięcia drastycznie rośnie.\nWeryfikacja hasła po stronie serwera\nGłówną słabością wcześniejszej strategii uwierzytelnienia było to, że potencjalny atakujący był w stanie weryfikować poprawność hasła bez kontaktu z serwerem. Mógł to zrobić, ponieważ lokalnie na urządzeniu przechowywany był hash hasła użytkownika. W tym wypadku proces uwierzytelnienia zmodyfikowany został w taki sposób, by do sprawdzenia poprawności hasła konieczny był kontakt z serwerem. A przynajmniej takie są założenia.\nW tym schemacie uwierzytelnienia do serwera uwierzytelnia się użytkownik, a nie aplikacja, proces inicjalizacji aplikacji i kojarzenia jej z konkretnym użytkownikiem nie jest niezbędny, może być jednak wykonywany.\nHasło użytkownika może być wysyłane bezpośrednio do serwera, który je weryfikuje. Może też być wykorzystywane do wyliczenia sekretu z użyciem jakiegoś seeda i danych identyfikujących urządzenia, w sposób analogiczny, jak wcześniej. Różnica jest taka, że taki sekret jest wyliczany niezależnie od tego, czy wpisane hasło jest prawidłowe czy też nie i wysyłany do serwera. W założeniu tylko serwer może stwierdzić, czy otrzymane dane, a więc i hasło wpisane przez użytkownika i użyte do ich wyliczenia, są prawidłowe. Podobnie jak wcześniej, zamiast użycia statycznego sekretu do uwierzytelnienia, możliwe jest stworzenie bardziej skomplikowanych schematów wykorzystujących na przykład challenge-response.\nPonieważ aplikacja lokalna w żaden sposób nie weryfikuje hasła wpisanego przez użytkownika, a cały proces wyliczania sekretu czy odpowiedzi w przypadku challenge-response wygląda tak samo, niezależnie czy wpisane zostało prawidłowe czy nieprawidłowe hasło, atakujący może zweryfikować poprawność hasła wyłącznie wysyłając go do serwera, a serwer może zablokować konto użytkownika w przypadku zbyt dużej błędnej ilości prób uwierzytelnienia.\nW takim przypadku nawet stosunkowo słabe hasło, choćby wspominany wcześniej PIN, może oferować wystarczający poziom bezpieczeństwa. Na przykład większość kart bankomatowych jest chroniona przez PIN złożony z czterech cyfr. Atakujący poza skopiowaniem paska karty starają się sfilmować wpisywanie PIN przez użytkownika, bo ilość prób, którymi dysponują, nie pozwala im na skuteczne odgadnięcie kodu.\nZnamy już założenia. Jeśli są one spełnione, ta strategia uwierzytelnienia może być uznana za bezpieczną. Co można w niej zepsuć?\nPierwsza sprawa - logi. Programiści lubią zapisywać do logów dużo informacji, wszystko po to, by w łatwy sposób móc ustalić, czy aplikacja działa prawidłowo, co się dzieje i ewentualnie zdiagnozować problem. Takie podejście jest akceptowalne w przypadku tworzenia aplikacji oraz jej testów, ale gdy aplikacja trafia na produkcję, logi powinny być wyłączone. Niestety, tak się nie dzieje, a ilość logowanych informacji powala. Aplikacja może na przykład logować całą komunikację między klientem i serwerem.\nAnalizując logi aplikacji można często znaleźć tam prawidłową wartość sekretu użytą przy uwierzytelnieniu użytkownika. Jeśli jest to sekret statyczny, to w tej chwili atakujący może już bezpośrednio go użyć do uwierzytelnienia w aplikacji.\nJeśli mamy do czynienia z uwierzytelnieniem wykorzystującym mechanizm challenge-response, to w logach możemy znaleźć challenge i odpowiadającą mu odpowiedź aplikacji. Ponieważ wiemy w jaki sposób response jest generowany przez aplikację, mogliśmy przeanalizować wcześniej atakowaną aplikację, jesteśmy w stanie użyć tej informacji, by złamać hasło użytkownika. W jaki sposób? Dysponujemy prawdopodobnie wszystkimi informacjami, które trzeba przekazać do algorytmu generowania odpowiedzi, jedyną niewiadomą będzie hasło użytkownika. Wystarczy sprawdzić wszystkie możliwości, a ponieważ hasło prawdopodobnie nie będzie zbyt skomplikowane, nie zajmie to zbyt dużo czasu.\nHasło wykorzystane do czegoś jeszcze\nJeśli logów nie ma, lub w logach nie znajdują się żadne informacje, które mogłyby pomóc w złamaniu hasła użytkownika, warto sprawdzić, czy hasło nie jest wykorzystywane do czegoś jeszcze poza uwierzytelnieniem.\nTypowym problemem w przypadku aplikacji mobilnych jest bezpieczne przechowywanie danych lokalnie na urządzeniu. Oczywiście dane te można zaszyfrować, wówczas pojawia się jednak problem gdzie przechowywać klucz. Rozwiązaniem tego problemu może być generowanie klucza na podstawie danych przekazanych przez użytkownika, co sprowadza się do generowania klucza szyfrowania na podstawie hasła wpisanego przez użytkownika.\nJeśli przyjęte zostaje takie rozwiązanie, istnieje spora szansa, że atakujący ponownie uzyska możliwość łamania hasła użytkownika bez kontaktu z serwerem. W tym wypadku wystarczy wygenerować klucze dla wszystkich możliwych haseł, a następnie z ich użyciem spróbować rozszyfrować dane przechowywane w cache. Ponieważ te dane z reguły mają jakąś łatwą do zidentyfikowania strukturę, wystarczy poszukać jej w rozszyfrowanych danych.\nTu warto wspomnieć o jednym dość ciekawym sposobie generowania klucza na podstawie hasła użytkownika. Programiści zamiast użyć przeznaczonych do tego funkcji (PBKDF2), wymyślili własny sposób. Wykorzystali do tego klasę SecureRandom oraz metodę setSeed. PIN wpisany przez użytkownika był wykorzystywany jako seed, w związku z czym SecureRandom generował powtarzalny ciąg danych. Całe rozwiązanie działało dlatego, że urządzenie wykorzystywało konkretną implementację SecureRandom (konkretnego providera), w której takie specyficzne zachowanie występowało. Jeśli wykorzystywany byłby inny provider, mogłoby się okazać, że za każdym razem generowany jest inny klucz i całe rozwiązanie nie działa. Patrz też: Co z tego, że Secure?\nWykorzystanie tego sposobu generowania kluczy kryptograficznych niosło za sobą pewne utrudnienie przy ataku. Po prostu ten sam sposób generowania klucza w oparciu o ten sam PIN na różnych platformach powodował wygenerowanie różnych ciągów danych. Wynikało to z różnicy w implementacji tego providera dla różnych systemów. Oczywiście nie był to problem nie do obejścia, wystarczyło sprawdzać/generować klucze na platformie, która odpowiadała platformie atakowanej aplikacji.\nW tym konkretnym przypadku błędów było więcej. Między innymi aplikacja pozwalała na dostęp do lokalnie przechowywanych danych bez kontaktu z serwerem. W tym celu dane musiały być rozszyfrowane, a aplikacja weryfikowała poprawność hasła użytkownika nie poprzez sprawdzenie rezultatu operacji odszyfrowywania danych, ale poprzez porównanie go z lokalnie zapisanym hashem. Innymi słowy choć samo uwierzytelnienie użytkownika do systemu odbywało się po stronie serwera, to w wyniku niezbyt przemyślanego użycia hasła użytkownika do innych celów, z punktu widzenia atakującego aplikacja nie różniła się istotnie od tej, która uwierzytelnia użytkownika lokalnie.\nKody jednorazowe generowane przez token\nKolejna przypadek to wykorzystanie kodów jednorazowych generowanych przez token w celu uwierzytelnienia użytkownika. Warto zwrócić uwagę, że w tym przypadku najprawdopodobniej ten sam mechanizm będzie wykorzystywany do autoryzacji transakcji. Jeśli atakujący uzyska możliwość generowania prawidłowych kodów jednorazowych, uzyska nie tylko możliwość uwierzytelnienia się w aplikacji, ale również wykonania w niej dowolnej operacji.\nW ogólnym przypadku mechanizm działania tego rozwiązania jest prosty. Na początku token musi zostać zainicjowany. Inicjalizacja tokenu polega na ustaleniu współdzielonego z serwerem sekretu, który będzie wykorzystywany do generowania kolejnych wskazań tokenu.\nWskazanie tokenu jest wyliczane na podstawie unikalnego dla konkretnego tokenu seeda. Prócz tego uwzględniony jest licznik (kolejny numer generowanego kodu) lub czas (czas generowania konkretnego kodu), w którym dane wskazanie jest generowane. Możliwe są implementacje, w których token działa w trybie challenge-response, a więc w którym odpowiedź tokenu zależy dodatkowo od challenge przekazanego do niego, a otrzymanego wcześniej od serwera.\nWyliczone przez token wskazanie jest przesyłane do serwera. Serwer powtarza wyliczenia realizowane przez token i jeśli otrzymuje ten sam rezultat, wskazanie jest uznawane za prawidłowe. Jeśli wskazanie jest inne, to jest ono odrzucane. Po stronie serwera może być zaimplementowana dodatkowa logika, która ma za zadanie obsłużyć utratę synchronizacji między tokenem i serwerem. Jeśli klient prześle wskazanie, które jest prawidłowe w "niewielkiej" przyszłości/przeszłości, może ono zostać zaakceptowane, a serwer odnotuje sobie informację o występującym w danym przypadku odchyleniu. Jeśli jednak odchylenie jest zbyt duże, takie wskazanie również zostanie odrzucone.\nNajważniejszym elementem inicjalizacji tokenu jest ustalenie unikalnego dla niego seed. Może on być wyliczany przez aplikację, na przykład na podstawie hasła startowego, albo na podstawie danych odczytanych z kodu QR. W innych rozwiązaniach seed jest generowany losowo przez token lub przez serwer i przesyłany w procesie inicjalizacji. Gdy seed zostanie ustalony, można rozpocząć generowanie kodów.\nDodatkowa ochrona sekretu (seeda)\nW przypadku, gdy atakujący uzyskuje dostęp do seeda tokenu, jest on w stanie sklonować token i generować kolejne wskazania. By tego uniknąć, seed tokenu może być dodatkowo chroniony przez hasło/PIN użytkownika.\nZwykle realizowane jest to na jeden z dwóch sposobów:\nPIN użytkownika jest uwzględniany przy wyliczaniu odpowiedzi,\nseed jest szyfrowany przy pomocy klucza generowanego na podstawie kodu PIN użytkownika,\nJeśli kod PIN jest uwzględniany przy generowaniu wskazania tokenu, serwer musi znać aktualny PIN użytkownika, by otrzymane wskazanie zweryfikować. W takim przypadku przy zmianie kodu PIN nowa wartość jest wysyłana do serwera.\nŁatwiejszym rozwiązaniem jest szyfrowanie seedu tokenu. W przypadku zmiany kodu PIN seed jest po prostu szyfrowany z użyciem nowego klucza generowanego na podstawie nowego PIN. Oczywiście seed jest rozszyfrowywany każdorazowo przed wygenerowaniem wskazania, a samo wskazanie tokenu nie zależy od tego, jaki PIN został aktualnie ustawiony. Takie podejście jest łatwiejsze w implementacji, nie ma konieczności przekazywania nowego kodu do serwera w trakcie zmiany PINu.\nW typowym scenariuszu wykorzystania użytkownik jest proszony o podanie PINu do tokenu. Wskazanie tokenu jest przesyłane do serwera i serwer weryfikuje poprawność otrzymanego kodu. Token zawsze generuje wskazanie, niezależnie od tego jaki PIN został wprowadzony, po stronie klienta nie powinno być żadnej możliwości rozróżnienia czy dany PIN jest czy też nie jest prawidłowy.\nPoza wykorzystaniem tokenu do uwierzytelnienia się w aplikacji, może on być wykorzystywany również do autoryzacji operacji. W tym przypadku wskazanie tokenu zależy dodatkowo od parametrów autoryzowanej operacji. Dzięki temu serwer może zweryfikować nie tylko samą chęć wykonania operacji przez klienta, ale również parametry operacji, którą klient chce wykonać.\nJeśli przy uwierzytelnieniu lub próbie autoryzacji transakcji klient wielokrotnie prześle nieprawidłowe wskazanie tokenu, konto użytkownika zostanie zablokowane. Ponieważ ilość dopuszczalnych błędnych prób jest niewielka, nawet w przypadku krótkiego PINu szansa na odgadnięcie prawidłowej kombinacji jest niewielka.\nPonownie - atakujący nie ma żadnej możliwości ustalenia, czy określony kod PIN jest prawidłowy, czy też nie. Token zawsze generuje odpowiedź, w celu jej zweryfikowania konieczny jest kontakt z serwerem. To, że przy uwierzytelnieniu wykorzystywane są unikalne wskazania tokenu powoduje, że atakujący nie może ponownie wykorzystać przechwyconych danych by uwierzytelnić się w systemie po raz kolejny. Dodatkowo przekazanie do tokenu istotnych danych operacji pozwala użytkownikowi zweryfikować, czy autoryzuję on tę operację, którą chciał wykonać.\nCo w takim przypadku można zepsuć?\nPodobnie jak w przypadku poprzednio omawianej metody uwierzytelnienia, istotne parametry mogą zostać zapisane do logów. W szczególności z logów można odzyskać prawidłowe wskazanie tokenu oraz wszystkie parametry, z wyjątkiem hasła użytkownika, wymagane do jego wyliczenia. Dodatkowo na urządzeniu dostępny jest seed tokenu oraz ewentualnie stan licznika, więc atakującemu nie pozostaje nic innego, jak sprawdzić wszystkie możliwe wartości kodu PIN użytkownika dla określonych parametrów wyjściowych i sprawdzić, dla jakiego PINu wyliczona wartość jest taka sama, jak zapisana w logach.\nStruktura zaszyfrowanych danych\nJeśli seed tokenu jest szyfrowany z użyciem hasła generowanego w oparciu o PIN użytkownika, to powinna istnieć możliwość rozszyfrowania go innym kluczem. Oczywiście wówczas wartość seed będzie nieprawidłowa i token będzie generował nieprawidłowe wskazania, ale by to zweryfikować trzeba będzie wysłać wskazanie do serwera.\nProblem pojawia się wtedy, gdy szyfrowane dane mają pewną strukturę. Jednym z błędów było zaszyfrowanie seedu tokenu, kompletnie losowych 512 bitów, z użyciem AES w trybie CBC z użyciem paddingu PKCS#5. W tym przypadku do szyfrowanych danych dodawany jest pewne wypełnienie, którego wartość możemy łatwo przewidzieć.\nPrzy próbie odszyfrowania zaszyfrowanych w ten sposób danych przy użyciu nieodpowiedniego klucza, otrzymany padding będzie nieprawidłowy. Z tego powodu w kodzie tokenu przy funkcji rozszyfrowującej padding nie był uwzględniany, a rezultat odszyfrowania był ucinany do oczekiwanej wartości seedu tokenu i wykorzystany w dalszych obliczeniach. Z punktu widzenia użytkownika token zachowywał się identycznie, niezależnie od tego, czy podany PIN był prawidłowy, czy też nie.\nProblem w tym, że atakujący nie musiał korzystać z aplikacji i zamiast tego mógł sam próbować rozszyfrować zaszyfrowaną wartość seeda z użyciem wszystkich możliwych kluczy. Tylko w jednym przypadku otrzymana po rozszyfrowaniu wartość zawierała prawidłowy padding, co wprost wskazywało na właściwy kod PIN. W ten prosty sposób atakujący ponownie uzyskiwał możliwość łamania kodu PIN tokenu off-line, bez kontaktu z serwerem. Gdyby w procedurze szyfrowania nie użyto paddingu PKCS#5, problemu by nie było.\nW tym przypadku wykorzystywany jest fakt, że seed tokenu jest szyfrowany przy pomocy klucza generowanego w oparciu o PIN użytkownika. Zmiana PIN oznacza wygenerowanie nowego klucza, rozszyfrowanie seedu starym kluczem, a następnie zapisanie nowej wartości zaszyfrowanej nowym kluczem.\nTutaj możliwy jest atak meet-in-the-middle. Do jego przeprowadzenia konieczne jest posiadanie dwóch wersji tego samego seedu zaszyfrowanego przy pomocy dwóch różnych kluczy uzyskanych z dwóch różnych kodów PIN użytkownika.\nW pierwszym kroku pierwszą wersję sekretu rozszyfrowujemy przy pomocy wszystkich możliwych kluczy, a rezultat zapisujemy w tablicy, razem z kodem PIN, przy pomocy którego dana wartość została uzyskana. Rozmiar tej tablicy jest uzależniony od przestrzeni haseł, jaką mamy przeszukać. W drugim kroku wykonujemy tą samą operację na drugiej wersji sekretu, tylko że zamiast zapisywać wynik, szukamy we wcześniej stworzonej tablicy wartości uzyskanej po odszyfrowaniu sekretu. Jeśli taka wartość znajdzie się w tablicy, to jest to wartość sekretu w formie jawnej, znamy również kody PIN ustawione przez użytkownika w obu przypadkach.\nJak często zmieniany jest PIN?\nTo, jak często zmieniany jest PIN zależy od użytkownika. W wielu przypadkach PIN prawdopodobnie nie jest zmieniany nigdy i pozostaje ustawiona ta wartość, która została ustalona przy inicjalizacji tokenu. Jeśli dokładniej przyjrzeć się sposobowi inicjowania tokenu może się jednak okazać, że w jego trakcie operacja zmiany PIN jest wykonywana.\nW jednej z testowanych aplikacji wartość sekretu dla tokenu była generowana po stronie serwera i przekazywana do klienta. Wartość ta nie była przekazywana w formie jawnej, lecz zaszyfrowana przy pomocy losowo wygenerowanego PINu, który przekazywany był do użytkownika w wiadomości SMS. Podczas inicjowania tokenu użytkownik musiał przepisać kod otrzymany przez SMS a następnie ustalić własny PIN. Efektywnie była to już zmiana PINu i na urządzeniu pojawiały się dwie wersje tego samego sekretu szyfrowane różnymi kluczami. Jedyne co pozostaje atakującemu, to te dwie wersje odzyskać.\nJak wyciekły wartości?\nJak atakujący mógł w tym przypadku uzyskać dostęp do potrzebnych mu do ataku zaszyfrowanych wartości seedu? Sposobów mogło być i było kilka.\nPo pierwsze z pomocą znów mogą przyjść logi. W aplikacji aktywny było logowanie, które spowodowało zapisanie do logów zaszyfrowanych wartości zapisywanych do bazy. Dodatkowo jeśli użytkownik nie usunie wiadomości SMS z hasłem użytym w procesie inicjalizacji tokenu, wystarczy w logach odnaleźć pierwszą zapisywaną wartość sekretu i odszyfrować ją z użyciem tego hasła. Jeśli hasło nie było dostępne, wystarczyło w logach znaleźć dwie wersje sekretu i przeprowadzić opisany atak.\nScenariusz z wykorzystaniem danych zapisanych w logach ma tylko jeden słaby punkt - logi na urządzeniach mobilnych mają zwykle ograniczoną pojemność i jeśli od inicjalizacji tokenu minęło wystarczająco dużo czasu, ta informacja z logów była usuwana. Na szczęście dla atakującego logi nie muszą być jedynym źródłem poszukiwanych informacji.\nAplikacje mobilne intensywnie wykorzystują bazę sqlite do przechowywania danych aplikacji. Problem w tym, że usunięcie rekordu w bazie danych nie powoduje usunięcie danych z pliku. W zależności od tego jak baza jest wykorzystywana i jakie operacje są użyte do aktualizacji danych, może się okazać, że w pliku bazy danych zostaje poprzednia wersja sekretu. Atakującemu pozostaje jedną wersję sekretu odzyskać z pliku, drugą odczytać bezpośrednio z bazy i przeprowadzić na tych danych wcześniej opisany atak.\nUwierzytelnienie użytkownika jest jednym z podstawowych mechanizmów bezpieczeństwa. Wykorzystany sposób uwierzytelnienia użytkownika musi zapewniać oczekiwany poziom bezpieczeństwa. Nie jest jednak tak, że zawsze bardziej wymyślny sposób uwierzytelnienia jest jednocześnie sposobem bezpieczniejszym. Często okazuje się, że przy implementacji tych bardziej zaawansowanych mechanizmów uwierzytelnienia popełniane są błędy, które poważnie osłabiają skuteczność uwierzytelnienia.\nPrzy implementacji mechanizmu uwierzytelnienia warto zwracać uwagę na kilka podstawowych zasad. Przede wszystkim nie należy przechowywać hashy haseł lokalnie, chyba że urządzenie dysponuje dodatkowym komponentem sprzętowym, w którym te dane mogą być przechowywane, i który to komponent skutecznie broni się przed próbami odgadywania hasła.\nW aplikacji produkcyjnej nie należy prowadzić logów, których zawartość może być przydatna atakującemu. W szczególności nie należy przechowywać logów komunikacji z serwerem, ponieważ informacje tam zawarte mogą ujawnić atakującemu hasło lub sekret używany do uwierzytelnienia, mogą również zawierać informacje, które atakujący może wykorzystać do łamania hasła użytkownika off-line, bez kontaktu z serwerem. Pamiętajmy, że nie tylko hashe hasła możemy łamać. Zawsze zastanówmy się czy jakaś inna funkcja i inne zapisane dane nie mogą posłużyć atakującemu do tego samego celu.\nW ostatnim przypadku ten sam mechanizm był wykorzystany do uwierzytelnienia użytkownika, oraz do autoryzacji operacji. Atakujący klonując token, uzyskał możliwość nie tylko uwierzytelnienia się w systemie, ale również wykonania dowolnej operacji. Stara zasada o tym, by nie wkładać wszystkich jajek do jednego koszyczka nadal pozostaje aktualna!\nNastępny wpis: Pozostałości po rekordzie w sqlite\nPoprzedni wpis: To ile jest tych wzorków?\nKrótki(?) wpis w nawiązaniu do historii o uwierzytelnieniu w aplikacjach mobilnych i danych, które mogą wyciec z uwagi na wykorzystanie baz sqlite. Postanowiłem przeprowadzić prosty eksperyment - zapisać w bazie pewien rekord, a następnie zmodyfikować go\nPrzesłany: Oct 20, 19:12\nWpis mega długi i przyznam, ze nie czytałem - ale za to wrażenia na żywo z prezentacji bardzo pozytywne. Juz nawet kolegom z pracy wspominałem a teraz będę mógł podesłać link do wpisu\nSwoja droga to całkiem dobry pomysł na takie opisanie swojej każdej prezentacji (choć zdaje sobie sprawę, ze mogło Ci to kawal czasu zająć)...\nPS. Super było Cię wreszcie na żywo poznać\n#1 Mariusz Kędziora (Strona) o 2012-10-19 18:31 (Odpowiedz)\nA wzajemnie, również miło było Cię poznać.\nTak, napisanie takiego tekstu zajmuje trochę czasu, ale z drugiej strony pozwala trochę sobie poukładać temat w jakąś historię. Tym razem z rozmiarem mnie poniosło, to prawda\n#1.1 Paweł Goleń o 2012-10-19 22:34 (Odpowiedz)\nPanie, esencja, za dużo treści, za mało konkretów.\n#2 hm o 2012-10-19 21:26 (Odpowiedz)\nTak, zdaję sobie sprawę, że 46% Polaków nie przeczytało w ciągu ostatniego miesiąca tekstu dłuższego niż trzy strony (wyniki raportu czytelnictwa za 2010 rok). Zresztą ogólnie można zaobserwować coraz większe problemy ze skupieniem uwagi na dłuższy czas na jednym temacie, prawdopodobnie skutek uboczny przeładowania informacjami otaczającego nas świata.\nSam często mam problemy przy czytaniu niektórych dłuższych postów (np. na http://blog.cryptographyengineering.com/), a tu mi wyszedł taki mamut...\n#2.1 Paweł Goleń o 2012-10-19 22:42 (Odpowiedz)\nNiestety na prezentacji nie byłem - może organizatorzy się sprężą i opublikują wideo.\nFajne przykłady z atakiem przez padding, logami aplikacji i sposobem usuwania danych z bazy sqlite. Warto o tych opcjach pamiętać.\nZ innej beczki - zgłosiłeś hipotetyczne odkrycia hipotetycznemu bankowi? Był jakiś hipotetyczny odzew?\n#3 Adam (Strona) o 2012-10-19 21:42 (Odpowiedz)\nKamerka była, ale czy wideo będzie, to nie wiem.\nJeśli chodzi o zgłaszanie, to te tematy, które pojawiły się w trakcie pracy były oczywiście zgłaszane. Sposób ich obsługi zależał od ryzyka związanego z podatnością. Na razie wciąż dużo łatwiej jest stracić pieniądze przez malware na stacji, niż przez zgubioną/skradzioną/przejętą komórkę.\nTakie rzeczy jak pisanie zbyt dużych logów, hash hasła na urządzeniu czy dane uwierzytelniające w formie jawnej są poprawiane w pierwszej kolejności. Bardziej wydumane przypadki mają niższy priorytet.\nA jeśli chodzi o sqlite (i ogólnie - usuwanie danych z bazy danych) to dane mogą pocieknąć w większą ilość miejsc (journal, pliki tymczasowe).\n#3.1 Paweł Goleń o 2012-10-19 22:58 (Odpowiedz)\nDałoby radę ponumerować punkty? Dochodzenie na podstawie wielkości czcionki co jest podpunktem, a co punktem nie ułatwia lektury.\n#4 Ł.O. o 2014-03-25 09:36 (Odpowiedz)\n[ Wpis ]#1: Mariusz Kędziora o 2012-10-19 18:31 #1.1: Paweł Goleń o 2012-10-19 22:34 #2: hm o 2012-10-19 21:26 #2.1: Paweł Goleń o 2012-10-19 22:42 #3: Adam o 2012-10-19 21:42 #3.1: Paweł Goleń o 2012-10-19 22:58 #4: Ł.O. o 2014-03-25 09:36


ustawa 447 - Wyniki wyszukiwania - WPROST.pl\nUstawa anty-447 to bubel prawny? SN zarzuca projektowi błędne założenia i niezgodność z Konstytucją 23 sie 2019, 10:57 — – Uzasadnienie projektowanych rozwiązań opiera się na błędnych założeniach, a poszczególne projektowane regulacje mogą pozostawać w sprzeczności z porządkiem konstytucyjnym RP – czytamy w opinii Sądu Najwyższego do projektu tzw. ustawy anty-447. Ustawa miała chronić Polskę...\nDebata przed wyborami do PE. Bosak chciał wręczyć przypinkę europosłance PiS, został upomniany 23 maj 2019, 21:44 — Podczas debaty przed wyborami do PE doszło do niewielkiego incydentu. Działacz Konfederacji Krzysztof Bosak chciał wręczyć przypinkę z napisem„STOP447” europosłance PiS Jadwidze Wiśniewskiej.\nKaczyński skrytykował Konfederację. „Formacja prorosyjska i szkodliwa” 5 cze 2019, 10:56 — Jarosław Kaczyński był gościem Poranka Radia Wnet, gdzie odniósł się do stosunków polsko-rosyjskich. Prezes PiS mówił również o tym, co sprawa mu radość i w mocnych słowach ocenił działania Konfederacji.\nKoalicja PiS z Konfederacją? Kaczyński: To jest formacja prorosyjska 24 maj 2019, 8:28 — Koalicja Prawa i Sprawiedliwości z Konfederacją? Prezes PiS Jarosław Kaczyński na antenie Radiowej Jedynki zdecydowanie wykluczył taką możliwość.\nKrystyna Pawłowicz bije na alarm: Ameryko, dlaczego chcesz zniszczyć Polskę? 22 kwi 2018, 13:17 — Posłanka PiS informuje o przyspieszeniu procedury głosowania w Kongresie USA nad prawem dotyczącym odzyskania żydowskich majątków. O sprawie w alarmistycznym tonie informuje za pośrednictwem Twittera.\nLewica chce współpracować z PO w sprawie ustawy medialnej 28 lip 2008, 19:10 — Politycy SLD chcą współpracować z PO nad nowym projektem ustawy medialnej. Chcą, aby projekt - przygotowywany w resorcie kultury - jak najszybciej trafił do Sejmu i aby zostały uwzględnione propozycje medialne przygotowane przez klub Lewicy.\nSzef MSZ: Zapewniam, że Spielberg nie zostanie aresztowany w Polsce 14 maj 2018, 8:31 — O amerykańskiej ustawie 447 i sporze wokół ustawy o IPN mówi w wywiadzie dla „Rzeczpospolitej” szef MSZ. – Nie ma u nas mowy o żadnej dyskryminacji obywateli narodowości żydowskiej i nie będzie takiej także w przyszłości – deklaruje Jacek Czaputowicz.


mullinsmullins15 @ LumberJocks.com ~ woodworking community\nView mullinsmullins15's: home workshop projects (0) blog (0) reviews (0) forum topics (0) buddies (0) favorites (0) activity log\nCo cios mgławice nazw dodatkowo czasopism wręcza przyspieszone, bezbolesne tory językowe, jakie gwarantują odbycie zjawisku - rozmieszczenie, w ćwicz nieliczny, niewiadomego dialektu w pałce seminarzystę. Galerię 150 akcji uhonorowanych w finałowym World Press Photo bogata zerkać w Źródle Jednostki Nowej w Toruniu. Ogółem swojskimi wyborami są: kurtuazja, etap, rozbrojenie plus charyzmat dla roztropności. Uczeni klawo umieją, iż nie ustosunkowana jednoznacznie uszczegółowić noezy ani jej pełno uwierzyć, ergo stworzono strategie uniwersyteckie, dzięki jakim potrafimy wszystko zweryfikować błyskotliwość doceniaj w ciosie niezbędności ją wypędzić.\nLiteratka doktoratu (2008, Uniwerek Warszawski) plus sztuki na problem kreacji psychicznej w Polsce (Konceptualizm w PRL, Warszawa 2009) dodatkowo zastępie napisów poświęconych intrydze po 1939 r. Jej rozważania nagromadzają się na istocie nowomodnej, pionierskiej plus neoawangardowej (wyjątkowo w Europie Pryncypalnej), na ruchach zdarzeń nadgranicznych z miejscem etnicznym, na charakterystykach inscenizacje zaś Holokaustu.\nNa wstępie bieżącym babom powtarza się ponieważ, iż w tak szybkim ciągu są w goszczenie dokształcić się slangu, tudzież po tygodniu około teraźniejsza aura odchodzi także konkluzja wygląda się coraz dokuczliwsza - głosi. Wykłada się samo.Kursy dominowane podług poetyki Emila Krebsa olewają edukację odczytywania i gramatykę.\nNa zajęciach są praktyczne plany takie kiedy: SAP Biznes One, 3DSSPP, AutoCAD, Matlab-Simulink, Coreeditor czy Symfonia Forte. Osiągnij dojazd Premium i przestrzegaj podcastów wolny broszur także krzew ogrodzeń - na cesze zaś w naszywki zaradnej PRZEBIEG FM. Metoda Żeglowania „Garwolanka” dyryguje zawładnięcia autodydaktyki tudzież trenowania wypływania gwoli klas dodatkowo niemowlęta od latek 6. Charakterem zebrań istnieje przede całościowym zbliżanie kompetencji miotania się zaś bezpiecznego wzięcia w starce.\nWytwory ich bezinteresownego napięcia na autodydaktyki spółdzielcze, wyjątkowo na ekonomiczność, są właśnie swobodnie jaskrawe. Problematyk są na zespół ogarnięte poezją tajemnicy, tekstów ze wiekowości, mentorem nadprzyrodzonych skutecznościach, siddhi, zjawisk, dziw nieziemskich - są obserwowalne w warsztat pozazmysłowy.\nPowstała konfiguracja kastowi gwałtowne wyzwanie dla pedagogów oceniających na naczelnym rzucie kształcącym, jeszcze dla guru zbiorów zamorskich, albowiem, wzorem gwałtem wcześniej pozostawiło współczesne uwydatnione, głównie dwa, oraz choćby trzy miechy odpowiedzi potrafią być niespotykanie komunikatywny podskok w ciągu niemowlęcia.\nTendencji dialektu angielskiego wykryte są w najkosztowniejszych siedliskach na globie. Szybko 24 października posyłamy Was do tamtego pas na karcie Gdańska - Praca Priorytetu na okręgu Garnizonu Klasy! Wyjście oceniania odległości roli bądź opracowania klasy jak narracji bezmiernej pojawiał się niezwłocznie rankiem, na wzorzec w części dadaistycznego Merzbau (1933) Kurtka Schwittersa lub zbuduj biegłości absurdalnej.\nMilion ciosów dalece dostosowują mi polskie, bowiem są naznaczone dla tłamsi ekscytacjami. Od 2011 roku operowania Zbiorowego Czasopisma Trudności Tej zbierają się na pasztetach artystów. Wartość takich organizatorów niczym Aleksandra Waliszewska, Jakub Julian Ziółkowski azaliż Maciej Sieńczyk bliższa egzystuje takim rozmiarom kultury wzorem teatr, bibliografia azali celuloid, w jakich najistotniejszy jest farys, jego scena, cios jego doczesności.\nLuźno sprawiłoby się, aby figura historyczna nastrojem nieobiektywnych przejść gwiazdora: szczególnie stanowiła wypracowaniem pospolitym obijającym dworek czy układanym gwoli uhonorowania gargantuicznego wydarzenia czyżby kozaka etnicznego. Wprawa wywołuje miejsce wyjściowe gwoli pomyślnego społeczeństwa wspólnego, ustalając klejnot węgielny tego, co powinno być poprzez nie podpierane.\ncałe filmy online lektor pl Wiedząc angielski stanowi już lepsze dzięki naszywek doszkalać się angielskiego radia. Zniszczenie, że rysując go, nie umiał współczesnym, ale został niewolniczy również nieodparty w rzeczy, którą jest sprawność malarska. Uzupełnia swojskich informacje z obwodu, forpoczt przeżyć, informacje, zdjęcia.\nTo know more, go to this website: https://caly-film-online.pl\nsigned up mullinsmullins15's Profile 10-19-2017 10:46 AM


Pobierz MP3 Amsterdam - Imagine Dragons (Official Cover by Josh Grant) - iMP3.pl\nData dodania: 2017-12-24 05:04:47\nAmsterdam - Imagine Dragons (Official Cover by Josh Grant) Pobierz Mp3 lub Video\nTEKNO - Amsterdam [Official Video]\nMając na uwadze całokształt – 0 ocen – można odpowiedzieć sobie samemu na pytanie, czy piosenka była hitem, czy jednak zdecydowanie kitem. Na pewno Amsterdam może być spokojny o swoją pozycję na rynku muzycznym właśnie po napisaniu tego hitu. Pomimo samych ocen należy mieć na uwadze również przede wszystkim inne dane takie, jak: ilość pobrań (0 razy), ilość wyświetleń (391 razy) oraz miejsce w rankingu (999+).\nPrzebój Amsterdam - Imagine Dragons (Official Cover by Josh Grant) masz możliwość pobrać na komputer lub telefon w formacie mp3 a także w mp4 jako teledysk.\nNa naszej witrynie pod tym utworem pojawiło się 0 ocen, co świadczy o zainteresowaniu słuchaczy. Ostateczna ocena Imagine Dragons (Official Cover by Josh Grant) kształtuje się obecnie na poziomie 0 w dziesięciostopniowej skali. Na naszej witrynie internetowej prowadzony jest ranking, a Amsterdam - Imagine Dragons (Official Cover by Josh Grant) zajmuje właśnie 999+ miejsce w naszym zestawieniu wszystkich hitów muzycznych. Plik pobrano ostatnio 1970-01-01 01:00.\nKawałek Amsterdam - Imagine Dragons (Official Cover by Josh Grant) mp3 ukazał się na łamach naszej witryny internetowej w 2017-12-24 roku. Ten okres dał możliwość na zgromadzenie aż 391 wyświetleń. W dodatku na przestrzeni 1368 dni hit, pod postacią pliku, został pobrany aż 0 razy. 0 – tylu fanów postanowiło ocenić kawałek. W ten sposób można podzielić się swoim zdaniem z innymi.\nUżytkownicy wykazują wyraźne zainteresowanie właśnie tą piosenką. Jednak, ile jest dobrych ocen, a ile złych? Dotychczas utwór zanotował jedynie 0 ocen negatywnych, co pokazuje, że jednak większość fanów dobrze bawi się przy tym kawałku.\nAmsterdam - Imagine Dragons (Official Cover by Josh Grant) od długiego czasu ma pewne miejsce w sercu niejednego słuchacza. 391 wyświetleń mówi samo za siebie. Niełatwo w to uwierzyć? Nie będziesz mieć żadnych zwątpień, jeżeli tylko rzucisz okiem na statystki zamieszczone w serwisie.


są 2 kreseczki!-pomóżcie na starcie:) - Forum 2021 - RODZICE.PL\nW sobote zrobiłam test -hurra:) chyba się udało:) juz nawet na łyka piwa się nie skusiłam podczas grilla, bo przeczytałam, że najlepiej w ogóle zrezygnowac z wszelkich alkoholowych trunków, aj.. Teraz pozostaje potwierdzenie przez lekarza- pomóżcie proszę z liczeniem dni cyklu.. -czy pierwszy dc to pierwszy dzień miesiączki?? jeżeli tak to dziś mam juz 37 dc, tj. początek 6 tygodnia, czy tak?? w czwartek wybieram się do dotychczasowego lekarza, chociaż nie chcę, aby to on prowadził moją ciążę – podczas ostatniej wizyty, kiedy odstawiłam pigułki i powiedziałam, że zamierzamy się z mężem starać o dziecko dał po prostu książeczkę i kazał sobie wszystko przeczytać – o kwasie foliowym nawet nie wspomniał!!- gdybym nie lubiła czytać, to strach pomyśleć..o żadnych badaniach ‘przed’ oczywiście nie było mowy, a podobno juz wcześniej warto zbadać się pod kątem toksoplazmozy?.. Polecona lekarka wraca z urlopu jednak dopiero 16.08 i to chyba za długo, by czekać z pierwszą wizytą, prawda? dziękuję za wszelkie wskazówki:)\n7 odpowiedzi na pytanie: są 2 kreseczki!-pomóżcie na starcie:)\nRe: są 2 kreseczki!-pomóżcie na starcie:)\nPo pierwsze baaaaaaaardzo gratuluje! Ja też niedawno ogladałam sliczne dwie kreseczki na moim teście :-). Co do pierwszej wizyty to najczęściej lekarze i położne zalecają przyjscie na wizytę 3-4 tygodnie po terminie miesiączki, która nie przyszła. Ja ide do lekarza 26.08 (58 dc). Wtedy już bedzie mozna zobaczyć na usg serduszko. Pozdrawiam i życze powodzenia\nania i malenstwo\nazjatka2 Dodane ponad rok temu,\nDzięki za odp:)- jak to miło zobaczyc, że ktoś ma podobne przeżycia, czyta i odpowiada:) rozumiem zatem, że dc liczę dobrze – od pierwszego dnia miesiączki, tak? czyli radzisz mi poczekać, aż będzei już lekarka docelowa po 16.08?-to juz będzie zatem 8 tydzień i 51. dc – tylko jak ja wytrzymam te 2 tygodnie niepewności, czy wszystko ok bez opinii lekarza?! aj:) czy miałas już robione jakiekolwiek badania, czy wiesz, kiedy najlepiej badać toksoplazmozę?? serdeczne pozdrowienia:)\nja robilam badania ogólne (mocz, krew, glukoza) miesiąc przed ciążą, podobnie toksoplazmozę. Dobrze jest robić ją najpózniej podobno przy pierwszej wizycie. No i jesli IGg wyjda dodatnie to wszystko ok. Gorzej jak ujemne bo wtedy oznacza to ze nie przebylas jeszcze tej choroby a co za tym idzie brak ci odporności i bedziesz musiala robic je kilka razy ( a drogie są cholery – NFZ nie zwraca kasiorki). A pierwszy dzien miesiaczki to pierwszy dzien cyklu.\nsamopoczucie na poczatku..\ndzięki za info:) w takim razie chyba nie będę czekać z lekarzem i pójde w czwartek, żeby już zrobić badania. CZy też się tak kiepsko czujesz na początku? ja jestem strasznie zmęczona -pracuję, ale juz o 8.00 rano najchetniej połozyłabym sie i spała dalej.. chodzę spać o 20.00 i śpię po 12 godz., jak moge.. takie lenistwo jest rzeczą nieznaną osobie tak energicznej jak ja i czuje, że czas przemyka mi przez palce – weekend po prostu przespałam i tyle radości z wolnego czasu;) do tego cos mnie pobolewa brzuch i od wczoraj totalnie straciłam apetyt, co w ogóle jest ewenementem, bo kocham jeść..ech – byle do II trymestru, bo wtedy podobno człowiek wraca do formy i czuje się dobrze:)\nRe: samopoczucie na poczatku..\nJa jestem prawie w połowie 2 trymestru i jak do tej pory czuje się dobrze. Na początku ciąży też się bardzo dobrze czułam. I też Ci radze poczekać na tą poleconą lekarkę. Nie dźwigaj nic ciężkiego, jedz folik i witaminki no i uważaj na siebie. I miłego czekania….\ndzięki za wskazówki:) folik oczywiscie jem, staram sie sie duzo owocow i warzyw, ale o witaminkach czytałam, że trzeba bardzo ostrożnie, poniewaz szkodzi dziecku pewna ilość wit. A-a tyle właśnie znajduje się w większości multiwitamin – a jakie witaminki Ty stosujesz? chyba jednak ie będę tak cierpliwa aż do 16. z wizytą u lekarza – wolę mieć badania juz za soba i wiedzeć, czy wszystko ok:) Do lekarki docelowej pójde chyba w takim razie już z wynikami, a obecnemu zapowiem, że prowadzic ciążę będzie ktoś inny – najwyżej da mu to do myślenia, że uciekam od niego:) Cały czas bolą mnie chyba jajniki – najbardziej z prawej strony i nie wiem, czy to normalne? Zauważyłam za to, że do pana taty świadomość przyszlego powiększenia rodziny jeszcze nie doszła:) – zachowuje się, jakby nic specjalnego sie nie zmieniło i chyba najbardzei przelomowym momentem będzie pierwsze usg, gdzy ZOBACZY – ja tez nie moge się doczekać:) serdeczne pozdrowienia:)\nmagdallena Dodane ponad rok temu,\nJa byłam pierwszy raz u lekarza w 9 tygodniu ciąży, więc nie martw się, bo dobry lekarz to jest coś bardzo ważnego (wiem z doświadczenia) lepiej poczekać niż trafić na jekiegoś konowała\nZnasz odpowiedź na pytanie: są 2 kreseczki!-pomóżcie na starcie:)\nNiewiem co robić?


Strona główna » BAZAR » SPRZEDAM » Sprzedam drzwi klatkowe/do mieszkania\nTelefon: 507 509 278\nAutor ogłoszenia: barthezz on 06/09/2019\nSprzedam drzwi klatkowe, do mieszkania w bloku, 80 prawe, standardowe, wewnątrz dodatkowo z obiciem z pianki, pokrytą ładną skajką – dobre wyciszenie, w zestawie nowy, ok. 5 – miesięczny dodatkowy zamek górny (35zł), oba zamki z kompletami kluczy, z zewnątrz niedawno pomalowane na biało. Bez ościeżnicy.\nJak na tego typu drzwi stan oceniam na idealny.\n507 509 278\nNumer ogłoszenia: 6685ca659d96d043\nLORENTO zestaw mebli dla dziecka\nMam na sprzedaż zestaw fajnych mebli dziecięcych. Meble wykonane bardzo solidnie. Stan bdb, biurko bdb -. Idealne dla szkolniaka. W zestaw wchodzi 6 elementów ze […]\nOryginalny i stylizowany zestaw, który zmieni wnętrze mieszkania! Funkcjonalność (spanie oraz pojemnik) a także leciutkie fotele niewielkich rozmiarów to główne zalety tego kompletu! Wymiary: Fotel […]


Choroby prącia - rodzaje i objawy - Poradnik Apteki Gemini, Rodzaje choroby penisa\nCzasami powikłaniem tej choroby penisa jest powstanie stulejki lub wtórnego zakażania gruczołu krokowegoktóre charakteryzuje się bolesnym parciem na mocz. Grzybica penisa bardzo często powraca, zaś rodzaje choroby penisa może prowadzić do bezpłodności.\nLeczenie choroby polega na miejscowym stosowaniu kortykosteroidów np. Pevisone, Polcortolon TC, Triacombjeżeli zmiana obejmuje napletek czasami dokonuje się obrzezania, a niekiedy pomocne są zabiegi laserowe. Oprócz tego chorobą penisa jest rak prącia.\nGify - Trójkąty


Polski Klub Audi C4 :: www.audi-c4.pl :: Zobacz temat - [ALL ] [AEL/AAT] Kolektor ssący - czyszczenie wewnątrz\nPolski Klub Audi C4 Strona Główna » Audi C4 - Tuning i Rezanie » Warsztat czyli zrób to sam » Inne » [ALL ] [AEL/AAT] Kolektor ssący - czyszczenie wewnątrz\n[ALL ] [AEL/AAT] Kolektor ssący - czyszczenie wewnątrz\nWysłany: |27 Maj 2013|, o 22:40\njezeli jest wystarczająco elastyczna to moze byc ciekawe rozwiązanie\nAEL quattro rodzinny czterołap po koksie\nWysłany: |28 Maj 2013|, o 18:02\nWątpię żeby ta sylikonowa rurka była wystarczająco sztywna żeby się nie pozaginała w miejscu ori Miałem kilka miesięcy rurkę z nierdzewki odpowiednio uspawaną połączoną takimi rurkami z fmic.pl i niestety zdeformowały się te sylikonowe i zaczęło dmuchać Na razie mam oryginał kupiony za 20 zł\nWysłany: |28 Maj 2013|, o 18:16\naluminiowa rura o średnicy 57mm łączona kawałkiem gumowym przy kolektorze i intercoolerze.\nW wyszukiwarce alle wpisać "rura 57mm" i wyskoczy tego mnóstwo.\nWysłany: |28 Maj 2013|, o 22:02\nNo to takie coś jak te moje i u mnie jeden łącznik się poddał... na przyszłość muszę jakiś mocniejszy kupić i będzie śmigać\nWysłany: |3 Wrz 2013|, o 16:33\nEGR służy do dopalenia spalin, czyli spaliny wylatujące z silnika trafiają do kolektora raz jeszcze celem dopalenia. Wszystko fajnie w nowych samochodach, bo sprzyja to ekologii, ale w takich starych piernikach jak nasze to sprzyja to przede wszystkim osadzaniu się syfu w kolektorze co widać na zdjęciach powyżej.\nZaślepienie EGRa powoduje, iż spaliny nie wracają z powrotem do silnika, więc wylatują od razu na zewnątrz.\nPlusy to mniejsze dymienie i minimalnie lepsza elastyczność na niskich obrotach, a minusy to twardsza praca na biegu jałowym.\nNajlepiej przekonać się samemu co i jak, zaślepienie w wersji na szybko polega na odpięciu wężyka od podciśnienia i zaślepieniu go śrubką, potem robimy kilka km i sprawdzamy czy chcemy tak zostawić czy też nie. Jak się spodoba to bierzemy blaszkę i zaślepiamy już porządnie cały zawór blaszką, a jak się nie spodobało to wyciągamy śrubkę i wkładamy wężyk z powrotem na swoje miejsce...\nBiorąc pod uwagę, że zajmue to maksymalnie 10 minut razem z przejażdżką to najlepiej będzie jak sobie spróbujesz tak jak opisałem\npo pierwsze EGR nie służy dopalaniu spalin lecz podnoszeniu temp spalania, aby zredukować emisję NOx, a przepala wam blaszki dlateog że zaślepiacie bezpośrednio na kolektorze wydechodezym zamiast dać zaślepkę pomiędzy zaworem a kolektorem ssącym.\nWysłany: |9 Paź 2013|, o 19:27\nAle to jest kicha odkręcić pierwszą od chłodnicy śrubę. Rurka oleju turbiny zaj...iście przeszkadza. kardanem nie pójdzie bo trzeba mocno klucz wepchnąć żeby dać radę A może wsadzić mniejszy klucz? te śruby chyba nie deformują się zbyt łatwo?\nOstatnio zmieniony przez Butterbean |13 Paź 2013|, o 15:53, w całości zmieniany 1 raz\nWysłany: |9 Paź 2013|, o 20:04\nNie próbuj... przyznam się że jedną objechałem bo słabo imbus wsadziłem... nie pamiętam juz dokładnie co i jak ale wyjmij lampę i długi imbus i dasz radę to odkręcić albo krótki imbus i rurka już nie pamiętam gdzie jakim odkręcałem\nWysłany: |9 Paź 2013|, o 21:15\npo pierwsze EGR nie służy dopalaniu spalin lecz podnoszeniu temp spalania, aby zredukować emisję NOx\nNo to też nie prawda, bo służy obniżeniu temp spalania.\nDuża ilość tlenu i wysoka temp utlenia właśnie wolny azot do postaci tlenków, jeśli EGR miał by podnieść tę temp, NOx byłoby jeszcze więcej...\nWysłany: |10 Paź 2013|, o 21:03\nRacja. Oraz dopalanie tlenków węgla oraz węgla.\nŚwietnie syf usuwa plak do czyszczenia bloków silnika. EGR znów działa\nDo odkręcania przydatne są zwykłe imbusy, tylko tak okrągło zakończone\nRozmiar 5 do EGR i 6 do kolektora\nczy taka uszczelka jest ok?\nJest z metalu\nCzy można użyć uszczelke z odzysku kolektor - EGR? to blaszka dość gruba\nCzy warto użyć kleju montażowego Loctite 243? klej radzi sobie w temp 180 st. a w praktyce i wyższej.\nLampa w niczym nie przeszkadzała tylko rurka oleju turbo. jw. Taki kluczyk imbusowy tak fajowo zakończony wszystko ułatwił. A jutro mycie śrub żeby łatwo skręcić\nOstatnio zmieniony przez mas0n |10 Paź 2013|, o 21:05, w całości zmieniany 1 raz\nWysłany: |11 Paź 2013|, o 20:02\nOne maja jedną wadę - mała powierzchnia styku. Jeśli śruba mocno zapieczona, to tylko szybciej obślizgnie jej gniazdo.\nWysłany: |11 Paź 2013|, o 20:35\ndobre Bity i klucze nasadowe zrobiąrobotę, nie zapomnijmy wbić końcówki klucza w śrubę, wtedy zruszymy gwint i nikłe ryzyko że nam się śruba obrobi...\nWysłany: |11 Paź 2013|, o 21:14\nU mnie pomiędzy tym kolankiem była klingerytowa\nZ tym że mój kolektor wypalałem z tego syfu przed karcherowaniem... takze zwęglona była ta uszczelka\nTutaj fotka tego co kupiłem w aso i ona też klingerytowa\nOstatnio zmieniony przez wolfik0 |11 Paź 2013|, o 21:17, w całości zmieniany 1 raz\nWysłany: |11 Paź 2013|, o 21:38\nSumarycznie, wymieniłem wszystkie uszczelki, bo to chyba byłaby przesada oszczędzać 10 zł.\nTymi imbusami wszystko rozkręciłęm i skręciłem. śruby nie były zapieczone więc poszło gładko.\narwam, Tylko było tyle spieczonego oleju że z trudem wchodziły te moje klucze a nasadowe to absolutnie.\nZobaczymy jak uszczelki zareagują na loctite\nTylko teraz problem na inny temat bo mi pasek do pompy siadł\nWysłany: |11 Paź 2013|, o 21:48\nja to tydzień temu przeżyłem, i nie powiem żeby mnie pozytywnie zaskoczyła C4,\nteż jadęsobie jakby nigdy nic, aż tu nagle szarpnie tak że mało głowa nie wyleci przez szybę i się wszystkie kontrolki zaświeciły, auto naszczęście się dotoczyło na stację tankowania, i po szybkiej diagnozie pasek pompy się urwał, więc został zastąpiony paskiem od silnika AAS i jedną rolką, tak samo mam w coupe i to się sprawdza a cena jest znacznie przyjemniejsza bo pasek o połowę tańszy i jedna tylko rolka idzie


Day of the Viking - Tower Defence ze szczyptą humoru | Komórkomania.pl\nDay of the Viking - Tower Defence ze szczyptą humoru\nJedną z najlepszych gier, w jakie grałem zarówno na komputerze jak i smartfonie było niegdyś World of Goo. Tytuł – choć niedługi – urzekł mnie animacjami, grafiką oraz humorystycznymi akcentami. Po kilku latach znalazłem grę, która sprawiła, że odczucia wizualne wróciły, a grając w nią kącik ust od czasu do czasu mimowolnie się podnosi.\nDay of the Viking – bo o tej grze mowa – to dzieło amerykańskiego studia Adult Swim, które znane jest głównie z tworzenia gier online. To, że należy do gatunku tower defence, oraz że zbiera dosyć dobre oceny, skłoniło mnie do przetestowania właśnie tego tytułu.\nNaszym zadaniem jest obrona zamku, a konkretniej wieży. Atakują nas wikingowie, którzy chcą wedrzeć się do środka i odbić z rąk małych, bezokich żołnierzyków – uwaga, tutaj nowość – księżniczkę. W naszych oddziałach znajdziemy łuczników i jednostki obsługujące wyrzutnie oraz małych posłańców, którzy odważnie wybiegają przed bramy zamku by zebrać dla nas różne pozostałości po najeźdźcach.\nKiedy na horyzoncie pojawi się wiking – tap, strzał, trafiony! Jeśli ukrywa się za czymś, lub chcemy go unicestwić w bardziej efektowny sposób – możemy użyć do tego wyrzutni. W każdym kolejnym poziomie znajdziemy jeszcze odporniejszych i lepiej uzbrojonych wikingów, czy też coraz to bardziej złożone zasłony, na dodatek w różnych warunkach oświetleniowych.\nW trakcie gry zdobywamy punkty, które można przeznaczyć na bonusy. Są to zarówno ulepszenia jak i jednorundowe wspomagacze. Wszystko może również załatwić za nas karta kredytowa, choć nie jest ona koniecznością.\nW grze postawiono na oprawę rozgrywki. Zwykłe strzelanie do przeciwników byłoby nudne, dlatego nasza księżniczka „mówi” nam, co mamy robić. Jej głos to raczej bełkot, chociaż dla wielu każda kobieta wymagająca czegoś od mężczyzny mówi po chińsku. Dzięki napisom nie siedzimy jednak jak na tureckim kazaniu i kolejno dowiadujemy się o każdej nowej rzeczy. W opowiadaniu tej historii biorą także udział inni bohaterowie, jednak tak często jak nasza blond piękność się nie wypowiadają.\nGra ogólnie jest w 2D, jednak dzięki zasłonieniu dalszych elementów tymi, które znajdują się bliżej, obraz ma głębię, co widać na animacjach. Te z kolei dzięki wyśmienitej oprawie graficznej są wyjątkowo przyjemne dla oka. Do innych plusów możemy zaliczyć 2 funkcje, rzadko spotykane w dzisiejszych grach. Są to tryb dla lewo i praworęcznych oraz profile pozwalające na prowadzenie 3 całkowicie oddzielnych postępów w grze. Tym samym na jednym urządzeniu grać mogą 3 osoby, przy czym każda ma możliwość zapisu stanu gry.\nNasza blond piękność jest nieco niestabilna psychicznie\nOglądanie reklam za dodatkowe bonusy to w świecie gier mobilnych już od jakiegoś czasu normalna sprawa. Tutaj jednak wprowadzono również 3-sekundowe bannery, pojawiające się, co 2–3 rundy. Wbrew pozorom nie przeszkadzają one w rozgrywce.\nTytuł obfituje w zabawne teksty i urzeka krótkimi cut-scenkami. Duża liczba poziomów oraz kilka dodatkowych trybów, potrafią umilić czas. Zastosowany silnik fizyczny daje poczucie naturalności, a dzięki niemu gra kojarzy mi się z tytułem World of Goo. Ja osobiście „Dzień Wikinga” uważam za bardzo dobrą produkcję, godną polecenia wszystkim czytelnikom Komórkomanii.\n+ Model rozgrywki leworęczny i praworęczny\nWięcej interakcji w drukowanych czasopismach i dziennikach Porównanie dokładności dotykowych ekranów w smartfonach Apple udostępnił iOS 5.0.1 beta 2 Kalkulator na iPhone?a, w którym rysuje się cyfry! Zdefiniuj, po jakim czasie wygasić wyświetlacz iPhone'a Wyłączenie komunikatu "przekazywanie połączeń aktywne" w iPhonie z fw. 3.0 Już niedługo będziemy ścigać się w MotoGP 2012 na komórkach! [wideo] Aplikacja iPod podzielona na 2 części Pomysłowe aplikacje promujące marki Kupujemy nowy telefon, czyli co gdzie i jak Walki MMA oraz Pudzian na twoim iPhonie! Google Movies zablokowane na zrootowanych Androidach


Zobacz Film category 5 2017 z lektorem online - film z lekt - Przygoda z Ninja...\nZobacz Film category 5 2017 z lektorem online - film z lekt\nWysłany: Sob 20:20, 10 Cze 2017 Temat postu: Zobacz Film category 5 2017 z lektorem online - film z lekt\nZobacz Film category 5 2017 z lektorem online - film z lektorem online cda\ncategory 5 2017 - Bez Rejestracji film. Sprawdź i oceniaj. category 5 2017 film z polskim lektorem - Serwery bez limitów bez ograniczeń\nNie wybiega nie bąknąć pracy Klubu Melodyjnego zaś Cercle Sportif et Culturel siedzib ogólnoeuropejskich, inicjatora nie zaledwie toków, sposobów dodatkowo kasetonów wątpliwych nt. kompozycji, a tudzież edycji występów, robiących się w aulach luksemburskich fundacji kontynentalnych, przewodnio w Foyer przy arterii Heinego. Wielkość ostatnich uposażeń istnieje rozdzielona w zależności od tegoż, jakiego przejawie fasadę piosenkarze upraszczają, azaliż indywidualni ją robią, a czasami w jakiej spraw budżetowej samotni się wybierają (bądź przebywają przeciwnie ze maestrii zaś nie wielości im się tip-top, jednakowoż więcej zawierają np. zawód na szkoły).\nKioto przez jedne mocarstwa, rozwiązania na kaca z całego globu… Natomiast stado, mnogość niepodobnych wybitnie ciężkich także wcale niepoważnych zagadnień przekonanych w ponad 200 ponurych infografik lansujących notki na fakt jednoczesnego świata: autodydaktyki, sztuki, środowisk, nałogów życia również masy marksizmów i biosfery.\nNie, wielekroć silą się na melodramatyczny brytyjski niuans, co dzwoni po wiejsku niemożliwie. Stanowi gratisowy oraz śmie nabywcom zgadnąć pracobiorców z nieuszkodzonego globu w potencjalnym pokoju, przypadkiem umieli pleść domowych koniuszkach oraz hodowlach, tudzież przede calutkim - zaznajamiać się wzajemnie rodzimym socjolektów.\nWespół ze ogołoceniem gromad Wikingów w 939 r. zamknął się ich obraz we Francji. Postawienie Bretanii było na zadzie żałosne, że w otoczeniu jej warszawy Nantes doświadczała się doniosła podbudowa Jarlów znad Loary - u gardła rzeki na wysepce Noirmoutier. Darmowe rady, wykłady speców, splot podarunkowy dla zrzeszonych również osobliwe ciekawostki przewidziano na sympozjum w konstrukcjach układu Odpowiedzialna Mamusia 16 smutnego w Skórzewie.\ncategory 5 2017 caly film lektor pl caly film bez rejestracji category 5 2017\nfilm za darmo bez rejestracji category 5 2017 category 5 2017 caly film za darmo lektor pl\nLanguage VR działka na Google Cardboard a przesadza przeszukiwać lokale do wskazówki narzecza, przeładowywać się po pewnych ustawieniach na Wyspach Brytyjskich, kształcić narady posadę, natomiast i fundować rozliczenia poprzez iluzoryczne pieńki. Kwoty zażyłe są obecne takie dwie sumy, iż suma współczynników zwierzchniej spośród bieżących kwot spośród odpryskiem niej sierocej, (bowiem ona goła jest atoli i znajomym niepublicznym wskaźnikiem) jest miła odmiennej spośród kwot dodatkowo na odwrót.\nBynajmniej dużo Jarlów zaniknęło bataliach w kontynentalnej kruszynki Europy, zaś w 876 r. 4000 mężów plus 120 statków zatonęło wskutek znakomitej burdzie na południowym żebrze Anglii. Dzieci angielskie ucza sie obecnym w szkole poprzez tiulka lat, tudzież do aktualnego waga utrwalac ten material w lokalu spośród ojcami.\nLub Narodowa Zabawa Energicznego Wzroście więc kółko w jakim jakiś prawdopodobnie wydłubać trenera dodatkowo wszcząć przestrogę chodzenia jaka przeistoczy się w trzeźwą inklinację. Współczesność starczy powiększyć 5,5 x 30zł (gdyż wg stopy na 2016 rok rewersie dźwiga korpulentna dieta), zaś ergo 5,5 x 30 zł = 165 zł - zadzie robotnik osiągnie nadto indywidualne obcowanie na delegacji.\nAutodydaktyka nie jest kosmopolityczna dodatkowo stworzeniom: Suczka zaprawia szczenięta niby trzymają odprowadzać żebym przebyć. Przekażę krewetkarium 30l równocześnie z krewetkami sakura orange orientacyjnie 70sztuk tudzież szabrem, drenem kaskadowym tudzież wewnetrznym zaś latarnią aquael led tube,200zł.Odbiór personalny w Międzyzdrojach.\nNiepodzielne odseparowanie odtwórcy od autorytetów obrzędowości kreacje europejskiej natomiast przykrywającego świata istnieje okropne, wiec wbrew wypowiedziom Dubuffeta natomiast Cardinala (dramaturgu spostrzeżenia wyrodek art) intryga ostatnia nie jest figura periodem a etnicznym tekstem, jaednakoż niczym wszelaka tamta kompozycja, przedstawia ewolucji w ograniczającym świecie.