Pokazywanie postów oznaczonych etykietą Security. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Security. Pokaż wszystkie posty

wtorek, listopada 18, 2014

Ciekawostki ze środy 20 sierpnia 2014

Monografia o Ajax i pokrewnych technologiach - http://ajaxpatterns.org/. Szczególnie jest ciekawy rozdział o IFrame do komunikacji przeglądarka-serwer. Taka ramka ma własny adres źródłowy URL i można go zmieniać. Czytając wynik pobrania tej strony w ramce można dynamicznie w stronie wywołującej ramkę wstrzyknąć ‘obcą’ zawartość. ramka służy jako repozytorium danych dlatego się ją ukrywa poprzez klasę w arkuszu stylów. Można obsłużyć pobranie danych z serwera (GET), z POST-em jest kłopot, ale można go obejść poprzez wysyłanie sygnatury formularza z danymi (<FORM>…</FORM>). To była dobra technologia PRZED pojawieniem się XMLHttpRequest. Teraz to czysta ‘sztuczka’ (hack) nikomu właściwie niepotrzebna. Szczegółowy opis jest tu - http://www.pxl8.com/iframes_3.html – bardzo ciekawa technika ale już ustępująca.

Coś na wirusy i ich pochodne – Malwarebytes Anti-Exploit, oprogramowanie które zabezpiecza komputer przed wykorzystaniem podatności w przeglądarkach, jej dodatkach i Javie (dziur w oprogramowanie użytkowym wykorzystywanych przez złośliwe oprogramowanie). W wersji płatnej również PDF, Office, oprogramowanie mutimedialne. Usuwa nie produkty (złośliwe oprogramowanie) ale problemy przez nie pozostawione.  Jest to uzupełnienie do  ich innego produktu - Malwarebytes Anti-Malware (zabezpiecza przed załadowaniem kodu przez złośliwe oprogr. po fakcie zarażenia komputera). Podobnym produktem jest MS Enhanced Mitigation Experience Toolkit, ale on wymaga jeszcze trochę doszlifowania.

Poradnik inwestora - http://jakoszczedzacpieniadze.pl/

Tutoriale Java:

środa, maja 09, 2012

Skryptowanie w JS

Nauka jQ - http://www.learningjquery.com/.  Przygotowanie do bindowania - $("div").data("imaDiv", true) – oznacza to przypisanie do jakiegoś div-a nowej zmiennej o wartości ‘true’.

Fundamentem każdej strony wysyłającej dane od klienta do serwera jest kontrola danych zarówno po stronie klienta jak i po stronie serwera z jednakowym naciskiem na szczegółowość kontroli po obu stronach. Tak twierdzi Tim Kulp na stronach wirtyny MSN ScriptJunkies w artykule “Lockdown Pt 2 – Sanitazation and Data Security”. Pierwszy etap kontroli do tzw. Input Validation, drugi to Sanitazation and Data Security. Niebezpieczeństwo wynika z korzenia architektury maszyn von Neumana – dane są traktowane jako kod. W przypadku JS i HTML powoduje to możliwość ataku poprzez podsunięcie pod ciąg zawierający dane jakiegoś kodu i nosi to nazwę XSS (Cross Site Scripting) – opis tego rodzaju ataków jest omówiony w innym artykule na MSDN. Sanitazacja oznacza wyczyszczenie danych ze szkodliwego kodu. Istnieją po stronie klienta (przeglądarki z JS)  bezpłatne biblioteki do czyszczenia kodu – ESAPI4JS (OWASP) i jquery-encoder (wtyczka do jQ). Przesyłane dane można szyfrować przy pomocy biblioteki jCryption (ma ona wersję zarówno dla php jak i js). Proszę się nie obawiać tego, że algorytmy szyfrowania są dostępne w kodzie źródłowym – bez obaw, podstawą bezpieczeństwa jest KLUCZ a nie sposób jego użycia. Cz. I teo artykułu mówi o procesie Input Validation w oparciu o metodykę NIST i OWASP (OWASP Top Ten project) - http://msdn.microsoft.com/en-us/magazine/hh314542.aspx.

środa, kwietnia 11, 2012

Od nadmiaru Javy głowa boli

Artykuł w infoworld na temat zainfekowania wirusem komputerów Apple jest skierowany do zachęcenia zaprzestania korzystania z Javy, w przeglądarce internetowej jest ona równie niebezpieczna jak osławiony ActiveX (MS sam zresztą go pogrzebał, ale wtedy Sun triumfował z jakoby bezpieczną technologią java applet). Teraz widać, że hackerzy przerzucili się na inne platformy jak Android, iOS, Java, Flash gdzie jest jeszcze dużo do zrobienia. Nie bez znaczenia w ułatwianiu ataku jest osłabienie czujności klientów uważających swe platformy za bezpieczne. Ostatni atak wirusa/trojana Flashback nie poszedłby tak gładko na platformie Windows gdzie są bardziej wyedukowaniu ludzi i stosujący regularne patchowanie systemu.

Artykuł ten wręcz mówi o konieczności zaprzestania korzystania z Java. A jest jej blisko 3 mld instalacji na świecie.

czwartek, września 29, 2011

Różności o bezpieczeństwie

Z ITWorld – dlaczego strona MySQL została zainfekowana tak, że wysyłała złośliwe oprogramowanie do przeglądarek? Dlatego, że intruz wstrzyknął kod JS, który wykorzystał słabości zainstalowanych u klienta pakietów użytkowych (Adobe Reader, Flash i Java) – “Security vendor Armorize noticed the problem at around 5 a.m. Pacific Time Monday. Hackers had installed JavaScript code that threw a variety of known browser attacks at visitors to the site, so those with out-of-date browsers or unpatched versions of Adobe Flash, Reader or Java on their Windows PCs could have been quietly infected with malicious software.” – przez to zaraził komputery klientów. Potwierdza to fakt, że coraz więcej ataków wykorzystuje źle zaktualizowane programu użytkowe na stacji klienta. PSI firmy Secunia potrafi na bieżąco śledzić stan i wersje takiego oprogramowania – ten monitor jest bezpłatny.

Na temat nowego ataku SSL - http://windowssecrets.com/links/y6pkszr6i9uqd/e0c916h/?url=technet.microsoft.com%2Fen-us%2Fsecurity%2Fadvisory%2F2588513. Atak polega na przechwyceniu ciasteczek sesji w trakcie sesji HTTPS i odszyfrowaniu ich i co za tym idzie ukraść sesję. Atak się udaje w przypadku użycia protokołu TLS 1.0 i wykorzystaniu w nim kodowania CBC. Obejście polega na stosowaniu kodowania RC4 lub przejścia na protokół TLS 1.1 lub wyższy (ale nie wszystkie serwery internetowe go wspierają). W polityce grupowej można nadać RC4 wyższy priorytet - TLS_RSA_WITH_RC4_128_SHA.

