Maandelijks archief: februari 2012

Groene IT Pilot – Krijkamp Den Oude (Deel 2)

Deel 2 – De Metingen

Dit is het tweede deel in de driedelige reeks artikelen over de groene IT-pilot die bij accountantskantoor Krijkamp Den Oude is gehouden. Dit deel gaat over de werkwijze tijdens de pilot.

Tijdens de pilot zijn twee desktopsystemen met elk één beeldscherm van een doorsnee kantoormedewerker gedurende een week geanalyseerd, vervolgens zijn de gebruikers geïnstrueerd hoe ze energie-efficiënt met hun systemen om konden gaan en tegelijkertijd zijn technische aanpassingen aan de systemen gedaan. Vervolgens is het verbruik gedurende een week geanalyseerd. We verwachtten en hoopten daarbij in de tweede meting een verlaging van het stroomverbruik te bemerken.

Lees verder

Groene IT Pilot – Krijkamp Den Oude (Deel 1)

Deel 1 – De Introductie

Dit is het eerste deel in de driedelige reeks artikelen over de groene IT-pilot die bij accountantskantoor Krijkamp Den Oude is gehouden. Dit deel introduceert de pilot van het onderzoek.

Wij handelen niet goed omdat wij deugd bezitten of excellent zijn, maar wij hebben juist die eigenschappen omdat we goed gehandeld hebben.

- Aristoteles

De ICT-sector is inmiddels verantwoordelijk voor ongeveer 2% van de totale CO2-uitstoot in de wereld. Computers en beeldschermen zijn voor 39% verantwoordelijk van deze CO2-uitstoot[1].  Dit staat gelijk aan een volledig jaar aan -uitstoot voor ongeveer 44 miljoen auto’s. Hiermee is de noodzaak aangeduid tot het terugdringen van deze enorme hoeveelheden CO2-uitstoot.

Lees verder

Certificates to DB and Back – Part 2

This is a second part of the article, if you missed the previous post you can find it here:
Certificates to DB and Back – Part  1

Table of contents

Certificates to DB and Back – Part 1

  1. Introduction
  2. Getting started
  3. Creating Certificates

Certificates to DB and Back – Part 2

  1. Loading the Certificate
  2. Decoding RSA Private Key
  3. Creating the X509Certificate2
  4. Demo Application
  5. Further Improvements
  6. License

Lees verder

Certificates to DB and Back – Part 1

Foreword

I wrote this article at the beginning of 2011. As I was developing a WCF client application which was using Message Security with Mutual Certificates Exchange and because of a particular application request, I developed this part of code in order to facilitate maintenance and deployment of the interested application.

Now, if you are trying just simply to import/export the complete certificate and not recreate the certificate base on the his signature and the private key, framework will do already everything you need.

// Create new cert from the file and export it to a byte array
X509Certificate2 cert = new X509Certificate2(@"Cert.pfx", "password",
    X509KeyStorageFlags.Exportable);
byte[] originalExported = cert.Export(X509ContentType.Pfx, "password");

// Create new cert and import it from the byte array
X509Certificate2 clonedCert = new X509Certificate2();
clonedCert.Import(originalExported, "password", X509KeyStorageFlags.Exportable);

// export the cloned certificate with a differenet password
byte[] exported = clonedCert.Export(X509ContentType.Pfx, "newpassword");

// save the new certificate to a file
using (Stream stream = File.Create(@"E:\ClonedCert.pfx"))
{
    stream.Write(exported, 0, exported.Length);
}

So if you do not need to combine your private.key and public.cer on the runtime you do not need to read further, otherwise continue and you may find the solution to your challenge.

You can download the source code here.

Table of contents

Certificates to DB and Back – Part 1

  1. Introduction
  2. Getting started
  3. Creating Certificates

Certificates to DB and Back – Part 2

  1. Loading the Certificate
  2. Decoding RSA Private Key
  3. Creating the X509Certificate2
  4. Demo Application
  5. Further Improvements
  6. License

Introduction

In today’s applications, the use of web services is constantly growing. In the web services panorama, there are different ways of managing the authentications. One of the common methods is mutual certificates exchange.

Imagine that your application uses a web service that needs a customer’s certificate in order to correctly authenticate with the endpoint. Now, you can explain to your customer how to create the certificate, by generating one, the RSA key, and then creating a pfx container, positioning pfxcontainer file in the suggested folder, then inserting in your application the correct path to the pfx file. Hmm, it is a lot of work and is quite complicated. And what if you need to deploy it on many PCs for the same customer and your service is accessed directly from the client? If you exclude tricks, there is a lot of extra work.

What if you store only the pem strings of your certificate and private key, together with the password in database? Nice, but creating a valid X509Certificate object that contains the private key on .NET is not a trivial task. Don’t worry, this guide can help you.

In case some of the terms used in this introduction are not clear or known to you, but you still want to follow this guide, you will find some answers that will help you at the links given below:

Getting Started

In order to start and try the solution proposed in this guide, you need Microsoft Visual Studio 2010 in any of his many versions. This code will work even on previous versions of Visual Studio editions as 2008 or even 2005, but you’ll need to set up the project on your own, based on the code I suggested.

