Skip to main content
QUICK REVIEW

[논문 리뷰] Why Do Developers Get Password Storage Wrong? A Qualitative Usability Study

Alena Naiakshina, Anastasia Danilova|arXiv (Cornell University)|2017. 08. 29.
User Authentication and Security Systems참고 문헌 53인용 수 14
한 줄 요약

이 질적 사용성 연구는 개발자가 보안 지식을 보유하고 있음에도 불구하고 암호를 불안전하게 저장하는 이유를 조사하며, 명시적 보안 자극, 오래된 지식, 명확하지 않은 보안 기본 설정이 주요 원인임을 밝혀냈다. Spring과 같은 안전한 프레임워크가 존재하더라도 개발자들은 명시적으로 지시받지 않는 한 일반적으로 적절한 해시 처리를 생략하는 경향이 있어, 치명적인 암호 누출을 방지하기 위해 안전한 기본 설정과 더 나은 개발자 교육이 필요하다는 점을 시사한다.

ABSTRACT

Passwords are still a mainstay of various security systems, as well as the cause of many usability issues. For end-users, many of these issues have been studied extensively, highlighting problems and informing design decisions for better policies and motivating research into alternatives. However, end-users are not the only ones who have usability problems with passwords! Developers who are tasked with writing the code by which passwords are stored must do so securely. Yet history has shown that this complex task often fails due to human error with catastrophic results. While an end-user who selects a bad password can have dire consequences, the consequences of a developer who forgets to hash and salt a password database can lead to far larger problems. In this paper we present a first qualitative usability study with 20 computer science students to discover how developers deal with password storage and to inform research into aiding developers in the creation of secure password systems.

연구 동기 및 목표

  • 개발자가 보안 지식을 보유하고 있음에도 불구하고 암호를 안전하게 저장하지 못하는 이유를 이해하는 것.
  • 보안 API의 사용성 또는 작업 프레임이 안전한 구현에 영향을 미치는지 조사하는 것.
  • 실제 개발 작업과 유사한 상황에서 개발자가 보안 관행을 어떻게 인식하고 적용하는지 탐색하는 것.
  • 안전한 기본 설정과 프레임워크 지원이 불안전한 암호 저장을 줄이는 데 얼마나 효과적인지 평가하는 것.
  • 더 나은 도구와 교육을 통해 개발자의 보안 관행을 향상시키기 위한 향후 연구를 안내하는 것.

제안 방법

  • 20명의 컴퓨터 과학 학부생을 대상으로 실시한 질적 실험실 연구로, 사회 네트워킹 앱의 암호 저장 기능을 구현하는 개발자 역할을 수행하였다.
  • 두 가지 프레임워크를 사용: Spring(내장된 안전한 도구를 제공함) 및 JSF(수동으로 구현이 필요함).
  • 작업을 두 가지 조건으로 프레임: 보안을 명시적으로 자극한 조건 또는 전혀 자극하지 않은 조건.
  • 사고를 말하는 프로토콜과 사후 반구조적 인터뷰를 통해 의사결정 과정과 정서 모델을 분석하였다.
  • 구현된 코드와 개발자의 논리적 근거를 분석하여 오해, 지식 격차, 설계 선택 사항을 특정하였다.
  • 예비 연구를 통해 작업 설계를 정교화하고 연구 설정의 타당성을 확보하였다.

실험 결과

연구 질문

  • RQ1개발자가 보안 지식을 보유하고 있음에도 불구하고 명시적으로 이를 수행하도록 유도되지 않은 상태에서 안전한 암호 저장을 구현할 수 있는가?
  • RQ2안전한 프레임워크 기능(예: Spring Security의 PasswordEncoder)의 존재가 개발자의 구현 선택에 어떤 영향을 미치는가?
  • RQ3보안 개념을 인지하고 있음에도 불구하고 얼마나 많은 개발자가 오래된 또는 잘못된 보안 관행에 의존하는가?
  • RQ4작업 프레임과 자극의 유무가 기능성과 보안의 우선순위 설정에 어떤 영향을 미치는가?
  • RQ5서로 다른 보안 표준과 조언이 개발자의 의사결정에 어떤 역할을 하는가?

주요 결과

  • 강력한 보안 지식을 지닌 개발자들조차도 명시적으로 보안을 고려하도록 유도되지 않은 한 안전한 암호 저장을 구현하지 못하는 경우가 많았다.
  • 보안을 고려하도록 자극받지 않은 참가자들은 작업 자체가 본질적으로 보안 민감한 사안임에도 불구하고 암호를 평문으로 저장하였다.
  • Spring과 같은 안전한 프레임워크를 사용할 경우 오류가 줄어들었지만, 개발자가 실제로 안전 기능을 사용하는 경우에만 그러했고, 否면 무시되거나 잘못 설정되었다.
  • 많은 개발자들이 현대 표준을 알고 있음에도 불구하고 오래된 또는 불안전한 해시 방법(예: MD5, SHA-1)을 사용하여 오래된 지식의 영향을 받았다.
  • 참가자들은 전송 보안(예: HTTPS)과 저장 보안을 자주 혼동하여 위협 모델에 대한 기본적인 오해를 드러냈다.
  • 안전한 API에 접근할 수 있었음에도 불구하고 많은 개발자들이 수동으로 구현하거나 내장된 안전 기능을 무시하는 경향을 보였으며, 이는 옵트아웃 기반의 안전한 기본 설정이 필요하다는 점을 시사한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.