Uwaga wg. NetworkWorld: ratunkiem przed potencjalnym atakiem jest ustawienie kolejności (priorytetu) w jakiej UZGADNIANE są algorytmy szyfrowania podczas sesji HTTPS (w czasie negocjacji specyfiki protokołu wymiany między klientem a serwerem). Podatność na atak (znana od 2004 i od 2006 organizacja IETF polecała mocniejszy protokół TLS 1.1, ale uważano, że nie da się jej wykorzystać) polega słabości algorytmu BLOKOWEGO CBC a nie strumieniowego.

sobota, września 24, 2011

Sprawa certyfikatów

Certyfikatów jest wiele, m.in. komercyjny i kwalifikowany. W Polsce inne rodzaje certyfikatów są mało popularne no chyba jeszcze certyfikat na serwer internetowy i SSL. U nas z certyfikatów najczęściej korzystają PRZEDSTAWICIELE firm. Ciekawa sprawa, jeżeli ktoś dostał od firmy certyfikat kwalifikowany to nigdzie nie jest napisane, że nie może się nim posługiwać prywatnie (JEST on wystawiony na OSOBĘ). Taki certyfikat z nazwiskiem jego posiadacza jest jego niejako elektronicznym dowodem osobistym. To, że ma tam gdzieś nazwę firmy oznacza, że kiedyś w niej pracował – zresztą miejsce pracy nie jest takie ważne, dzisaj tu, jutro tam – chyba, że firma taki certyfikat unieważni. Zresztą wypróbowana praktyka w dokumentach papierowych jest taka, że podaje się dane osób UPOWAŻNIONYCH lub PRZEDSTAWICIELI do składania podpisu. Podpisując dokument z nazwiskiem osoby upoważnionej pozwala sprawdzić czy ona właśnie podpisała ten dokument elektroniczne – to taki double-check.

Dla firm trudno raczej certyfikat uzyskać, kwalifikowany jest dla osób fizycznych tylko. Co robić? Można wystosować zapytanie do naszych trzech wystawców certyfikatów lub zwrócić się do uznanych firm zagranicznych jak Thawte lub Verisign (lub mniej znanych jak GlobalSign a na pewno nie do DigiNor – ta firma po skandalu z wyciekiem certyfiaktów i brakiem należytej kontroli nad procesem obsługi życia certyfikatu słusznie zresztą upadła). Poszukałem trochę w sieci – CERTUM daje certyfikat niekwalifikowany, podobnie KIR, inna definicja niezależna. Ale chyba najlepiej precyzuje różnice między tymi dwoma certyfiaktami stowarzyszenie PEMI:

  • certyfikat kwalifikowany może być używany jedynie do składania/weryfikacji podpisu elektronicznego. Ustawa zabrania używania go do innych celów takich jak logowanie, szyfrowanie. Certyfikaty kwalifikowane mogą być używane tylko z "bezpiecznymi aplikacjami" czyli takimi które posiadają oświadczenie producenta o zgodności z wymogami ustawy o podpisie elektronicznym
  • certyfikaty niekwalifikowane nie posiadają ograniczeń pod względem ich użytecznośc
  • certyfikaty niekwalifikowane mogą być przechowywane na komputerze użytkownika lub na urządzeniu kryptograficznym (karta mikroprocesorowa, etoken itp). Użytkownik ma pełna swobodę w wyborze nośnika certyfikatu
  • podpis elektroniczny weryfikowany przy pomocy certyfikatu niekwalifikowanego wywołuje skutki prawne podpisu odręcznego jeśli obie strony zawarły wcześniej umowę. W umowie powinny być zawarte zapisy o wzajemnym uznaniu podpisów weryfikowanych przy pomocy certyfikatów niekwalifikowanych
  • certyfikaty niekwalifikowane mogą wydawać Centra Certyfikacji niekwalifikowane i kwalifikowane
  • skutki prawne -  jeśli obie strony (wymieniające podpisane elektronicznie dokumenty) zawarły wcześniej umowę. W umowie (tak zwanej komunikacyjnej) powinny być zawarte zapisy o wzajemnym uznaniu podpisów weryfikowanych przy pomocy certyfikatów niekwalifikowanych oraz identyfikatory tych certyfikatów np. "nr seryjny"

PEMI jest na tyle “dobre”, że oferuje przedsiębiorcom usługę pod nazwą e-Firma (raczej ją mgliście przedstawia) ale daje certyfiakty min do podpisywania kodu. Wszystko za darmo. Podpis elektroniczny w Polsce wg. PEMI:

    • Centra kwalifikowane:
      - PWPW Sigillum
      - TP Internet Signet (zawieszona działalność)
      - KIR
      - Unizeto Certum
    • Centra niekwalifikowane:
      - Polcert
      - Energocert
      - PCC EuroPKI

Podobne szerokie kompendium wiedzy na temat podpisu jest tu na stronach IPSEC.

Inna sprawa to wykorzystanie certyfiaktów do podpisywania kodu. Microsoft zawiera szereg programów wspierających ten proces – opis code signing jest tu. Ich lista znajduje się tu i można je pobrać ze strony Windows SDK (trzeba je ściągnąć), wsród nich jest signtool do podpisywania kodu certyfikatami. Innym poleceniem jest certmgr. Uwaga – ten polecenia certmgr.exe i inne wykonywać w katalogu z SDK (c:\program files\microsoft SDKs\Windows\v7.0A\bin)! W przeciwnym wypadku pojawi się wersja przystawkowa (msc). Certmgr.exe jest ważna ponieważ pozwala zarządzać CRL – tutaj na MSDN mamy opis. Powyższe programy wchodzą w skład “miękkiej” części Windows Client (klienckiej) - narzędzi do tworzenia oprogramowania. Z kolei z innej bajki jest równie pomocne polecenie certutil. Wchodzi w skład Serwera Windows 200X (a dokładnie jego komponentu tzw. Certificate Services) – a więc jest skierowane dla administratorów. Zarówno certutil jak i certmgr pozwalają na zarządzanie CRL (najbardziej interesujące jest odszyfrowanie formatu CRL i “wydruk” listy odwołanych certyfikatów). Można też samemu “odszyfrować” ten format – jest to ASN.1 (Abstract Syntax Notation 1).

Nierozerwalnie ze sprawami certyfikatów wiąże się karta inteligentna tzw. smartcard. Microsoft wybrał implementację PC/SC – to zresztą standard na komputery PC. Architektura programowa obsługi SC jest opisana tutaj na stronach MSDN.

Podpis można opatrzeć znacznikiem czas z bezpłatnego serwera publicznego - http://time.certum.pl.

