Re: ICSF key exchange scenario

2022-01-16 Thread Todd Arnold
That is a very, very common scenario, and ICSF has API functions (verbs) to 
support it.  Have a look at the Symmetric Key Export and Symmetric Key Import 
verbs (and their enhanced relatives Symmetric Key Export 2 and Symmetric Key 
Import 2).  Doing this, of course, requires you to have some kind of PKI to 
handle certification and distribution of the public keys - and for that, you 
might want to look at the (free) z/OS PKI Services.
 
There are a few things to note.  First, remember that a good rule of 
cryptography is that you should always encrypt a key using a wrapping key of 
equal or greater strength.  If you want to exchange 256-bit AES keys, that is 
not possible using RSA-based key transport - systems simply do not support RSA 
keys of that strength.  (NIST SP 800-57 says you need a 15,360 bit RSA key to 
have strength equivalent to a 256-bit AES key.)  However, most people are OK 
using 4096-bit RSA keys to transport any AES key.

Another thing to remember is that you can directly encrypt (wrap) a symmetric 
key using RSA, but you can't do it with Elliptic Curve (ECC).  With ECC, you 
have to use a key agreement algorithm to establish a shared symmetric 
key-encrypting key (KEK), then use that KEK to encrypt the keys you want to 
exchange with your partner.  (See ICSF verb CSNDEDH, "ECC Diffie-Hellman").  
Elliptic Curve also has a method called ECIES (Elliptic Curve Integrated 
Encryption Scheme) that combines all of this "under the covers" into one 
operation.  However, ECIES has several incompatible variants, and I don't think 
ICSF has built-in support for it.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: An older device query - still using??

2021-10-21 Thread Todd Arnold
I just ran across this thread, and thought I'd correct/confirm a couple of 
things.  I spent the first part of my IBM career on the development team that 
designed the 3890 and 3895, so I am familiar with those machines. 
 
First, the 3895 was NOT a printer.  It was a specialized kind of check sorter.  
Specifically, it was called a "document reader/inscriber", and it read and 
sorted checks, but with a very important added feature.  The 3895 was able to 
find and read the handwritten amount on a check, then inscribe that amount on 
the MICR codeline - thus saving a great deal of time over the traditional 
method where a bunch of operators read the checks with their eyes and type in 
the amounts on an inscribing machine.  I did a lot of work on the OCR that did 
that recognition - fun stuff.  As I recall, the goal was to get it right on at 
least 50% of the checks, and sort the others out so they could be handled in 
the traditional way.  In addition to these features, the 3895 read the existing 
MICR codeline data and could print an item number and a bank endorsement on 
each check.  You can see a photo of the machine and a little other information 
here:  
http://www.bitsavers.org/pdf/ibm/brochures/IBM3895DocumentReaderInsciber.pdf

Secondly, I can confirm that the 3890 sorter used a 360 mod 25 as the internal 
control unit.  This was the case until 1988 (I think), when the 360 was 
replaced with PC technology.  It was quite an interesting process - the team 
tried for many years to find a replacement for the 360 mod 25, but nothing had 
fast enough response time to do that until around 1988.  That old mod 25 did an 
amazing job.  If I recall correctly, it was programmed directly in its native 
microcode language, and not in the 360 instruction set.  (I should remember for 
sure, since I wrote some code that ran on that processor, but it was just too 
long ago...)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: vendor distributes their private key

2019-08-29 Thread Todd Arnold
> crypto non-repudiation can show it came from your machine

I certainly agree with this, but you can restrict what "your machine" is so 
that it's a lot better than just "came from a particular PC" or "came from a 
particular mainframe".  For example, the private key may be stored in something 
you carry and control yourself, like a smart card or cell phone (maybe even the 
secure enclave in the phone), and digital signatures can be computed in that 
same device.  The smart card can be PIN-protected, and similarly a cell phone 
can require authentication.  This isn't 100% secure, but it's not bad in most 
cases - there are several possible attack vectors, but they generally aren't 
easy.  On the mainframe, of course, you can use something like RACF to control 
access to / use of the private key.  Again, not perfect by any means, but not 
bad.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: vendor distributes their private key

2019-08-27 Thread Todd Arnold
A few random comments about this discussion:

1.  Someone mentioned performance.  If that is a concern, use hardware to do 
the public-key algorithm - for example the Crypto Express HSM.

2.  Remember that not all public-key algorithms can directly encrypt data.  For 
example, RSA can, but Elliptic Curve (ECC) and DSA cannot.  (For ECC, there is 
a method called ECIES that essentially creates a symmetric key under the covers 
and uses that to encrypt the data.)

3.  Someone talked about signing and encrypting.  Remember that you should 
never use the same key pairs for both - you should always have separate key 
pairs for signing and for encrypting.

4.  Phil Smith showed how you can send the same content to multiple people by 
encrypting it with a symmetric key, then encrypting that symmetric key with 
each of their public keys.  The Cryptographic Message Syntax (CMS) standard 
(RFC 5652, ANSI X9.73) supports exactly this method using something they call 
"enveloped data".

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Pervasive Encryption - why?

2019-08-07 Thread Todd Arnold
Correcting a couple of careless "n" and "m" typos in my previous post...
--
Another, similar approach that is sometimes used is to use "key shares" instead 
of components.  The difference is that with components, you must combine ALL of 
the components to form the master key, but with shares you only need a subset.  
This is typically called an m-of-n scheme, where you create n shares of the 
key, but any m of those can be combined to form the complete key.  This means 
that you do not need all of the n key share custodians to be present to load 
the master key - any m of them will do.  Note that Crypto Express does not 
support this for loading the master keys, but I wanted to include it here for 
completeness.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Pervasive Encryption - why?

2019-08-07 Thread Todd Arnold
The master keys, which are stored securely inside the Crypto Express HSM and 
can never be extracted, are the top-level keys in the key hierarchy.  Your 
application-level keys are stored outside the HSM, encrypted by the master 
keys.  Thus, if the HSM fails, you still have the externally-stored application 
keys, and all you need is to restore the master key into a new HSM card - then, 
all of those application keys will again be usable.
 
There are well-known and well-documented procedures for securely backing up and 
restoring the master keys.  In general, they follow the principles of 
dual-control and split-knowledge.  What this means is that the key value is 
mathematically broken into two or more separate values, such that none of those 
tells you anything at all about the value of the complete key.  You need to 
combine them in order to obtain the complete master key.  In most cases, the 
process that is used is to use "key components", which are sometimes called 
"key parts" - the components must all be exclusive-ored (XORed) together to 
form the master key, and that XOR only takes place inside the secure HSM card.  
Each component is protected by a separate person - a key component custodian - 
who keeps it safely locked up, and who enters it into the HSM when the master 
key must be loaded or restored.  The other key component custodian(s) do the 
same for their components, and the HSM creates the complete master key inside.  
The components can be manually keyed in (typically on the smart card reader of 
a TKE workstation), or they may be stored on electronically-readable media.  
The preferred method with Z and TKE is to have TKE store them on secure smart 
cards, and then read them out of those cards when needed.  With this approach, 
the key components are never outside a secure device in cleartext.
 
