この規格 プレビューページの目次
※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。
序文
ISO (国際標準化機構) は、各国の標準化団体 (ISO メンバー団体) の世界的な連合です。国際規格の作成作業は、通常、ISO 技術委員会を通じて行われます。技術委員会が設立された主題に関心のある各会員団体は、その委員会に代表される権利を有します。 ISOと連携して、政府および非政府の国際機関もこの作業に参加しています。 ISO は、電気技術の標準化に関するすべての問題について、国際電気標準会議 (IEC) と緊密に協力しています。
この文書の開発に使用された手順と、今後の維持のために意図された手順は、ISO/IEC 指令で説明されています。 1. 特に、さまざまなタイプの ISO 文書に必要なさまざまな承認基準に注意する必要があります。この文書は、ISO/IEC 指令の編集規則に従って作成されました。 2 ( www.iso.org/directives を参照)
このドキュメントの要素の一部が特許権の対象となる可能性があることに注意してください。 ISO は、そのような特許権の一部または全部を特定する責任を負わないものとします。ドキュメントの開発中に特定された特許権の詳細は、序文および/または受信した特許宣言の ISO リストに記載されます ( www.iso.org/patents を参照)
このドキュメントで使用されている商号は、ユーザーの便宜のために提供された情報であり、保証を構成するものではありません。
適合性評価に関連する ISO 固有の用語および表現の意味に関する説明、および技術的貿易障壁 (TBT) における WTO 原則への ISO の準拠に関する情報については、次の URL を参照して ください 。
ISO/IEC 17960 は、合同技術委員会 ISO/IEC JTC 1, 情報技術、小委員会 SC 22, プログラミング言語、その環境およびシステム ソフトウェア インターフェイスによって作成されました。
序章
ソース コードが作成され、多くの重要なアプリケーションで使用されます。依存しているソース コードがテストで使用されたものと同じであることを知ることは、特定のアプリケーションの安全性とセキュリティを確保するために不可欠です。ソース コードは簡単に変更できるため、ソース コードの整合性と信頼性を保護する何らかの方法が必要です。サプライ チェーン全体でソース コードを隔離することは可能な方法の 1 つですが、その方法で確実に保護することは非現実的であり、信頼できません。デジタル署名を使用した仮想保護は、ソース コードが安全でないサプライ チェーンを通過する可能性がある場合でも、実用的なソリューションを提供し、整合性と認証を提供します。
ソース コードは、サプライ チェーンを移動するとき、または時間の経過とともに、正当な理由で変更される場合があります。ソフトウェアを修正するため、または他の目的に適合させるために、ソース コードの変更が行われる場合があります。変更は、コードの数行の変更のみを伴う場合があり、ほとんどの場合、元の作成者または作成者チームによって行われるわけではありません。リビジョン管理ソフトウェアは、ソフトウェア変更の追跡を容易にしますが、そのような追跡は簡単になりすますことができます。デジタル署名を使用すると、なりすましを制限する手段が提供されます。デジタル コード署名は、ソース コードの各リビジョンに責任者を割り当てるため、責任者、ソース コード、およびリビジョン間で行われたソフトウェア変更の信頼性を証明できます。これにより、ソースコードの電子血統を確立することができます。
この標準は、ソース コードの整合性と信頼性を保証するためにソース コードに署名するプロセスと、署名済みの以前のバージョンにソース コードをロールバックする手段を指定します。箇条 5 は、コード署名の概念の概要を提供します。この規格の適合要件は、条項 6 で指定されています。付属書 A は参考情報であり、コード署名の理解を助けるために、条項 6 で指定された規格の典型的なアプリケーションの段階的な説明を提供します。参考文献には、この標準の作成中に参照されたドキュメントがリストされています。
1 スコープ
この国際標準は、ソフトウェア ソース コードの署名をサポートし、それを一意に識別できるようにし、署名済みの以前のバージョンにロールバックできるようにするために必要な方法論を定義するために、言語中立および環境中立の記述を指定します。これは、ソフトウェア ソース コードの作成者と署名付きソース コードの受信者によって使用されることを意図しています。この国際標準は、異種のエンティティ間でソース コードを転送するために設計されています。
次の領域は、この国際規格の範囲外です。
- 認証局の信頼レベルの決定。
- ソース コード ファイルのリビジョンを追跡するために使用される形式。
- オブジェクトまたはバイナリ コードのデジタル署名。
- システム構成とリソースの可用性。
- メタデータ
- これは ISO/IEC 19770-2 で部分的に対処されています。
伝達と表現の問題
- これは実装上の問題になる可能性がありますが、これらの問題を軽減するために使用できる Portable Document Format (PDF) 1などの手法があります。これは、特にデジタル署名の送信に適用されます。
3 参考文献
以下のドキュメントの全体または一部は、この規格で規範的に参照されており、その適用に不可欠です。日付のある参考文献については、引用された版のみが適用されます。日付のない参照については、参照文書の最新版 (修正を含む) が適用されます。
- ISO/IEC 9594-8:2014 、情報技術 — オープン システム相互接続 — ディレクトリ — 8: 公開鍵と属性証明書のフレームワーク2
- ISO/IEC 10118-3:2004, 情報技術 — セキュリティ技術 — ハッシュ関数 — 3: 専用のハッシュ関数
- ISO/IEC 13888-1:2009, 情報技術 — セキュリティ技術 — 否認防止 — 1: 一般
4 用語と定義
このドキュメントでは、次の用語と定義が適用されます。
4.1
証明書
認証局の秘密鍵または秘密鍵で偽造できないエンティティのデータ
[出典: ISO/IEC 13888‑1:2009]
4.2
認証局
証明書を作成および割り当てるために、1 人以上のユーザーによって信頼されている機関
[出典: ISO/IEC 13888‑1:2009]
4.3
チェンジセット
新しい構成を導出するために構成に適用されるすべての変更のセット
4.4
デジタル署名
データユニットの受信者がデータユニットのソースと完全性を証明し、たとえば受信者による偽造から保護できるようにする、データユニットに追加されたデータ、またはデータユニットの暗号化変換
[出典: ISO/IEC 13888‑1:2009]
4.5
ハッシュコード
ハッシュ関数の出力であるビットの文字列
[出典: ISO/IEC 13888‑1:2009]
4.6
ハッシュ関数
次の 2 つのプロパティを満たす、ビットの文字列を固定長のビットの文字列にマップする関数。 2) 与えられた入力に対して、同じ出力にマッピングされる 2 番目の入力を見つけることは計算上不可能です。
[出典: ISO/IEC 13888‑1:2009]
4.7
創始者
メッセージを受信者に送信する、または否認防止サービスが提供されるメッセージを利用可能にするエンティティ。
[出典: ISO/IEC 13888‑1:2009]
4.8
秘密鍵
そのエンティティによってのみ使用されるべきエンティティの非対称鍵ペアの鍵
[出典: ISO/IEC 13888‑1:2009]
4.9
公開鍵
公開できるエンティティの非対称鍵ペアの鍵
[出典: ISO/IEC 13888‑1:2009]
4.10
公開鍵証明書
認証局によって署名され、それによって偽造できないエンティティの公開鍵情報
[出典: ISO/IEC 13888‑1:2009]
4.11
受取人
否認防止サービスが提供されるメッセージを取得 (受信または取得) するエンティティ
[出典: ISO/IEC 13888‑1:2009]
4.12
スナップショット
構成の完全なコピー
参考文献
| [1] | コード署名のベスト プラクティス、 http://msdn.microsoft.com/en–us/windows/hardware/gg487309.aspx, 2007 年 7 月 25 日 |
| [2] | コード署名の仕組み、 https: //www.verisign.com/code-signing/information-center/how-code-signing-works/index.html, 2011 |
| [3] | コード署名の概要、 http: //msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx, 2011 年 6 月 21 日 |
| [4] | ISO/IEC 9796-2:2010, 情報技術 — セキュリティ技術 — メッセージ回復を提供するデジタル署名スキーム — 2: 整数因数分解ベースのメカニズム |
| [5] | ISO/IEC 9796-3:2006, 情報技術 — セキュリティ技術 — メッセージ回復を提供するデジタル署名スキーム — 3: 離散対数ベースのメカニズム |
| [6] | ISO/IEC 9899:2011, 情報技術 — プログラミング言語 — C |
| [7] | ISO/IEC 14750:1999, 情報技術 — オープン分散処理 — インターフェイス定義言語 |
| [8] | ISO/IEC 14888-1:2008, 情報技術 — セキュリティ技術 — 付録付きデジタル署名 — 1: 一般 |
| [9] | ISO/IEC 14888-2:2008, 情報技術 — セキュリティ技術 — 付録付きデジタル署名 — 2: 整数因数分解ベースのメカニズム |
| [10] | ISO/IEC 14888-3:2006, 情報技術 — セキュリティ技術 — 付録付きデジタル署名 — 3: 離散対数ベースのメカニズム |
| [11] | ISO/IEC 19770-2:2009, 情報技術 - ソフトウェア資産管理 - 2: ソフトウェア識別タグ |
| [12] | ITU-T 勧告 X.509:2008, 情報技術 - オープン システム相互接続 - ディレクトリ: 認証フレームワーク、 http ://www.itu.int/rec/T-REC-X.509/en |
| [13] | ITU-T 勧告 X.509:2005, 情報技術 - オープン システム相互接続 - ディレクトリ: 公開鍵および属性証明書フレームワーク、 http://www.itu.int/rec/T-REC-X.509/en |
| [14] | Mansfield-Devine S.、信頼の問題。ネットワーク。安全2009年6月 2009年6月 |
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO member bodies). The work of preparing International Standards is normally carried out through ISO technical committees. Each member body interested in a subject for which a technical committee has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.
The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, 1. In particular the different approval criteria needed for the different types of ISO documents should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, 2 (see www.iso.org/directives ).
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents ).
Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.
For an explanation on the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISO's adherence to the WTO principles in the Technical Barriers to Trade (TBT) see the following URL: Foreword - Supplementary information
ISO/IEC 17960, was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces.
Introduction
Source code is written and is used in many critical applications. Knowing that the source code being relied upon is the same as that which was used in testing is vital to ensuring the safety and security of a particular application. Given the ease with which source code can be modified, some method of protecting the integrity and authenticity of the source code is necessary. Sequestration of the source code throughout the supply chain is one possible method, but ensuring protection in that way is impractical and unreliable. Virtual protection through the use of a digital signature offers a practical solution and provides integrity and authentication even though the source code may traverse an insecure supply chain.
Source code may be modified for legitimate reasons as it moves through the supply chain or over time. Modifications to source code may be made to correct the software or to adapt it for other purposes. Modifications may only involve changes to a few lines of code and in most cases is not made by the original author or team of authors. Revision control software facilitates tracking of the software changes, but such tracking can easily be spoofed. The use of a digital signature provides a means to restrict the ability to spoof. Digital code signing assigns a responsible party to each revision of the source code and thus can demonstrate the authenticity of the responsible party, the source code and the software changes that have been made between revisions. By doing this, an electronic pedigree for the source code can be established.
This standard specifies the process for signing source code in order to ensure the integrity and authenticity of the source code and a means for rolling back the source code to signed previous versions. Clause 5 provides an overview of the concepts of code signing. Conformance requirements for this standard are specified in Clause 6. Annex A is informative and provides a step by step description of a typical application for the standard specified in Clause 6 to assist in understanding code signing. The bibliography lists documents that were referenced during preparation of this standard.
1 Scope
This International Standard specifies a language-neutral and environment-neutral description to define the methodology needed to support the signing of software source code, to enable it to be uniquely identified, and to enable roll-back to signed previous versions. It is intended to be used by originators of software source code and the recipients of their signed source code. This International Standard is designed for transfers of source code among disparate entities.
The following areas are outside the scope of this International Standard:
- Determination of the trust level of a certification authority;
- Format used to track revisions of source code files;
- Digital signing of object or binary code;
- System configuration and resource availability;
- Metadata
- This is partially addressed by ISO/IEC 19770-2;
Transmission and representation issues
- Though this could be an issue in implementation, there are techniques such as Portable Document Format (PDF) 1 that can be used to mitigate these issues. This applies in particular to the transmission of digital signatures.
3 Normative references
The following documents, in whole or in part, are normatively referenced in this standard and are indispensable for its application. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
- ISO/IEC 9594-8:2014 ,Information technology — Open Systems Interconnection — The Directory — 8: Public-key and attribute certificate frameworks2
- ISO/IEC 10118-3:2004, Information technology — Security techniques — Hash-functions — 3: Dedicated hash functions
- ISO/IEC 13888-1:2009, Information technology — Security techniques — Non-repudiation — 1: General
4 Terms and definitions
For the purposes of this document, the following terms and definitions apply.
4.1
certificate
entity's data rendered unforgeable with the private or secret key of a certification authority
[SOURCE: ISO/IEC 13888‑1:2009]
4.2
certification authority
authority trusted by one or more users to create and assign certificates
[SOURCE: ISO/IEC 13888‑1:2009]
4.3
changeset
set of all changes that are applied to a configuration to derive a new configuration
4.4
digital signature
data appended to, or a cryptographic transformation of, a data unit that allows the recipient of the data unit to prove the source and integrity of the data unit and protect against forgery, e.g. by the recipient
[SOURCE: ISO/IEC 13888‑1:2009]
4.5
hash code
string of bits that is the output of a hash-function
[SOURCE: ISO/IEC 13888‑1:2009]
4.6
hash-function
function which maps strings of bits to fixed-length strings of bits, satisfying the following two properties: 1) it is computationally infeasible to find for a given output an input which maps to this output; 2) it is computationally infeasible to find for a given input a second input which maps to the same output
[SOURCE: ISO/IEC 13888‑1:2009]
4.7
originator
entity that sends a message to the recipient or makes available a message for which non-repudiation services are to be provided
[SOURCE: ISO/IEC 13888‑1:2009]
4.8
private key
key of an entity’s asymmetric key pair which should only be used by that entity
[SOURCE: ISO/IEC 13888‑1:2009]
4.9
public key
key of an entity’s asymmetric key pair which can be made public
[SOURCE: ISO/IEC 13888‑1:2009]
4.10
public key certificate
public key information of an entity signed by the certification authority and thereby rendered unforgeable
[SOURCE: ISO/IEC 13888‑1:2009]
4.11
recipient
entity that gets (receives or fetches) a message for which non-repudiation services are to be provided
[SOURCE: ISO/IEC 13888‑1:2009]
4.12
snapshot
complete copy of a configuration
Bibliography
| [1] | Code-Signing Best Practices, http://msdn.microsoft.com/en–us/windows/hardware/gg487309.aspx , July 25, 2007 |
| [2] | How Code Signing Works, https://www.verisign.com/code‑signing/information‑center/how‑code-signing-works/index.html , 2011 |
| [3] | Introduction to Code Signing, http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx , June 21, 2011 |
| [4] | ISO/IEC 9796-2:2010, Information technology — Security techniques — Digital signature schemes giving message recovery — 2: Integer factorization based mechanisms |
| [5] | ISO/IEC 9796-3:2006, Information technology — Security techniques — Digital signature schemes giving message recovery — 3: Discrete logarithm based mechanisms |
| [6] | ISO/IEC 9899:2011, Information technology — Programming languages — C |
| [7] | ISO/IEC 14750:1999, Information technology — Open Distributed Processing — Interface Definition Language |
| [8] | ISO/IEC 14888-1:2008, Information technology — Security techniques — Digital signatures with appendix — 1: General |
| [9] | ISO/IEC 14888-2:2008, Information technology — Security techniques — Digital signatures with appendix — 2: Integer factorization based mechanisms |
| [10] | ISO/IEC 14888-3:2006, Information technology — Security techniques — Digital signatures with appendix — 3: Discrete logarithm based mechanisms |
| [11] | ISO/IEC 19770-2:2009, Information technology — Software asset management — 2: Software identification tag |
| [12] | ITU-T Recommendation X.509:2008, Information Technology - Open Systems Interconnection - The Directory: Authentication Framework, http://www.itu.int/rec/T-REC-X.509/en |
| [13] | ITU-T Recommendation X.509:2005, Information Technology - Open Systems Interconnection - The Directory: Public-Key and attribute certificate frameworks, http://www.itu.int/rec/T-REC-X.509/en |
| [14] | Mansfield-Devine S., A Matter of Trust. Netw. Secur. 2009 June, 2009 (6) |