Ciekawostka – usługi dodatkowe świadczone przez CERTUM: Notarius oraz sprawdzenie stanu certyfikatu w trybie on-line. Trzeba też sprawdzić ofety KIR, Sigillum i Mobitrust – na komórkę / Mobicert. Zagraniczne rozwiązania mają firmy: Aloha, Eldos a w odniesieniu do PDF – GlobalSign. Firma ta jest partnerem Adobe w projekcie CDS (Certified Document Services) – mówi o tym ten dokument. Jej oferta jest droga i różni się technicznie od naszgo podpisu z CERTUM tym, że głównym urzędem certyfiakcyjnym jest w tym przypadku nie polski urząd a sama firma ADOBE (ale za to każe sobie słono płacić). Przypomina się tam też, że PDF nie jest zamkniętym formatem -  a standardem ISO 32000-1. Kolejny standard ETSI/ESI Technical Standard (TS) 102 778 (w skrócie PAdES) – stanowi odpowiedź na spełnienie wymogów dyrektywy unijnej - 1999 EU Signature Directive.

Podobnie funkcje podpisywania dokumentów PDF ma biblioteka KIR napisana w języku Java.

wtorek, stycznia 04, 2011

Wybrane ciekawostki

  1. Wg. VaGla.pl - Ustawa o podpisach elektronicznych – rząd ją przyjął w kwietniu 2010 i miał przesłać do Sejmu i notyfikacji przez UE. Od tego czasu nie wiadomo co się z nią dzieje. Ale coś tu mamy, w portalu VaGla.pl jest cała gałąź na temat aktualnego stanu tych spraw - http://prawo.vagla.pl/podpis_elektroniczny
  2. Z innej beczki – portal sharpbrains – zawiera wiele informacji o mózgu oraz jego działaniu - http://www.sharpbrains.com/resources/1-brain-fitness-fundamentals/
  3. Zagadki, kto ich nie lubi? http://brainden.com/
  4. Dla dzieci – jak zacząć programować w Pythonie - http://msdn.microsoft.com/pl-pl/library/gg455949

piątek, kwietnia 16, 2010

Nauka

  1. Office Online – portal z ćwiczeniami oraz poradnikami na temat tego pakietu biurowego - http://office.microsoft.com/en-us/training/FX100565001033.aspx
  2. Pytania i odpowiedzi na temat Office - http://answers.microsoft.com/en-us/office/default.aspx#tab=1
  3. Dodatek do MS Word – chemia - http://research.microsoft.com/en-us/projects/chem4word/
  4. Nowy, profesjonalny framework do testowania – Seleneese jest to połączenie Selenium z Fitnesee (serarchsoftwarequality.techtarget.com). Z tegoż samego portalu pochodzi artykuł na temat SoapUI
  5. Nowe aplikacje typu express na portalu MS (teraz w wersji 2010)
  6. Jak poznać możliwości Azure – oto są filmy - Front Runner for Azure, Tony's training videos oraz Four-minute Windows Azure virtual lab.
  7. Z innej beczki – sterowanie serwisami Google Data poprzez cURL - http://code.google.com/intl/pl/apis/gdata/articles/using_cURL.html
  8. Podpis XAdES w MS Office 2010 – na czym polega rola sygnatury wizualnej - http://blogs.technet.com/office2010/archive/2009/12/08/digital-signitures-in-office-2010.aspx. Jak do tego doszło? MS Office 2007 pozwala na podpisywanie zgodnie z XML-DSig (starsze wersje tego pakietu używały mniej zaawansowanego podpisu binarnego) – standardem http://www.w3.org/Signature. Najnowsza wersja MS Office 2010 stosuje nowe algorytmy wspierane przez Windows Vista  (krzywe elityczne), można również stosować bardziej zaawansowany algorytm mieszający (hash)  taki jak SHA-252. Uporano się także z problemem wygasanie certyfikatów i starych dokumentów je zawierających (podpis cyfrowy dokumentu któremu nie można zaufać po wygaśnięciu certyfikatu, odpowiedź na pytanie czy w momencie składania podpisu certyfikat był ważny czy nie?) – poprzez przejście na rozszerzenie standardu XML-DSign tj. XAdES. Dzięki temu uzyskano zgodność z dyrektywą EU -  Advanced Electronic Signature Criteria Directive 1999/93/EC. mamy wiele wersji XAdES: najprostsza XAdES-BES/EPES – zawiera informację o samym certyfikacie, już odporna na czas wersja XAdES-T gdzie jest oznakowanie czasem oraz jeszcze bardziej zaawansowane. Żeby oznakować czasem należy skonfigurowac serwer czasu zgodny z RFC 3161. Odnośnie podpisu – można stosować wiersz podpisu (signature line) lub pieczęć (signature stamp).
  9. Podglądanie stron webowych - http://fireshark.org/
  10. Ciekawy portal – TOAD – wtyczka do VS 2K10 – na razie jest w wersji beta i można ja testować za darmo - http://toadextensions.com/beta.jspa. Uwaga dla mySQL jest też swój TOAD – free. Na stronie http://www.toadworld.com/DOWNLOADS/Freeware/tabid/680/Default.aspx jest wiele ciekawych darmowych aplikacji.

poniedziałek, marca 29, 2010

