Although not currently directly related to OpenSC, this project addresses
the same needs but in a *very* different way.

The idea is creating a standardized cryptographic container that is only 
intended
for authentication to services on the Internet which means that it is 
useless as the
foundation for a health-card or transportation token.

Although some smart card purists will tell you that smart cards already are
standardized, the realty is that there is gazillion of framework standards,
each giving you an option to "be different".  If that were not a fact OpenSC
would (more or less) be a redundant project since you would only need to
write a card driver once.

So this scheme has a high-level API that is similar to PKCS #11 but not 
(at all)
identical since PKCS #11 offers no support for E2ES (End to End Secured)
provisioning.  In theory you could add this as extensions but I consider 
that
a difficult task since PKCS #11 is already quite complex, and has its own
way of looking at the world of cryptographic keys.  PKCS #11's SO
(Security Officer) role is "virtualized" as a networked token-to-issuer 
relations.
Note: each issuer is an SO for the stuff *they* provisioned only!

My solution was creating a specific "Provisioning API" and then have a 
fairly
simple "User API" which can be mapped to PKCS #11, JCE, CryptoAPI etc.

Unlike for example GlobalPlatform's E2ES scheme, the KeyGen2/SKS concept
offers fully *atomic* (transaction-based) provisioning sessions which 
means that
under normal circumstances (absence of a power-fail exactly during 
"commit"),
you will never end-up will a broken or half-provisioned token.  It also 
mean that
the issuer gets full insight (through a *cryptographic proof*) in 
whether the
provisioning succeeded or not.

In contrast to most smart card schemes, this concept is also intended to 
work
in mobile phones with embedded security hardware.  In such configurations
there is no card driver, the secure operations rather take place inside of a
dedicated compartment of the CPU itself like in ARM's TrustZone.

In addition, the scheme also supports Information Cards, which I think could
be important since it combines PKI and federation in a nice way.

Everything is in a rather early state but it is already working as an 
emulator
and concept verifier.

The next steps include writing a browser extension supporting the 10-pass
KeyGen2 provisioning/management protocol as well as committing SKS to 
USB hardware.

Anders

_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to