czwartek, lutego 14, 2008

Tak się potwierdza moja teoria (świetny serwis Techmeme )
Zimbra potwierdza moją teorię, że można zbudować interfejs z siecią Internet na bazie średnio-grubego klienta wykorzystującego elementy silnika przeglądarki (czuje się artefakt przeglądarki w klienckiej aplikacji). Zimbra zbudowała swój interfejs na bazie technologii Prism (Mozilla - opartej o WebRunnera ).
Znowu SSL
Ale w szerszym zakresie. SSL stosuje elementy kryptografii a właściwie kodowanie trzech typów:
  1. hash - kodowanie w jedną stronę, służy do sprawdzenie nienaruszalności danych, jest to algorytm obliczający skrót jakiegoś długiego dokumentu. Skrót ten ma być unikalny. Każdy inny dokument daje w wyniku inny skrót. Zwykle ten skrót poddaje się szyfrowaniu. Odbiorca odszyfrowuje skrót ponownie i oblicza skrót na podstawie otrzymanej wiadomości. Oba te skróty powinny być jednakowe.
  2. symetryczne - do szyfrowanie treści służy jeden i ten sam klucz. Obliczenia związane z szyfrowaniem kluczem symetrycznym są szybkie i służą do szyfrowania dużych treści przesyłanych informacji. Problem jest jednak z wymianą tego klucza (dostarczeniem) do nadawcy i odbiorcy tak aby haker nie mógł go przechwycić.
  3. asymetryczne - stosowane są dwa klucze: prywatny (u nadawcy-autora) i publiczny (dostępny wszystkim). Do szyfrowania mogą służyć oba klucze. Szyfrując kluczem publicznym kogoś powodujemy, że tylko on może odczytać wiadomość. Szyfrując swoim kluczem prywatnym wszyscy inni mogą wiadomość odczytać. Problem jest jednak weryfikacją kto stoi za tym kluczem.
Ten ostatni problem rozwiązują certyfikaty właściciela. Są wydawane przez tzw. zaufane urzędy i stanowią paczkę informacji (klucz publiczny właściciela, informację o nim oraz informację o wystawcy/wystawcach certyfikatu oraz dodatkowo klucz publiczny urzędu wystawiającego).
Certyfikat jest zaszyfrowany kluczem prywatnym tego urzędu. Kiedy odbiorca odczytuje certyfikat przy pomocy klucza publicznego urzędu to wie, że dane pochodzą od tego urzędu, a dane te to informacja o nadawcy.
W celu zapanowania nad wydanymi certyfikatami każdy z nich ma okres ważności (dlatego trzeba go odnawiać) i stworzono listę certyfikatów odwołanych (CRL).
Urzędy certyfikacyjne są wbudowane w przeglądarki internetowe i podczas aktualizacji przeglądarek mogą być dodane lub usunięte.
Jak to działa razem?
  • Połączenie inicjuje klient i podaje serwerowi swoje możliwości kodowania
  • Serwer odpowiada wysyłając do klienta swoje możliwości i swój certyfikat oraz losowe dane
  • Klient sprawdza certyfikat czy jest ważny i zaufany
  • Gdy certyfikat serwera jest OK to klient wysyła losowo wygenerowany klucz sesji i koduje go kluczem publicznym serwera (może też wysłać dane autentykujące go zakodowane też kluczem pub. serwera)
  • Serwer to odbiera i rozkodowuje swoim kluczem prywatnym, teraz ma klucz od klienta tzw. master key (mają dzięki temu ten sam klucz). Posłuży on do generowanie klucz sesji
Źródło: TechRepublic

środa, lutego 13, 2008

Zasoby platformy .NET (na podstawie TechRepublic - Tony Patton):

  1. Stosowanie klas częściowych w .NET 2.0
  2. CodeSmith do generowania gotowego kodu
  3. Dziwna strona oferująca certyfikaty - http://www.cacert.org/
  4. Dostęp do danych w XML poprzez LINQ i tutorial http://blogs.techrepublic.com.com/programming-and-development/?p=585
  5. Dostęp do usług webowych z zabezpieczeniem
  6. Utworzenie usługi webowej
  7. Praca z BLOB w C# i ASP.NET
  8. Pobranie usługi sieciowej
  9. Przesłanie danych między stronami
  10. Kody aktywacyjne VS 2008 - Completing Registration of your Product
    Your registration key is: XPKSX4MJBXFLJB
  11. JS - http://articles.techrepublic.com.com/5100-3513_11-6149603.html?tag=rbxccnbtr1
  12. Bezpieczne dane w pamięci (secure string)
  13. Video o bezpieczeństwie

Derby (ale w Java)

Baza Derby jest darmową, prostą bazą danych opartą o pliki tekstowe. Jest na witrynie TechRepublic artykuł na ten temat. Pliki z intslacją są tu. Ciekawe dlaczego Google nie wziął tej bazy a SQLite do swego projektu Google Gears?

