---
title: WWDC2004 Session 101
framework: wwdc
role: article
path: wwdc/wwdc2004-101
---

# WWDC2004 Session 101

## Transcript

Kind: captions Language: en I guess I go over here there we go all right I came here to talk about certificates in Mac OS 10 and certificate management and so this session covers the usage of certificates and the way certificates are used and as well as keys and a lot of times people are talking about certificates they actually mean certificates and keys that the whole sum of things certificates keys and trust management etc is often referred to as a public key infrastructure or pki so I'll be referring to it by that acronym if you may so different kinds of applications use pki for different things the most common use is to identify a person or party on the other end of a connection and determine determine who they are and set up a secured or authenticated or encrypted transaction with that other party some examples of applications that use pki would be on Mac OS 10 today our mail mail uses since Panther mail support for s/mime which lets you send encrypted and sign email to people on both Macs and windows and what every other operating system out there that has s/mime support mail also uses pki for its SSL support which you would use if you were you if you were connecting to a secured imap server or a secure smtp server Safari uses a pki for SSL both for determining the identity of the remote server you're connecting to so if you're connecting to you know your online banking website it uses this the pki infrastructure on the system to determine that that site you're connecting to really is your bank and in tamper we also support clients I defend occasion which Safari also uses to authentic can use to authenticate the user to the bank or to the other sites you're connecting to what that might be using public private keys and certificates another example is VPN which is on top of IPSec and I'd be stuck uses for its security associations can use certificates and PGI infrastructure and another one that some of you may or may not know is that actually File Vault although it uses passwords for the normal operation the the way the master password for filevault is implemented which means if you create a file vault image on the system what actually happens is the first time you do that it sets with the master password which contains which is a key chain that contains a certificate and a private key and from then on you don't actually need that master password to create new images because the public key is readily available so anyone who creates a new file vault image after that can allow that solve old image to be unlocked with the private key without actually having access to the private key so some of the things you'll learn we'll start with the pki review and I'll try and explain a little bit just a Dewey high level view of what public key cryptography is and what certificates are then I'll go over our new PGI related api's and we have a few I mean we had a lot of API is already in Panther so we haven't added a whole lot but we've had some requests for some new things and we've we've listened to you guys when we've added that then there's some improved and some new PTI's views that we'll we'll show you we'll talk a little bit about keychain access and use urban security and what some of the new things have been going on with those are and we'll talk about root certificates and how mac OS 10 determines whether or not a root certificate is trusted and I'll explain why that's important later on and something else will be talking about which unfortunately this didn't make it to your CDs but we're working very very hard to get smart card support into tiger and there will be fully integrated smart card stored in tiger so and smart cards will be just like keychains so as you when we get to that portion now doing a little more detail about that and I'll also talk shortly about what it would take for if any of you are cas or representatives of CAS to get your root certificates included into either new version of Mac OS 10 or software updates I have to get closer I guess there we go so here's the pki review so what is public key cryptography I don't know raise your hands how many of you need this explanation or is everyone here security experts so I'll do this kind of quick since there's only a few people that don't really know so public key cryptography works by you generate a pair of keys a public key and a private key now the public key can be shared with anyone out there and doesn't contain any secret information the private key is is the corresponds to a particular public key and you need to keep that private key secret the private key is kept secret by the owner of that key on his machine or on a smart card or some other token public keys can be used to verify signatures so if someone finds something with a private key you can verify what was signed with the public key and private keys can be used to decrypt data that was encoded with the public key so if someone else has your public key they can sign send you an encrypted message that you and only you can decrypt but by itself public private keys are it's a really cool technology but the problem is how do you know who particular public Keeble arms to and I have to go back right well the way we do that on Mac OS 10 and there are other solutions out there but the way the most of the industry is adopted is excellent 509 certificates and when an x.509 certificate does is it binds a public key to other forms of identification and in addition it's certified by a third party so it produces a binding of your public key to some attributes about the owner of that public / private key pair and there's some other third-party that actually asserts that that binding is correct or valid well what's in a certificate well obviously the public key because that's what we're trying to bind to this other information then there's a number of attributes those attributes when athletes are there's the issuer the issuer actually refers to the certificate that certifies this particular certificate or the authority that has issued this certificate then there's a subject which is a description of the owner of that certificate or the key in that certificate both the issuer and subject are X dot 500 names which if you don't know what that means it's basically like an LDAP distinguished name type of record I mean it's actually a superset of an LDAP name but it's it's similar to that so it'll have things like this common name and an organization and you can add all kinds of different fields to it and it's really up to the issuer of the certificate to decide which fields they want to certify in a certificate and then there's a validity period in a certificate which tells you from when to when that certificate is valid in addition x.509 certificates as a version two or three or two and three can contain one or more extensions extensions are arbitrary things that can be added to certificates now there's a number of the extensions defined out there and the number of that are commonly in use some of them would be a key usage policy engine or there's an extended key usage policy extension as well which tells you well this this certificate only be used to sign things rather than to encrypt things or this can only be used for email or this can only be used for a website etc and there can be policy statements included in certificates which might contain a URL referring to a website telling you you know what it means what the fact that this authority has issued the certificate really means or what the guarantees are that they give you etc extensions fall into two categories there's a flag on an extension they're critical and non-critical extensions non-critical extensions you're allowed to ignore it's an application is processing a certificate and it doesn't understand that extension it's okay to ignore it if an extension is marked critical then you must understand what that extension means or else you should just not treat not use that certificate in your application they're very few extensions that are actually marked critical in certificates usually the ones that are are crucial to the usage of that cert and then finally there's a signature of all of the above information included in the search and the signature is using the private key of the issuer now since the certificate has an issuer there's essentially a hierarchy you can have a hierarchy from you know certificate issued by some other certificate and that certificate in turn is issued by another certificate the nice thing about certificates being signed is that they can't be tampered with if you have a certificate you can verify its validity and you can verify the issuer certificates validity and you can keep going up this chain so we call the certificates at the bottom leaf certificates and the certificates that finally certificates intermediate certificates now eventually that chain has to end and that happens when you get a certificate for which the issuer is the certificate itself and we call that a ridge certificate or a self-signed certificate and the only way you can determine whether or not a root certificate is trusted is by prior arrangement so in summary here's an example of a cert issued to Ken issued by some other Authority there's there's no real limit on how long a chain can be although there are extensions in certificates which can limit the length of the chain so as a root certificate could limit the length of a chain to two or three certificates or depending on what that's just get Authority wants to allow but so typically in applications validating a certificate will follow the chain from the leaf certificate back to a root certificate so root certificates are also known as certificate authorities and some there's there's a number of different certificate authorities that we ship I think as of 10 3 4 they're about 84 certificate authorities in the file mentioned below system library keychains x509 anchors you can actually manually add certificates to that file by if you have a root certificate on your desktop or somewhere in the finder and you double click it it'll launch keychain access and keychain access will allow you to add it to the x.509 anchors database so if for example you work at a university or some institution that has their own certificate authority it doesn't use one of the 84 that we already include you could download that certificate authority certificate to your machine and after verifying that it is the correct certificate you could add it to your keychain on your system and from then on any app on Mac OS 10 will trust certificates signed by that authority so certificates are only half the story of course and I sort of alluded to the shoot earlier certificates contain the public key but for you to be able to do something with the certificate you also need a place to store the private key and certificates because of because the fact that they're signed and they don't contain any secret information there's no real problem storing them you could store them anywhere you can store them on an ldap server you could store them you know as file on your desktop you could download them from a website etc because you can always verify their their correctness and there's nothing in there that you need to keep secret from anyone else now if you take the certificate and its corresponding private key where corresponding is the basically the private key that belongs to the public key and the certificate we refer to the combination of those two as an identity and in our API there's actually a sec identity ref object which represents the combination of a certificate and the private key now typically in key can access an identity looks like something like this you'd have a public a private key and a certificate that are paired together some examples of some applications and what they do so mail like I said uses the s/mime api's for encrypted and signed mail uses ssl to receive mail from a secured imap server or from a secure smtp server and again in mail you can actually view the certificates if there's something wrong with the connection etc some of the it's delivered in Panther I think the mail team is actually working on some improvements and with some of the stuff ken is going to demo to you later you'll actually see some of the new UI we have that will be integrated into mail as well secure transport something's been around for since OS 9 I think or in some form since I was 9 he is used both by a safari and mail for SSL and TLS it supports you know every variant of SSL v1 v2 v3 TLS and auto negotiates between all of them since the 10 dot 323 update we also support clients itís indication and because secure transport supports it then every app that uses secure transport actually gets us for free now see if Network uses to gear transport under the hood so guess what every app that uses see if network also gets these features for free and like when we add smart card support every app using CF network or web kit which uses CF network will also get smart card support for free so now to talk a little bit about the new AP is there really only are two completely new AP is and they are sexy keychain item import and SEC teaching item export what they allow you to do is to import and export certificates and keys to and from keychains and we support variety of formats pretty much everything out there we could find that we thought would be needed by anyone is in there so we can export to raw openssl with with PEM ascii armor or without support picus of 7 pkcs12 you can even import and export ssh keys so if you had an ssh key you could import that to your keychain or store it on a smart card take it to another machine and use that ssh key there and there's a some additional formats that you can you can store either individual items and some of the formats allow you to store multiple items the import function actually can auto detect the type of content that you're importing from so if you're writing an application and you're trying to allow you know importing of arbitrary things you could just call import with pretty much all wildcard parameters and it'll figure out what the format of the input data is or if you want to specifically limit it to pkcs12 you can you can do that so here's a little synopsis of what the calls look like the pretty basic set kitchen item export you pass it an array of items which are all kitchen items which could be either certificates or keys or some combination thereof then the format in which you want the items exported which would be SSL or Pikachu 12 or whatnot then there's some flags which example of flag would be whether or not you want it base64 encoded or PEM armor encoded if you're exporting keys you have you passed a pointer to instruct with key params which contains some additional details about what things you want to do with the keys and then the last parameter is the you get of the result which contains basically a CF data containing the exported items now this may or may not work if you're exporting say keys from a smart card if the smart card doesn't allow you to export the key it won't work obviously but given that the permissions are correct the export will work now if you're exporting a key from a keychain typically because keychains have access control lists the user will be prompted with some kind of dialogue asking him for permission to export that key import looks pretty similar it has a couple more parameters because it has it's a little bit more complicated the first rounder is the data which is going to see if data containing the big blob of information you want to import then there's a filename parameter which is optional but that can be a hint if you don't know what the format is that you specify the filename the import function will use the extension of the file name to guess what the format might be then there's a format parameter which is both input and output which could be because of 12 or SSL or whatever the format is that you that you think the data is in and on successful completion that'll actually contain the format that the data really was then there's an item type which is both input and outputs that can be hint you could say oh this is a certificate or this is a key or I don't know and on completion the item type will say well this was a certificate or this was actually a combination of multiple items or this was a single key and then some flags and flags can again be things like whether or not it's a ski armored [Music] on import you have this pointer to keep around again if you're expecting to import Keys things in there for input would be like what the permissions you'd want on those keys to be after they've been imported etc then you can obviously specify keychain which to import the items to and you can also optionally specify a output array in which it'll return the items that were imported so how do you import export items well on the developer CD you have today keychain access lets you do it there's an import menu and there's an export menu in file so you can just go to teach and access and do it right there there's also a command-line tool user bin security which has an import and an export command and there's actually help built in to use your food security is also a man page so user been security will let you do it and then in addition to that you could use the api's that i just explained if these these two options aren't good enough there's a documentation I don't think there's documentation on the WWE our site yet but there is explicit comments in the SEC import expert H header in the security framework so if you want to take a look that's on your CDs that you received yesterday or monday so here's an example of how you use the command line tool so in terminal if you wanted to export all the certificates from your login keychain in pem format for example as a p case of seven law you'd say security export well what it says there so with that I'd like Kim to come up and show you how to do the same thing in keychain access and he'll show you some other things as well can I have let the handoff thanks Michael can we have the demo on screen Thank I'd like to start by showing you some of the new additions that are in progress to the keychain access utility you've had a chance to fire this up off of your tiger preview you notice it looks a little bit different than the one that's in 10 dot 3 one of the first things you might notice is there are now categories over here on the left-hand side so instead of looking at all the items in my keychain i can just look at my passwords or just my certificates or keys but when you've been using the keychain for a while and i've been using mail and I've built up an awful lot of certificates here and it's kind of hard to find them so we've also added a search feature so I can look for if i'm going to send mail to murph i can just type in verse name here and there's no sir i can look at it sir maybe I want to see like where all the fought certs are so i'll type in the thought and you know that it's returning the certificates that it finds across all the key chains so i have a copy here and one of my key chains and i have the other ones that are in the the anchors database so let me look for stuff that contains my name here and i got some of my stuff i have the certificate here and i have my private key and as Michael pointed out those combination of things make up my pki identity so I can take advantage of that new API that he talked about set keychain item export just by going to the export menu here and keychain access so I'll select that and let's make a file called chem pki and I have some options here I can export things as a cert as Pam armor what I want when i'm exporting my private key is to put it in a p12 file or personal information exchange which is actually encrypted so I'll go ahead and save that it asked me for a password you actually encrypt that file so I'll give it a few / secure password here go ahead and say okay so we look out here and it's created a p12 file and that's a standard format for information exchange that could be read by something like Mozilla can be read on other platforms I can copy this over to my windows box and import it there let's double click it and import it into a different key chain here so I double click it it brings up keychain access and ask me where I want to add it let me add it to my login keychain and of course I have to enter that password again which decrypts the file I'll go back over here is the login keychain and I see that it's added those things from the p12 file and I can look at it and sure enough it's my certificate and my key so let me tell you a little bit about this certificate view the keychain access is showing you it's a Coco view and it's reusable it's called SF certificate view now you have some flexibility with this view keychain access here is just showing a kind of a summary view with the essential information about the certificate the name and who issued it but I can also open it up and get a different instance of that SF certificate view that shows me a lot more information shows me all the things that are inside the cert and I can choose to disclose or hide the details and some of the trust settings all these things are controlled program programmatically so your application can use this view and decide to show just a brief summary view or the entire contents of a certificate so let me show you another example of how you might use that view in an application this is the mini browser which is a little sample application that comes with WebKit to show you and demonstrate WebKit I because it's WebKit it is built on top as Michael said built on top of CF network and and secure transport so you get all these things for free like HTTPS I can go to a site that uses ssl and this all just works with WebKit so let me go to the store here let's see if that will work unfortunately the little button i added is not showing up so i think that the demo gods are not smiling at me today let me try going to a different site here which is the University of Washington has a web page and not to sing 11 out in particular but they're an example of a site whose root certificate is not part of the default set that is in the x.509 anchors file and is trusted by default with mac OS 10 so normally you would have to go and add that certificate out-of-band so we have a new view a pki view called SF certificate trust panel and what i've done is i've gotten a certificate and i've put up this panel with some text as I supplied and it's basically asking me for permission because it could not verify the certificate chain and this panel has some features I can go ahead and disclose the certificates that are involved and I look at it and I see yes this is the site at wha to the University of Washington and it's signed by their root certificate we've got an option here as I said normally the way that you would go and trust this certificate is out of bounds by having to add the certificate in 2x11 I anchors this isn't quite working yet but we're working on a way to actually bring that process in band a little bit for the user so they can just say go ahead and remember that I said to trust this so I can click continue and it goes ahead and loads that page so let me show you just real quickly what it took to implement that in this mini browser I just went and added a function or a method here to the sample document called evaluate trust and the first thing evaluate trust does is it makes a sex trust object by calling sec trust create with certificates so i take those server certs that I got back from the making the connection and I make a sec trust object which kind of encapsulate all of that information the policy that I'm interested in which is FSL and then the next thing I do is evaluate it by calling sect trust evaluate and that will go off do all of the searching for the root cert of any other certs in the chain that it can find does the cryptographic evaluation and returns a result and that results the interesting thing there are a number of them I can have explicitly denied or explicitly allowed the certificate in advance but the interesting error that returns is a recoverable trust failure and those are cases where for example the root certificate is expired or it's not present in the x.509 anchorage database but this is something that you can go ahead and override you can ask the user what to do so my method here asks the user what to do it puts up a message about many browser being unable to verify and then it creates an instance of this view SF certificate trust panel I set up the title of a button you have complete control over the message and the titles of the buttons that appear and then I just put up a sheet on the window asking the user what to do with a selector that will get called when they dismiss it that will go ahead and either load the page or not load the page and that's it that's all the code I had to add to get that working so if I could have the the other slides back for a moment could we switch to think I probably have to move over here and make it work yep so there are three views that i showed you that's a certificate view being the base one the kind of building block one and then certificate panel that's built on top of that the thing we just looked at was the SF certificate trust panel which lets the user make a decision about trust one that they did not show you was the choose identity panel which lets you pick from multiple pki identities and I'll get into that in a minute all of these are cocoa classes that have been available since 10.3 but we're adding new functions adding methods and improving the functionality and also improving the look of them so that they have features like progressive disclosure where you're not pummeling the user with all the information and a certificate right away but it's there if they need to look at it here's an example of the one in the front there is the SF certificate trust panel and this is just a sample use in Safari where it would put up a message you'd have the option to show the certificates involved and then to continue with the operation or two to cancel so if the certificate view is pretty flexible you can just show a summary view with the basic information the name of the cert you can add programmatically little turn down triangles that progressively show you more and more detail and another thing that I missed but you can actually grab hold of that serve in the view and directly export it where you can drag it to the finder to directly export a certificate file you can drag it to a mail message to export either in pem armor or not the certificate and it gives you a lot of flexibility that's all built into the view you get that for free the SF certificate panel is used in cases where you just want to show certificates without necessarily needing the user to make a decision so it's for informational purposes once the operations taken place for example maybe you've got a website like we saw there where the operation was successful the certificate chain verified but you actually want to be able to see that and know what certificates were involved you can choose to display just one certificate or the entire chain and you can also add certificates that aren't part of the chain when you're showing that view there is a standalone interface to that panel or you can have a sheet interface as we saw in the demo now the SF certificate trust panel is the one that you'll want to use when you need to make a trust decision you don't have enough information the certificate chain was not necessarily valid or maybe one of the certificates expired there was some problem with it and you want to ask the user what to do so this panel does all of the hard work and the heavy lifting for you as far as showing you the certificates and giving you the tools to be able to ask the user what to do again like the previous panel it comes in a standalone panel or in a sheet interface version and you have complete control over what text shows up and what the buttons look like the SS choose identity panel is one that they didn't show but very similar to those in that if you need to select from multiple identities and this is happening more and more for example users have maybe a free email certificate and then the university or the company or some institution will also issue them a certificate and so they could be signing or encrypting things with they have a choice of keys and certificates to do that with so we provide you a panel that you can bring up and to display the available identities and to ask the user to pick one and then it returns the identity that they chose again with progressive disclosure so you see the names of the identities and then the user can choose to show all the details or some of them again it's a standalone version or sheet and you have control over what buttons look like so with that I'd like to ask my it will come back up and he will tell you a little bit more about the x.509 anchors and how their trusted thank you Ken okay so I talked a little earlier about there's the x.509 anchors file on Mac os10 which determines which contains all the root certificates that are trusted by the system we've actually started doing some software updates to that file and we've been very careful when we did the software update to make sure we didn't just overwrite the anchors database but we add the new anchors that we've gotten approval for to that file without blowing away any anchors that you might have added yourself and that's also true when you upgrade from pan through the tiger it'll it'll preserve the anchors database on your system now which wasn't true going from Jaguar to Panther so we'd really like you to talk to us if your a/ca or if you somehow want to get your research into the system about getting them added to mac OS 10 and the person to talk to would be Craig Keithley and I'll put his contact information up at the end of the session one thing I forgot to mention earlier on in the session was that mail uses the SM I'm api's sorry the SF I'm SP is and the reason of the s- left still SBI is because we really haven't haven't gotten a lot of feedback from developers asking us to make apps my man API if you're a developer of a mail client and you want to see us might become an API i encourage you to bring that information to the feedback forum so next up smart cards but i promised in the beginning smart card support in OS 10 there's some good news and there's some bad news the good news is we're actually going to be doing something revolutionary here compared to any other platform the smart card support that will be no s10 will it'll be horizontal smart card sport it will be across the entire RLS supported for you can use the same smart card to login to authorize access to you know certain settings in system preferences use it in mail use it in Safari you can use it to for your screensaver it could be used in a server to to store server server keys or certificates on any apps using CSA or CD essay based api's meaning the keychain api's the secure transport api's or any higher level api's will will benefit from this and will have single sign-on with a smart card so you can you've entered the smart card enter your PIN ones to login and you won't have to re enter your PIN every time you do something with the card unless you choose to because you'll actually be able to set access control list entries on that card which the security architecture will actually fan out access to that card to multiple applications and gate access to it using access control lists previously on Mac OS 10 we've only really had a few select vertical smart card solutions that were based on PCs see our new architectures still based on PCs see that the differences we're actually sharing access to the card pcsc didn't give you any abstraction that let you support multiple cards it just abstracted basically the reader so you plug in a USB reader and PCs you would deal with loading a driver for that but if you had three different cards you'd have to have three different libraries in your application to talk to those three different cards that's all over that will all be over when Tiger ships so here's an overview of what the architecture looks like and on the top the green box there is the applications I guess we don't get a cursor here so well the green box on the top are your applications which are either sitting on top of the sect api's or secure transport or CF network or WebKit or whatnot which in turn is layered on top of cdsa which is cssm is the API part of cdsa that sits on top of a new plug-in module that that's going to be in Tiger which is the cs the SD cSPD l-sb stands for security d security d is what used to be called security server in panther we've renamed it to security d in tiger so the SDC s PDL actually represents a CSP which stands for cryptographic service provider and dl which is a data store library module you can think of the CSP part as anything to do with cryptography encryption decryption signing verify all that goes through the CSP part the DL part is anything to do with finding items or records or modifying items or records so searching for certificate or a key happens through the DL interface using that key to actually do something goes through the CSP interface so if your app was actually written directly to cssm which I doubt very few of your applications will be I think you'll have to blow you'll have to actually modify our app to be aware of the new smart card CSP dl if your app is using any of the higher level API is it won't require any changes then security be actually talks to pcs CD now the only communication really between security DM pcs CD is that security watches for token insertion events PCF CD tracks the readers on your system so if you plug in a USB reader it'll notify security of that and security will say ok fine whatever when you actually insert a smart card into one of those readers pc CD will notify security when that happens security will try and get a code off the smart card to try and identify that card based on that it'll narrow down to a selection of one or more different token d instances that are on the system so each token d that that is on the system can be seen as a driver for a particular token and token being a smart heart so each token d supports a particular class of tokens so you can have 14 cards of manufacture a another 14 cards for manufacturer be etc so security woman launched the ones that are candidates for that card and asked them to to tell security whether or not they support that particular card that these are just inserted and when it finds the one that actually supports the card it'll keep that loaded and token de will establish a session to the card so inside token d it looks kind of like this token d itself uses pcsc to talk to the card so the pcc framework which is unchanged from panther pretty much the framework at the top security token d framework for tiger is still going to be an spi but we encourage any anyone who wants to develop their own smart card solutions to come and talk to us either after this session or during the feedback forum or contact craig because we can probably see you with something to get you started on developing your own token d and we might even be able to do something where we can ship support for additional cards and tiger initially we want to support three or four different cards but the idea is that all you have to do is drop a new token d on the system for a new card type and the card will be supported by any app that uses these api s so the piece in the middle is the actual guts of token d and really the one we're shipping is called token d muscle which if any of you are familiar with the muscle card api which is something we ship they'll support three or four different types of cards that have been formatted in a certain way one card in particular that will be supported is the CAC card that the u.s. government uses and there's a couple other cards that will be supported as well so here would be an example of a third-party token d so you haven't you know that you might have noticed you haven't seen pika social Evan anywhere in this architecture well that's cuz it's really piqued assess 11 is really not an abstract layer it's more in a library layer to talk to one particular card so if you had a peek assist 11 library to talk to your brand of card already it would take very little work basically the part in your token d would be the only code you have to write because you already have the peak assist 11 driver that uses the PCF see framework on Mac OS 10 and you just have to write a little bit of glue code to transition from the token d interface to security d down to pekin / 11 those two interfaces are actually fairly similar the security token the interface is somewhat closer to cdsa than PICUs 11 but they have very similar sets of calls and one of the things we're looking at doing in the future is actually making the your token d-box be part of security token d meaning that if you already had a peek yourself 11 driver you might not have to write any code to provide a token d although they'll probably be a little bit still because the auto-discovery that we're doing is not something picus 11 supports so here's the bath units or at least potential bad news there are a couple of existing smart card solutions out there now all those existing smart card solutions were vertical solutions in that you had you know one or two applications that knew how to load the driver for a particular card and talk to that particular card or cards the problem is with the new architecture because we're doing single sign on as soon as we ship a token d that supports that card it'll automatically get loaded when the cards inserted and it will open a session to the card now if the card is single session that means that your vertical app will not be able to coexist with the token D on the system because the card doesn't support to even though pcsc will let you do it the card won't support two apps directly accessing it apps written to the higher-level api's will because the whole reason we're doing this architecture is to have cards that that can only do one session still be capable of being shared between multiple applications at the same time if this is really really a big problem for you we'd really like to hear this at the feedback form because we have some ideas of things we can do to potentially get around this but you would lose a single sign-on when you insert your card when you launch your vertical app basically so but obviously the best thing to do is to transition these apps to the new architecture and tiger because then you get support in mail and Safari and everything and not just in that one app so in particular the cat cards and other cards supported by muscle will be supported natively in tiger so we'll have this problem because I don't think any of those cards are multi-session so and again talk to us about adding support for other types of cards into OS 10 because I mean wouldn't it be cool if you could use safari to do your client side off with you know your custom card that you're using and mail to send secure mail and log in and use screensaver etc so I don't know how many of you are actually like smart card developers out here but for those of you that aren't and that just want to know what to do to get smart card support in your applications well either you you basically do what we've been telling you to do for the past four years use our high-level crypto API and if you're using a cdsa like I said you'll have to be aware of the new CSP dl that's there and you'll the normal way to do this using cdsa is using the module directory services to discover which modules are available on the system up until Panther we've only shipped one module of each type in Tiger will start introducing multiple modules of different types so you'll have to scan the directory service the module directory service to figure out which modules are there if you're programming at the CTSA level if you're programming at the SEC API level so sec certificates that keychain items set key etc don't have to worry about this if you're using secure transport it'll just work using see if network or WebKit of this work so you're set your application will automatically support smart cards so for more information and if you want to talk to us please contact craig Keithley and with that I'd like to bring Craig on stage and he's the security and I Oh technology evangelist
