Documentation Home
> Oracle Solaris Security for Developers Guide
Oracle Solaris Security for Developers Guide
Book Information
Index
A
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Preface
Chapter 1 Oracle Solaris Security for Developers (Overview)
Overview of Oracle Solaris Security Features for Developers
System Security
Network Security Architecture
Chapter 2 Developing Privileged Applications
Privileged Applications
About Privileges
How Administrators Assign Privileges
How Privileges Are Implemented
Permitted Privilege Set
Inheritable Privilege Set
Limit Privilege Set
Effective Privilege Set
Compatibility Between the Superuser and Privilege Models
Privilege Categories
Programming with Privileges
Privilege Data Types
Privilege Interfaces
setppriv(): for Setting Privileges
priv_str_to_set() for Mapping Privileges
Privilege Coding Example
Privilege Bracketing in the Superuser Model
Privilege Bracketing in the Least Privilege Model
Guidelines for Developing Privileged Applications
About Authorizations
Chapter 3 Writing PAM Applications and Services
Introduction to the PAM Framework
PAM Service Modules
PAM Library
PAM Authentication Process
Requirements for PAM Consumers
PAM Configuration
Writing Applications That Use PAM Services
A Simple PAM Consumer Example
Other Useful PAM Functions
Writing Conversation Functions
Writing Modules That Provide PAM Services
Requirements for PAM Service Providers
Sample PAM Provider Service Module
Chapter 4 Writing Applications That Use GSS-API
Introduction to GSS-API
Application Portability With GSS-API
Security Services in GSS-API
Available Mechanisms in GSS-API
Remote Procedure Calls With GSS-API
Limitations of GSS-API
Language Bindings for GSS-API
Where to Get More Information on GSS-API
Important Elements of GSS-API
GSS-API Data Types
GSS-API Integers
Strings and Similar Data in GSS-API
Names in GSS-API
Comparing Names in GSS-API
GSS-API OIDs
Mechanisms and QOPs in GSS-API
Name Types in GSS-API
GSS-API Status Codes
GSS-API Tokens
Interprocess Tokens in GSS-API
Developing Applications That Use GSS-API
Generalized GSS-API Usage
Working With Credentials in GSS-API
Acquiring Credentials in GSS-API
Working With Contexts in GSS-API
Initiating a Context in GSS-API
Accepting a Context in GSS-API
Using Other Context Services in GSS-API
Delegating a Credential in GSS-API
Performing Mutual Authentication Between Peers in GSS-API
Performing Anonymous Authentication in GSS-API
Using Channel Bindings in GSS-API
Exporting and Importing Contexts in GSS-API
Obtaining Context Information in GSS-API
Sending Protected Data in GSS-API
Tagging Messages With gss_get_mic()
Wrapping Messages With gss_wrap()
Handling Wrap Size Issues in GSS-API
Detecting Sequence Problems in GSS-API
Confirming Message Transmission in GSS-API
Cleaning Up a GSS-API Session
Chapter 5 GSS-API Client Example
GSSAPI Client Example Overview
GSSAPI Client Example Structure
Running the GSSAPI Client Example
GSSAPI Client Example: main() Function
Opening a Connection With the Server
Establishing a Security Context With the Server
Translating a Service Name into GSS-API Format
Establishing a Security Context for GSS-API
Miscellaneous GSSAPI Context Operations on the Client Side
Wrapping and Sending a Message
Reading and Verifying a Signature Block From a GSS-API Client
Deleting the Security Context
Chapter 6 GSS-API Server Example
GSSAPI Server Example Overview
GSSAPI Server Example Structure
Running the GSSAPI Server Example
GSSAPI Server Example: main() Function
Acquiring Credentials
Checking for inetd
Receiving Data From a Client
Accepting a Context
Unwrapping the Message
Signing and Returning the Message
Using the test_import_export_context() Function
Cleanup in the GSSAPI Server Example
Chapter 7 Writing Applications That Use SASL
Introduction to Simple Authentication Security Layer (SASL)
SASL Library Basics
SASL Architecture
Security Mechanisms
SASL Security Strength Factor
Communication in SASL
SASL Connection Contexts
Steps in the SASL Cycle
libsasl Initialization
SASL Session Initialization
SASL Authentication
SASL Confidentiality and Integrity
Releasing SASL Sessions
libsasl Cleanup
SASL Example
SASL for Service Providers
SASL Plug-in Overview
Important Structures for SASL Plug-ins
Client Plug-ins
Server Plug-ins
User Canonicalization Plug-ins
Auxiliary Property (auxprop) Plug-ins
SASL Plug-in Development Guidelines
Error Reporting in SASL Plug-ins
Memory Allocation in SASL Plug-ins
Setting the SASL Negotiation Sequence
Chapter 8 Introduction to the Oracle Solaris Cryptographic Framework
Oracle Solaris Cryptography Terminology
Overview of the Cryptographic Framework
Components of the Cryptographic Framework
What Cryptography Developers Need to Know
Requirements for Developers of User-Level Consumers
Requirements for Developers of User-Level Providers
Requirements for Developers of Kernel-Level Consumers
Requirements for Developers of Kernel-Level Providers
Avoiding Data Cleanup Collisions in User-Level Providers
Chapter 9 Writing User-Level Cryptographic Applications and Providers
Overview of the Cryptoki Library
PKCS #11 Function List
Functions for Using PKCS #11
PKCS #11 Functions: C_Initialize()
PKCS #11 Functions: C_GetInfo()
PKCS #11 Functions: C_GetSlotList()
PKCS #11 Functions: C_GetTokenInfo()
PKCS #11 Functions: C_OpenSession()
PKCS #11 Functions: C_GetMechanismList()
Extended PKCS #11 Functions
Extended PKCS #11 Functions: SUNW_C_GetMechSession()
Extended PKCS #11 Functions: SUNW_C_KeyToObject
User-Level Cryptographic Application Examples
Message Digest Example
Symmetric Encryption Example
Sign and Verify Example
Random Byte Generation Example
User-Level Provider Example
Chapter 10 Using the Smart Card Framework
Oracle Solaris Smart Card Framework Overview
Developing Smart Card Consumer Applications
SCF Session Interfaces
SCF Terminal Interfaces
SCF Card and Miscellaneous Interfaces
Developing an IFD Handler for Smart Card Terminals
Installation of Smart Card Terminals
Appendix A Sample C-Based GSS-API Programs
Client-Side Application
Server-Side Application
Miscellaneous GSS-API Sample Functions
Appendix B GSS-API Reference
GSS-API Functions
Functions From Previous Versions of GSS-API
Functions for Manipulating OIDs
Renamed Functions
GSS-API Status Codes
GSS-API Major Status Code Values
Displaying Status Codes
Status Code Macros
GSS-API Data Types and Values
Basic GSS-API Data Types
OM_uint32
gss_buffer_desc
gss_OID_desc
gss_OID_set_desc
gss_channel_bindings_struct
Name Types
Address Types for Channel Bindings
Implementation-Specific Features in GSS-API
Sun-Specific Functions
Human-Readable Name Syntax
Format of Anonymous Names
Implementations of Selected Data Types
Deletion of Contexts and Stored Data
Protection of Channel-Binding Information
Context Exportation and Interprocess Tokens
Types of Credentials Supported
Credential Expiration
Context Expiration
Wrap Size Limits and QOP Values
Use of minor_status Parameter
Kerberos v5 Status Codes
Messages Returned in Kerberos v5 for Status Code 1
Messages Returned in Kerberos v5 for Status Code 2
Messages Returned in Kerberos v5 for Status Code 3
Messages Returned in Kerberos v5 for Status Code 4
Messages Returned in Kerberos v5 for Status Code 5
Messages Returned in Kerberos v5 for Status Code 6
Messages Returned in Kerberos v5 for Status Code 7
Appendix C Specifying an OID
Files with OID Values
/etc/gss/mech File
/etc/gss/qop File
gss_str_to_oid() Function
Constructing Mechanism OIDs
createMechOid() Function
Specifying a Non-Default Mechanism
Appendix D Source Code for SASL Example
SASL Client Example
SASL Server Example
Common Code
Appendix E SASL Reference Tables
SASL Interface Summaries
Appendix F Packaging and Signing Cryptographic Providers
Packaging Cryptographic Provider Applications and Modules
Complying with U.S. Government Export Laws
Packaging User-Level Provider Applications
Packaging Kernel-Level Provider Modules
Adding Signatures to Providers
To Request a Certificate for Signing a Provider
To Sign a Provider
To Verify That a Provider Is Signed
To Generate an Activation File for Retail Export
Glossary
© 2010, Oracle Corporation and/or its affiliates