CVE Count and Statistics

Larry Seltzer had some interesting comments on my post about the rate of Office vulnerabilities at Vulnerabilities and Office Versions There may be a little flaw in the analysis in that LeBlanc studied reports during the period from 9/18/2007 to 11/17/2008. By that time earlier Office versions had been around for a long time and…

1

Office Crypto KDF Details

I’ve gotten a couple of questions asking how our key derivation function works. The technique is very similar to that described in RFC 2898, also known as PKCS #5. There are two key derivation functions (KDF) documented in this RFC – PBKDF1 and PBKDF2. Our KDF implementation is very similar to PBKDF1 (section 5.1), with…

0

New, Improved Office Crypto

If you’re enough of an Office crypto geek to stay on top of the most recent changes in MS-OFFCRYPTO, you already know about some of this, but my assumption is that most people aren’t going to want to parse something that hard to read. What we’re doing is introducing some substantial improvements in our encryption…

2

SafeInt Compiles on gcc!

[update 12-1-08] I now have it completely compiling on gcc, with a test harness that exercises every method of the class for every combination of types (all 15 of them). Version 3.0.12p is now moved to release status.  Once I got SafeInt posted on CodePlex, Niels Dekker grabbed a copy and started figuring out what…

4

Improvements in Office Security

We now have a pretty neat internal web site where I can easily search for CVE entries and bulletin counts by product. It shows some interesting trends that I hope will continue to hold. First, let me preface this by saying that CVE entry count is a better (though not perfect) way to measure how…

3

MS-OFFCRYPTO, W7 Engineering blog, etc

We have a new version of MS-OFFCRYPTO out. The big change is that how CryptDeriveKey was documented on MSDN was incorrect, we copied it, which made our document also incorrect. As it turns out, CryptDeriveKey always uses the same code path for AES as it does as if the hash output is shorter than the…

1

SafeInt 3 on CodePlex!

I have finally found a stable place to keep SafeInt. It can now be found at http://www.codeplex.com/SafeInt. In terms of the code, this is exactly the same stuff as we’re using internally. This version is documented a little better than the master copy that’s checked into the Office development depot, but other than that, should…

1

Chrome Getting a Bit Rusty

Put this one in the rant category – I’m honored that Google has been paying attention to my blog and decided to use my sandboxing approach to try and make their app more secure. Very cool stuff, and they did some interesting things that I want to better analyze. It would be even nicer if…

2

Why can’t you comment?

This is because $#@!!!! spammers can screw up anything. I have to disallow anonymous comments, or I get a bazillion blog spam comments, I check comments a week later, and there’s 200 of these that I can only delete 10-20 at a time. Annoying to say the least. How you can comment is to register…

0

Ptrdiff_t is evil

Well, not really, but here’s a code problem that confounded some really smart devs – and it looks so simple! void IncPtr( unsigned int cElements ) {     if( m_pMax – m_pCurrent > cElements )         m_pCurrent += cElements;     else         throw; } OK, so here’s the question – if an error has happened, and m_pCurrent is > m_pMax,…

5