Pseudo-randomness Inside Web Browsers Zhi Guan, Long Zhang, Zhong Chen, and Xianghao Nan Institute of Software, School of EECS, Peking University. Key Lab of High Confidence Software Technologies (Peking Univ.), Ministry of Education {guanzhi,zhanglong,chen,nanxh}@infosec.pku.edu.cn

Abstract. With the increasing concerns over the security and privacy of Web based applications, many solutions based on strong cryptography have been proposed to protect client side Web applications against attacks such as phishing, pharming and even server side attacks. While strong cryptography is used, one critical building block in cryptosystem, the random number generator, is often neglected. Considering this situation, in this paper we design and implement a pseudo-random number generator only rely on ubiquitous Web browser abilities - JavaScript, HTML and AJAX. We also provide a mechanism called Pseudo-cookie for JavaScript programs to access operating system services for retrieving random or entropy values without changing Web browser security policies. The security model, analysis and performance evaluation demonstrate that our method is secure and efficient.

1

Introduction

With the increasing popularity of the Web 2.0 applications such as Google Gmail, Google Docs and Flickr, current Web browsers, not only act as the interface for static web page browsing, but also change into a platform for data outsourcing, information sharing and collaborations among group members, together with the services behind the World Wide Web. This new computing paradigm has become very successful during the last few years and has led Web based application a better replacement of corresponding traditional desktop program. In spite of the easy of use these web based applications have provided, the security and privacy of organizations and individual users are more prone to be threatened than the traditional desktop counterparts. One of the reasons, from technical point of view, is that as a platform the Web browser lacks of enough client side security mechanisms such as strong cryptography and secure storage than the operating system. Some solutions, such as BeamAuth [1], WebIBC [2] and ClipperZ [3] have been proposed to bridge the gap between the limited Web browser capabilities and the security requirements based on introducing strong cryptography into client side Web applications. L. Chen, M.D. Ryan, and G. Wang (Eds.): ICICS 2008, LNCS 5308, pp. 267–278, 2008. c Springer-Verlag Berlin Heidelberg 2008 

268

Z. Guan et al.

Although these cryptography systems made great reinforcement to the security of Web based applications through exploiting strong cryptography mechanisms such as symmetric encryption, MAC (Message Authentication Code), public key cryptography and Identity-Based Encryption (IBE), as an important building block of the proposed cryptosystems, the random number generator (RNG) is often neglected by the designers. A strong random number generator for cryptographic utilization is simply assumed to be exist and available. Unfortunately, it is not the fact. The truth is no secure random number generator is available for Web based applications. Random number generator is one of the most fundamental primitives in cryptography that has been researched for many years. “A random number generator is a device or algorithm which outputs a sequence of statistically independent and unbiased binary digits” [4]. True randomness is widely used in cryptography applications, such as symmetric and asymmetric cryptography key generation. Weak random numbers may offer the adversary abilities to bypass the hardness of breaking a cryptosystem. However, in spite of the importance of random number generation security, many designs, standards and protocols used in practice instead leave the random number generator to non-security exports, many real world implementations only rely their security on insecure solutions. The most recent example is a random number generator defect found in Debian Linux [5]. This flaw results in a large amount of security applications include SSH, OpenVPN, SSL/TLS, DNSSEC and X.509 tools into the danger of easily broken. Therefore, current Web based security applications even without a random number generator will result in great danger. In this paper we describe the design and implementation of a random number generator for Web based security applications. The security of random number generation in Web browsers is discussed and particular threats are analyzed. Through accumulating entropy from the browser, the user interactive operations and local environment variables, we present a secure random number generator completely through ubiquitous Web browser capabilities such as HTTP, JavaScript, AJAX [6]. We also introduce a new mechanism called Pseudo-cookie for JavaScript programs to access operating system services without changing the Web browser security policies, we exploit the method to retrieve randomness and use it to seed and refresh the state of our generator, which can largely improve the performance of the generator. The security analysis and performance evaluation show promising values for real world applications. As we know, this is the first work addressing the security of random number generation in a pure Web environment. The rest of this paper is organized as follows: in Section 2 we introduce the background of random number generator together with related attacks, followed by the security model in Section 3, then we will introduce the design, implementation and performance evaluation of our web based random number generator. In session 4, we will propose the Pseudo-cookie, a mechanism to bridge the gap between browser and local environment. At last the paper will be concluded in Section 5.

Pseudo-randomness Inside Web Browsers

2

269

Random Number Generator

2.1

Theory and Practice

Linear Congruential Generator. While widely available, the mathematic random function rand()1 in glibc and Math.random() [7] in JavaScript are not feasible for cryptography utilization. The algorithms implemented in Math.random() in Safari 3 and Firefox 2 (we get this information through read the code2,3 , we assume other browsers might be the same) are called linear congruential generator, which produce a sequence of numbers x1 , x2 , . . . according to the linear recurrence xn = axn−1 + b mod m, n ≥ 1; integers a, b and m are parameters of the generator and x0 is the seed. Although this generator provides the uniform distribution random numbers, it does not satisfy the unpredictable requirement. Given a partial output sequence, the remainder of the sequence can be reconstructed even if the parameters a, b and m are unknown. True Random Number Generator (TRNG). A TRNG requires a naturally occurring source of randomness such as unpredictable physically procedures. The implementation is through an especial hardware device of software program to collect randomness from precise timing of hardware events to monitoring people behaviors. Pseudo-random Number Generator (PRNG). While true randomness is widely available in the nature, it’s hard for deterministic computing system to provide true random number generators through deterministic algorithms. Instead the pseudo-random number generator is used, which extends a short truly random number sequence to a much longer sequence that “appears” to be random. The input to the PRNG is called the seed, while the outputs of the PRNG are called pseudo-random numbers. Random Number Generators in Practice. For the rarity of true randomness, the output of TRNG is often used as the input of PRNG. Many software random number generators have been proposed, implemented and researched. In a chapter in [8] a detailed survey of software random number generators are discussed, in [9] a generalized software architecture is introduced, in [10] the model of secure random number generation service is discussed, and [11] and [12] are analyses of random number generation on Windows and Linux operating system. As a good engineering practice, pseudo-random number generators have been provided as a system service by modern operating systems. For it is more feasible for OS to collect entropy from hardware events and user inputs. Unix-like operating system implements kernel level pseudo-random number generator and provide the interface through a virtual device /dev/random, while Windows provided similar API to provide random numbers. Different from the random devices 1 2 3

http://www.gnu.org/software/libc/libc.html The WebKit Open Source Project. http://nightly.webkit.org/ Mozilla Developer Center, http://developer.mozilla.org/en/docs/ Download Mozilla Source Code

270

Z. Guan et al.

above is a device implemented in kernel space. Windows RNG is most implemented in user space, so that the design and implementation of Windows can not resist forward security attack, which is considered a big flaw [11]. 2.2

Break Cryptography through Weak Randomness

Random number generator is an important building block for cryptography and used in many security applications, such as symmetric key generation, initial vector selection in symmetric encryption, public key generation, nonce in protocols, and random public key algorithms. The security of these systems is based on the condition that the random number is unpredictable. Here we give some examples on how to break a Web based security application through the weak randomness in use. ECDSA (Elliptic Curve Digital Signature Algorithm) [13] is the signature scheme utilized in [2], which is a variant of DSA on elliptic curve groups. With the same security level, ECDSA can provide shorter key length and signature size than RSA. Our attacks on ECDSA are through predictable random values. Given the elliptic curve parameters are T = (p, a, b, G, n), in which p specifying the prime field Fp , a, b ∈ Fp specifying the elliptic curve equation E(Fp ) : y 2 = x3 + ax + b mod p, G is a base point on curve E(Fp ) and n is the order of G. Signer’s private key is integer d ∈R [1, n − 1], public key is elliptic curve point Q = d · G = G + G + . . . + G, addition of base point G with d times. When signing on message m, the signer must randomly select an integer k ∈R [1, n− 1], compute R = k · G = (xR , yR ), r = xR mod n and s = k −1 (H(m) + dr) mod n, H is a cryptographic hash function and (r, s) is the ECDSA signature. If k is mod n. predictable, the attacker can extract signer’s private key by d = s·k−H(m) r Even if the attacker can not predict the value k but know the signer to use the same random integer k on signing two different message m1 and m2 with result (r, s1 ) and (r, s2 ) respectively, the attacker can also calculate the random 2) mod n, and get signer’s private key through number k through k = H(ms11)−H(m −s2 1) d = s·k−H(m mod n. Similar attacks also available for other cryptosystems, r such as [14]. While the original papers do not mention what generators are in use, we assume that it is the Math.random() default provided by JavaScript, which is a linear congruential generator in both Firefox and Safari. An efficient attack on DSS (Digital Signature Standard) through linear congruential generator is introduced in [15] which can be easily converted into attack against ECDSA. For the length of this paper we do not provide the details here.

3

Threat Model

A random number generator for Web based applications must be secure against different threatens from both inside and outside attackers of the browser. One type of typical attackers is the network eavesdropper that can get all the traffic between the Web server and the browser; Another type of attack is local

Pseudo-randomness Inside Web Browsers

271

malware like Trojan horse which can eavesdrop not only all the network traffic, but also local communication between browser and the operating system, the local malware can even manipulate some data from the operating system to the browser. Local attackers and remote attackers sometimes can also learn some inner variables through memory probing or pharming techniques. The reason of this attack considered to be short period is threefold: these attacks often can only get a snapshot of system; The session of a Web application is short because web pages will be closed after browsing, and the close of both the attack page or the target application page means the end of this attack; and the last, if this attack can last, then its power is overwhelming and no solutions can be used to protect the random number generation except for the reinforcement of the whole system. The Web service provider should also be considered as an attacker because when a Web application is designed to provide privacy for data outsourcing, and then sever side will also be classified into potential attackers. However, the server is considered not to provide a backdoor in its application. This is because for Web applications the source code can be easily reviewed by everyone and mechanisms such as JavaScript code signing [16] introduced by Netscape and XML signature [17] can provide authentication for the application from security experts. From the above discussion, formally speaking an attacker to the Web based random number generator would have the following capabilities: – Have all the design and implementation details of the generator. – Prompting the generator for output random number and observing this output. – Observing and even influencing some of the data that is used to refresh the internal state of the generator. – Learn the internal state of the generator at will, but this attack only last for a short period. Compared with the attacker in desktop environment, our Web based threat model is weaker according to the attacker capability on tampering the generator internal state. The rationality of this difference is that with the security policies, a Web browser should be seen as a secure environment, and protecting a JavaScript program’s inner data should be seen as the duty of the browser. So we will not mix up a random number generator’s model with that of a browser. Same to desktop random number generators, a secure Web based generator should satisfy the above requirements: – Pseudo-randomness. The generator’s output seems random to an outside observer. – Forward security. An adversary who learns the internal state of the generator at a specific time cannot learn anything about previous outputs of the generator. – Backward security/break-in recovery. An adversary who learns the state of the generator at a specific time does not learn anything about future outputs of the generator, provided that sufficient entropy is used to refresh the generator’s state.

272

4

Z. Guan et al.

Design and Implementation

4.1

System Construction

Our construction is modified from the Barak-Halevi model [10] with some variants for the characteristic of Web based applications. In traditional desktop environment, the security applications can be divided into the random number provider and the random number consumer. The consumer, while in web applications a JavaScript programs in a single page must implement either, on the other side, the JavaScript program in a page often need less random values than the desktop counterpart.

Browser, AJAX, Pseudo-cookie Entropy Collector (Pool) Entropy Randomness

HMAC-SHA1 Random Extractor

Short Output

Randomness

Refresh

Crypto PRNG

Long Output

Continuous Outputs

Fig. 1. Construction of the Web Based Random Number Generator

In our construction shown in Fig. 1, the generator includes four components: the entropy collector, the random extractor, the cryptography pseudo-random number generator and a refresh algorithm. – The entropy collector accumulates entropy from the browser events, user inputs, remote server or other resources. – The randomness extraction function extract(e) → s that converts the highentropy but non-uniform distributed input e to a shorter but uniform distributed output s. – The cryptographic PRNG function prng(s, m) → r that generates m bytes of pseudo-random values expanded from the seed s. – The refresh function refresh(s, x) → s that refreshes the current seed by additional entropy generated by the function extract.

Pseudo-randomness Inside Web Browsers

273

Unlike desktop applications to consume random numbers from a system random generator as the provider, a random number generator inside a web page acts as both the randomness provider and the consumer. If the extracted entropy generated from the random extractor is enough (typically 128 bytes or 160 bytes) for the application, these values will be used directly by the application. Considered if the application only consumes very short random numbers, then the randomness can all extracted from the output of random extractor. Considered if the entropy is not enough, the cryptographic pseudo-random number generator will be called to expand the extracted randomness to enough length and output. If the session of the Web application will last for a long time and require continuous new keys, for example in the online Web based chatting, our construction will provide the full function, as the Barak-Halevi model, every time new random number generated, the inner state of cryptographic PRNG will be renewed, and when a fixed period of time, if enough entropy is collected the refresh algorithm will mix new randomness with current inner state to refresh into a new state. Entropy Collection. The entropy for our generator is coming from three kinds of sources, the browser environment, the browser events including user interface events and network events, user inputs textual entropy feeding, and server feeding. When a page is loaded, the entropy accumulation callback function is registered to the browser environment. When some events with high entropy are occurred, the accumulator will receive the event and the occurred time. The following events are the main entropy resources. – The current window place and size: 2 bytes. – onkeypress event is occurred when a keyboard key is pressed, – onmousemove event is occurred when the mouse is moved, and the x and y coordinates (4 bytes) will be added into the random pool. The user interface inside a page will notice the user to move his mouse randomly for entropy collection. – onmouseover is occurred when the mouse is moved over and element in an HTML document (2 bytes). Web page includes some invisible elements on the page for the moving mouse to trigger this event frequently. Browser events are not the only sources of entropy, our construction also provide other facilities. With the AJAX technique, the JavaScript program can request a block of random data from the server through a Microsoft.XMLHTTP ActiveX JavaScript object in IE or XMLHttpRequest JavaScript object in other browsers without reloading the current page. While this is much easier and faster, for the security of the system, random data from server should not exceed that from local browser events. User input entropy can also be utilized, for example, when user is asked to input some random texts, the key value, press time will be added into the random pool.

274

4.2

Z. Guan et al.

Randomness Consumption

How much randomness does a JavaScript cryptosystem consume inside a web browser? This depends on what kind of application or cryptosystem is utilized. Here we consider some typical applications: Symmetric encryption with predefined key requires a random initial vector (IV) with length same as the block size of the block cipher, typically 128 bits, such as AES. For password based encryption, the key derive function such as PBKDF2 in PKCS #5 standard [18] requires excessive random bytes as salt value, the default length is 8 bytes, i.e. 64 bits. If the integration is needed, the generation of password based MAC requires other 64 bits of salt. Password based encryption established on symmetric encryption requires extra keys and IV, totally 320 or 384 bits. For single message protected by public key cryptography, for example, an PKCS #7 cryptographic message syntax [19] to envelop a message with encryption and digital signature. For public key encryption, ECIES(Elliptic Curve Integrate Encryption Scheme) [13] and ECDSA both require a random k with 192 bits length for encryption and signature generation, together with the 256 bits symmetric encryption key and IV random values, a PKCS #7 package require about 640 bits of random values. Randomness Extraction. In the area of random extractors one such example is the so-called “strongly universal” or “pairwise independent universal” hash functions, the other kind is extractors from CBC, Cascade and HMAC from block ciphers and cryptographic hash algorithms. For security and engineering considerations we apply HMAC as our random extractor instead of also available AES CBC-MAC and SHA-1 hashing. In our benchmark, for the typical hash function SHA-1 is nearly double speed of the typical block cipher AES with 128 bits key length in nearly all environment. While simply hashing is considered not secure enough in the research result of [20]. To generate uniform distribution random values from collected entropies, the input min-entropy size should be at least double size of the output. Which means if the application require n-bit random values and the random pool has at least 2n min-entropy values, then the pseudo-random generation procedure can be bypass, and only the extracted values is enough for the utilization of cryptographic applications. Randomness Estimation. So the question becomes, how to estimate the minentropy of collected entropies. While this is an even harder problem in the area of random number generation, with different environment the randomness will be different, and the amount of entropy can even be manipulate by the adversary. So we accept the suggestion of [10], giving up estimating the randomness, just collect as much entropy as possible. In our implementation, the randomness extraction will not start until the random pool is filled with 512 bytes entropy. The minentropy of these 4096 bits data will definitely fulfill the 160×2 bits (HMAC-SHA1 output size) requirement. This procedure requires about 10 seconds.

Pseudo-randomness Inside Web Browsers

275

Generation and Refreshing. Our pseudo-random number generation and refreshing scheme is similar to that of [10]. The difference is that our pseu function can generate a longer sequence of random values, not just double size of the inner state. Our pseu can be easily implement by any secure pseudo-random number generators. In our implementation, the standard FIPS 186 generator [21] with SHA-1 is choose for the SHA-1 code can be reused in the generator. 4.3

Performance

The main time consuming of our generator comes from cryptography computation and entropy collection. We run a primitive JavaScript benchmark program for the evaluation of our generator with different options. We test the performance of AES with 128 bits key length and SHA-1 hashing algorithm on a Laptop with 1.83 GHz 2-Core CPU running Mac OS X. Table 1. JavaScript Cryptography Benchmark (Bytes per second) SHA-1 AES 128 Firefox 3 140 65 Safari 3 104 51 Firefox 2 41 15 Opera 9 23 8 OpenSSL 111,739 38,774

As shown in 1, on two new browsers, Safari 3 and Firefox 3 (RC1), the block cipher speed is about 50 KBytes per second while the hashing algorithm speed is doubled. These algorithms are fast enough for randomness extraction and pseudo-random number generation even they are about 1000 times slower than OpenSSL, the compiled binary counterpart. As a comparison, the entropy collection speed from browser events is no more than 50 bytes per second, more than 1000 times slower than the cryptographic operations! Which means the entropy collection procedure is the performance bottle neck of this system.

5

Pseudo-cookie

With the benchmark in last section it is known that, while the cryptographic computation is efficient, our Web based generator spend most of the time on entropy collection instead of cryptography computations when no other entropy source is provided. Compared to the limited entropy resources in Web browser, operating system has much more entropy resources with higher quality. Unfortunately, in Web browser security model the downloaded JavaScript programs can only run inside a restricted “sandbox” that isolates them from the rest of the operating system. Scripts are only permitted to access data in the current page or closely related pages (generally those from the same site through the same

276

Z. Guan et al.

protocol). This is called the Same-Origin Policy. So no access is granted to the local devices, events and programming interfaces for the collection of entropy or retrieving randomness. The common technique for extending browser capabilities is browser plug-in, a software module can interact with the browser and provide specific functions. For example, a dedicated plug-in can retrieve random numbers or collecting entropy from operating system and provide these values to JavaScript programs in the browser. However, this mechanism does not fulfill the security requirements of Web application security. From the security point of view, a plug-in break the Same-Origin Policy of Web browser, and unlike JavaScript programs with all the source code opened, a compiled plug-in can do evil without any notice, while the user have no choice but to trust it completely. In practice, the deployment requires to develop different plug-ins for every browser in various operating systems, and need every user to install the correct plug-in into his browser, which is a huge burden for both vendors and customers. A question is, might the Web applications exploit services from local operating system without breaking the Web browser security policies? The answer is yes, here we introduce a new mechanism named Pseudo-cookie to bridge the gap between the JavaScript programs in web browsers and the services provided by local operating system. In Web browser a regular HTTP cookie is a piece of data include name-value pairs stored on local disk that can be created, read and written by JavaScript programs. While a pseudo-cookie is nearly all the same for scripts and slightly logic difference for browsers. The difference is twofold: – For a script, the pseudo-cookie is nearly the same as a regular cookie, only with a pre-defined name-value pair with the fixed name “random”. A script can read values from the “random” name-value pair (create and write operations are also permitted but nonsense for random number generation), every time the script reads, the return value will be a different random value. – For the browser when a cookie reading operation is evoked, if the target is the “random” name-value pair browser should assume the corresponding value has been changed by another programs , so the browser must retrieve this value from reading the cookie file again then return the newest value. The browser need not do this extra work for any other cookie values. The implementation has two choices; the browser can do this all by itself. When the random cookie reading triggered, the browser should retrieve random value from system and return this value, or the browser can just assume the cookie has been changed by other programs since its last access, and must read the cookie file again to return the newest value. A separated filesystem driver or a hood program can be used to replace the ordinary cookie file. Our implementation of pseudo-cookie is based on WebKit, an open source browser engine adopted by Safari, KDE desktop environment in Linux. The random value is directly read from /dev/random device by the modified engine. The appended C code is very short, no more than 100 lines. Although we did not mention and implement in our prototype, this mechanism can be easily extended as a generalized interface to support any other services.

Pseudo-randomness Inside Web Browsers

6

277

Conclusion and Future Work

We have presented a Web based random number generator, a critical cryptographic building block for Web based applications. Through the security model we give an analysis of threats and security requirements of random number generator in Web environments. Our design and implementation can be well adapted by Web based security applications without any browser plug-ins or breaking current security policies. To solving the lack of entropy in Web browser, we also propose a mechanism call pseudo-cookie to bridge a gap between operating system service and the Web application by exploiting the feature of cookies in modern browsers. We still remain some interesting topics such as the entropy estimation and extension of the pseudo-cookie paradigm that require future research.

References 1. Adida, B.: Beamauth: two-factor web authentication with a bookmark. In: CCS 2007: Proceedings of the 14th ACM conference on Computer and communications security, pp. 48–57. ACM, New York (2007) 2. Guan, Z., Cao, Z., Zhao, X., Chen, R., Chen, Z., Nan, X.: WebIBC: Identity Based Cryptography for the Client Side Security of Web Based Applications. In: Proceedings of ICDCS (2008) 3. Barulli, M., Solaroli, G.C.: Clipperz: the free and anonymous online password manager (2007) 4. Menezes, A., van Oorschot, P.C., Vanstone, S.A.: Handbook of Applied Cryptography. CRC Press, Boca Raton (1996) 5. Debian Security Advisory: DSA-1571-1 openssl – predictable random number generator (2008), http://www.debian.org/security/2008/dsa-1571 6. Wenz, C.: JavaScript und AJAX. Galileo Computing (2007) 7. ECMA: Standard ECMA-262, ECMAScript Language Specification 3rd (1999), http://www.ecma-international.org/publications/standards/Ecma-262.htm 8. Gutmann, P.: The design and verification of a cryptographic security architecture. submitted thesis (2000), http://www.cs.auckland.ac.nz/pgut001/pubs/thesis. html 9. Gutmann, P.: Software generation of practically strong random numbers. In: Proceeding of 7th USENIS Security Symposium (1998) 10. Barak, B., Halevi, S.: A model and architecture for pseudo-random generation with applications to /dev/random. In: Atluri, V., Meadows, C., Juels, A. (eds.) ACM Conference on Computer and Communications Security, pp. 203–212. ACM, New York (2005) 11. Dorrendorf, L., Gutterman, Z., Pinkas, B.: Cryptanalysis of the windows random number generator. In: Ning, P., di Vimercati, S.D.C., Syverson, P.F. (eds.) ACM Conference on Computer and Communications Security, pp. 476–485. ACM, New York (2007) 12. Gutterman, Z., Pinkas, B., Reinman, T.: Analysis of the linux random number generator. In: S&P, pp. 371–385. IEEE Computer Society, Los Alamitos (2006) 13. Hankerson, D., Menezes, A., Vanstone, S.: Guide to elliptic curve cryptography. Springer, Heidelberg (2004)

278

Z. Guan et al.

14. Zheng, Y., Matsumoto, T.: Breaking Real-World Implementations of Cryptosystems by Manipulating their Random Number Generation. In: Proceedings of the 1997 Symposium on Cryptography and Informations Security (1997) 15. Bellare, M., Goldwasser, S., Micciancio, D.: Pseudo-random number generation within cryptographic algorithms: The dds case. In: Kaliski Jr., B.S. (ed.) CRYPTO 1997. LNCS, vol. 1294, pp. 277–291. Springer, Heidelberg (1997) 16. Mozilla.org: Signed Scripts in Mozilla (2007), http://www.mozilla.org/ projects/security/components/signed-scripts.html 17. W3C: W3C Recommendation on XML-Signature Syntax and Processing (2002), http://www.w3.org/TR/xmldsig-core/ 18. RSA Laboratary: PKCS5: Password-Based Cryptography Standard version 2.0 (1999), ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-5v2/pkcs-5v2-0a1.pdf 19. RSA Laboratary: PKCS7: Cryptographic Message Syntax Standard version 1.6 (1997), ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-7/pkcs-7v16.pdf 20. Dodis, Y., Gennaro, R., H˚ astad, J., Krawczyk, H., Rabin, T.: Randomness extraction and key derivation using the cbc, cascade and hmac modes. In: Franklin, M. (ed.) CRYPTO 2004. LNCS, vol. 3152, pp. 494–510. Springer, Heidelberg (2004) 21. FIPS 186: Digital Signature Standard. FIPS Publication 186, U.S. Department of Commerce/NIST, National Technical Information Service, Springfield, Virginia (1994)

Pseudo-randomness Inside Web Browsers - Springer Link

for JavaScript programs to access operating system services for retrieving random or entropy values without changing Web browser security poli- cies.

382KB Sizes 12 Downloads 324 Views

Recommend Documents

Recording and Replaying Navigations on AJAX Web ... - Springer Link
Implementing such replaying functionalities with modern web technologies ... Recording occurs automatically, i.e., the user navigates with a normal browser and.

Extracting, Presenting and Browsing of Web Social ... - Springer Link
set of visualization methods encapsulated as VisModules for social in- formation ... sociological analysis algorithms, such as social network analysis [2]. After ex-.

Recording and Replaying Navigations on AJAX Web ... - Springer Link
Implementing such replaying functionalities with modern web technologies such as ..... In: Proceedings of the 20th ACM International Conference on Information.

Tinospora crispa - Springer Link
naturally free from side effects are still in use by diabetic patients, especially in Third .... For the perifusion studies, data from rat islets are presented as mean absolute .... treated animals showed signs of recovery in body weight gains, reach

Chloraea alpina - Springer Link
Many floral characters influence not only pollen receipt and seed set but also pollen export and the number of seeds sired in the .... inserted by natural agents were not included in the final data set. Data were analysed with a ..... Ashman, T.L. an

GOODMAN'S - Springer Link
relation (evidential support) in “grue” contexts, not a logical relation (the ...... Fitelson, B.: The paradox of confirmation, Philosophy Compass, in B. Weatherson.

Bubo bubo - Springer Link
a local spatial-scale analysis. Joaquın Ortego Æ Pedro J. Cordero. Received: 16 March 2009 / Accepted: 17 August 2009 / Published online: 4 September 2009. Ó Springer Science+Business Media B.V. 2009. Abstract Knowledge of the factors influencing

Quantum Programming - Springer Link
Abstract. In this paper a programming language, qGCL, is presented for the expression of quantum algorithms. It contains the features re- quired to program a 'universal' quantum computer (including initiali- sation and observation), has a formal sema

BMC Bioinformatics - Springer Link
Apr 11, 2008 - Abstract. Background: This paper describes the design of an event ontology being developed for application in the machine understanding of infectious disease-related events reported in natural language text. This event ontology is desi

Candidate quality - Springer Link
didate quality when the campaigning costs are sufficiently high. Keywords Politicians' competence . Career concerns . Campaigning costs . Rewards for elected ...

Mathematical Biology - Springer Link
Here φ is the general form of free energy density. ... surfaces. γ is the edge energy density on the boundary. ..... According to the conventional Green theorem.

Artificial Emotions - Springer Link
Department of Computer Engineering and Industrial Automation. School of ... researchers in Computer Science and Artificial Intelligence (AI). It is believed that ...

Bayesian optimism - Springer Link
Jun 17, 2017 - also use the convention that for any f, g ∈ F and E ∈ , the act f Eg ...... and ESEM 2016 (Geneva) for helpful conversations and comments.

Contents - Springer Link
Dec 31, 2010 - Value-at-risk: The new benchmark for managing financial risk (3rd ed.). New. York: McGraw-Hill. 6. Markowitz, H. (1952). Portfolio selection. Journal of Finance, 7, 77–91. 7. Reilly, F., & Brown, K. (2002). Investment analysis & port

(Tursiops sp.)? - Springer Link
Michael R. Heithaus & Janet Mann ... differences in foraging tactics, including possible tool use .... sponges is associated with variation in apparent tool use.

Fickle consent - Springer Link
Tom Dougherty. Published online: 10 November 2013. Ó Springer Science+Business Media Dordrecht 2013. Abstract Why is consent revocable? In other words, why must we respect someone's present dissent at the expense of her past consent? This essay argu

Regular updating - Springer Link
Published online: 27 February 2010. © Springer ... updating process, and identify the classes of (convex and strictly positive) capacities that satisfy these ... available information in situations of uncertainty (statistical perspective) and (ii) r

Mathematical Biology - Springer Link
May 9, 2008 - Fife, P.C.: Mathematical Aspects of reacting and Diffusing Systems. ... Kenkre, V.M., Kuperman, M.N.: Applicability of Fisher equation to bacterial ...

Subtractive cDNA - Springer Link
database of leafy spurge (about 50000 ESTs with. 23472 unique sequences) which was developed from a whole plant cDNA library (Unpublished,. NCBI EST ...

Web Browsers as Operating Systems: Supporting ...
as padlock icons for HTTPS (i.e., HTTP over a secure transport layer). ..... allowing policy authors to focus on higher level abstractions like filesystem paths.

Hooked on Hype - Springer Link
Thinking about the moral and legal responsibility of people for becoming addicted and for conduct associated with their addictions has been hindered by inadequate images of the subjective experience of addiction and by inadequate understanding of how

Fair Simulation Minimization - Springer Link
Any savings obtained on the automaton are therefore amplified by the size of the ... tions [10] that account for the acceptance conditions of the automata. ...... open issue of extending our approach to generalized Büchi automata, that is, to.