Via de Microsoft Security Newsletter werd ik gewezen op de site HelloSecureWorld. Een apart vormgegeven site met allerlei zeer bruikbare informatie in de vorm van video-interviews, teksten en virtual labs. Alleen al vanwege de visuele opzet de moeite waard om eens te kijken.
Het doel van deze site: de ontwikkelgemeenschap bewust maken van mogelijkheden en noodzaak beveiliging al op codeniveau toe te passen.
Een kleine greep uit de onderwerpen die op dit moment op de site staan:
- Hashing algorithms
- Asymetric/symetric encryption
- ASP.Net site security
- SQL-injection
- Cross site scripting
- Storing keys in containers
- Imperative Security checks
- Create a Generic/Windows Principle
- Nested master pages
Op de een of andere manier blijf ik een zwak houden voor dit soort ‘hackers’ of ‘matrix’ achtige sites.
Microsoft Security Newsletter - link HelloSecureWorld site - link
Filed Under (Overig) by Christiaan van Bergen on March-20-2008
Vanmiddag vernam ik via het nieuws op de radio dat Hugo Claus vandaag op 78-jarige leeftijd is overleden. Velen kennen hem van zijn boeken (meest bekend is denk ik ‘ Het verdriet van België’, ook als mini-serie op tv geweest) of zijn kunstwerken. Tijdens mijn studie heb ik verschillende van zijn werken gelezen.
Later op de dag, ik kwam thuis en pakte de krant van vanochtend, las ik dat Arthur C. Clarke ons ook heeft verlaten. Hem kennen we in ieder geval van 2001: A Space Odyssey. Geschreven in 1958 en later in 1968 meesterlijk verfilmd door Stanley Kubrick.
Beiden hebben op mij toentertijd een enorme indruk gemaakt, al verwacht ik dat het merendeel van ons IT-ers zich met name HAL 9000 zal herinneren en niet Louis Seynaeve.
Dit soort gebeurtenissen zetten mij aan om nogmaals het werk van deze twee te bekijken en eens verder te kijken dan hun meest gangbare werken. Geloof me, het is de kleine moeite waard.
Memento mori..
Een boekverslag van Het verdriet van België - link Hugo Claus - link Arthur C. Clarke - link 2001: A Space Odyssey - link HAL 9000 project - link
Filed Under (C# code) by Christiaan van Bergen on March-6-2008
Wanneer je in Visual Studio 2008 een Web Reference aanmaakt en je maakt gebruik van het .Net Framework 2.0 voor je project, dan krijg je exact dezelfde wizard als in Visual Studio 2005. Heb je echter een project gestart dat gebruik maakt van het .Net Framework 3.x, dan is de wizard anders (het heet zelfs Service Reference). Wat wanneer je een project maakt met het 3.x framework maar je wilt toch een web reference maken op de 2.0 manier?
Simpel, voeg een Service Reference toe. In de dialoog die zich opent klik je onderin op de knop "Advanced…".
In het scherm dat opent kies je voor "Add Web Reference…".
Het scherm dat nu verschijnt moet je herkennen als zijnde de wizard die je ook in de eerdere versies van Visual Studio had. Het toevoegen van een Web Reference.
De code die nu gegenereerd wordt is gebaseerd op .Net Framework 2.0. Maar wanneer je het project compileert, gaat het uiteraard wel tegen .Net Framework 3.x
Filed Under (Overig) by Christiaan van Bergen on February-5-2008
Afgelopen vrijdag was het dan zover. 1 Februari 2008, afsluiten van het één en beginnen met het ander. Een goede tweeëneenhalf jaar heb ik bij Bergler ICT gewerkt en verschillende mooie klussen mogen uitvoeren. Maar nu is dan de tijd aangebroken dat ik me met echt leuke dingen mag gaan bezighouden -deed ik dat dan al niet?
De laatste paar keer dat ik omschreef wat ik ging doen bestond uit: "ik sluit me op een zolder op en ga proggen". Ik heb onder andere een paar leuke ideeën/toepassingen voor het mobiele platform die ik wil maken.
Om dit te kunnen realiseren heb ik natuurlijk wel een partner nodig die me ondersteunt in mijn ‘ventures’. Deze partner heb ik gevonden in de JNF Groep BV. Van die zolder zal dan ook gelukkig weinig komen daar zij pas een nieuw pand hebben betrokken in Veenendaal waar ook ik mij zal vestigen. De handelsnaam waaronder ik zal gaan opereren is NoNerds. De site en vormgeving is er nog niet maar zal te zijner tijd trots worden getoond.
Nieuwe uitdagingen weten mij te enthousiasmeren, ik hoop jullie ook. En als dat zo is, schroom dan niet met mij contact op te nemen, if you catch my drift.
Filed Under (Overig) by Christiaan van Bergen on January-26-2008
Regelmatig krijg ik email van mensen die een geweldige keuze hebben gemaakt in het type virusscanner. Ik weet namelijk precies welke virusscanner ze hebben omdat het onderaan hun email als signature is toegevoegd. Signatures die elke keer vermeerderen wanneer ze op een thread antwoorden.
Buiten het feit dat ik het niet mooi vind -want wat maakt dat nou uit- is het niet erg handig voor de malafide emailontvangers. Stel, ik ben een niet zo frisse jongen en ik zie dat iemand een virusscanner heeft van het type X met een update van datum drie-weken-terug. Het is dan voor mij makkelijk die persoon een bericht te sturen met een ‘grap’ die niet door zijn scanner wordt gezien. Wellicht wat ver gezocht, maar toch. Informatie die je niet wil prijsgeven denk ik.
De toegevoegde waarde voor mij als ontvanger is trouwens gering in de boodschap dat het bericht gescand is door scanner X. Wie zegt mij dat dit waar is. Ik vertrouw wel op mijn eigen scanner. Daar heb ik anderen niet voor nodig.
Goed, de boodschap is simpel. Zet die meldingen uit! Alsjeblieft. Laat mij een voorzet geven door je uit te leggen hoe je dit in AVG doet.
Dubbelklik op het AVG icoon in je tray. Het volgende scherm opent zich. Selecteer hier de E-mail Scanner en klik op properties.
In het volgende scherm klik je op ‘configure’.
In het scherm dat nu verschijnt zet je de twee vinkjes voor ‘Certify mail’ uit. Klik op Ok.
Klik weer op Ok, en sluit het AVG Control Center. Et voila. Je bent verlost van de meldingen.
Andere virusscanners hebben uiteraard andere wijzen om deze functionaliteit uit te bannen. Laat ons dit doen. Alsjeblieft.
Filed Under (Overig) by Christiaan van Bergen on January-25-2008
Een tijd terug was er een incident op de werkvloer met betrekking tot het gestolen zijn van laptops van verschillende medewerkers. Uiteraard zullen de laptops voor hun straatwaarde zijn gestolen en niet vanwege hun content, het risico voor data-misbruik is klein. Management was toch in rep en roer omdat er nu een potentieel gevaar was dat sourcecode op straat was beland. Dit was echter niet aan de orde daar de harde schijven versleuteld waren, zo werd gezegd. Maar is dit wel zo?
Windows Vista heeft een mooie schijfencryptie ingebouwd, BitLocker genaamd. Zelf gebruik ik op mijn WinXP machine True Crypt. Zo op het eerste gezicht stel je je data hiermee veilig -niet tegen verlies uiteraard. De methode die gehanteerd wordt is het on-the-fly en- en decrypten van data middels een sleutel. Deze sleutel bevindt zich in het RAM-geheugen en daar ligt nu net het gevoelige punt.
Enkele studenten van Princeton University tonen aan dat het relatief eenvoudig is de sleutel uit het RAM geheugen te trekken. In een zetten zij uiteen hoe ze dit doen. Ja, je hebt wel fysieke toegang tot de machine nodig. Laat dit nu net het geval zijn bij diefstal.
Ik weet nog niet of dit een impact gaat hebben hoe ik met mijn schijfencryptie zal omgaan. Het erover nadenken of ik het moet veranderen en hoe ik dat dan zal doen is in ieder geval wel in gang gezet. Wil ik dit eigenlijk wel? Is de data op mijn machine zo belangrijk voor anderen dat zij daarom mijn laptop zouden stelen. Waarschijnlijk zoals bij de rest van ons: de data is voor mij van belang. Laat ik zorgen dat ik goede backups maak. Misschine is SkyDrive van Windows Live een optie? Nee, niet voor het echte werk.
BitLocker - link TrueCrypt - link Lest We Rember: Cold Boot Attacks on Encryption Keys - link SkyDrive - link
Gisteravond vertelde ik bij de maandelijkse bijeenkomst van de dotNed gebruikersgroep over mijn ervaringen met Script# en haalde ik het inmiddels veel besproken Volta aan. Het was een prettige bijeenkomst waarbij zeker de mooie locatie een grote rol heeft gespeeld. InterAccess heeft als host wederom een erg goede indruk achtergelaten.
Ondertussen is inderdaad de aanzet gemaakt voor het schrijven van een codeproject.com artikel waarin Robertjan Tuit, Jasper Gilhuis en ik zullen beschrijven hoe je een projectstructuur zo opzet dat je op een eenvoudige wijze webcontrols kan schrijven met behulp van Script#. Matthijs Krempel (InterAccess) bracht ons op het idee om deze projectaanpak te plaatsen in een software factory en vervolgens te plaatsen op codeplex. Briljant plan! Eens zien hoe snel we hieraan toe komen.
Een ander project dat wij op Codeplex willen plaatsen, is de Script# compatibiliteitslibrary voor de Ajax Control Toolkit. Meer hierover zodra dit beschikbaar is en uiteraard alvast de uitnodiging om daaraan te zijner tijd mee te bouwen.
Zoals beloofd plaats ik mijn presentatie en gebruikte demos online en geef ik nog een opsomming van resources die van belang zijn.
Wanneer ik meer resources tegenkom, zelf maak of van jou te horen krijg, zal ik ze toevoegen aan de lijst welke je het eenvoudigst kan bekijken op mijn Links pagina.
Filed Under (C# code) by Christiaan van Bergen on January-22-2008
Zoals velen natuurlijk al weten kan je xml-data middels een stylesheet weergeven op een door jou gewenste manier. Je kan in de zgn. xslt gebruik maken van xpath queries en diverse transformaties. Maar op het moment dat je je niet zo’n held voelt op dit gebied dan moet het toch prettig zijn te weten dat je kan terugvallen op je vertrouwde C# (of andere .Net taal).
Voordat je je eigen code vanuit xslt kan aanroepen moet je uiteraard wel wat voorbereidend werk verrichten.
Laten we eens kijken naar onderstaande code. Deze method Transform krijgt een string die de xml data en een string die de stylesheet bevat. Deze twee worden samengevoegd en het uiteindelijke resultaat wordt als string teruggegeven.
public static string Transform(string xmlData, string xslStylesheet)
{
TextReader textreaderxml - new StringReader(xmlData);
XmlTextReader xmlreaderxml = new XmlTextReader(textreaderxml);
TextReader textreaderxsl = new StringReader(xslStylesheet);
XmlTextReader xmlreaderxsl = new XmlTextReader(textreaderxsl);
XPathDocument xpathdocument = new XPathDocument(xmlreaderxml);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xmlreaderxsl);
StringBuilder sb = new StringBuilder();
TextWriter tw = new StringWriter(sb);
XsltArgumentList args = new XsltArgumentList();
args.AddExtensionObject(“http://voorbeeld.xslt.nl/calculatie”,
new XsltCalculatie());
xslt.Transform(xpathdocument, args, tw);
return sb.ToString();
}
De uiteindelijke transformatie van de xml volgens de stylesheet gebeurt in regel 18. Maar daar voor (regel 4) wordt een verwijzing gemaakt naar http://voorbeeld.xslt.nl/calculatie. Dit is een utility class geschreven in C# die de functie Round bevat. (Toegegeven, dit is natuurlijk niet spannend)
public Decimal Round(Decimal a, int b){ return Math.Round(a, b);}
Deze C# code wordt in regel 17(-18) in de Transform method toegevoegd aan de stylesheet als zijnde de plek waar gekeken moet worden voor elke verwijzing naar http://voorbeeld.xslt.nl/calculatie (ofwel Local)
De uiteindelijke output van de method Transform en het gewenste resultaat:
Filed Under (Overig) by Christiaan van Bergen on January-19-2008
Vaak hoor ik mensen zeggen dat zij hun notebook als het gereedschap zien van de developer. Deze opmerking wordt vaak gevolgd door iets van “goed gereedschap is het halve werk“. Met dit laatste beogen ze waarschijnlijk een geldig excuus te hebben gegeven waarom ze de nieuwste, de snelste, de gaafste, de coolste, de prijzigste machine hebben gekocht.
Er is niets mis met het willen aanschaffen van een heel goed notebook. Maar geef dan wel de juiste reden op: je vindt het leuk! Prima! Doen.
Wanneer we de aannemelijke vergelijking met gereedschap wat verder uitdiepen echter, kom ik tot de conclusie dat dit niet helemaal opgaat. In het geval van gereedschap praten we over een uitontwikkeld product dat zich onderscheidt in zijn eigen kwaliteit -qua materiaal of vormgeving-. Neem een hamer. Nee, neem er twee. Eén goedkoop de ander prijziger maar kwalitatief beter. Over drie jaar is de goedkope hamer wellicht volledig verroest of misschien is de steel gebroken, terwijl je met de ander nog vrolijk verder timmert. Kijk, hier gaat de vergelijking met een notebook dus al meteen niet meer op.
Een notebook is een nog steeds evoluerend product. Een product met veranderlijke specificaties, nog niet uitontwikkeld. Zoals ik op de pagina ‘mijn config’ ook zeg: je hebt niet per se het beste van het beste nodig. Zeker wanneer je mee wil blijven draaien kan je economisch gezien beter volstaan met een model dat net niet de top is, maar je wel in staat stelt om -zeg elk jaar- een andere aan te schaffen. Reken het zelf eens uit….
Filed Under (Cool) by Christiaan van Bergen on January-18-2008
Er zijn verschillende manieren om andere personen op je pc mee te laten kijken, denk aan: LiveMeeting, VNC en Remote Desktop. Scott Hanselman gaf de tip om Microsoft Sharedview eens te proberen. Deze nieuwe toepassing (Beta2) van Microsoft toont veel toepassings-mogelijkheden.
Met SharedView heb je de mogelijkheid om tot 15 personen tegelijkertijd een applicatie of je gehele desktop te delen. De host is de enige die wijzigingen kan aanbrengen, de clients zijn alleen in staat om de muis over het scherm te bewegen en muisklikken te tonen. Het grote voordeel bij een groot aantal meekijkers is dat de naam van de persoon onder de muiscursor is te zien.
Wanneer iemand van de meekijkers een wijziging wil aanbrengen, in bijvoorbeeld een .cs bestand, dan kan deze persoon de ‘control’ overnemen en de wijziging aabrengen.
Delen van bestanden via SharedView is ook mogelijk middels de functie ‘handouts’. Een host of een gebruiker is in staat een bestand (handout) te uploaden welke de anderen kunnen downloaden. Mijn ervaring is dat de upload niet al te snel gaat, de download echter heeft een acceptabele snelheid.
Microsoft SharedView integreert uiteraard met de bestaande Office producten. Zo kan je clients uitnodigen via bijvoorbeeld Messenger en kan je wijzigingen in bijvoorbeeld een Word document eenvoudig bijhouden middels ‘track changes’ -de naam en timestamp wordt in het worddocument opgeslagen.
Een manier om direct met elkaar te communiceren is de integratie met Messenger, niet voor niets moet elke participant een LiveID hebben. Helaas is er -nog- geen ondersteuning voor audio.
Met een kleine installbase en firewall omzeilend -maakt gebruik van een hosted server- is dit een ideale manier om bijvoorbeeld je vakgenoten eens iets uit te leggen hoe je iets voor elkaar krijgt in Visual Studio 2008 of wat dan ook… de mogelijkheden zijn er. Eens kijken of we dit kunnen gaan gebruiken voor een online versie van de dotNed gebruikersgroep hands-on labs.
Scott Hanselman - link Microsoft SharedView Beta - link