Another, similar approach that is sometimes used is to use "key shares" instead 
of components.  The difference is that with components, you must combine ALL of 
the components to form the master key, but with shares you only need a subset.  
This is typically called an m-of-n scheme, where you create n shares of the 
key, but any n of those can be combined to form the complete key.  This means 
that you do not need all of the m key share custodians to be present to load 
the master key - any n of them will do.  Note that Crypto Express does not 
support this for loading the master keys, but I wanted to include it here for 
completeness.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF and z/OS 2.3

2019-01-24 Thread Todd Arnold
I'm afraid I can't help on that end.  I'm an expert in the HSM (I've been 
developing them since the first IBM HSM started as a research project in the 
1980s), but not in ICSF releases.  Hopefully, someone else will know the 
answers to your questions.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Connect:Direct and ICSF (was ICSF and z/OS 2.3)

2019-01-23 Thread Todd Arnold
In particular, you don't get any of the financial crypto verbs without a Crypto 
Express.  The standards do not allow banks to perform functions like those 
unless they are executed in a physically and logically secure crypto device.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF and z/OS 2.3

2019-01-23 Thread Todd Arnold
There have been several changes over the years to improve performance of random 
number generation, but the important thing is that the random numbers were 
always generated using secure methods.  As Greg mentioned, ICSF started using 
the CEX long ago to get random numbers, which were generated in the secure CEX 
HSM.  Later on, caching was added in ICSF to create a pool of random data so 
that the CEX card would not have to be called each time.  After that, a new API 
was added to the CEX card to get a larger batch of random numbers in a single 
call, again to improve performance.  Now, CPACF has been enhanced to make it 
even faster than it was using CEX.  In all of these cases, the random numbers 
are generated using FIPS-approved methods.  One thing that is very nice about 
ICSF is that it hides all of these lower-level changes from your application 
programs.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Express benefits and alternatives

2018-10-30 Thread Todd Arnold
As Radoslaw says in his post, RACF and the usual Z host security is indeed 
very, very good, but they do not protect you against everything.  For example, 
an insider attack by a sufficiently-authorized person could disclose keys 
protected by RACF - there are people who can get to data on disk or in memory, 
even though it has things like RACF protection - and there are probably people 
with authority to remove the RACF protection.  When your keys are protected by 
the Crypto Express HSM, none of those attacks are possible.  Once the keys are 
under protection of the Crypto Express HSM, there is no way to see them except 
in encrypted form.  The HSM has no functions to give you the key in unencrypted 
form, and any attempt to attack the HSM itself (e.g. opening it and reading its 
internal memory) will cause immediate destruction of the keys it contains, 
which makes the externally-stored encrypted keys unusable.

So - the amount of security you need depends on your application.  For many 
people, it is sufficient to use CPACF with cleartext keys, where the keys are 
protected in ways like you described.  Other people want more protection, and 
they use Protected Keys with CPACF - in that case, the keys are protected by 
the Crypto Express, but they are used by CPACF to give you higher performance.  
Other people, who want the highest possible degree of security, use the Crypto 
Express to protect the keys and to perform the cryptographic operations that 
use them.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Utilization Question

2018-10-05 Thread Todd Arnold
Unfortunately, crypto card utilization is a complex thing because the HSM cards 
themselves can execute multiple operations simultaneously, depending on the mix 
your applications are sending it.  A simple example is the fact that the cards 
have completely independent hardware for symmetric key crypto (e.g. TDES, AES) 
and for public-key crypto (e.g. RSA, ECC).  Thus, your card might be 100% 
utilized doing TDES operations, but still have lots of capacity to do more RSA 
operations.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Encryption keys and EM waves

2018-09-04 Thread Todd Arnold
> Are the specific results of the various tests a available to review?

Not to my knowledge.  Generally, the only thing that is public is a binary 
"yes/no" on the test results, and some (often detailed) description of the 
product's features that were tested.  For examples of the latter, see the FIPS 
140 Security Policy documents, which NIST published on their web site, or the 
Security Policy documents for products that PCI certifies.  

For those who are curious, you can find the 4767 (Crypto Express5S) card's FIPS 
140 Security Policy here:  
https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp3164.pdf.
  You can find the 4768 (Crypto Express6S) card's PCI HSM Security Policy here: 
 
https://www.pcisecuritystandards.org/ptsdocs/4-20333IBM_4768_PCI-HSM_Security_Policy_v1.11-1532367386.40602.pdf

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Encryption keys and EM waves

2018-08-31 Thread Todd Arnold
For things like FIPS 140, IBM does its own testing before we send anything to 
the independent lab for them to test.  Then, the lab does their own testing for 
the formal certification.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Encryption keys and EM waves

2018-08-30 Thread Todd Arnold
High-end crypto devices like the Crypto Express cards already have a lot of 
what you'd think of as Tempest protection.  In fact, the FIPS 140 Level 4 
evaluation (which all Crypto Express cards pass) includes verification that 
those kinds of side-channel attacks are prevented.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF and millions of RSA keys

2018-06-28 Thread Todd Arnold
Here are the answers from my friends on the ICSF development team.

>1. Is it good idea to have millions of keys in PKDS? Would it be a 
>problem for ICSF? VSAM limits seem to be not a problem, but maybe ICSF 
>have some bottlenecks or limitations.

There will be no problem for ICSF to store 2 to 3 million public keys in the 
PKDS. 

>2. Can I keep the keys out of PKDS, for example in DB2 table? Note, we 
>talk about public key, so there is no big reason to keep it secret.
>For example: tell ICSF to check msg using given key value, instead of 
>given key label. I remeber such solution is feasible for symmetric keys 
>(the key was encrypted using Master Key).

Yes, you can store the key tokens outside the PKDS. Callable services accept a 
label or key token. PKA public keys are in the clear, so there is no security 
issues.
To be clear, I would only recommend keeping public keys outside the PKDS. 
Private keys should be maintained in the PKDS so they are properly reenciphered 
during a master key change. 

>3. What about performance? While DB2 table can be buffered, what about 
>PKDS? Does it require I/O for every key use?

During initialization, ICSF copies the PKDS into 64 bit storage. When a label 
is passed to a callable service, ICSF retrieves the key token from the in-store 
PKDS. No I/O is performed during the retrieval

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF and millions of RSA keys

2018-06-28 Thread Todd Arnold
I sent this question on to someone on the ICSF development team.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Intel Chip flaw

2018-01-05 Thread Todd Arnold
Remember that in order to exploit these, you need to be able to load and run 
your own code next to the code you're trying to attack.  You generally can't do 
that in embedded devices like printers, routers, POS terminals, etc.  Also, 
these are attacks that apply to systems running multiple processes that are 
protected from each other using hardware features - but a lot of embedded 
devices only run one process, or run with a model that already lets everything 
access all memory and resources - since you don't expect people to be adding 
malicious code to your embedded device.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Looking for mainframe shops Lexington/Cincinnati

2017-08-29 Thread Todd Arnold
I asked some IBM coworkers of mine who are located in Lexington.  Here's what 
they had to say:

"One person thought of the University of Kentucky here in Lexington. Also, in 
Central Kentucky, I know of NTT Data (Frankfort), Booz Allen (Radcliff), and 
Humana (Louisville). Louisville/Cincinnati probably hold out the most 
opportunities.

I did see this job posting for Fort Knox:

https://sts-openhire.silkroad.com/epostings/index.cfm?fuseaction=app.dspjob=1317_id=16728=1=3338

Army base in Fort Knox and vendors who facilitate such..."

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Vector processing instructions

2017-08-07 Thread Todd Arnold
I got this answer from someone else at IBM, who is an expert in the vector 
instructions:
"Currently to convert a 128-bit singed/unsigned integer in a vector register to 
a packed decimal value you must store the value to memory and use the standard 
integer conversion instruction CVBG to convert 64-bits at a time. A full 
128-bit value will not fit into a 31-digit decimal number."

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Customer is Using CPACF (Crypto) purchased Crypto Express

2017-06-20 Thread Todd Arnold
Right - the CPACF Protected Keys are *very* secure and we were very happy with 
our ability to add that feature.  Unfortunately, for some applications (such as 
payment card systems), the standards require a "Secure Cryptographic Device" 
(SCD) like an HSM that has advanced active tamper detection and response - so 
you have no choice in those cases.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Customer is Using CPACF (Crypto) purchased Crypto Express

2017-06-19 Thread Todd Arnold
So, the discussion about ICSF is not meaningful - ICSF runs on z/OS, and you're 
not using z/OS in this case.

In general, the choice between CPACF and CEX is fairly straightforward.

- If the function(s) you need can be done with CPACF, then use CPACF.  
   It is faster than CEX for everything it does, but it can only do a small 
   number of things.

- If you need "secure keys" - keys that are protected by hardware that 
   cannot be subverted, even by the highest-technology methods - then 
   use CEX.  (but if you need a lower level of security, consider CPACF 
   Protected Key mode.)

- If you need the functions that are available only on CEX, then use CEX.  
   Some typical examples are public-key cryptography (CPACF only does
   symmetric key crypto and hashing) and the wide array of specialized 
   functions required in banking and payment card systems.

Sometimes, this means using both CEX and CPACF.  SSL/TLS is a good example - 
this is typically done by using CEX for the public-key operations involved in 
setting up the session, then using CPACF for the symmetric-key operations used 
to encrypt/decrypt the session traffic.  Often, the SSL/TLS software is 
designed to do this automatically.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Customer is Using CPACF (Crypto) purchased Crypto Express

2017-06-14 Thread Todd Arnold
As Phil said:
> (arguably the firmware is slightly less secure than the tamper-resistant HSM, 
> but the memory 
> used in the firmware to hold that key is protected-it's apparently not even 
> visible in HMC dumps)

That is correct.  The memory where the key is held is associated with the CPACF 
hardware and its operation.  That memory is part of the internal z hardware and 
is completely separate from any memory that the applications or operating 
system can see or use.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Customer is Using CPACF (Crypto) purchased Crypto Express

2017-06-14 Thread Todd Arnold
Since I design some of this stuff, I can help clarify - but others have already 
done a pretty good job of explaining the various alternatives.

What I'd like to ask is what you are actually trying to do?  What is the reason 
for installing the Crypto Express and trying to use it instead of or in 
addition to the CPACF?  The reason I'd expect is that you want additional 
security for your keys, but I don't think you've confirmed that.

If you use ICSF as the interface, it automatically selects the most appropriate 
crypto to use - for example, if you are doing clear-key encryption, it will 
automatically use CPACF because it knows that will be faster than the CEX, but 
if you want to do PIN block translation it knows it has to use the CEX because 
the relevant standards mandate that keys can't be in the clear and that the 
entire translation operation has to be done atomically.

Most people find that CEX performance is not good enough for disk encryption 
applications, so they either use clear-key CPACF or protected-key CPACF, 
depending on their security requirements on the keys.  Performance for 
protected-key operations is only slightly less than for clear-key ones with 
CPACF - you can see some performance information in this paper:  
https://public.dhe.ibm.com/common/ssi/ecm/zs/en/zsw03283usen/ZSW03283USEN.PDF

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF -CKDS Question

2017-04-20 Thread Todd Arnold
I asked one of the ICSF developers about this.  Here is his reply:
--
There is no way to create a new entry in the CKDS from an existing entry using 
KGUP. 

The way I would do it would be to write a program to do the following: 
•   Call CSNBKRR2 to get the key token 
•   Call CSNBKRC2 to create a new entry in the CKDS with a different label. 

This will work as long as the customer doesn't have the key store policy 
control to prevent duplicate tokens in the CKDS enabled. The key store policy 
controls are documented in the ICSF Administrator's Guide.
--

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: GREAT presentation on the history of the mainframe

2017-03-24 Thread Todd Arnold
> 303x external channels (channel director) was 158 engine with integrated
> channel microcode (and no 370 microcode).

360 processors with special microcode were used in a number of things.  Early 
in my career, I worked on development of the IBM 3890 high-speed check sorter.  
(https://en.wikipedia.org/wiki/IBM_3890)  The controller in that sorter was a 
360 mod 25, with all the code written in native microcode - no 360 instruction 
set.  It turned out to be very fast, and it was many years before IBM was able 
to find anything to replace that old mod 25 with its core memory.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ComputerWorld Says: Cobol plays major role in U.S. government breaches

2017-03-21 Thread Todd Arnold
A good example of how z System is keeping up with encryption and making it even 
easier to use can be seen in the brief summary in "Preview: IBM z/OS Version 2 
Release 3" at 
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca=an=897=ENUS217-085
 .  It has this information about plans to make it easy to keep data encrypted 
with a minimum of work on the part of the system owner or programmer.

= Begin clipped text ==
New approach to encryption
-

The threat of data breaches in conjunction with compliance mandates are driving 
the need for clients to adopt extensive use of encryption across their 
enterprises. z/OS V2.3 plans to replace application development efforts with 
transparent, policy-based data set encryption:

* Planning enhanced data protection for z/OS data sets, zFS file systems, and 
Coupling Facility structures to give users the ability to encrypt data without 
needing to make costly application program changes.

* Designing new z/OS policy controls to make it possible to use pervasive 
encryption to protect user data and simplify the task of compliance.

* z/OS Communications Server will be designed to include encryption readiness 
technology to enable z/OS administrators to determine which TCP and Enterprise 
Extender traffic patterns to and from their z/OS systems meet approved 
encryption criteria and which do not.
= End clipped text ==
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ComputerWorld Says: Cobol plays major role in U.S. government breaches

2017-03-20 Thread Todd Arnold
Gee, I've been developing crypto technology for 30+ years that runs in those 
environments - so it's certainly news to me that it can't be done :-)
 
Looking at the ICSF Application Programmer's Guide, which defines the ways most 
z/OS applications get cryptographic services, I see this:

  ICSF callable services can be called from application programs written in a 
number
  of high-level languages as well as assembler. The high-level languages are:
- C
- COBOL
- FORTRAN
- PL/I

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF Question

2017-02-20 Thread Todd Arnold
You might want to look at the IBM Crypto Analytics Tool (CAT), offered by the 
excellent IBM crypto team in Denmark.  It is intended to analyze your crypto 
system and provide a variety of reports on many things you might need for 
system management, compliance, etc. (including things having to do with your 
keys).  There is a brief summary at this page, but it's quite old and I'm sure 
there is more current information somewhere:  
http://www-05.ibm.com/dk/security//products/ekmp-cat.html

