<-
Apache > HTTP Server > �ĵ� > �汾2.2 > SSL/TLS
���� ��л | �������� | ��ƪ���ߣ��𲽹� | ��ҳ�����£�2006��1��16�� | ��ȡ���°汾

SSL/TLS��ǿ�ȼ��ܣ�����

��׼�ĺô��������г����ѡ�����ȷʵ��ϲ���ִ�ı�׼����ֻ��ȴ����귢��һ����ϲ�����±�׼��

-- 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������)��

top

���뼼��

Ҫ���SSL�ͱ����������ϵͳ����ϢժҪ����(�����ɢ�к���)������ǩ������Щ������������������۵�����(����[AC96)���ṩ�˱����ԡ������Ժ���֤�Ļ�����

����ϵͳ

����Alice����������з�һ����Ϣ�Ի�ת�ʽ𣬲�ϣ�������Ϣ�DZ��ܵģ���Ϊ���к��������ʺźͻ�ת������Ϣ��һ�ַ�����ʹ������ϵͳ����Ҫ�������Ϣת��Ϊ������ʽ���Ӷ�ֻ��Ϊϣ�����������˶�����һ������Ϊ������ʽ��������ϢҲ��ֻ����һ����Կ�����룬���û�У���ô������Ϣ�����ô�����Ϊ�õ�����ϵͳ����ʹ�����Ѷȸߵ���������Ϊԭ�IJ�ֵ�����ǻ�����ô���Ŭ����

����ϵͳ�������ࣺ����ĺ͹�����Կ��

��������
�ֳ�Ϊ�Գ����룬��Ҫ�����ߺͽ����߹�ͬ����һ����Կ��һС���������ܺͽ��ܵ�������Ϣ����������Կ�DZ��ܵģ���ô������Ϣ���˷����ߺͽ������������û���˿����Ķ������Alice�����й�ͬ����һ����Կ������Ի��෢�ͱ�����Ϣ�����ǣ�˽��ͨѶ��Կ��ѡ����Ϊ����ȴ���ܲ�����и�ɻ��ġ�
������Կ����
�ֳ�Ϊ���Գ����룬������һ��ʹ��������Կ���㷨�Խ����Կ�������⣬һ����Կ���ڼ��ܣ���һ�����ڽ��ܣ��Ӷ�ʹ�򵥹���һ����Կ(��������Կ����ƣ���Կ)������������(˽�е���Կ����ƣ�˽Կ)�Խ��ձ�����Ϣ��Ϊ���ܡ�

�κ��˶������ù�Կ����һ����Ϣ����������˽Կ�ij������Ķ�����ˣ�Alice�Ϳ���ʹ�ù�Կ�����䱣����Ϣ�����͸�˽Կ�ij�����(����)��ֻ�������ܹ��������ܡ�

��ϢժҪ

��ȻAlice���ܼ�������Ϣʹ����Ϊ˽�еģ�����Ӧע�⵽ijЩ�˿��ܻ�۸Ļ��滻��ԭʼ��Ϣ���Ի�ת�ʽ������Լ����ʻ���һ�ֱ�֤Alice��Ϣ�����Եķ�����ͬʱ��һ������Ϣ�ļ�ժҪ�����У�����������Ϣ����ȶԣ�����������Ϣ��ȷ��

�����ķ�������Ϊ��ϢժҪ����������ɢ�к�������ϢժҪ���ڶԽϴ���ұ䳤����Ϣ�����϶̶��ҵȳ���һ�ֱ����������ʹ��ժҪ��ԭ����Ϣ�������ѣ����Ҷ�������ͬ����Ϣ����������������ͬ��ժҪ���Ӷ��ų����滻һ����ϢΪ��һ����ά����ͬժҪ�Ŀ����ԡ�

Alice���ٵ���һ����ս��Ҫ��֤ժҪ���͵����еİ�ȫ����ˣ�����ȷ����Ϣ�������ԡ�

һ�ֽ����������ժҪ�а�������ǩ����

����ǩ��

��Alice������Ϣ�����У�������Ҫȷ�ϴ���Ϣ��ȷ�������͵ģ������������ߵ������ʺš�Ϊ�ˣ���������Ϣ�а���һ����Alice����������ǩ����

����ǩ�����Լ��ܵ���ϢժҪ��������Ϣ(����һ����ˮ��)�Լ������ߵ�˽����Կ�����ġ���Ȼ�κ��˶������ù�����Կ����ǩ��������ֻ��ǩ����֪����˽����Կ��Ҳ���ǣ�ֻ����Կ�ij����߲���ǩ����������ǩ���е�ժҪֻ�Ը���Ϣ��Ч����ȷ��û���˿��Ըı�ժҪ������ǩ�����䡣

Ϊ�˱���ǩ���պ�����������������ã�ǩ��������һ����ˮ�š���ˣ���һ(ֻ�Ǽ���)Alice��û�з��ʹ���Ϣ����Ȼ���������ǩ���������п�����������թ��ָ�ء�

top

֤��

��ȻAlice�����Ѿ�������һ�����ܵ���Ϣ�����У�ǩ�����������Ա�֤��Ϣ�������ԣ���������Ȼ��Ҫȷ������ȷ���ں��Ǹ�����ͨѶ��Ҳ����˵������Ҫȷ�����õĹ�����Կ��ȷ��Ӧ�������õ�˽����Կ��ͬ��������Ҳ��Ҫ��֤����Ϣ��ǩ����ȷ��Ӧ��Alice��ǩ����

�������������֤���ಿ��һ���Ե�֤�飬��ȷ�Ϲ�����Կ��������һ���������εĴ�����ǩ���ģ���ô����˫�������Կ϶���ͨѶ�������ݡ�����������εĴ����Ϊ֤�����(Certificate Authority)����֤��������֤��

֤�������

��һ��������Կ������֤����һ�����⣬��һ��������߷�������������ʵ�����ʵ��ݣ�����1��ʾ�������е���Ϣ���������Ϣ(ʶ����[Distinguished Name])�͹�����Կ��������������֤���֤����������ƺ�ǩ���Լ�֤�����Ч���ޣ������ܻ���֤������������Ϣ����ˮ�ŵȸ�����Ϣ��

�� 1: Certificate Information

SubjectDistinguished Name, Public Key
IssuerDistinguished Name, Signature
Period of ValidityNot Before Date, Not After Date
Administrative InformationVersion, Serial Number
Extended InformationBasic Constraints, Netscape Flags, etc.

ʶ����������һ���ض�����������ָ����ݣ����磬һ�����������һ������֤�飬ͬʱ����һ�����Ӷ�ߵ�֤�顣X.509��׼[X509]�ж�����ʶ�����ĸ���������ƺ���д(����2)��

�� 2: Distinguished Name Information

DN FieldAbbrev.DescriptionExample
Common NameCNName being certifiedCN=Joe Average
Organization or CompanyOName is associated with this
organization
O=Snake Oil, Ltd.
Organizational UnitOUName is associated with this
organization unit, such as a department
OU=Research Institute
City/LocalityLName is located in this CityL=Snake City
State/ProvinceSTName is located in this State/ProvinceST=Desert
CountryCName 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")��������ʾ��

Example of a PEM-encoded certificate (snakeoil.crt)

-----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������Ҫ���֤��������ߣ����丸�����ߣ�ֱ���ҵ�һ���������εġ�������ֻ������һ�����޵����������������֤�飬�Լ�С�������"����"֤������ķ��ա�

��������CA

��ǰ������ÿ��֤��Ҫ����������ָ��֤��������ʵ�����Ч�ԣ�ֱ�����һ����֤������������Ͳ���һ�����⣺���һ����֤�����û�������ߣ���ô˭Ϊ����֤���������أ�������������£���֤����"��ǩ����"����֤��������ߺ������е�һ�������ԣ��������ǩ����֤�鱸��ע�⡣���������㷺�����Ĺ�����Կ���Լ�С���������Կ�������ķ���--����Ȼ������ij���˷�����Կ����������֤�����Ҫ��ȫһЩ���������Ĭ�ϵ�����Ϊ����������֤�������

��๫˾��רҵ֤���������Thawte��VeriSign���ṩ���·���

�Լ�����һ��֤�����Ҳ�ǿ��ܵģ���Ȼ��Internet�������з��գ�������֤���������������׵�Intranet�����У�������á�

֤��Ĺ���

����һ��֤�������Ҫһ����ǿ�ļ�ܡ������͹�����ϵ��֤�����������������֤�飬���������֤�����Ч�ں͸��£���ά��һ��������ĵ��Ѿ�ʧЧ��֤���б�(����֤���б�[Certificate Revocation Lists����CRL])�����磬Alice��Ϊ��˾��Ա���ʸ�����֤�飬���磬Alice�뿪��˾����Ҫ���ϴ�֤��ȡ�����ƾ֤����Ե���ͨ�����裬���Բ����ܴ�֤�鱾�����Ѿ����ϣ���ˣ���֤֤�����Ч�Ծͱ��������֤���б�(����ͨ�������Զ������һ����)��

˵��

���ʹ����һ�������û��Ĭ�����õ�֤������������������֤�������֤������������ʹ�����������֤�����֤�����ǩ���ķ�����֤�顣���������з��յģ���Ϊһ�����أ����������������֤�����ǩ��������֤�顣

top

��ȫ�׽��ֲ�(SSL)

��ȫ�׽��ֲ�Э����λ�ڿɿ����������ӵ������Э��(��TCP/IP)��Ӧ�ó���Э���(��HTTP)֮���һ��Э��㡣SSLͨ��������֤��ʹ������ǩ��ȷ�������ԡ�ʹ�ü���ȷ��˽���ԣ���ʵ�ֿͻ��˺ͷ�����֮��İ�ȫͨѶ��

���Э�鱻���Ϊ֧������������롢ժҪ��ǩ�����ض��㷨�����������Ŀ�Ķ��ض��ķ�����ѡ���㷨��������������㷨�Ե���������ѡ���Э�̲��������ڿͻ��ͷ���������Э��Ի��Ŀ�ʼ�׶Ρ�

�� 4: Versions of the SSL protocol

VersionSourceDescriptionBrowser Support
SSL v2.0Vendor 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.0Expired 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.0Proposed 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

�ͻ��˺ͷ����������ֹ���������ʾ��

  1. Э���������ݴ����������
  2. ����������ͻ��˺ͷ������ĻỰ��Կ
  3. ��ѡ�Ŀͻ��˶Է���������֤
  4. ��ѡ�ķ������Կͻ��˵���֤

��һ����������Э�̣�����ͻ��˺ͷ�����ѡ��һ����֧ͬ�ֵ������顣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

����HTTPͨѶ

SSL��һ����������;�DZ�������������������֮�������HTTPͨѶ�����Ⲣ�ų�Ӧ���ڲ��ӱ�����HTTP���䷽����Ҫ�ǣ�����ͨHTTP����SSL����(��ΪHTTPS)������һ����Ҫ��������ʹ��URL����https������http ������ʹ�ò�ͬ�ķ������˿�(Ĭ�ϵ���443)��mod_sslΪApache����������ṩ�Ĺ�����Ҫ������Щ��...

top

References

[AC96]
Bruce Schneier, Applied Cryptography, 2nd Edition, Wiley, 1996. See http://www.counterpane.com/ for various other materials by Bruce Schneier.
[X208]
ITU-T Recommendation X.208, 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.
[X509]
ITU-T Recommendation X.509, The Directory - Authentication Framework. See for instance http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-X.509.
[PKCS]
Public Key Cryptography Standards (PKCS), RSA Laboratories Technical Notes, See http://www.rsasecurity.com/rsalabs/pkcs/.
[MIME]
N. Freed, N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, RFC2045. See for instance http://ietf.org/rfc/rfc2045.txt.
[SSL2]
Kipp E.B. Hickman, The SSL Protocol, 1995. See http://www.netscape.com/eng/security/SSL_2.html.
[SSL3]
Alan O. Freier, Philip Karlton, Paul C. Kocher, The SSL Protocol Version 3.0, 1996. See http://www.netscape.com/eng/ssl3/draft302.txt.
[TLS1]
Tim Dierks, Christopher Allen, The TLS Protocol Version 1.0, 1999. See http://ietf.org/rfc/rfc2246.txt.