Apache HTTP Server �汾2.2
���ĺô��������г����ѡ�����ȷʵ��ϲ���ִ�ı�����ֻ��ȴ����귢��һ����ϲ�����±���
-- A. Tanenbaum, "Introduction to Computer Networks"
��Ϊ���ۣ�������Ե�����ϤWeb��HTTP��Apache�Ķ��߶����ǰ�ȫ�����ר�ң�������SSLЭ���Ȩ����ָ�ϣ���������һ����֯�й���֤������⼼����Ҳû����Ҫ�ķ���ר��������ժ¼���������ơ����ǣ����Ļ�ͨ���ۺϽ������ָ����������ӣ���mod_ssl
��ʹ�����ṩ�������ϣ���Ϊ������̽������㡣
�����������Ҫ����Դ��Introducing SSL and Certificates using SSLeay����������Frederick J. Hirsch��ɡ������� Open Group Research Institute��1997���ģ�������Web Security: A Matter of Trust, World Wide Web Journal, Volume 2, Issue 3, Summer 1997���϶�����뷴����Frederick Hirsch(ԭ����)����������뷴����Ralf S. Engelschall(mod_ssl
������)��
Ҫ���SSL�ͱ����������ϵͳ����ϢժҪ����(�����ɢ�к���)������ǩ������Щ������������������۵�����(����[AC96)���ṩ�˱����ԡ������Ժ���֤�Ļ�����
����Alice����������з�һ����Ϣ�Ի�ת�ʽ𣬲�ϣ�������Ϣ�DZ��ܵģ���Ϊ���к��������ʺźͻ�ת������Ϣ��һ�ַ�����ʹ������ϵͳ����Ҫ�������Ϣת��Ϊ������ʽ���Ӷ�ֻ��Ϊϣ�����������˶�����һ������Ϊ������ʽ��������ϢҲ��ֻ����һ����Կ�����룬���û�У���ô������Ϣ�����ô�����Ϊ�õ�����ϵͳ����ʹ�����Ѷȸߵ���������Ϊԭ�IJ�ֵ�����ǻ�����ô���Ŭ����
����ϵͳ�������ࣺ����ĺ�����Կ��
�κ��˶������ù�Կ����һ����Ϣ����������˽Կ�ij������Ķ�����ˣ�Alice�Ϳ���ʹ�ù�Կ�����䱣����Ϣ������˽Կ�ij�����(����)��ֻ�������ܹ��������ܡ�
��ȻAlice���ܼ�������Ϣʹ����Ϊ˽�еģ�����Ӧע�ijЩ�˿��ܻ�۸Ļ��滻��ԭʼ��Ϣ���Ի�ת�ʽ������Լ����ʻ���һ�ֱ�֤Alice��Ϣ�����Եķ�����ͬʱ��һ������Ϣ�ļ�ժҪ�����У�����������Ϣ����ȶԣ�����������Ϣ��ȷ��
�����ķ�������Ϊ��ϢժҪ����������ɢ�к�������ϢժҪ���ڶԽϴ���ұ䳤����Ϣ�����϶̶��ҵȳ���һ�ֱ����������ʹ��ժҪ��ԭ����Ϣ�������ѣ����Ҷ�������ͬ����Ϣ����������������ͬ��ժҪ���Ӷ��ų����滻һ����ϢΪ��һ����ά����ͬժҪ�Ŀ����ԡ�
Alice���ٵ���һ����ս��Ҫ��֤ժҪ���͵����еİ�ȫ����ˣ�����ȷ����Ϣ�������ԡ�
һ�ֽ����������ժҪ�а�������ǩ����
��Alice������Ϣ�����У�������Ҫȷ�ϴ���Ϣ��ȷ�������͵ģ������������ߵ������ʺš�Ϊ�ˣ���������Ϣ�а���һ����Alice����������ǩ����
����ǩ�����Լ��ܵ���ϢժҪ��������Ϣ(����һ����ˮ��)�Լ������ߵ�˽����Կ�����ġ���Ȼ�κ��˶������ù�����Կ����ǩ��������ֻ��ǩ����֪����˽����Կ��Ҳ���ǣ�ֻ����Կ�ij����߲���ǩ����������ǩ���е�ժҪֻ�Ը���Ϣ��Ч����ȷ��û���˿��Ըı�ժҪ������ǩ�����䡣
Ϊ�˱���ǩ���պ�����������������ã�ǩ��������һ����ˮ�š���ˣ���һ(ֻ�Ǽ���)Alice��û�з��ʹ���Ϣ����Ȼ���������ǩ���������п�����������թ��ָ�ء�
��ȻAlice�����Ѿ�������һ�����ܵ���Ϣ�����У�ǩ�����������Ա�֤��Ϣ�������ԣ���������Ȼ��Ҫȷ������ȷ���ں��Ǹ�����ͨѶ��Ҳ����˵������Ҫȷ�����õĹ�����Կ��ȷ��Ӧ�������õ�˽����Կ��ͬ��������Ҳ��Ҫ��֤����Ϣ��ǩ����ȷ��Ӧ��Alice��ǩ����
�������������֤���ಿ��һ���Ե�֤�飬��ȷ�Ϲ�����Կ��������һ���������εĴ�����ǩ���ģ���ô����˫�������Կ϶���ͨѶ�������ݡ�����������εĴ����Ϊ֤�����(Certificate Authority)����֤��������֤��
��һ��������Կ������֤����һ�����⣬��һ��������߷�������������ʵ�����ʵ��ݣ�����1��ʾ�������е���Ϣ���������Ϣ(ʶ����[Distinguished Name])������Կ��������������֤���֤����������ƺ�ǩ���Լ�֤�����Ч���ޣ������ܻ���֤������������Ϣ����ˮ�ŵȸ�����Ϣ��
Subject | Distinguished Name, Public Key |
---|---|
Issuer | Distinguished Name, Signature |
Period of Validity | Not Before Date, Not After Date |
Administrative Information | Version, Serial Number |
Extended Information | Basic Constraints, Netscape Flags, etc. |
ʶ����������һ���ض�����������ָ����ݣ����磬һ�����������һ������֤�飬ͬʱ����һ�����Ӷ�ߵ�֤�顣X.509��[X509]�ж�����ʶ�����ĸ���������ƺ���д(����2)��
DN Field | Abbrev. | Description | Example |
---|---|---|---|
Common Name | CN | Name being certified | CN=Joe Average |
Organization or Company | O | Name is associated with this organization | O=Snake Oil, Ltd. |
Organizational Unit | OU | Name is associated with this organization unit, such as a department | OU=Research Institute |
City/Locality | L | Name is located in this City | L=Snake City |
State/Province | ST | Name is located in this State/Province | ST=Desert |
Country | C | Name is located in this Country (ISO code) | C=XZ |
֤��������ܻᶨ��涨��Щʶ�����ǿ�ѡ�ģ�����Щ�DZ����һ���淶�������ܶ�������ݺ�֤��ʹ����������Ҫ���磬һ��Netscape�����Ҫ��֤���е�Common Name������Ƿ��������ƣ������ƿ����Ƿ�����������ͨ��ģʽ�����磺*.snakeoil.com
��
֤��Ķ�������ʽ��ASN.1�Ǻŷ�[X208] [PKCS]��ʾ���Ǻŷ���������α�ʾ���ݣ��������������ν���Ϣת��ɶ�������ʽ��֤��Ķ����Ʊ���ʹ���˻��ڸ�ͨ�õĻ����������(Basic Encoding Rules[BER])��ʶ�����������(Distinguished Encoding Rules[DER])��Ϊ���ڲ��ܴ�������Ƶ�����½��д��䣬��������ʽ��Base64���뷽ʽ[MIME]ת����ASCII��ʽ������������Կ�ʼ�ͽ������ŷָ������ɵ��У���ΪPEM��ʽ(��������Դ��"Privacy Enhanced Mail")��������ʾ��
-----BEGIN CERTIFICATE----- MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt 2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7 dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ== -----END CERTIFICATE-----
֤�����������֤��ǰ����֤֤���������Ϣ����ȷ����Կ����˽����Կ�ij���ʵ�塣���磺���Alice����һ������֤�飬��֤��������Ȼ�ȷ��Alice��ȷ������֤����Ǹ��ˡ�
һ��֤�����Ҳ���ܸ���һ��֤���������֤�顣���ԣ�Alice������Ҫ���֤��������ߣ����丸�����ߣ�ֱ���ҵ�һ���������εġ�������ֻ������һ���������������������֤�飬�Լ�С�������"����"֤������ķ��ա�
��ǰ������ÿ��֤��Ҫ����������ָ��֤��������ʵ�����Ч�ԣ�ֱ�����һ����֤������������Ͳ���һ�����⣺���һ����֤�����û�������ߣ���ô˭Ϊ����֤���������أ�������������£���֤����"��ǩ����"����֤��������ߺ������е�һ�������ԣ��������ǩ����֤�鱸��ע�⡣���������㷺�����Ĺ�����Կ���Լ�С���������Կ�������ķ���--����Ȼ������ij���˷�����Կ����������֤�����Ҫ��ȫһЩ���������Ĭ�ϵ�����Ϊ����������֤�������
��˾��רҵ֤���������Thawte��VeriSign���ṩ���·���
�Լ�����һ��֤�����Ҳ�ǿ��ܵģ���Ȼ��Internet�������з��գ�������֤����������������Intranet�����У�������á�
����һ��֤�������Ҫһ����ǿ�ļ�ܡ�����������ϵ��֤�����������������֤�飬���������֤�����Ч�ں��£���ά��һ��������ĵ��Ѿ�ʧЧ��֤���б�(����֤���б�[Certificate Revocation Lists����CRL])�����磬Alice��Ϊ��˾��Ա���ʸ�����֤�飬���磬Alice�뿪��˾����Ҫ���ϴ�֤��ȡ�����ƾ֤����Ե���ͨ�����裬���Բ����ܴ�֤�鱾�����Ѿ����ϣ���ˣ���֤֤�����Ч�Ծͱ��������֤���б�(����ͨ�������Զ������һ����)��
���ʹ����һ�������û��Ĭ�����õ�֤������������������֤�������֤������������ʹ�����������֤�����֤�����ǩ���ķ�����֤�顣���������з��յģ���Ϊһ�����أ����������������֤�����ǩ��������֤�顣
��ȫ���ֲ�Э����λ�ڿɿ����������ӵ������Э��(��TCP/IP)��Ӧ�ó���Э���(��HTTP)֮���һ��Э��㡣SSLͨ��������֤��ʹ������ǩ��ȷ�������ԡ�ʹ�ü���ȷ��˽���ԣ���ʵ�ֿͻ��˺ͷ�����֮��İ�ȫͨѶ��
���Э�鱻���Ϊ֧������������롢ժҪ��ǩ�����ض��㷨�����������Ŀ�Ķ��ض��ķ�����ѡ���㷨��������������㷨�Ե���������ѡ���Э�̲��������ڿͻ��ͷ���������Э��Ի��Ŀ�ʼ�Ρ�
Version | Source | Description | Browser Support |
---|---|---|---|
SSL v2.0 | Vendor Standard (from Netscape Corp.) [SSL2] | First SSL protocol for which implementations exists | - NS Navigator 1.x/2.x - MS IE 3.x - Lynx/2.8+OpenSSL |
SSL v3.0 | Expired Internet Draft (from Netscape Corp.) [SSL3] | Revisions to prevent specific security attacks, add non-RSA ciphers, and support for certificate chains | - NS Navigator 2.x/3.x/4.x - MS IE 3.x/4.x - Lynx/2.8+OpenSSL |
TLS v1.0 | Proposed Internet Standard (from IETF) [TLS1] | Revision of SSL 3.0 to update the MAC layer to HMAC, add block padding for block ciphers, message order standardization and more alert messages. | - Lynx/2.8+OpenSSL |
����4��ʾ��SSLЭ���ж��ְ汾��SSL3.0��һ���ŵ��������˶Լ���֤������֧�֣�������������ڷ����������������֤���ϸ���һ��������֤�顣���ļ���Ҳ�����������֤������֤�飬��ʹ�Դ������ߵ�֤�����֤�鲢û�а�װ����Ϊ���Ѿ����������֤�������ˡ�SSL3.0Ŀǰ����Internet Engineering Task Force(IETF)�з����Ǵ���㰲ȫ[TLS]Э����Ļ�����
SSL�Ự�ڿͻ��˺ͷ����������ֹ���֮��������Figure 1��ʾ������̿�����������Ƿ�����Ϊ֧�ַ�����֤����Ƿ�Ҫ���пͻ�֤��������ͬ����Ȼ����������Ϣ������Ҫ�������ֲ��������������ֻ˵�������й��ԵIJ��֣��μ����п�������µ�SSL�淶��
SSL�Ựһ�������Ϳ����ǿ����õģ��Ա����ڳ�ʼ�Ựʱ��������ʧ����ಽ����ظ���Ϊ�ˣ�������Ϊ�������ӻ�����Ϊÿ��SSL�Ự�趨��Ψһ�ĻỰ��־���Լ������ֲ���(ֱ�������������еĻỰ��־����Ϊֹ)��
Figure 1: Simplified SSL
Handshake Sequence
�ͻ��˺ͷ����������ֹ���������ʾ��
��һ����������Э�̣�����ͻ��˺ͷ�����ѡ��һ����֧ͬ�ֵ������顣SSL3.0Э��淶������31�������顣�����������¸�������ɣ�
��������ɲ���˵�����¡�
��Կ������ָ������ڿͻ��˺ͷ����������ݴ�����ʹ�ù���ĶԳ���Կ��SSL2.0��ʹ��RSA��Կ��������SSL3.0����������֤��ʱ��ѡ��ʹ�ð���RSA�Ķ�����Կ�����㷨���Լ�����֤��Ϳͻ���-����������ͨѶ��Diffie-Hellman��Կ��������
��Կ��������һ������������ǩ��(���ÿɲ���)������ã�����һ�֡�˽����Կ���ǩ������ȷ�������ɹ�����Կ[AC96, p516]����Ϣ���������е���������
SSLʹ����ǰ����ܶԻ���Ϣ�����������ij��������㷨(�Գ�����)�������а������������ڵľ���ѡ��
�����"CBC"��Cipher Block Chaining��ָ�ڼ��ܵ�ǰ��ʱ���õ���ǰ�Ѿ����ܵIJ����ı���"DES"��Data Encryption Standard[AC96, ch12]���ж������(����DES40��3DES_EDE)��"Idea"��������õ����ǿ�ļ����㷨֮һ��"RC2"��RSADSI[AC96, ch13]��ר�����㷨��
ժҪ����ָ����һ����¼��Ԫ��ν���ժҪ��SSL������֧�֣�
��ϢժҪ���ڽ������ܵ���Ϣ��֤��(MAC)������Ϣ����һͬ���ͣ���ȷ����Ϣ�����Բ�������ԭ������
��������ʹ������Э�飺
��ЩЭ���Ӧ��Э��������� SSL Record Protocol ���з�װ����Figure 2��ʾ���ڲ�������ݵĽϵײ��Э���д��䡣��װЭ�����ײ�Э����˵��δ֪�ġ�
Figure 2: SSL Protocol Stack
SSL����Э��Լ�¼Э��ķ�װ��ʹһ�����ڽ��еĶԻ�����Э�������Э������ȫ�ؽ��д��䡣�������û�н����Ի������ʹ��Null�����飬Ҳ����˵���ڽ����Ի���ǰ����ʹ�����룬����Ϣû��������ժҪ��
SSL��¼Э�飬��Figure 3��ʾ�����ڿͻ��˺ͷ�����֮��Ĵ���Ӧ�ú�SSL�������ݣ����ܰ����ݷָ�ɽ�С�ĵ�Ԫ��������϶���ϸ߲�Э������Ϊһ����Ԫ����ʹ�õײ�ɿ�����Э�鴫�����ݵ�Ԫ֮ǰ�������ܻ����Щ��Ԫ����ѹ��������ժҪǩ���ͼ���(ע�⣺Ŀǰ������ҪSSL��ʵ�ֶ�ȱ����ѹ����֧��)��
Figure 3: SSL Record Protocol
SSL��һ����������;�DZ�������������������֮�������HTTPͨѶ�����Ⲣ�ų�Ӧ���ڲ��ӱ�����HTTP���䷽����Ҫ�ǣ�����ͨHTTP����SSL����(��ΪHTTPS)������һ����Ҫ��������ʹ��URL����https
������http
������ʹ�ò�ͬ�ķ������˿�(Ĭ�ϵ���443)��mod_ssl
ΪApache����������ṩ�Ĺ�����Ҫ������Щ��...
Applied Cryptography, 2nd Edition, Wiley, 1996. See http://www.counterpane.com/ for various other materials by Bruce Schneier.
Specification of Abstract Syntax Notation One (ASN.1), 1988. See for instance http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=T-REC-X.208-198811-I.
The Directory - Authentication Framework. See for instance http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509.
Public Key Cryptography Standards (PKCS), RSA Laboratories Technical Notes, See http://www.rsasecurity.com/rsalabs/pkcs/.
Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, RFC2045. See for instance http://ietf.org/rfc/rfc2045.txt.
The SSL Protocol, 1995. See http://www.netscape.com/eng/security/SSL_2.html.
The SSL Protocol Version 3.0, 1996. See http://www.netscape.com/eng/ssl3/draft302.txt.
The TLS Protocol Version 1.0, 1999. See http://ietf.org/rfc/rfc2246.txt.