Here is some summary information from that web page:

"The IBM Crypto Analytics Tool (CAT) is part of the IBM Enterprise Key 
Management Foundation EKMF) and has been developed to help provide up-to-date 
monitoring of crypto related information on the z Systems in the enterprise. 
CAT is designed to combine and present crypto information in a way that helps 
ensure compliance and policy enforcement. The CAT Agent collects cryptographic 
information across the enterprise that is then made available to the CAT 
Monitor running on your desktop. The CAT Monitor provides overviews, queries 
and reports to better manage the cryptographic setup.

...

CAT is designed to provide fast, reliable crypto information to help people in 
different roles of the organization make qualified decisions about crypto 
systems. CAT collects cryptographic information from across the enterprise and 
ensures that each crypto system is following best practices by providing:
  -A comprehensive overview of the cryptographic security of the system.
  -Up-to-date monitoring of crypto keys and functions.
  -Key data for better policy and compliance enforcement.
  -Awareness if key material used in testing has leaked into production 
environments.
  -A comparison of the current crypto state with a previous 'snapshot' for 
error and problem determination or change control validation."

Questions about CAT can be addressed to the Denmark team at c...@dk.ibm.com.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Blockchain

2017-01-27 Thread Todd Arnold
Kirk, you don't need to program the SHA-256 algorithm in software - it's 
available as a hardware instruction using CPACF.  I don't have performance 
numbers handy for SHA-256, but you can see SHA-512 performance in this paper:  
http://www.ibm.com/common/ssi/cgi-bin/ssialias?subtype=WH=SA=ZSW03283USEN=ZSW03283USEN.PDF
  It does over 7 million SHA-512 operations per second (per CPU) on 64-byte 
input data.  (That's a rate of 481 MB/sec of hashing.  With larger input 
blocks, the rate gets up to about 3.5 GB/sec.)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Blockchain

2017-01-27 Thread Todd Arnold
> z/Series machines are not geared towards floating point operations the way 
> commodity GPUs, FPGAs, or purposely built BitCoin miners are.

Remember that the main thing you need to do for bitcoin mining are hashing 
operations.  The z machines have the hash algorithms built in to the CPACF 
hardware in the CPUs, so I don't think floating point operations are 
particularly relevant.

I certainly would not say a z machine is a good thing to go out and buy just to 
mine bitcoins, but as others have said it would be an interesting use of spare 
cycles or unused CPUs.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3DES encryption using ICSF callable services

2015-11-20 Thread Todd Arnold
> Actually ICSF provides both open and secure key encryption services.

Yes - mainly, those were added so that applications would have a way to use 
ICSF for clear-key encryption with the CPACF.  Those were not originally a part 
of CCA, and are not supported in the HSM cards (Crypto Express, 476x).  In 
addition, CCA has always had clear key "ENCODE" and "DECODE" verbs, but those 
were intentionally limited to encrypting just 8 bytes of data - the original 
designers wanted to discourage use of clear key encryption.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3DES encryption using ICSF callable services

2015-11-19 Thread Todd Arnold
One of the fundamental design points for CCA is that keys are protected.  Once 
they are inside the CCA system, they are always encrypted if they are outside 
the physically secure HSM module.  Thus, most crypto functions in the CCA API 
("verbs") only accept keys in encrypted form - wrapped with the appropriate CCA 
master key.  They are decrypted on the fly inside the HSM and used for the 
desired operation.  Thus, before you can use a key in the Encipher verb, you 
need to get the key into such a form - wrapped by the master key.  That's the 
purpose of the import operation in the sequence you posted.

With any cryptographic system today, the biggest exposure is protection of your 
keys.  Hardly anyone actually "breaks" the crypto algorithms themselves - they 
find ways to get to the keys.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3DES encryption using ICSF callable services

2015-11-11 Thread Todd Arnold
I'd like to point out that 2-key TDES is still the standard for banking 
cryptography and that almost nothing in payment card or related security uses 
anything else - in fact, some standards (like DUKPT) do not support 3-key TDES 
at all.
 
The confusion is because the best attacks on 2-key TDES require the attacker to 
have access to certain information that is generally unavailable in banking 
transactions, key management, etc.  A good reference for what algorithms and 
key lengths to use (and why) is ISO TR 14742, "Financial services — 
Recommendations on cryptographic algorithms and their use ".  Here is a 
paragraph from that explaining when 2-key TDES is OK and when it is not: 
 
-- begin excerpt --
The recommended end date for use of 2-key Triple DES (TDEA with keying option 
1) ranges from 2010 to 
2030. Which date is appropriate for a given implementation depends on the way 
in which the keys are being 
used in that implementation.  If the key usage provides a potential attacker 
with a large number of plaintext-
ciphertext pairs for the same key (e.g. 1,000,000,000,000 ≈ 2**40 pairs), the 
security of the key is approximately 
80 bits and hence the recommended use is until 2010.  If only a few (less than 
256) pairs are available, it may 
be acceptable to continue use until 2030.
-- end excerpt --

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


IBM z Systems Security Conference announcement

2015-06-05 Thread Todd Arnold
I received an email announcing this event and thought some readers might be 
interested.  Here is the note:

---
Dear All, 

Join us for the IBM z Systems Security Conference which will be held September 
27th to October 2nd at the IBM Client Center Montpellier, France. 
Analytics, mobile, social, and cloud computing all have one thing in common: 
They need a platform that has a deeply integrated security stack. This is where 
IBM® z Systems™ excel. To help counter the many threats to your business in the 
current world, including hackers looking to penetrate your systems and 
government backed attacks, z Systems offers a platform with layers of defense 
to protect your data, intellectual property, and your reputation. 

Join us in Montpellier to find out more about how to meet these security 
challenges with z Systems and discover the new z13 machine and the latest 
version of z/OS in its version 2.2. Like previous years, we expect more than 
hundred attendees including Customers, Business Partners and IBMers.  Security 
experts from the IBM z System community and labs will share their experience 
and expertise.   

Clients should ask their local IBM representative for an invitation: please see 
this link for more details:  
http://www.ibm.com/ibm/clientcenter/montpellier/zsec.shtml

Jean Marc Darees 
Conference Manager 

If you have any further questions, please contact  JM Darees 
(jmdar...@fr.ibm.com) or Patricia Jimenez (pat_jime...@es.ibm.com). 

---

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: CryptoExpress4S - how many domains?

2015-05-26 Thread Todd Arnold
 16 was the number for a long time. Also, why 85? 5 x 17?  Where did the
 extra 1 come from?  I would have expected ... 5 * 16 = 80

The number of domains architecturally supported in the CEX5 card itself is 
actually 256, which is of course a nice power of 2.  However, that is more than 
that z System machine needs.  The number supported by the machine was 
determined by deciding what a reasonable number of domains would be, relative 
to the number of host LPARs and the processing speed of the machine.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: PCI DSS compliance for z/OS

2015-05-19 Thread Todd Arnold
Phil Smith wrote:
  ... and when decommissioning hardware-no more How many DSEs should 
we  do? or Should we take the drives out back, shoot ‘em with a 
12-gauge,  and then drop ‘em in the ocean?.

