środa, sierpnia 30, 2006

Kiedy AJAX upada

Wiele się mówi o wykorzystaniu technologii AJAX w aplikacjach Web 2.0 (słynne wyrażenie 'mashup' - miszmasz, czyli udostępnianie funkcjonalości różnorodnych usług "sklejonych" Javascriptem poprzez wykorzystanie AJAX-a. Coraz więcej stron publikuje swoje API  w celu wygodnego korzystania z funkcjonalności danej witryny (hej! czy to nie jest to samo co usługa webowa, ale na bardziej przystępnym poziomie ?). Ale z drugiej strony pojawiają się głosy o zgrożeniach jakie niesie niekontrolowany dostęp do zasobów (infrastruktury firmy) poza stroną internetową. Pierwsze sygnały ostrzegawcze zabrzmiały na konferencji Black Hat w Las Vegas. Billy Hoffman z SPI Dynamics wykazał możliwość naruszenia ochrony strony. Strony udostępniające funkcjonalność poprzez AJAX powinny przewidzieć dodatkową ochronę przed włamaniem do swych zasobów.

Korzystając z AJAX-a atakujący może wstrzykąć skrypt na stronę docelową lub skrypt wywołujący skrypty z innej strony, bądź wysłać atak poprzez zmasowane żądanie HTTP. Dlatego bardzo ważne jest filtrowanie danych wprowadzanych przez użytkownika.

W domyśle AJAX jest ograniczony do jednego hosta internetowego. Istnieje jednak możliwość zbudowania tzw. AJAX bridges - mostu umożliwającego sięganie do zasobów (np. skryptów) pochodzących z innych domen. W przykładzie Billy Hoffama widać, że np. strona Amazon otwierając się na świat poprzez udostępnie swego API pozwalającego na komunikację z jej zasobami poprzez AJAX tak dokładnie nie wie kto z niej korzysta: użytkownik czy program (złośliwy czy dobry) . Jest to poważne zagrożenie bezpieczeństwa jej zasobów.

AJAX bridges posiadają wiele szczelin zagrażających bezpieczeństwu:  nie autentykują danych wejściowych a w zakresie zabezpieczeń polegają na innych komponentach (które nie zawsze wpełni zabezpieczają). Możliwe jest w niewidoczny sposób wykorzystać słabości w zabezpieczeniu jednej witryny w celu zaatakowania innej lub nawet przeprowadzić zmasowany atak na witrynę trzecią coś w rodzaju DoS 

Jaka jest na to rada? Dokładna walidacja danych wejściowych wprowadzonych przez użytkownika, należy minimalizować udostępnianą przez aplikację internetową logikę działania, należy również wszędzie korzystać ze standardów.

Artykuł poprzedni: Security Watch: JavaScript plus AJAX equals trouble

Źródło:CNet Security Watch (Robert Vamosi)

piątek, sierpnia 25, 2006

Zarzadzanie certyfikatami

Do zarządzania certyfikatami służy polecenie systemowe certmgr. Narzędzie Java SDK (dostępne na każdej platformie, również i Linux) zawiera również komendę keytool, która pozwala na obsługą certyfikatu zawartego w pliku, np.:

keytool –printcert –file mw_kwalif.cer

keytool –printcert –file mw_kwalif_pem.cer

keytool –printcert –file thawte_der.cer

Innym, mniej znanym poleceniem jest certutil.

Certyfikat wyodrębniony do pliku można przenieść do systemu Linux. Mamy wtedy dostępne polecenia z grupy openssl, które pozwala wydrukować zawartość certyfikatu z tego pliku.

openssl x509 –in thwate_der.cer –inform DER –noout –text

openssl x509 –in thwate_pem.cer –inform PEM –noout –text

openssl x509 –in thwate_pem.cer –noout –text

Uwaga:

sprawdzenie certyfikatu zawierającego polskie litery nie udaje się.

Generalnie openssl zawiera podgrupę akcji związanych z certyfikatem, są to: x509, verify, ocsp.

Uwaga:

Zamiast przenosić certyfikaty z systemu klienckiego na serwer można przenieść serialnumber danego certyfikatu ponieważ on jest identyfikatorem podpisującego dokumenty. Można tak zrobić dlatego, że i tak w trakcie sprawdzania listy odwołań CRL następuje przeszukiwanie tej listy wg. wspomnianego serialnumber.

czwartek, sierpnia 24, 2006

Ważne informacje o wykorzystaniu CRL

Każdy certyfikat jest ważny przez jakiś określony czas. Czas życia certyfikatu kończy się wtedy gdy wygaśnie (śmierć naturalna) lub zostanie unieważniony (przedwcześnie). Mechanizmów do odwołania jest kilka. Jednym z nich jest RFC 2459.  Polega na publikowaniu periodycznie struktury danych podpisanej przez urząd wystawiający certyfikat listy odwołań zwanej CRL. Jest kilka typów list CRL: pełna lista (base CRL), delta CRL (przyrostowa) lub punkt dystrybucyjny CRL (CDP). Lista CRL może by publikowana jako usługa webowa, plik tekstowy, FTP lub LDAP.

Ważny terminy:

  1. OCSP (Online Certificate Status Protocol) protokół pozwalający na walidację w czasie rzeczywistym status certyfikatu.
  2. Łańcuchowanie certyfikatów - certificate chaining - pozwala ustalić czy dany certyfikat nie jest odwołany, nie wygasł i czy jest zaufany.

Kolejne przybliżenie do CRL

Ciekawy link na serwerze eggheadcafe.com:

Meaning of CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN

it usually means that the certificate does not contain a CDP extensions and

therefore revocation information cannot be obtained:

CRLS:
http://www.microsoft.com/technet/security/topics/crypto/tshtcrl.mspx


David B. Cross [MS]


Top Whitepapers:

Auto-enrollment whitepaper:

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/autoenro.mspx

Best Practices for implementing Windows Server 2003 PKI:

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/ws3pkibp.mspx

Troubleshooting Certificate Status and Revocation whitepaper:

http://www.microsoft.com/technet/security/topics/crypto/tshtcrl.mspx

Windows Server 2003 web enrollment and troubleshooting guide:

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/webenroll.mspx

Windows Server 2003 web enrollment and troubleshooting guide:

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/webenroll.mspx

Różności


  1. Świetny artykuł w bazie wiedzy MS - "How to send digitally signed messages by using CDOSYS/CDOEX" - pod numerem 280391.
  2. OpenID - alternatywna metoda autentykacji stron internetowych (wspiera ją m.in. SixA.., Verisgin - PIP).
  3. osCommRes - usługa umożliwiająca firmom zorientowanym na usługi oferowanie i sprzedaż ich w trybie online. Projekt jest open-source i bazuje na PHP/MySQL. Na podstawie artykułu w ComputerWorld.
  4. CAPICOM shell extension - do "podglądanie" właściwości plików w MS Explorer pod kątem kryptograficznym.
  5. Świetna lista aplikacji freeware i o XML-RPC jest tam artykuł.

Sprawdzanie listy CRL

Czy MS CAPICOM nadaje się do przemysłowego wdrożenia podpisu cyfrowego w aplikacjach internetowych? Trudno jednoznacznie odpowiedzieć. Jak dotąd największą trudność sprawia obsługa CRL. Chodzi o sprawdzenie czy dany certyfikat jest aktualnie jeszcze ważny. Sprawdzenie to może odbywać się na dwa sposoby poprzez: 

  1.  przeglądanie listy CRL opublikowanej na stronie internetowej wystawcy certyfikatów (listy te są periodycznie aktualizowane zgodnie z polityką danego wystawcy i w sumie mogą być długie) lub przechowanej lokalnie (gdzie one są ?)
  2. Inny bardziej efektywny sposób to sprawdzenie online numeru seryjnego certyfikatu poprzez usługę sieciową łącząc się z stroną wystawcy.

CAPICOM umożliwa taką kontrolę ale pod jednym warunkiem - w certyfikacie musi być wypełniona właściwość CDP (CRL Distribution Point).

Uwaga: certyfikat wystawiony przez PWPW (z Sigillum) nie ma takiego pola!

 Algorytm takiej kontroli jest umieszczony w bazie wiedzy MS jako pod  ID : 304298  - "How To Perform CRL Checking with CAPICOM".

Sprawdzenie certyfikatu - właściwość cerificate.Status lub ściślej chain.Status (uzyskany w wyniku chain.Build(cert)).

Sprawdzenie certyfikatu w podpisanych danych - należy "zapętlic" powyższą kontrolę dla wszytstkich certyfikatów w podpisanych danych (for i=1 to sData.Ccertificates.Count)

środa, sierpnia 23, 2006

test

Test

Lamp(hp) czy Lamp(erl)?

Co lepsze i szybsze PHP czy Perl. Strona tu zawiera wyniki przeprowadzonych testów. Wynik - remis, ale mod_php czy mod_perl są napewno szybsze od CGI. Nawet bez badań można by sie tego spodziewać. Cóż niektórzy ludzie lubią pisać o sprawach oczywistych i problemach gdzie nie ma jasnego rozstrzygnięcia.

Windows rulez

wg: pcworld

Koncern z Redmond wciąż niepodzielnie króluje na rynku desktopowych systemów operacyjnych - wynika z najnowszego raportu firmy analitycznej OneStat.com. Dowiadujemy się z niego m.in., że z Windows XP korzysta 86,8% użytkowników komputerów na całym świecie, z Mac OS X - 2,32%, zaś z Linuksa - 0,36%.

Raport OneStat.com przygotowany został na podstawie danych z monitorowanych przez firmę komputerów na całym świecie (badaniem objęto 50 tys. maszyn ze 100 krajów).
Z opracowania wynika, że Microsoft ma łącznie 96,97% udziału w rynku desktopowych systemów operacyjnych. W głównej mierze jest to zasługa systemu Windows XP, który zainstalowany był na 86,6% komputerów sprawdzonych przez OneStat.com. Na drugim miejscu pod względem popularności znalazł się Windows 2000, z którego korzysta 6,09% użytkowników.
Trzecie miejsce w zestawieniu również zajął Windows - tyle, że oznaczony numerem 98 (2,68%). Na czwartej pozycji znalazł się produkt firmy Apple - Mac OS X (2,32%). Kolejne miejsca zajęły Windows Millenium (1,09%), Linux (0,36%) oraz Windows NT (0,24%).
Więcej informacji: OneStat.com.

Zaproszenie nie do odrzucenia

Dzisiaj MS otwarło dla niekomercyjnych projektów informatycznych typu open-source podwoje swojego laboratorium -

Open Source Software Labs. Celem zaproszenia jest współpraca 1:1 nad przeniesieniem Firefox'a i Thunderbird'a na platformę Vista.

Wspomniane laboratorium zawiera ponad 300 serwerów na których jest uruchamianych ponad 15 wersji Unixa i ponad 50 dystrybucji Linuxa. Strona główna laboratorium zwanego też Port 25 jest tu.

Źródło: entmag

Google - aplikacje online

Już od dzisiaj można zalogować się nowego serwisu online Google - tym razem jest to edytor tekstów służący do edycji i publikowania dokumentów za pomocą aplikacji internetowej. Taka usługa nosi nazwę - outsoursing aplikacji do przetwarzania tekstów - i bazuje na pakiecie Writely autorstwa firmy Upstartle (wykupionej nedawno przez Google). Wyszło na to, że GG nie wykorzysta aliansu z Sun-em i nie zajmie się OpenOfficem.

Wspomniana usługa jest już trzecim serwisem tego typu. Inne bizinesowe usługi online oferowne przez firmę GG to: kalendarz, arkusz i klient poczty. Wszystkie one wymagają konta w Google, niestety.

Tak nawiasem mówiąc jest już wiele aplikacji tego typu online firm trzecich.

Źródło: CNET

Informacja dodatkowa: przeprowadzono test porównawczy różnych dostepnych aplikacji biurowych "hostowanych" przez Internet - wynika z nich, że produkt GG Writely jest najlepszy.

Warto też wspomniec o MS Office oferowany online.

wtorek, sierpnia 22, 2006

Nie trać głowy z powodu Linuksa ...

Na konferencjach w ramach  Open Source Symposium jaka miała miejsce  w 14 miastach  rejonu Azji-Pacyfiku wiele mówiono na temat biznesu jaki można zrobić z technologiami typu open-source oraz o wielu pułapkach. Wprowadzie stosowanie tej technologii w wielu przypadkach pomaga obniżyć koszty IT to za stosowaniem jej przemawia wiele powodów strategicznych. Chociaż zaletą Open-Source jest dostępność do kody źródłowego używanego produktu to niewiele firm korzysta z tej możliwości. Ale dzięki temu szybciej produkt reaguje na zmianę warunków jego użytkowania - częściej następują aktualizacje.

Dyrektor lokalnego oddziału Gartnera z Hong Kongu przestrzega przed ślepym nadużywaniem open-source w swej strategii stosowania oprogramowania jedynie z powodu tego, że jest za darmo. Wybór między tą technologią a produktami komercyjnymi (zamknietymi) powinien następować na bazie przydatności i łatwości integracji z otoczniem, a także na długofalowych oczekiwanych oszczędnościach TCO (co nie zawsze jest prawdą, np. wymiana MS Office na OpenOffice powoduje kłopoty w sferze integracji, wymienialności oraz szkoleń). Bezsprzecznie Linuks w segmencie serwerów rośnie najszybciej (nawet w okresach ogólnej stagnacji), jednak ciągle nie jest dopracowana wersja desktopowa (choćby brak narzędzi do zarządzania komputerami). 

Źródło: zdnetasia

Ważne momenty w rozwoju Linuksa

Paneliści zebrani na tegorocznym spotkaniu LinuxWorld rozważali rozwój Linuksa w kierunku udostępnienia go szerszej rzeszy użytkowników. W tym celu należy wbudować w ten system operacyjny wsparcie dla nowych technologii multimedialnych m.in. iP0da. Czas ku temu jest ponieważ w produktach firmy MS pojawiła się dziura. Przewiduje się, że nowy system oper. Vista wejdzie do użytkownia dopiera w połowie 2008 r. Czas ten można wykorzystać i zapchać tę dziurę nowymi, bardziej atrakcyjnymi dystrybucjami systemu Linux. Przypomina się, że dominacja MS w obszarze systemów oper. została zachwiana 15 lat temu wraz z pojawieniem się otwartego systemu oper. Linux autorstwa fińskiego studenta Linusa Torvalda. Wyrażono nieśmiałą nadzieję, że za 5 lat rynek systemów desktopowych będzie podzielony równo między MS Windows i dystrybucje Linuksa, zaś w segmencie systemów wbudowanych w urządzenia konsumenckie przewaga będzie na korzyść Linuksa (80% rynku).

Zwrócono uwagę na rynki rozwijających się krajów, które są z reguły zbyt ubogie na wdrożenie drogich technologii i oprogramowania. W opanowaniu tych rynków mają również nadzieję firmy produkujące komputery (Intel i VA).

Przypomniano jednocześnie jak to się wszystko zaczęło w 1991 (wejście na rynek Linuksa) oraz co było przełomowym wydarzeniem w upowszechnieniu tego systemu:

  1. Oracle ogłasza w 1998 udostępnienie bazy RDBMS Oracle na platformie Linuks.
  2. Powstanie firmy i dystrybucji odmiany Linuksa - Red Hat.
  3. Popularyzacja przeglądarki internetowej Firefox.

Źródło: www.redherring.com

Inne informacje - IBM na powyżej konfrencji ogłosił otwarcie ośmiu NOWYCH projektów open-source (middleware, narzędzia deweloperskie oraz usługi). IBM ma do dyspozycji około 600 programistów w swym Linux Development Center.

OpenID - nowa platforma sprawdzająca tożsamość zostaje nadal w powijakach, ale się prężnie rozwija.

sobota, sierpnia 19, 2006

IBM krytykujeSUN-a

Twierdzi, że SUN mimo otwarcia swego flagowego systemu operac. w postaci OpenSolaris i obietnicy otwarcia Javy tak faktycznie nie wspiera projektów typu open-source. Obawia się, że programiści-fanatycy Solarisa wpuszczą OpenSolaris do firm tak samo jak wszedł do nich Linux. W obawie przed kolejnymi ruchami IBM wyznaczył jednego programistę aby monitorował postępy SUN-a w otwarciu się na projekty open-source. Aby SUN naprawdę się otworzył to musi zorganizować wokół swoich projektów społeczność zainteresowanych i zaangażowanych programistów-wolontariuszy. W porównaniu do 160 programistów aktywnie działających w projekcie Linux po jego otwarciu przez Linus Torvalda w 1991 r, liczba 16 programistów w projekcie OpenSolrisc nie jest za duża.

IBM z kolei ma w swym Linux Technology Center ponad 600 programistów i nie poprzestaje jedynie na rozwijaniu systemu Linux ale również wspiera inne projekty choćby Eclipse.

Sun trzeba przyznać obiecał pod koniec roku rozpocząć proces otwarcia technologii Java oraz opublikował konstrukcję architektury UltraSparc T1 "Niagara" na zasadzie licencji GPL.

IBM nie ma takich planów, nie chce otworzyć architektury procesorów Power twierdząc, że spowoduje to niekompatybilność między systemami.

Źródło: CNET News

czwartek, sierpnia 17, 2006

Dziurawy Informix

Zany badacz bezpieczeństwa David Litchfield (z brytyjskiej firmy Next Generation Security Software) na konferencji Back Hat w Las Vegas powiadomił publicznie o znalezieniu 20w dziur w motorze bazy danych Informix (7.3, 9.4 i 10.0), które mogą spowodować odmowę usługi (DoS), niepowołany dostęp do danych i naruszenie intergalności bazy. Istnienie dziur potwierdziła firma Secunia i nadała im status "moderately critical". Badacz krytykuje opieszałość dostawców motorów baz dnaych w łataniu swych dziur. Szczególnie niechlubną sławę ma jego ulubiony "konik" - firma Oracle. Wg.:Infoworld

środa, sierpnia 16, 2006

Co nowego u Oracle'a?

Take advantage of these development resources

Back by Popular Demand

White paper: Evaluating DBFlash for Oracle
Download this Confio Software white paper by noted Oracle experts Donald K. Burleson and Mike Ault to learn why the Resource Mapping Methodology (RMM), with its emphasis on high-impact SQL statements and the bottlenecks they cause, is the most practical approach to Oracle tuning available today.

Software download: OraLoader (exe)
OraLoader is an Oracle data load/unload tool. OraLoader can: import data from a text file; export data to text, csv, excel, html, xml, SQL Loader control file; run SQL commands, and export results to text, csv, excel, html, xml. Version 1.2 build 10 may include unspecified updates, enhancements, or bug fixes.

Sigillum PCCE - Informacja prasowa: Centra certyfikacji wspierają elektroniczną wymianę dokumentów

 

Informacja prasowa

Centra certyfikacji wspierają elektroniczną wymianę dokumentów

Trzy centra certyfikacji elektronicznej – PCC Certum, Krajowa Izba Rozliczeniowa S.A. (SZAFIR®) oraz Sigillum – podejmują wspólne kroki na drodze do upowszechnienia podpisu elektronicznego w Polsce.

Pierwszym efektem wspólnych działań było stworzenie standardowego formatu faktury elektronicznej. Wzorzec taki został ostatecznie opracowany w czerwcu br. we współpracy z Instytutem Logistyki i Magazynowania. Jest on dostosowany do wymagań i warunków polskich i pozwala na ujednolicenie wymiany danych finansowych.

Rynek podpisu elektronicznego rozwinie się w pełni dopiero wtedy, gdy administracja publiczna wprowadzi systemy informatyczne wspierające jego zastosowanie  – mówi Andrzej Ruciński, Dyrektor Rozwoju i Członek Zarządu Unizeto Technologies SA.

Zgodnie z nowelizacją ustawy o podpisie elektronicznym, administracja publiczna będzie miała obowiązek przyjmować dokumenty elektroniczne od maja 2008 roku. Stosowanie podpisu elektronicznego na szerszą skalę będzie jednak możliwe po uruchomieniu w dniu
16 sierpnia br. przez Ministerstwo Finansów systemu e-POLTAX, pozwalającego na przesyłanie wybranych deklaracji podatkowych przez Internet. O działaniach resortu finansów pozytywnie wypowiedzieli się przedstawiciele wszystkich centrów certyfikacji upoważnionych do wystawiania bezpiecznego podpisu elektronicznego w Polsce.

Uruchomienie systemu e-POLTAX daje szansę na ożywienie rynku podpisu elektronicznego jeszcze przed majem 2008 roku – wyjaśnia Elżbieta Włodarczyk, Dyrektor Ośrodka Zarządzania Kluczami w Krajowej Izbie Rozliczeniowej SA – Właśnie dlatego, pozostając konkurentami, wspólnie wspieramy wysiłki administracji publicznej w tym zakresie.

e-POLTAX będzie drugim po GIIF systemem w administracji, akceptującym certyfikaty centrów działających zgodnie z Ustawą o podpisie elektronicznym. Centra dostarczają komponenty techniczne (karty, czytniki), które bez problemu będą mogły być używane w nowym systemie. System będzie przyjmował dokumenty elektroniczne zawierające bezpieczny podpis elektroniczny weryfikowany certyfikatem kwalifikowanym kategorii I. Akceptowane będą certyfikaty wszystkich działających w Polsce kwalifikowanych centrów certyfikacji. Podpisane elektronicznie deklaracje zostaną zapisane w otwartym formacie XML, pozwalającym na wymianę danych z innymi programami, w tym głównie finansowo-księgowymi

Source: Sigillum PCCE - Informacja prasowa: Centra certyfikacji wspierają elektroniczną wymianę dokumentów

poniedziałek, sierpnia 14, 2006

Nareszcie

założyłem zapis korzystając z nowego narzędzia MS Writer

.NET for Visual FoxPro Developers - Chapter 12

.NET for Visual FoxPro Developers - Chapter 12 - bardzo ważna z punktu widzenia VFP, patrz rozdział 9 i 10.

Jak IBM widzi WS-Security?

Na strona deweloperskich IBM pojawiło się parę ciekawych artykułów na temat WS: Web services security, Part I. Z tego co widać to IBM nie ma własnego rozwiązania usług webowych a bazuje na produkcie otwartym Apache Axis. Cóż dobre i to, ktoś za nich wykonuje "brudną" robotę. A to już jest sztuka nielada.
Zasoby:

Adresy z MS

Przykład podłączenia się do MS SQL Servera:

privatevoidGetDBData()
{

OleDbConnectionconn = newOleDbConnection();
conn.ConnectionString="Provider=Microsoft.JET.OLEDB.4.0;" + "data source=" + "C:\\Temp\\Northwind.mdb";
IDbCommandcmd = conn.CreateCommand();
cmd.CommandText = "SELECT title FROM Employees where EmployeeID = 2";
try {

conn.Open();
MessageBox.Show(cmd.ExecuteScalar().ToString());
}
catch (Exception e1)
{
MessageBox.Show(e1.Message.ToString());

}
finally {
conn.Dispose();
}

}

Bezpieczeństwo stron www w usłudze webowej (WS)

Blokowanie IP
Autentykacja
Certyfikaty

  • Można przedsięwziąć następujące miary bezpieczeństwa:
    IP blocking - http://builder.com.com/5100-6389-1045082.html - po prostu blokujemy dostęp do serwera IIS wszystkim użytkownikom za wyjątkiem wybranej puli uprzywilejowanych (poprzez identyfikację ich IP).
  • User authentication - uwiarygodnienie użytkownika - również stara jak świat metoda i polega na tym, że każda funkcja usługi webowej ma dwa dodatkowe parametry (konto i hasło). Można też posłużyć się jednym żetonem, unikalnym GUID (taki żeton zwraca wiele motorów baz danych). Należy pamiętać, że taki mechanizm zapewnia jedynie autentykację (czyli identyfikację, sprawdzenie tożsamości użytkownika). Do prawidłowego działania WS potrzebny jest następny krok autoryzacja, czyli stwierdzenie co dany użytkownik może zrobić z udostępnionymi mu zasobami. A to już jest osobna bajka… Wadą takiego rozwiązania jest konieczność dostarczenia w usłudze webowej dwóch dodatkowych parametrów (co w przypadku posługiwania się WSDL może być uciążliwe) oraz konieczność sięgania do sposobu stwierdzenia jakie prawa ma zautentykowany użytkownik (najczęściej wiąże się to z koniecznością sięgania do bazy danych).
  • Certyfikaty cyfrowe - są przekazywane wraz z żądaniami usługi webowej i automatycznie obsługiwane przez oprogramowanie WS. Wymaga to dodatkowej funkcji w WS, która sprawdza czy zostać przesłany certyfikat i czy jest poprawny. Wadą takiego rozwiązania są kłopoty z uzyskaniem certyfikatu i zmuszeniem użytkownika by się nimi posługiwał. Poza tym konieczność posiadania certyfikatu ogranicza mobilność aplikacji internetowej do komputerów, która posiadają zainstalowane certyfikaty (to z drugiej strony może i dobrze).
  • Podsumowanie - http://builder.com.com/5100-6387_14-1044831.html?tag=sc - zawiera porównanie tych trzech metod oraz adresy URL do poprzednich metod.
  • WS security w wydaniu .NET - http://builder.com.com/5100-6389-1050032.html
  • Wymagania bezpieczeństwa odnosnie WS - 10 zasad bezpieczeństwa - http://builder.com.com/5100-6389-1044902.html

WSE do wykorzystania

Related Resources
Get Visual Studio 2005
Microsoft .NET Framework SDK
Visual Studio Developer Center
Web Services Enhancements (WSE) Home

Top of page
What Others Are Downloading
Others who downloaded Web Services Enhancements (WSE) 3.0 for Microsoft .NET also downloaded:
Microsoft .NET Framework Version 2.0 Redistributable Package (x86)
Web Services Enhancements (WSE) 2.0 SP2 for Microsoft .NET
Web Services Enhancements 3.0 Hands On Lab - Exploring Security
Web Service Security Guide
Web Service Software Factory

Wklejono z <http://www.microsoft.com/downloads/details.aspx?familyid=018a09fd-3a74-43c5-8ec1-8d789091255d&displaylang=en>

PHP w .NET?

Phalanger - Company Microsoft
Product URL - http://www.codeplex.com/Wiki/View.aspx?ProjectName=Phalanger

Product Description:
  • Phalanger is a new PHP implementation introducing the PHP language into the family of compiled .NET languages. Phalanger provides PHP applications an execution environment that is fast and extremely compatible with the vast array of existing PHP code. Phalanger maintains the way how PHP web applications are developed and deployed so that the user need not to learn and use the ASP.NET style of web development.

RDS ci pomoże

Command prompt 2: If you want to connect to a terminal server via the command prompt you can do so by typing
mstsc -v:servername /F -console
and hitting , where mstsc represents the remote desktop connection executable file, -v specifies which server to connect to, /F is for full-screen mode, and -console is there to indicate that you want to connect to the console.

Różności

  1. Web Service i VFP, Cóż prawda jest taka, że MS przestał rozwijać pakiet SOAP. W jego ostatniej wersji 3.0 wszedł w program instalacyjny VFP 9.0 ale to już koniec. Co mamy w zamian- MS rekomenduje ASP.NET.
  2. Nie jest tak różowo z bezpieczeństwem w Open Office - http://www.linuxworld.com.au/index.php?id=2013250670&eid=-50 - jak wskazują badacze zajmujący się bezpieczeństwem we francuskim Ministerstwie Obrony. No cóż samo życie.
  3. How do I… create a XML document from undefined legacy data? Edmond Voychowsky - niezawodny autor wielu ciekawych publikacji na TechRepublic opisuje projekt w C# jak wczytać w elegancki sposób "płaski" plik tekstowy. http://ct.techrepublic.com.com/clicks?t=4546173-a59433163422972db81206ef8831ad7b-bf&s=5&fs=0
  4. Inny b. ciekawy artykuł "Building and using table UDFs in SQL Server" jak wykorzystać funkcje wbudowane (UDF) do zwracania do aplikacji tabel a nawet b. skomplikowanych poleceń SELECT SQL. Dostępność od MS SQL 2000 Server wzwyż.

Zacznijmy od poczatku:

  • CREATE PROCEDURE simple_ap
    ( @cityID integer )
    AS
    SELECT CustomerID, CompanyName
    FROM Customers
    WHERE Customers.CityID = @cityID

Teraz trochę bardziej skomplikowany przykład:

  • CREATE FUNCTION [dbo].[Customers_By_City_Select] -- denotes table UDF
    (
    @city nvarchar(15)
    )
    RETURNS TABLE
    AS
    RETURN
    (
    SELECT CustomerID, CompanyName
    FROM dbo.Customers
    WHERE Customers.City = @city
    )

Wywołanie takiej procedury:

  • EXEC simple_ap 12345

Inny przykład:

  • SELECT * FROM Customers_By_City_Select ('Berlin')


Zabawę można kontynuować dalej np.:

  • SELECT Customers_By_City_Select.CustomerID, OrderID
    FROM Customers_By_City_Select ('Berlin')
    INNER JOIN Orders ON Orders.CustomerID = Customers_By_City_Select.CustomerID


Wg. http://articles.techrepublic.com.com/5100-9592_11-6100403.html?tag=nl.e606

WS-Security

Z witryny IBM - http://www-128.ibm.com/developerworks/library/specification/ws-secure/

Bezpieczeństwo usług internetowych (WS), początkowo zakładano, że WS odbywa się w bezpiecznym środowisku np. poprzez protokół https (transport w niższej warstwie sieciowej). Założenie te nie zawsze może być spełnione dlatego opracowano standard wymiany protokołu SOAP niezależnie od transportu.
  • Zabezpieczenie komunikatów SOAP opracowane w WS-Security są w trzech obszarach: integralności (wykorzystuje standard XML Security),
  • poufności (XML Encryption) i
  • autentykacji (różnego rodzaju żetony stosowane w przemyśle: Username t., X.509 t., SAML t., Kerberos t.)
Celem było stworzenie elastycznej ramy do której można wpisać możliwie dużo istniejących już modeli bezpieczeństwa i technologii kryptograficznych.
WS-S udostępnia ogólny i rozszerzalny mechanizm kojarzenia komunikatu z żetonem (token) bezpieczeństwa.
Podkreśla się, że WS-Security samo w sobie nie jest kompletnym rozwiązanie problemu bezpieczeństwa. Należy je traktować jako część rozwiązania w powiązaniu z innymi metodami zabezpieczeń np. stosowanie specyficznych protokołów. Opis standardu jest na stronach OASIS (ftp://www6.software.ibm.com/software/developer/library/ws-secure.pdf).

Zasoby sieciowe:

niedziela, sierpnia 13, 2006

AJAX, Java, Flash, and .NET @ AJAXWORLD MAGAZINE






Zasoby AJAX
M. Driver, R. Valdes, and G. Phifer. "Rich Internet Applications Are the Next Evolution of the Web." Gartner Research Note. G00126924. May 4, 2005.
Coach Wei. "XML for Client-side Computing." XML Journal. (http://ajax.sys-con.com/read/44013.htm). March 10, 2004.
Dion Hinchcliffe "When the worlds of SOA and Web 2.0 collide."ZDNet. http://blogs.zdnet.com/Hinchcliffe/?p=35). April 2006.
Dana Gardner. "Nexaweb draws a brilliant bead between SOA and AJAX values." ZDNet, http://blogs.zdnet.com/Gardner/index.php?p=2269. March 2006.
Laszlo Systems: http://www.lazslosystems.com/
Adobe Flex: www.macromedia.com/software/flex/
Laszlo Systems: www.openlaszlo.org/lps-latest/docs/reference/script.html
Nexaweb Platform: http://www.nexaweb.com/
Nexaweb jRex: http://www.nexaweb.com/
Dojo toolkit: http://www.dojotoolkit.org/
Rico Ajax toolkit: http://openrico.org/
DWR: http://getahead.ltd.uk/dwr/
Thinlet: http://www.thinlet.com/
Apache Kabuki: http://kabuki.apache.org/
Nexaweb aRex: www.nexaweb.com/products.aspx?id=326
Microsoft, XAML, and Windows Vista: http://msdn.microsoft.com/windowsvista/about/#wpfx
Backbase: http://www.backbase.com/
JackBe: http://www.jackbe.com/
Isomorphic: http://www.isomorphic.com/
Bindows: http://www.bindows.net/
Laszlo Systems. "Laszlo Systems Announces Plans To Extend OpenLaszlo Platform to Support Delivery of Web 2.0 Applications in Browsers Without Flash." www.laszlosystems.com/company/press/press_releases/pr_mar_06.php. March 2006.
Nexaweb. "Nexaweb To Introduce Ajax Developer Edition." www.nexaweb.com/news.aspx?id=329. March 2006.

jjjj

Podstawy interfejsu użytkownika

Zasady transmisji danych przedstawił Claude Shannon (matematyk z Ball Lab) kiedy w 1948 roku opublikował pracę "Mathematical Theory of Communication". Komunikacja działa wg. zasady: Source - Encoder - Channel -Decoder -Destination. Podobnie opisał w 1915 roku twórca semiotyki Ferdinand Saussure model komunikacji przy pomocy mowy. Zasługą C.S. jest wyróżnienie elementów sieci komunikacyjnej: 1) ilość transmitowanej informacji 2) szerokość pasma transmisji i 3) jakość transmisji. Starał się też wyznaczyć miary przekazywania informacji. Sieć komunikacji elektronicznej jest podobna do sieci komunikacji ludzkiej (człowiek posługuje się trzema kanałami - interfejsami: dialog wewnętrzny, dialog zewnętrzny oraz dialog płci) ale ustępuje mu szybkością i efektywnością.