Ciekawostki do pobrania

  1. PC World ->Sandra 2010 SP1 – kompleksowe narzędzie do badania komputera (pod katem sprzętu i oprogramowania). Wersja Lite jest bezpłatna.
  2. NetWorld - Jak wzmocnić bezpieczeństwo aplikacji webowych – skaner ? Są skanery płatne i darmowe. Ostatnio Google udostępnił darmowy skaner SkipFish autorstwa pracownika tej firmy Michała Zalewskiego. Jest szybkie. Co do oceny to nie próbowałem.
  3. ItWorld - chiny rządzą DNS – błąd (prawdopodobnie w protokole BGP (Border Gateway Protocol) spowodował załadowanie do kilku serwerów głównych DNS (root DNS server) adresów z serwera rządowego Chin (osławiony Chinas Great Firewall) . Lista adresów blokowała dostęp do stron niezależnych i nieprzychylnych rządowi ChRL. Powodowało to efekt przekierowania  szukania adresów IP nazw stron do serwerów chińskich które miały reguły blokujące swobodny obieg informacji (dostęp do stron m.in. falung). W efekcie niektórzy dostawcy usług internetowych z Chile i USA stali się de facto cenzorami treści uważanych za niewłaściwe dla interesu Chin. Niedługo będzie ogólnoświatowa akcja wzmocnienia ochrony serwerów DNS – poprzez szyfrowanie i certyfikaty – czy to coś pomoże? Zobaczymy.
  4. Tamże  - tegoroczna konferencja Pwn2Own  zgodnie z oczekiwaniami pokazała słabość popularnych przeglądarek (IE w ciągu 2 min, Safari – 2s, Fireofx – też nie lepiej). Ostał się jedynie Chrome. Być może to za sprawą podejścia do otwierania każdej strony w piaskownicy i na dodatek z minimalnymi uprawnieniami. Dlatego mimo, że Chrome zbudowany jest na popularnej bibliotece WebKit (bazuje na niej m.in.  Safari) jest to jedyna przeglądarka do której nie było nawet prób podejścia do jej złamania poprzez atak typu drive-in  (spreparowanie strony tak by uzyskać specjalne przywileje w systemie operacyjnym). Może gdyby organizatorzy zmienili warunku konkursu znalazłby się chętny na 10 tyś dolarów i sławę białego hackera.  Wniosek dla naszej firmy jest taki – Chrome jest przeglądarką przyszłościową – jest szybka i bezpieczna – może dlatego trzeba się jej lepiej przyjrzeć u nas w firmie?
  5. Tamże -SVG – temat rzeka. Brak natywnego wsparcia tej technologii w IE mimo, że jest ono w innych przeglądarkach od 2002 (co prawda nie zawsze jest to do końca zrealizowane). MS ogłosił natywne wsparcie SVG (poprzez znaczniki HTML) w IE 9. Sporo wody upłynie zanim popularność IE 9 osiągnie poziom IE 7, ciągle są strony w technologii IE 6. Znaczenie nabiera fakt wykorzystania do renderowania grafiki  mocy procesorów graficznych. Daje to niesamowitego “kopa” aplikacjom korzystającym z HTM 5 i SVG i stanowi to poważne zagrożeni dla wszechobecnego Flasha.
  6. A pro po mam tu zasoby na temat SVG:
    1. Samouczek opracowany przez W3C
    2. Edytor na google
    3. Dema

poniedziałek, czerwca 22, 2009

Microsoft bezpieczny?

“Pigs fly?” nieprawdopodobne, ale MS uzyskuje coraz lepsze notowania u znawców bezpieczeństwa.  Za sprawą wdrożenia procesu wytwórczego Security Development Lifecycle (SDL). “Complexity is enemy of scurity”. Ciekawa książka “Writing Secure Code”, mam ją po polsku. Bezpieczeństwo łatwiej zapewnić gdy koduje jeden człowiek (PGP), podobny przykład Adobe Acrobat – wraz z pojawieniem się poszerzonej funkcjonalności i większej popularności pojwaiły się błędy. Z drugiej strony przywiązywanie zbyt dużej wagi do bezpieczeństwa nie poparte o solidne podstawy teoretyczne i warsztat narzędziowy spowoduje, opóźnienie oddania produktu i oddanie inicjatywy w ręce konkurencji. Z kolei produkty uważane za super bezpieczne np. qmail nie znalazły powszechnego zastosowania  z uwagi na skromną funkcjonalność. W oprogramowaniu czasami warto poblefować – ludzie chętnie płacą za funkcjonalność bo ją widać a rzadziej chcą płacić za wbudowane bezpieczeństwo.

Z innej beczki – nowe przeglądarki muszą się liczyć ze standardami w tym z nadchodzącym HTML 5 - http://news.cnet.com/8301-17939_109-10266230-2.html?tag=nl.e776

Google DOCS – można pobrać przy pomocy skryptu: http://lifehacker.com/5296814/grab-all-your-google-docs-with-a-python-script

Edytor TED –mały i szybki - http://jsimlo.sk/notepad/features.php

Google Book – to działa - http://books.google.com/books?id=GgJN2CC_2s4C&printsec=frontcover&dq=Pro+Javascript&ei=1k8_SvmoGIzqzATZmZHIAw&hl=pl

Nowinki w świecie przegladarek internetowych:

  • Opera – nowa wersja 10 jest bardzo szybka (mimo, że to beta) i jest wyposażona w możliwości  serwera mechanizm UNITE. M.in. współdzielenie plików, muzyki, czat, karteczki oraz serwer internetowy. Jest to wersja beta, co z tego wyjdzie zobaczymy.
  • Mozilla postępuje podobnie – udostępnia JetPack - https://jetpack.mozillalabs.com/

Jak podejmować decyzje?  – byle nie za szybko – taka jest rada artykułu.  Lepiej trochę poczekać i przygotować sobie plan rozwiązania w trzech krokach (powtarzanych iteracyjnie):

  • obserwacja – zbieraj dane i szukaj jakichś powielarnych wzorców i zdarzeń,
  • interpretacja – badaj to co widzisz i słyszysz, spróbuj wymyśleć hipotezy na temat co się właściwie dzieje,
  • interwencja – działanie skierowane w celu wypróbowania kolejnych hipotez

poniedziałek, kwietnia 06, 2009

Nowinki

  1. Rywal Google rozwija się na piersi Yahoo – Hadoop - http://www.cioinsight.com/c/a/Linux-and-Open-Source/Why-Hadoop-Has-Google-Fans-and-Rivals-Excited-616181/?kc=CIOMINUTE04032009CIO1
  2. Joel on Software - That's one sure tip-off to the fact that you're being assaulted by an Architecture Astronaut: the incredible amount of bombast; the heroic, utopian grandiloquence; the boastfulness; the complete lack of reality. And people buy it! The business press goes wild!" -  Groovy (Ray Ozzie) przejęte przez MS maiło na celu zreformowanie Lotus Notes. Obecnie Ray Ozzi jest naczelnym architektem MS i jego utopijne idee znalazły światło dzienne w MS MESSH.
  3. Niebezpieczeństwo nauczania Java - Poziom edukacji studentów wyznaczają takie własnie kursy - “The other hard course for many young CS students was the course where you learned functional programming, including recursive programming. MIT set the bar very high for these courses, creating a required course (6.001) and a textbook (Abelson & Sussman's Structure and Interpretation of Computer Programs) which were used at dozens or even hundreds of top CS schools as the de facto introduction to computer science. (You can, and should, watch an older version of the lectures online.)” – źródło. Kurs w postaci ksiązki - Structure and Interpretation of Computer Programs
  4. Zamienniki dla CAPICOM – wejście - http://msdn.microsoft.com/en-us/library/cc778518(VS.85).aspx
  5. Odnośniki do info na SIgillum :
    1. http://www.sigillum.pl/sig-cmsws/page/?F;163 - dokumentacja
    2. http://www.sigillum.pl/sig-cmsws/page/?F;167 – sprawdzanie faktur
  6. Ciekawe zdanie (http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509chain.build.aspx):“

    Note that a valid X.509 certificate from a trusted issuer is valid only for the use specified in the X509ChainPolicy object. Certificates that meet these chain policy rules might still be invalid for specific uses with such features as Security/MIME (SMIME), Authenticode, or Secure Sockets Layer (SSL). If further processing is required to determine whether the certificate is valid for a specific policy, derive a class from X509Chain and override the Build method so that it calls the base class Build method first, and then does the additional processing.

  7. Dostęp do TV - Korzystając z takiego programu jak GPass (dostępny pod tym adresem internetowym) możesz ukryć swój adres IP i uzyskać pełny dostęp do zablokowanych strumieni TV za pośrednictwem serwera proxy. Na dodatek pozostaniesz anonimowy w Sieci.
  8. Ważna pozycja “Certificate Revocation and Status Checking” - http://technet.microsoft.com/en-us/library/bb457027.aspx. Lista CRL jest stworzona i podpisane przez urząd CA. Są dwie listy CRL: base zawiera wszystkie odwołane certyfikaty i delta – te, które doszły od ostatniej publikacji. Inne formaty list to: OCSP, SCVP - (Simple Certificate validation protocol), XKMS (XML Key management Specification) są również obsługiwane przez CAPI dzięki wtyczkowej budowie dostawców (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/rpcrypto.asp).  CRL można zobaczyć poprzez przystawką lub dump z Certutil.
    1. Składnice certyfikatów – testowano z 1300 certyfikatami, nie ma problemów z wydajnością. Nazwy:  “My”, “Root”, “Trust”, “CA”
    2. Dalej opisany jest format CRL.
    3. Wejście do listy CRL (URI) może znaleźć się w certyfikacie w polu CDP (Crl Distribution Point). Błąd “revocation offilne” zachodzi wtedy gdy nie uda się pobrać z URL danej listy (nie może przejść przez proxy lub time-out ponieważ lista za duża). Wtedy będzie sprawdzane lokalne repozytorium lub cache.
    4. Sprawdzenie cache: certutil –urlcache CRL
  9. Inna ważna pozycja “Troubleshoting Certificate Status and Revocation” - http://technet.microsoft.com/pl-pl/library/cc700843(en-us).aspx
  10. MS ma cały blog na temat PKI: http://blogs.technet.com/pki/
  11. http://blogs.technet.com/pki/archive/2006/11/30/basic-crl-checking-with-certutil.aspx – opis certutil
  12. https://blogs.msdn.com/spatdsg/archive/tags/Crypto/default.aspx?p=2
  13. http://technet.microsoft.com/en-us/library/cc772670.aspx
  14. Import certyfikatu do karty - http://blogs.technet.com/pki/archive/2007/11/13/manually-importing-keys-into-a-smart-card.aspx
  15. Sprawdzanie certyfikatów: http://www.junlu.com/msg/393857.html
  16. Jakieś problemy z weryfikacją -http://www.mail-archive.com/itext-questions@lists.sourceforge.net/msg33966.html tam jest link do  http://itextpdf.sourceforge.net/howtosign.html#howtoverify
  17. Tu też problem - http://www.eggheadcafe.com/forumarchives/NETsecurity/Jul2005/post23279711.asp
  18. Gdzie kopiować wsadowo - http://blogs.technet.com/pki/archive/2008/02/24/update-import-the-root-ca-certificate-and-crl-into-an-intermediate-ca-from-a-batch-file.aspx:
  19. for %C in (FloppyDrive:\*.crt) do certutil –addstore Root %C
    for %C in (FloppyDrive:\*.crl) do certutil –addstore CA %C

  20.  Zmiana nazwy przyjaznej -   Defining the friendly name certificate property

  21. The friendly name of a certificate can be helpful if multiple certificates with a similar subject exist in a certificate store.

    One way to set the friendly name is through the certificate MMC SnapIn. Alternatively certutil.exe can be used in the following way:

    1. Open Notepad and past the following text into the editor

      [Version]
      Signature = "$Windows NT$"
      [Properties]
      11 = "{text}My Friendly Name"

    2. Save the file as friendlyname.inf
    3. Determine the serialnumber of the certificate where the friendly name should be changed.
    4. If the certificate exists in the user’s certificate store, run the following command at a command-line

certutil –repairstore –user my {SerialNumber} FriendlyName.inf

niedziela, marca 09, 2008

Ciekawe linki:
  1. IE7Pro ma debugger FireBug w wersji Lite
  2. Refleksja w Javie czasmi może być pomocna - http://www.onjava.com/pub/a/onjava/2007/03/15/reflections-on-java-reflection.html?page=1
  3. Tworzenie okien modalnych będących jedynie warstwą na stronie - http://jquery.com/demo/thickbox/
  4. Inna wersja - http://livepipe.net/projects/control_modal/
  5. Przykład wykorzystania j. dynamicznych - http://www.javabeat.net/javabeat/java6/articles/2007/06/java-6-0-new-features-part-1/2
  6. Portal Java EE - http://java.sun.com/javaee/community/blogs/?feed=JSC
  7. Tutorial o oknach - http://www.webreference.com/js/tutorial1/final.html
  8. http://p0t.jp/pprompt/
  9. http://openjsan.org/doc/k/ko/komagata/Widget/Dialog/0.01/index.html
  10. http://www.webreference.com/js/column90/
  11. http://www.dhtmlgoodies.com/index.html?whichScript=modal-message
  12. http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/dhtmlmodal.htm
  13. Wstrzyknięcie dynamiczne javascript-u i css-ów - http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
  14. Przykłady EXT JS - http://extjs.com/deploy/dev/examples/
  15. marekcoig/t - https://inventory.sun.com/RegistrationWeb/nbgf/thankyou.jsp
  16. http://developers.sun.com/downloads/ - dostęp po zarejestrowaniu wcześniej
  17. Java SE security - http://java.sun.com/javase/technologies/security/
  18. Tutoriale - http://java.sun.com/developer/onlineTraining/
  19. Klasyczne :
    1. dzone
    2. http://dean.edwards.name/my/
    3. http://code.google.com/

piątek, lutego 29, 2008

Rozwiązanie podpisu cyfrowego w COIG


Wstęp

Analiza SWAT

Generalnie mamy do czynienia z takimi "show stopperami":

  1. Wymagania prawne odnośnie podpisu i wymaganej od aplikacji deklaracji zgodności - nie do końca je znamy, są one dostępne na stronach Sigillum i SputnikSoftware, ale nie wiemy co tak naprawdę jest ważne.
  2. Problem uzyskania zgodności z ustawą...
  3. Proces instalowania podpisu cyfrowego u klienta jest pracochłonny i wymaga zainstalowanie oprogramowania dodatkowego oraz poprawnego skonfigurowania w systemie. Być może nawet pomocy technicznej np. coś w rodzaju naszego "maximo"
  4. Stosowanie klienta Cisco VPN skutecznie wyklucza sprawdzenie ważności certyfikaty z listą CRL (VPN wyłącza dostęp do witryny świadczącej usługi sprawdzenia CRL)
  5. Przeglądarki internetowe nie potrafią w prosty sposób (na poziome zwykłego użytkownika) dostać się do zasobów lokalnych komputera klienckiego
  6. Poza platformą MS Windows brak powszechnego wsparcia implementacji procedur kryptograficznych w postaci zintegrowanych, gotowych do wykorzystania z poziomu systemu operacyjnego a nie wywołań funkcji bibliotecznych komponentów, które uzyskały aprobatę w oczach ustawodawców (mających certyfikaty). Dlatego OpenSSL mimo, że jest wspaniałą biblioteką nie jest gotowa do obsługi.
  7. Brak dostępu do sterowników obsługujących czytniki smart card na naszym rynku w środowisku Unix/Linux (producenci tychże czytników dostarczają sterowników wyłącznie pod Windows)
  8. Brak certyfikatu do podpisywania kodu własnego oprogramowania udostępnianego publicznie klientom (musimy zakupić taki certyfikat aby zwiększyć wiarygodność)
  9. Jak i co podpisywać cały dokument czy jego fragment i jakiego formatu użyć (formaty wykorzystujące XML pozwalają podpisywać fragmenty dokumentów)
  10. Czy używać znakowania czasem, jeżeli tak to jakie rozwiązanie wybrać (opłata czy własny serwer czasu), stowarzyszenie PEMI wyraża chęć pomocy (oni przez pewien czas utrzymywali taki serwer ale nie było zainteresowania)
  11. Wybór systemu operacyjnego użytkownika oraz określenie przeglądarki internetowej
  12. Wybór dostawcy certyfikatu (tzw. urząd certyfikacyjny) w pewnym sensie determinuje sposób obsługi certyfikatu u klienta. Są dwa: Sigillum i Certum
  13. Wybór urządzenia smart cart i karty inteligentnej jeszcze bardziej zawęża wybór rozwiązania tej obsługi. Są dwa rozwiązania. Jedno bazuje na sterownikach PC-SC (dll) drugia na JavaCard (ale mało popularne)
  14. Co wybierze nasz klient, pod tym kątem musimy przygotować oprogramowanie
  15. Wybóry powyższe determinują rozwiązanie obsługi ceryfikatów i podpisu w naszych aplikacjach
  16. Coś za coś - wybrawszy dostawcę możemy liczyć na jego wsparcie i dostajemy dużo narzędzi do instalacji, konfiguracjie, testowania certyfikatów a także aplikacje wspomagające np. CryptoCard Monitor, ale kosztem bardziej skomplikowanej procedury instalacyjnej i konfiguracyjnej
  17. Wsparcie (Sigillum i Certum) polega na dostarczeniu bezpłatnej aplikacji w grubym kliencie do podpisu i weryfikacji dokumentów lokalnych. To niewybrednym klientom wystarcza, resztę załatwiają przy pomocy poczty elektronicznej.
  18. Na szczęście każdy dostawca dostarcza własne biblioteki obsługi oraz sterowniki (czasami odpłatnie) wraz z homologacją
  19. Na nieszczęście każde rozwiązanie jest inne, brak uniwersalnego rozwiązania (czasami zdarzają sie biblioteki uniwersalne - patrz Sigillum)
  20. W MS Windows jest wbudowana obsługa podpisu i certyfikatów poprzez odpowiednio zdefiniowane warstwy
  21. Należy unikać "szarlatańskich" rozwiązań z Internetu, które działają w pewnych tylko przypadkach, choć istnieje pewne prawdopodobieństwo, że przy odrobinie wysiłku można je przystosować i rozwinąć dla własnych potrzeb. Sprawdziłem - prosto jedynie można podpisać gdy certyfikat nie jest na karcie a jedynie w repozytorium Windows
  22. Prawdziwe i pełne oprogramowanie podpisu nie może sie obejść bez głębokiego wniknięcia w programowanie (szczególnie jeżeli chodzi o przygotowanie komponentów) na poziomie Java lub .NET. Dlatego konieczne są szkolenia
  23. Rozwiązania z internetu (każde inne):
    1. http://www.nakov.com/documents-signing/demo/SmartCardSignerApplet-demo.html
    2. http://www.developer.com/java/web/article.php/3298051
    3. http://www.developer.com/security/article.php/11580_3587361_1
    4. http://rcardon.free.fr/
    5. http://www.podpiselektroniczny.pl
    6. http://www.trustedwebservices.org/content/view/48
Można udostępnić całościowe ale hermetyczne rozwiązanie albo wiele różnych wihajstrów do wykorzystania. Oba te rozwiązania są pożyteczne.


Część kliencka podpisu

Do podpisywania (i tylko do tego bo można jeszcze szyfrować) służy bezpieczne urządzanie tj. zestaw: system operacyjny, czytnik smart card/karta inteligentna oraz aplikacja. Miejsce podpisywania - wyłącznie u klienta. Konieczna jest wizualizacja dokumentu przed podpisem. Wszystkie inne funkcje związane z podpisem mogą być realizowane w innym miejscu np. na serwerze. Problem podpisu możemy rozwiązać na dwa sposoby.
  1. Podejście brutalne - wykorzystanie istniejących w systemie Windows uniwersalnych komponentów do obsługi całego (kompletnego) procesu składania i sprawdzania podpisu. Komponenty te można zabudować we własnych aplikacjach. Te komponenty to:
    1. Wbudowany w MS Windows moduł CAPI oraz interface do niego CAPICOM (czyli udostępnienie interfejsu Crypto API poprzez architekturę COM) który zapewnia wszystkie podstawowe funkcje związane z podpisem i sprawdzaniem dokumentu oraz obsługą repozytorium certyfikatów. Dokładnie mówiąć CAPICOM pozwala na "przeźroczystą" obsługę konkretnych urządzeń kryptograficznych dostępnych przez CSP. Jest to dla środowiska MS Windows Client jedyny wbudowany komponent do obsługi podpisu cyfrowego. Dla środowiska Linux / Unix nie ma takiego komponentu, jedynie aplikacje w Javie coś takiego mają. Należy pamiętać, że Microsoft ogłosił plany stopniowego wygaszania wsparcie dla CAPICOM począwszy od systemów operacyjnych po Viscie (ale CAPICOM w Viście jest wspierany, a to dlatego, że całkiem po prostu nie ma jeszcze pełnego wsparcia dla obsługi certyfikatów kwalifikowanych tj. mających zabezpieczone przed pobraniem klucze prywatne - tego jeszcze na platformie .NET nawet w nowej wersji 3.5 nie ma! Sam sprawdziłem, mówi się, że trzeba poczekać na SP1 do Visty. W Viscie jest nowy moduł, zgodny z CAPICOM i nosi nazwę CNG (Cryptography API: Next Generation) - wykorzystuje on nowsze, certyfikowane przez National Security Agency (NSA) algorytmy, jest bezpieczniejszy i szybszy (dzięki wykorzystanie tzw. Elliptic Curve Cryptography). Ale jest jeszcze niedopracowany (czekamy na SP1). Dlatego jedyne na obecną chwilę rozwiązanie w środowisku .NET poza CAPICOM to skorzystanie z dostępnych bibliotek firm dostarczających certyfikaty np. biblioteki Sigillum. Możliwości CAPICOM:
      1. Dostęp do:
        1. Certyfikatu oraz ścieżki certyfikacyjnej
        2. Danych o podpisującym
        3. Danych o wystawcy
        4. Danych o datach ważności informacji
        5. Klucza publicznego
      2. Realizacja podpisu pod dokumentem:
        1. Wbudowanego (tzw. attached, powstaje nowy, znacznie większy o ok. 3 razy dokument, który jest samowystarczalny tj. niesie informację o dokumencie podstawowym, się może być sprawdzony na nienaruszalność danych i zawiera informacje kto, kiedy podpisał
        2. Pomocniczy (tzw. detached, znacznie mniejszy ok. 20-30 KB, do weryfikacji potrzebny jest dokument podstawowy)
      3. Weryfikacji dokumentu - sprawdzenia czy dokument uległ zmianie.
      4. Kopertowanie (envelope) - dodatkowa funkcja szyfrowania danych kluczem publicznym odbiorcy, wtedy tylko odbiorca może dokument odczytać
      5. Brak bardziej zaawansowanych funkcji: znacznika czasu i sprawdzenia (online poprzez OCSP lub pobranej periodycznie listy CRL) czy certyfikat nie został odwołany
    2. Biblioteki zewnętrzne (przykład - zakupiona przez ZA biblioteka Sigillum), realizuje ona wszystko to co ma CAPICOM i ma mnóstwo rozszerzeń m.in. znakowanie czasem, walidacja ważności certyfikatu online (poprzez OCSP), wsparcie certyfikatów innych wystawców, podpis wielokrotny. Zaletą tej biblioteki jest oparcie jej o nowy standard bezpieczeństwa wykorzystujący platformę .NET, będącej podstawą kolejnych edycji MS Windows. Nie rozpoznałem możliwości biblioteki drugiego dostawcy certyfikatów Certum z uwagi na utrudniony dostęp do informacji (znam jedynie cenę biblioteki ok. 7 tyś. zł. W czasie rozmów z przedstawicielami Certum w Katowicach przedstawiono nam warunki dostępu - podpisanie umowy partnerskiej.
  2. Podejście ambitne - stworzenie własnej, uniwersalnej biblioteki co wiąże się z dużymi nakładami. Biblioteka może być rozwijana na platformie MS (wykorzystywać trzeba będzie już chyba nie CAPICOM ale .NET) lub Java na platformie Linux/Unix. W tym ostatnim przypadku brakuje natywnych sterowników do czytników smart card obecnie na rynku no i brak naszego doświadczenia. Probowałem się skontaktować z przedstawcielami SputnikSoftware jedynej w Polsce firmy mającej rozwiązanie pod Linux. Poza rozmowy przez telefon i wysłania im e-maila z zapytaniem o współpracę brak odpowiedzi.


Studium przypadków

Rozwiązania kompleksowe (ale przez to nieco hermetyczne), przetestowane w Portalu AS:
  1. Aplikacja kameleon w "grubym kliencie" implementująca na formularzu komponent webBrowser (silnik IE 6/7) do wyświetlania witryny AS (użytkownik ma całkowite złudzenie, że korzysta z przeglądarki internetowej), która przechwytuje zdarzenia w przeglądarce i obsługuje lokalne zasoby, w tym przypadku czytnik smart card i wszystkie biblioteki (.dll czy .ocx) Windows. Była to wersja I podpisu cyfrowego dokumentów zamówień w Portalu AS. Eksploatowana od 2006 roku. Wynik:
    1. Zalety:
      1. Zero niespodzianek i potrzeb zdobywania nowych "doświadczeń" od strony użytkownika
      2. Doskonała współpraca z urządzaniami peryferyjnymi i komponentami Windows
      3. Bezproblemowa komunikacja z czytnikiem
      4. Bezpieczeństwo - użytkownik ma dostęp do jedynie tych adresów URL na które mu zezwolimy
    2. Wady:
      1. Potrzeba instalacja (użytkownik musi pobrać z witryny i zainstalować u siebie aplikację) chociaż wykorzystywane przeze mnie narzędzie do tworzenia instalacji sprowadza jej proces do bezmyślnego klikania OK),
      2. W jednym przypadku (opcja upoważnień witryna się zawieszała),
      3. Być może do był powód poprzedniego problemu - zła obsługa wielu instancji okien przeglądarkowych
    3. Werdykt - rozwiązanie niezłe, przy odrobinie samozaparcie można problem ten zbadać i albo go usunąć albo znaleźć obejście.
  2. Aplikacja natywna w "grubym kliencie". Jest to rasowa aplikacja wykonana w WinForm w środowisku .NET. Wszystkie kontrolki potrzebujące danych z bazy (np. listy rozwijane, tabele/gridy) są zasilane poprzez technologię AJAX z baz po stronie portalu, czyli aplikacja wszystkie świeże dane ściąga z witryny poprzez prymitywną usługę webową. Dalej jak powyżej, dostęp do wszystkich zasobów lokalnych jest bez ograniczeń. Była to wersja II podpisu cyfrowego dokumentów zamówień w Portalu AS. Eksploatowana od 2007 roku. Wynik:
    1. Zalety:
      1. Doskonała współpraca z zasobami lokalnymi i sieciowymi oraz komponentami Windows
      2. Bezproblemowa komunikacja z czytnikiem
      3. Bezpieczeństwo - pełna kontrola nad użytkownikiem
      4. Zgodność z wymaganiami MS dla aplikacji klienckich
      5. Wykorzystanie biblioteki Sigillum z jej pełnym zestawem możliwości np. realizacja podpisu wielokrotnego
      6. Możliwość łatwego generowania wydruków pod katem użytkownika lub nawet przez użytkownika (dostępny jest generator wydruków)
    2. Wady:
      1. Potrzeba instalacja (użytkownik musi pobrać z witryny i zainstalować u siebie aplikację) chociaż wykorzystywane przeze mnie narzędzie do tworzenia instalacji sprowadza jej proces do bezmyślnego klikania OK. W przypadku .NET ułatwieniem może być automatyczna aktualizacja programu bezpośrednio z witryny Portalu.
      2. Brak pełnej funkcjonalności portalu - udostępnia jedynie jego wąski skrawek, są użytkownicy chcący spojrzeć szerzej na portal - dla nich trzeba by dopisać coś więcej, chociaż z drugiej strony można im udostępnić komponent w innym WinForm komponent webBrowser z rozwiązania nr.1.
    3. Werdykt - rozwiązanie niezłe i jednocześnie nowoczesne udostępniające pełną gamę funkcji związanych z podpisem. Należy nadal rozwijać
  3. Podpis poprzez ActiveX - użytkownik ma możliwość wykonania wszelkich prac związanych ze składaniem podpisu i weryfikacją bezpośrednio w przeglądarce pracując w portalu dziedzinowym. Dostęp do tych funkcji ma poprzez osadzenie na stronie internetowej kontrolki ActiveX (CAPICOM lub Sigillum). Metoda eksploatowana w Portalu AS od 2007 roku w przypadku ok. 15% klientów.
    1. Zalety:
      1. Zero niespodzianek i potrzeb zdobywania nowych "doświadczeń" od strony użytkownika
      2. Przeźroczyste dla użytkownika - nic nie musi instalować
      3. Dostęp z poziomu przeglądarki do wszystkich funkcji jak w przypadku "grubego klienta"
    2. Wady:
      1. Potrzeba zgody użytkownika na zainstalowanie "obcej" kontrolki
      2. Potrzeba skorygowania często niepoprawnie działającej konfiguracji przeglądarki
      3. Potrzeba skonfigurowania poziomu zabezpieczeń przeglądarki aby zezwalała na dostęp do repozytorium certyfikatów i samego czytnika
      4. Trudność dokonania diagnozy i zdalnej konfiguracji w przypadku niedoświadczonych użytkowników
    3. Werdykt - rozwiązanie działa poprawnie w środowisku przeglądarki MS IE i lokalnej sieci gdzie administrator ma kontrolę nad instalacjami
  4. Podpis poprzez applet Java - dostęp do w/w funkcji odbywa się poprzez podpisany zaufanym certyfikatem specjalny applet w języku Java. Komunikacja z czytnikiem wygląda tak:
    1. Strona internetowa przekazuje żądanie do appletu wraz z kluczem do dokumentu źródłowego,
    2. Applet uruchamia i przekazuje ten klucz do komponentu lokalnego (np. dll)
    3. Komponent lokalny (opakowana funkcjonalność CAPICOM lub Sbibiloteki Sigillum w .dll) - który na jego podstawie pobiera z Internetu dokument, podpisuje go i odsyła z powrotem.
    4. Applet jest niewizualny (nie ma interfejsu graficznego) jego zadaniem jest łączenie strony internetowej ze środowiskiem lokalnym.
    5. Rozwiązanie nie wdrożone (działa prototyp).
    6. Wady:
      1. Potrzeba zakupu certyfikatu Authenticode do podpisania appletu
      2. Potrzeba zgody użytkownika na zainstalowanie "obcego" appletu
    7. Zalety:
      1. Otwartość i uniwersalność - działa w każdej przeglądarce
      2. Przeźroczyste dla użytkownika - nic nie musi instalować (no musi zainstalować .dll ale to można zautomatyzować)
    8. Werdykt - rozwiązanie nie gotowe ale o potencjalnie dużych możliwościach

Rozwiązania cząstkowe

Narzędzia do wykorzystania:
  1. Baza danych dla dokumentów źródłowych i podpisanych
  2. Własne biblioteki .dll opakowująca funkcjonalność CAPICOM i Sigillum
  3. Rozwiązanie 1-4 są dostępne do analizy
  4. Pobieranie i sprawdzanie certyfikatu z listami CRL (program w Javie poprzez połączenie z Internetem ściąga plik CRL)
  5. Serwer sprawdzający certyfikat jw ale z wykorzystaniem OCSP i biblioteki Sigillum (usługa webowa na platformie .NET - wymaga MS Windows Server)

Wnioski

  1. Wybór technologii:
    1. Rozwiązania .NET i Java są jeszcze niedojrzałe (brakuje im specjalizacji np. obsługi urządzeń, uwzględnienia specyfiki wymagań podpisu krajowego).
    2. Obiecująco wygląda rozwiązanie oparte o Javę, jest otwarte i ciągle rozwijane poprzez prace środowiska open-source
    3. Rozwiązanie oparte o CAPICOM jest dojrzałe i sprawdzone ale ma dwie wady: nie jest dalej rozwijane przez MS (w jego miejsce ma wejść .NET ale nie jest jeszcze gotowe)
    4. Rozwiązanie zamknięte wykorzystujące biblioteki dostawcy sprzętowego jest chyba na chwilę dzisiejszą najbardziej obiecujące, załatwia wszystkie potrzeby odnośnie podpisu oraz uwzględnia specyfikę krajowego ustawodawstwa. Ale jest mało mało uniwersalne.

poniedziałek, lutego 25, 2008

Programy antywirusowe:

Jak wiadomo są też bezpłatne. Na uwagę zasługują dwa: AVG Antivir Grisoft (teraz nosi nazwę AVG Technologies) oraz Spy Doctor PC Tools. Oba mają wersje bezpłatne (są i płatne też). Charakteryzują się tym, że próbują przyciągnąć użytkowników nie jakością swoich motorów ale pełnością usług tj. grupują w sobie więcej funkcji np. antywirus z antyspyware.

Uwaga: póżniej odkryłem inną firmę mającą dosyć szeroką ofertę oprogramowania ant- od wirusowego przez spamowy i rooktkowy aż po zaporę ogniową i to wszystko za darmo. Jest to Comodo. Dodoatkowo mają też program do weryfikacji stron.

Kapitalny artykuł na temat firewall - Comodo Firewall najskuteczniejszy.

sobota, lipca 07, 2007

Nowe cechy Javy:
Java powinna być bezpieczna z założenia, że działa w "piaskownicy" parametry bezpieczeństwa której można definiować. Model bezpieczeństwa Java składa się z dwóch warstw Core Java 2 Security Architecture i Java Cryptography Architecture. Stanowią one podstawowy poziom bezpieczeństwa nad którym są różne rozszerzenia (extension). Od wersji 1.4 Java ma własne mechanizmy obsługi kryptografii i nie trzeba uciekać się do bibliotek firm trzecich np. Bouncy Castle.
Opis J2SA składa się z:
  1. byte code verifier - sprawdza ponownie poprawność użytych konstrukcji języka (czy klasy mają cechę public, czy klasa final ma podklasę itd)
  2. class loader - ładuje klasy do maszyny wirtualnej i sprawdza poprawność odwołań do klas w ramach języka i do zasobów lokalnych
  3. security manager - klasa stworzona przez twórcę aplikacji zezwala na dostęp do zasobów
  4. access controller - niskopoziomowe sprawdzenie wykonywania się aplikacji (zarządzanie pamięcią, typowanie danych, naruszenie konwersji danych)
Opis JCA - realizuje funkcje kryptograficzne i udostępnia API do nich.
Rozszerzenia:
  1. Java Cryptographic Extension
  2. Java Security Socket Extension
  3. Java Autentication and Authorization Extension Service

środa, grudnia 13, 2006

Myśli o bezpieczeństwie

Bezpieczeństwo. Tego powinni zabronić? Czego ano podawania w nagłówku FORMS (formularza HTML) adresu serwera spoza domeny z której strona przeszła np. strona została uruchomiona spod adresu COIG a wysyła dane pod inny adres np. CIROW.
Muszę to sprawdzić.
Ostatnia poprawka do bibliteki XML Core w MS miała uniemożliwić sięganie z poziomu XMLHTTPRequest (w wydaniu COM, nie natywnym dostarczanym z IE 7, gdzie to już jest wprowadzone) do witryn spoza domeny wejściowej.