Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
Java ARchive (JAR) �ե�����ν�̾������������̾�դ� JAR �ե�����ν�̾�ڤ��ޤ���
jarsigner -verify [ options ] jar-file
5 1. Java ARchive (JAR) �ե�����˽�̾���դ���
5 2. ��̾�դ� JAR �ե�����ν�̾�ȴ������ڤ���
JAR ��ǽ��Ȥ��ȡ����饹�ե����롢�������������ɡ�����Ӥ���¾�Υǥ�����ǡ��� ��ñ��Υե�����˥ѥå��������Ǥ���Τǡ��ե�������®�����ưפ����ۤǤ��ޤ��� ��ȯ�Ԥϡ� jar �Ȥ���̾���Υġ����Ȥä� JAR �ե����������Ǥ��ޤ�������Ū�ʴ�����������С� ���٤Ƥ� ZIP �ե������ JAR �ե�����Ȥߤʤ����Ȥ��Ǥ��ޤ���
�֥ǥ������̾�פϡ��ʤ�餫�Υǡ��� (�ֽ�̾�פ��оݤȤʤ�ǡ���) �ȡ�����ƥ��ƥ� (�͡���Ҥʤ�) ������Ȥ˴�Ť��Ʒ������ӥå���Ǥ�����ν�̾Ʊ�͡� �ǥ������̾�ˤ�¿��������������ޤ���
2 ��̾�������˻Ȥ�줿������Фˤʤ����ȤäƷ���Ԥ����Ȥǡ� �ǥ������̾����ʪ���ɤ����ڤǤ���
2 �����¾�ͤ��Τ��ʤ��¤ꡢ�ǥ������̾�ε�¤���Բ�ǽ�Ǥ���
2 �ǥ������̾�ϡ����ν�̾���դ����ǡ����������оݤȤ����ΤǤ��ꡢ�ۤ��Υǡ����� ��̾�Ȥ��Ƶ�ǽ���뤳�ȤϤʤ�
2 ��̾�դ��Υǡ������ѹ��Ǥ��ʤ����ǡ������ѹ����줿���ϡ����ν�̾�ˤ�äƥǡ��� ����ʪ�ǤϤʤ����Ȥ����ڤ����
�ե�������Ф��ƥ���ƥ��ƥ��ν�̾����������ˤϡ��ޤ������Υ���ƥ��ƥ������� ����Υڥ�����ɬ�פ�����ޤ����ޤ�������ǧ�ڤ��� 1 �İʾ�ξ������ ɬ�פǤ����־�����פȤϡ����륨��ƥ��ƥ�����Υǥ������̾�դ���ʸ��Τ��ȤǤ��� ������ˤϡ��ۤ��Τ��륨��ƥ��ƥ��θ������̤��ͤ��äƤ��뤳�Ȥ���� ���ޤ���
jarsigner �ϡ��֥������ȥ��פ˴ޤޤ�븰�Ⱦ���������Ȥäơ�JAR �ե�����Υǥ������̾�� �������ޤ����������ȥ��ϡ�����ȡ�����˴�Ϣ�դ���줿 X.509 ����Ϣ���� ����줿�ǡ����١����Ǥ�������Ϣ���ϡ�������б��������ǧ�ڤ��ޤ��� �������ȥ��κ����ȴ���ˤϡ� keytool �桼�ƥ���ƥ���Ȥ��ޤ���
jarsigner �ϡ�����ƥ��ƥ��������Ȥäƽ�̾���������ޤ�����̾�դ� JAR �ե�����ˤϡ� �������ȥ�����ξ�����Υ��ԡ����ޤޤ�Ƥ��ޤ�������ϡ�JAR �ե�����ν�̾�˻Ȥ� �줿������б�������ξ�����Υ��ԡ��Ǥ��� jarsigner �ϡ���̾�դ� JAR �ե�����Υǥ������̾�ե������� (�ν�̾�֥�å��ե�����) �˴� �ޤ�Ƥ���������ȤäƸ��ڤ��뤳�Ȥ��Ǥ��ޤ���
J2SE 5.0 �ʹߤ� \f3jarsigner �ϡ������ॹ����פ�ޤ��̾�������Ǥ���褦�ˤʤ�ޤ��������Τ��ᡢ�����ƥ�/�ǥץ?�� (Java Plug-in �ʤ�) �ϡ���̾�դ��ξ����ޤ�ͭ��Ǥ�������� JAR �ե�����ν�̾���Ԥ�줿���ɤ������ǧ�Ǥ��ޤ�������ˡ����Υ����ॹ�������ץꥱ������������뤿��� API ����J2SE 5.0 ���ɲä���ޤ�����
�������Ǥϡ� jarsigner �ǽ�̾�Ǥ���Τϡ�JDK �� jar �ġ���Ǻ������줿 JAR �ե����롢�ޤ��� ZIP �ե���������Ǥ���JAR �ե������ ZIP �ե������Ʊ���Ǥ�����JAR �ե�����ˤ� META-INF/MANIFEST.MF �ե����뤬�ޤޤ�Ƥ��������ۤʤ�ޤ��� META-INF/MANIFEST.MF �ե�����ϡ� jarsigner �� ZIP �ե�����˽�̾���դ���Ȥ��˼�ưŪ�˺�������ޤ���
�ǥե���ȤǤϡ� jarsigner �� JAR �ե�����ˡֽ�̾�פ��դ��ޤ��� ��̾�դ� JAR �ե������ָ��ڡפ�����ϡ� -verify ���ץ�������ꤷ�ޤ���
"jarsigner" "Compatibility with JDK 1.1" "\fLjarsigner \(em JAR signing and verification tool " keytool �ġ���� jarsigner �ġ���ϡ�JDK 1.1 ������Ƥ��� javakey �ġ���������֤��������ΤǤ��������ο������ġ���� javakey ����¿���ε�ǽ�������Ƥ��ꡢ�������ȥ��������ѥ���ɤ��ݸ�뵡ǽ�䡢 ��̾�����������Ǥʤ���̾�ڤ��뵡ǽ���äƤ��ޤ���
�������������ȥ��������ƥ�����ϡ� javakey ���������ƴ���Ƥ��������ǥ�ƥ��ƥ��ǡ����١����������ΤǤ����������ȥ������ȡ�JDK 1.1 �� javakey ���ȤäƤ����ǡ����١��������Ȥδ֤ˤϲ��̸ߴ����Ϥ���ޤ������������Τ褦�� ���Ȥϲ�ǽ�Ǥ���
2 keytool �� -identitydb ���ޥ�ɤ�Ȥ��ȡ������ǥ�ƥ��ƥ��ǡ����١����ξ�������ȥ��˥���ݡ��ȤǤ��ޤ���
2 jarsigner �ϡ������� javakey ��Ȥäƽ�̾���줿 JAR �ե�����˽�̾���դ��뤳�Ȥ��Ǥ��ޤ���
2 jarsigner �ϡ� javakey ��Ȥäƽ�̾���줿 JAR �ե�����ڤǤ��ޤ����������äơ� jarsigner �ϡ�JDK 1.2 �Υ������ȥ��ǤϤʤ� JDK 1.1 �Υ����ǥ�ƥ��ƥ��ǡ����١�������ν�̾���� ̾��ǧ�������������оݤ˽����Ԥ����Ȥ��Ǥ��ޤ���
����ɽ�ϡ�JDK 1.1.x �ǽ�̾���줿 JAR �ե����뤬��Java 2 �ץ�åȥե�����ǤɤΤ褦�˰����뤫�� �����Ƥ��ޤ���
1.1 �ǡ��� 1.1 �ǡ��� �١������� �ݥꥷ�� JAR �١������ 1.2 ������ �ե����� �ե����� �����ǥ� �ȥ��˥��� �������ǥ� Ϳ������ �Υ����� �ƥ��ƥ� �ݡ��Ȥ��� �ƥ��ƥ�/ �ø� �뿮��Ǥ� ��̾���ø� �륢���ǥ� ��Ϳ���� �ƥ��ƥ�(4) ��̾�դ� ���٤ƤΥ����ɤ� JAR x x x Ϳ������ �ǥե���Ȥ� �ø� ��̾�Τʤ� ���٤ƤΥ����ɤ� JAR x x x Ϳ������ �ǥե���Ȥ� �ø� ��̾�դ� ���٤ƤΥ����ɤ� JAR x �� x Ϳ������ �ǥե���Ȥ� �ø� ��̾�դ� ���٤ƤΥ����ɤ� JAR ��/����� x x Ϳ������ ���ʤ� �ǥե���Ȥ� �ø� (3) ��̾�դ� ���٤ƤΥ����ɤ� JAR ��/����� x �� Ϳ������ ���ʤ� �ǥե���Ȥ� �ø� (1,3) ��̾�դ� ���٤ƤΥ����ɤ� JAR x �� �� Ϳ������ �ǥե���Ȥ� �ø��ȥݥꥷ�� �ե������� ��Ϳ������ �ø� ��̾�դ� ���٤ƤΥ����ɤ� JAR ��/���� �� �� Ϳ������ �Ǥ��� �ǥե���Ȥ� �ø��ȥݥꥷ�� �ե������� ��Ϳ������ �ø� (2) ��̾�դ� ���٤Ƥ� JAR ��/���� x x �ø� �Ǥ��� ��̾�դ� ���٤Ƥ� JAR ��/���� �� x �ø� (1) �Ǥ��� ��̾�դ� ���٤Ƥ� JAR ��/���� x �� �ø� (1) �Ǥ���
��:
5 1. �ݥꥷ���ե�������˥����ǥ�ƥ��ƥ�/��̾�ˤĤ��Ƥθ��ڤ������硢 ��������ȥ��˥���ݡ��Ȥ��ơ��ݥꥷ���ե���������꤬Ϳ����줿 �ø���ȿ�Ǥ����褦�ˤ���ɬ�פ�����ޤ���
5 2. �ݥꥷ���ե�����/�������ȥ����Ȥ߹�碌�ϡ������ǥ�ƥ��ƥ��ǡ����١��� ��ο���Ǥ��륢���ǥ�ƥ��ƥ�����ͥ�褵��ޤ���
5 3. Java 2 �ץ�åȥե�����Ǥϡ�����Ǥ��ʤ������ǥ�ƥ��ƥ���̵�뤵��ޤ���
5 4. JDK �������ȥ��˥���ݡ��ȤǤ���Τϡ�����Ǥ��륢���ǥ�ƥ��ƥ������Ǥ���
"jarsigner" "Keystore Aliases" "\fLjarsigner \(em JAR signing and verification tool "
�������ȥ��Τ��٤ƤΥ���ȥ�ϡ���դΡ���̾�פ�𤷤ƥ�����������ޤ���
jarsigner ��Ȥä� JAR �ե�����˽�̾���դ���Ȥ��ϡ���̾��������ɬ�פ������ �ޤ७�����ȥ�����ȥ����̾����ꤹ��ɬ�פ�����ޤ������Ȥ��С�������ϡ� working �ǥ��쥯�ȥ�� mystore �Ȥ���̾���Υ������ȥ��˴ޤޤ����̾ duke �˴�Ϣ�դ���줿�����Ȥäơ� MyJARFile.jar �Ȥ���̾���� JAR �ե�����˽�̾���դ��ޤ������ϥե�����ϻ��ꤵ��Ƥ��ʤ� �Τǡ� MyJARFile.jar �Ͻ�̾�դ��� JAR �ե�����ˤ�äƾ����ޤ���
jarsigner -keystore /working/mystore -storepass myspass -keypass dukekeypasswd MyJARFile.jar duke
�������ȥ��ϥѥ���ɤ��ݸ��Ƥ���Τǡ����ȥ��Υѥ���� (�����Ǥ� myspass ) ����ꤹ��ɬ�פ�����ޤ������ޥ�ɹԤǥ��ȥ��Υѥ���ɤ���ꤷ�ʤ��ä����ϡ��ѥ���ɤ����Ϥ�����ޤ���Ʊ�ͤˡ�����⥭�����ȥ���ǥѥ���ɤˤ�ä��ݸ��Ƥ���Τǡ�����Υѥ���� (�����Ǥ� dukekeypasswd ) ����ꤹ��ɬ�פ�����ޤ������ޥ�ɹԤ�����Υѥ���ɤ���ꤷ�Ƥ��餺������Υѥ���Ȥ����ȥ��Υѥ���ɤȰ�äƤ�����ϡ�����Υѥ���ɤ����Ϥ�����ޤ���
"jarsigner" "Keystore Location" "\fLjarsigner \(em JAR signing and verification tool "
jarsigner �ˤϡ����Ѥ��륭�����ȥ���̾���Ⱦ�����ꤹ�� -keystore ���ץ������ޤ����������ȥ��ϡ��ǥե���ȤǤϥ桼���Υۡ���ǥ��쥯�ȥ�� .keystore �Ȥ���̾���Υե�����˳�Ǽ����ޤ����桼���Υۡ���ǥ��쥯�ȥ�ϡ� user.home �����ƥ�ץ�ѥƥ��ˤ�äƷ�ޤ�ޤ���
-keystore ���ץ��������ϥ��ȥ��� KeyStore.load ��åɤ��Ϥ���ޤ��� URL �Ȥ��� NONE �����ꤵ�줿���ϡ�NULL ���ȥ�ब KeyStore.load ��åɤ��Ϥ���ޤ����������ȥ����ϡ��ɥ������ȡ�����ǥХ�����ˤ���ʤɡ� �ե�����١����Ǥʤ����ϡ� NONE ����ꤷ�Ƥ���������
"jarsigner" "Keystore Implementation" "\fLjarsigner \(em JAR signing and verification tool "
java.security �ѥå�������ˤ��� KeyStore ���饹 �Ǥϡ��������ȥ���ξ���˥������������ѹ��Ǥ���褦�� Ŭ�ڤ�������줿���ե�����������Ƥ��ޤ��� ���Υ��饹��ʣ���Τ��ޤ��ޤʸ����������ǽ�ǡ� ���줾��μ����ϡ�����μ���Υ������ȥ��Ѥθ�������Ǥ���
���ߡ��������ȥ��μ�������Ѥ����ΤȤ��ơ�keytool �� jarsigner �� 2 �ĤΥ��ޥ�ɹԥġ���ȡ� policytool �Ȥ���̾���� 1 �Ĥ� GUI �١����Υġ��뤬����ޤ��� KeyStore ���饹�� public �Ȥ��ƻ��Ѳ�ǽ�ʤΤǡ�JDK �桼���� KeyStore ��ȤäƤۤ��Υ������ƥ����ץꥱ������������Ǥ��ޤ���
�������ȥ��ˤϡ�Sun �������Ȥ߹��ߤΥǥե���Ȥμ���������ޤ�������ϡ� JKS �Ȥ���̾�����ȼ��Υ������ȥ������� (����) �����Ѥ����Τǡ��������ȥ��� �ե�����Ȥ��Ƽ������Ƥ��ޤ������μ����Ǥϡ��ġ�������ϸ��̤Υѥ���� �ˤ�ä��ݸ�졢�������ȥ����Τδ������� (����Ȥ��̤�) �ѥ���ɤ� ��ä��ݸ��ޤ���
�������ȥ��μ����ϡ��ץ�Х����١����Ǥ�������Ū�ˤϡ� KeyStore ���饹�����륢�ץꥱ������ե������ϡ�Service Provider Interface (SPI) �Ȥ������Ǽ�������Ƥ��ޤ����Ĥޤꡢ�б����� KeystoreSpi ��ݥ��饹 (����� java.security �ѥå������˴ޤޤ�Ƥ���) �����ꡢ���Υ��饹�� Service Provider Interface �� ��åɤ�������Ƥ��ޤ��������Υ�åɤϡ��֥ץ�Х����פ��������ʤ���Фʤ�� �������ǡ��֥ץ�Х����פȤϡ�Java Security API �ˤ�äƥ���������ǽ�ʥ����ӥ� �Υ��֥��åȤ��Ф������θ������������ѥå������ޤ��ϥѥå������ν���� ���ȤǤ����������äơ��������ȥ��μ���������ˤϡ���Java �Ź沽�������ƥ� �����ѥץ�Х����μ�����ˡ��(http://java.sun.com/javase/6/docs/technotes/guides/security/HowToImplAProvider.html) �Υڡ������������Ƥ���褦�ˡ����饤����Ȥ��ץ�Х������������ KeystoreSpi ���֥��饹�μ���������ɬ�פ�����ޤ���
���ץꥱ�������Ǥϡ� KeyStore ���饹������ getInstance �ե����ȥ��åɤ�Ȥ����Ȥǡ����ޤ��ޤʥץ�Х�������ۤʤ�֥����ספΥ������ȥ��� ����������Ǥ��ޤ����������ȥ��Υ����פϡ��������ȥ�����γ�Ǽ�����ȥǡ��������� ����ӥ������ȥ��������ȥ������ȥ����Τδ��������ݸ�뤿��˻Ȥ��� ���르�ꥺ���������ޤ����ۤʤ륿���פΥ������ȥ��μ����ˤϡ��ߤ��˸ߴ����� ����ޤ���keytool��jarsigner������� policytool �γƥġ���ϡ� KeyStore �����붦�̤Υ��ץꥱ������ե�����������ȤäƤ���Τǡ�Ǥ�դ� �����פΥ������ȥ��ǻ��ѤǤ��ޤ���
keytool �ϡ��ե�����١����Υ������ȥ��������Ф��Ƶ�ǽ���ޤ��� keytool �ϡ����ޥ�ɹԤ��Ϥ��줿�������ȥ��ΰ��֤�ե�����̾�Ȥ��ư����� FileInputStream ���Ѵ����ơ��������饭�����ȥ������?�ɤ��ޤ������� jarsigner �ġ��뤪��� policytool �ġ���ϡ�URL ��Ȥäƻ��ꤹ�뤳�Ȥ���ǽ��Ǥ�դΰ��֤ˤ��륭�����ȥ��� �ɤ�뤳�Ȥ��Ǥ��ޤ���
jarsigner �� keytool �ξ�硢 -storetype ���ץ�����Ȥäƥ��ޥ�ɹԤǥ������ȥ��Υ����פ����Ǥ��ޤ��� policytool �ξ��ϡ�[Edit] ��˥塼�� [Change Keystore] ���ޥ�ɤ�Ȥäƥ������ȥ��� �����פ����Ǥ��ޤ���
�������ȥ��Υ����פ�����Ū�˻��ꤷ�ʤ���硢 keytool �� jarsigner ������� policytool �γƥġ���ϡ��������ƥ��ץ�ѥƥ��ե�������ǻ��� ���줿 keystore.type �ץ�ѥƥ����ͤ˴�Ť��ƥ������ȥ��μ��������ޤ����������ƥ��ץ�ѥƥ��ե� ����ϡ� java.security �Ȥ���̾���ǥ������ƥ��ץ�ѥƥ��ǥ��쥯�ȥ� java.home/lib/security ���֤���Ƥ��ޤ��� java.home �ϡ�JDK �μ¹ԴĶ��ǥ��쥯�ȥ�Ǥ���(SDK ��� jre �ǥ��쥯�ȥ� �ޤ��� Java Runtime Environment �Υȥåץ�٥�Υǥ��쥯�ȥ�)��
�ƥġ���ϡ� keystore.type ���ͤ�������������ͤǻ��ꤵ�줿�����פΥ������ȥ���������Ƥ���ץ�Х����� ���Ĥ���ޤǡ����ߥ��ȡ��뤵��Ƥ��뤹�٤ƤΥץ�Х�����Ĵ�٤ޤ�����Ū�� �ץ�Х��������Ĥ���ȡ����Υץ�Х�������Υ������ȥ��μ�����Ȥ��ޤ���
KeyStore ���饹�Ǥ� getDefaultType �Ȥ���̾���� static ��åɤ��������Ƥ��ꡢ���ץꥱ�������ȥ��ץ�åȤϤ��� ��åɤ�Ȥ����Ȥ� keystore.type �ץ�ѥƥ����ͤ�����Ǥ��ޤ������Υ����ɤϡ��ǥե���ȤΥ������ȥ������� ( keystore.type �ץ�ѥƥ��ǻ��ꤵ�줿������) �Υ������������ޤ���
\f3 .fl KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); .fl
�ǥե���ȤΥ������ȥ������פ� jks (Sun �������ȼ��Υ����פΥ������ȥ��� ����) �Ǥ�������ϡ��������ƥ��ץ�ѥƥ��ե�������μ��ιԤˤ�äƻ��ꤵ��� ���ޤ���
keystore.type=jks
��: �������ȥ������פλ���Ǥϡ���ʸ��Ⱦ�ʸ��϶��̤���ޤ����Ȥ��С���JKS�פȡ�jks�פ�Ʊ����ΤȤߤʤ���ޤ���
�ƥġ���ǥǥե���Ȱʳ��Υ������ȥ��μ�������Ѥ���ˤϡ���ιԤ��ѹ����� �̤Υ������ȥ��Υ����פ���ꤷ�ޤ��� ���Ȥ��С�pkcs12 �ȸƤФ�륿���פΥ������ȥ��μ��������Ƥ��� �ץ�Х����ѥå���������Ѥ���ˤϡ���ιԤΤ褦���ѹ����ޤ���
keystore.type=pkcs12
PKCS#11 �ץ�Х����ѥå���������Ѥ����硢���ξܺ٤ˤĤ��Ƥϡ���Java PKCS#11 Reference Guide��( http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#keytooljarsigner) �ˤ��� ��\f2KeyTool and JarSigner����Ȥ��Ƥ���������
"jarsigner" "Supported Algorithms and Key Sizes" "\fLjarsigner \(em JAR signing and verification tool "
�ǥե���ȤǤϡ� jarsigner �ϼ��Τɤ��餫�Υ��르�ꥺ���Ȥä� JAR �ե�����˽�̾���ޤ���
2 SHA-1 �����������ȥ��르�ꥺ���Ȥä� DSA (�ǥ������̾���르�ꥺ��)
2 MD5 �����������ȥ��르�ꥺ���Ȥä� RSA ���르�ꥺ��
����Ū�ˤϡ���̾�Ԥθ�������� DSA ���Ǥ����硢 jarsigner �ϡ�SHA1withDSA�ץ��르�ꥺ���Ȥä� JAR �ե�����˽�̾���դ��褦�Ȥ��ޤ�����̾�Ԥ� ���� RSA ���Ǥ����硢 jarsigner �ϡ�MD5withRSA�ץ��르�ꥺ���Ȥä� JAR �ե�����˽�̾���դ��ޤ���
�����Υǥե���Ȥν�̾���르�ꥺ��ϡ�\f2-sigalg ���ץ�����Ȥäƥ����С��饤�ɤǤ��ޤ���
"jarsigner" "The Signed JAR File" "\fLjarsigner \(em JAR signing and verification tool "
jarsigner ��Ȥä� JAR �ե�����˽�̾���դ�����硢���Ϥ�����̾�դ� JAR �ե������ ���� JAR �ե������Ʊ���Ǥ��������� 2 �Ĥ��ɲåե����뤬 META-INF �ǥ��쥯�ȥ���֤���������ۤʤ�ޤ���
2 .SF ��ĥ�Ҥ��դ�����̾�ե�����
2 .DSA ��ĥ�Ҥ��դ�����̾�֥�å��ե�����
����� 2 �ĤΥե�����Υ١����ե�����̾�ϡ� -sigFile ���ץ������ͤ����������ޤ������Ȥ��С����Τ褦�˥��ץ�������ꤷ���Ȥ��ޤ���
-sigFile MKSIGN
���ξ�硢�ե�����̾�Ϥ��줾�� MKSIGN.SF �� MKSIGN.DSA �ˤʤ�ޤ���
���ޥ�ɹԤ� -sigfile ���ץ����λ��꤬�ʤ���硢 .SF �ե������ .DSA �ե�����Υ١����ե�����̾�ϡ����ޥ�ɹԤǻ��ꤵ�줿��̾����Ƭ�� 8 ʸ��� ���٤���ʸ����Ѵ�������Τˤʤ�ޤ�����̾�� 8 ʸ��̤���ξ��ϡ���̾�� ���ΤޤȤ��ޤ�����̾����ˡ���̾�ե�����̾�˻��ѤǤ��ʤ�ʸ��ޤޤ� �Ƥ�����ϡ���������ʸ����� (_) ���֤������ƥե�����̾����������ޤ��� ���ѤǤ���ʸ��ϡ�����ե��٥åȡ������� (_)���ϥ��ե�Ǥ���
��̾ (\f3.SF\f1) �ե�����
��̾�ե����� ( .SF �ե�����) �ϡ� jar �ġ�����������줿 JAR �ե�����˾�˴ޤޤ��ޥ˥ե����ȥե�����Ȼ��Ƥ��ޤ����Ĥޤꡢ�ޥ˥ե����ȥե�����Ʊ�͡� .SF �ե�����ˤϡ�JAR �ե�����˴ޤޤ�Ƥ��륽�����ե����뤴�Ȥˡ����� 3 �ĤιԤ�����ޤ���
2 �ե�����̾
2 �Ȥ��Ƥ�������������ȥ��르�ꥺ�� (SHA) ��̾��
2 SHA �����������Ȥ���
�ޥ˥ե����ȥե�����Ǥϡ�SHA �����������Ȥ��ͤϡ��������ե�����ΥХ��ʥ�ǡ��� �Υ����������� (�ϥå���) �Ǥ������� .SF �ե�����Ǥϡ��������ե�����Υ����������Ȥ��ͤϡ��ޥ˥ե����ȥե�������γ������� �������ե�������б����� 3 �ԤΥϥå���Ǥ���
��̾�ե�����ˤϡ��ǥե���Ȥǥޥ˥ե����ȥե��������ΤΥϥå����ޤޤ�Ƥ��ޤ��� ��ҤΡ�JAR �ե�����θ��ڡפ���������褦�ˡ����Υإå���¸�ߤˤ�äƸ��ڤ� ��Ŭ������ǽ�ˤʤäƤ��ޤ���
��̾�֥�å� (\f3.DSA\f1) �ե�����
.SF �ե�����ˤϽ�̾���դ���졢��̾�� .DSA �ե�������֤���ޤ��� .DSA �ե�����ˤϡ��������ȥ�����ξ�����ޤ��Ͼ���Ϣ������沽���줿���Ǵޤޤ�� ���ޤ���������ޤ��Ͼ���Ϣ���ϡ���̾�˻Ȥ�줿������б�������� ǧ�ڤ��ޤ���
J2SE 5.0 ������ jarsigner �ġ���ϡ�JAR �ե�����ν�̾���˽�̾�����ॹ����פ���������ӳ�Ǽ�Ǥ���褦�ˤʤ�ޤ���������ˡ� jarsigner �����ؤν�̾�����⥵�ݡ��Ȥ��ޤ�������ư��Ͼ�ά��ǽ�ǡ���̾���˼��γƥ��ץ����ˤ�ä����椵��ޤ���
2 o \f2-tsa url
2 o \f2-tsacert alias
2 o \f2-altsigner class
2 o \f2-altsignerpath classpathlist
�����γƥ��ץ����ξܺ٤ˤĤ��Ƥϡ���ҤΡ֥��ץ�������Ȥ��Ƥ���������
"jarsigner" "JAR File Verification" "\fLjarsigner \(em JAR signing and verification tool "
JAR �ե�����θ��ڤ������Τϡ���̾��ͭ��Ǥ��ꡢ���Ľ�̾�������ʸ�� JAR �ե�������ΤɤΥե�������ѹ�����Ƥ��ʤ����Ǥ���JAR �ե�����θ��ڤϡ����μ��ǹԤ��ޤ���
5 1. .SF �ե����뤽�켫�Τν�̾�ڤ��ޤ���
���μ��Ǥϡ��ƽ�̾�֥�å� ( .DSA ) �ե�����˳�Ǽ����Ƥ����̾�����ºݤˡ������б����������Ȥä� �������줿��ΤǤ��뤳�Ȥ��ǧ���ޤ��� .DSA �ե�����ˤϡ����ξ������ޤޤ�Ƥ��ޤ����ޤ������μ�� �Ǥϡ���Ū�ν�̾�����б������̾ ( .SF ) �ե��������ͭ��ʽ�̾�Ǥ��뤫�ɤ�����Ĵ�١� .SF �ե����뤬���Ѥ���Ƥ��ʤ����Ȥ��ǧ���ޤ���
5 2. .SF �ե�������γƥ���ȥ�Υ����������Ȥ�ޥ˥ե���������б�����ƥ����������ͤ� ��碌�Ƹ��ڤ��ޤ���
.SF �ե�����ˤϡ��ޥ˥ե����ȥե��������ΤΥϥå��夬��Ǽ���줿�إå����ǥե���Ȥ� �ޤޤ�Ƥ��ޤ������Υإå���¸�ߤ�����ϡ��إå���Υϥå��夬�ºݤ˥ޥ˥ե� ���ȥե�����Υϥå���Ȱ��פ��뤫�ɤ����ڤ��뤳�Ȥ��Ǥ��ޤ����ϥå��夬���פ� ����ϡ����μ��˿ʤߤޤ���
�ϥå��夬���פ��ʤ����ϡ���ΨŪ�ˤ�������ˡ��ȤäƸ��ڤ�Ԥ��ޤ�������Ū �ˤϡ� .SF �ե�������γƥ������ե�������������Υϥå��夬���ޥ˥ե����ȥե�������� �б����륻�������Υϥå���Ȱ��פ��뤫�ɤ������ǧ���ޤ� (�ֽ�̾ (\f3.SF\f1) �ե�����פ�)��
.SF �ե�����Υإå��˳�Ǽ���줿�ޥ˥ե����ȥե�����Υϥå���ȡ��ºݤΥޥ˥ե����� �ե�����Υϥå���Ȥ����פ��ʤ����ϡ���̾ (����� .SF �ե�����) ��������ˡ��ե������ 1 �İʾ�Υե����뤬�ɲ� ( jar �ġ�������) ���줿��ǽ��������ޤ��� jar �ġ����Ȥäƥե�������ɲä�����硢�ޥ˥ե����ȥե�������ѹ�����ޤ��� (�������ե������ѤΥ���������ɲä����)�� .SF �ե�������ѹ�����ޤ����ξ�硢 .SF �ե�����Υإå��ʳ��Υ��������˳�Ǽ���줿�ϥå��夬���ޥ˥ե����ȥե�������� �б����륻�������Υϥå���Ȱ��פ���Ȥ��ϡ���̾���������� JAR �ե�������� ¸�ߤ��Ƥ����ե�����Τ������ɤΥե�������ѹ�����Ƥ��ʤ����Ȥˤʤꡢ���ڤ����� ������ΤȤ��ư����ޤ���
5 3. JAR �ե�������Υե�����Τ����� .SF �ե�������˥���ȥ���ijƥե�������ɤ߹��ߤޤ����ɤ߹�����˥ե������ �����������Ȥ��������̤�ޥ˥ե����ȥ����������γ�������ե������ �����������Ȥ���Ӥ��ޤ���2 �ĤΥ����������Ȥ�Ʊ���Ǥʤ���Фʤ餺�������Ǥʤ� ���ϸ��ڤ����Ԥ��ޤ���
���ڥץ?��������Ǥʤ�餫�ν���ʸ��ڥ��顼��ȯ��������硢���ڥץ?�� ����ߤ��졢�������ƥ��㳰�����?����ޤ������?���줿�������ƥ��㳰�ϡ� jarsigner ������å�����ɽ�����ޤ���
"jarsigner" "Multiple Signatures for a JAR File" "\fLjarsigner \(em JAR signing and verification tool "
1 �Ĥ� JAR �ե�������Ф��� jarsigner �ġ����ʣ����¹Ԥ����¹ԤΤ��Ӥˡ��ۤʤ�桼������̾����ꤹ��С�JAR �ե������ʣ���Υ桼���ν�̾���դ��뤳�Ȥ��Ǥ��ޤ������Ȥ��С����Τ褦�ˤ��ޤ���
jarsigner myBundle.jar susan jarsigner myBundle.jar kevin
JAR �ե����뤬ʣ�����̾����Ƥ����硢���� JAR �ե�����ˤ� .SF �ե������ .DSA �ե�������Ф�ʣ���ޤޤ�뤳�Ȥˤʤ�ޤ��� .SF �ե������ .DSA �ե�������Фϡ�1 ��ν�̾���Ф��� 1 �ĺ�������ޤ����������äơ������ǽ��� ����� JAR �ե�����ˤϡ�����̾�����ĥե����뤬�ޤޤ�ޤ���
SUSAN.SF SUSAN.DSA KEVIN.SF KEVIN.DSA
��: JDK 1.1 �� javakey �ġ��������������̾�ȡ� jarsigner ������������̾�Ȥ����褦�ˡ� 1 �Ĥ� JAR �ե�����˽�̾�ߤ����뤳�Ȥ��Ǥ��ޤ��� �Ĥޤ� javakey �Ǥ��Ǥ˰�����̾���� JAR �ե�����˽�̾���뤿��ˡ� jarsigner ����ѤǤ��ޤ���
�ʲ��Ǥϡ� jarsigner �Υ��ץ����ˤĤ����������ޤ������ץ�������ꤹ��Ȥ��ϡ������������ ���Ƥ���������
2 �ɤΥ��ץ����̾�ˤ���Ƭ�˥ޥ��ʥ����� (-) ���դ�
2 ���ץ�����Ǥ�դν��ǻ���Ǥ���
2 ������å��Τι��ܤμºݤ��� (���ץ�������) �ϡ��桼�������ꤹ��ɬ�פ�����
2 -keystore�� -storepass�� -keypass�� -sigfile�� -sigalg�� -digestalg�� ����� -signedjar �γƥ��ץ�������ѤǤ���Τϡ�JAR �ե�����˽�̾���դ���������Ǥ��롣 �����Υ��ץ����ϡ�JAR �ե�����ڤ�����ˤϻ��ѤǤ��ʤ���Ʊ�ͤˡ� ��̾�ޥ�ɹԤǻ��ꤹ��Τϡ�JAR �ե�����˽�̾���դ���������Ǥ���
3 -keystore url �������ȥ��ξ��� URL ����ꤷ�ޤ����ǥե���Ȥϡ��桼���Υۡ���ǥ��쥯�� ����Υե����� .keystore �Ǥ����桼���Υۡ���ǥ��쥯�ȥ�ϡ� user.home �����ƥ�ץ�ѥƥ��ˤ�äƷ�ޤ�ޤ���
��̾����Ȥ��ϥ������ȥ���ɬ�פǤ������Τ��ᡢ�ǥե���ȤΥ������ȥ���¸�� ���ʤ���硢���뤤�ϥǥե���Ȱʳ��Τۤ��Υ������ȥ�����Ѥ�����ϡ� �������ȥ�������Ū�˻��ꤹ��ɬ�פ�����ޤ���
���ڤ���Ȥ��ϥ������ȥ���ɬ�פ���ޤ����������������ȥ������ꤵ��Ƥ��뤫�� ���뤤�ϥǥե���ȤΥ������ȥ���¸�ߤ��Ƥ��ơ������ -verbose ���ץ�������ꤵ��Ƥ�����ϡ�JAR �ե�����θ��ڤ˻Ȥ�������� �������ȥ���¸�ߤ��뤫�ɤ����ˤĤ��Ƥ��ɲþ����Ϥ���ޤ���
��: -keystore �ΰ���ˤϡ�URL ������˥ե�����̾ (�ȥѥ�) �����Ǥ��ޤ����ե�����̾ (�ȥѥ�) ����ꤷ�����ϡ���file:��URL �Ȥ��ư����ޤ������Ȥ��С����Τ褦�� ����Ǥ��ޤ���
-keystore filePathAndName
����ϡ����λ����Ʊ����ΤȤ��ư����ޤ���
-keystore file:filePathAndName
JRE �� \f2$JAVA_HOME/lib/security �ǥ��쥯�ȥ�˳�Ǽ���줿 \f2java.security �������ƥ��ץ�ѥƥ��ե�������� Sun PKCS#11 �ץ�Х��������ꤵ��Ƥ����硢keytool �� jarsigner �� PKCS#11 �ȡ�����˴�Ť���ư��Ǥ��ޤ������Υ��ץ�������ꤷ�ޤ���
2 o \f2-keystore NONE
2 o \f2-storetype PKCS11
\f3 .fl jarsigner -keystore NONE -storetype PKCS11 -list .fl .fl
3 -storetype storetype �������������륭�����ȥ��Υ����פ���ꤷ�ޤ����ǥե���ȤΥ������ȥ��� �����פϡ��������ƥ��ץ�ѥƥ��ե������ keystore.type �ץ�ѥƥ����ͤȤ��� ���ꤵ�줿�����פǡ� java.security.KeyStore �� static getDefaultType ��åɤˤ�ä��֤���ޤ���
\f2-storepass ���ץ�����Ȥä� PCKS#11 �ȡ������ PIN ����ꤹ�뤳�Ȥ� �Ǥ��ޤ���������ꤷ�ʤ��ä���硢keytool �� jarsigner �ϥ桼���˥ȡ����� PIN �� ���Ϥ���ޤ����ȡ������ǧ�ڥѥ��������Ѥ� PIN �ѥåɤ�Х�����ȥ�å������ �褦���ݸ�줿�ѥ��Ǥ����硢\f2-protected ���ץ�������ꤹ��ɬ�פ�����ޤ��� ���ξ�硢�ѥ���ɥ��ץ����ϻ���Ǥ��ޤ���
-storepass password �������ȥ��˥�����������Τ�ɬ�פʥѥ���ɤ���ꤷ�ޤ������Υ��ץ����ɬ�� �ʤΤϡ�JAR �ե�����˽�̾���դ���Ȥ������Ǥ� (JAR �ե�����ڤ���Ȥ��� ����)����̾���դ���Ȥ��ˡ����ޥ�ɹԤ� -storepass ���ץ�������ꤷ�ʤ��ä����ϡ��ѥ���ɤ����Ϥ�����ޤ���
��: �ƥ��Ȥ���Ū�Ȥ����硢�ޤ��ϰ������ݾ㤵�줿�����ƥ�Ǽ¹Ԥ����� �ʳ��ϡ����ޥ�ɹԤ䥹����ץȤǥѥ���ɤ���ꤷ�ʤ��Ǥ����������ޤ��� password �ץ��ץȤǥѥ���ɤ����Ϥ���ȡ����Ϥ����ѥ���ɤ����������졢 ���Τޤ��̤�ɽ������ޤ������Τ��ᡢ���Ϥˤۤ��Υ桼����������ϡ� �ѥ���ɤ��ʤ��褦����դ��Ƥ���������
-keypass password ���ޥ�ɹԤǻ��ꤵ�줿��̾���б����륭�����ȥ�����ȥ��������ݸ��� �˻Ȥ��ѥ���ɤ���ꤷ�ޤ��� jarsigner ��Ȥä� JAR �ե�����˽�̾���դ���Ȥ��ϡ��ѥ���ɤ�ɬ�פǤ������ޥ�ɹԤ� �ѥ���ɤ����ꤵ��Ƥ��餺��ɬ�פʥѥ���ɤ����ȥ��Υѥ���ɤȰۤʤ� ���ϡ��ѥ���ɤ����Ϥ�����ޤ���
��: �ƥ��Ȥ���Ū�Ȥ����硢�ޤ��ϰ����Ǥ��뤳�Ȥ��狼�äƤ��륷���ƥ�� �¹Ԥ�����ʳ��ϡ����ޥ�ɹԤ䥹����ץȤǥѥ���ɤ���ꤷ�ʤ��Ǥ��������� �ޤ���password �ץ��ץȤǥѥ���ɤ����Ϥ���ȡ����Ϥ����ѥ���ɤ������� ���졢���Τޤ��̤�ɽ������ޤ������Τ��ᡢ���Ϥˤۤ��Υ桼����������ϡ� �ѥ���ɤ��ʤ��褦����դ��Ƥ���������
-sigfile file SF �ե������ .DSA �ե�����������˻Ȥ��١����ե�����̾����ꤷ�ޤ��� ���Ȥ��С�file �� DUKESIGN ����ꤹ��ȡ���������� .SF �ե������ A �ե������̾���ϡ����줾�� DUKESIGN.SF �� DUKESIGN.DSA �ˤʤ�ޤ��� �����Υե�����ϡ���̾�դ� JAR �ե������ META-INF �ǥ��쥯�ȥ���֤���ޤ���
file �˻��ѤǤ���ʸ��ϡ�a-zA-Z0-9_-�פǤ����Ĥޤꡢʸ��������� ����ӥϥ��ե��������ѤǤ��ޤ�����: .SF ����� .DSA �Υե�����̾�Ǥϡ���ʸ��Ϥ��٤���ʸ����Ѵ�����ޤ���
���ޥ�ɹԤ� -sigfile ���ץ�������ꤷ�ʤ��ä���硢 .SF �ե������ .DSA �ե�����Υ١����ե�����̾�ϡ����ޥ�ɹԤǻ��ꤵ�줿��̾����Ƭ�� 8 ʸ��� ���٤���ʸ����Ѵ�������Τˤʤ�ޤ�����̾�� 8 ʸ��̤���ξ��ϡ���̾�� ���ΤޤȤ��ޤ�����̾����ˡ���̾�ե�����̾�˻��ѤǤ��ʤ�ʸ��ޤޤ�Ƥ��� ���ϡ���������ʸ����� (_) ���֤������ƥե�����̾����������ޤ���
3 -sigalg algorithm
JAR �ե�����ν�̾�˻��Ѥ����̾���르�ꥺ���̾������ꤷ�ޤ���
ɸ���̾���르�ꥺ��̾�ΰ����ˤĤ��Ƥϡ���Java Cryptography Architecture��( http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#appa) �ˤ��� �� Appendix A �פȤ��Ƥ������������Υ��르�ꥺ��ϡ�JAR �ե�����ν�̾�˻��Ѥ�����̩���ȸߴ����Τ����ΤǤʤ���Фʤ�ޤ����Υ��ץ�������ꤷ�ʤ��ä���硢��̩���Υ����פ˱����� SHA1withDSA��MD5withRSA �Τ����줫�����Ѥ���ޤ������ꤵ�줿���르�ꥺ��μ���������ץ�Х�������Ū�˥��ȡ��뤵��Ƥ��뤫�����뤤�ϥ桼�������Τ褦�ʥץ�Х����� -providerClass ���ץ�����Ȥäƻ��ꤹ��ɬ�פ�����ޤ��������Ǥʤ���硢���ޥ�ɤμ¹Ԥ����Ԥ��ޤ���
3 -digestalg algorithm
JAR �ե�����Υ���ȥ������������Ȥ���ݤ˻��Ѥ����å����������������ȥ��르�ꥺ���̾������ꤷ�ޤ���
ɸ���å����������������ȥ��르�ꥺ��̾�ΰ����ˤĤ��Ƥϡ���Java Cryptography Architecture��(http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#appa)�� �� Appendix A �פȤ��Ƥ������������Υ��ץ�������ꤷ�ʤ��ä���硢SHA-1 �����Ѥ���ޤ������ꤵ�줿���르�ꥺ��μ���������ץ�Х�������Ū�˥��ȡ��뤵��Ƥ��뤫�����뤤�ϥ桼�������Τ褦�ʥץ�Х����� -providerClass ���ץ�����Ȥäƻ��ꤹ��ɬ�פ�����ޤ��������Ǥʤ���硢���ޥ�ɤμ¹Ԥ����Ԥ��ޤ���
-signedjar file ��̾�դ� JAR �ե������̾������ꤷ�ޤ���
���ޥ�ɹԤ�̾������ꤷ�ʤ��ä����ϡ����� JAR �ե����� (��̾���оݤȤʤ� JAR �ե�����) ��̾����Ʊ��̾�����Ȥ��ޤ������ξ�硢���� JAR �ե�����Ͻ�̾ �դ� JAR �ե�����ˤ�äƾ����ޤ���
-verify ���ޥ�ɹԤǤ��Υ��ץ�����ꤵ��Ƥ�����ϡ����ꤵ�줿 JAR �ե����뤬 ���ڤ���ޤ���JAR �ե�����ؤν�̾�ϹԤ��ޤ����ڤ������ȡ� ��jar verified�פȤ�����å�������ɽ������ޤ�����̾����Ƥ��ʤ� JAR �ե����롢 �ޤ��ϥ��ݡ��Ȥ���Ƥ��ʤ����르�ꥺ�� (RSA �ץ�Х��������ȡ��뤵��Ƥ��ʤ� ���� RSA �ʤ�) ��Ȥäƽ�̾���줿 JAR �ե�����ڤ��褦�Ȥ���ȡ� ��jar is unsigned. (signatures missing or not parsable)�פȤ�����å�������ɽ������ޤ���
��̾�դ� JAR �ե�����ϡ� jarsigner �ޤ��� JDK 1.1 �� javakey �ġ��롢���뤤�Ϥ���ξ���ȤäƸ��ڤǤ��ޤ���
���ڤˤĤ��Ƥξܺ٤ϡ���JAR �ե�����θ��ڡפȤ��Ƥ���������
-certs ���ޥ�ɹԤǡ� -verify ����� -verbose ���ץ����ȤȤ�ˤ��Υ��ץ�����ꤵ��Ƥ�����ϡ�JAR �ե�����γƽ�̾�� �ξ�����������Ϥ���ޤ������������ˤϼ��Τ�Τ��ޤޤ�ޤ���
2 ��̾�Ԥθ���������� ( .DSA �ե�����˳�Ǽ���줿) ������μ����̾��
2 ������ X.509 ������ (����Ū�ˤ� java.security.cert.X509Certificate �Υ�����) �Ǥ�����ϡ���̾�Ԥμ���̾
�������ȥ��γ�ǧ��Ԥ��ޤ������ޥ�ɹԤǥ������ȥ����ͤ����ꤵ��Ƥ��ʤ� ��硢�ǥե���ȤΥ������ȥ��ե����뤬����С����줬��ǧ����ޤ�����̾�Ԥ� ���ξ����������ȥ���Υ���ȥ�Ȱ��פ������ϡ����ξ����ɽ�� ����ޤ���
2 ��̾�Ԥ˳������륭�����ȥ�����ȥ����̾��������̾�ϳ�̤ǰϤޤ�ޤ��� ���������������ȥ��ǤϤʤ� JDK 1.1 �Υ����ǥ�ƥ��ƥ��ǡ����١�����ͳ�褹�� ��̾�Ԥξ��ϡ���̤ǤϤʤ��ѳ�̤ǰϤޤ�ޤ���
-verbose ���ޥ�ɹԤǤ��Υ��ץ�����ꤵ��Ƥ����硢 jarsigner �ϡ־�Ĺ�ץ⡼�ɤ�ư���JAR �ν�̾�ޤ��ϸ��ڤοʹԾ����˴ؤ����ɲþ����� �Ϥ��ޤ���
-internalsf �����ϡ�JAR �ե�����ν�̾�����������줿 .DSA (��̾�֥�å�) �ե��������ˡ��������줿 .SF �ե����� (��̾�ե�����) �δ����ʥ��ԡ�����沽���줿���Ǵޤޤ�Ƥ��ޤ��������� ư����ѹ��ˤʤꡢ���ߤǤϡ����� JAR �ե��������ΤΥ������������뤿��ˡ� �ǥե���ȤǤ� .SF �ե����뤬 .DSA �ե�����˴ޤޤ�ʤ��褦�ˤʤäƤ��ޤ��������������ޥ�ɹԤ� -internalsf ���ץ�������ꤹ��ȡ�������Ʊ���褦��ư��ޤ������Υ��ץ����ϡ��ƥ��Ȥ�Ԥ� ���ˤ�����Ǥ���������ʳ��ˤϻ��Ѥ��ʤ��Ǥ������������Υ��ץ�������Ѥ��� �ȡ�ͭ�פʺ�Ŭ�����Ԥ��ʤ��ʤ�ޤ���
-sectionsonly ���ޥ�ɹԤǤ��Υ��ץ�����ꤵ��Ƥ����硢JAR �ե�����ν�̾������������� .SF �ե����� (��̾�ե�����) �ˤϡ��ޥ˥ե����ȥե��������ΤΥϥå����ޤ�إå����ɲä���ޤ����ξ�硢.SF �ե�����˴ޤޤ��Τϡ�JAR �ե�������γƥ������ե�����˴ؤ������ӥϥå�������Ǥ����ܺ٤ϡ��ֽ�̾ (\f3.SF\f1) �ե�����פȤ��Ƥ���������
�ǥե���ȤǤϡ���Ŭ����Ԥ�����ˡ��ޥ˥ե����ȥե��������ΤΥϥå����ޤ�إå� ���ɲä���ޤ����إå���¸�ߤ�����ϡ�JAR �ե�����θ��ڻ��ˡ��ޤ��إå��� �Υϥå��夬���ޥ˥ե����ȥե��������ΤΥϥå���ȼºݤ˰��פ��뤫�ɤ�������ǧ ����ޤ����ϥå��夬���פ����硢���ڤϼ��μ��˿ʤߤޤ����ϥå��夬���� ���ʤ����ϡ���ΨŪ�ˤ�������ˡ��ȤäƸ��ڤ�Ԥ��ޤ�������Ū�ˤϡ� .SF �ե�������γƥ������ե�������������Υϥå��夬���ޥ˥ե����ȥե�������� �б����륻�������Υϥå���Ȱ��פ��뤫�ɤ������ǧ���ޤ���
�ܺ٤ϡ���JAR �ե�����θ��ڡפȤ��Ƥ���������
���Υ��ץ����ϡ��ƥ��Ȥ�Ԥ����ˤ�����Ǥ���������ʳ��ˤϻ��Ѥ��ʤ��� �������������Υ��ץ�������Ѥ���ȡ�ͭ�פʺ�Ŭ�����Ԥ��ʤ��ʤ�ޤ���
-protected \f2true��\f2false �Τ����줫������ PIN ����ʤɤ��ݸ�줿ǧ�ڥѥ���𤷤ƥѥ���ɤ���ꤹ��ɬ�פ�������ˤϡ������ͤ� \f2true ����ꤷ�Ƥ���������
-provider provider_class_name �����ӥ��ץ�Х������������ƥ��ץ�ѥƥ��ե����� (\f2java.security) �Υꥹ�Ȥ� ���äƤ��ʤ��Ȥ��ˡ��Ź沽�����ӥ��ץ�Х����Υޥ��������饹�ե������ ̾������ꤷ�ޤ���
\f2-providerArg \f2ConfigFilePath ���ץ������Ȥ߹�碌�ƻ��Ѥ��ޤ���keytool �� jarsigner �ϥץ�Х�����ưŪ�˥��ȡ��뤷�ޤ� (�����ǡ�\f2ConfigFilePath �ϥȡ���������ե�����ؤΥѥ��Ǥ�)���������ƥ��ץ�ѥƥ��ե�������� Sun PKCS#11 �ץ�Х��������ꤵ��Ƥ��ʤ����� PKCS#11 �������ȥ������ɽ�����륳�ޥ�ɤ���˼����ޤ���
\f3 .fl jarsigner -keystore NONE -storetype PKCS11 \\ .fl -providerClass sun.security.pkcs11.SunPKCS11 \\ .fl -providerArg /foo/bar/token.config \\ .fl -list .fl
3 -providerName providerName \f2java.security �������ƥ��ץ�ѥƥ��ե�������� 2 �İʾ�Υץ�Х��������ꤵ��Ƥ����硢\f2-providerName ���ץ�����Ȥä�����Υץ�Х�������������Ǥ��ޤ������Υ��ץ����ΰ���ϡ��ץ�Х�����̾���ˤʤ�ޤ���
Sun PKCS#11 �ץ�Х����ξ�硢\f2providerName �� \f2SunPKCS11-\f2TokenName �η����ˤʤ�ޤ��������ǡ�\f2TokenName �ϡ��ץ�Х���������������˻��Ѥ���̾���Υ��ե��å����Ǥ����ܺ٤ˤĤ��Ƥϡ�
http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner#ATTRS �� ��\f2configuration attributes table�פȤ��Ƥ������������Ȥ��С����Υ��ޥ�ɤϡ�̾�����ե��å��� \f2SmartCard ���� PKCS#11 �������ȥ��ץ�Х������������Ƥ����ɽ�����ޤ���
\f3 .fl jarsigner -keystore NONE -storetype PKCS11 \\ .fl -providerName SunPKCS11-SmartCard \\ .fl -list .fl
-Jjavaoption ���ꤷ�� javaoption ʸ�����ľ�ܼ¹Ի������ƥ���Ϥ��ޤ��� \f3jarsigner\f1 �ϡ��ºݤˤ� Java ���ץ���Ф���֥�åѡ��פǤ������Υ��ץ����ˤϡ������ޤ�뤳�ȤϤǤ��ޤ����Υ��ץ����ϡ��¹ԴĶ��ޤ��ϥ�����Ѥ�Ĵ�������������Ǥ�������Ǥ���ե饰�����ɽ������ˤϡ����ޥ�ɹԤ� java -h �ޤ��� java -X �����Ϥ��Ƥ���������
3 -tsa url JAR �ե������̾���˥��ޥ�ɹԤ�\f2��-tsa http://example.tsa.url�������Ϥ�����硢��̾�Υ����ॹ����פ���������ޤ���\f2http://example.tsa.url �Ȥ��� URL ����TSA (Time Stamping Authority) �ξ������ꤷ�ޤ�������ϡ�\f2-tsacert ���ץ�����ͳ�Ǹ��Ĥ��ä��ɤ� URL ����ͥ�褵��ޤ���\f2-tsa ���ץ�������Ѥ����硢TSA �θ������������ȥ����¸�ߤ��Ƥ���ɬ�פϤ���ޤ���
�����ॹ����פ��������뤿��ˡ�\f2jarsigner �ϡ�
http://www.ietf.org/rfc/rfc3161.txt �� ��\f2RFC 3161�פǵ��ꤵ�줿 TSP (Time-Stamp Protocol) ��Ȥä� TSA ���̿����ޤ��������ȡ�TSA �����֤��줿�����ॹ����ץȡ�������̾�ȤȤ�˽�̾�֥�å��ե�������˳�Ǽ����ޤ���
3 -tsacert alias JAR �ե������̾���˥��ޥ�ɹԤ�\f2��-tsacert alias����ɽ�����줿��硢��̾�Υ����ॹ����פ���������ޤ���\f2alias �ϡ��������ȥ���Ǹ���ͭ��ˤʤäƤ��� TSA �θ�����������ꤷ�ޤ������Υ���ȥ�ξ�������ǡ�TSA �ξ������ꤹ�� URL ��ޤ� Subject Information Access ��ĥ����������ޤ���
\f2-tsacert ����Ѥ����硢TSA �θ������������ȥ����¸�ߤ��Ƥ���ɬ�פ�����ޤ���
3 -altsigner class ���Ѥ������ؽ�̾��������ꤷ�ޤ������δ����������饹̾�ϡ� com.sun.jarsigner.ContentSigner ��ݥ��饹���ĥ���륯�饹�ե���������ꤷ�ޤ������Υ��饹�ե�����ؤΥѥ��ϡ� -altsignerpath ���ץ�����Ȥä�������ޤ��� -altsigner ���ץ�����ꤵ�줿��硢 jarsigner �Ϥ��λ��ꤵ�줿���饹�������̾��������Ѥ��ޤ�������ʳ��ξ�硢 jarsigner �ϥǥե���Ȥν�̾��������Ѥ��ޤ���
���Ȥ��С�\f2com.sun.sun.jarsigner.AuthSigner �Ȥ���̾���Υ��饹�������̾��������Ѥ���ˤϡ�\f2jarsigner ���ץ����\f2��-altsigner com.sun.jarsigner.AuthSigner������Ѥ��ޤ���
3 -altsignerpath classpathlist ���饹�ե����� (���Υ��饹�ե�����̾�����Ҥ� \f2-altsigner ���ץ�����Ȥäƻ���) �ؤΥѥ��ȡ����Υ��饹����¸���뤹�٤Ƥ� JAR �ե�����ؤΥѥ�����ꤷ�ޤ������Υ��饹�ե����뤬 JAR �ե��������¸�ߤ��Ƥ�����ˤϡ�������Ǽ����褦�ˡ����� JAR �ե�����ؤΥѥ�����ꤷ�ޤ���
���Хѥ������ߤΥǥ��쥯�ȥ���Ф������Хѥ��Τ����줫�����Ǥ��ޤ���ʣ���Υѥ��ޤ��� JAR �ե������ \f2classpathlist �˴ޤ����ˤϡ�Solaris ��Ǥϥ���� (\f2:)��Windows ��Ǥϥ��ߥ���� (\f2;) �줾��Ȥäƥ���ȥ����ڤäƤ������������Υ��饹�����Ǥ˸����ѥ��˴ޤޤ�Ƥ����硢���Υ��ץ�������ꤹ��ɬ�פϤ���ޤ���
���饹�ե������ޤ� JAR �ե�����ؤΥѥ�����ꤹ����:
JAR �ե�����̾���ޤޤ�Ƥ���������դ��Ƥ���������
���饹�ե������ޤ� JAR �ե�����ؤΥѥ�����ꤹ����:
JAR �ե�����̾���ޤޤ�Ƥ��ʤ�������դ��Ƥ���������
"jarsigner" "Signing a JAR File" "\fLjarsigner \(em JAR signing and verification tool "
bundle.jar �Ȥ���̾���� JAR �ե����뤬���ꡢ���Υե�����ˡ��������ȥ�����̾�� jane �Ǥ���桼���������Ȥäơ���̾���դ���Ȥ��ޤ����������ȥ��ϡ�mystore �Ȥ���̾���� working �ǥ��쥯�ȥ�ˤ��ꡢ�������ȥ��Υѥ���ɤ� mypass�� jane ������Υѥ���ɤ� j638klm �Ȥ��ޤ������ξ�硢���Υ��ޥ�ɤ�¹Ԥ���ȡ�JAR �ե�����˽�̾���դ��� sbundle.jar �Ȥ�����̾�դ� JAR �ե����������Ǥ��ޤ���
jarsigner -keystore "/working/mystore" -storepass myspass -keypass j638klm -signedjar sbundle.jar bundle.jar jane
��Υ��ޥ�ɤǤ� -sigfile ���ץ�����ꤵ��Ƥ��ʤ��Τǡ���̾�դ� JAR �ե�����˳�Ǽ����� .SF �ե������ .DSA �ե������̾���ϡ���̾�˴�Ť��ǥե���Ȥ�̾���ˤʤꡢ���줾�� JANE.SF �� JANE.DSA �ˤʤ�ޤ���
���ȥ��Υѥ���ɤ�����Υѥ���ɤȤ����Ϥ�����ϡ� ��Υ��ޥ�ɤ�û�̤��Ƽ��Τ褦�����ϤǤ��ޤ���
jarsigner -keystore /working/mystore -signedjar sbundle.jar bundle.jar jane
�ǥե���ȤΥ������ȥ� (�ۡ���ǥ��쥯�ȥ���� .keystore �Ȥ���̾���Υ������ȥ�) ����Ѥ�����ϡ����˼����褦�ˡ��������ȥ��λ���� ��ά�Ǥ��ޤ���
jarsigner -signedjar sbundle.jar bundle.jar jane
�ޤ�����̾�դ� JAR �ե���������� JAR �ե����� ( bundle.jar ) ��������ϡ� -signedjar ���ץ����λ�����ά�Ǥ��ޤ���
jarsigner bundle.jar jane
"jarsigner" "Verifying a Signed JAR File" "\fLjarsigner \(em JAR signing and verification tool "
���˼����Τϡ���̾�դ� JAR �ե�����ڤ�����̾��ͭ��� JAR �ե����뤬 ���Ѥ���Ƥ��ʤ����Ȥ��ǧ���뤿��Υ��ޥ����Ǥ���
jarsigner -verify sbundle.jar
���ڤ������ȡ����Τ褦�ʥ�å�������ɽ������ޤ���
jar verified.
���ڤ�����ʤ��ä����ϡ����顼��å�������ɽ������ޤ���
-verbose ���ץ�����Ȥ��ȡ����¿���ξ���ɽ������ޤ������˼����Τϡ� -verbose ���ץ�������ꤷ�� jarsigner �μ¹���Ȥ��ν��Ϸ�̤Ǥ���
jarsigner -verify -verbose sbundle.jar 198 Fri Sep 26 16:14:06 PDT 1997 META-INF/MANIFEST.MF 199 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.SF 1013 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.DSA smk 2752 Fri Sep 26 16:12:30 PDT 1997 AclEx.class smk 849 Fri Sep 26 16:12:46 PDT 1997 test.class s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore jar verified.
"jarsigner" "Verification with Certificate Information" "\fLjarsigner \(em JAR signing and verification tool " ���ڻ��ˡ� -verify �� -verbose ���ץ����˲ä��� -certs ���ץ�������ꤷ�����ϡ�JAR �ե�������γƽ�̾�Ԥξ�����������Ϥ���� ��������ˤϡ�������Υ����ס���̾�Ԥμ���̾���� (X.509 ������ξ��)������ӡ� JAR �ե�����θ��ξ����������ȥ�����ȥ�θ��ξ�����Ȱ��פ����� �ˤϡ���̤ǰϤޤ줿��̾�ԤΥ������ȥ���̾���ޤޤ�ޤ������Ȥ��С����Τ褦�� ���Ϥ���ޤ���
jarsigner -keystore /working/mystore -verify -verbose -certs myTest.jar 198 Fri Sep 26 16:14:06 PDT 1997 META-INF/MANIFEST.MF 199 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.SF 1013 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.DSA 208 Fri Sep 26 16:23:30 PDT 1997 META-INF/JAVATEST.SF 1087 Fri Sep 26 16:23:30 PDT 1997 META-INF/JAVATEST.DSA smk 2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class X.509, CN=Test Group, OU=Java Software, O=Sun Microsystems, L=CUP, S=CA, C=US (javatest) X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore jar verified.
��̾�Ԥξ����� X.509 ������Ǥʤ����ϡ�����̾�����ɽ�����줺��������� �����פ���̾������ɽ������ޤ������Ȥ��С������� PGP ������ǡ���̾�� bob �� ���ϡ����Τ褦��ɽ������ޤ���
PGP, (bob)
"jarsigner" "Verification of a JAR File" "\fLjarsigner \(em JAR signing and verification tool " JAR �ե����뤬��JDK 1.1 �� javakey �ġ����Ȥäƽ�̾����Ƥ����硢��̾�Ԥϥ����ǥ�ƥ��ƥ��ǡ����١������ ��̾�Ǥ������ξ�硢���ڤν��Ϥˤ� i �Ȥ������椬�ޤޤ�ޤ���JAR �ե����뤬�� �����ǥ�ƥ��ƥ��ǡ����١��������̾�ȥ������ȥ������̾��ξ��ˤ�äƽ�̾ ����Ƥ�����ϡ�k �� i ��ξ��ɽ������ޤ���
-certs ���ץ�������ꤷ����硢�������ȥ�����̾�ϳ�̤ǰϤޤ��Τ��Ф��������ǥ�ƥ� �ƥ��ǡ����١��������̾�ϳѳ�̤ǰϤޤ��ɽ������ޤ������Ȥ��С����Τ褦�� ɽ������ޤ���
jarsigner -keystore /working/mystore -verify -verbose -certs writeFile.jar 198 Fri Sep 26 16:14:06 PDT 1997 META-INF/MANIFEST.MF 199 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.SF 1013 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.DSA 199 Fri Sep 27 12:22:30 PDT 1997 META-INF/DUKE.SF 1013 Fri Sep 27 12:22:30 PDT 1997 META-INF/DUKE.DSA smki 2752 Fri Sep 26 16:12:30 PDT 1997 writeFile.html X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) X.509, CN=Duke, OU=Java Software, O=Sun, L=cup, S=ca, C=us [duke] s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope jar verified.
��̾ duke �ϳѳ�̤ǰϤޤ�Ƥ���Τǡ�������̾�ϥ������ȥ�����̾�ǤϤʤ��� �����ǥ�ƥ��ƥ��ǡ����١�������̾�Ǥ���
2 o jar �ġ���Υɥ������
2 o keytool �ġ���Υɥ������
2 o \f3jarsigner �ġ���λ�����ˤĤ��Ƥϡ���Java Tutorial�� (http://java.sun.com/docs/books/tutorial/trailmap.html) �Ρ�Security��( http://java.sun.com/docs/books/tutorial/security1.2/index.html) ��