Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Darya Kurilova is active.

Publication


Featured researches published by Darya Kurilova.


human factors in computing systems | 2016

Usability and Security of Text Passwords on Mobile Devices

William Melicher; Darya Kurilova; Sean M. Segreti; Pranshu Kalvani; Richard Shay; Blase Ur; Lujo Bauer; Nicolas Christin; Lorrie Faith Cranor; Michelle L. Mazurek

Recent research has improved our understanding of how to create strong, memorable text passwords. However, this research has generally been in the context of desktops and laptops, while users are increasingly creating and entering passwords on mobile devices. In this paper we study whether recent password guidance carries over to the mobile setting. We compare the strength and usability of passwords created and used on mobile devices with those created and used on desktops and laptops, while varying password policy requirements and input methods. We find that creating passwords on mobile devices takes significantly longer and is more error prone and frustrating. Passwords created on mobile devices are also weaker, but only against attackers who can make more than 10^13 guesses. We find that the effects of password policies differ between the desktop and mobile environments, and suggest ways to ease password entry for mobile users.


european conference on object oriented programming | 2014

Safely Composable Type-Specific Languages

Cyrus Omar; Darya Kurilova; Ligia Nistor; Benjamin Chung; Alex Potanin; Jonathan Aldrich

Programming languages often include specialized syntax for common datatypes e.g. lists and some also build in support for specific specialized datatypes e.g. regular expressions, but user-defined types must use general-purpose syntax. Frustration with this causes developers to use strings, rather than structured data, with alarming frequency, leading to correctness, performance, security, and usability issues. Allowing library providers to modularly extend a language with new syntax could help address these issues. Unfortunately, prior mechanisms either limit expressiveness or are not safely composable: individually unambiguous extensions can still cause ambiguities when used together. We introduce type-specific languages TSLs: logic associated with a type that determines how the bodies of generic literals, able to contain arbitrary syntax, are parsed and elaborated, hygienically. The TSL for a type is invoked only when a literal appears where a term of that type is expected, guaranteeing non-interference. We give evidence supporting the applicability of this approach and formally specify it with a bidirectionally typed elaboration semantics for the Wyvern programming language.


Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance | 2013

Wyvern: a simple, typed, and pure object-oriented language

Ligia Nistor; Darya Kurilova; Stephanie Balzer; Benjamin Chung; Alex Potanin; Jonathan Aldrich

The simplest and purest practical object-oriented language designs today are seen in dynamically-typed languages, such as Smalltalk and Self. Static types, however, have potential benefits for productivity, security, and reasoning about programs. In this paper, we describe the design of Wyvern, a statically typed, pure object-oriented language that attempts to retain much of the simplicity and expressiveness of these iconic designs.n Our goals lead us to combine pure object-oriented and functional abstractions in a simple, typed setting. We present a foundational object-based language that we believe to be as close as one can get to simple typed lambda calculus while keeping object-orientation. We show how this foundational language can be translated to the typed lambda calculus via standard encodings. We then define a simple extension to this language that introduces classes and show that classes are no more than sugar for the foundational object-based language. Our future intention is to demonstrate that modules and other object-oriented features can be added to our language as not more than such syntactical extensions while keeping the object-oriented core as pure as possible.n The design of Wyvern closely follows both historical and modern ideas about the essence of object-orientation, suggesting a new way to think about a minimal, practical, typed core language for objects.


Sigplan Notices | 2014

On the simplicity of synthesizing linked data structure operations

Darya Kurilova; Derek Rayside

We argue that synthesizing operations on recursive linked data structures is not as hard as it appears and is, in fact, within reach of current SAT-based synthesis techniques - with the addition of a simple approach that we describe to decompose the problem into smaller parts. To generate smaller pieces of code, i.e., shorter routines, is obviously easier than large and complex routines, and, also, there is more potential for automating the code synthesis. In this paper, we present a code generation algorithm for synthesizing operations of linked data structures and, as an example, describe how the proposed algorithm works to synthesize operations of an AVL tree.


Proceedings of the First Workshop on the Globalization of Domain Specific Languages | 2013

Type-directed, whitespace-delimited parsing for embedded DSLs

Cyrus Omar; Benjamin Chung; Darya Kurilova; Alex Potanin; Jonathan Aldrich

Domain-specific languages improve ease-of-use, expressiveness and verifiability, but defining and using different DSLs within a single application remains difficult. We introduce an approach for embedded DSLs where 1) whitespace delimits DSL-governed blocks, and 2) the parsing and type checking phases occur in tandem so that the expected type of the block determines which domain-specific parser governs that block. We argue that this approach occupies a sweet spot, providing high expressiveness and ease-of-use while maintaining safe composability. We introduce the design, provide examples and describe an ongoing implementation of this strategy in the Wyvern programming language. We also discuss how a more conventional keyword-directed strategy for parsing of DSLs can arise as a special case of this type-directed strategy.


symposium and bootcamp on science of security | 2016

Modules in wyvern: advanced control over security and privacy

Darya Kurilova; Alex Potanin; Jonathan Aldrich

In todays systems, restricting the authority of untrusted code is difficult because, by default, code has the same authority as the user running it. Object capabilities are a promising way to implement the principle of least authority, but being too low-level and fine-grained, take away many conveniences provided by module systems. We present a module system design that is capability-safe, yet preserves most of the convenience of conventional module systems. We demonstrate how to ensure key security and privacy properties of a program as a mode of use of our module system. Our authority safety result formally captures the role of mutable state in capability-based systems and uses a novel non-transitive notion of authority, which allows us to reason about authority restriction: the encapsulation of a stronger capability inside a weaker one.


symposium and bootcamp on science of security | 2014

Type-specific languages to fight injection attacks

Darya Kurilova; Cyrus Omar; Ligia Nistor; Benjamin Chung; Alex Potanin; Jonathan Aldrich

Injection vulnerabilities have topped rankings of the most critical web application vulnerabilities for several years [1, 2]. They can occur anywhere where user input may be erroneously executed as code. The injected input is typically aimed at gaining unauthorized access to the system or to private information within it, corrupting the systems data, or disturbing system availability. Injection vulnerabilities are tedious and difficult to prevent.


european conference on object-oriented programming | 2016

Making an Embedded DBMS JIT-friendly

Carl Friedrich Bolz; Darya Kurilova; Laurence Tratt

While database management systems (DBMSs) are highly optimized, interactions across the boundary between the programming language (PL) and the DBMS are costly, even for in-process embedded DBMSs. In this paper, we show that programs that interact with the popular embedded DBMS SQLite can be significantly optimized - by a factor of 3.4 in our benchmarks - by inlining across the PL / DBMS boundary. We achieved this speed-up by replacing parts of SQLites C interpreter with RPython code and composing the resulting meta-tracing virtual machine (VM) - called SQPyte - with the PyPy VM. SQPyte does not compromise stand-alone SQL performance and is 2.2% faster than SQLite on the widely used TPC-H benchmark suite.


DARTS - Dagstuhl Artifacts Series | 2016

Making an Embedded DBMS JIT-friendly (Artifact).

Carl Friedrich Bolz; Darya Kurilova; Laurence Tratt

This artifact contains: the SQPyte prototype, a JIT for executing SQLite queries; and PyPy-SQPyte, a version of the PyPy Python VM which embeds SQPyte. In addition, a benchmark suite is included, which allows performance comparison against standard SQLite and the Java embedded database H2.


evaluation and usability of programming languages and tools | 2014

Wyvern: Impacting Software Security via Programming Language Design

Darya Kurilova; Alex Potanin; Jonathan Aldrich

Breaches of software security affect millions of people, and therefore it is crucial to strive for more secure software systems. However, the effect of programming language design on software security is not easily measured or studied. In the absence of scientific insight, opinions range from those that claim that programming language design has no effect on security of the system, to those that believe that programming language design is the only way to provide high-assurance software. In this paper, we discuss how programming language design can impact software security by looking at a specific example: the Wyvern programming language. We report on how the design of the Wyvern programming language leverages security principles, together with hypotheses about how usability impacts security, in order to prevent command injection attacks. Furthermore, we discuss what security principles we considered in Wyverns design.

Collaboration


Dive into the Darya Kurilova's collaboration.

Top Co-Authors

Avatar

Jonathan Aldrich

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Alex Potanin

Victoria University of Wellington

View shared research outputs
Top Co-Authors

Avatar

Benjamin Chung

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Cyrus Omar

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Ligia Nistor

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Blase Ur

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Lujo Bauer

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Nicolas Christin

Carnegie Mellon University

View shared research outputs
Top Co-Authors

Avatar

Richard Shay

Carnegie Mellon University

View shared research outputs
Researchain Logo
Decentralizing Knowledge