Ciekawe odnośniki:
  • Lucent Technologies (2006). An overview of information theory. Retrieved April 16, 2006, from www.lucent.com/minds/infotheory/what5.html.
  • McCloud, Scott. (1994). Understanding Comics. New York: HarperPerennial.
    Saussure, Ferdinand de. (1988). The object of study. In D. Lodge (Ed.). Modern Criticism and Theory (pp. 2-9). New York: Longman.
Ciekwaw biblioteki i ramy do tworzenia aplikacji (framework):

sobota, sierpnia 12, 2006

IBM też coś ma dla Ciebie, poważnie












IBM, na bazie produktu - serwera aplikacji Java - zakupionej firmy Gluecode proponuje nowy produkt typy "entry" do w miarę bezboleśnego wejścia w świat J2EE. Jest to IBM WebSphere Application Server Community Edition V1.0.1.2 oparty o otwarty projekt Apache Geronimo (Tomcat). Dzięki temu dostajemy gotowca, w pełni zintergrowanego serwera Tomcat z innymi produktami: Log4J, Axis, JAAS wraz z pełnymi narzędziami konfiguracyjnymi. Dobra robota...

Jak SAP z MS

Projekt Mendocino zmienił nazwę na Duet i jest to wspólne przedsięwzięcie między MS i SAP skierowane ku information workers w celu ułatwienia im dostępu z pakietów biurowych MS Office do systemów SAP. "...The product is available from SAP, as of June 28, 2006. Please contact your account executive for more information..."

