jarsigner.1 revision 0
t

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.


jarsigner 1 "2006 ǯ 9 �� 4 ��" "Java SE 6" "�桼�������ޥ��"
"̾��"
jarsigner - JAR ��̾����Ӹ��ڥġ���

Java ARchive (JAR) �ե�����ν�̾������������̾�դ� JAR �ե�����ν�̾�򸡾ڤ��ޤ���

"����"
jarsigner [ options ] jar-file alias

jarsigner -verify [ options ] jar-file

"����"
"JAR signing and verification tool " "" "JAR signing and verification tool \(em \fLjarsigner" "jarsigner" "" "\fLjarsigner \(em JAR signing and verification tool " jarsigner �ġ���ϡ����� 2 �Ĥ���Ū�ǻ��Ѥ��ޤ���

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 ���ץ�������ꤷ�ޤ���

JDK 1.1 �Ȥθߴ���

"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 ���ץ�����Ȥäƥ����С��饤�ɤǤ��ޤ���

��̾�դ� JAR �ե�����

"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

�����γƥ��ץ����ξܺ٤ˤĤ��Ƥϡ���ҤΡ֥��ץ�������򻲾Ȥ��Ƥ���������

JAR �ե�����θ���

"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 ������å�����ɽ�����ޤ���

1 �Ĥ� JAR �ե�������оݤȤ���ʣ���ν�̾

"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

���Ȥ��С����Υ��ޥ�ɤϡ����ꤵ�줿 PKCS#11 �ȡ���������Ƥ����ɽ�����ޤ���

\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 �ե�����ؤΥѥ�����ꤹ����:

\f2-altsignerpath /home/user/lib/authsigner.jar

JAR �ե�����̾���ޤޤ�Ƥ���������դ��Ƥ���������

���饹�ե������ޤ� JAR �ե�����ؤΥѥ�����ꤹ����:

\f2-altsignerpath /home/user/classes/com/sun/tools/jarsigner/

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

��̾�դ� JAR �ե�����θ���

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

�����ǥ�ƥ��ƥ��ǡ����١�����̾�Ԥ�ޤ� JAR �ե�����θ���

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