Actually, there is a much more interesting corollary to this scenario.  If you 
have a drive that fails and has to be replaced, that drive still contains your 
data, but you are unable to talk to it any more - so you have no way to do 
overwrites to erase the data.  If the data was encrypted on the drive, you have 
no problem - but otherwise, if the vendor requires you to return the failed 
drive, you have a problem because you're giving someone a copy of whatever data 
was on that drive when it failed.  (If you don't have to return the drive, of 
course, you can physically destroy it - but that is a pain in the neck to do.)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: PCI DSS compliance for z/OS

2015-05-19 Thread Todd Arnold
 I think much of the problem is with credit card numbers themselves. There are 
 only ~10**16 possible credit card numbers...

Actually, it's much worse than that.  You can't encrypt all of the PAN for a 
credit card.  Typically, the first part (the BIN) is required in cleartext in 
order to route the transaction to the correct issuer, and the last 4 digits are 
usually required in the clear to be printed on a credit card receipt.  In the 
current ANSI FPE standard (X9.124, which I think is still in draft), the 
minimum number of PAN digits that get encrypted with FPE is just 6 middle 
digits.  However, it is common to use the other (unencrypted) digits as input 
to the FPE algorithm, so that cards where these 6 digits are the same do not 
end up with identical encrypted digits.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: PCI DSS compliance for z/OS

2015-05-18 Thread Todd Arnold
The article you referenced seems to assume whole-disk encryption is always 
implemented using software on your computer, since it says the operating 
system has the decryption key to access the disk.  That is not true, of 
course, for self-encrypting disk drives (or tape drives) where the encryption 
key never leaves the hardware device in unencrypted form.  As I recall, the key 
is served to the mainframe disk drives using a secure process such that it is 
never available in the clear.
 
Regardless, it is true that the #1 benefit of encrypted disk and tape drives is 
the case where the device can be stolen.  For tape, the usual example is that 
someone loses or steals a tape when it is going out of your facility for 
off-site backup.  For disk, the biggest risk scenario is a laptop, which can be 
stolen or lost.  Obviously, it's a lot less likely that someone is going to 
walk out of your data center with a disk drive that was in use by your 
mainframe.  I think whole-disk encryption has value in all cases, but it has 
the most value for devices or media that can easily move around.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF and EMV

2015-05-11 Thread Todd Arnold
IBM is aware of the difficulty figuring out what combination of CCA verbs to 
use for each EMV function, and we are working on things to make this easier.  
However, all of the necessary functions are definitely there in CCA - we have 
many customers who process EMV transactions and perform EMV key management (and 
card personalization) using the crypto functions provided in CCA. 
 
In general, EMV transactions are protected with a TDES MAC that is computed 
using a session key.  In CCA, this means you must first derive the session key 
(Diversified Key Generate verb, CSNBDKG) and then you must compute or verify a 
MAC using the derived key (MAC Generate or MAC Verify, CSNBMGN or CSNBMVR).

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF Without Crypto Card?

2013-09-23 Thread Todd Arnold
Just for fun, here is a little history of crypto for the mainframe systems. 

1977 – IBM 3845 DES encryption unit (channel attached)
1979 – IBM 3848 DES encryption unit (channel attached) - Faster, adds Triple-DES
1989 - IBM 4753 channel-attached crypto unit - uses 4755 crypto adapter 
internally, first introduction of CCA crypto architecture for System z
1991 – S/390 ICRF (Integrated Cryptographic Facility) - Integrated feature on 
S/390 for high-speed DES operations using subset of CCA
1997 – S/390 CCF single-chip CMOS crypto replaces ICRF.  Adds public-key 
functions (but no RSA key generation).  TKE for secure remote administration.
2001 – zSeries adds the PCICC – a 4758 crypto card under the covers.  (4758 had 
been introduced in 1996 on other IBM platforms)
2001 – PCICA cryptographic accelerator - RSA acceleration - uses 4758 Model 2 
crypto chips.  Optimized for speed instead of security.
2003 – PCIXCC (4764) Cryptographic Coprocessor - Replacement for 4758/PCICC and 
PCICA
2003 – CPACF (CP Assist for Cryptographic Functions) added to System z.  
Integrated into CPUs.  Clear key DES/TDES, SHA-1.  (other algorithms added in 
later generations)
2004 - Crypto Express2 introduced
2009 – Protected Key CPACF
2009 - Crypto Express3 (4765 card) replaces PCIXCC
2012 - Crypto Express4S - same crypto card as Crypto Express3, but packaged 
differently for new mainframes

Todd Arnold
IBM Cryptographic Coprocessor Development
Charlotte, NC

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF Without Crypto Card?

2013-09-23 Thread Todd Arnold
 Hi Todd,
 Are you saying that the Redbook SG24-7848-00 System z Crypto andTKE Update is 
 just plain wrong ?

Actually, I cannot figure out what that text from the RedBook is trying to say 
:-)

All protected-mode keys are stored as CCA secure key tokens, wrapped by the 
master key of the Crypto Express (CEX) card.  The CEX unwraps the key when it 
is needed by CPACF, which then rewraps it using a temporary CPACF key.  That 
CPACF key is lost whenever the system is restarted, and a new CPACF key is 
generated at that time.  Thus, the only long-term storage of the protected-mode 
keys is under the CEX master keys.  Those can't be used, of course, unless you 
have the CEX.  Thus, a CEX is required in order to use protected-mode CPACF.  
 
If you take a clear key and import it to protected mode, the result is a 
protected key that cannot be used without having a CEX.

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF Without Crypto Card?

2013-09-23 Thread Todd Arnold
 Hi Todd,
 Are you saying that the Redbook SG24-7848-00 System z Crypto andTKE Update 
 is just plain wrong ?

 Actually, I cannot figure out what that text from the RedBook is trying to 
 say :-)

OK, I looked at the RedBook and I see what it's talking about now.  It's sort 
of a halfway way of using Protected Mode CPACF.  You turn your clear keys 
into protected keys, but the protected key you get is only valid until the next 
time things are restarted, because at that point CPACF generates a new wrapping 
key and the protected keys you got from it earlier become invalid.  This is in 
contrast with the full protected mode which uses a CEX card, and where your 
keys are stored in CEX key tokens that are still good after restarts.
 
Both are good, valid approaches, but obviously the full approach is 
appropriate for some things where the other mode would not work.

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF Without Crypto Card?

2013-09-20 Thread Todd Arnold
Let me add my comments on some of this discussion.

ICSF will try to use whatever is best for any particular requested operation.  
For example, if you want to do a clear-key TDES encryption of some data, it 
will use the CPACF even if you also have a Crypto Express (CEX) coprocessor.  
It does that because it knows the CPACF is faster.  CPACF is always available 
(assuming it is enabled in your machine), and ICSF also has built-in software 
for some things the CPACF does not support.
 
Speed, of course, is not the only factor that must be considered.  In many 
cases, functions that are available in the CEX simply do not exist in CPACF - 
all of the banking-specific functions such as payment card transaction 
processing or key management are good examples.  Standards (and good security 
practices) demand that many cryptographic functions be done inside a secure 
hardware device like the CEX, and similarly many of these demand that keys must 
never appear in unencrypted form outside of a secure hardware device.  
 