In order to create your own certificate, you can use your favourite tools but I will suggest you OpenSSL. You can download it from the following address:

Before installing OpenSSL, assure that you have installed the proper version of Visual C++ 2008 Redistributables. Once you have installed these libraries, you can proceed by installing OpenSSL.

Creating Certificates

Before creating a certificate, we need to generate the private key. Achieving this with OpenSSL is really simple. Open your command prompt window and get yourself into the bin directory under the folder where you installed OpenSSL (usually C:\Program Files\OpenSSL).

Now execute the following command:

opensslgenrsa 1024 >private.key

Once executed, you should see something like this:

Check in that folder, there should be a new file called private.key. It is the RSA key on which the certificate will be based. Now let’s create the certificate. Execute the following command.

opensslreq -new -x509 -nodes -sha1 -days 1100 -key private.key> public.cer

As soon as you hit enter, you will be prompted for a couple of questions about the details with whom the certificates attributes will be populated. Once finished, you’ll see the following:

Congratulations! Your certificate is done!

Certificate is represented as Base64 encoded DER certificate, enclosed between “—–BEGIN CERTIFICATE—–” and “—–END CERTIFICATE—–“. Same is for the RSA signature key. For more details, consult:

Now, we can use a PKCS format file container in order to store both, public certificate and private key. This is not the goal of our project, but for the completeness I’ll show you how to do that via OpenSSL.

With the following command, you will create the required:

openssl pkcs12 -export -in public.cer -inkeyprivate.key –out cert_key.p12

After executing this command, you will get prompted about the Export password, this password will be used to encrypt your private key, so make it complex and unique.

Now you can load it to the X509Certificate2object:

string certificatePath = @"cert_key.p12";
string certificatePassword = "password";
X509Certificate2 clientCertificate = new X509Certificate2(certificatePath, certificatePassword);

You can download the source code here.

In the next steps, we will replicate this behaviour directly from code.
continue…

Ongelezen mail in submappen in Outlook

Het aantal ongelezen mails wordt in Outlook alleen getoond bij de map zelf. Als er ongelezen mails in submappen staan en de hoofdmap is ingeklapt, dan is het aantal ongelezen mails niet zichtbaar. Zo is in onderstaande afbeelding de ongelezen mail in de map Facturatie en status alleen te zien als de map Administratie is uitgevouwen.


Lees verder

U hebt helemaal geen huisstijl nodig!

U hebt helemaal geen huisstijl nodig, u hoeft geen nieuw logo te hebben en uw organisatie heeft geen consistent lettertype nodig. Waar uw klanten vooral op zitten te wachten is een betrouwbaar bedrijf. Dat uit zich niet noodzakelijkerwijs in een tot in de details doorgevoerde huisstijl. Want de buitenwereld (of betalende klant) weet dat huisstijl-details als handgeschept papier ergens van betaald moeten worden.

Een traject waarbij de ‘corporate identity’ wordt doorgelicht en een nieuwe huisstijl wordt ontworpen is zeker niet zinloos, maar dat zit hem in andere zaken dan het doorvoeren van één lettertype in 100% van alle documenten in alle systemen. Het werken aan een corporate identity zorgt voor een saamhorigheidsgevoel in een organisatie. Medewerkers worden als het goed is betrokken om actief na te denken over de manier waarop documenten binnen en buiten het bedrijf worden verstuurd. Ook de bestaande processen voor het maken van documenten worden doorgelicht. Dat is een kans om efficiency te bewerkstelligen. Misschien een goed moment om het aparte fax-sjabloon af te schaffen.

De effectiviteit van een nieuwe huisstijl is moeilijk te meten, maar de kosten van een nieuwe huisstijl des te beter. Het weggooien van briefpapier uit het magazijn is een directe afschrijving in de boekhouding. Het vierkleurig bedrukken van postpapier is duurder dan blanco papier gebruiken voor een deel van de documenten waarbij het logo in zwart wordt geprint.

Een consequente uitstraling van een organisatie betekent: niet elke keer een ander verhaal, een andere prijs en een andere kwaliteit. U moet zich eerst afvragen wat u wilt bereiken en waarom. Spoedig zult u ontdekken dat u niet een factuur wilt sturen met hetzelfde logo als op uw kopjes in de kantine, maar dat uw medewerkers snel een foutloze factuur kunnen maken die er duidelijk en correct uitziet. Het is dus vooral van belang dat u de middelen hebt om uw medewerkers te ondersteunen, in plaats van een huisstijl die uw mogelijkheden beperkt. Bij dit laatste kan goede huisstijlsoftware u helpen.

Het Corporate Identity Framework (CIF) is huisstijlsoftware waarmee een huisstijl consequent wordt doorgevoerd met diverse mogelijkheden om kosten te besparen en efficiency te bereiken. Zo bevat het CIF bijvoorbeeld een logowisselaar om op blanco papier te printen of documenten digitaal te versturen. Bij het invoeren van het CIF zal een organisatie actief worden betrokken bij het structureren van de sjablonen, zodat het maken van documenten in de huisstijl sneller en makkelijker zal worden.

auteurs: Victor Heijke & Toon Michel