|
Authen::Ticket::Signature - Support for signing authentication tickets SYNOPSISAs key server:<Location "/keys"> SetHandler perl-script PerlSetHandler Authen::Ticket::Signature PerlSetVar TicketSignaturePublicKey http://keys.my.com/keys/${id} PerlSetVar TicketSignatureId General </Location> As part of ticket server: package My::Ticket::Server; @ISA = (qw/Authen::Ticket::Server Authen::Ticket::Signature/); As part of ticket client: package My::Ticket::Client; @ISA = (qw/Authen::Ticket::Client Authen::Ticket::Signature/); DESCRIPTIONAuthen::Ticket::Signature provides the framework for signing and verifying tickets. The El Gamal algorithm is included in the code as a good default signing algorithm. The default key length is 512 bits.If IPC::Shareable is available, keys are cached in shared memory across processes. This is a virtual requirement for a multiprocess Apache ticket server since all tickets should be signed by the same key. This is only a memory issue for client websites if several keys might need to be cached simultaneously. Different keys may be cached with each having an identifying name. This name is used to retrieve the public portion of the key from the key server. The key to be retrieved for use in signing or verification is determined by the server configuration. METHODSAdding Authen::Ticket::Signature to the @ISA array for the ::Client or ::Server class will add the following methods to that class. Any may be overridden, though only generate_key, sign_ticket, and verify_ticket are recommended. All numbers are expected to be objects of type OpenSSL::BN.
WHY EL GAMAL?This code was produced and is maintained within the United States of America. As many are aware, export restrictions on cryptographic products exist. This section explains what algorithm was chosen and why it should not violate any export regulations.The El Gamal algorithms are not under any patent or licensing restrictions and may thus be used freely, though with export restrictions in mind. The default algorithm in Authen::Ticket::Signature is El Gamal. The supplied code IS NOT INTENDED to be used to encrypt messages. Other parts of the algorithm may be used for encryption, but the signature portions are not intended to encrypt and decrypt data. However, [Schneier 532] points out the ability to send subliminal messages using the signature algorithms. SHARED MEMORYThe code tries to use IPC::Shareable if it is already loaded. Apache can go into an endless spin with children being dieing and being created if the IPC::Shareable code causes a segfault during child initialization. This can happen when a previously created shared memory segment has not been properly disposed of and also cannot be connected to.If IPC::Shareable is not loaded during the server startup, the Authen::Ticket::Signature code will not try to use it. Therefore, you must load IPC::Shareable before loading Authen::Ticket::Signature or any class derived from it. AUTHORJames G. Smith, <jgsmith@tamu.edu>Portions of code are based on [Orwant 552-554] and [Stein 320]. COPYRIGHTCopyright (c) 1999, Texas A&M University. All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTERS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SEE ALSOperl(1), Authen::Ticket(3), Authen::Ticket::Server(3), Authen::Ticket::Client(3)Orwant, Jon, et. al. Mastering Agorithms with Perl, O'Reilly & Associates, 1999. Schneier, Bruce Applied Cryptography, 2nd ed., John Wiley & Sons, 1996. Stein, Lincoln, & Doug MacEachern. Writing Apache Modules with Perl and C, O'Reilly & Associates, 1999. POD ERRORSHey! The above document had some coding errors, which are explained below:
Visit the GSP FreeBSD Man Page Interface. |