gego.info

Tag: it-security

CSharp – Rijndael/AES symetric Encryption and Decryption

by gernot on Feb.02, 2006, under Coding

A short tutorial how to encrypt, respectivelly decrypt a string in C# with Rijndael/AES.

NOTE: The Keygeneration is done in the encryption and decryption methods. For usage in a ‘real’ application this should be outsourced.

Encryption

using System.Security.Cryptography;

// Input Values:
// pwdHash = “MD5″ / “SHA1″
// iv = “16 ASCII Characters”
// keySize = 128 / 192 / 256

public string Encrypt(string text, string pwdPhrase, string pwdSalt, string pwdHash,
  int pwdIterations, string iv, int keySize)
{
  byte[] ivBytes = Encoding.ASCII.GetBytes(iv);
  byte[] pwdSaltBytes = Encoding.ASCII.GetBytes(pwdSalt);
  byte[] textBytes = Encoding.UTF8.GetBytes(text);
  PasswordDeriveBytes pwd
     = new PasswordDeriveBytes (pwdPhrase, pwdSaltBytes, pwdHash, pwdIterations);
  byte[] keyBytes = pwd.GetBytes( keySize / 8 );
  RijndaelManaged symmKey = new RijndaelManaged ();
  symmKey.Mode = CipherMode.CBC;
  ICryptoTransform enc
     = symmKey.CreateEncryptor(keyBytes, ivBytes);
  MemoryStream mem = new MemoryStream ();
  CryptoStream cry
     = new CryptoStream (mem, enc, CryptoStreamMode.Write);
  cry.Write(textBytes, 0, textBytes.Length);
  cry.FlushFinalBlock();
  byte[] cipBytes = mem.ToArray();
  mem.Close();
  cry.Close();
  return Convert.ToBase64String(cipBytes);
}

Decryption

using System.Security.Cryptography;

// Input Values:
// pwdHash = “MD5″ / “SHA1″
// iv = “16 ASCII Characters”
// keySize = 128 / 192 / 256

public string Decrypt(string cip, string pwdPhrase, string pwdSalt, string pwdHash,
  int pwdIterations, string iv, int keySize)
{
  byte[] ivBytes = Encoding.ASCII.GetBytes(iv);
  byte[] pwdSaltBytes = Encoding.ASCII.GetBytes(pwdSalt);
  byte[]cipTextBytes = Convert.FromBase64String(cip);
  PasswordDeriveBytes pwd
     = new PasswordDeriveBytes (pwdPhrase, pwdSaltBytes, pwdHash, pwdIterations);
  byte[] keyBytes = pwd.GetBytes( keySize / 8 );
  RijndaelManaged symmKey = new RijndaelManaged ();
  symmKey.Mode = CipherMode.CBC;
  ICryptoTransform dec
     = symmKey.CreateDecryptor(keyBytes, ivBytes);
  MemoryStream mem = new MemoryStream (cipTextBytes);
  CryptoStream cry
     = new CryptoStream (mem, dec, CryptoStreamMode.Read);
  byte[] textBytes = new byte[cipTextBytes.Length];
  int decByteCount
     = cry.Read(textBytes, 0, textBytes.Length);
  mem.Close();
  cry.Close();
  return Encoding.UTF8.GetString(textBytes, 0, decByteCount);
}

2 Comments :, , more...

Web Service Security

by gernot on Jan.22, 2006, under Studies

Im Zuge der LVA IT/EC wurde folgende Seminararbeit verfasst: Web Service Security.

Abstract: Am Beginn der Arbeit werden die Basiskonzepte von WS-Security, XML-Signature und XML-Encryption vorgestellt. XML-Signature ist ein Sicherheitsstandard der in erster Linie Integrität des Nachrichtenaustausches gewährleisten soll. Der Sender einer XML-Nachricht hängt eine digitale Signatur an die Nachricht an. Diese Signatur gibt dem Empfänger der Nachricht die Möglichkeit, diese auf Veränderung zu prüfen. XMLEncryption ist ein weiterer Sicherheitsstandard der es ermöglicht XML-Nachrichten beziehungsweise Teile von XML-Nachrichten zu verschlüsseln, um so die Inhalte vor unberechtigten Einblicken durch Dritte zu schützen. Im Anschluss daraen wird die praktische Anwendung des WS-Security Konzepts auf SOAP (Simple Object Access Protocol) behandelt. Hierfür wird kurz auf Aufbau und Funktionsweise von SAML (Security Assertion Markup Language) eingegangen, um die Authentifikation und Autorisation im WSSecurity Prozess zu ermöglichen. Ein weiterer wichtiger Bestandteil des angesprochenen Konzeptes ist WS-Policy, der es uns ermöglicht spezifische Richtlinien beziehungsweise Regelsets (Policies) für Web Services zu entwickeln. Abschließend wird anhand von WSS4J, einer Apache Implementierung, WS-Security in der Anwendung gezeigt.

Download: ec1_wssecurity_endabgabe.pdf

Leave a Comment :, more...

Java Security – FASS Vortrag

by gernot on Jan.22, 2006, under Studies

Im SS 2005 durfte ich innerhalb der Lehrveranstaltung Fortgeschrittene Aspekte von Software Security einen Vortrag über Java Security halten: FASS_2.ppt

Leave a Comment :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...