If all applications could be loaded at the start this would boil down to information flow analysis for which many solutions exist, but this is precisely what we want to overcome. When applications are not known in advance and can be updated asynchronously and possibly without connection to trusted third parties, we must preserve the security policies of the various owners of the applets during such autonomous evolution. This chapter illustrates the extension of the Security-by-Contract approach from mobile phones to smart cards: Security-by-Contract is based on the loading time application certification on the card that will enable the card to make autonomous decisions on application and policy updates while ensuring the compliance of every change of the platform with the security policy of each application’s owner.
Applications on multi-application smart cards contain sensitive data and can exchange information. Thus a major concern is that these applications should not exchange data unless permitted by their respective policy. As modern smart cards allow post-issuance installation and removal of applications, traditional approaches for information flow analysis are not suitable. We suggest the Security-by-Contract approach for loading time application certification on the card, that will enable the stakeholders with the means to ensure the compliance of every update of the card with their security policy. We describe an extension of the card security architecture to deal with verification for different types of updates and present a Java Card prototype implementation of the Policy Checker with performance measurements.
L'interpretazione astratta è una teoria che formalizza l'approssimazione conservativa della semantica di sistemi informatici hardware e software, focalizzandosi su alcune proprietà, che espresse mediante opportune strutture algebriche (domini astratti) possono essere calcolate in modo corretto (anche se non completo). Una grande varietà di domini astratti può essere elaborata, a aseconda dei contesti di applicazione, e con scelta dei domini astratti è possibile modulare in modi diversi precisione e complessità computazionale. Questa tesi considera l'applicazione di tecniche di Interpretazione Astratta in tre diversi scenari: Program slicing; Watermarking di database relazionali; Watermarking del codice sorgente di programmi. Relativamente al Program slicing, viene proposto un raffinamento delle tecniche tradizionali già presenti in letteratura. Molto spesso, siamo interessati a una specifica proprietà delle variabili in un criterio di slicing, piuttosto che ai suoi effettivi valori. Questo è il caso, ad esempio, quando si analizza la non-interferenza in language-based security, dove le astrazioni entrano in gioco per modellare il potere osservativo degli attaccanti. In questo scenario, lo slicing tiene in considerazione le proprietà astratte delle variabili e le dipendenze astratte. Questo approccio allo slicing, non è solo la generalizzazione della tecnica tradizionale, ma offre nuovi spunti nelle relazioni tra diverse aree di ricerca dell'informatica. Un secondo scenario di applicazione delle tecniche di Interpretazione Astratta è la progettazione di watermarking di database relazionali, la cui rilevanza è legata al fatto che in Internet è molto importante preservare i diritti di proprietà nei database relazionali mantenuti in outsourcing. In tale ambito, viene proposta una tecnica di watermarking senza distorsione, che migliora la verifica dell'integrità dei database relazionali utilizzando un meccanismo di autenticazione pubblica. L'ultimo scenario considerato è quello del Watermarking del codice sorgente di programmi: all'aumentare della quantità di codice sorgente distribuito sul web, la protezione e il rilevamento delle proprietà del software è diventata una questione importante. Nella tesi, viene presentato uno schema di watermarking software a chiave pubblica (watermarking asimmetrico), basato su tecniche di trasformazione che preservano la semantica, e che è simile nello spirito alle zero-knowledge proofs. L'approccio proposto si pone come un'alternativa alla cifratura e l'autenticazione software piuttosto che come uno strumento per la protezione del copyright.
Abstract. This paper proposes a novel method for watermarking C source code by exploiting the programming language features.The key idea of our watermarking scheme is a semantics-preserving program transformation, based on a hidden permutation of local identifiers, followed by another hidden permutation of the functions defined in the source code. This last permutation allows to encrypt the prove of ownership, in the framework of interactive zero-knowledge proof system. The proposed watermarking scheme is invisible to compilers and does not reveal any information about the watermark, its nature and its location into the program, since the zero knowledge proof is independent of the encoding and of the embedding. Finally, we introduce a third party Trusted Time-Stamp Service into the system to prevent invertibility/ambiguity attacks.
Advanced Malware Detection Techniques
Security and Verification in Computing
Physical Unclonable Functions (PUFs) and Hardware Security
Software piracy is the major challenge to software providers, and most trade organizations today face problems with software piracy. As a result, there are several developed systems available in the market to deal with this problem. Unfortunately, the majority of these systems do not provide an appropriate solution and the problem has not been solved yet. After reviewing the nature of existing systems, the author found that these systems do not take in their consideration the international standard specifications to treat this problem. Therefore, it is difficult for these systems to prevent or stop piracy. Thus the purpose of this paper is to develop a new scheme carrying the characteristics of international standard specifications in order to be able to prevent piracy in any country by utilizing the Internet and Web services, by using one from the deterministic public key encryption scheme, namely ElGamal scheme, and by using zero knowledge proof of identity technique to grant the users access to a scheme correctly and also to use the international standard copy number, to ease many of these difficulties. Results are given from which the conclusion drawn is that developing a new scheme entitled “An Efficient Software Anti-Piracy Scheme” can help significantly in the work of trade organizations and software providers suffering from software piracy. Some recent patents are also discussed in this paper. Keywords: Static protection, dynamic protection, software piracy attacks, identification, authentication
In order to prevent the fault wire-key probing attacks from the malicious mobile code generators for enhancing the confidentiality of executors’inputs in Zhong-Yang protocol,a verifiable multiplying subsidiary circuit is proposed and used to extend the garbled circuit in Zhong-Yang protocol.The extended protocol replaces executors’input-wires with the multiplying subsidiary circuits for resisting fault wire-key probing attacks,and ensures the correctness of the construction of the subsidiary circuit by the committed garbled circuit technology of Jarecki and Shmatikov and the third-party challenged zero-knowledge proof protocols.The analyses show that,when more than two-thirds of the third-party servers are honest,the extended protocol can prevent the tampering wire-key attacks of the malicious third-party servers and the fault wire-key probing attacks of the malicious generators simultaneously,meet the non-interactive request of mobile code environment,and add polynomial communication and computation complexity.The extended protocol ensures the complete confidentiality of executors’inputs in malicious mobile code environment.
The recent development in the mobile technology (mobile phones, middleware, wireless networks, etc.) created a need for new methods of protecting the code transmitted through the network. The oldest and the simplest mechanisms concentrate more on integrity of the code itself and on the detection of unauthorized manipulation. The newer solutions not only secure the compiled program, but also the data, that can be gathered during its “journey,” and even the execution state. Some other approaches are based on prevention rather than detection. In this chapter we present a new idea of securing mobile agents. The proposed method protects all components of an agent: the code, the data, and the execution state. The proposal is based on a zero-knowledge proof system and a secure secret sharing scheme, two powerful cryptographic primitives. Next, the chapter includes security analysis of the new method and its comparison to other currently more widespread solutions. Finally, we propose a new direction of securing mobile agents by straightening the methods of protecting integrity of the mobile code with risk analysis and a reputation system that helps avoiding a high-risk behavior.Request access from your librarian to read this chapter's full text.
Modern computing platforms strive to support mobile code without putting system security at stake. These platforms can be viewed as open systems, as the mobile code adds new components to the running system. Establishing that such platforms function correctly can be divided into two steps. First, it is shown that the system functions correctly regardless of the mobile components that join it, provided that they satisfy certain assumptions. These assumptions can, for instance, restrict the behavior of the component to ensure that the security policy of the platform is not violated. Second, the mobile component is checked to satisfy its assumptions, before it is allowed to join the system. This thesis presents algorithmic verification techniques to support this methodology. In the first two parts, we present techniques for the verification of open systems relative to the given component assumptions. In the third part, a technique for the quick certification of mobile code is presented for the case where a particular type of program rewriting is used as a means of enforcing the component assumptions.In the first part of this study, we present a framework for the verification of open systems based on explicit state space representation. We propose Extended Modal Transition Systems (EMTS) as a suitable structure for representing the state space of open systems when assumptions on components are written in the modal μ-calculus. EMTSs are based on the Modal Transition Systems (MTS) of Larsen and provide a formalism for graphical specification and facilitate a thorough understanding of the system by visualization. In interactive verification, this state space representation enables proof reuse and aids the user guiding the verification process. We present a construction of state space representations from process algebraic open system descriptions based on a maximal model construction for the modal μ-calculus. The construction is sound and complete for systems with a single unknown component and sound for those without dynamic process reation. We also suggest a tableau-based proof system for establishing temporal properties of open systems represented as EMTS. The proof system is sound in general and complete for prime formulae.The problem of open system correctness also arises in compositional verification, where the problem of showing a global property of a system is reduced to showing local properties of components. In the second part, we extend an existing compositional verification framework for Java bytecode programs. The framework employs control flow graphs with procedures to model component implementations and open systems for the purpose of checking control-flow properties. We generalize these models to capture exceptional and multi-threaded behavior. The resulting control flow graphs are specifically tailored to support the compositional verification principle; however, they are sufficiently intuitive and standard to be useful on their own. We describe how the models can be extracted from program code and give preliminary experimental results for our implementation of the extraction of control flow graphs with exceptions. We also discuss further tool support and practical applications of the method.In the third part of the thesis, we develop a technique for the certification of safe mobile code, by adapting the proof-carrying code scheme of Necula to the case of security policies expressed as security automata. In particular, we describe how proofs of policy compliance can be automatically generated for programs that include a monitor for the desired policy. A monitor is an entity that observes the execution of a program and terminates the program if a violation to the property is about to occur. One way to implement such a monitor is by rewriting the program to make it self-monitoring. Given a property, we characterize self-monitoring of Java bytecode programs for this property by an annotation scheme with annotations in the style of Floyd-Hoare logics. The annotations generated by this scheme can be extended in a straightforward way to form a correctness proof in the sense of axiomatic semantics of programs. The proof generated in this manner essentially establishes that the program satisfies the property because it contains a monitor for it. The annotations that comprise the proofs are simple and efficiently checkable, thus facilitate certification of mobile code on devices with restricted computing power such as mobile phones.
In line with the recent call for technology on Image Based Authentication (IBA) in JPEG committee [1], we present a novel graphical password design in this paper. It rests on the human cognitive ability of association-based memorization to make the authentication more user-friendly, comparing with traditional textual password. Based on the principle of zero-knowledge proof protocol, we further improve our primary design to overcome the shoulder-surfing attack issue without adding any extra complexity into the authentication procedure. System performance analysis and comparisons are presented to support our proposals.
User Authentication and Security Systems
Advanced Steganography and Watermarking Techniques
The recent developments in the mobile technology (mobile phones, middleware) created a need for new methods of protecting the code transmitted through the network. The proposed mechanisms not only secure the compiled program, but also the data, that can be gathered during its "journey". The oldest and the simplest methods are more concentrated on integrity of the code itself and on the detection of unauthorized manipulation. Other, more advanced proposals protect not only the code but also the execution state and the collected data. The paper is divided into two parts. The first one is mostly devoted to different methods of securing the code and protecting its integrity; starting from watermarking and fingerprinting, up to methods designed specially for mobile agent systems: encrypted function, cryptographic traces, time limited black-box security, chained-MAC protocol, publicly-verifiable chained digital signatures The second part presents new concept for providing mobile agents with integrity protection, based on a zero-knowledge proof system.
Counterfeit products, especially in the pharmaceutical sector, have plagued the international community for decades. To combat this problem, many anti-counterfeiting approaches have been proposed. They use either Radio Frequency Identification (RFID) or Near Field Communication (NFC) physical tags affixed to the products. Current anti-counterfeiting approaches detect two counterfeiting attacks: (1) modifications to a product's tag details, such as changing the expiration date; and (2) cloning of a genuine product's details to reuse on counterfeit products. In addition, these anti-counterfeiting approaches track-and-trace the physical locations of products as the products flow through supply chains. Existing approaches suffer from two main drawbacks. They cannot detect tag reapplication attacks, wherein a counterfeiter removes a legitimate tag from a genuine product and reapplies it to a counterfeit or expired product. Second, most existing approaches typically rely on a central server to authenticate products. This is not scalable and creates tremendous processing burden on the server, since significant volumes of products flood through the supply chain's nodes. In addition, centralized supply chains require substantial data storage to store authentication records for all products. Moreover, as with centralized systems, traditional supply chains inherently have the problem of a single-point of failure. The thesis of this dissertation is that a robust, scalable, counterfeiting-resistant supply chain that addresses the above drawbacks and can be simultaneously achieved by (i) using a combination of NFC tags on products and a distributed ledger such as blockchain for reapplication-proof, decentralized, and transparent product authentication (ii) a novel game-theoretical consensus protocol for enforcing true decentralization, and enhancing the protocol's security and performance. In this dissertation, we first propose a new Tag Reapplication Detection (TRD) system to detect reapplication attacks using low-cost NFC tags and public key cryptography. To detect reapplication attacks, TRD tracks the number of times a tag has been read in the supply chain using a 'central' authentication server. Second, leveraging the blockchain technology, we propose the Block-Supply Chain, a transformation of TRD into a decentralized supply chain. In this chain, each node maintains a blockchain (distributed public ledger) per product. This blockchain comprises chained blocks, where each is an authentication event. The Block-Supply Chain can detect tag reapplication attacks and can replace the centralized supply chain design, thus overcoming the centralization issues. One of the fundamental characteristics of blockchain technology is the consensus protocol. Consensus protocols ensure that all nodes in the blockchain network agree on the validity of a
Your business increasingly relies on computer-controlled systems vulnerable to intrusion and destruction. The recent distributed denial of service attacks against e-commerce companies showed that this vulnerability extends beyond your own corporate networks: the very infrastructure of the Internet is at risk. When infoterrorists use the networks' high connectivity and low security to launch attacks against critical information infrastructure systems, they can not only disrupt global e-commerce and communications, but can also adversely affect other critical infrastructure services such as energy, transportation, health care, finance, and water supply. How can organizations protect these systems from infoterrorism? They must leverage modern information technologies to create an infrastructure protection process that can operate quickly and seamlessly. We propose a six-stage protection process that involves intelligence gathering, analysis, interdiction, detection, response, and recovery. To implement this process, we've designed an underlying Web-like architecture that will serve as a platform for the decentralized monitoring and management of critical infrastructures.