Andre Zepezauer wrote:
> On Wed, 2010-11-03 at 18:54 +0100, Viktor TARASOV wrote:
>   
>> Andre Zepezauer wrote:
>>     
>>> On Tue, 2010-11-02 at 09:05 +0100, Ludovic Rousseau wrote:
>>>   
>>>       
>>>> 2010/11/1 Andre Zepezauer <andre.zepeza...@student.uni-halle.de>:
>>>>     
>>>>         
>>>>> Hello,
>>>>>
>>>>> the pkcs15init tool currently writes to cards, even when the profile
>>>>> indication (3F00/5015/4946) isn't found. That's bad, because it's highly
>>>>> possible that such a card was personalised with another library or has
>>>>> an unknown profile. In my opinion there are the following issues:
>>>>>
>>>>> 1. opensc isn't smart enough to do such things (see #252)
>>>>> 2. after a successful write operation the TokenInfo is overridden, which
>>>>>   * is incomplete and
>>>>>   * contains broken ASN1 encoding
>>>>>
>>>>> The attached patch prevents that behaviour and fixes #252. It is for
>>>>> current trunk. But should work for 0.11.13 too.
>>>>>       
>>>>>           
>>>> Fixed in revision 4853.
>>>>
>>>> I have not closed ticker #252 because I am not sure the problems are
>>>> related. (and I have not read ticket #252 in detail).
>>>>     
>>>>         
>> Neither do I.
>> It would be nice to have full logs and to get know what's going on between
>> 'Please enter Unspecified PIN ...'
>> and
>> '... cardos_check_sw: function/mode not supported'
>>
>>     
>>> The user reporting the bug has a card manufactured by Siemens.
>>> Personalisation was done by the card vendors software (HiPath).
>>> Therefore the card doesn't have the file 3F00/5015/4946 on it. With this
>>> patch applied, the output of pkcs15-init looks like this:
>>>
>>> $pkcs15-init --generate-key rsa/1024 --auth-id 01 -v
>>> Using card driver Siemens CardOS.
>>> Couldn't bind to the card: File not found
>>>
>>> This is the correct behaviour, because the profile indication
>>> (3F00/5015/4946) is missing. And refusing to modify cards without
>>> knowing the exact profile, is good practise anyway.
>>>   
>>>       
>> Imho, the main reason to use PKCS#15 is interoperability between different
>> card and middlewares in the card initialization and card using, and so,
>> OpenSC should operate with the cards initialized by other middlewares.
>>     
>
> Agreed.
>
>   
>> Probably the on-card profile indication should be removed at all
>> (afais, it's main purpose is to distinguish 'one-pin' and 'normal' 
>> pkcs15 profile).
>>     
>
> Yes, the *current* profile indication should be removed. It should be
> replaced with the mechanism according iso-7816
> (CIAInfo.profileIndication). When doing it the right way, it would
> benefit interoperability. Let me explain:
>   
I have no this ISO.
What's the difference between CIAInfo and TokenInfo?


> For example an implementation with full support of ACR (access control
> rules) could specify something like this:
> Access to an object X is granted, if A_01 && A_02 && not(A_03) has been
> verified. Where A_01 uses pin-authentication and A_02 uses
> external-authentication and A_03 must not have been verified at all.
> With different security environments it is even more complicated.
>   

Until now, in the card specification, I've seen the possibility like this:
(A_01 && A_02 && ...) || (A_03 && A_04 && ...),
on the real cards
(A_01 && A_02) or  (A_01 || A_02 || ...) 


In the real cards I have not seen the authentication objects with 
methods other then PIN to be represented in PKCS#15 structure.
(There was vague notion 'integrity-protected' in the PinFlags, but no 
the corresponding authentication object)

And so, in my mind:
-- the upper levels (pkcs#15 and pkcs#11) should deal only with PINs.
Logical operations with PINs still need to be implemented by 
OpenSC/pkcs#15,
it needs some clever interaction with pin cache, pin status ('verified', 
'blocked', ...), ...;


-- the other authentication methods are managed by the low card level 
(libopensc).
It's in this manner the SM (and soon the Ext.Auth) is implemented in the 
IAS/ECC branch.


> Not every implementation would understand this, for sure. Therefore
> profile indication could be uses to indicate a specific coverage of
> features an implementation must understand. Do you know of any such use
> of profileIndication? I would assume that such things still exists. In
> example defined by national agencies.
>   


For me the profile indication is the AID. In the IAS/ECC branch it used 
to find out the particular pkcs15init card profile .
Strictly speaking, this profile is needed only to fix ACLs for the data 
(EF or SDO)  of the new objects.

Until now, in all of these profiles (on-card applications) all the 
needed information could be found in pkcs#15 or in ACLs .

> Regards
> Andre
>   

Kind wishes,
Viktor.

-- 
Viktor Tarasov  <viktor.tara...@opentrust.com>

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

Reply via email to