One post said It may be ... that the recently announced protected clear keys 
can be used without a coprocessor, increasing the security level even for clear 
keys.  This is not correct - in order to use the protected keys, you MUST also 
have a CEX coprocessor.  This is because the protection of those keys is 
actually done through use of the CEX, while the encryption itself is done in 
the CPACF.

Another post said Since z990 (approx. 10 years) you can have crypto cards.  
Actually, the first one of our crypto coprocessor cards to be supported in the 
mainframes was the PCI Cryptographic Coprocessor, or PCICC, which was announced 
on the S/390 G5/G6 machines in 2000.  See 
http://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/3/649/ENUSA00-0293/index.htmllang=enrequest_locale=en
 for one of the announcement notices, which says in part:  New for 2000, the 
IBM PCI Cryptographic Coprocesser (PCICC) is an orderable feature that adds 
additional cryptographic function and cryptographic performance to G5/G6 
servers.

Todd Arnold
IBM crypto coprocessor development
Charlotte, NC

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF master keys at DR site

2013-05-15 Thread Todd Arnold
 There is/was a way to set a CEX card to allow it to keep the MK loaded
 while being transferred between machines. 

Yes, but you also need a TKE to do this.  You can enable or disable the 
crypto card.  When the card is disabled, you cannot perform any 
application-oriented crypto functions with it - for example, encrypting data, 
managing keys, etc.  The only things you can do are the functions related to 
re-enabling the card, which is done via TKE.  While the card is in disabled 
state, you can remove it from your machine and it will not lose any of the 
stored data such as the master keys - but you also cannot USE those master keys 
for anything until the card is re-enabled, and that is not possible except 
through TKE by two authorized administrators.

Here is part of the description that is in the TKE user's manual:

--
A crypto module is either enabled or disabled. When a crypto module is
enabled, it is available for processing. You can change the status of the module
by pressing the Enable Crypto Module / Disable Crypto Module push button.
Enable Crypto Module is a dual-signature command and another authority may
need to co-sign. Disable Crypto Module is a single signature command.

Disabling a crypto module disables all the cryptographic functions for a single
crypto module, a group of crypto modules, or a domain group. This disables the
crypto module for the entire system, not just the LPAR that issued the disable.
--

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ICSF master keys at DR site

2013-05-14 Thread Todd Arnold
Without a TKE, I don't think there is any other method.

If you do have a TKE, there is a very nice and very secure method of completely 
cloning everything from one crypto card to another one.  This was added a 
couple of releases ago.  Here is the beginning of the description from the 
current TKE user's guide (which I just retrieved from Resource Link):

---
Configuration migration

The TKE workstation provides tools to securely capture host crypto module
configuration data to a file, and then reapply this data to another host crypto
module or crypto module group. The data that can be securely captured includes
roles, authorities, domain control settings, and master keys. These tools 
simplify
the task of installing new or replacement host crypto modules, and can be used 
for
backup and disaster recovery as well.

Two tools are provided: one that migrates only public configuration data (roles,
authorities, domain control settings) and one that migrates all configuration 
data,
including secret data, such as master key values. The protocol for migrating 
secret
data is more complex than the protocol for migrating only public data, and
requires the participation of several smart card holders.
---

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Facility performance.

2013-04-29 Thread Todd Arnold
 afterwards ... all corporate
 copying machines were retrofitted with serial number that would appear
 on all copies made.

Ah - I definitely remember the serial numbered copiers, but I never new the 
original reason they did that!  I always figured it was to discourage people 
from using IBM copiers for personal purposes.

 (this was even before DES, coppersmith was still down at
 harvard) 

I really miss being able to contact Don to get quick and accurate answers to 
crypto questions.

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Facility performance.

2013-04-29 Thread Todd Arnold
 It is *theoretically* possible for someone with physical access to the 
 zSeries processor to open it up and install some customized hardware 
 that could intercept the clear key.  Is that a reasonable risk for the 
 dats you need to protect, when weighed against the improved performance? 
   For most customers I would think so.

The people who put this stuff in the standards all come from a perspective of 
thinking about POS terminals (where you really can attack the hardware), ATMs, 
and injection of keys into HSMs.  In all cases, they're thinking about some 
relatively small hardware device that you can get access to in some way - 
perhaps modifying the hardware, perhaps watching signals flowing over an 
interface, etc.  They are NOT at all thinking of things like internal logic and 
data paths inside a mainframe locked in a secured data center.

I work on some of those standards, and I'm constantly fighting this battle - 
some times I succeed, and some times I don't. 

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Facility performance.

2013-04-26 Thread Todd Arnold
 So.. even though the protected key starts with the Crypto Express, it
 wouldn't pass an audit for protection of card data?

Yes, it STARTS with the Crypto Express, but then the cleartext key is protected 
by the fact that it is buried in the inaccessible System z hardware which 
cannot be seen or probed by applications, the O/S, debug tools, etc.  However, 
regardless of the fact that the key is inaccessible, it does not meet the 
strict requirements as defined by the standards.  As an example, here is a 
piece of the ANSI X9.24 Part 1 standard, which defines requirements for 
handling and managing symmetric cryptographic keys in banking applications:

-- begin text from X9.24.1 ---
a) Cryptographic keys SHALL only exist in one or more of the following forms:
  1) In a Tamper-Resistant Security Module (TRSM) as specified in Section 7.2 
below.
  2) If outside a TRSM, as a cryptogram that SHALL have been created inside a 
TRSM by
  TDEA using a Key Encrypting Key.
  3) If non-encrypted and outside of a TRSM, a key SHALL exist only in one of 
the following
   forms:
i) as two or more key components as defined in Section 7.5, employing dual 
control
   and split knowledge or
ii) as a cleartext key while being transferred from a Key Loading Device 
(KLD) to a
   directly connected TRSM
-- end text from X9.24.1 ---

Some clarification of terms in this...
  - A TRSM is a physically secure device which detects any attempt to tamper 
with it and automatically clears all secret data (like keys)
  - TDEA is a synonym for TDES, Triple-DES, which is the only symmetric crypto 
algorithm currently approved for banking applications.
  - cryptogram is just a fancy word for a piece of data that is in encrypted 
form.
  - key components are values that are combined together to form the actual 
key, such that no component by itself can be
 used to learn anything about the value of the key.  (typically, components 
are exclusive-ored together to create the key.)
  - A KLD is a very specialized secure device that can be connected to an HSM, 
Point of Sale terminal, etc. to load keys into it.
  - In standards, the word SHALL means that something is absolutely mandatory.

So, this says that any complete key that is not encrypted MUST ONLY exist 
inside a TRSM, which means a physically secure, tamper-detecteing device like 
the Crypto Express.  This is what the auditors are measuring the systems 
against.

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Facility performance.

2013-04-25 Thread Todd Arnold
 I am having difficulty understand how much less secure protected key
 is from the secure key.

I agree with the comments about this.  The real issue is conforming with the 
very strict requirements written in to banking standards such as ANSI, ISO, or 
PCI.  Basically, they do not approve any implementation that is not inside 
secure, tamper-detecting hardware that clears all keys and other secrets 
immediately if anyone attempts to tamper with it.  Obviously, the hardware and 
low-level firmware in the System z processor do not have that kind of secure 
packaging, whereas the Crypto Express cards to have it.  However, the Protected 
Key implementation keeps all keys and other sensitive information completely 
protected from access by any user, application program, O/S code, etc - so it 
is indeed very, very secure.
 
