05-Information Dependability in Distributed Systems - The Dependable Distributed Storage System
05-Information Dependability in Distributed Systems - The Dependable Distributed Storage System
DOI 10.3233/ICA-130444
IOS Press
Abstract. In distributed infrastructures data are usually scattered among different nodes and thus accessible by several users. It is
therefore necessary to provide mechanisms and tools for managing the information, ensuring the access exclusively to authorized
users avoiding malicious ones. Furthermore, satisfactory performance and adequate fault tolerance have to be provided while
addressing information confidentiality, availability and integrity issues. In this paper we face the problem of data dependability
in distributed system, proposing a redundant lightweight cryptography algorithm combining symmetric and asymmetric cryptog-
raphy approaches. The proposed algorithm, named dependable distributed storage system (D2 S2 ), has been implemented on top
of the Grid gLite middleware file access and replica management libraries, as a file system service with cryptography capability,
redundancy management and POSIX interface. To demonstrate the effectiveness and the applicability of the D2 S2 gLite imple-
mentation, performance and reliability of its operations have been evaluated and compared to those of existing solutions. The tests
have been performed on real applications to provide a complete overview of the D2 S2 implementation. The results thus obtained
demonstrate the effectiveness of the D2 S2 implementation also compared to existing solutions and former implementations.
ISSN 1069-2509/14/$27.50
c 2014 – IOS Press and the author(s). All rights reserved
4 S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system
is to replicate and disseminate data among nodes. But The solution we propose to store data in a distributed
sharing information in distributed multi-user environ- environment taking into account dependability require-
ments triggers problems of security concerning data ments is to combine both the symmetric and the asym-
confidentiality and integrity. metric cryptography with a data redundancy algorithm
Some of the middleware implementing the above re- into the dependable distributed storage system (D2 S2 ).
ferred paradigms usually provide data and resources D2 S2 has been implemented on top of the gLite mid-
management’s capabilities such as indexing and replica dleware in order to demonstrate the feasibility of the
management, ensuring security on accessing services approach, exploiting libraries and API provided by the
and on communicating data, but they often lack of data specific middleware. Interesting and remarkable con-
protection from direct malicious accesses, at system tributions of the implementation are the organization
level. In other words, the fact that data are dissemi- of data in an encrypted file system, the protection of
nated and stored in remote nodes, directly accessible both data/files and file system structure, the introduc-
from their administrators, constitutes one of the main tion of the capability of file rewriting in the gLite stor-
risks for data security in such environments, known as age systems and the use of a cache to improve the D2 S2
insider abuse/attack. It is therefore mandatory to in- operation performance.
troduce adequate data protection mechanisms, which Moreover, the D2 S2 gLite implementation has been
deny data intelligibility to unauthorized users, also if evaluated considering both single I/O operations and
they are (local) system administrators. possible applications, investigating its performance
The focus this paper is therefore on information re- and reliability against existing solutions and former
liability and security of distributed systems identified implementations. In particular we demonstrated the ef-
and characterized hereinafter as information depend- fectiveness of our implementation through real appli-
ability. Specifically, the main contribution of this work cations, by which we evaluated the impact of cache on
is to provide a mechanism to store data in distributed the system performance and reliability.
systems, overcoming the above discussed problems This paper extends previous work [8,9] mainly
and issues concerning data dependability. In terms of broadening the scope to reliability issues, thus turn-
reliability, the design and implementation of a specific ing into the wider dependability context to provide
data redundancy management mechanism is required further investigation on the impact of dependability
to achieve such goal. In terms of security, it is neces- on the overall storage system. Furthermore, the refer-
sary to develop an algorithm that provides the highest ence architecture of D2 S2 is here specified identify-
data protection, ensuring confidentiality and integrity. ing functionalities and modules of both its Client and
To this extent, all the work proposed in literature is Server, also providing and discussing new evaluation
mainly based on symmetric cryptography. Most of the results obtained by testing the resulting implementa-
adopted solutions implement key splitting algorithms. tion through real applications and against the former
The underlying idea of the key splitting approach is implementations.
that at least a subset of the systems (key servers) over The reminder of the paper is organized as follows:
which the keys are distributed has to be trustworthy. Section 2 provides an overview of the state of the art of
However this approach is weak from three points of information dependability in distributed environments.
views: security, since often it is not possible to ad- In Section 3 we describe the main algorithms of the
equately secure the list of servers with key parts, in proposed technique, while Section 4 deals with its im-
fact the system administrators can always access the plementation into the gLite Grid middleware. Then, in
key parts and it is really hard to achieve trustworthy Section 5, the results obtained by evaluating our im-
on remote and distributed nodes for users; reliability/ plementation are presented. A discussion on the pro-
availability, since keys and consequently data can be posed solution, final remarks and possible future work
unavailable if one or more of the key servers, depend- are provided in Section 6.
ing on the fault tolerance policy implemented, cannot
be accessed; performance, since there is an initial over-
head to rebuild a key, depending on the number of parts 2. Related work
in which the key is split. A possible solution for im-
proving the reliability/availability of key splitting algo- Several work in literature addressed problems and
rithms is to replicate the key servers, but this contrasts issues related to reliable, available and secure storage
with security challenges. systems, but few of them consider both aspects to-
S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system 5
gether. Focusing on both reliability and security the and replica services specifically conceived for redun-
perspective slightly changes, since choices and algo- dant data management.
rithms can be affected by multi-objective, combined On the other hand, the problem of a secure storage
constraints. has been mainly faced in literature as definition of ac-
In this context, an interesting solution has been de- cess rights [14], in particular addressing problems of
veloped in [28]. It implements a distributed storage data sharing, whilst the coding of data is demanded
system (Oasis+) entirely deployed in-memory using to the user, since no automatic mechanism to access
the distributed shared memory approach, operating as a secure storage space in a transparent way has been
a backbone service in a computing cluster. The Oa- defined. In such context, several solutions propose to
sis+ storage system implements an interesting solu- encrypt data in order to achieve information secu-
tion from the reliability perspective in a small cluster rity [5,6,19,20,22]. Symmetric encryption techniques
context, but it does not take into account security as- are mainly adopted, moving the problem towards the
pects. Both dependability (in terms of reliability, avail- symmetric key hiding in order to protect data from ma-
ability and fault tolerance) and security are instead ad- licious users, external attacks and insider abuses.
dressed in [10], which proposes a solution based on The most effective way to achieve data security is
intrusion tolerance, i.e. the fragmentation-redundancy- encryption, based on the cryptography theory. Cryp-
scattering, that can be scalable to large pervasive sys- tography algorithms are grouped into two main classes:
tems. A drawback of the technique is the high over- symmetric (also known as conventional or secret
head in term of messages required for managing the in- key) [30] and asymmetric (public key) [18]. Asym-
formation security, since higher security standards im- metric ciphers are much slower, even if more secure,
ply higher fragmentation that, on the other hand, af- than symmetric ones. An interesting technique com-
fects the performance of data operations. Another in- bining the high security of asymmetric cryptography
teresting work on the topic is proposed in [26], based algorithms with the efficiency of the symmetric ap-
on a dependable distributed storage system named Ca- proach is PGP (Pretty Good Privacy) [11]. PGP en-
gra. It is optimized for 3D rendering and implements crypts data through symmetric cryptography and then
an interesting fault tolerance mechanism through re- applies an asymmetric cryptography algorithm to se-
dundancy, based on a consistent hashing algorithm to cure the symmetric key. GNU has developed a PGP-
manage and locate data that unfortunately do not en- like algorithm in the open source project GPG (GNU
sure key data coherency thus limiting its applicability Privacy Guard) [31].
to large datasets. Different solutions adopting cryptography to se-
The most important and effective way for achieving cure information in distributed computing environ-
data reliability and fault tolerance is redundancy, con- ment have been conceived [3,6,7,11,13,16,17,19–21,
sisting of replicating information and disseminating re- 31]. In [19], the authors propose a technique for se-
dundant data onto the system. In distributed system, re- curing data disseminated in a distributed environment
liability can be implemented both locally at the single based on symmetric cryptography. The key security is
node of the system and globally considering the sys- entrusted to a unique keystore server that stores it, to
tem as a whole. Several techniques have been devel- which all the data access requests must be notified in
oped and implemented at local level, among others the order to decrypt the data. This algorithm implements
redundant array of independent disks (RAID) technol- a spatial security policy: the security lies in physically
ogy is the most effective and widely used. The problem hiding and securing the keystore server, and the access
of local reliability can be thus considered as solved, but to the keystore is physically restricted and monitored in
it is still open at a global level. Several attempts have order to protect from malicious users, external attacks
been implemented in such direction. For example, [23, and insider abuses.
24] proposes a middleware system that features spe- Shamir in [20] studied in depth the problem of data
cific enhancements designed to support the develop- access in distributed environments, proposing a so-
ment and assessment of highly dependable service- lution based on symmetric keys. The secret sharing
oriented systems and applications named CROWN-C. scheme splits the (AES) symmetric key in n parts,
Fault tolerance issues have been faced at higher service which can be recomposed if and only if at least k n
layer by implementing a specific fault tolerant Grid parts are available (k/n threshold scheme). Moreover,
service. Reliability and data redundancy also are dealt in order to prevent unauthorized accesses, the symmet-
with in [4,10,12,27], mainly adopting data catalogue ric key is stored in different key-servers. In this way,
6 S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system
the system is both resistant to attacks and reliable since pursued avoiding both outsider and, in particular, in-
n − k + 1 key-servers have to be compromised or have sider attacks: no one except the user/owner can access
to fail in order to make the key unavailable and conse- data, including system administrators.
quently data inaccessible. Brunie et al. have specified a In such scenario two main actors can be identified:
similar technique in [6], decomposing the (AES) sym- the final user (or also customer) and the storage sys-
metric key in n trunks that can be rebuilt only if all the tem administrator (or provider). The former accesses
n parts are available. the storage system through a specific Client that sends
The solutions above discussed are based on symmet- the user request to the storage system through the net-
ric cryptography. Most of them implement key split- work in a client-server fashion. On the other hand, the
ting algorithms. The underlying idea of the key split- Server (that could be a Web-Grid service) processes
ting approach is that at least a subset of the nodes (key the incoming requests returning the corresponding
servers) over which the keys are distributed has to be results/data. As discussed above the system should en-
trustworthy. This approach well addresses data-sharing sure data reliability/availability and reliability preserv-
and reliability/availability issues but it is weak from the ing from both outsider and insider abuses.
security point of view, since the list of servers with key Data reliability can be achieved by introducing re-
parts has to be adequately secured, also from system dundancy. Storage systems are usually implemented
administrators that can always access the keys. This as redundant, starting from very robust and reliable
is a serious problem to adequately address in an alter- RAID configurations. This adequately covers internal-
native way, in fact, even though higher security could isolated faults. In order to face common failure modes
be achieved by increasing the fragmentation into key and causes it is necessary to adequately replicate data
parts and consequently of keystores (anyway vulnera- by splitting and distributing them among different stor-
ble to insider abuses), this should have a heavy impact age systems physically independent. The main prob-
on performance. lem to face is therefore related to the replica manage-
This fact has been also demonstrated in [17,29] ment since it is necessary to ensure data consistency. In
evaluating and comparing different dependable storage order to achieve data security, the best solution is the
system solutions in distributed environments. More cryptography. As discussed above, till now, the most
specifically, [29] proposes a model and evaluation successful approach adopted for solving the problem
metrics used in the analysis of 4 schemes: replica- is the symmetric cryptography due to its performance
tion with shared keys (through key server), replica- against the asymmetric one. A problem of symmetric
tion with lockboxes (mixing symmetric and asymmet- encryption is the symmetric key (DataKey) securing-
ric encryption), and two variants adopting the local hiding as in the Kerckhoffs’ principle [15].
key approach, threshold secret sharing with local en- On the other hand, a whole asymmetric cryptogra-
cryption and short secret sharing. Experimental mea- phy algorithm has a heavy impact on data access times,
sures demonstrate that the replication with lockboxes since this requires greater computational resources and
and private keys’ scheme ensures the greatest security, therefore is slower than the symmetric algorithms. This
while all the schemes provide similar level of reliabil- usually does not allow encrypting large amounts of
ity/availability. The best performance in retrieving data data in acceptable time for users, considerably slowing
is provided by the short secret sharing scheme. down the overall system’s performance. Thus, it be-
Thus, in order to achieve the highest security also comes necessary to implement a solution representing
preventing insider abuses the use of private keys and a trade-off between security and performance require-
asymmetric encryption is required, possibly taking into ments. The only condition to satisfy is that no other
account also performance requirements. than the owner of data can access the private key, that
is the only exclusive way to decrypt data encrypted by
the coupling public key. In other words we assume that
3. The proposed solution the private key is securely stored in a trust location (for
example a physical token such as a smartcard device).
The main goal of this work is to achieve data re- As above introduced, the most successful approach
liability and security in distributed systems specifi- for addressing the key-security problem is to split the
cally conceived for providing users with access to key (DataKey) among different KeyServers. The main
their storage accounts. To this purpose, data reliabil- drawback of such approach is the total failure of the
ity/availability, confidentiality and integrity must be protection mechanism in case a malicious user obtains
S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system 7
Fig. 5. Read (a) write (b) and generic operation (c) algorithms.
Client:SRM Server: the DataKey does not exist the storage system has to
Replica Man. be initialized. Thus a new DataKey K is generated
by the Client, then encrypted and sent to the Server
Send(ENDREQ) Recv(ENDREQ)
replica manager, that replicates it and stores the copies
Recv(R)
as shown in Fig. 3.
R=CheckStatus
[NO]
Send(R)
3.2.2. Data sharing
[OK]
In order to access a specific data set, the generic
FlushMem(User) jth user needs the copy of the DataKey K used to en-
crypt such data. This implies that the storage system
Logout(User) has to store a copy of K encrypted by the user public
j j
key KPUB , and so KPUB (K). If the jth user has cre-
j
ated the data set, KPUB(K) is automatically stored into
Fig. 6. Termination algorithm. the storage system at the initialization phase, as dis-
cussed above. Otherwise it is necessary that another
remote storage system the symmetric DataKey K en- authorized user, the ith one, creates a copy of K, en-
crypted by the public key of the user KPUB. The Client crypts that by the jth user public key, thus obtaining
j
Loader therefore forwards the request to the storage KPUB (K), and stores this latter into the storage system
system that first verifies the identity of the user through as specified in the activity diagram of Fig. 4. After that,
the Server ID manager and then, in case it is autho- the ith user has access to the data set.
rized, forwards the requests to the replica manager. If
the storage system has been already initialized, a spe- 3.2.3. I/O
cific query returns the set of storage elements hosting The data stored in the storage system are organized
the encrypted DataKey KPUB(K). The replica manager according to a specific structure, i.e. a file system tree.
has to retrieve KPUB(K) from one of the storage el- Data are therefore split into blocks and files that are
ements: in order to achieve fault tolerance, the corre- logically distributed in a folder of the tree. They are
sponding algorithm starts by querying the first storage managed and accessed by using well-known I/O prim-
element and, in case of faults, iterates by querying the itives (open, close, read, write, unlink, access, chmod,
other storage elements until the data are retrieved or all closedir, create, lseek, lstat, mkdir, opendir, read-dir,
the storage elements have been queried without suc- rename, rmdir, stat and unlink). In Fig. 5, the algo-
cess. The data thus retrieved, or a Null value in case of rithms implementing read, write and the other generic
unsuccessful queries or an error code in case of unau- operations are represented. In particular the read algo-
thorized user, are then forwarded to the Client. In case rithm of Fig. 5(a) implies the decryption of data re-
of success, this latter has to decrypt KPUB (K) by using ceived from the remote storage system, while the write
the user private key KPRIV (K) and stores the decrypted algorithm of Fig. 5(b) requires the encryption of data
DataKey K in a safe memory location. before they are sent to the storage system Server. A
Otherwise, if the user is not recognized by the sys- generic operation is just a command or a signal sent by
tem the algorithm terminates with error, while in case the Client to the Server, as shown in Fig. 5(c).
10 S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system
SE SE
BLOCKS GUID(KPUB(K)) SFN(K(D2S2FI)) SE SFN(K(D2S2FI)) SE
UI
CACHE
LFC
SFN(KPUB(K)) SFN(KPUB(K))
GFAL D2S2FBC
(a) (b)
(a)
(b)
Fig. 8. d2s2_init implementation of the first (a) and following (b) D2 S2 initializations.
j
In the first initialization phase, d2s2_init generates encrypted DataKey KPUB (K) into the SE by invoking
the symmetric key K as a sequence of random num- a gfal_write operation. Thus, the jth user can have
bers obtained by invoking an OPENSSL ad-hoc func- access to the data through d2s2_init.
tion. In the following accesses d2s2_init loads K
and the file index D2S2FI from the storage elements. 4.2.3. I/O
The algorithms in both cases are similar: first the Client D2 S2 data I/O operations are implemented through
on the UI checks for the presence of the encrypted key I/O POSIX primitives such as: open, read/write and
KPUB (K) in the LFC by invoking a lcg_lr primitive close. Files are always encrypted in memory; the en-
specifying the GUID of the DataKey block; then, in cryption is performed at runtime. To improve the D2 S2
case it does not exist, a new key is created, encrypted performance and the usability of its library the ac-
and sent to the storage system (Fig. 8(a)), that creates cessed files’ chunks are locally buffered into a cache
and stores it in the SE closest to the UI (by implicitly in the UI until the corresponding files are closed. At
invoking a gfal_write from the UI to the selected file closing, the UI cache is synchronized with the
SE) through lcg_cr, and finally replicates the en- Grid storage systems (LFC and SE) by invoking a
crypted DataKey into the SE through lcg_rep; oth- d2s2_flush.
erwise, if the Datakey exists, this and the file index are More specifically, as pictorially described in Fig. 10,
loaded in the UI by two consecutive gfal_read op- the gds2_read reads the blocks set BLK1 corre-
erations (Fig. 8(b)). KPUB (K) is therefore decrypted sponding to the selected part of the file. Some of
by the user private key and placed into an unswappable such blocks could be already loaded and stored on the
memory location of the UI to avoid malicious accesses. cache D2S2FBC. The blocks not present in the cache,
identified by the set BLK2 ⊆ BLK1, are firstly lo-
4.2.2. Data sharing cated by inquiring the LCG through a lcg_lr in-
D2 S2 data sharing is implemented by the d2s2_sh vocation and therefore loaded from the SE by an ex-
are primitive. A user i that wants to share the data plicit gfal_read call. This data, with that loaded
stored into an SE with a generic jth user in the same from cache, are placed in the output buffer, and the file
virtual organization has to access the X509 PKI certifi- blocks cache is updated with the data just loaded from
cate of user j. The d2s2_share algorithm therefore the SE. The sets BLK1 and BLK2 correspond to the
j
extracts the user j public key of (KPUB ) and then cre- vectors BLK1[] and BLK2[] of Fig. 10.
j
ates a new copy of the DataKey K encrypted by KPUB . The d2s2_write is an operation entirely per-
As shown in Fig. 9, d2s2_share then stores the new formed by the Client locally, as shown in Fig. 11. The
S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system 13
4.2.4. Finalize
The main goal of the termination operation is to
synchronize Client and Server and in particular the
data modified by the final user in the UI cache, to
be updated to the Grid storage system. This is per-
formed by the d2s2_finalize function by invok-
ing d2s2_flush. The gLite implementations of such
primitives are shown in Fig. 13. With specific regards
to the latter, d2s2_flush synchronizes a specific file
or part of it by firstly identifying all the corresponding
Fig. 11. d2s2_write implementation on gLite. dirty blocks (DBLK[]), and then writing them to the
storage system. Since gLite libraries do not allow any
data blocks to modify are temporarily saved into the modification of files, the write operation has to delete
the original stored blocks (by performing a lcg_del
file blocks cache. When the file is closed, renamed,
erasing all the copies stored in the SEs) and thus stores
moved, deleted, the flush of the cache is forced, or the
the new blocks (lcg_cr) then replicated by LFC
gLite D2 S2 session is terminated, the data in cache are
(lcg_rep) as in Fig. 13(a). d2s2_finalize has
synchronized with the corresponding one catalogued
to just synchronize the whole cache D2S2FBC and the
by LFC and stored into the SEs. index D2S2FI invoking two times d2s2_flush as
d2s2_<op> is a generic data I/O operation mapped shown in Fig. 13(b).
into the corresponding LFC/GFAL operation lcg/
gfal_<op>. When a d2s2_<op> modifies the file
system structure (delete, rename, move, mkdir, etc.) it 5. Evaluating the implementation
is necessary to update the file index and all its replica
stored in the SEs by rewriting the such file index, in- The D2 S2 gLite implementation has been evaluated
voking a LFC lcg_del followed by a lcg_cr and through several experiments and measurements. Ac-
consequently lcg_rep as depicted in Fig. 12. cording to the classification done in [29] the technique
14 S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system
(a)
(b)
Fig. 13. implementation of d2s2_flush (a) and d2s2_finalize (b) D2 S2 primitives on gLite.
here implemented can be classified as replication with (220 B) have been performed. The results thus obtained
lockboxes, which ensures the highest level of secu- have been compared against the LOCAL, GFAL and
rity (1). Thus, we have addressed our investigation on encrypted GFAL file system primitive results. In the
evaluating the impact, in terms of performance, of en- experiments we have measured the invocation response
suring the highest security (Section 5.1). Then, in Sec- time Tr , i.e. the time elapsed from launching the oper-
tion 5.2 we have evaluated the performance and relia- ation till the reply is received.
bility of D2 S2 on real applications, also comparing it More specifically we have performed the same mea-
against the former Grid secure storage system (GS3 ) surements of [8], where we evaluated GS3 at the basis
implementation. of the D2 S2 gLite implementation. Thus, in the exper-
iments we have disabled the cache in order to effec-
5.1. Functional tests tively evaluate the actual operation response time, al-
ways operating on new files. In order to provide useful
In order to assess the performance of D2 S2 13 ex- measures, we have repeated each test 10000 times, cal-
periments consisting in invoking the main D2 S2 op- culating the average value of the results thus obtained.
erations (read, write, and delete) varying the file size One of the aims of the experiments on D2 S2 is the
from 256 Bytes (28 B) and doubling it up to 1 GBytes comparison against the GS3 implementation, in order
S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system 15
Table 2
thus increasing the overall elaboration time. D2 S2 primitive headers
With regards to the GS3 implementation, it is possi-
Tr (sec) Reliability
ble to observe that D2 S2 provides better performance
File system Gcc SQL SQL SQL
than the former. This is probably due to the impact of
insert update delete
data redundancy that allows optimizing data transfer to Local 0.019 0.006 0.007 0.008 1
and from the SE through LFC. GS3 12.535 15.248 12.347 11.123 0.999525
Another interesting information that can be obtained D2 S2 no cache 47.528 21.423 19.357 18.947 0.999875
by the diagrams concerns big data transfers in D2 S2 : to D2 S 2 10.733 12.662 10.287 9.709 0.999975
read a file of 1 GB 100 sec. are required, while 180 sec.
for writing it, approximately. This means that, for ex- D2 S2 , demonstrating its effectiveness. With regards to
ample, a virtual machine (status or difference) migra- the reliability, a long-term test has been performed in
tion in D2 S2 can be actually performed in a reasonable order to adequately evaluate our implementation. More
time ensuring the highest level of security achievable. specifically we have performed 10000 invocations per
operation, in total 40000 tests on each implementation.
5.2. Application tests Among the N = 40000 operations performed we have
collected the number of successful invocations S, thus
To evaluate the D2 S2 behavior we then select two identifying the reliability R as:
I/O bound applications: Gcc (GNU C compiler) and
S
DB-SQLite (on-file data base). In the former case, the R=
compilation of a 10 KB source file located on the re- N
mote storage system through Gcc has been considered. In this way we have obtained the results showed in
The other analysis has instead measured the response the rightmost column of Table 2, by which we can ap-
time of insert, update and delete queries on a remote preciate the impact of the redundancy management on
SQLite DB. Both the performance and the reliability D2 S2 . Indeed, the reliability measure corresponding to
of such operations have been investigated, comparing GS3 is significantly lower than the D2 S2 ones. Fur-
the full D2 S2 implementation against a modified D2 S2 thermore, also in this case the impact of the cache on
version in which the cache has been disabled, against D2 S2 reliability is highlighted by the experiments. In
the former GS3 implementation and also against lo- fact, the system experienced just 1 failure in the cache-
cal file system operations. This allows evaluating the enabled D2 S2 implementation (N − S = 1), while
impact of redundancy management on the D2 S2 com- 5 failures affected the same implementation without
pared to the preliminary GS3 implementation. More- cache and 19 failures have been experienced for the
over, we have also evaluated the cache impact on D2 S2 , cache-enabled GS3 implementation. From the data col-
even if in a particular case characterized by specific lected it is not possible to understand the cause of such
conditions as detailed above. failures, but very likely the network is the first cause
The same testbed of the previous analysis has been of failure. Such effect in particular affects the GS3 im-
used for the tests, each repeated 10000 times. The re- plementation since it does not provide any redundant
sults thus obtained are shown in Table 2. source for retrieving the requested data. In fact, a 4-
In terms of performance we can observe that the GS3 nine reliability is achieved by D2 S2 against a 3-nine
implementation is slower than the D2 S2 one, thus con- reliability by GS3 .
firming the positive impact of redundancy/LFC man- This is also confirmed by the results shown in Ta-
agement on the implementation. Furthermore, with re- ble 2, where no failures are experienced by using the
gards to the cache, the results show that the request re- local file system.
sponse time of the D2 S2 operations without consider-
ing the cache is almost the double of that with cache,
in case of SQLite operations, while it is 4 times greater 6. Conclusions
than the cache one in the case of Gcc compilation. Al-
though, as already discussed, this strongly depends on In this work we proposed the dependable distributed
the application data locality in processing (Gcc com- storage system, a reliable and secure (encrypted) stor-
pilation has greater data locality than SQLite DB ap- age system.
plications), the results allow us to definitely state that Reliability in D2 S2 is achieved by data redundancy
the cache has a significant impact on performance in at different level: RAID policies are implemented in
S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system 17
order to improve internal reliability, while physical [6] L. Brunie, L. Seitz and J.-M. Pierson, Key management for
redundancy and adequate replica management is re- encrypted data storage in distributed systems, in: IEEE Secu-
rity in Storage Workshop, Washington DC, IEEE Computer
quired to prevent common causes of failures.
Society, USA, (October 2003), 20–30.
With regards to security, the algorithm is based [7] A. Chakrabarti, Grid computing security, Springer-Verlag,
on the idea of combining symmetric and asymmetric New York, Inc., Secaucus, NJ, USA, 2007.
cryptography following a two-step approach. The sym- [8] V.D. Cunsolo, S. Distefano, A. Puliafito and M. Scarpa, GS3:
metric cryptography is directly applied to data, while A grid storage system with security features, J Grid Comput
8(3) (2010), 391–418.
the DataKey is (asymmetric) encrypted by the user [9] S. Distefano and A. Puliafito, Achieving distributed system
public key. Decryption and encryption are performed information security, Seventh International Conference on
in the user node, and both the key and the data are Computational Intelligence and Security (2011), 526–530.
managed by avoiding malicious accesses. In this way [10] L. Guy, P. Kunszt, E. Laure, H. Stockinger and K. Stockinger,
Replica management in data grids, Global Grid Forum In-
owner(s) can exclusively access their data. In order to formational Document, GGF5, Tech Rep (2002).
share such data with other users it is necessary to store [11] S. Garfinkel, PGP: Pretty good privacy, O-Reilly Media
in the storage system copies of the DataKey encrypted (November 1994).
by the users private keys. [12] B. Han, S. Yang and X. Yu, Greplica: A web-based data grid
The D2 S2 algorithm has been implemented into the replica management system, in: Semantics, Knowledge and
Grid, SKG’05 First International Conference on (November
gLite middleware as a dependable file system on top of 2005), 114.
LFC and GFAL libraries. This choice allows protecting [13] K. Hwang, Y.K. Kwok, S. Song, M. Cai, Y. Chen, Y. Chen,
both data/files and also their structure, the whole file R. Zhou and Lou: Gridsec: Trusted grid computing with se-
system, achieving reliability through LFC capabilities. curity binding and self-defense against network worms and
ddos attacks, in: International Workshop on Grid Computing
This implementation has been evaluated in terms of Security and Resource Management (GSRM’05) (2005), 187–
both performance and reliability by mainly consider- 195.
ing read, write and delete operations, providing satis- [14] L. Junrang, W. Zhaohui, Y. Jianhua and X. Mingwang, A
factory results also in case of real applications (GCC, secure model for network-attached storage on the grid, in:
SQLite). SCC’04: Proceedings of the 2004 IEEE International Confer-
ence on Services Computing, Washington, DC, USA: IEEE
Further development and future work on D2 S2 will Computer Society (2004), 604–608.
mainly focus on its implementation and adaptation to [15] A. Kerckhoffs, La cryptographie militaire, Journal des Sci-
Cloud computing, dealing with optimization on perfor- ences Militaires IX (1883), 5–83.
mance and reliability in order to provide a valid sup- [16] Y. Lim, H.M. Kim, S. Kang and T. Kim, Vehicle-to-grid com-
munication system for electric vehicle charging, Integrated
port for big data management, a strategic challenge in Computer-Aided Engineering 19(1) (2012), 57–65.
the current ICT scenario. [17] N. Looker and J. Xu, Dependability assessment of grid
middleware, in: DSN’07: Proceedings of the 37th Annual
IEEE/IFIP International Conference on Dependable Systems
References and Networks, Washington, DC, USA: IEEE Computer Soci-
ety, (2007), 125–130.
[1] S.V. Adve and K. Gharachorloo, Shared memory consistency [18] R.L. Rivest, A. Shamir and L.M. Adelman, A method for ob-
models: A tutorial, Computer 29(12) (December 1996), 66– taining digital signatures and public-key cryptosystems, Com-
76. doi: 10.1109/2.546611. mun ACM 21(2) (1978), 120–126.
[2] R. Ball, J. Grant, J. So, V. Spurrett and R. De Lemos, De- [19] D. Scardaci and G. Scuderi, A secure storage service for the
pendable and secure distributed storage system for ad hoc glite middleware, in: International Symposium on Informa-
networks, in: Proceedings of the 6th International Confer- tion Assurance and Security, Los Alamitos, CA, USA: IEEE
ence on Ad-hoc, Mobile and Wireless Networks (ADHOC- Computer Society, (2007), 261–266.
NOW’07), E. Kranakis and J. Opatrny, eds, Springer-Verlag, [20] A. Shamir, How to share a secret, Commun ACM 22(11)
(2007), 142–152. (1979), 612–613.
[3] Z. Bankovic, J.M. Moya, A. Araujo, D. Fraga, J.C. Vallejo [21] Z. Sun, J. Shen and J. Yong, A novel approach to data dedu-
and J.M. de Goy, Distributed intrusion detection system for plication over the engineering-oriented cloud systems, Inte-
wireless sensor networks based on a reputation system cou- grated Computer-Aided Engineering 20(1) (2013), 45–57.
pled with kernel self-organizing maps, Integrated Computer- [22] D. Thain and M. Livny, Parrot: Transparent user-level mid-
Aided Engineering 17(2) (2010), 87–102. dleware for data-intensive computing, Scalable Computing:
[4] G. Belalem and Y. Slimani, A hybrid approach to replica man- Practice and Experience 6(3) (2005), 9–18.
agement in data grids, Int J Web Grid Serv 3(1) (2007), 2–18. [23] P. Townend, N. Looker, D. Zhang, J. Xu, J. Li, L. Zhong and J.
[5] C. Blanchet, R. Mollon and G. Deleage, Building an en- Huai, Crown-c: A high-assurance service-oriented grid mid-
crypted file system on the egee grid: Application to protein dleware system, in: HASE’07: Proceedings of the 10th IEEE
sequence analysis, in: ARES’06: Proceedings of the First In- High Assurance Systems Engineering Symposium, (2007).
ternational Conference on Availability, Reliability and Secu- [24] P. Townend and J. Xu, Dependability in grids, IEEE Dis-
rity, Washington, DC, USA: IEEE Computer Society, (2006), tributed Systems Online 6(12) (2005), 1–7.
965–973. [25] S. Tuecke, V. Welch, D. Engert, L. Pearlman and M. Thomp-
18 S. Distefano and A. Puliafito / Information dependability in distributed systems: The dependable distributed storage system
son, Internet x.509 public key infrastructure (pki) proxy cer- [29] L. Xiao, Y. Ye, I.L. Yen and F. Bastani, evaluation and com-
tificate profile, RFC 3820 (Proposed Standard), jun 2004. parisons of dependable distributed storage designs for clouds,
Available: http://www.ietf.org/rfc/rfc3820.txt Accessed May high-assurance systems engineering (HASE), IEEE 12th Int
2013. Symposium on (2010), 152–161. doi: 10.1109/HASE.2010.
[26] K. Ueno and S. Furuhashi, Cagra dependable distributed stor- 22.
age system for 3D computer graphics rendering, in: Pro- [30] Federal information processing standard publication 197.
ceedings of the 2009 Software Technologies for Future De- 2001.
pendable Distributed Systems (STFSSD ’09 IEEE Computer [31] GPG – GNU Privacy Guard – Documentation Sources.
Society, Washington, DC, USA, 179–183. DOI=10.1109/ GnuPG.org. [Online]. Available: http://www.gnupg.org/
STFSSD.2009.19 documentation/.
[27] S. Vazhkudai, S. Tuecke and I. Foster, Replica selection in [32] gLite middleware website, http://glite.cern.ch, Accessed May
the globus data grid, in: CCGRID’01: Proceedings of the 1st 2013.
International Symposium on Cluster Computing and the Grid, [33] gLite Middleware technical committee, the grid file access-
Washington, DC, USA: IEEE Computer Society (2001), 106. GFAL C API description. CERN, Geneve, http://
[28] D. Watson, Y. Luo and B.D. Fleisch, The Oasis+ dependable griddeployment.web.cern.ch/griddeployment/gis/GFAL/
distributed storage system, Proceedings of the 2000 Pacific GFALindex.html. Accessed May 2013.
Rim International Symposium on Dependable Computing Los
Angeles, CA, (Dec 2000), 18–19.
Copyright of Integrated Computer-Aided Engineering is the property of IOS Press and its
content may not be copied or emailed to multiple sites or posted to a listserv without the
copyright holder's express written permission. However, users may print, download, or email
articles for individual use.