<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Towards a Configurable Framework for Iterative Signing of Distributed Graph Data</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Andreas</forename><surname>Kasten</surname></persName>
							<email>andreas.kasten@uni-koblenz.de</email>
							<affiliation key="aff0">
								<orgName type="institution">University of Koblenz</orgName>
								<address>
									<postCode>56070</postCode>
									<settlement>Koblenz</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ansgar</forename><surname>Scherp</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">University of Mannheim</orgName>
								<address>
									<postCode>68131</postCode>
									<settlement>Mannheim</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Towards a Configurable Framework for Iterative Signing of Distributed Graph Data</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">03A2D747A0BDCE69B5D0A38417E150FB</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T09:00+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>bka:bka-gsm-1 &quot;TmV2ZXIgR29ubmEgR2l2ZSBZb3UgVXA=&quot; sig:hasSignatureMethod sig:hasSignatureValue sig:Signature rdf:type sig:GraphSigningMethod rdf:type sig:gcm-fisteus-2010 sig:dm-md5 sig:sm-rsa rdf:type :gsm-n-triples sig:gdm-fisteus-2010 rdf:type sig:GraphDigestMethod sig:hasGraphDigestMethod bka:bka-sig-1 bka:bka-pck-1 sig:X509Certificate rdf:type &quot;12:E5:D0:01:D8:13:C8&quot; sig:hasSerialNumber &quot;C=DE</term>
					<term>O=Zentrum fuer Informationsverarbeitung und Informationstechnik</term>
					<term>OU=Betrieb</term>
					<term>CN=ZIVIT CA -G01</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>When publishing graph data on the web such as vocabularies using RDF(S) or OWL, one has only limited means to verify its authenticity and integrity. Today's approaches require a high signature overhead and do not allow for an iterative signing of graph data. This paper presents a configurable framework for signing arbitrary graph data provided in RDF(S), Named Graphs, or OWL. Our framework supports signing graph data at different levels of granularity: minimum selfcontained graphs (MSG), sets of MSGs, and entire graphs. It supports an iterative signing of graph data, e. g., when different parties provide different parts of a common graph, and allows for signing multiple graphs. Both can be done with a constant, low overhead for the signature graph, even when iteratively signing graph data.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Exchanging trusted graph data on the Semantic Web is only possible to a limited extend today. On the contrary, the amount of graph data published and shared on the web has tremendously increased. In order to track provenance and building trust networks for knowledge-based systems, it becomes inherently necessary to be able to verify the authenticity and integrity of the graph data by signing it. Authenticity and integrity are basic security requirements which ensure that graph data is really created by the party who claims to be its creator and that any modifications on the data are only carried out by authorized parties. To the best of our knowledge, the only solution for signing graph data so far is the work by Tummarello et al. <ref type="bibr" target="#b0">[1]</ref>. It provides a simple graph signing function for so-called minimum self-contained graphs (MSGs). An MSG is defined over statements. It is the smallest subgraph of the complete RDF graph that contains a statement and the statements of all blank nodes associated either directly or recursively with it. Statements without blank nodes are an MSGs on their own. Tummarello et al. provide an important early step for signing graph data. However, it has significant shortcomings regarding the functionality provided and overhead required for representing the graph signature: First, the signing function can be applied on MSGs only. To this end, the signature is attached to the MSG by using the RDF Statement reification mechanism. This requires significant overhead for representing the signature statements. Second, it cannot be applied on, e. g., sets of statements like ontology design patterns or graphs as a whole. The approach does not support signing Named Graphs or signing multiple graphs at the same time. Finally, the approach by Tummarello et al. does not allow for an iterative signing of graph data as the signature statements become part of the MSG they sign. There is no explicit relationship between the signature and the signed statements. This makes it practically impossible to verify the integrity and authenticity of the graph data.</p><p>In this paper, we present a configurable framework for signing RDF(S) graphs, Named Graph, and OWL graphs. The general process of signing and verifying graph data is based on the XML signature standard <ref type="bibr" target="#b1">[2]</ref> and depicted in Fig. <ref type="figure" target="#fig_11">1</ref>. First, a canonicalization function normalizes the data to a unique representation. Second, a serialization function transforms the canonicalized data into a sequential representation (if not already provided in sequential form). Third, a hash function <ref type="bibr" target="#b2">[3]</ref> computes a cryptographic hash value on the serialized data. Fourth, a signature function combines the data's hash value with a signature key <ref type="bibr" target="#b2">[3]</ref>. The results of the first four functions are combined and together constitute the graph signing step. Fifth, an assembly function creates a signature graph containing all data for verifying the graph's integrity and authenticity, which is the last step.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Graph signing</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Canonicalization</head><p>Step 1</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Serialization</head><p>Step 2</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Hash</head><p>Step 3</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Signature</head><p>Step 4</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Assembly</head><p>Step 5</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Verification</head><p>Step 6</p><p>Fig. <ref type="figure" target="#fig_11">1</ref>. The general process of signing and verifying graph data.</p><p>The framework as outlined in Fig. <ref type="figure" target="#fig_11">1</ref> can be configured, e. g., to optimize the signing process towards efficiency or minimizing the signature overhead. The resulting signature graph is assembled with the signed graph and can be published on the web. The contribution of this work is:</p><p>-A configurable framework for implementing different signing functions of graph data. -The framework supports different levels of granularity of signing graph data.</p><p>It can be used to sign a minimum self-contained graph (MSG), a set of MSGs, entire graphs, and multiple graphs at once. -The signing process can be applied on graph data distributed over the web.</p><p>-The framework allows for an iterative signing of graph data.</p><p>-Signed graphs can contain assertional knowledge as well as terminological knowledge.</p><p>-The overhead for signing graphs is constant even when iteratively signing graph data.</p><p>The following scenario motivates the need for iteratively signing different types of graph data. The related work is presented in Section 3. Three different configurations are discussed in Section 4. Finally, we present an example implementation of our framework in Section 5.</p><p>2 Scenario: Trust Network for Content Regulation:</p><p>In the scenario depicted in Fig. <ref type="figure" target="#fig_0">2</ref>, we consider building a trust network for Internet regulation in Germany. The information about what kind of content is to be regulated is encoded as graph data, which is provided by different authorities. An authority receives signed graph data from another authority, adds its own graph data, digitally signs the result, and publishes it on the web. Due to Germany's history in the second World War, until today the access to neo-Nazi material on the Internet is prohibited by German law (Criminal Code, §86 <ref type="bibr" target="#b3">[4]</ref>). The German Federal Criminal Police Office (Bundeskriminalamt, BKA) provides a set of formally defined ontologies making use of ontology design patterns <ref type="bibr" target="#b4">[5]</ref>. The patterns represent knowledge such as wanted persons, recent crimes, and regulation information for Internet communication like it is required by §86. In addition, the BKA provides a blacklist of web sites to be blocked according to §86. It signs both the ontologies and the blacklist and publishes the ontologies on the web. Internet service providers (ISPs) such as the German Telecom receive the regulating information from the BKA. By verifying its authenticity and integrity, the ISPs can trust the BKA's regulation data. This data only describes what is to be regulated and not how it is regulated. Thus, ISPs like the German Telecom interpret the data received from the BKA and add concrete details such as the proxy servers and routers used for blocking the web sites. As shown in Fig. <ref type="figure" target="#fig_0">2</ref>, the ISP compiles its technical regulation details as RDF graph which is based on the BKA's ontology pattern. It digitally signs the BKA's blacklist together with its own regulation graph and sends it to its customers. The customers such as the primary school depicted in Fig. <ref type="figure" target="#fig_0">2</ref> are able to verify the authenticity and integrity of the regulating information. The school has to ensure that its pupils cannot access illegal neo-Nazi content. The iterative signing of the regulation data allows the school to check which party is responsible for which parts of the data. Thus, it can track the provenance of the regulation's creation. In addition, the school has to ensure that adult content cannot be accessed by the pupils. To this end, it receives regulation information for adult content from private authorities such as ContentWatch (http://www.contentwatch.com), which offers regulation data as Named Graphs to protect children from Internet pornography and the like. Thus, different regulation information from multiple sources is incorporated by the school. Finally, the primary school digitally signs the incorporated regulation information before providing it to its client computers. This ensures that the pupils using these computers access the Internet only after passing the predefined regulation mechanisms.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Related Work</head><p>The related work is structured along the process of signing data as outlined in the introduction. An explicit discussion of the runtime complexity and space complexity of the presented functions is provided in our TR <ref type="bibr" target="#b5">[6]</ref>. We summarize this section by explaining why the related work is not sufficient and describe the unique features of our approach. A canonicalization function assures that in principle arbitrary identifiers of a graph's blank nodes do not affect the graph's signature. Carroll <ref type="bibr" target="#b6">[7]</ref> presents a canonicalization function that replaces all blank node identifiers with a uniform place holder, sorts all serialized statements of the graph, and renames the blank nodes according to the order of their statements. Additional statements are added for blank nodes sharing the same identifier. Fisteus et al. <ref type="bibr" target="#b7">[8]</ref> provide a canonicalization function which requires a hash value of each statement based on the authors' hash function described below and sorts the statements according to their hash values. Sayers and Karp <ref type="bibr" target="#b8">[9]</ref> provide a canonicalization function which stores the identifier of each blank node in an additional statement. If the identifier is changed, the original one can be recreated using this statement. The subsequent serialization function transforms a graph into a sequential representation such as a bit string . Functions for serializing (RDF) graphs are well known, e. g., N-Triples <ref type="bibr" target="#b9">[10]</ref> and TriG <ref type="bibr" target="#b10">[11]</ref>. Applying a hash function on a graph is often based on computing and combining the hash values of the serialized statements. Melnik <ref type="bibr" target="#b11">[12]</ref> computes the hash value of a statement by concatenating the hash value of its subject, predicate, and object and hashing the result. The hash values of all statements in an RDF graph are sorted, concatenated, and hashed again. Fisteus et al. <ref type="bibr" target="#b7">[8]</ref> suggest a hash function which associates all blank nodes with the same identifier, computes the statements' hash values like with Melnik's approach <ref type="bibr" target="#b11">[12]</ref>, and combines these values to form the hash value of the entire graph. Carroll <ref type="bibr" target="#b6">[7]</ref> uses a hash function which sorts all serialized statements, concatenates the result into a bit string, and hashes this bit string using a simple hash function such as SHA-2 <ref type="bibr" target="#b12">[13]</ref>. Finally, Sayers and Karp <ref type="bibr" target="#b8">[9]</ref> compute a graph's hash value by incrementally multiplying the hash values of its statements modulo a prime number. Signature functions compute the actual signature of a graph by combining the hash values with a signature key. Possible signature functions are DSA <ref type="bibr" target="#b13">[14]</ref> and RSA <ref type="bibr" target="#b14">[15]</ref>. Tummarello et al. <ref type="bibr" target="#b0">[1]</ref> present a graph signing function for minimum self-contained graphs (MSGs). An MSG of a statement is the smallest subgraph of the entire RDF graph containing this statement and the statements of all associated blank nodes. The graph signing function of Tummarello et al. is based on Carroll's canonicalization function and hash function <ref type="bibr" target="#b6">[7]</ref>. The resulting signature is stored as a set of six statements, which are linked to the signed MSG via RDF Statement reification of one of the MSG's statements. The graph signing function signs one MSG at a time. Signing multiple MSGs requires multiple signatures. Individually signing MSGs with only one statement creates a high overhead of six signature statements. The approach by Tummarello et al. does not allow for iterative signing of graph data. The signature statements created for each signing step become part of the signed MSG. Signing this MSG again also signs the included signature statements. This makes it impossible to relate a set of signature statements to the corresponding signed graph data. Thus, verifying the signature becomes practically impossible. A graph can also be signed by signing a particular serialization of it <ref type="bibr" target="#b15">[16]</ref>. For example, a graph serialized as RDF/XML <ref type="bibr" target="#b16">[17]</ref> or OWL/XML <ref type="bibr" target="#b17">[18]</ref> can be signed using the XML signature standard <ref type="bibr" target="#b1">[2]</ref>. However, such a signature can only be verified as long as the specific serialization is still available. Finally, assembly functions create a detailed description of how a graph's signature can be verified. This description may be added to the signed graph data or be stored at a separate location. Tummarello et al. <ref type="bibr" target="#b0">[1]</ref> present a simple assembly function which adds the signature value and a URL to the signature key to a signed MSG. Information about the graph signing function and its subfunctions is not provided. If the signature key is not available anymore at the URL, the signature can no longer be verified. In order to describe the parameters of a signing function, the XML signature standard <ref type="bibr" target="#b1">[2]</ref> may be used.</p><p>In contrast to the related work on graph signing and the individual functions that contribute to graph signing, our approach allows for signing graphs at different levels of granularity like a single MSG, a set of MSGs, an entire graphs, and even multiple graphs at the same time. It supports for signing both terminological knowledge and assertional knowledge that can be distributed over different sources on the web. Finally, our graph signing approach only requires a low signature overhead, which is constant also for iteratively signed graph data.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Example Configurations of the Framework</head><p>We present three example configurations of the signing framework. To ease comparability, each configuration uses N-Triples for serialization and RSA as signature function. The configurations differ only in the canonicalization function and hash function. In the following, n refers to the number of statements to be signed and b corresponds to the number of blank nodes in the graph. Please note that different configurations are also possible.</p><p>A) Tummarello et al. <ref type="bibr" target="#b0">[1]</ref> use the canonicalization function and hash function of Carroll <ref type="bibr" target="#b6">[7]</ref>. Due to their complexity, the runtime complexity of the graph signing function is O(n log n) and its space complexity is O(n). Carroll's canonicalization function handles blank node identifiers by sorting all of a graph's statements. Additional statements are created for blank nodes sharing the same identifier. With b h ≤ b being the number of such statements, the canonicalized graph contains b h more statements than the original graph. The approach by Tummarello et al. only allows for signing a single MSG at a time. The signature is stored using six additional statements. Signing a graph with r MSGs requires r different signatures. The overhead created by the assembly functions is then 6r statements. Thus, the total overhead is b h + 6r statements.</p><p>B) Minimum Signature Overhead Using the canonicalization function and hash function of Fisteus et al. <ref type="bibr" target="#b7">[8]</ref> leads to a signing process with a minimum signature overhead. Both functions have a runtime complexity of O(n log n) and a space complexity of O(n). Thus, the runtime complexity of the signing function σ N is O(n log n) and the space complexity is O(n). Since the functions of Fisteus et al. do not create any additional statements, the signature overhead is solely determined by the signature graph S. Using a signature graph as in the example depicted in Fig. <ref type="figure" target="#fig_2">4</ref> results in a signature overhead of 19 statements. When m graphs are signed at the same time, the m graphs are arranged using RDF bag. The resulting signature graph is of 19 + 2m statements.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C) Minimum Runtime Complexity</head><p>Using the blank node labeling approach and incremental hash function of Sayers and Karp <ref type="bibr" target="#b8">[9]</ref> leads to a minimum runtime complexity. In order to detect already handled blank nodes, the blank node labeling algorithm maintains a list of additional statements created so far. This list contains at most b entries with b being the total number of additional statements. Assuming that each statement of a graph can contain no, one, or two blank nodes and that a blank node is part of at least one statement, the graph can contain at most twice as many blank nodes as statements, i. e., b ≤ 2n. This results in a space complexity of O(n) of the graph signing function. The signing overhead consists of b statements added by the blank node labeling algorithm and 19 statements created by the assembly function for the signature graph S.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Implementation and Examples of Signed Graph Data</head><p>Our graph signing approach is designed as component-based software framework <ref type="bibr" target="#b18">[19]</ref>. Our framework allows for implementing and providing various algorithms for the different steps of the signing process. It is implemented in Java and can be executed as command-line tool. The tool takes as input a graph or multiple graphs to sign and the user's private key and generates as output the signed graph. As output format, we use an extension of the TriG syntax <ref type="bibr" target="#b10">[11]</ref>. This extension supports nesting of Named Graphs and thus reflects the framework's feature of iterative signing graph data. The signature statements are stored together with the content graphs, i. e., the signed graph data. Please note that this is just one possible implementation and that different output formats can also be used. It is also possible to store the content graphs separately from the signature statements. A formalization of the framework is given in our TR <ref type="bibr" target="#b5">[6]</ref>.</p><p>The subsequent examples are structured along the scenario given in Section 2. Fig. <ref type="figure">3</ref> shows the graph created in the scenario of Section 2. The graph has different parts signed by different parties. Each part is created by applying the graph signing function and the assembly function. In the following, we demonstrate the signing process for each party. All examples are based on configuration B of our framework (see <ref type="bibr">Section 4)</ref>. The first four examples (1) to (4a) use Named Graphs to associate the signature graph with the signed content graphs. In this case, the relation between the signature statements and the content graphs is implicitly given by embedding them into the same Named Graph. The last example (4b) uses a different output format which stores the signature statements separately from the content graphs. In this example, the relation between the signature statements and the content graphs is explicitly modeled as statements. Example 1: Signing an OWL Graph In the first step of the scenario, the BKA creates an ontology design pattern for describing web sites to be blocked according to §86 of the German Criminal Code. Using this pattern, the BKA compiles a list of such web sites and encodes it as an OWL graph. It then signs the list along with the used regulation ontology design pattern. Listing 1 depicts a fragment of the resulting graph. The graph contains the regulation ontology design pattern, the list of blocked web sites, and a signature graph. The design pattern contains T-box knowledge of the BKA and is modeled as a separate graph :bka-pattern-1 shown in lines 20 to 32. The list of blocked web sites contains A-box knowledge. It is modeled as the graph :bka-rules-1 and shown in lines 33 to 39. Signing both :bka-pattern-1 and :bka-rules-1 results in the Named Graph bka:bka-sg-1 and a signature graph. bka:bka-sg-1 contains the graphs :bka-pattern-1 and :bka-rules-1 as its content graphs and the signature graph as its annotation graph. The graph bka:bka-sg-1 is shown in lines 8 to 40 and the signature statements are shown in lines 9 to 19. bka:bka-sg-1 and its two content graphs :bka-pattern-1 and :bka-rules-1 are also shown in Fig. <ref type="figure">3</ref> as part of the graph ps:ps-sg-4.</p><p>The complete signature graph created by the assembly function is depicted in Fig. <ref type="figure" target="#fig_2">4</ref>. The signature is defined in a vocabulary following the XML signature standard <ref type="bibr" target="#b1">[2]</ref>. The vocabulary is available from our homepage, referenced in the conclusion. It can be combined with the W3C PROV vocabulary <ref type="bibr" target="#b19">[20]</ref> in order provide additional information covering the signature's creator and creation date. The signature graph stores the computed signature bka:bka-sig-1, its signature value, and all parameters of the graph signing function required for verifying this value. In the signature graph, the function is identified as bka:bka-gsm-1 and linked to all its subfunctions. This includes the graph canonicalization function sig:gcm-fisteus-2010, the graph serialization function sig:gsm-n-triples, the hash function (also called digest function) sig:dm-md5, the graph hashing function sig:gdm-fisteus-2010, and the signature function sig:sm-rsa. In order to verify the signature, the signature graph contains a reference to the BKA's public key certificate. The certificate contains the corresponding public key of the secret key, which was used as the signature key. The certificate is represented as bka:bka-pck-1 and corresponds to an X.509 certificate <ref type="bibr" target="#b20">[21]</ref> issued by the organization bka:zivit-1.</p><p>1 @prefix bka: &lt;http://icp.it-risk.iwvi.uni-koblenz.de/policies/bka-graph#&gt; . 2 @prefix DUL: &lt;http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#&gt; . 3 @prefix flow: &lt;http://icp.it-risk.iwvi.uni-koblenz.de/ontologies/flow_control.owl#&gt; . 4 @prefix proxy: &lt;http://icp.it-risk.iwvi.uni-koblenz.de/ontologies/proxy_flow_control.owl#&gt; . 5 @prefix sig: &lt;http://icp.it-risk.iwvi.uni-koblenz.de/ontologies/signature.owl#&gt; . 6 @prefix tec: &lt;http://icp.it-risk.iwvi.uni-koblenz.de/ontologies/technical_regulation.owl#&gt; .         Example 2: Signing a Named Graph In the scenario, ContentWatch compiles a blacklist of web sites providing adult content and encodes it as Named Graph. Signing a Named Graph is similar to signing an RDF/OWL graph. Listing 2 depicts the signed Named Graph created by ContentWatch. The blacklist is identified as cw:cw-rules-3 (lines 7 to 12). Signing it results in several signature statements (lines 2 to 6). The statements cover the used graph signing function cw:cw-gsm-3 (line 3), the created signature value (line 4), and Content-Watch's public key certificate cw:cw-pck-3 (line 5). The signature statements and the Named Graph cw:cw-rules-3 are part of the newly created Named Graph cw:cw-sg-3 (lines 1 to 13), which contains the signature statements as its annotation graph and the graph cw:cw-rules-3 as its content graph.     Example 3: Iteratively Signing of Graphs The German Telecom receives the BKA's Named Graph bka:bka-sg-1. This graph contains general regulation information but does not describe how the regulations shall be implemented by the ISP. Thus, the German Telecom adds its own RDF graph :gt-data-2 with detailed regulation information including a proxy server and its IP address. Subsequently, it signs the graph :gt-data-2 together with the received Named Graph bka:bka-sg-1. The resulting Named Graph gt:gt-sg-2 is depicted in Listing 3. It contains the created signature statements (lines 2 to 6), the graph :gt-data-2 created by the German Telecom (lines 7 to 13), and the BKA's Named Graph bka:bka-sg-1 (lines 14 to 22). The signature statements cover the used graph signing function gt:gt-gsm-2 (line 3), the resulting signature value (line 4), and the ISP's public key certificate gt:gt-pck-2 (line 5). The Named Graph gt:gt-sg-2 contains the signature statements as its annotation graph and the two graphs :gt-data-2 and bka:bka-sg-1 as its content graphs.        Example 4a: Signing Multiple, Distributed Graphs The last party in the scenario of Section 2 is the primary school. It retrieves the graph gt:gt-sg-2 from the German Telecom and the graph cw:cw-sg-3 from ContentWatch. In order to enrich the generic information encoded in cw:cw-sg-3 with specific regulation details, the school adds its own regulation data as RDF graph :ps-data-4. This includes a proxy server run by the school. The school signs the graph :ps-data-4 together with the two graphs cw:cw-sg-3 and cw:cw-sg-3. This results in the Named Graph ps:ps-sg-4 shown in Listing 4. It contains the graph :ps-data-4 (lines 7 to 13), the German Telecom's graph gt:gt-sg-2 (lines 14 to 30), and ContentWatch's graph cw:cw-sg-3 (lines 31 to 38). The school's signature graph contains the used graph signing function ps:ps-gsm-4 (line 3), created signature value (line 4), and the certificate ps:ps-pck-4 (line 5).              _:cg-gt-sg-2 a lst:ListItem ; bag:itemContent gt:gt-sg-2 ; lst:nextItem _:cg-cw-sg-3 .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>11</head><p>_:cg-cw-sg-3 a lst:ListItem ; bag:itemContent cw:cw-sg-3 . 12 } Listing 5. Multiple signed graphs with content graphs referred to by their URI.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>In this paper, we presented a first version of our generic framework for iterative signing of distributed RDF(S) graphs, OWL graphs, and Named Graphs. It supports signing A-box and T-box knowledge at different granularity such as single MSGs, ontology design patterns, and whole graphs. We have discussed three different configurations of our framework and its implementation and application based on TriG <ref type="bibr" target="#b10">[11]</ref>. The complete examples as well as the signature on-tology are available from: http://icp.it-risk.iwvi.uni-koblenz.de/wiki/ Signing_Graphs.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Content Trust Network.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>4 Fig. 3 .</head><label>43</label><figDesc>Fig. 3. Examples of iteratively signed graphs.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Example signature graph following the XML signature standard [2].</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>8</head><label></label><figDesc>bka:bka-sg-1 { 9 bka:bka-sig-1 a sig:Signature ; 10 sig:hasGraphSigningMethod bka:bka-gsm-1 ; 11 sig:hasSignatureValue "TmV2ZXIgR29ubmEgR2l2ZSBZb3UgVXA=" ; 12 sig:hasVerificationCertificate bka:bka-pck-1 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>13 bka:</head><label>13</label><figDesc>bka-gsm-1 a sig:GraphSigningMethod ; 14 sig:hasDigestMethod sig:dm-md5 ; 15 sig:hasGraphCanonicalizationMethod sig:gcm-fisteus-2010 ; 16 sig:hasGraphDigestMethod sig:gdm-fisteus-2010 ;</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>17 sig:</head><label>17</label><figDesc>hasGraphSerializationMethod sig:gsm-n-triples ;</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>18 sig:</head><label>18</label><figDesc>hasSignatureMethod sig:sm-rsa .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>20 _</head><label>20</label><figDesc>:bka-pattern-1 { 21 proxy:URLBlockingRuleMethod a owl:Class ; rdfs:subClassOf flow:DenyingFlowControlRuleMethod , [ 23 a owl:Restriction ; owl:onProperty DUL:isSatisfiedBy ; 24 owl:allValuesFrom proxy:URLBlockingRuleSituation 25 ] , [ 26 a owl:Restriction ; owl:onProperty DUL:defines ; 27 owl:someValuesFrom [ a owl:Class ; owl:intersectionOf ( 28 tec:EnforcingSystem [ a owl:Restriction ; owl:onProperty DUL:classifies ; 29 owl:someValuesFrom tec:ProxyServer ] -1 a tec:WebSite ; DUL:hasQuality bka:uq-1 ; DUL:hasSetting bka:ri-1 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head></head><label></label><figDesc>35bka:uq-1 a tec:URLQuality ; DUL:hasRegion bka:ur-1 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head></head><label></label><figDesc>36bka:ur-1 a tec:URLRegion ; 37 tec:hasURL "http://www.stormfront.org/" ; DUL:hasSetting bka:ri-1 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_11"><head>Listing 1 .</head><label>1</label><figDesc>Example of a signed RDF graph.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_12"><head>1</head><label></label><figDesc>cw:cw-sg-3 { 2 cw:cw-sig-3 a sig:Signature ; 3 sig:hasGraphSigningMethod cw:cw-gsm-3 ; 4 sig:hasSignatureValue "SXQncyBibHVlIGxpZ2h0" ; 5 sig:hasVerificationCertificate cw:cw-pck-3 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_14"><head>7</head><label></label><figDesc>cw:cw-rules-3 { 8 cw:wst-3 a tec:WebSite ; DUL:hasQuality cw:uq-3 ; DUL:hasSetting cw:ri-3 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_15"><head>9</head><label></label><figDesc>cw:uq-3 a tec:URLQuality ; DUL:hasRegion cw:ur-3 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_16"><head>Listing 2 .</head><label>2</label><figDesc>10 cw:ur-3 a tec:URLRegion ; tec:hasURL "http://www.youporn.com/" ; DUL:hasSetting cw:ri-3 . Example of a signed Named Graph.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_17"><head>1</head><label></label><figDesc>gt:gt-sg-2 { 2 gt:gt-sig-2 a sig:Signature ; 3 sig:hasGraphSigningMethod gt:gt-gsm-2 ; 4 sig:hasSignatureValue "YXJlIGJlbG9uZyB0byB1cw==" ; 5 sig:hasVerificationCertificate gt:gt-pck-2 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_19"><head>7 _</head><label>7</label><figDesc>:gt-data-2 { 8 bka:pr-1 DUL:hasQuality gt:naq-2 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_20"><head>9</head><label></label><figDesc>gt:naq-2 a tec:NetworkAddressQuality ; DUL:hasRegion gt:ipr-2 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_21"><head>10 gt</head><label>10</label><figDesc>:ipr-2 a tec:IPv4AddressRegion ; DUL:hasSetting bka:pi-1, bka:ri-1 ; 11 tec:hasIPAddress "141.26.83.115" ; tec:hasSubnetMask "255.255.0.0" . 12 ... 13 } 14 bka:bka-sg-1 { 15 bka:bka-gsm-1 a sig:Signature ; 16 sig:hasGraphSigningMethod bka:bka-gsm-1 ;</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_22"><head></head><label></label><figDesc>17 sig:hasSignatureValue "TmV2ZXIgR29ubmEgR2l2ZSBZb3UgVXA=" ; 18 sig:hasVerificationCertificate bka:bka-pck-1 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_24"><head>20 _Listing 3 .</head><label>203</label><figDesc>Example of iteratively signed graphs.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_25"><head>1</head><label></label><figDesc>ps:ps-sg-4 { 2 ps:ps-sig-4 a sig:Signature ; 3 sig:hasGraphSigningMethod ps:ps-gsm-4 ;</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_26"><head></head><label></label><figDesc>ps:ps-pck-4 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_28"><head>7 _</head><label>7</label><figDesc>:ps-data-4 { 8 cw:pr-3 DUL:hasQuality ps:naq-4 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_29"><head>9</head><label></label><figDesc>ps:naq-4 a tec:NetworkAddressQuality ; DUL:hasRegion ps:ipr-4 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_30"><head>10 ps</head><label>10</label><figDesc>:ipr-4 a tec:IPv4AddressRegion ; DUL:hasSetting cw:pi-3, cw:ri-3 ; 11 tec:hasIPAddress "141.26.83.116" ; tec:hasSubnetMask "255.255.0.0" .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_32"><head></head><label></label><figDesc>-sig-2 a sig:Signature ; 16 sig:hasGraphSigningMethod gt:gt-gsm-2 ; sig:hasSignatureValue "YXJlIGJlbG9uZyB0byB1cw==" ; 18 sig:hasVerificationCertificate gt:gt-pck-2 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_33"><head></head><label></label><figDesc>-sig-4 a sig:Signature .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_35"><head>7</head><label></label><figDesc>ps:ps-sg-4 sig:hasSignature ps:ps-sig-4 ; sig:hasContentGraphs _:ps-cgs-1 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_36"><head>8 _</head><label>8</label><figDesc>:ps-cgs-1 a lst:List ; lst:hasFirstItem _:cg-ps-data-4 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_37"><head>9 _</head><label>9</label><figDesc>:cg-ps-data-4 a lst:ListItem ; bag:itemContent _:ps-data-4 ; lst:nextItem _:cg-gt-sg-2 .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_38"><head>10</head><label>10</label><figDesc></figDesc></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgement: We thank Frederik Armknecht and Matthias Krause from the University of Mannheim, Theoretical Computer Science and IT Security Group for their very valuable feedback on the security aspects of graph signing framework. We also thank Peter Schauß for implementing our framework.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Example 4b: Signing Multiple, Distributed Graphs Listing 5 shows the same example as given in Listing 4 but is based on a different assembly function. Instead of embedding the signed graphs directly into the newly created Named Graph ps:ps-sg-4, ps:ps-sg-4 only contains the signature statements and refers to the signed graphs by their URIs. The signature statements are the same as in Listing 4 and shown in lines 5 and 6. The signed graphs are modeled as list (lines 7 to 11) and contains the graphs :ps-data-4, gt:gt-sg-2, and cw:cw-sg-3.</p><p>1 @prefix lst: &lt;http://ontologydesignpatterns.org/cp/owl/list.owl#&gt; . 2 @prefix bag: &lt;http://ontologydesignpatterns.org/cp/owl/bag.owl#&gt; . </p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Signing individual fragments of an RDF graph</title>
		<author>
			<persName><forename type="first">G</forename><surname>Tummarello</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Morbidoni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Puliti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Piazza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">WWW, ACM</title>
				<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="1020" to="1021" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">XML signature syntax and processing</title>
		<author>
			<persName><forename type="first">M</forename><surname>Bartel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Boyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Fox</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Lamacchia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Simon</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/xmldsig-core/" />
	</analytic>
	<monogr>
		<title level="j">W3C</title>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Protocol Building Blocks</title>
		<author>
			<persName><forename type="first">B</forename><surname>Schneier</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Applied Cryptography</title>
				<imprint>
			<publisher>Wiley</publisher>
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<ptr target="http://www.gesetze-im-internet.de/stgb/__86.html" />
		<title level="m">§86 StGB</title>
				<imprint>
			<publisher>Bundesrepublik Deutschland</publisher>
			<date type="published" when="1975">1975</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Ontology design patterns</title>
		<author>
			<persName><forename type="first">A</forename><surname>Gangemi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Presutti</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Handbook on Ontologies</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="221" to="243" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Iterative signing of RDF(S) graphs, Named Graphs, and OWL graphs: Formalization and application</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kasten</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Scherp</surname></persName>
		</author>
		<ptr target="http://www.uni-koblenz.de/~fb4reports/2013/2013_03_Arbeitsberichte.pdf" />
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
		<respStmt>
			<orgName>University of Koblenz-Landau</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Signing RDF graphs</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Carroll</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ISWC 2003</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="369" to="384" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Hashing and canonicalizing Notation 3 graphs</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Fisteus</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">F</forename><surname>García</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">S</forename><surname>Fernández</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">D</forename><surname>Kloos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">JCSS</title>
		<imprint>
			<biblScope unit="volume">76</biblScope>
			<biblScope unit="page" from="663" to="685" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Computing the digest of an RDF graph</title>
		<author>
			<persName><forename type="first">C</forename><surname>Sayers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">H</forename><surname>Karp</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
		<respStmt>
			<orgName>HP Laboratories</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Beckett</surname></persName>
		</author>
		<ptr target="http://www.w3.org/2001/sw/RDFCore/ntriples/" />
		<title level="m">N-Triples</title>
				<imprint>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
	<note>W3C</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">TriG: RDF Dataset Language</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cyganiak</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/trig/" />
		<imprint>
			<date type="published" when="2013">2013</date>
			<pubPlace>W3C</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Melnik</surname></persName>
		</author>
		<ptr target="http://infolab.stanford.edu/~melnik/rdf/" />
		<title level="m">RDF API draft</title>
				<imprint>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<idno>FIPS PUB 180-4</idno>
		<ptr target="http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf" />
		<title level="m">NIST: Secure hash standard</title>
				<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<idno>FIPS PUB 186-3</idno>
		<ptr target="http://csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf" />
		<title level="m">NIST: Digital signature standard (DSS)</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">A method for obtaining digital signatures and public-key cryptosystems</title>
		<author>
			<persName><forename type="first">R</forename><surname>Rivest</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Shamir</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Adleman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">CACM</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="page" from="120" to="126" />
			<date type="published" when="1978">1978</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title level="m" type="main">RDF graph digest techniques and potential applications</title>
		<author>
			<persName><forename type="first">C</forename><surname>Sayers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">H</forename><surname>Karp</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
		<respStmt>
			<orgName>HP Laboratories</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">RDF/XML syntax specification</title>
		<author>
			<persName><forename type="first">D</forename><surname>Beckett</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/rdf-syntax-grammar/" />
	</analytic>
	<monogr>
		<title level="m">W3C</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">OWL 2 web ontology language XML serialization</title>
		<author>
			<persName><forename type="first">B</forename><surname>Motik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Parsia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/owl2-xml-serialization/" />
	</analytic>
	<monogr>
		<title level="m">W3C</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Component software: beyond object-oriented programming</title>
		<author>
			<persName><forename type="first">C</forename><surname>Szyperski</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Pearson Education</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<author>
			<persName><forename type="first">P</forename><surname>Groth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Moreau</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/prov-overview/" />
	</analytic>
	<monogr>
		<title level="m">An overview of the prov family of documents</title>
				<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Cooper</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Santesson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Farrell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Boeyen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Housley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Polk</surname></persName>
		</author>
		<title level="m">Internet X.509 public key infrastructure</title>
				<imprint>
			<publisher>IETF</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>RFC 5280</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