I always recommend Protected Key when it has the required functions and where 
it's being used for something where your auditor won't say no - and in those 
cases, you have to use the Crypto Express.  Protected Key is an incredibly fast 
solution that really does have very good security.

Todd Arnold
 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Facility performance.

2013-04-24 Thread Todd Arnold
Well, I see that I started some interesting discussions.  Let me try to answer 
some of the questions - the answers are not complicated.

Phil Smith said:
 I can only speculate from here that it's either (a) a conservative 
approach, to keep mixed use 
 from causing unsatisfactory performance for one camp or the other (e.g., 
a ton of SSL handshakes 
 causes PIN operations to be slow, or vice versa)

That is exactly the reason.  The System z architects were worried that 
performance would be unpredictable when operations of the two types could 
steal performance from each other.

Tony Harminc said:
 Which of course raises the questions of how well the card interfaces
are documented, and whether the cards are available for other
 platforms.

The low-level interfaces to the cards are intentionally NOT publicly 
documented.  The reason for this is that those interfaces change from time to 
time, typically when we come out with a new card.  Thus, there would be a big 
problem if customers coded to such an interface - they would be quite unhappy 
when their stuff stopped working after IBM made changes.  To solve that 
problem, we define higher-level interfaces (like the CCA API) that we keep the 
same from card to card.
 
The cards are definitely available on other platforms.  It has always been 
available on all IBM server families - for example, see 
http://www-03.ibm.com/security/cryptocards/pciecc/overproduct.shtml where you 
will find information saying the PCIe crypto card (4765, aka CEX3/CEX4S) is 
available on System z (z/OS, Linux, others), Power servers (AIX, IBM i), and 
System x servers (Linux, and Windows by special request).  

Tony also mentioned this:
 Some years ago researchers at Ross Anderson's security lab at Cambridge 
mounted a
 successful attack on earlier IBM crypto APIs

Be careful to understand what they really found.  Their attack was only 
possible in unrealistic configurations in which any user was authorized to 
invoke every API function possible with the crypto card - and in real-world 
systems, access control is always used to block just such attacks.  Prevention 
of such attacks is precisely why there IS access control built in to all 
systems using the crypto cards.  As you may know, even after it was publicized, 
there were never ANY actual cases where such an attack was used on live systems 
- because it was impossible with any reasonably configured system.  Regardless, 
we did make some changes to prevent the attacks they noted.

Radoslaw Skorupka said:
  ... and whether the cards are available for other platforms.
 Yes, obviously. There have been since first model (PCICC).

Actually, it goes back farther than that.  Our first crypto card was the 4755, 
in 1989.  That card was supported on PCs, RISC 6000 AIX systems (predecessor to 
System p and Power), and AS/400.  In addition, we had a separate product, the 
4753, which contained the 4755 card and channel-attached to mainframes running 
MVS.  (and yes, I worked on those - in addition to the research work that 
preceded them.  Thanks, Phil for mentioning my history on this!)

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Crypto Facility performance.

2013-04-23 Thread Todd Arnold
Let me briefly explain the coprocessor vs. accelerator modes of the CEX 
crypto cards.  As far as the crypto card itself is concerned, there IS no 
difference, and there are no separate modes.  The only difference is how the 
host z machine chooses to use the card.  Let me explain what I mean...

The hardware of the CEX cards provides two different ways to get to the crypto 
services.  

* One is what is called the normal path.  With this, a request from the host 
is formatted into a message block that is sent across the bus to the CEX, where 
it ends up in the card's internal memory.  The microprocessor on the card sees 
that a request has arrived, and processes it - which generally involves quite a 
bit of software (firmware) running on that microprocessor, plus one or more 
operations on the card's crypto hardware chips.  The microprocessor has 
interfaces that let it perform operations using those chips.  Once everything 
is finished, the microprocessor builds a response block in its memory, then 
kicks off a process that sends that response block back to the host.  In 
essence, you can think of normal path as if you were sending a request across 
a network to another computer that has specialized functions - but in this 
case, the network is the PCIe bus and the other computer is the crypto card 
and its processing components.

* The other way is what is called fast path, which you know as accelerator 
mode in the System z.  Using this approach, the host system has a way to 
directly talk to the crypto chips on the CEX card - processing uses ONLY 
hardware and does not involve the CEX microprocessor or any on-card firmware.  
Thus, this is a much faster way of getting to the crypto hardware capability of 
the CEX card - however, it is also very limited in what it can do.  Those 
hardware chips do not implement higher-level things like PIN operations, 
financial key derivations, key management operations, digital signatures, or 
any of the many, many other complex functions you can get through the normal 
path.  It is a trade off - you gain a lot of speed, but lose most of the 
functions the card can perform for you.  Today on System z, fast path is 
mainly used to accelerate the RSA operations that are used to initiate SSL/TLS 
sessions.

