I don't know what you had in mind with an "USB P11 token" but in case you would like to participate in an effort making sort of a USB P11 token there is already a project to dig in to:
http://webpki.org/auth-token-4-the-cloud.html If you take a deep peek in the extensive documentation you will note that it is not a P11 token; it is a token that will run P11 for "using" keys, but an entirely different system for "provisioning" keys. The reason for this division is that P11 represent a dead-end for provisioning since it doesn't support SM (Secure Messaging). If you look into the RI (Reference Implementation) of the token you will see that SM is piece of cake. Converting the Java code to ARM C/C++ shouldn't be much of an issue, it is only storage in NVM that requires a bit more thinking to not end-up with wear out problems. Just drop me a line if you are interested. I'm particularly interested in USB, P11, Mac, Electronics, and Browser competences. An unusual (unique?) aspect of the mentioned project is that it is designed to be integrated in browsers. Although maybe not exactly what you guys are looking for, the prime target for the project are people who are NOT interested in security or at least know very little about it! Since they represent 99% of all users it looks a bigger market :-) Anders On 2011-04-26 11:28, Alon Bar-Lev wrote: > On Tue, Apr 26, 2011 at 11:45 AM, NdK <ndk.cla...@gmail.com> wrote: >>> I was thinking microcontroller size, but if you're using a more >>> powerful USB device hardware that can run Linux then it could be >>> realized pretty quickly using softhsm. >> Since speed is quite critical, I was thinking to use something like G20 >> Fox Board ( http://acmesystems.com/ ). It's surely not cheap (anyway it >> can be WAY cheaper than other solutions), but it's tiny, fast (400MHz >> ARM9), can work as USB device (and host, maybe to keep a master key on a >> standard smart card used only once at boot time), can accomodate a >> (small) display and many keys, and there's a module with an FPGA if you >> want/need to implement some crypto acceleration in HW. >> There's even an Ethernet port (better not to use it... :) ). Too bad USB >> runs at most at 12Mbps, but that shouldn't be an issue. >> >> Didn't know softhsm... I'll have a look at it. > > There is no reference for this board in the link you sent. > > It would be a great solution if the device will be very small and run Linux! > It would be lovely to have PIN keypad and BIO reader on board as-well. > > However, I want to raise some issues. > Developing an implementation that directly accesses the USB device > impose fundamental security issue. As it requires the user to have > special privilege. It is true that on modern linux, udev can deal with > some device privilege settings, but it would be better to emulate some > standard interface, such as serial over USB. > > Serial over USB has the advantage to work on all modern operating > systems, including Windows (PKCS#11 only not mini CSP). While > implementing all logic within userspace. > > It will even be possible to access these devices in remote terminal > services of Windows. > > Serial over USB has also the potential to be a very secured implementation. > > Then you need to deal with device sharing. Stateless implementation > (connect, operate, disconnect) would solve this, while creating some > authentication cookie with the device. > > And need to deal with channel encryption.... secured messaging is not > this strong... > > And last, power management should be applied, so device will be able > to be powered down while inactive. This should be simple if stateless > mode is used and if authentication cookies are stored in non-volatile > memory. > > After solving the above, it is all about PKCS#11 API serialization. > Most of the PKCS#11 objects may be loaded into the host computer. Only > private key operations should be serialized and sent to device in > runtime. > > Proper definition of the communication interface of the device will > enable people to provide compatible hardware. Which would be great. > > Alon > _______________________________________________ > opensc-devel mailing list > opensc-devel@lists.opensc-project.org > http://www.opensc-project.org/mailman/listinfo/opensc-devel > _______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel