On Apr 13, 2010, at 9:28 AM, James H. H. Lampert wrote:
Column level encryption Enables companies to secure - without
application changes - a specific column in a database table.
Something doesn't add up here.
"Encryption," "secure," and "without application changes" don't seem
to
belong in the same sentence. Anybody know what they're talking about?
James,
The claim of column level encryption stems from the fact that the
database group (and others, I am sure), ported the "Fieldproc"
capability from z to i. What FieldProc gives us is the ability to add
field level Exit programs to a DB2/400 field (field level, not file)
and have the database hand control of data to your program on reads
and writes. So if you are looking to encrypt, say credit card data,
in an existing app (especially one for which you do not have access
to the source code), FieldProc gives you the ability to force all
writes to use your encryption algorithm. Voila, encryption without
program changes. This is a huge development!
But it doesn't stop there, the really, really, really cool part about
Fieldproc is that it also hands control to your exit program on all
reads. This is very cool because you don't want your encryption
program to automatically decrypt every time someone reads (else, what
was the point of encrypting in the first place???), instead your exit
program can use business rules to decide under which users/programs/
circumstances should the data be be decrypted. This is the real
value FieldProc. Automatic encryption is not that hard, but
intelligent, automatic encryption that respects your business
processes is now possible under V7R1, and that is a very big deal.
Now, as for the "without application changes" claim, that _may_ be
true depending on your particular application. If the field you are
encrypting (SS#, CC#, etc.) is used as a key field, then you're
probably going to have to make a few tweaks to your application
because once that field is encrypted it loses its value as a key
field. (Ex: When Social Security number '123456789' turns into 'E9u&*1-
A]', your going to have a hard time with your sorts). You will have to
assess your application for the presence of encrypted key fields.
Also, you'll want to chose the right encryption method and mode for
your application. In almost all cases the right algorithm will be
AES-256 byte, and in most cases for DB2/400 on the i you'll want to
use Block mode. Block mode will allow you to encrypt a 9 character
SS# and place it back into the 9 character field from whence it came
without any loss of data.
You should also note that you still have to supply your own encryption
algorithm - V7R1 does not change this part of the equation. You can
either purchase the only N.I.S.T. certified database encryption tool
certified for IBM i from Patrick Townsend Security Solutions (OK, that
was a shameless commercial plug :-), or you can roll your own
encryption solution using the IBM API's.
Finally, when you do encryption, don't forget that you have to have an
Encryption Key Management solution in place. Many folks get mostly
done with their encryption project and then have an "Uh-Oh!" moment
when they realize they need to manage all those encryption keys.
There are commercial options available for Key Management as well so
you don't have to try to keep all this together in your head.
End result? This is a very cool offering from IBM that will make it
easier to encrypt sensitive data even if you don't have the source for
your package. Proceed with care, but the future looks very bright.
jte
P.S. V7R1 was our idea! ;-)
--
John Earl
President and CEO
Patrick Townsend Security Solutions
"The Encryption Company"
Olympia, WA | www.patownsend.com
Office: 360-357-8971 Ext 118
As an Amazon Associate we earn from qualifying purchases.