piątek, sierpnia 11, 2006

IBM da ci dużo (i jeszcze więcej)

IBM napisał konektor (framework) umożliwiający współpracę między aplikacjami napisanymi w Javie (JSP lub czyste servlety)i uruchamianymi w środowisku Websphere Application Server Community Edition a aplikacjami w PHP (<http://www.alphaworks.ibm.com/tech/phpintwasce/download>)
Jak to działa:

Update: August 1, 2006
Updates to the documentation and samples enable easy access to the forum for questions and comments.
What is PHP Integration Kit for WebSphere Application Server, Community Edition?
PHP Integration Kit for WebSphere® Application Server (WAS), Community Edition (CE), allows users to integrate PHP-based scripting into their Java™ 2 Enterprise Edition (J2EE) applications. Integrating these technologies gives programmers the advantages of both PHP and Java, providing greater flexibility in deploying dynamic applications, building Web front ends, and creating development projects.
The PHP Integration Kit provides a sample Web application that can contain Java resources (JSPs and servlets, as with any J2EE Web application) as well as PHP scripts. The sample application is preconfigured to forward each PHP request to a separate PHP run-time environment, which then executes the requested PHP script. Users can then manage the combined Java/PHP application as a single unit within WAS CE: Users can deploy and undeploy the application using the WAS CE administration console and can apply security constraints to both Java and PHP resources using the J2EE security model.
This technology runs on Windows® and Linux® (see Requirements section for details).
How does it work?
The PHP Integration Kit provides a Web application containing a servlet filter that communicates with a PHP run-time environment using the FastCGI interface. Users download and install a PHP run-time environment and any prerequisites, such as MySQL, for their platform, as explained in the PHP Integration Kit's documentation. The user can then package the PHP application and modules using the kit's Web module template, which is preconfigured with the necessary deployment descriptors to invoke the PHP run-time environment and to forward PHP requests to that run-time environment.

Wklejono z <http://www.alphaworks.ibm.com/tech/phpintwasce>

Innym projektem jest klient do WS - narzędzie do testowania usług internetowych IBM Generic Web Services Client Tool
A generic client written in PHP and capable of secure and non-secure calls for use in testing Web services. Date Posted: May 23, 2006
What is IBM Generic Web Services Client Tool?
This tool is designed for testing existing Web services from a Linux®/Apache/MySQL/PHP (LAMP) environment, as well as from WAMP (the corresponding Windows® environment). When given a Web Service Definition Language (WSDL) specification, this tool is capable of secure and non-secure calls when using PHP SOAP (Simple Object Access Protocol) extension, and simple non-secure calls when using NuSOAP.
The interaction consists of a selection of a WSDL and a method within that service, formatted input insertion (as dictated by the WSDL), execution of the method call, and raw (or formatted) display of results.
How does it work?
IBM Generic Web Services Client Tool is a PHP program that runs on an Apache server. It is meant for testing Web services as well as the capabilities of a PHP client. The tool provides both direct and indirect (low-level) calls, using either the PHP5 SOAP extension or the NuSOAP package.
The tool allows the user to select a WSDL. The WSDL is parsed and all available methods are presented for selection. Once a method is selected, a method-specific form is displayed and the user may fill it with the desired values and then execute a method call in several client modes (SOAP or NuSOAP call, direct or low-level call, etc.). The tool presents the call results and other related information.

Świetny portal - http://www-128.ibm.com/developerworks/websphere/downloads/

Można ściągnąć i uruchomić WAS Community Edition http://www-128.ibm.com/developerworks/downloads/ws/wasce/?S_TACT=105AGX10&S_CMP=WESDL

Wihajstry na tapecie

Moda na wihajstry
Coraz więcej firm internetowych (Opera, Yahoo, Google - http://desktop.google.com, Microsoft) wpuszcza internautów w przysłowiowe maliny dając im do ręki wihajstry tzw. Widgets. Wihajstry to potencjalnie bomba zegarowa (koń trojański) umożliwiający wpuszczenie do komputera skryptu w JS, który ma dostęp do wszystkich zasobów lokalnych komputera oraz z definicji również do Internetu. Tym nie mniej pomysł jest ciekawy i podobny do maszyny wirtualnej Javy JVM z Appletem czy też instalacji "grubego" klienta (np. VFP) tylko, że mniej bezpieczny bo niczym nie kontrolowany.

Co może Ci dać Yahoo? Serio...

2006-08-11; 06:45
Na portalu Yahoo dla deweloperów (http://developer.yahoo.com/python/python-rest.html) znajduje się informacje dla twórców nie tylko PHP ale również i Pythona.
Dla fanów JavaScript też jest tam swój kącik http://developer.yahoo.com/javascript/, jak również informacja o wihajstrach (widgets).
Usługi internetowe są zbudowane na wkompilowanej w ten język bibliotece urllib/urllib2. Obsługa autentykacji jest możliwa. Przykład:

import urllib
url = 'http://api.search.yahoo.com/ ContentAnalysisService/V1/termExtraction'
appid = 'YahooDemo'
context = '''
Italian sculptors and painters of the renaissance favored
the Virgin Mary for inspiration
'''
query = 'madonna'
params = urllib.urlencode({
'appid': appid,
'context': context,
'query': query
})
data = urllib.urlopen(url, params).read()

Jeżeli tego mało to można skorzystać z alternatywnej biblioteki (instalowanej oddzielnie)httplib2 (http://bitworking.org/projects/httplib2/).
Opis usług internetowych dla języka Python można znaleźć tu http://diveintopython.org/http_web_services/index.html.
Jest też informacja o tym jak parsować w Pythonie struktury JSON i XML.

czwartek, sierpnia 10, 2006

Page 2 - Datasets in Microsoft.Net

Page 2 - Datasets in Microsoft.Net: "Using C#.Net


string strConn,
strSQL;
strConn = 'Provider=SQLOLEDB;Data Source=(local)\NetSDK;'
+
'Initial
Catalog=Northwind;Trusted_Connection=Yes;';
strSQL = 'SELECT CustomerID,
CompanyName, ContactName, Phone '
+
'FROM
Customers';
OleDbDataAdapter da = new OleDbDataAdapter(strSQL,
strConn);
DataSet ds = new DataSet();
da.Fill(ds,
'Customers');"

HOWTO:AJAX workaround - ITtoolbox Wiki

HOWTO:AJAX workaround - ITtoolbox Wiki:
"function processStateChange(){
statusDiv = document.getElementById('status');
if (req.readyState == 0){ statusDiv.innerHTML = 'UNINITIALIZED'; }
if (req.readyState == 1){ statusDiv.innerHTML = 'LOADING'; }
if (req.readyState == 2){ statusDiv.innerHTML = 'LOADED'; }
if (req.readyState == 3){ statusDiv.innerHTML = 'INTERACTIVE'; }
if (req.readyState == 4){ statusDiv.innerHTML = ' '; }
if (req.readyState == 4){
if (req.status == 200){
response = req.responseText;
destinationDiv = document.getElementById(dest);
destinationDiv.innerHTML = response;
} else {
statusDiv.innerHTML = 'Error: Status '+req.status;
}
}
}
function loadHTML(url, destination){
dest = destination;
if (window.XMLHttpRequest){
req = new XMLHttpRequest();
req.onreadystatechange = processStateChange;
req.open('GET', url, true);
req.send(null);
} else if (window.ActiveXObject) {
req = new ActiveXObject('Microsoft.XMLHTTP');
if (req) {
req.onreadystatechange = processStateChange;
req.open('GET', url, true);
req.send();
}
}
} ... "

The SPS Weblog - Hosting a .NET ActiveX Control in Visual FoxPro

The SPS Weblog - Hosting a .NET ActiveX Control in Visual FoxPro

Calvin Hsia's WebLog : Create a .Net UserControl that calls a web service that acts as an ActiveX control to use in Excel, VB6, Foxpro

Calvin Hsia's WebLog : Create a .Net UserControl that calls a web service that acts as an ActiveX control to use in Excel, VB6, Foxpro: "Create a .Net UserControl that calls a web service that acts as an ActiveX control to use in Excel, VB6, Foxpro"

Mixed up on Internet Explorer - Rick Strahl's WebLog

Mixed up on Internet Explorer - Rick Strahl's WebLog - ciekawe uwagi nt, IE gorzkie slowa ale prawda jest taka, ze wbudowana w OS przegladarka IE jest naprawde potrzebna.

VFP i BLOB-y

Rick Strahl's WebLog
Bob Lucas posted a nice Visual FoxPro 9.0 tip on the Message Board earlier today in respect to how you can get Image values in and out of a SQL Server database and I thought I’d repost this here with a little more information. VFP 9 makes it a lot easier to work with Image/Blob data types than previous versions because it has native support for a binary datatype.

One of the issues in previous versions of VFP has always been talking to SQL Server image\binary data. FoxPro wants to convert any binary data into a General field when it returns it and sending data in has to be done with binary field types. In the past I had some nasty workarounds for this which involved creating a temporary cursor and modifying the general field physically on disk to turn it into a regular binary memo to read the data. I also did this to write the data although writing is actually easier.

Let’s start with VFP 9 because it’s easiest. The sample below uses a wwSQL class which is just a thin wrapper around SQL Passthrough (or a CursorAdapter if the ADO version is used). But you can replace it easily enough with SQLStringConnect and SQLEXEC calls.

CLEAR
DO WCONNECT

oSQL = CREATEOBJECT("wwSQL")
? oSQL.Connect("driver={Sql Server};database=WebStore2;server=.")

*** Create a string with some binary data
lcValue = "TEST ÿ[1]
- String"
? lcValue

*** Convert into a binary value – this works for VFP 8 as well
pcBin = CREATEBINARY(lcValue)

*** Or in 9.0 only:
*lcBin = CAST(lcValue as Blob)
? pcBin

CURSORSETPROP("MapBinary",.F.,0) && MapBinary not required
? oSql.ExecuteNonQuery("update wws_customers set [image] = ?lcBin where pk = 1")

? "Records: " + TRANSFORM(oSQL.nAffectedRecords)
? "Error: " + oSql.cErrorMsg


CURSORSETPROP("MapBinary",.T.,0)
? oSql.execute("select * from wws_customers")

browse
? Image
? CAST(Image as M)

RETURN

This works directly passing the data through the system as blob, which is great since this was a lot more of a pain in previous versions of VFP.

Actually the Update/Insert code above works just fine in VFP 8 (and probably earlier) if you remove the CursorSetProp call. CreateBinary creates a binary string and VFP detects the binary string and properly updates the Image field in the database even in 8.0.

However, reading binary data in 8.0 is another story. The only way I managed to do this, was to use this nasty code:

FUNCTION ReadBinaryField
LPARAMETERS lcField,lcTable,lcWhereClause
LOCAL lcTFileName, lcFileName, lcAlias, lcResult,llField, lnResult

IF EMPTY(lcWhereClause)
lnResult = this.Execute("select " + lcField + " from " + lcTable)
ELSE
lnResult = this.Execute("select " + lcField + " from " + lcTable + " where " + lcWhereClause)
ENDIF

IF lnResult < 1
RETURN ""
ENDIF

lcTFileName = SYS(2023) + "\" + SYS(2015) + ".dbf"
lcFileName = DBF()
lcAlias = ALIAS()

*** Copy out the data - cursor deletes automatically
COPY TO (lcTFileName)

*** Close the cursor
SELECT (lcAlias)
USE

* Change the flag in the general field
llFile = fopen(lcTFilename,12)
fseek(llFile,43)
fwrite(llFile,'M')
fclose(llFile)

*** Reopen the copied file
USE (lcTFileName) ALIAS __TImage EXCL

*** Retrieve the binary field value
lcResult = EVAL("__Timage." + lcField)

*** Close and Erase the temp file
USE
ERASE (FORCEEXT(lcTfileName,"*")

IF !EMPTY(lcAlias)
SELECT (lcAlias)
ENDIF

RETURN lcResult

So you can imagine it’s nice to be able to pull image data directly as part of a SQL Statement rather than going through all of this rigamarole. I hadn’t tried this but I think the CursorAdapter with an ADO data source also may have been able to pull the data out in VFP 8.

VFP9's support for a binary data type is the main reason this is much easier in 9.0 - a lot of features have been adjusted to take advantage of the new binary type including better support for some ActiveX controls that feed binary data back from their methods.

Now if they only could have done the same thing and have provided us with a Unicode type...

Co daje Yahoo deweloperom?

W artykule Build powerful Web applications via the Yahoo! Developer Network jest informacja o solidnym frameworku do tworzenia aplikacji internetowych udostepnianego na zasadach licencji BSD przez znana firme Yahoo (http://developer.yahoo.com/). Szczególnie interesująco wygląda sprawa GUI - (http://developer.yahoo.com/yui/index.html) oraz wzorców projektowych (http://developer.yahoo.com/yui/index.html). Dodatkowo można tworzyć tzw. wihajstry (widgest) - wtyczki do przeglądarki internetowej.

środa, sierpnia 02, 2006

Javascript - niebezpieczny?

Javascript - niebezpieczny? Do tej pory badacze zajmujący się bezpieczeństwem aplikacji internetowych kierowali swoją uwagę na dziury w przeglądarkach i serwerach internetowych. Teraz chyba mają dodatkowe zajęcie.

JS jest podstawą w rozwoju platformy internetowej Web 2.0 i rozszerza granice możliwości tego co może zrobić strona internetowa. Z drugiej strony "złośliwe" skrypty JS w połączeniu z coraz powszechniejszymi atakami na witryny (wykorzystujące luki w zabezpieczeniach witryn) powodują poważne szkody. JavaScript (później nazwany ECMAScript) - został opracowany przez Netscape Communication w 1995. Za wybór takiej nazwy "winę" ponosi Bill Joy (twórca edytora vi i współzałożyciel firmy Sun), który w rozmowie telefonicznej wywołaną przez przedstawiciela NetScape zapytany zgodził się aby w nazwie zawarte było słowo JAVA. Sam zresztą przyznaje, że nie miał głowy do myślenia, gdyż był na wyjeździe z rodziną. Co ma JavaScript do fali Web 2.0 czyli witryn dynamicznych wykorzystujących technologię AJAX (Asynchronous JavaScript and XML)? Podstawą AJAX-a jest właśnie JavaScript. Język ten ma złą sławę w zakresie nadużyć przez hackerów (Yammer worm w Yahoo Mail, Samy worm w MySpace - wykorzystały dziury w bezpieczeństwie dostępne w JS). Ostatnio badacze zajmujący się bezpieczeństwem odkryli sposób wykorzystania JS do wejście poprzez skrypty JS do sieci domowych i korporacyjnych np. sieci lokalne a nawet do ataków na serwery oraz urzadzenia telekomunikacyjne (rutery czy drukarki) *. Jak wygląda atak? 1) Poprzez skrypty JS wbudowane w stronę www uruchamiane w trakcie przeglądania "złośliwej" witryny (najczęściej podstawionej przez hackerów, mającej nazwę podobną do "dobrej") lub 2) poprzez wykonanie skryptów z innej strony (wykorzystując lukę w zabezpieczeniu zwaną "corss-site scripting") - wiele poważnych firm np. MS, GG załatało tę dziurę. Obrona? 1) Wyłącznie interpretera JS w przeglądarce - ale to pozbawia funkcjonalności wielu stronom. 2) Twórcy aplikacji Web 2.0 powinni więcej czasu poświęcić na sprawy bezpieczeństwa aplikacji a nie rozwijać jej funkcjonalność. Na podstawie:

FAQ: JavaScript insecurities

Wklejono z <http://news.com.com/FAQ+JavaScript+insecurities/2100-7349_3-6100019.html?tag=html.alert>

Informacje dodatkowe:

AJAX has its own share of security pitfalls.

Wklejono z <http://news.com.com/JavaScript+opens+doors+to+browser-based+attacks/2100-7349-6099891.html?part=dht&tag=nl.e433>

  • Firma SPI Dynamics zbudowała skaner lokalnej sieci uruchamiany ze zdalnej strony www i mogący uzyskać dostęp do wszystkich urządzeń sieciowych (np. w celu zmiany konfiguracji pracy i parametrów). Naprawa luki w JS bez utraty funkcjonalności wielu istniejących stron www jest trudna tak, że problem naprawy tej luki będzie przez jakiś czas nierozwiązany.

Jak się mają technologie IT?




Co wybrać narzędzia open-source czy .NET?

Konkluzja: współpraca obu rozwiązań. Wszystkie platformy mają podobną wydajność i dobrze sobie radzą w przeprowadzonych testach. Szczególnie, ku zdumieniu testujących dobrze wypadły mieszanki platformowe w środowisku Windows. Wybór testów - zastosowano dostępne na rynku darmowe narzędzia do testowania obciążenia. Testy obciążały raczej aplikacje a nie stanowiły obiektywnego miernika wydajności danej platformy w oparciu o którą dana aplikacja była stworzona. Aplikacje testowane nie były jakoś specjalnie optymalizowane.

Informacje o testach i wynikach można znaleźć: http://blog.eweek.com/blogs/eweek_labs.

Działy IT budują swoje platformy tzw. IT stacks w oparciu o różnorodne narzędzia i technologie. IT stack składa się z: systemu operacyjnego, serwerów webowych, baz danych, platformy warstwy skryptowej i paltformy rozwoju aplikacji. W oparciu o niego powstają aplikacje korporacyjne: portale, vortale, CMS, CRM lub ERP (enterprise resource planning). Uzależnienie od platformy IT jest tym większe im bardziej firmy orientują się na SOA. Dwie najbardziej znane platformy IT to Microsoft .NET i LAMP (WAMP na Windows).

Trzecia najbardziej ważna w obszarze korporacyjnym jest platform J2EE (inwariant to JSP). Te trzy platformy można łączyć i mieszać ze sobą. Wybór takiej a nie innej warstwy oparty jest nie o przesłanki technologiczne ale o socjalne i tradycyjne.

Testy portalowe: SharePoint portal Server 2003 (I-sze miejsce wytłumaczone doskonałą integracją wszystkich warstw platformy), XOOPS (PHP), Plone (Python - na bazie ZOPE, wydajność średnia), Liferay (używa lekkiej bazy HyperSonic SQL obecnie H2 oraz J2EE) i JBoss Portal (JSP, produkt niedojrzały jeszcze: miał problemy w wydajnością na platformie JBoss/CentOs/MySQL lepiej mu szło pod Windows). Narzędzie do obciążenie testami - nie OpenSTA ale SilkPerformer (dawniej z firmy Segue Software teraz Borland).

Konkluzja:

"The results we saw with the WAMP stacks were probably the biggest surprise in our entire test. Enterprise IT managers shouldn't hesitate to look into the option of deploying open-source stacks on a Windows Server platform."

Wklejono z <http://www.eweek.com/article2/0,1895,1983367,00.asp>

Niektóre wyniki testów:


Informacje różne

  • Przechrzta - zmiana nazwy WinFX na .NET 3.0."The .Net Framework 3.0 is still comprised of the existing .Net Framework 2.0 components, including ASP.Net, WinForms, ADO.Net, and the CLR, as well as new developer-focused innovative technologies in WPF, WCF, WF and WCS." Dodano następujące komponenty: WCF (Windows Communication Foundation), WPF (Windows Presentation Foundation), WF (Windows Workflow), and InfoCard—now known as WCS (Windows CardSpace) as part of the renaming scheme.http://www.eweek.com/article2/0,1895,1974865,00.asp

niedziela, lipca 30, 2006

PKI

VPN i PKI

VPN coraz częściej staje się wartością dodaną każdej sieci biznesowej. Szeroki dostęp do Internetu pozwala wykorzystać VPN oraz inwestycje w sieci lokalne do poszerzenia usług wewnętrznych na zewnątrz tej infrastruktury (głównie dla partnerów, klientów oraz pracowników). Możliwość korzystania z sieci wewnętrznej firmy poprzez Internet nosi nazwę tunelowania VPN.

VPN pozwala na dwie rzeczy: dostęp do sieci wewnętrznej dla upoważnionych do tego osób (VPN poszerza w sposób bezpieczny LAN); szyfrowanie całego ruchu sieciowego. Normalnie w Internecie jest możliwe podsłuchanie komunikacji, VPN uniemożliwia tego rodzaju szpiegostwo. Do tej pory był możliwy dostęp do zasobów wewnętrznych sieci np. poprzez dostęp typu dial-up ale było to bardzo zawodne i drogie rozwiązanie.

Technologia VPN

Tunel VPN łączy dwie lokacje. W tym przypadku użytkownika oraz zdalną sieć wewnętrzną. Kiedy użytkownik zewnętrzny pragnie połączyć się do sieci lokalnej poprzez VPN i korzystać z jej zasobów musi się najpierw przedstawić (zweryfikować, zautentykować). Po udanej autentykacji serwis VPN nawiązuje bezpośrednie połączenie z serwisem VPN na serwerze zdalnym. Taki kanał nosi nazwę tunelu poprzez Internet pomiędzy dwoma sieciami. Od tego momentu każdy komunikat sieciowy między tymi dwoma sieciami będzie przechodził przez ten właśnie kanał. Usługi VPN na obu końcach tego kanału będą dodatkowo szyfrowały i deszyfrowały wszystkie komunikaty. Jest wiele implementacji VPN, każda ma swoje wady i zalety. Dwie najpopularniejsze technologie konstruowania kanału VPN to:

  • P2PTP lub PPTP (Point to point tunneling protocol)
  • L2TP/IPSec (Layer 2 tunneling protocol with IPSec)

MS oczywiście implementował obie te technologie , ale jest jeszcze trzecia OpenVPN autorstwa James Yonan. Dlaczego ta trzecia? Dlatego:

  • PPTP jest protokołem MS i na początku rozwoju miał wiele kłopotów z bezpieczeństwem, obecnie zostały one usunięte ale pojawił się problem kłopotów we współpracy z innymi platformami. Np. protokół ten używa do konstrukcji kanału VPN i pakietów danych protokołu tzw. GRE (general routnig encapsulation) i niektóre routery blokują tego rodzaju ruch sieciowy. OpenVPN do konstrukcji pakietów w tunelu VPN używa wyłącznie protokołu UDP oraz TCP.
  • L2TP/IPSec nie dostarcza bezpieczeństwa, jedynie jest protokołem enkapsulującym dane, IPSec służy do szyfrowania i autentykacji stron. Ma jeszcze jedną wadę - VPN realizowany przy pomocy L2TP/IPSec nie może działać w środowisku NAT (Network Address Translation) działających na niektórych routerach. NAT wykorzystywany jest w małych sieciach i routerach obszaru SOHO (small office/hme office). Nowe routery DSL wspierają już NAT poprzez Universal Plug and Play (UPnP) NAT Traversal ale nie są jeszcze popularne. Protokół L2TP/IPSec jest skomplikowany w konfiguracji i konserwacji dlatego, że jest częścią większej infrastruktury sieciowej i działa na niższej warstwie. PPTP działa na wyższym poziomie i łatwiej zlokalizować i wykryć w nim problemy.
  • OpenVPN wydaje się pozbawiony powyższy wad i na dodatek jest łatwiejszy w instalacji (wystarczy UDP i/lub TCP). Do zabezpieczeń używa SSL (Secure Socket Layer) protokół opracowany przez Netscape. Od 1999 roku SSL został przemianowany na TLS (transport layer security) przez Internet Engineering Task Force (IETF). Bezpieczeństwo TLS wzmocnione jest przez technologię certyfikatów X.509. W najnowszej co prawda beta wersji OpenVPN 2.0 dodano niezwykle cenną właściwość - walidację podczas procesu autentykacji certyfikatów z listą odwołanych certyfikatów (CRL - Certificate Revocation List), inną nowością jest to, że usługa VPN uruchamia się jako jeden proces.

OpenVPN stosuje TLS do uzyskania bezpieczeństwa, sam protokół TLS w trakcie procesu weryfikacji i szyfrowania polega na cyfrowym obiekcie zwanym certyfikatem X.509. Po właściwym skonfigurowaniu PKI można również udostępnić wiele innych zabezpieczonych w ten sposób usług np. web services (uslugi sieciowe) i pocztę.

Technologią podstawową do zapewnienia bezpieczeństwa jest kryptografia oparta na kluczy publicznym - polega na bezpiecznej komunikacji wykorzystującej dwa rożne klucze: klucz publiczny dostępny każdemu oraz klucz prywatny zastrzeżony jedynie dla właściciela. Oba klucze są generowane na podstawie skomplikowanego algorytmu kryptograficznego. Mają one pożyteczną właściwość: zaszyfrowanie komunikatu jednym kluczem jest możliwoe do odczytania przy pomocy drugiego klucza. Tzn. po wygenerowaniu pary kluczy, użytkownik może odszyfrować kluczem publicznym komunikat zaszyfrowany kluczem prywatnym i na odwrót.

Przykładowy scenariusz:

  • Obiekt A wysyła zaszyfrowaną wiadomość do obiektu B, obiekt B wygenerował swoją parę kluczy i przekazał klucz publiczny m.in. do obiektu A, przy zaszyfrowaniu obiekt A korzysta z klucza publicznego B.
  • Obiekt B otrzymuje wiadomość i tylko on deszyfruje ją swoim kluczem prywatnym
  • Uwaga 1: dopóki obiekt B trzyma w sekrecie swój klucz prywatny tylko on może deszyfrować wiadomości od różnych osób szyfrujących jego kluczem publicznym
  • Uwaga 2: czy w przypadku odwrotnym kiedy obiekt B chce wysłać zaszyfrowaną wiadomość przeznaczoną wyłącznie dla obiektu A. Jak wiadomo w Internecie wszystkie komunikaty można przechwycić, jedynie te zaszyfrowane są niedostępne dla osób niepowołanych. Czy można skorzystać z istniejących kluczy obiektu B? Otóż nie, gdyby obiekt B wysłał komunikat do obiektu A szyfrując go swym kluczem prywatnym do WSZYSCY w Internecie mający jego klucz prywatny. Wniosek - NADAWCA chcąc wysłać do kogoś zaszyfrowaną wiadomość musi ją zaszyfrować kluczem publicznym ODBIORCY.

Cyfrowe certyfikaty

Widać w tym scenariuszy jeden mankament - brak możliwości zarządzania kluczami PUBLICZNYMI (a nie prywatnymi). Skąd NADAWCA wie, że wysyła wiadomości i szyfruje je właściwym kluczem publicznym ODBIORCY (strona trzecia może podsunąć NADAWCY fałszywy klucz, dzięki czemu NADAWCA szyfrując nim dane jest w błędzie myśląc, że one mogą być odszyfrowane przez właściwego ODBIORCĘ - nosi to nazwę maskarady). W tym celu wymyślono cyfrowy certyfikat, który jest strukturą danych weryfikującą klucz publiczny i zawiera:

  • Nazwisko właściciela klucza publicznego
  • Nazwisko urzędu certyfikacyjnego potwierdzającego autentyczność klucza
  • Właściwy klucz publiczny
  • Cyfrowa suma kontrola certyfikatu zaszyfrowana kluczem prywatnym urzędu certyfikacyjnego

Urząd certyfikacyjny gwarantuje autentyczność klucza publicznego (tj. że należy do strony żądającej certyfikatu zwanej też PODMIOTEM - subject). Strony wystawiająca certyfikat nosi nazwę WYSTAWCY (issuer). Format certyfikatu zgodnego z X.509 zakodowuje te nazwy zgodnie ze specjalną syntaktyką -DN (distinguish names).

WYSTAWCA tworząc certyfikat zbiera informacje o stronie żądającej go, tworzy ciąg: nazwa strony żądającej dane + klucz publiczny żądającej strony + swoją własną nazwę i oblicza sumę kontrolną takiej struktury. Urząd certyfikacyjny szyfruje wynik tej sumy kontrolnej przy pomocy swego własnego klucza prywatnego i dopisuje to do struktury certyfikatu.

Od tej chwili każdy może sprawdzić czy dany klucz publiczny udostępniony w Internecie faktycznie należy do WYSTAWCY. Mówiąc ogólnikowo UC przechowuje unikalne świadectwo autentyczności CERTYFIKATU, jest ono nieznane innym stronom.

Struktura Klucza Publicznego

PKI jest to zespół oprogramowania, baz danych oraz usług sieciowych pozwalających organizacji na wystawienie, opublikowanie oraz odwołanie certyfikatu cyfrowego.

Identyfikacja dostępu do zasobów w Windows


Przeprowadzanie autentykacji użytkowników w serwerze internetowym IIS

Spojrzenie historyczne - prawa dostępu użytkowników do zasobu w środowisku Windows są przechowywane w samych zasobach. Generalnie istnieją dwa protokoły autentykacji: named pipes (domyślny do MS SQL) oraz TCP/IP.

Zabezpieczenie IIS jest o tyle zagmatwane, że IIS korzysta z zabezpieczeń Windows - IIS jest środkiem do udostępniania plików z serwera w przeglądarce klienta. Jak nieznany użytkownik sieci może być autentykowany? Drogą do tego jest specjalne konto "wytrych" wpuszczające (potencjalnie) do wewnątrz zasobów Windows - IIS Anonymous User. Administrator musi stworzyć dla niego lokalne konto - IUSR_machinename (np. IUSR_marekw) który ma prawo "log on locally" i należy do grupy "Guest". Teoretycznie jest to bezpieczne.

Typy autentykacji (i podanie danych akredytacji do otrzymania dostępu do zasobów, gdy konto anonimowe jest zablokowane:

  1. Challenge/Response - działa dobrze w domenie Windows i tylko gdy przeglądarką klienta jest IE (czyli po zalogowaniu się do domeny, użytkownik jest automatycznie widziany przez IIS).
  2. Basic Authentication - jeżeli C/R nie uda się - przeglądarka prezentuje dialog żądający podania konta i hasła (są one wysyłane do IIS - czystym tekstem zakodowane Base64), zwykle wzmacnia (chroni przed podsłuchem) się tę transmisję poprzez SSL. Po otrzymaniu danych IIS przedstawia się w Windows jako ten użytkownik którego konto uzyskał w wyniku dialogu z przeglądarką.

Sposób aby programistycznie można wymusić autentykację:

<%

Response.Clear

Response.Buffer = True

Response.Status = "401 Unauthorized"

Response.AddHeader "WWW-Authenticate","NTLM"

Response.End

%>

Impersonifikacja (przestawienie się) - serwer IIS obsługuje pobranie zawartości pliku poprzez przedstawienie się jako konkretny użytkownik (anonimowy - IUSR_marekw, lub jako ten którego akredytację podał przy ekranie logowania). Użytkownik ten musi mieć prawo logowania się lokalnego do serwera Windows.

Oddelegowanie (delegation) - nie ma go w NT 4.0

SSL - oprogramowanie kodujące transmisję, duży narzut na wydajność serwera.


Zabezpieczenie MS SQL Server'a

Ma trzy poziomy: standard (wbudowany i pomija autentykację z domeną), zintegrowany z NT (wykorzystuje do logowania do MS SQL konto zalogowanego do domeny użytkownika - najczęściej wykorzystuje się protokół 'named pipes'), hybrydowy. Należy pamiętać, żeby stosować 'SYSTEM DSN' oraz podawać jako nazwę serwera 'local', gdy serwer SQL jest na tej samej maszynie co IIS - poprawia to wydajność.

Sprawy się naprawdę komplikują w przypadku zainstalowanie MS SQL na innym serwerze niż IIS.


czwartek, lipca 27, 2006

Dodatkowe elementy Windows Live Gallery

Toolbar Custom Buttons - http://gallery.live.com/results.aspx?l=2&ti=12 pozwala na dodanie nowych wtyczek do paska

Zamiennik FrontPage

Download details: Expression Web Designer CTP1:
Microsoft Expression Web Designer CTP1
Brief Description
Microsoft® Expression® Web Designer is a new designer-focused product that provides powerful tools you need to produce high-quality, standards-based Web sites the way you want them.
On This Page
Quick Details
Overview
System Requirements
Instructions
Additional Information
Related Resources
What Others Are Downloading
Related Downloads
FileForum | Microsoft IronPython:
Microsoft IronPython 1.0 RC1 beta
Publisher's Description:

Microsoft IronPython is a codename of the early pre-alpha release of the new Implementation Running on .NET of Python programming language. It supports an interactive interpreter with fully dynamic compilation. It is well integrated with the rest of the framework and makes all .NET libraries easily available to Python programmers.

Myśli różne

Wydaje się, że mimo wzmocnienia pozycji FireFox-a przeglądarka MS IE 7.0 nadal jest ważna. Powody:
  1. jest skąpa wizualnie, nie zawiera za dużo bajerów pozostawiając twórcom aplikacji internetowych (Web 2) wykorzystać nie tylko powierzchnię do wyświetlania danych aplikacji ale również możliwość "zagospodarowania" pasków narzędziowych,
  1. każdy internauta ładuje do FF ile się da wtyczek, które potencjalnie mogą się ze soba kłócić (są przecież od różnych autorów), zagracać wizualną formę przeglądarki no i co najważniejsze spowalniają pracę i pożerają dużo zasobów. FF wtedy wygląda jak przysłowiowa "choinka noworoczna".

Tak, że potrzebna jest taka przeglądarka, która jest prosta w obsłudze i formie, wbudowana w powszechnie dostępna (system operacyjny), szybka, surowa, nieprzeładowana do uruchamiania aplikacji Web 2. W przyszłości każdy internauta będzie miał dwie przeglądarki - jedną maksymalnie dostosowaną do swoich przeróżnych upodobań (FF z wtyczkami) i drugą MS IE jako platforma do uruchamiania aplikacji biznesowych Web 2.

Uwaga:

  • po zainstalowaniu "jedynego" paska narzedziowego Toolbar Live w IE zmiany w formie wizualnej polegaja na dodatkowych przyciskach na "górze " przeglądarki w mysl zasady "jak najmniej zmian" w formie wizualnej. To chyba dobra droga dla przegladarek do "korporacyjnych" aplikacji internetowych Web 2. Dodatkowo IE Live umożliwia tworzenie "wlasnych" wtyczek w srodowisku Live podobnie zreszta jak Yahoo i Opera widgets.