Wieści:

  1. Sun zamierza kupić VirtualBox (Innotek) - http://www.linuxworld.com.au/index.php?id=1158064042&eid=-50
  2. Naukowcy z IBM twierdzą, że 100% ataków komputerów poprzez sieć jest zakamuflowana (http://www.linuxworld.com.au/index.php/id;1329782986;fp;4194304;fpid;1). Od jakiegoś czasu obrona przed atakami w szerokim tego słowa znaczeniu (wirus, rootkit, spyware) przeniosła się z poczty do przeglądarki (to Web browser as an [exploit] entry point). Stosują do tego "zaciemnianie" exploitów, które wykorzystują wbudowane w przeglądarki języki skryptowe (JavaScript, Flash) lub wtyczki (rozszerzenia) do obsługi innych poza HTML formatów, które z kolei korzystają z innych j. skryptowych (np. PDF/AdobeScript) wbudowanych w ten format.
  3. Co lepsze ODF czy MS OOXML? Przyszłość pokaże, ale nie wolno lekceważyć MS, która mając ponad 500 mln użytkowników, chce upowszechnić format XML zgłaszając go do komitetu standaryzacyjnego. Głosowanie w tym miesiącu. Grupa Burton zamieściła nawet dość pochlebną opinię o formacie firmy MS.
  4. Z innej beczki - narzędzia do bezpiecznego surfowania - http://reviews.cnet.com/4321-3667_7-6561525.html (LinkScanner Lite), a liczba przestępstw rośnie (http://reviews.cnet.com/4520-3513_7-6771187-1.html?tag=txt), wstrzyknięcie kodu poprzez iFrame (http://wormradar.com/vidchoices.html), wiadomości z ostatniej chwili - AVG kupiło firmę Exploit Prevention Lab (http://www.explabs.com/) aby udoskonalić swój produkt o funkcje antypishingu (wypuściło nawet wersję bata 8).
  5. Google wypuścił niedawno Google Apps Team Edition - gdzie umożliwił lepsze współdzielenie dokumentów (http://www.betanews.com/article/Google_Apps_gets_improved_document_sharing/1202403825)
  6. Pranks - http://blogs.techrepublic.com.com/geekend/?p=1128&tag=nl.e605

wtorek, lutego 12, 2008

Iron Microsoft (wilk w owczej skórze)

Mamy już IronPython-a, teraz czas na IronRuby (a może wkrótce będzie IronPHP?). Nie wiadomo. Microsoft wziął na celownik oprogramowanie open-source, dzięki zaaprobowanej przez OSI licencji Ms-PL może asymilować produkty open-source z wymogiem udostępnienia ich tej społeczności.

Właśnie lider projektu Ruby.NET oświadczył o zakończeniu prac i przekazaniu wyników do grupy MS IronRuby. Nie jest to do końca dobra wiadomość, ponieważ istnieje zagrożenie "zatrucia" projektu przez "wyższe cele" MS w imię których będą podejmowane takie a nie inne rozwiązanie projektowe. O tym ostrzega eWeek.

poniedziałek, lutego 11, 2008

Zasoby Java:

  1. Świetny serwer - container: http://www.mortbay.org/
  2. Klient HTTP po nowemu: http://hc.apache.org/httpclient-3.x/
  3. Porównanie darmowych (entry-level) serwerów aplikacji w Java: http://www.javaworld.com/javaworld/jw-12-2007/jw-12-appservers.html
  4. Zastosowanie SVN w Eclipse: http://www.informit.com/articles/article.aspx?p=517206&seqNum=2

Szewski poniedziałek (nie dla wszystkich)

  1. Is Tomcat an application Server? - bardzo ciekawe porównanie implementacji Java EE w Apache Tomcat. Każdy serwer zgodny z Java EE musi wspierać:
    1. Enterprise JavaBeans (EJB) server and container;
    2. JNDI capabilities;
    3. Java Message Service (JMS) framework;
    4. Java Transaction API (JTA) framework;
    5. J2EE Connector Architecture.
    6. uwaga: każdy komponent opisany jest przez swój - deployment descriptor
  2. Dodatkowo musi wspierać hierarchiczny loader klas (hierarchical classloader) - architekturę wspierającą następującą funkcjonalność:
    1. EJB loading/reloading,
    2. WAR loading/reloading,
    3. manifest-specified utilities (JAR itd)
  3. Zawierać musi także pojemniki (containers - these containers provide structure and functionality that facilitate the deployment, persistence, and execution of supported components) dla:
    1. client applications,
    2. servlets, oraz
    3. EJB components
  4. Obrazuje to następująct schemat:

Architektura Java EE jest pełna i wspiera wszystkie możliwe interakcje z aplikacjami (nawet tymi zewnętrznymi poprzez JCA - Java Connector Architecture). Jednak ta rozległość funkcjonalna powoduje duży narzut na zasoby w przypadku (najczęstszym) gdy potrzebne są tylko niektóre serwisy np. Web server/container, potrzebne są tylko servlets, JSPs i JDBC. Wygląda to tak. Tradycyjnie aplikacje w Java EE type Enterprise zawierają kombinację następujacych komponentów/technologii:

EAR files Java Servlets JavaServer Pages or JavaServer Faces Enterprise JavaBeans (EJB) Java Authentication and Authorization Service (JAAS) J2EE Connector Architecture JavaBeans Activation Framework (JAF) JavaMail Java Message Service (JMS) Java Persistence API (JPA) Java Transaction API (JTA) The Java Management Extensions (JMX) API Java API for XML Processing (JAXP) The Java API for XML-based RPC (JAX-RPC) The Java Architecture for XML Binding (JAXB) The SOAP with Attachments API for Java (SAAJ) Java Database Connectivity (JDBC) framework

Java Web Application zawierają zazwyczaj:

  • WAR files
  • Java Servlets
  • JavaServer Faces or JavaServer Pages
  • Java Database Connectivity (JDBC) framework

Bardziej skomplikowana architektura aplikacji typu enterprise wygląda tak: