VLDB 2026 Research / reviewers in the wild / expert
Stefan Krüger
dblp:13/6279
· DBLP profile ↗
15ranked-venue papers
6as first author
2since 2021 · last 2021
0000-0003-0895-8830ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 4 first-author · 2 since 2021Graphics, computer vision, multimedia, augmented reality and games · 4 · 2 first-authorArtificial intelligence and machine learning · 2 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Dealing with Variability in API Misuse SpecificationabstractAPIs are the primary mechanism for developers to gain access to externally defined services and tools. However, previous research has revealed API misuses that violate the contract of APIs to be prevalent. Such misuses can have harmful consequences, especially in the context of cryptographic libraries. Various API-misuse detectors have been proposed to address this issue - including CogniCrypt, one of the most versatile of such detectors and that uses a language (CrySL) to specify cryptographic API usage contracts. Nonetheless, existing approaches to detect API misuse had not been designed for systematic reuse, ignoring the fact that different versions of a library, different versions of a platform, and different recommendations/guidelines might introduce variability in the correct usage of an API. Yet, little is known about how such variability impacts the specification of the correct API usage. This paper investigates this question by analyzing the impact of various sources of variability on widely used Java cryptographic libraries (including JCA/JCE, Bouncy Castle, and Google Tink). The results of our investigation show that sources of variability like new versions of the API and security standards significantly impact the specifications. We then use the insights gained from our investigation to motivate an extension to the CrySL language (named MetaCrySL), which builds on meta-programming concepts. We evaluate MetaCrySL by specifying usage rules for a family of Android versions and illustrate that MetaCrySL can model all forms of variability we identified and drastically reduce the size of a family of specifications for the correct usage of cryptographic APIs. Rodrigo Bonifácio, Stefan Krüger, Krishna Narasimhan, Eric Bodden, Mira Mezini |
ECOOP | 2 |
| 2021 | CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIsabstractVarious studies have empirically shown that the majority of Java and Android applications misuse cryptographic libraries, causing devastating breaches of data security. It is crucial to detect such misuses early in the development process. To detect cryptography misuses, one mustdefinesecure uses first, a process mastered primarily by cryptography experts but not by developers. In this paper, we presentCrySL, a specification language for bridging the cognitive gap between cryptography experts and developers.CrySLenables cryptography experts to specify the secure usage of the cryptographic libraries they provide. We have implemented a compiler that translates suchCrySLspecification into a context-sensitive and flow-sensitive demand-driven static analysis. The analysis then helps developers by automatically checking a given Java or Android app for compliance with theCrySL-encoded rules. We have designed an extensiveCrySLrule set for the Java Cryptography Architecture (JCA), and empirically evaluated it by analyzing 10,000 current Android apps and all 204,788 current Java software artefacts on Maven Central. Our results show that misuse of cryptographic APIs is still widespread, with 95 percent of apps and 63 percent of Maven artefacts containing at least one misuse. Our easily extensibleCrySLrule set covers more violations than previous special-purpose tools that contain hard-coded rules, while still offering a more precise analysis. Stefan Krüger, Johannes Späth, Karim Ali 0001, Eric Bodden, Mira Mezini |
IEEE Trans. Software Eng. | 1 |
| 2020 | CogniCryptGEN: generating code for the secure usage of crypto APIsabstractMany software applications are insecure because they misuse cryptographic APIs. Prior attempts to address misuses focused on detecting them after the fact. However, avoiding such misuses in the first place would significantly reduce development cost. Stefan Krüger, Karim Ali 0001, Eric Bodden |
CGO | 1 |
| 2020 | Debugging Static AnalysisabstractStatic analysis is increasingly used by companies and individual code developers to detect and fix bugs and security vulnerabilities. As programs grow more complex, the analyses have to support new code concepts, frameworks and libraries. However, static-analysis code itself is also prone to bugs. While more complex analyses are written and used in production systems every day, the cost of debugging and fixing them also increases tremendously. To understand the difficulties of debugging static analysis, we surveyed 115 static-analysis writers. From their responses, we determined the core requirements to build a debugger for static analyses, which revolve around two main issues: abstracting from both the analysis code and the code it analyses at the same time, and tracking the analysis internal state throughout both code bases. Most tools used by our survey participants lack the capabilities to address both issues. Focusing on those requirements, we introduce Visuflow, a debugging environment for static data-flow analysis. Visuflow features graph visualizations and custom breakpoints that enable users to view the state of an analysis at any time. In a user study on 20 static-analysis writers, Visuflow helped identify 25 and fix 50 percent more errors in the analysis code compared to the standard Eclipse debugging environment. Lisa Nguyen Quang Do, Stefan Krüger, Patrick Hill, Karim Ali 0001, Eric Bodden |
IEEE Trans. Software Eng. | 2 |
| 2019 | The Impact of Developer Experience in Using Java CryptographyabstractBackground: Previous research has shown that crypto APIs are hard for developers to understand and difficult for them to use. They consequently rely on unvalidated boilerplate code from online resources where security vulnerabilities are common.Aims and method: We analyzed 2,324 open-source Java projects that rely on Java Cryptography Architecture (JCA) to understand how crypto APIs are used in practice, and what factors account for the performance of developers in using these APIs.Results: We found that, in general, the experience of developers in using JCA does not correlate with their performance. In particular, none of the factors such as the number or frequency of committed lines of code, the number of JCA APIs developers use, or the number of projects they are involved in correlate with developer performance in this domain.Conclusions: We call for qualitative studies to shed light on the reasons underlying the success of developers who are expert in using cryptography. Also, detailed investigation at API level is necessary to further clarify a developer obstacles in this domain. Mohammadreza Hazhirpasand, Mohammad Ghafari, Stefan Krüger, Eric Bodden, Oscar Nierstrasz |
ESEM | 3 |
| 2019 | Feature-oriented contract composition
Thomas Thüm, Alexander Kittelmann, Stefan Krüger, Stefanie Bolle, Ina Schaefer |
J. Syst. Softw. | 3 |
| 2018 | CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIsabstractVarious studies have empirically shown that the majority of Java and Android apps misuse cryptographic libraries, causing devastating breaches of data security. It is crucial to detect such misuses early in the development process. To detect cryptography misuses, one must first define secure uses, a process mastered primarily by cryptography experts, and not by developers. In this paper, we present CrySL, a definition language for bridging the cognitive gap between cryptography experts and developers. CrySL enables cryptography experts to specify the secure usage of the cryptographic libraries that they provide. We have implemented a compiler that translates such CrySL specification into a context-sensitive and flow-sensitive demand-driven static analysis. The analysis then helps developers by automatically checking a given Java or Android app for compliance with the CrySL-encoded rules. We have designed an extensive CrySL rule set for the Java Cryptography Architecture (JCA), and empirically evaluated it by analyzing 10,000 current Android apps. Our results show that misuse of cryptographic APIs is still widespread, with 95% of apps containing at least one misuse. Our easily extensible CrySL rule set covers more violations than previous special-purpose tools with hard-coded rules, with our tooling offering a more precise analysis. Stefan Krüger, Johannes Späth, Karim Ali 0001, Eric Bodden, Mira Mezini |
ECOOP | 1 |
| 2017 | CogniCrypt: supporting developers in using cryptographyabstractPrevious research suggests that developers often struggle using low-level cryptographic APIs and, as a result, produce insecure code. When asked, developers desire, among other things, more tool support to help them use such APIs. In this paper, we present CogniCrypt, a tool that supports developers with the use of cryptographic APIs. CogniCrypt assists the developer in two ways. First, for a number of common cryptographic tasks, CogniCrypt generates code that implements the respective task in a secure manner. Currently, CogniCrypt supports tasks such as data encryption, communication over secure channels, and long-term archiving. Second, CogniCrypt continuously runs static analyses in the background to ensure a secure integration of the generated code into the developer's workspace. This video demo showcases the main features of CogniCrypt: youtube.com/watch?v=JUq5mRHfAWY. Stefan Krüger, Sarah Nadi, Michael Reif, Karim Ali 0001, Mira Mezini, Eric Bodden, Florian Göpfert, Felix Günther 0001, Christian Weinert, Daniel Demmler, Ram Kamath |
ASE | 1 |
| 2016 | Jumping through hoops: why do Java developers struggle with cryptography APIs?abstractTo protect sensitive data processed by current applications, developers, whether security experts or not, have to rely on cryptography. While cryptography algorithms have become increasingly advanced, many data breaches occur because developers do not correctly use the corresponding APIs. To guide future research into practical solutions to this problem, we perform an empirical investigation into the obstacles developers face while using the Java cryptography APIs, the tasks they use the APIs for, and the kind of (tool) support they desire. We triangulate data from four separate studies that include the analysis of 100 StackOverflow posts, 100 GitHub repositories, and survey input from 48 developers. We find that while developers find it difficult to use certain cryptographic algorithms correctly, they feel surprisingly confident in selecting the right cryptography concepts (e.g., encryption vs. signatures). We also find that the APIs are generally perceived to be too low-level and that developers prefer more task-based solutions. Sarah Nadi, Stefan Krüger, Mira Mezini, Eric Bodden |
ICSE | 2 |
| 2013 | Patient Identification for Clinical Trials with Ontology-based Information Extraction from Documents
Peter Geibel, Hebun Erdur, Lothar Zimmermann, Stefan Krüger, Kati Jegzentis, Josef Schepers, Anne Becker, Christian Hans Nolte, Jan Friedrich Scheitz, Serdar Tütüncü, Tatiana Usnich, Markus Frick, Martin Trautwein, Thorsten Schaaf, Alfred Holzgreve, Thomas Tolxdorff |
KEOD | 4 |
| 2006 | Incremental Support Vector Learning: Analysis, Implementation and ApplicationsabstractIncremental Support Vector Machines (SVM) are instrumental in practical applications of online learning. This work focuses on the design and analysis of efficient incremental SVM learning, with the aim of providing a fast, numerically stable and robust implementation. A detailed analysis of convergence and of algorithmic complexity of incremental SVM learning is carried out. Based on this analysis, a new design of storage and numerical operations is proposed, which speeds up the training of an incremental SVM by a factor of 5 to 20. The performance of the new algorithm is demonstrated in two scenarios: learning with limited resources and active learning. Various applications of the algorithm, such as in drug discovery, online monitoring of industrial devices and and surveillance of network traffic, can be foreseen. Pavel Laskov, Christian Gehl, Stefan Krüger, Klaus-Robert Müller |
J. Mach. Learn. Res. | 3 |
| 1998 | Image Registration using Multiresolution Frequency Domain CorrelationabstractThis paper describes a correlation based image registration method which is able to register images related by a single global affine transformation or by a transformation field which is approximately piecewise affine. The method has two key elements: an affine estimator, which derives estimates of the six affine parameters relating two image regions by aligning their Fourier spectra prior to correlating; and a multiresolution search process, which determines the global transformation field in terms of a set of local affine estimates at appropriate spatial resolutions. The method is computationally efficient and performs well for a range of different images and transformations. 1 Introduction Image registration is an important area of Computer Vision and Image Processing. It involves determining the transformation which will map pixels in one image to their corresponding or matching pixels in one or more related images, where the latter are different views and/or different ti... Stefan Krüger, Andrew Calway |
BMVC | 1 |
| 1998 | Motion Estimation using Adaptive Correlation and Local Directional Smoothing
Andrew Calway, Stefan Krüger, David Tweed |
ICIP (3) | 2 |
| 1998 | Image Sequence Analysis and Segmentation using G-blobsabstractThis paper introduces a new generalisation of the familiar scale-space and wavelet representations, designed specifically to deal with the complexities of representing motions induced in an image sequence by the movement of 3-D objects of which the scene is comprised. It does this by combining an affine representation of local image motions with a local structure model based on Gaussian functions. After a brief review of its symmetry and completeness properties, the representation is applied to the analysis of image motions in a typical video sequence. Roland Wilson, Peter R. Meulemans, Andrew Calway, Stefan Krüger |
ICIP (2) | 4 |
| 1996 | A multiresolution frequency domain method for estimating affine motion parametersabstractA novel approach to motion estimation is presented. The scheme employs a multiresolution model of 2-D motion, in which the motion within local regions at different scales is described in terms of a six parameter affine model. A frequency domain method is used to estimate the local affine motion parameters and a coarse-fine tracking algorithm is used to determine the global motion field. Results of experiments performed on synthetic and natural image sequences illustrate the effectiveness of the approach. Stefan Krüger, Andrew Calway |
ICIP (1) | 1 |