Download presentation
Presentation is loading. Please wait.
Published byBrianne Nelson Modified over 9 years ago
1
The Windows NT ® 5.0 Public Key Infrastructure Charlie Chase Program Manager Windows NT Security Microsoft Corporation
2
Public Key Enables… Secure Intranet Certificate enrollment Certificate enrollment Smart card logon Smart card logon Signed objects Signed objects Secure Remote Access Strong authentication Strong authentication Virtual Private Networks (VPN) Virtual Private Networks (VPN) Data protection Data protection Secure e-mail (S/MIME) Secure e-mail (S/MIME)
3
Leveraging The Windows NT 5.0 PKI Deploy Windows NT 5.0 Certificate Services Certification Authorities Certification Authorities Certificate enrollment and policy Certificate enrollment and policy Strong authentication Smart card logon (Kerberos, EAP/TLS) Smart card logon (Kerberos, EAP/TLS) Data protection File system, transport layer File system, transport layer Code sign using Authenticode Win32 ® controls, CABs, catalog files Win32 ® controls, CABs, catalog files
4
Active Directory Certificate Services Reader SC Cert Clients Application Services Public Key Infrastructure
5
Enterprise Root CA Enterprise Sub CA Forest of Domains Enterprise Root CA One Way Trust Standalone CA Standalone Domain Two-way Trust PKI Trust Relationships
6
Secure Web Server Active Directory Reader Client SC Cert Certification Authority HTTP with SSL/TLS CertificateEnrollment CertificateMapping Secure Intranet Application
7
Active Directory Reader SC Cert Client Root CA Subordinate CA Certificate Request and Installation Publish Certificate Certificate Enrollment
8
Microsoft Certificate Enrollment Control Signed ActiveX ® control Scriptable interface using HTML and Visual Basic ® Script or Java ™ script Certificate Services SDK on MSDN Certificate Services SDK on MSDN Built on PKCS#7 and PKCS#10 standard messaging formats Installs certificate into system store for use by all applications Supports smart cards Supports smart cards
9
Code Sample: Certificate Enrollment Control Client Set certificate values, extensions Set certificate values, extensions Call createPKCS10() method Call createPKCS10() method Submit request to server Submit request to server Call acceptPKCS7() method Call acceptPKCS7() method Server Process PKCS#10 message Process PKCS#10 message Return PKCS#7 message Return PKCS#7 message
10
My CryptoAPI User DS CA Root Smart Card CSPDefault Store Provider LDAP Physical Store Layer Logical Store Layer Smart Card Services Trust Certificate Storage Model
11
SSL Protection Using SSPI Server Open server certificate context handle Open server certificate context handle AcceptSecurityContext() until handshake completes AcceptSecurityContext() until handshake completes EncryptMessage(), DecryptMessage() EncryptMessage(), DecryptMessage() Client Open client certificate context handle Open client certificate context handle InitializeSecurityContext() until handshake completes InitializeSecurityContext() until handshake completes DecryptMessage(), EncryptMessage() DecryptMessage(), EncryptMessage()
12
End-entity Cert Root CA Cert Issuing CA Cert Certificate Verification Build certificate chain CertGetCertificateChain() CertGetCertificateChain() Apply policy to the chain CertVerifyCertificateChainPolicy() CertVerifyCertificateChainPolicy() Make trust decision based on status
13
PCCERT_CONTEXT pCertContext;... fresult = CertGetCertificateChain( HCCE_CURRENT_USER,// chain engine pCertContext,// certificate context NULL,// current system time NULL,// additional store &ChainPara,// parameters to use 0,// processing flags NULL,// reserved &pChainContext);// context to built chain Code Sample
14
PCCERT_CONTEXT pCertContext;... fresult = CertVerifyCertificateChainPolicy( CERT_CHAIN_POLICY_BASE,// policy to use pChainContext,// chain context &PolicyPara,// additional checks &PolicyStatus);// chain status...
15
Verification and NT user account lookup Logon request using Public Key Kerberos Ticket Granting Ticket (TGT) Key Distribution Center (KDC) Active Directory Reader Client SC Cert Smart Card Logon
16
Code Signing Process Enroll for Code Signing certificate VeriSign or internal CA VeriSign or internal CA Sign your objects Use signcode.exe for executables Use signcode.exe for executables Internet Client SDK Internet Client SDK Use makecat.exe for all other types Use makecat.exe for all other types Windows NT 5.0 SDK Windows NT 5.0 SDK Publish
17
Authenticode Individual objects Most flexible, highest overhead Most flexible, highest overhead Archives (CABs, self-extracting exes) Efficient for multiple, related objects Efficient for multiple, related objects Signature bound to container Signature bound to container Manifests (catalog files) Efficient for large collections Efficient for large collections Useful for signing different file types Useful for signing different file types New for Windows ® 98 and Windows NT 5.0 New for Windows ® 98 and Windows NT 5.0
18
Secure Remote Access Strong authentication Virtual Private Networks (VPN) Data protection Secure email (S/MIME)
19
Reader Client SC Cert Remote Access Server Internet LDAP with SSL/TLS EAP/TLSLogon Active Directory PPTPIPSEC Remote Access Application
20
Strong Authentication For Dial-up Networking Public key certificate accepted by Remote Access Server (RAS) User certificate store User certificate store Smart card Smart card Transport Layer Security (TLS) Authentication protocol for PPTP Authentication protocol for PPTP Extensible Authentication Protocol (EAP)
21
Virtual Private Networks Client passes user certificate to server to authenticate connection Supports EAP/TLS and smart card Supports EAP/TLS and smart card Data encrypted between connection points Point-to-Point Tunneling Protocol (PPTP) Point-to-Point Tunneling Protocol (PPTP) Layer two Tunneling Protocol (L2TP) Layer two Tunneling Protocol (L2TP) IP Security Protocol (IPSec) IP Security Protocol (IPSec)
22
Internet Reader SC Cert Outlook 98 Active Directory Outlook ™ Express Retrieve user’s certificate (LDAP) Exchange 5.5 SP1 S/MIME Secure Email
23
Signing Messages Get handle to default provider Get context to signing certificate Include other certificates (optional) Set algorithm info CRYPT_ALGORITHM_IDENTIFIER CRYPT_ALGORITHM_IDENTIFIER Set signature info CRYPT_SIGN_MESSAGE_PARA CRYPT_SIGN_MESSAGE_PARA Call CryptSignMessage()
24
CRYPT_SIGN_MESSAGE_PARA SigParams; CryptSignMessage( &SigParams,// signature parameters FALSE,// signature not detached 1,// number of messages MessageArray,// message(s) MessageSizeArray,// size of message(s) NULL,// *get buffer size &cbSignedMessageBlob)// size of buffer Code Sample
25
Verifying Signed Messages Get handle to default provider Set signature info CRYPT_VERIFY_MESSAGE_PARA CRYPT_VERIFY_MESSAGE_PARA Callback function to get signing certificate from system store Callback function to get signing certificate from system store Call CryptVerifyMessageSignature()
26
Code Sample CRYPT_VERIFY_MESSAGE_PARA VerifyParams; CryptVerifyMessageSignature( &VerifyParams,// verification parameters 0,// signer index pbSignedMessageBlob,// signed blob cbSignedMessageBlob,// size of signed blob NULL,// decoded msg buffer NULL,// buffer size NULL)// pointer to signer cert
27
Developer Tools Windows Platform SDK Base Services Cryptographic Service Providers Cryptographic Service Providers CryptoAPI 2.0 CryptoAPI 2.0 Certificate Server Certificate Server Smart Card Smart Card Security Security Visual Studio ™
28
Summary Secure Intranet Client and server certificates Client and server certificates Smart card logon Smart card logon Code signing Code signing Secure Remote Access Certificates for dial-up networking Certificates for dial-up networking Secure e-mail using S/MIME Secure e-mail using S/MIME Transport level security Transport level security
29
Call To Action Leverage the Windows NT 5.0 Public Key Infrastructure to secure your applications Use CryptoAPI to add encryption and signed messaging to your applications Use SSPI to add channel data protection to your applications Use Authenticode to sign your code
30
Resources Windows Platform http://www.Microsoft.com/windows/ http://www.Microsoft.com/windows/ Windows NT ® Server http://www.Microsoft.com/ntserver/ http://www.Microsoft.com/ntserver/ Security Advisor http://www.Microsoft.com/security/ http://www.Microsoft.com/security/ Developer Information and Tools http://www.Microsoft.com/msdn/ http://www.Microsoft.com/msdn/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.