The thing most people do not realize is that the CEX card has no problem 
running a mix of normal path and fast path operations - it has hardware 
arbitration logic that lets the host system send any mixture of the two.  Thus, 
there are no separate modes on the CEX itself - as far as it's concerned, you 
can use both modes at the same time.  However, the System z architecture makes 
a distinction between the two modes and only lets you use one of them on a 
given CEX card, according to how you have configured that card into the system.

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM Mainframe (1980's) on You tube

2013-03-20 Thread Todd Arnold
Two points...

(1)  Remember that when IBM invented CCA back in the late 1980s, there really 
were no other HSMs - thus, there were no other crypto architectures in the 
banking world to be compatible with.  I suppose other vendors who came along 
and developed HSMs could have adopted CCA, but they developed their own APIs 
and architectures.  IBM, of course, had no way to make our own CCA any kind of 
standard for the industry.  
 
(2)  Compatibility for interchange has always been a problem, and the solution 
for key exchange has generally been to use a least common denominator approach, 
simply wrapping keys with TDES in ECB mode with no associated type/usage 
information or other metadata.  Dissimilar systems generally strip off their 
proprietary metadata when exporting the key, then the receiving system binds 
its own proprietary metadata structures to the key when importing it.  This 
obviously is not the best approach in terms of security, but it's what everyone 
has done all these years.  Now, there is the TR-31 key block format which has 
improved somewhat on that situation, but TR-31 also has significant problems.  
It defines its own fixed set of key metadata, which of course is not entirely 
compatible with anything the preceded it and does not generally match up 
exactly with any vendor's HSM architecture, so translations have to occur and 
in the process security information is lost or interpreted differently.  
Furthermore, different vendors have interpreted the meaning of the key 
type/usage in TR-31 in different ways, so the restrictions you think you 
defined for a key may not be enforced in quite the way you thought when the key 
reaches some other device.  One example is that TR-31 has rather coarse key 
typing and usage, whereas CCA has much finer granularity and lets you control 
the key much more tightly.  When translating a CCA key to TR-31 format, all 
that extra control has to be discarded so that you use only the attributes 
defined in TR-31.  Conversely, when importing a TR-31 key into CCA, you have to 
somehow create all the extra, more detailed control attributes that are not 
present in TR-31, and the only way to do that is to let the application program 
tell CCA what to do.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM Mainframe (1980's) on You tube

2013-03-17 Thread Todd Arnold
 I've only found ICSF and CCA for Linux on IBM System z.
 Since CCA is meant to be common I was wondering if it was implemented by 
 anyone outside of IBM itself.

I don't know of any non-IBM products that are designed to support CCA, but it 
is common to all the IBM platforms.  You've apparently only found it for the 
mainframe (ICSF (z/OS) and Linux), but it is also supported - with the same 
crypto cards - on Power systems running either AIX or IBM i, and on x86 servers 
running Linux or Windows (although Windows is by special contract these days).  
You can find some info on the cards and CCA for those systems starting at 
http://www.ibm.com/security/cryptocards.

- Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: IBM Mainframe (1980's) on You tube

2013-03-14 Thread Todd Arnold
IBM had three channel-attached crypto units for the mainframes.

1977 – IBM 3845 DES encryption unit

1979 – IBM 3848 DES encryption unit - faster than the 3845, and added Triple-DES
   (yes, IBM already had Triple-DES in its products in 1979!)

1989 – IBM Transaction Security System (TSS) which included the 4753.  The 4753 
was the first product to offer the CCA architecture, and it is the ancestor of 
all of the other crypto processors such as the Crypto Express cards.

Todd Arnold

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Secure Encryption Keys vs Protected Keys

2013-03-14 Thread Todd Arnold
I just discovered this discussion group, and I thought I'd add a little bit of 
information to the discussion.  I am a lead architect in development of the IBM 
crypto coprocessors (Crypto Express, etc), and in design of the CCA 
architecture and its verbs.  I also happen to have been deeply involved in 
design of the protected key support.

So here are a few random things that might make it clearer.  Many of you have 
made educated guesses, many of which are right, but I wanted to simply state 
the facts from the viewpoint of someone who should hopefully know them.  :-)

As described elsewhere, use of protected keys DOES require the Crypto Express 
coprocessor.  The key starts as a secure key (wrapped by the CEX master key).  
The CPACF firmware sends this to the CEX, where it is decrypted using a special 
instruction that is not available to normal application programs.  The 
resulting cleartext key is sent directly from the CEX to CPACF and can never 
appear anywhere in the system that application programs or the O/S can ever see 
it.  Thus, it stays in hardware in the mainframe.  This is what makes it much 
more secure than anything the application program, O/S, RACF, etc. could do - 
nothing can get to the cleartext key, even though it is in the machine.  

CPACF generates a fresh wrapping key when it starts, and uses that to wrap the 
cleartext keys that come back from the CEX.  Since that wrapping key will 
change when CPACF starts up next time, the CPACF-wrapped keys are no good for 
long term use - they have to be re-decrypted and re-wrapped by CPACF the next 
time the system starts.

Once the key has been unwrapped by the CEX and sent back to CPACF, the CEX is 
no longer involved in the protected key operations.  The CPACF-wrapped 
protected key gets sent to the CPACF when you need to use it, and the CPACF 
unwraps it and performs the desired operation.  Thus, the protected key 
operations are extremely fast, but they are slightly slower than clear key 
CPACF operations since there is an extra step of unwrapping the key.  
Obviously, if you encrypt a huge block of data, this extra unwrap operation 
will not have nearly as much impact as if you encrypt a tiny block, since it's 
only done once for the block in either case.

In regard to synchronous vs. asynchronous...  This is really from the 
perspective of the host CPU.  A synchronous operation is one like any regular 
CPU instruction (add, move, etc.).  The CPU executes a machine instruction, and 
at the end of that instruction the result is available.  For an asynchronous 
operation, on the other hand, the CPU executes an instruction that sends a 
request off for execution somewhere else (hence the name coprocessor), and 
that CPU instruction is done when the request has been sent.  Some time later, 
the coprocessor notifies the CPU that the request has been completed and the 
CPU goes and gets it.  This asynchronous method is the way the CEX's work.  
Requests are posted to queues and the CEX's read from those queues, process the 
work, and return results to the queue.

The choice of using protected key CPACF or the CEX is really one dependent on 
what your application has to do.  The protected key CPACF is VERY fast and 
really is very secure - the only way an attacker could find the value of your 
key is to attack your mainframe at the hardware level.  Nothing they can do in 
software or with any utilities or management tools will let them attack it.  On 
the other hand, there are several things that would make you use the CEX 
instead, and they are important.  The first one is that the CEX provides a huge 
and varied set of functions, while the protected key CPACF can only do simple 
encryption and MAC operations with the keys.  The second one is that the 
protected key CPACF cannot do any kind of enforced key typing or key usage 
control.  For example, you can't specify a key that can only be used for MAC, 
or one that can only be used to protect financial PINs, or...  CCA on the CEX 
has a rich set of key management and key typing features that do that.  
Finally, if you are doing any kind of bank card or payments processing, or some 
other operations, there are standards that make it mandatory that you use an 
HSM like the CEX cards.  Even though protected key CPACF is very secure, it 
does not meet the rules stated in those standards.

Todd Arnold
Senior Technical Staff Member (STSM)
IBM Cryptographic Coprocessor Development
(arno...@us.ibm.com)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: What is the justification for not using Trusted Key Entry (TKE) workstation?

2013-03-14 Thread Todd Arnold
TKE is definitely more secure than the TSO panels.  Furthermore, standards that 
are mandatory for some applications (particularly banking) make the TSO 
approach unacceptable.  Those standards say that you are not allowed to have 
any cleartext key parts pass through any unprotected general-purpose computer.  
Since the hardware and software in your general purpose computer is much less 
secure than the HSM (crypto card) that you are installing keys into, that 
computer is an easier attack target.  The assumption is that smart and capable 
attackers will capture the key parts as they travel through your mainframe, 
where they are unprotected, and thus they will not have to find a way to attack 
the secure HSM itself.  In many cases, even the terminal you use to enter the 
key parts can be easy to attack - for example, keystroke loggers.

TKE solves this by using very secure cryptographic protocols for all 
communications over any unprotected medium.  For example, there is strong 
authentication of the TKE user, and then key parts are strongly encrypted all 
the way from the crypto module in the TKE workstation to the HSM itself in the 
mainframe.  There is no point where it can be attacked.  At the TKE 
workstation, if you use the optional smart card support, the key parts are 
entered on the keypad of the smart card reader which is secure, unlike the 
keyboard on a PC.  Note that TKE performs cryptography using its own crypto 
card (with a special version of the CCA firmware) - something that obviously 
isn't in an HMC.  While I understand why some people think the HMC might be a 
good place for key loading functions, it does not have the necessary security - 
for example the embedded crypto card that prevents any cleartext or otherwise 
sensitive data from passing through the HMC computer or across the network it's 
connected to.  Furthermore, many people want their key management machine 
locked in a controlled room, while their HMC would not be restricted to the 
people who need to do key management functions.

The question is really what level of security is appropriate (or required) in 
your particular application.  There is no question that TKE is much more 
secure, but for many people the TSO panels are perfectly acceptable.

Todd Arnold
Senior Technical Staff Member (STSM)
IBM Cryptographic Coprocessor Development
(arno...@us.ibm.com)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN