Taggat med: openssl

OpenSSL version 0.9.8j släppt

En ny version av OpenSSL finns nu ute att tanka hem från openssl.org som innehåller en mycket viktig säkerhetsfix:

Several functions inside OpenSSL incorrectly checked the result after
calling the EVP_VerifyFinal function, allowing a malformed signature
to be treated as a good signature rather than as an error.  This issue
affected the signature checks on DSA and ECDSA keys used with
SSL/TLS.

Läs den fullständiga varningen: openssl.org/news/secadv_20090107.txt

Intressant att notera är även att det är Googles säkerhetsteam som hittat denna säkerhetsbugg.

OpenSSL version 0.9.8i ute

Det omåttligt populära kryptobiblioteket OpenSSL har nu kommit ut i en ny version, nämligen 0.9.8i.

Några av de många förändringar och förbättringar är:

*) Delta CRL support

*) Support for CRLs partitioned by reason code

*) Support for freshest CRL extension.

*) Initial indirect CRL support.

*) Add support for distinct certificate and CRL paths.

*) Add support for policy mappings extension.

*) Fixes to pathlength constraint, self issued certificate handling,
policy processing to align with RFC3280 and PKITS tests.
*) Support for name constraints certificate extension. DN, email, DNS
and URI types are currently supported.

*) To cater for systems that provide a pointer-based thread ID rather
than numeric, deprecate the current numeric thread ID mechanism and
replace it with a structure and associated callback type

*) Initial support for different CRL issuing certificates.

*) Removed effectively defunct crypto/store from the build.

*) Revamp of STACK to provide stronger type-checking.

*) Add a new SSL_MODE_RELEASE_BUFFERS mode flag to release unused buffer

RAM on SSL connections.

*) Revamp of LHASH to provide stronger type-checking.

*) Initial support for Cryptographic Message Syntax (aka CMS) based
on RFC3850, RFC3851 and RFC3852.

*) Add options to enc utility to support use of zlib compression BIO.

Några av dessa förändringar är sponsrade av Google. För att se samtliga ändringar:

http://www.openssl.org/source/exp/CHANGES

Föredrag om Debians OpenSSL-problem

Säkerhetsforskarna Jacob Appelbaum, Dino Dai Zovi samt Karsten Nohl höll nyligen ett föredrag på konferensen HOPE som gick av stapeln i New York. Deras föredrag handlade om OpenSSL-buggen som upptäcktes i Linux-distributionen Debian för några månader sedan.

Exempelvis: Genom att betala 49KR för att hyra 20 st virtuella servrar hos Amazon Simple Scalable Storage (S3) samt Elastic Compute Cloud (EC2) så är det möjligt att dekryptera SSL-trafik där någon av de 524,288 felaktiga nycklarna använts.

Se deras föredrag här: trailofbits.files.wordpress.com/2008/07/hope-08-openssl.pdf

TomLib (LibTomCrypt)

Är du less på att använda OpenSSL när du skriver C-kod? Då tycker jag att du ska testa TomLib vilket är ett antal C-bibliotek som hjälper dig med dina kryptografiskt relaterade beräkningar:

LibTom Projects are public domain open source libraries written in portable C. The libraries supports a variety of cryptographic and algebraic primitives designed to enable developers and students to pursue the field of cryptography much more efficiently. Currently the projects consist of three prominent libraries (LibTomCrypt, LibTomMath and TomsFastMath) which form the bulk of the source contributions.

Along with the source contributions, the LibTom projects also aim to serve an educational capacity. The libraries are very well commented, with clear and concise source. The code itself tells quite a story for those interested in learning how modern cryptography ticks. However, they would not be complete without the massive amount of documentation that accompanies the projects. Currently there are over 600 pages of LibTom Project documentation spread throughout the five projects.

LibTomCrypt är skrivet av Tom St Denis och första versionen sågs December 2001 och kallades då för MyCrypt.

Ladda hem LibTomCrypt: http://libtom.org/?page=download&newsitems=5&whatfile=crypt

Det finns även en portering till Python här: http://libtom.org/files/pyTomCrypt-v0.16.zip

Kryptering med PHP

PHP är ett mycket väl använt programmeringsspråk som används i samband med webb-programmering. Krypteringsfunktionerna i PHP kan delas upp i följande kategorier:

  • mcrypt
  • openssl
  • inbyggda

Här följer en mycket liten sammanställning av dessa tre kategorier:

mcrypt

Mcrypt som är ett tredjepartsbibliotek innefattar en mängd kryptering/dekrypterings-funktioner såsom:

Vill du exempelvis skapa en SHA256 hexsträng på godtycklig sträng kan du göra enligt följande:

$sha256b= base64_encode(bin2hex(mhash(MHASH_SHA256,$phrase)));

openssl

OpenSSL är också ett tredjepartsbibliotek och innefattar bl.a dessa funktioner:

De funktioner OpenSSL tillhandahåller i PHP är mer inriktade på assymetrisk kryptering.

inbyggda funktioner

Den mest använda krypteringsfunktionen i PHP är crypt() som stödjer följande krypteringsalgoritmer:

  • CRYPT_STD_DES – Standard DES-based encryption with a two character salt
  • CRYPT_EXT_DES – Extended DES-based encryption with a nine character salt
  • CRYPT_MD5 – MD5 encryption with a twelve character salt starting with $1$
  • CRYPT_BLOWFISH – Blowfish encryption with a sixteen character salt starting with $2$ or $2a$

Övriga kryptorelaterade funktioner som återfinns som standard i PHP är exempelvis sha1 och md5.