������������������
1. ������������������������
2. HPKP���̏����������������������ď�����·���
3. HPKP������»���������������
4. \���\��я��������Ώ�����������¹���»���
����4.1. \���\��я���������������¼�����������������
����4.2. ¾��⏪����½���\���\�����¼\��я������돫�����ߏ��¹������\���\��я��������쏪����
����4.3. ¾��⏪����½���¹¹���·������HPKP\���\���\������������Ώ�����������¹¹�����¡ޏ�ď����Џ�������
����4.4. \Ð\���\���\��\���\��\���\��я����������������Ï��¾����돢����\���\�ޏ��������������µ
����4.5. CA����돢����\Ð\���\���\��\���\��\���\��я�����\���\¹\¹\�������������
����4.6. ¾��⏪����½���\���\�����¼\��я����������������ď��\���\��я����ҏ��������ޏ������������돪؏��������������������
����4.7. ����ޏ�����CA¾��⏪����½��Џ�����Pin���·���³���ޏ�����¾���¹���������²�����
����4.8. 2������������CA¾��⏪����½��Џ�����Pin���¹������¾���¹���������²�����
����4.9. max-age������\���\¹\¹\���������������¹�����𡯏�����
5. HPKP���������������������̏�����»����������������������������������������«
6. ��������HPKP������²��ď��̏��������ޏ��������«�����������ď������«
7. �����쏢����������������
8. (»²¹���) HPKP����������������������������������������\���\���\���
9. ������µ
����9.1. ������µ(2017.02.26) HPKP������\���\���\���\��\µ\����¼\���¾��آ�·
����9.2. ������µ(2017.02.26) smashingmagazine.com���������������������·������HPKP¾���³²
1. ������������������������
HPKP������������HTTP Public Key Pinning������¢̏�������¡�RFC 7469 Public Key Pinning Extension for HTTP������µ�̏��������µ�����������������쏢������¡� \���\��\���\µ\���\���������\��쏢�¼\������¼���̏�¡�\���\»������\µ\���\����������돪؏�ď�����·������������¾��⏪����½���\���\�����¼\��я���»��������������������������������������Ï��������������¹�����������ď�����������»��������������Ώ��������¹��¡�
�����䏪���䏢����²��ҏ�����������¾������������������������¹���̏�¡�·����돢Ï��¹������ jovi0608���µ�����я�����µ»���������Jxck���µ�����я�����µ»���������������������������²��ҏ��������µ���������������������������¹��¡�
»���������3����������������������������돢¡�IPA������\��\���\���������½��Џ����������������������ď���돢�����ď��������«��������¡�HPKP�����¡ޏ�ď�����¾���������²�������������������������������¡�²��ď��«\���\���\�돪���㏢����½��Џ�������ď�����������»�ߏ����������������������ď������������¹���̏�¡����������я��«�����䏢������\���\��я��������³���������������»»��Ï��µ��������������¡��³������������������������������������������½��Џ��������³���������̏�����������������»�����я��������·�����ď�¡�(�����������я��«½��Џ��³�����Ï�����»�ߏ����������������ď�����jovi���µ�����я�������½Ð��������������������������¡������������������������«������»�ߏ����������������������������ď����������������������Ï��������������������������¹w) IPA������\��\���\���������»��Џ�����½��Џ��«���»�����������������������쏢���Ï��������·�����ď����я��������¹���̏�¡����������я��������«��������ď��������»���¾��Ï�����������²������µ���»�����������������������Ï��³���������̏�����������������»�����я��������·�����ď�¡����������叢���叢¡�
����²��я�������¡�HPKP������������²��ď��«�����������������������ġ���Ï����䏪���쏢�������³��������������¡¾��������������\���\���\�돢����¾��㏢�������������·��������¡�HPKP�������½¾��؏�����HPKP�����¡ޏ�ď�����¾���������²�����������������������������\���\��폢�¼\«\¹���·������½��Џ�������ď�����������»�ߏ��������������������������¹��¡¹���������������������½�����Ï��������¹���̏�¡�𡭏����������я��������µ��������������¡�
·������������«��������������𡯏��Ð��¡��䏪����\µ\���\����������돪���ߏ�����HPKP������»��������Ï��������������������������ď������̏�����������������¹�����𡯏��������������������¹��¡��½��������������¡�HPKP������»���������¼«�������̡ޏ�ď����Џ����ҏ��·���������«������¹�����𡯏�����������·�ߏ��µ�����������������쏢���������돢¡�돫������������쏢����\µ\���\������������������������·������\»\\���\���\���\��¾�������������²������̏��µ������³�����������¡¹����䏢���¡ޏ�ď����Џ�����\µ���¼\���\¹�����ҏ����Ѣ���������������������������������������䡭��ӏ��̏��������������¹������\���\¹\�������¹������¹������������·��¡�¾��⏪����½��Џ�����\³\¹\������������¾·�ߏ��������«���«���������«���������������¹��¡�
�����쏢�½��������������¡�HPKP�����¡ޏ�ď����Џ��������������������������¼������������������¹��Џ����я��������«�����������ď�¡���³��Ï�����������½���������������������²��ҏ�����»��Џ������«������������»�ߏ��������������¹��¡��¾Ð���¼���������������µ������w
2. HPKP���̏����������������������ď�����·���
2011�����������«��������¡��¾������������ҏ��о����������·������\µ\���\Ð���¼¹��·�����������¡��¾������������¡ޏ�ď�����¾������������ԏ������������������������¡�¹��·��������������̏����Џ��·���������¹������Google������Facebook�����������������������ď�����¾\µ\���\��������Џ��ޏ�����\���\���\���\���\«���¼\���¾��⏪����½���(*.google.com������)������¼������������µ���������������·�����������Ï�����������������»���·������̏�����𡯏�����������������·�����ď�¡�Google�����ҏ����䏢�������»�����������������������ď���������2011������������\���\���\���\������������¾�������DigiNotar���̏����ԏ��µ��ď�������Џ�����¼��؏��ޏ�¡�*.google.com������\���\���\���\���\«���¼\���¾��⏪����½��Џ����ҏ�����¹��ԏ��µ��������¡�\���\���\��я�����\��\���\Ð\���\������������Ï���돢����¹��·���������»��������������������ď�����������������»���·������̏����������������·�����ď�¡�
���³���������������Ï�����»���·��������ҏ��������돢���ď�������������������¡�\���\��\���\µ\���\������������Ð���·��������¡�\µ\���\���\��쏢�¼\������¼�����¡돪؏�ď�����·������������¾��⏪����½��Џ���»���������������������¾���¹�����������¡�·���¹��Ï����ҏ��������¹������»��������������Ώ��̏���̏���ߏ��������¹��¡��½���³������³«���������µ�����������ď������̏�¡�HPKP���������¹��¡�HPKP��������������¡�¾��⏪����½���\���\�����¼\��я�����¾��⏪����½��Џ�����³«����돢����\���\���\·\��������¡돫�����ߏ�����³���������¹���������³��������������������������¡�\���\��\���\µ\���\���\��쏢�¼\������¼�����¡돪؏�ď�����·������¾��⏪����½��Џ��«�����������Ï��«������¾��⏢�¹���������³���������̏�����������������¹��¡�
jovi���µ�����я�����\���\���\�돢����1¾���������������·���������»��������������Ώ����ҏ��������«���������������¹������²��ҏ��������µ������������������������������������¡��½��������������������𡭏���������돢�ޏ��������Ð������»�ߏ��������������¹��¡�
3. HPKP������»���������������
HPKP������¼��������؏�����������������2�������������������̏����������������¹��¡�
- 1) Google��¡�Facebook��¡�Twitter����������������������¾\µ\���\��������Џ��ޏ�����¡�Chrome��¡�Firefox������������\���\���\���\��������������������¹��Џ�����������������\���\��я�����\���\¹\���(Preloaded Known Pinned Host List)������¾���¹������¹��������������
- 2) HTTPS��������������ď��¹��������돪�������¡�\µ���¼\Ð���¼���«������\���\���¾��Ï����я�����HTTP\���\���\���������¼������������·��¡��½������������\���\���\���\������������������·�����������쏢���¡�돪�¹��Ώ�����������ď�����¾���¹���������»��������Ï�������
\���\��\���\µ���¼\Ð���¼�����������ԏ��µ������¾��⏪����½���\���\�����¼\��я����������䏪�³���µ���»�����������������ď�����������HPKP HTTP\���\���\��������ҏ����Ώ��������¹�������������������¹���̏�¡��³������������\���\��\���\µ���¼\Ð���¼������HTTPS�����Ώ�����������»��������Џ��¹������\������¼\���¾��⏪����½��Џ��«������SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����������������¾��⏪����½���\���\�����¼\��я����ҏ��µ�����������Ώ��������·���������¹��¡�HTTP\���\���\������������½����������������½���¼�돢�����돪�²¼���������������Ï��������������������������������������¹��¡�
Public-Key-Pins: \ ������pin-sha256="\���\�����¼\��я���������������³«����돢�����������������«������SHA256\���\���\·\���������������Base64"; \ ������pin-sha256="\���\�����¼\��я���������������³«����돢���������������������������돫�����ߏ��·������������SHA256\���\���\·\���������������Base64"; \ ������[pin-sha256="���½�������¾\���\���\·\���������1"; ...; ] \ ������max-age=\���\���\���\�����������³������HPKP\���\���\������̏���������µ��������������������ď��; \ ������[includeSubDomain;] \����������\µ\���\���\���\���\���(example.com������������sub.example.com)������HPKP�������о����������¹���������« ������[report-uri="JSON·���¼�돢����\��\������¼\���\����¼\�������POST���µ������������URL"; ] [...]������\���\��\·\���\���
- pin-sha256������¾��⏪����½���\���\�����¼\��я����ҏ��µ�����������Ώ��������·���������¹���̏�¡��½���������Ώ�����������������¹���»�������������������������������������������½��ҏ����㏢�������¹��¡�
- max-age����������������䡭��ӏ�����RFC������4.1������������¹���»����·�����������쏢����60������(=5184000������)���̏����������������������������폢�������·���������������������¹���̏�¡��½������¹���»�������������������½��ҏ����㏢�µ���»������²¼���µ��������¡�
- includeSubDmain��������¡�\µ\���\���\���\���\��я�������������������������������«��¡�����𡯏��Ð example.com ������HPKP�����ҏ����Ώ��������·�����ď�������¡�sub1.example.com��������¡�www1.sub2.example.com������HPKP�������о����������¹������������������������\���\���\�돢�������¹��¡½»��Џ�����������»��������������������������������������������돪���ߏ����������Ώ��������·�������������������̏��������������������Ï�����»�ߏ��������������¹��¡�
- HPKP��������¡�CSP����������������������ޏ�����������������\���\���\���\�������Ï�����������¾��⏢�¹������������������¡�\µ���¼\Ð���¼�����Ï�����������\��\������¼������돩̏��̏������돢������������돢돢����������³���������̏����������������¹��¡�report-uri������»�����𡯏��Ð��¡�\���\���\���\��������HPKP������\��\������¼���̏��������������·�����ď�돪�������¡�»������������·������URL������\���\��\���\µ���¼\Ð���¼������JSON·���¼�돢����\��\������¼\���\����¼\���������POST���¹���������³�������������������ď��·���������¹������������¡��Ώ�����¾������������������������ҏ������������������������ҏ��폢�������«���������·���������������»�����я�¡�Jxck���µ�����я�����\���\���\�돢���������Ώ�����������»����·�����������Ώ����ď�����������������¾��䏢�·������������¹������̏��µ������������������������������������𡭏�����������������������������������������������·�����������Ï�¡�\���\���\�돢����������½��Џ��«���������������������������¹���̏�¡�\���\����¼\�������½Ð�������µ������������¾���·������̏��������������������«�����������돢¡�\���\���\���\��������\Ð���¼\���\���\��я������������돪����������¹�����������������Ï�������¡�»���������\���\����¼\���������������̏����Ï�����������������������������������������»�����я�¡�
4. \���\��я��������Ώ�����������¹���»���
pin-sha256����돪�������»���������������\���\��я����ҏ����Ώ��������¹���������³��������������������������¡�\µ���¼\Ð���¼\��쏢�¼\������¼���̡돪؏�ď�����·������������¾��⏪����½��Џ���»������������������������³�����������ҏ��������돢�³���������̏�����������������¹��¡�
\���\��я�����������������¡�¾��⏪����½���\���\�����¼\��я�����¾��⏪����½��Џ�����²��ď��������«������¾��⏪����½��Џ������돫�����ߏ��¹���������������������ҏ�돪��������돫���������¡�
�������������������������돫�����ߏ��·���������������������������ҏ�돪��������돫�������������·��2�������돪�¾���������������������¹½������µ���������������¹��¡�
4.1. \���\��я���������������¼�����������������
���µ��������¡�돫������ӡ��������ޏ�����\���\���\·\���������������¼������������������������¹���̏�¡��¹������������\���\��\���\µ���¼\Ð���¼������HTTPS�����Ώ��������̡��돪�»���·���������������������������������Ð��¡�Scott Helme»���������HPKP\���\���\·\���������½���������\��⏢�¼\��������ҏ����̏����Џ��¹�������������̏������������������¹��¡�¼«����̏������������������¾��ď������������������HTTPS\µ\���\���������URL�����ҏ����Џ������¹���������Ð��¡�¾��⏪����½���\���\�����¼\��я�����³���¾��⏪����½��Џ�����\���\��я�����\���\���\·\���������������·��»»���·���������������������������¹��¡�
SSL\µ���¼\Ð���¼¾��⏪����½��Џ��«������½���������\������¼\���¾��⏪����½��Џ�������������¡�\���\��я�����\���\���\·\�������������
���������������Ï��������½¼�����µ���������������¹������������¡�����������\���\��я�����»��������Ï������«������·���������������HTTP\���\���\��������������Ώ��������¹���������������ޏ��������¹��¡�pin-sha256="hUIG87ch71EZQYhZBEkq2VKBLjhussUw7nR8wyuY7rY="
�돫�������������\���\��я�����\���\���\·\���������������·��»»���������¹���̏�¡�¾��⏪����½��Џ��«��������������������¡�¾��⏪����½��Џ�����¹��ԏ����µ���(CSR/PKCS#10)��������������¡� �����������폢��돢���������\��\���\��\���\���\��������������������������������������\���\���\������¼\��ď��¼���«������������½Ð���µ������������PKCS#8������³«����돢�«������������������\���\���\·\���������������·��»»���¹���������³���������̏�����������������¹��¡� �����ď�������¡����������������я�������ď��������\���\���\�돢������������¡�������������������CSR�����ҏ�돫��������������«������\���\���\·\���������������·��»»���·�����������������������������Ï��������¹���̏�¡���������¾��⏪����½��Џ������������������µ������\Ð\���\���\��\���\��\���\��я�����¾���¹�����������������¡� ���½�����я��������³�����������ҏ��·��������������������������¡���³«����돢�«������\���\���\·\���·��»»���¹�������������̏��������������������Ï�����»�ߏ��������������¹��¡� �����������叢��������������ޏ�������������¡�Scott Helme»���������\������¼\���������PEM·���¼�돢����PKCS#8������³«����돢¡�CSR��¡�X.509¾��⏪����½��Џ����ҏ����Џ������¹���������Ð��¡�\���\��я�����\���\���\·\���������������·��»»���·������������������������\��⏢�¼\������̏�������������������¡��³������������»��������Ï������̡��������ޏ��������¹��¡�
¼�����돫¢����������\���\��я�����¼������������¹������¾���¹�����������������¡�돪�²¼������¼���»��䏢�¹���������Ð������³«����돢����SHA256\���\���\·\�����������������\���\��я�������������¼���������������������������¹��¡¾������²��ҏ�����µ»��ӏ�������������¡�base64\³\���\���\���������»��������������ď�������¡�CSR�����ҏ�����������������������������������¹���������������Ң���������폢�µ���»�����ď��������·�����������������������������Ï��������¹���̏�¡��³���³������¾���²��Ï��¹������������������OpenSSL\³\���\���\������·���«»��������������돢¡�����������������������������\�ޏ��¼\¹���������Ð�ޏ�Џ��·��������¡�\���\��я�����¼������������̏�������������������������Ï�������¡���������¼�����·�����������쏢����������·�����ď�¡�
������������¼������������·�����ď�������¡�\���\��\���\µ���¼\Ð���¼������HTTP\���\���\��������������Ώ��������·���������¹��¡�����𡯏��Ð��¡�Apache HTTP Server������¾���¹�����������������¡�돪�²¼���������������Ï����������Ώ��������·���������¹��¡�X.509¾��⏪����½��Џ��«������subjectPublicKeyInfo\���\���¼\���\�����������������PKCS#8������³«����돢����\���\��я���������¼��� % openssl x509 -in PEM¾��⏪����½��� -pubkey -noout | openssl rsa -pubin -outform DER | \ openssl dgst -sha256 -binary | openssl enc -base64 te4kc4F/5BhtIosKLOS9sy049x7a/LQHNRRG1WHfvyU= CSR���«������subjectPKInfo\���\���¼\���\�����������������PKCS#8������³«����돢����\���\��я���������¼��� % openssl req -in PEMCSR\���\���\���\��� -pubkey -noout | openssl rsa -pubin -outform DER | \ openssl dgst -sha256 -binary | openssl enc -base64 te4kc4F/5BhtIosKLOS9sy049x7a/LQHNRRG1WHfvyU= PKCS#8�����������폢��돢�«������\���\��я���������¼��� % openssl rsa -in PKCS#8�����������폢��� -pubout -outform DER | \ openssl dgst -sha256 -binary | openssl enc -base64 te4kc4F/5BhtIosKLOS9sy049x7a/LQHNRRG1WHfvyU= PKCS#8������³«����돢�«������\���\��я���������¼��� % openssl rsa -pubin -in PKCS#8������³«����� -pubout -outform DER | \ openssl dgst -sha256 -binary | openssl enc -base64 te4kc4F/5BhtIosKLOS9sy049x7a/LQHNRRG1WHfvyU= �����������������������ď����������� pin-sha256="te4kc4F/5BhtIosKLOS9sy049x7a/LQHNRRG1WHfvyU=" ���������������Ï�����\���\���\��������������Ώ��������¹��������¡�
<VirtualHost _default_:443> ... Header set Public-Key-Pins \ "pin-sha256=\"MRnxhYBVCMAxZHwalTJ7ZVl6P2005lll4ttWr+RN1Ro=\"; \ pin-sha256=\"633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q=\"; \ max-age=2592000; \ report-uri=\"https://report.example.com\"" ... �����������Ώ��������¹���µ���������ď�����������\Ð\���\���\¹\���\���\·\���������²���¹��ԏ����ҏ����Џ��������������������������¹��¡�2592000������������30�����䏢�������¹��¡�
4.2. ¾��⏪����½���\���\�����¼\��я������돫�����ߏ��¹������\���\��я��������쏪����
HPKP��������������¡�¾��⏪����½���\���\�����¼\��я������돫�����ߏ��¹������\���\��я�����1�������돪�¾��������Ώ��������¹����������̏���ߏ��̏����������������¹��¡��䏪������������������¡�¼�������2����������������̏��ޏ�����¹���»����·�����������Ώ����ď�����������»�ߏ��������������¹��¡�
- 1) ¾��⏪����½���\���\�����¼\��я������������������������«�돫����������������Ώ����ҏ����쏪���ҏ��¹������¾���¹�������������³��я���������
- 2) ¾��⏪����½���\���\�����¼\��я�����������2�������돪�¾�����¡����������ď���������������ԏ����ҏ����쏪���ҏ��¹������¾���¹���������¹���»���
4.2. ¾��⏪����½���\���\�����¼\��я������돫�����ߏ��¹������\���\��я��������쏪����
¾��⏪����½���\���\�����¼\��я�������¡�SSL\µ���¼\Ð���¼¾��⏪����½��Џ�¡��������CA¾��⏪����½��Џ�¡�\������¼\���¾��⏪����½��Џ��������������Ï�����3������������¾��⏪����½��Џ�����������������������������������¾���¹�����¡� �����ԏ��µ�������돪؏�ď�����·������������¾��⏪����½���\���\�����¼\��я��������������������������������������������«�����������Ï��«������¾��⏢�¹�����������ď�������������¡� ���������������«�돫�������������\���\��я����ҏ����쏢���ӏ��������¹���������Ð��¡����������������ҏ����쏢���㏢�Ð�������������������·�����������Ï��«��¡� ���³������������3������������\�ޏ��¼\¹��������¡��½���������¾���������¹½�����¡»½������̏�������������������¡�¹���»����·�����������Ώ����ď�����������»�ߏ��������������¹��¡� SSL\µ���¼\Ð���¼¾��⏪����½��Џ�������������������������������¡�ď�ԏ�����������¾��⏪����½���¹¹���·������돪�����»��������Џ��¹�����������\���\���̏����������«������������·���������������������������������¾���¹���(=�����»��ӏ���돪����������)��¡�·���������������������������������������¾���¹���(=�����»��ӏ���돪����������������·)������\�ޏ��¼\¹����������̏��ޏ�����¹���»����·���������¹��¡�
¾��⏪����½��� | ���¹½��� | ���»½��� | �돪��������� | �ޏ�ď����Џ���������� |
���\������¼\���CA¾��⏪����½��� |
|
|
������ | ¹��� |
���������CA¾��⏪����½��� |
|
|
������ | ������ |
��SSL\µ���¼\Ð���¼¾��⏪����½���(�����»��ӏ���돪����������) |
|
|
������ | ������ |
���SSL\µ���¼\Ð���¼¾��⏪����½���(�����»��ӏ���돪����������������·) |
|
|
¹��� | ������ |
4.3. ¾��⏪����½���¹¹���·������HPKP\���\���\������������Ώ�����������¹¹�����¡ޏ�ď����Џ�������
4.2��������������������¡�¾��⏪����½���\���\�����¼\��я������������³������\���\��я����ҏ����Ώ��������¹���������«��������¡� ���������������������Ï������돫����������̏��������������«������������������������¹���»����·���������·�����ď�¡�
�����䏪������������������¡�4.2������������¹���»�������¼��؏��ޏ�������¡��Ώ����������Ԣ����¹���������������������\µ���¼\���\¹�����̏����Џ����ԏ��½������ ������������������̏�������¡�HPKP������»���������������\µ\���\���������¾��⏪����½���¹¹���·��¡�HPKP\���\���\�������������¹¹�����ҏ�¡��������������������Ï������ޏ�ď����Џ��¹���������Ð�������������������«������������������������ ¹���»����·���������¹��¡�
HPKP������»���������������¾���¹���������¾��⏪����½���¹¹���·�����¡ޏ�ď����Џ�����»�������������4������������\�ޏ��¼\¹���������������ޏ��������³���������̏�����������������¹��¡�
- a)¾��⏪����½���¹¹���·������max-age����������������돢����³���������·��¡�\���\��я�����¹��ԏ���������������������������돢����������¹¹���̏�����������¾���¹���
- b)¾��⏪����½���¹¹���·������max-age����������������돢����¾��⏪����½���¹¹���·��������돢����������\���\��я�����¹��ԏ����Ï�����³«����돢��²��ď�����������¹¹���µ���������������«���������«������������������������¾���¹���
- c)¾��⏪����½���¹¹���·������max-age����������������돢����¾��⏪����½���¹¹���·��������돢����������\���\��я�����¹��ԏ����Ï�����³«����돢��²��ď�����������¹¹���µ���������������«���������«��������������������¡��������·������������������¹¹���̏��������������«���������̏�¡�¹¹���·��������돢����������¾��⏪����½��Џ�����������⡭��䡭��ӏ�����max-age + ��Ï��\��쏢�¼\Ð���¼\���\���\�ߏ��������������¾���¹���
- d)¾��⏪����½���¹¹���·������max-age����������������돢����¾��⏪����½���¹¹���·��������돢����������\���\��я�����¹��ԏ����Ï�����³«����돢��²��ď�����������¹¹���µ���������������«���������«��������������������¡��������·������������������¹¹���̏��������������«���������̏�¡�¹¹���·��������돢����������¾��⏪����½��Џ�����������⡭��䡭��ӏ�����max-age + ��Ï��\��쏢�¼\Ð���¼\���\���\�ߏ��������������������¾���¹���
- a-1) \������¼\���¾��⏪����½��Џ����������������CA¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·�����������쏢������¡���µ���\µ\����¼\���������������¹������»�����ď�������¡�¼���²��я�¡�max-age������������¾��⏪����½���¹¹���·��������������¡�»��������Џ��¹������\������¼\���¾��⏪����½��Џ�¡��������CA¾��⏪����½��Џ�����������������¹¹���̏��������������³���������̏��������«������������¾���¹�����¡�(������µ���\µ\����¼\�����������³�����ҏ��������«�����������ď�������¡�돫�������\������¼\��������2\���·���(=max-age)\µ���¼\���\¹¾���³²������������������\���\¹\�������������¡�)
- b-1) \������¼\���¾��⏪����½��Џ����������������CA¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·�����������쏢������¡���µ���\µ\����¼\���������������¹������»�����ď�������¡�¼���²��я�¡�max-age������������¾��⏪����½���¹¹���·��������������¡�»��������Џ��¹������\������¼\���¾��⏪����½��Џ�¡��������CA¾��⏪����½��Џ��̏�����������������������¹¹���µ���������������«��µ��𡯏�������������������𡯏�����¾���¹�����¡��������·������������\µ\����¼\���\��⏢�¼\���������������������¹��Ï������µ������������������������¾���¹�����¡�¾��⏪����½��Џ�����¹���\µ���¼\���\¹����������¹¹��¡�EV����������������¹¹����������������������ޏ�������¡�
- b-2) SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·�����������쏢������¡�OpenSSL�����㏢����¼���²��я�����¾��⏪����½���¹¹���·������»��������Џ��¹�����������\���\���̏��¹������������»��ӏ���돪����������µ��������¡�������µ������������������������¾���¹���
- c-1) \������¼\���¾��⏪����½��Џ����������������CA¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·���������������������̏�¡�¼���²���¾��⏪����½���¹¹���·������������\������¼\���¾��⏪����½��Џ�¡��������CA¾��⏪����½��Џ���������¹¹��������������������������¡���µ���\µ\����¼\������«������������²��я����⏢�̏����������������������돢¡���¹¹���µ���������������«�����������Ï��«���½���������̏��������«�����������������ď�������¡�»���������������������¡�¾��⏪����½���¹¹���·������max-age + ��Ï������돢����¼���»��䏢�·��������������⡭��䡭��ӏ�����½���������������������������»��ӏ����¾��⏪����½��Џ�����¹��ԏ��·�����ď�������¡�����������������\������¼\���¾��⏪����½��Џ�¡��������CA¾��⏪����½��Џ�����������¹¹������������������������������������¾���¹���(������¹¹���̏��������ޏ��������Ða-1������\�ޏ��¼\¹��������������������¡�)
- c-2) SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·���������������������̏�¡�OpenSSL������»��������������돢¡�\���\���\���\��������µ����½�����������\���\����������¹������\���\���\�ߏ��������¾��������������������������ď�������¡�»��ӏ���돢����¹¹���·����������������³«����돢�������������«�����������돢¡�¾��⏪����½���¹¹���·������max-age + ��Ï������돢����¼���»��䏢�·��������������⡭��䡭��ӏ�����½���������������������������»��ӏ����¾��⏪����½��Џ�����¹��ԏ��������������¾���¹���
- c-3) SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·���������������������̏�¡�HSMµ����½������»���������SSL\��\���\»\���\������¼\��ď��¼������»��������������������쏢������¡�»��ӏ���돢����¹¹���·����������������³«����돢�������������«�����������돢¡�¾��⏪����½���¹¹���·������max-age + ��Ï������돢����¼���»��䏢�·��������������⡭��䡭��ӏ�����½���������������������������»��ӏ����¾��⏪����½��Џ�����¹��ԏ��������������¾���¹�����¡�돪�¹��ԏ�����ď��������c-2����������ޏ��������������������������������¹
- d-1) SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������·���������������������̏�¡�Let's Encrypt�������돫������ԏ��������¾����������������������Ï�������¡�¾��⏪����½���¹¹���·��������¡�돢����¾��⏪����½��Џ����������»��Џ�����¼��돢����½����������̏��µ��������¡�max-age + ��Ï�������¡���䡭��ӏ�����������⡭��䡭��ӏ�����\��쏢�¼\Ð���¼\���\���\�ߏ��̏��������������������¾���¹���
- a�������Ð�ޏ��) ¾��⏪����½���¹¹���·��������돪��·��¡�\���\��\���\µ���¼\Ð���¼������HPKP\���\���\������������Ώ�����������������¹¹���·������������������������������
- b�������Ð�ޏ��) max-age�����ҏ�������������������µ������������»�����돢¡�¾��⏪����½���¹¹���·������������¡�\���\��\���\µ���¼\Ð���¼������¾��⏪����½��Џ����Ώ�������¡�HPKP\���\���\��������ҏ����Ώ�����������¹¹���·������������������
- c�������Ð�ޏ��) ��������������������������ď��·Ð�����ҏ����������Ï�¡�max-age�����������只�����·�����ď�¡�¾��⏪����½���¹¹���·��¡�HPKP\���\���\��������Ώ��������̏���̏���ߏ�¡�¾��⏪����½��Џ�����¹¹���·��������돢������������¡�����⡭��䡭��ӏ�����\��쏢�¼\Ð���¼\���\���\�ߏ��̏���̏����
- d�������Ð�ޏ��) ���³������\�ޏ��¼\¹������������HPKP������»�����𡯏�������������¡¾������¾��⏪����½��Џ�¡�¾��⏪����½��Џ�����¹���\µ���¼\���\¹������������\���\��я����Ώ���������������¹¹�����ҏ������������¹����������̏���ߏ��̏���������¡�»�����������������������¡�돫�������\������¼\��������\µ���¼\���\¹�����䏪�³�����ԏ��½¾���³²����max-age�����̏����㏪�������������¹��������¡�
4.4. \Ð\���\���\��\���\��\���\��я����������������Ï����ď��¾�������������ޏ��������������µ
������������½��ҏ����㏢���ď����������Ï�������¡�²��ď��«�돫���������¡�¾��⏪����½���\���\�����¼\��я�����������\���\���\������·������������\���\��я����ҏ���̏����롭������������������ޏ��������Ð���������ޏ��������»�����я�¡�SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ��¹������¾���¹�����������¡½��돩�»���������������������������SSL\µ���¼\Ð���¼¾��⏪����½��Џ��������������폢��돢�������Ð���·��������¡�¾��������¡�¾��⏪����½���¹¹���·������»��������Ï��½���������������������폢��돢����»��ӏ���돢����������������·�����������쏢�ޏ�������������������¡��½����������³«����돢����\Ð\���\���\��\���\��\���\��я��������·�����������Ώ��������·�����������쏢�ޏ��Ð��¡��������µ���·������\Ð\���\���\��\���\�ߏ��������·������»��������Џ����������¡�(������½��ҏ����������������������������������������¹����)\¹\������¼\¹������¾��⏪����½��Џ�����\���\��я����¡돪�¹��ԏ���²������½���������¹��¡�
���·���«���·���������̏�������¡��������폢��돢���ҡ돪�¹��ԏ�����������\Ð\���\���\��\���\�ߏ��������·������»��ӏ���돪����������·�����������쏢���¡��³���������̏����̏����Џ��������������������������������\�ޏ��¼\¹������\���\��\�ޏ��¼\¹���������¹��¡�����𡯏��Ð�돪�²¼�����¡돫�������������µ������³�����������Ï�����\�ޏ��¼\¹��������������¡�¾��⏪����½���¹¹���·������돪�������¡��½������»��ӏ���돪����������·�����ď����������폢��돢����»��������Џ��¹���������³������������������������������»�����я�¡�
- CA¾��⏪����½��Џ�����\Ð\���\���\��\���\��Pin
- �����¾�����������¹��ԏ�����¾��⏪����½���¹¹���·���������·�����������������¹¹���·�����������쏢������������¡�»��ӏ���돢�����돪�¹��ԏ��������������������폢��돢�̏�������돩Ώ��¹�����������������������Ï��³�����������������������������»�����я��·��¡�돪�¹��ԏ���������������³«����돢����Pin������\������¼\��������������³«���·�����������������������������¾������������������������������»�����я�¡�
- HSM������»���������������������������¾���¹���������\Ð\���\���\��\���\��
- �����¾�������������SSL\��\���\»\���\������¼\��ď��¼������»���������������������������\�ޏ��¼\¹��������������¡��������폢��돢����¼���������½Ð���·������²������½������\������¼\���\���\��\��\»\\���\���\���\��\���\���\������¼\���(HSM)������������������¹�������������̡돫������������쏢�������¹��¡�HSM������»��������Џ��·�����ď����¹¹���·��¡�¾��⏪����½���¹¹���·��������������¡�»��ӏ���돢���������������폢��돢���ҡ���ӏ��������«������������·�����������쏢���¡�¹¹���·»��Џ��������½������������»������������·������¹¹���·������»��������Џ��¹�����������������������Ï��³���������̏�����������������»�����я�¡�¹¹���·»��Џ�������������¡��·�����ď����������\���\�����ҏ�����������·��������¡��³������������»��������Џ��·���������¹��¡��³���������ď�������������¡��¾�������������������\Ð\���\���\��\���\��Pin�����ҏ�����³«���¹���������³���������̏���������������������������������¹��¡�
- \���\��\���²��������������������\���\����������·������SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����¹��ԏ��¹�����������¾�������������¾���¹���
- �����¾���������������������������������������¡�\���\��\���\���\���\���\��������µ����½������»��������Џ��·��������¡�\���\���\��я�����²����»���м«����돢���������\���\�������������¹��ԏ�������¡��³�����������ҏ����Џ�����������¾��⏪����½��Џ����ҏ�����¹��ԏ��·��¡��·���·������¾��⏪����½��Џ�����³������¼���¹�������������������̏����������������¹��¡��½���������������Ï����������¾���������������������¡�»��ӏ���돢����������������·�����������쏢���������ď���돢���ҏ�����¹���»��Џ�����»��������Џ��¹�����������������������Ï��³���������̏�����������������»�����я�¡�
- Let's Encrypt������»���������¾���¹���
- ���µ����������������³��á돫�����������¹��ԏ�ď�ԏ����ҏ�����������¾��⏪����½��Џ�����¹���\µ���¼\���\¹��������������Let's Encrypt��������������¡�¾��⏪����½��Џ���������¹���\��\���\»\¹����\¹\���\���\��\���������������������¼«�����²½���µ���������������������������¹���̏�¡��³������������¾��⏪����½��Џ�����¹¹���·»��Џ�����������¼«����돢���������\���\����������µ������������������������¡�»��ӏ���돢����������������·�����������������ď����\���\������»��������Џ��¹���������³���������̏�����������������»�����я�¡�
- SSL\µ���¼\Ð���¼¾��⏪����½��Џ��������Ð���·������Pin�����ҏ��¹������¾���¹�����������¡��«��������¡�
- OpenSSL������������������\³\���\���\��������������\���\����������·��¡�\���\���\���\��\���������¾��⏪����½��Џ�����¹��ԏ����µ��������ҏ�����������·��������¡�¾��⏪����½��Џ�����¹��ԏ��·��������������������𡯏����������¾�������������»��������Џ��¹������¾���¹���
4.5. CA����돢����\Ð\���\���\��\���\��\���\��я�����\���\¹\¹\�������������
\������¼\���¾��⏪����½��Џ����������������CA¾��⏪����½��Џ�����\���\��я����ҏ����Ώ��������¹������¾���¹�����¡� �돫�����ߏ��·������������\���\��я�������¡�¾������������¹¹���·���������̏��������«������������������¾���¹���������������²��ď�������������������������¡� ���µ��������������������¡��䏪���쏢��������³«����돢����\���\���\·\���������������������̏���ߏ����������������������»�����я�¡� SHA256������������������¡�ޏ�����32\Ð\���\������������������������������в��ď������������������������������ޏ��������¹��¡�
�����ď�������¡�HPKP\���\���\����������돫����«���·�������돫�����ߏ��·������������\���\��я��������������������«�����������ď����叢���Ï��̏�¡� ��������������������돫�½��䏢�¹�����������������������¡ޏ�ď�����\���\¹�����ҏ���������돪؏������������������������������¹�����𡯏����������쏢������¡� ���½���³��������¡�\���\¹\¹\������·�����ď������������̏�¡�돪�²¼�������������������¹��¡�
���������������������������¹��¡���¹��ԏ�����������������������������������»�ߏ��������������������������¹wpin-sha256="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; ���³��������������¡�16��ď����ď�ԏ����� 0000000000000000000000000000000000000000000000000000000000000000 (32\Ð\���\���)
4.6. ¾��⏪����½���\���\�����¼\��я����������������ď��\���\��я����ҏ��������ޏ������������돪؏��������������������
���³��������������������¡�¾��⏪����½���\���\�����¼\��я������돫�����ߏ��¹������\���\��я�����ď�ԏ�����1�����������ҏ���돪���я�����µ������������·������������������·�����ď��̏�¡� ���³�����������ҏ����ď�ԏ�¡�����𡯏��Ð��¡�\������¼\���¾��⏪����½��Џ�������¡��������CA¾��⏪����½��Џ�������¡�SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҡ돫�����ߏ��µ���»������¾���¹�����������������¡� �����������Ï������������������«������¹���»����·�����ď�����������»�ߏ��������������¹��¡�
�����������돢¡�SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ�������������������¡�¼������������������CA¾��⏪����½��Џ�¡�¼�������\������¼\���¾��⏪����½��Џ�����\���\��я����ҏ�����²������·������������������ ���³������������¹�����𡯏��������������·�����������Ï�¡� ����ޏ����������\���\�����ҏ����ď�ԏ��������¾����������«������������\µ���¼\Ð���¼¾��⏪����½��Џ�����¹��ԏ�����»��������Џ��·�����������������������������Ï�¡��ӏ����ď���������돢����»��ӏ����ҏ���돪���я��������·���������¹��¡� SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����\���\��я����ҏ�����������»��ӏ��̏�돪���������¡����돪����̏����������������쏢����\���\»HTTPS���������Ð���¹������ ��돪���������������������Ð��돫ӏ���������������������¡�4.2�����������������½��ҏ����㏢�������·�����ď�¡�
���½���³�����������������CA¾��⏪����½��Џ����¡돫�����ߏ��¹������\���\��я����ҏ�����·�����������Ώ����ď����������������Ï��������·�����������Ï��«��¡�\���\��я��������������������¹������¾��⏪����½��Џ����������돪�����������������������Џ��������������������»������������¡��������CA¾��⏪����½��Џ�����\���\��я����ҏ�����¹���³��������������¡�\���\»HTTPS\µ\���\�����돫��������̏����Џ��·�����������������������ď��������������»�����돢¡�\»\\���\���\���\�����¢���������㏢����¾������̏��������������»�����я�¡����������ď�¡�ޏ�ď����Џ�������������������¡�\���\��я����¡돫�����ߏ��������只������\���\��ѡ돫������������������������㏢���������Џ��·��������¡����������ď�¡�\���\��\���\µ\���\���\��쏢�¼\������¼���������ޏ������������������������������������������돪�����������������������������¾��⏪����½��Џ�����\���\���\���\���\���������¹¹�����¡ޏ�ď����Џ�����³��������������������»���������������������������������������������¹��¡��³���������������Ð���·��¡�\������¼\���¾��⏪����½��Џ�����\���\��я�����²�����𡯏�����¾���¹������������������������������ޏ��������³���������������¹��¡�\»\\���\���\���\�����������㏢����¾������̏����������돢¡�돪�¹��ԏ����¡ޏ�ď����Џ����������»���������������������������������¹��¡�
½¾��������������¡�¾��⏪����½���\���\�����¼\��я����������������ď�ԏ�����\���\��я����ҏ��������ޏ������������돪؏�����̏�������������¡��«��𡯏������������ޏ�ď����Џ��̏����»�����������������������������ޏ�����������������¡�»��Ώ����������ď����叢���Ï��̏����������������������������Ï��³���������̏�������𡯏��������¹��¡�
4.7. ����ޏ�����CA¾��⏪����½��Џ�����Pin���·���³���ޏ�����¾���¹���������²�����
�����������ӏ�������������¡�ޏ�����\������¼\��������¾���������¡�������ӏ����¾����������«������������¹��ԏ��·������������������������¾���¹�����������¡��½���������¾�������������¾��⏪����½��Џ���������³«����돢����Pin���¹���������³���������̏�����������������¹��¡��½������¾���¹�����������������¡�\Ð\���\���\��\���\��Pin��������¡��¾����������«�������돪�¹��ԏ�����������Pin�����Ң�µ��𡯏�������������������𡯏��������������ޏ�����������������������������������¡����������я���������������̏����ӏ������������������������������³���������������������������������¹��¡���³«����돢����\���\���\·\���������������������̏���ߏ�������������������¡�32\Ð\���\�������������������Base64���½���½�����������������Ð(¾�ߏ��������·���������ޏ��������Ð)²��ď������������������������³���������������������������������¹��¡�
�����ď��������·��¡��ӏ����ӏ�������������¡ߏ�����½��Џ�����������·�����ď��̏�¡�SSL\µ���¼\Ð���¼¾��⏪����½��Џ����ҏ�����¹��ԏ��¹������»��������Џ��·�����������������ď���������ӏ����¾����������̏�¡�¼�������¾��⏪����½��Џ�����¹���»��Џ���������������ޏ���������������ӏ����¾���������¡�ޏ�����������³«����돢�����������������������������Ï�����¾��⏢�̏����������������»�����я�¡�돪�²¼���������³��������������������¡�ޏ����������������CA¾��⏪����½��Џ���»���������������������������²������½������̏����������������¹��¡�
- �����������CA¾��⏪����½��Џ�����������⡭��䏢������������¡�5���������«������10�����������̏����㏢�������¹��¡��½������������⡭��䏢�����������¾����̏����̏����㏢�«��������¡�돪����¹������������2��¡�3������������»������·��������¡��½��������������ӏ����¾����������«������������¾��⏪����½��Џ��̏�����¹��ԏ��µ��������������������������������¡��̏�����¼��ԏ�����������������CA���«������¾��⏪����½��Џ����ҏ�����¹��ԏ��·�����������������������Ï����������Ï��������������������������¹��¡�
- ¾��⏪����½��Џ���������¹��ԏ�ď�ԏ�������ď�ԏ��̏����ď�������������������������¡��½���������������ޏ�¡�¾��⏪����½���¼��돢����\���\¹\���(CRL)������\µ\���\��돢����������������������������������������¹������������¡�돫����������������������CA���«������������¹��ԏ�������ď�ԏ����ҏ����폢�������·��������¡�돪�¹��Ώ�����¾��⏪����½��Џ�����¹��ԏ�������¡��·���·�����������������CA���«������������¹��ԏ��µ���»������\�ޏ��¼\¹���̏����������������¹��¡�
- �������������¡��¾������������¡ޏ�ď�����¾������������ԏ������¡�\µ\���\Ð���¼¹��·������������������«������¾��⏪����½��Џ�����¹���\µ���¼\���\¹�����������������¡������������������������CA���̡ޏ�ď����Џ�����»��Ώ�¡�\µ���¼\���\¹½��쏪�»���������������������³���������̏����������������¹��¡�
��������⏢����Pin�����ҏ����Ώ��������·�����ď���ޏ�����\������¼\���CA���������·�����������������������CA���«��������¡��·���·������¾��⏪����½��Џ��̏�����¹��ԏ��·��������������������𡯏��������������������������«�����������ď�돪�������¡���������¾��⏪����½��Џ����¡돪�¹��ԏ�������¡��¹���돢������������������������돢¡�max-age������»������������·�����ġ���䡭��ӏ�¡�돫�������������������1\���·����«������1�����������̏����㏢������¡�¾��⏪����½��Џ��������Џ�������������𡯏��̏�����������������»�����я�¡�돪���������¾���¹�����¡��½�����¡���䡭��ӏ�¡�����⏢����HTTPS��������ď��̏��������������������������������������»��ӏ���������������𡯏��������¹��¡�
���³���������������Ï������ޏ������������ҏ�¡�·��⏢���돢�¹���������������̏��µ���������������ޏ����������������������������»�����я�¡�¾��⏪����½��Џ�����¹¹���·���¹���������������½���������·��¡�ޏ����������������CA���«������¾��⏪����½��Џ��̏�����¹��ԏ�����������������������������������«������������»��Џ�����A��������¡��½���³���«������max-age·Ð²������·������»��Џ�����B������µ�����ď��·�����������쏢���¡��·���·������¾��⏪����½��Џ�����¼������������·���������¹��¡�(����»������������������»�����я�¡�)��¡�\Ð\���\���\��\���\��Pin���������·��������¡��½�������·���·������¾��⏪����½��Џ������������������������CA¾��⏪����½��Џ���������³«����돢����Pin������\���\��\���\µ���¼\Ð���¼������\���\���\��������������Ώ��������·���������¹��¡�»��Џ�����B��������������������������¡�½������������������·���·������¾��⏪����½��Џ��������������Џ�������������𡯏�����¼���»��䏢�·���������¹��¡��³������»��ӏ��«��������¡�max-age������1�����������㏢¡¹���������������������е��\µ\���\�������������»��Ώ����������������ҏ��폢�������������¹���̏�¡���½��ҏ����㏢���ď����������Ï�����¾��⏪����½���¹¹���·������\���\¹\�������������������¡¾·����«������1\���·������̏����㏢���������Ώ��������¹�������������̏����������ӏ����������������Ï�����»�ߏ��������������¹��¡�
4.8. 2������������CA¾��⏪����½��Џ�����Pin���¹������¾���¹���������²�����
SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����¹¹���·������돪�������¡�2������������¾��⏪����½��Џ�����¹���\µ���¼\���\¹��¡�����𡯏��ÐSymantec������GlobalSign�����ҏ����ҏ����Ώ�����¾�����������¹��𡯏��������������·��������¡��³������������2���������������������CA¾��⏪����½��Џ�����Pin������\���\���\��������������Ώ��������·��¡�»��������Џ��·����������������������������������������\Ð\���\���\��\���\��Pin���������¹������������������¡��������«���������«���������������������������»�ߏ��������������¹��¡�
���·���«���·���������̏�������¡��½��ҏ��������³��������������������¡�Symantec������¼�������������¹��ԏ��·�����������������������쏢���Ï��������½���������·������������������GlobalSign���������������CA¾��⏪����½��Џ�����Pin����»�����𡯏�����������\�ޏ��¼\¹���̏����������������¹��¡�
�돪�¾������������������Ï�������¡�CA¾��⏪����½��Џ�����Pin�����ҏ�����������\�ޏ��¼\¹��������������¡�¾��⏪����½��Џ�����¹���\µ���¼\���\¹������µ������������돢����������\���\���\���\������·���������̏�������¡�\���\��\���\µ���¼\Ð���¼������HPKP�����ҡޏ�ď����Џ��¹��������������������������������������������������������»�ߏ��������������»�����я��«? ���½��������������������¡�������������¡�¼«����̏�����\³\���\���\������¼\������������������SSL\µ���¼\Ð���¼¾��⏪����½��Џ�����Pin�����ҏ������������������̏�¡������������������������������������������Ï�����µ������������·������������������¹��¡�
4.9. max-age������\���\¹\¹\���������������¹�����𡯏�����
RFC 7469 4.1������������ \»\\���\���\���\��¹���»������������쏢������������¡�max-age������돪��������������������������������������돪�²¼���������������Ï�����µ��돪䏢�µ�����������������쏢������¡� ����60�����䏢��\Ð\���\���\¹������¼��������������ď��������«��������������¡ߏ��������������������������������������¹��¡�
RFC 7469 4.1. Maximum max-age �����������������ď�������¡�5¾���������Scott Helme»���������HPKP���Ð�ޏ��\���\���\���\���\���\¹\�������������Ï�����������������»��������������돢돢������������¡� �������������������������ޏ�ď����Џ����ҏ��·�����������������������Ώ�����������������������������¡� 30�����䏢��26%��¡�¼�������������60�����䏢��19%�����������ď��������������¹��¡�
However, a value on the order of 60 days (5,184,000 seconds) may be considered a balance between the two competing security concerns.
max-age�������������̏��¹���¹�����������������¡�
- �����Ώ�����\���\¹������������������¾���³²������������»��Џ��������¹����䡭��ӏ����䏪�³���������������������\������¼\������½Ð���������·������������
- ��������⡭��䡭��ӏ�����\��쏢�¼\Ð���¼\���\���\�ߏ��̏���̏���ߏ�����¾���¹�����¡�¼���¼��������쏢����¾��⏪����½��Џ�������⡭��䡭��ӏ��̏����䏢���돢�������·�������ޏ�ď�����\³\¹\����������ޏ����������¹������
���������ޏ�������������¡�\���\»������HTTPS\µ\���\���������¾���������¼���������������������²������½�������¹���������������������������������������»��ӏ��«������»�ߏ��������������¹��¡�
�����䏪����\µ\���\���������max-age���̏��»��������������¡�����⡭��䏢�������̏����⏢����������\���\���\���\���\�돢������¡�\���\���\���\���¾���¼��������������㏢��������³²��������������������
µ��\µ\���\������̏�돫�������������¡��½���³������1�����������㏪�¹������max-age������HPKP\���\���\������Ð�ޏ�Џ�����\���\»\µ\���\������̏�돫����������������ď��������¹��������������¡�
�돫������㏢�½���������������Ï��������������������Ð��¡��ӏ�����1����������ӏ�������¡�\���\»\µ\���\������������·���«·��ҏ��²�����������������������Ï�����\������¼\�����̏��������������¹���������³���������̏����������������¹��¡�
max-age���̏��»��������������¡��½����������������¹��·���������\���\���\���\¹������������𡯏����������ď�������¡�max-age�������������������̏����㏪�¹���������·�����������쏢��������̏���ߏ��̏����������������¹��¡�
���������¹������¾��Ï�����\½���¼\¹���«��������¡� \���\»\µ\���\��������ҏ�돫����������������������������ď�����µ�����������������������������������¡��½�����������叢����»��С���ӏ��������«���«������������������������»�ߏ��������������¹��¡� ��ď�ԏ����䏢�«������1½µ����ӏ����������������Ð������������������µ���������������������»�ߏ��������������¹��¡� ���¾·�������1\���·�������µ������������«������������������������������������»��ӏ��������������������������·�����������Ï�¡� ����\���\»HTTPS\µ\���\���������������������µ��������������������������������������㏢�������������������������������������������������«���«���������«��¡ߏ����������������������� max-age������돪�¾������������·����������������������̏�����������������»�ߏ��������������¹��¡�
½¾��������������¡�¹��·���������²��������Џ��������\���\¹\���������\���\������¼\���\���\��؏�������¡�»���������max-age������15�����䏢�«30�����䏪���̏����㏢���� �����Ώ��������¹�������������̏��������������������Ï�����»�ߏ��������������������������¹��¡�
5. HPKP���������������������̏�����»����������������������������������������«
2016������3·�������Netcraft¼��ҏ�����SSL�����̏����Џ������돢����������������������Ð��¡���³��Ï����������������돢�«0.09%������4100\µ\���\����돪�²¼���돢�������������·���«��¡�HPKP�����ҏ����Ώ��������·�����������쏢���������돢¡��Ώ��������������������������������ď��������½�����Ï�������¡µ���·�����������Ώ��������������������������������������������¡��½���������Ï�����3000\µ\���\��������̏����㏢�����������������½�����Ï��������¹��¡�
�����������ď�¡�CSP(Content Security Policy)������HPKP������¾��䏢�·��������¡�HPKP����������¾��⏢����\���\����¼\���������\µ\���\��������ҡޏ�ġޏ�����·������������������Scott Helme»���������\���\���\�����������������������Ð��¡�Alexa¾����돪�100�����䏢����\µ\���\������������Ï�����HPKP�����ҏ����Ώ��������·������������������������������¡����������돢�«375\µ\���\����������������������ď����������������Ï�����¹��Ï����������������������¹��¡�
Scott Helme»�����������¡����돢돢����돪�����\������¼\��ď�����������³«���·�����������쏢������¡�2016������8·���»��Џ�����������������HPKP���Ð�ޏ��\µ\���\���������\���\���\���\��я��¾\���\¹\���448·������̏������������ď�����������¡��½������������\��㏢�¼\¹������2017������2·����½��돩Ώ�����������HPKP\���\���\��������ҏ����ӏ��¹\µ\���\���283·������������Ð���·������¾������·�������돢돢�·�����������Ώ��������·�����ď�¡�
|
�����������돢¡�HPKP\���\���\������������·���������µ���·������\���\��폢�¼\���\���\������������������������������������������«��¡����������ď�¡�»���������¾���PIN������\���\���\·\���������������2�������돪�¾�������̏���ߏ��������¹���̏�¡�2�������돪�¾��������������«�����������������á���Џ�������������¡�\���\���\������̏��������������̏����㏪�µ���·���������«�����ҏ���������㏢�������·�����ď�¡�16%�����������Ώ��������̏��µ���·���������������������³���������̏��������«���������������·�����ď�¡�ӡ돫�����������������������������������������������������������¡�pin-sha256����돪����̏��µ��������¡�pin-sha256�������������̏����ԏ���̏����⏢¡�pin-sha256����돪����̡돫����������·���«��������������¡��������������������¹���������¹��¡�����𡯏��Ð���³�����я������������������̏����������������·�����ď�¡�
|
| ¼���������¡�HPKP\���\���\���������PIN������\���\���\·\���������������������ď�ԏ��������¹��¡�돫�������������������PIN������\���\���\·\���������������2������������½½����̏�������¡�2������������������������������������������\µ\���\������̏����ď��������������������������¹���̏�¡�1���������·���«������������������������������\µ\���\�����������¡�3�������돪�¾��������ҏ����Ώ��������·������������������\µ\���\��������������������ӏ�ď�ԏ����������������¹��¡�15�����������Ώ��������·�����������������������������������Ï�����¼��ԏ����������������������·�����ď�¡� |
| HPKP��������������⏢����������³«�����\���\���\·\�������������������䡭��ӏ����ҏ������������������������������������̏�¡�max-age�������������������¹��¡�RFC��������������¡�60�����䏢���ҏ�ď��¾��폢�·�����������������������������Ï��������¹���̏�¡�¼�����돪�����������30�����䏢���ҏ����Ώ��������¹������\µ\���\������̏����ď��������������������«���������������¹��¡����������ď�¡�\���\¹\����������������������«1������돪�²¼���������·������������������\µ\���\��������������������ӏ�ď�ԏ����������������¹��¡»������������\µ\���\���������¾���������¼���������������������²������½�������¹������������������������¹���·��¡¹���¹��������������������Ώ�����������¼��돪���ԏ��·������¾���¹������½�����¡���䡭��ӏ����䏪�³�����ԏ��½���������������������������·���������������������¹��¡�1�����������������������������Ώ��������¹��������������¡��Ώ�����¼��돪���ԏ��·�����������������ď�����1����������ӏ����䏪�³���������������������\������¼\�����¼����½Ð������\���\������¼\���³���¼���������������������²���������·���������������¹��������¡� |
| report-uri�����ҏ����Ώ��������¹��������������¡Ð�ޏ��\���\���\���\�����������������Ð��¡�HPKP������\��\������¼������돪�����»������������·������URL������\���\����¼\��������ҏ�������������³���������̏�����������������¹��¡�Jxck���µ�����я�����\µ\���\��������������������Ώ��������µ���������������������������½�����Ï��������¹���̏�¡����������������������������Ώ��������·������������������\µ\���\���������¾������������½�����Ï��������¹��¡� |
| HPKP\���\���\���������������������������¡�includeSubDomain������������������\��\���\���\���\�����ҏ��������ޏ��������³���������̏�����������������¹��¡��³�����������ҏ��������ޏ�����������example.com������HPKP�����ҏ����Ώ��������·�����������쏢�ޏ��Ð��¡�sub1.example.com\���\���\���\��я��������Ð���·����������������̏����Џ��µ�����������������������Ï��������������������������¹��¡� |
| HPKP\���\���\������������·��������¡���¾���������"Public-Key-Pins"������»������������������¹���̏�¡�"Public-Key-Pins-Report-Only"������»�����𡯏��Ð��¡�\���\���\���\��������HPKP�����ҏ�����¾��⏢�»�����돢������¡�\��\������¼������������������������������HTTPS�����䏪�³���������³���ޏ�����������������\���\¹\��������Џ�����µ����½���̏����������������¹��¡�����10%������\µ\���\������̏��³������\���\¹\��������Џ��������Ώ�����������»������������������������������������������«���������������¹��¡� |
| Scott Helme»���������2017������»��Џ����������������䏪�³²������½������HPKP���Ð�ޏ��\µ\���\���283·������������Ï�����gTLD(com��¡�org������)��¡�ccTLD(de��¡�ru��¡�jp������)������������·�����ď�ԏ����ҏ���������㏢���������Ώ�������������¡�com���̏����ď��������������������ӏ��³���������������·��������¡�¼�����돪�����³���TLD�������Ð������·�����ď�ԏ�����������³��я��·���������²�����̏����������ď�����TLD���̏��«���������������������·�����ď�¡�com������1.3²�����¡�net������de������1600�����䏢¡�ru������540������\���\���\���\��я��̏��Ð�����ď��µ���������������������������¹���̏�¡�\���\���\���\��я��Ð�����ď�ď�ԏ����������������㏢������¡�����¡������쏢����ru��¡�org��¡�de������������½Ð���·�����������ď����������������ď�¡�\��\���\���¾������������½�������¾���������·���������������������¹���̏�¡�\���\���\������¼������ccTLD������¹��Џ�������������������������������¡���³��я�����HPKP�����Ώ��������̏����ď�����¹��Џ��̏����������������¹��¡����������ď�¡�edu���̡돪�¾���������¾�������������������������µ������������������������������·�����ď�¡��½�������¾��������������¡�ar/br/cl/il/pt/nl/tn/sk��������������¡�\���\���\������¼�������������������� 50����������������������������·�����ď�¡� |
6. ��������HPKP������²��ď��̏��������ޏ��������«�����������ď������«
hpkp����������������¼«������������¡��ԏ��µ������¹��ԏ��µ������������¾��⏪����½��Џ�����»���������������µ��\µ\���\��������ҏ��������돢���ď�����������»��������������Ώ��������·��������������Џ���������������¡�Chrome������Firefox������\���\���\���\��������������¹��Џ����Ώ�����\��\���\������¼\���\���\��я����� �����Ï�����������µ����½���·�����������������������������Ï�����»�ߏ�𡯏��������¹��¡� ���½�����¡돫�����������HPKP\���\���\���������»��������������ď�����¼�돢������¡� ���«�������������ޏ�ď����Џ��̏����»�������������Џ��·��������¡�¼��돪���ԏ��¹������������ 2\���·������������������������ď�¡¹����䡭��ӏ�¡�돫������ԏ�����\������¼\�������������䏪�³��������������������������������������Ï�¡�¾���³²���̏��������������¹������\���\¹\���������¹������������³���������̏��������«���������������·�����ď�¡�
��������ď��������������¾������\µ\���\��������������ԏ��µ¾��⏪����½��Џ�����»���������������������������µ��\µ\���\��������ҏ�돫�����\���\���\���\������������«�����ӏ����ď����������돢¡�¹��·���������¼��؏��ޏ�����²������½�������������������������������������������ď�������¡�HPKP������»���������������\µ���¼\���\¹¾���³²������\���\¹\���������¼���������������������������HPKP�����ҏ��³�����Џ��¹����������̏���ߏ�����������������������»�ߏ��������������¹��¡�
��������������¡�돫�������\µ\���\��������Џ��ޏ�����HPKP����������µ��⏢�̏�ď�������������ď�������������������¡�ޏ�ď����Џ������·���������¹������\µ���¼\���\¹¾���³²����µ������������������������»�������������������¹¹���̏���̏���ߏ�����������»�ߏ��������������¹���̏�¡����������Ï��¹���������Ð���³����������²������½���������������������������·�����������Ï��«����
max-age������2\���·�������²¾���������·��������¡� HPKP\���\���\����������ޏ�ď�����¾���������²�����������������������¡�¾��⏪����½���¹¹���·������2\���·�����돢������¡�\���\��я��̏�����¹¹�����������������������������������Ώ�����������»��ӏ���돪���Ώ��������·���������ޏ��������Ð�����������������돢¡�ӡ돫���𡯏�����µ���������������������\���\���\��������Ώ����������ҏ��¾���·��������������¡�2\���·���������������ď��¾���³²���̏��������������¹�����������������������Ï��³���������������¹��¡�
���½���³��������¡�ӡ돫���𡯏�����µ���������������������»��Џ�������������¡��¹���돢���������Ώ�����������¹¹���̏����ġޏ����������������ď�������¡�\µ���¼\Ð���¼�����Ï�����»��������������쏢����\���\���\���\��������HPKP������¾��⏢���ҏ��µ������²½���������������\\���\¹\���\���\������̏�������������������������������»�ߏ����Ï������������¹��¡��¼������¹���»����·�����ď����؏����������������������������»�����я��̏�¡�����𡯏��Ð��¡�HPKP¹¹���·�����䏢����\���\���\���������µ��돪䏢�¹���������������������·��������¡��Ώ�����������¹¹���·���̏����������Ðmax-age�����������������������������¹¹���·���·��¡��µ������²½���¹��������������������¡��µ������²½���¹������������������������������µ����½�����ҏ����Ѣ�����¹���������Ð��¡�ޏ�ď����Џ�����max-age�����������Ώ�����\���\¹������¼��ӏ����叢�«������²��ҏ����䏢�µ�����������������������Ï�����»�ߏ��������������¹��¡�
���¾���������������³����������������������²���·��������������������������«���������·���������������»�����я��̏�¡�²��ď��������«������¼��������ӏ����������ҏ��·��������������������������¡�HPKP������������µ��⏢�·���½�����Ï����������������������������»�����я�¡�
7. �����쏢����������������
�돪�¾�����¡�HPKP��������������������������¡��������³������\���\��я����ҏ��������������«��¡�max-age�����������������Ï��¹���������«�������������ޏ�ď����Џ��������«��������¡� ������������������������¹���»�����������돪�������ҏ��·�����������Ώ��������·�����ď�¡� ���½»��Џ�������������������¡�HPKP�����ҏ��³�����Џ��¹����������������»��С����¾�돪������������¡� �ޏ�ď����Џ���������������������ҏ��«���ޏ�¡�\µ���¼\���\¹������»��Ώ�����\���\¹\���������¹��������������������������Ï��³������������ ��𡭏�����²��ҏ����������ď��������ޏ����ď���������������������»�ߏ��������������¹��¡�
���³��������������¡�¼«����̏���HPKP����������������������������돢�«������½��Џ�������ď�����������»�ߏ����������������������ď��³�����������ҏ�¡� ��������������������������������돪�������������¡�3�������ޏ�叢�·���돢�������������������������½Ð���»���������·�����ď�¡� ���������«���������������������«�����������ď�������¡���²��ҏ��̡���ӡ돫������������������������ď��������¹�����Ώ��������»�����я�¡� ��������ď�������쏢������������¡�HPKP��������������������������������¡��³���������������������������«���������������������«\���\���\���\������������������������Ï�����³µ������ �������ď���µ�����������ď����������Ï�����»�ߏ��������������¹��¡� ������������¡���\���\���\�돢���������я��������½�����я�����\���\���������������¡ߏ��������������³��������������¡�¡�¡���
8. (»²¹���) HPKP����������������������������������������\���\���\���
- Netcraft: Secure websites shun HTTP Public Key Pinning
- HPKP���̏���¹��ԏ��������������������������������³����������������·�ߏ�¡��������¼����¹��ԏ��������������������«������²��ҏ�������¡���µ»��ӏ�¡�
- Netcraft: HTTP Public Key Pinning: You're doing it wrong!
- Netcraft¼��ҏ�����¡�������������������HPKP���Ð�ޏ��\µ\���\������������Ώ�������������������������������¹������²��ҏ�������¡���µ»��ӏ�¡�
- Scott Helme���µ�����я�����HPKP\���\���\��µ»���
- CSP������HSTS������HPKP������������SSL����������µ»½��Џ���������������²�����������¡�HPKP������������������\���\����¼\���������\µ\���\��� report-uri.io ������ �ޏ�ġޏ�����·������������������Scott Helme���µ�����я�����\���\���\�돢¡�HPKP���Ð�ޏ��\µ\���\���������\���\���\���\���\���\¹\���������������������\������¼\��ď����������������������¹��¡�
- Qualys Blog: Is HTTP Public Key Pinning Dead?
- Ivan Ristic»���������¡���HPKP����½��쏢�������������������������������«���폢¡ߏ�������������¹������µ�����������¡�
- Raymii.org: HTTP Public Key Pinning Extension HPKP for Apache, NGINX and Lighttpd
- ²��ҏ�����������½¼¼�����¡�³���\µ���¼\Ð���¼������������HPKP\���\���\������������Ώ�����������¡�
- MDN: Public Key Pinning
- Mozilla������������������HPKP²��ҏ�������¡�Chrome������Firefox������������HPKP���Ð�ޏ��\Ð���¼\���\���\��я�����µ½��ҏ�¡�\µ���¼\Ð���¼�����Ώ��������� \���\����¼\���µ����½���������·���·������Chrome���·���«»�����𡯏�����������»��ӏ���������µ��⏢������������¡�»²¹�����������������������¡�
- Public Key Pinning������������������������ - Chris Palmer (�����������)
- Chris Palmer������������������HPKP²��ҏ�������¡���²��ҏ����������������̏�¡�½���������������¾��⏪����½���\���\�����¼\��я������������³������\���\��я����ҏ����Ώ��������¹���������«��¡��½������\�ޏ��¼\¹����̏��ޏ�����������������������¹���»����·������µ»��ӏ�¡�
- �����䏢���������䏢����������µ��¡������ԏ��µ������SSL¾��⏪����½��Џ����ҏ��«������������Public Key Pinning������»����¹
- jovi���µ�����я�����������������HPKP(\���\���\���\���)��������������¹������¾��䏢돪㏢�«������¹������������²��ҏ��������������¹��¡�
- Jxck���µ�����я�����\���\���\�돢¡�Public Key Pinning for HTTP(HPKP) ���Ð�ޏ�Џ����� report-uri.io ������������\���\����¼\���¼���½���
- Jxck���µ�����я�����²��ҏ�������¡���������report-uri������µ����½������»����·�����������Ώ����ď�����¹��Ï���µ���½�����¡�
- ������³«�����\���\���\���\���\�돢����������������\������¼\������������� HPKP Supercookies
- ����²��я�����µ»��ӏ������������������������������·������������������������¹���̏�¡� ���������·�����������������µ�����я�����HPKP������»���������������\���\���\���¼������»���������������������\������¼\�����¼���������������������������ҏ�����»������Ώ�������������¹������\¹\���\���\���»��Џ�����¡�
- OWASP: Certificate and Public Key Pinning
- OWASP������²��ҏ�����µ»��ӏ�¡��µ������������¾��Ï����я����������ď�������¡�
9. ������µ
9.1. ������µ(2017.02.26) HPKP������\���\���\���\��\µ\����¼\���¾��آ�·
caniuse.com\µ\���\������������������������¹������\���\���\���\��������µ����½������\µ\����¼\���¾��آ�·������¾��Ï����я����Ѣ�����·���������������������¹���̏�¡�
2017������2·���»��Џ�����������������
HPKP������\���\���\���\��\µ\����¼\���¾��آ�·������������������������������
µ��돪䏢�µ������������������������������������¡�¼�����·�����������쏢����������¹��¡�Firefox��¡�Chrome��¡�Opera��¡�Android������Chrome������������
\µ\����¼\������µ���������������������������¹���̏�¡��½�������돪�³�돢����������\µ\����¼\������µ���������������������������»�����я�¡�
9.2. ������µ(2017.02.26) smashingmagazine.com���������������������·������HPKP¾���³²
���½������������¡�HPKP������������������������·��Џ��³���·����������������㏪���쏢���ҏ��·�����������������ď�������¡� smashingmagazine.com������\���\���\����������¡� HPKP���������������������������������·�����ď����䏪�³¾���³²������������������������������¹���»�����½��Џ��«���������������������������·�����ď�¡� ���³���³��������������¡�돪�²¼���������������Ï�����½��Џ��«���������������������������·�����ď�¡�
- HPKP�����������������¼���¹��·������������Ð���·��������������⏢����µ����½����������
- HPKP���������Ώ�����\���\¹������2016������10·���21�����䏢�«������25�����䏢�������«����HTTPS�����䏪�³¾���³²���̏�����������
- ¾��⏪����½��С���䏢���������⏢����������HPKP\���\���\���������¹¹���·���·�����ď�����\��\������¼������������������������
- ���¹������������¾��⏪����½��Џ���������䏢���������⏢����������\������¼\���\Ð\���\������������������������������
- ��������»\µ\���\������������������������������Ð��¡�HPKP������»���������²��������������������������̏�¡�ޏ�����������¾��Ï����я����Ѣ����\µ\���\��� ��������������¡��½��������̏���ߏ�������������������¡�HPKP�����Ώ�����\���\¹������������������\µ���¼\���\¹������»��Ώ�������¡��������¼���¹��·��������������������������������������¼�돪ҏ�����
- max-age�����ҏ��»���������¹���������³�����������������������������������������ҡ�������������������������