13P by kciter1 23일전 | favorite | 댓글 4개
  • 비밀번호 관리 시스템의 편리함으로 인해 요즘은 OS나 브라우저에 내장된 기능을 많은 사람들이 사용하고 있음
  • 그런데 정말 안전할까?라는 의문이 들 수 있음
  • 암호화에 대한 정의
    • 비우호적인 존재로부터 프로토콜을 방어하는 것이 암호학의 목표
    • 특별한 지식을 소유한 사람들을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용하여 정보(평문을 가리킴)를 전달하는 과정
  • 알고리즘은 전부 공개되어 있는데 안전한가?
    • 케르크호프스의 원칙이라는 것이 있음
    • “암호체계는 비밀에 부쳐질 필요가 없어야만 하며, 적의 손에 떨어지더라도 문제가 없어야 한다.”
    • 알고리즘이 공개되어도 안전한 이유는 비밀 키 덕분
    • 알고리즘이 아닌 프로토콜을 안전하게 만드는 것이 중요
    • 오히려 알고리즘을 공개하여 더 많은 사람들이 검증하고 개선할 수 있도록 하는 것이 좋다
  • 고전 암호는 왜 위험한가?
    • 컴퓨터가 등장하기 전에는 충분히 복잡하고 유용했지만 컴퓨터의 등장으로 빠른 시간에 해독하는 것이 가능해짐
    • 무차별 대입, 빈도분석 등 다양한 공격 기법이 있음
  • 현대 암호는 안전한가?
    • 고전 암호는 키 공간이 부족하고 언어적 특성이 반영되어 위험함
    • 반면 현대 암호는 혼돈과 확산이라는 개념을 사용하여 어마어마한 경우의 수를 만들어냄 -> 우연히 얻어 걸리는 전수 키 조사 외엔 해독 불가능
    • 혼돈(Substitution)은 'ABCA'와 같은 문자열이 있다면 '1231'과 같이 대체하는 것을 말함
    • 확산(Permutation)은 'ABCA'와 같은 문자열이 있다면 'BCAA'와 같이 순서를 바꾸는 것을 말함
  • 세 가지 암호화 방식
    • 대칭, 비대칭, 단방향 암호화가 존재
    • 대칭 암호화는 하나의 비밀 키(혹은 대칭 키)를 이용하여 암호화하고 복호화하는 알고리즘
      • 대표적으로 AES가 있다
    • 비대칭 암호화는 두 개의 키를 이용하여 암호화하고 복호화하는 알고리즘
      • 대표적으로 RSA가 있다
      • 대칭 암호화는 참여자가 많은 경우엔 문제가 발생
    • 단방향 암호화는 임의의 길이의 데이터를 고정된 길이의 데이터로 변환하는 것
      • 대표적으로 SHA가 있다
      • 무결성 검증에 이용된다
  • 개인 비밀 금고 구현
    • 마스터 패스워드는 비밀번화 관리 시스템의 주인임을 인증할 수 있는 비밀 키
    • 마스터 패스워드의 해싱 값은 Pass-the-Hash 공격을 당할 수 있으므로 절대로 저장해서는 안됨
    • 사용자의 디바이스에 종속된 랜덤한 키를 추가로 사용하여 마스터 언록 키를 만들면 더 안전하게 비밀번호를 보관할 수 있음
    • 맥의 경우 Keychain, 윈도우는 Credential Manager를 사용 가능
  • 실제 구현은 링크 참고

혼돈(substitution), 확산(permutation)이라고 되어 있어서, 뭐지 싶어서 원문을 보았는데,

혼돈은 대체(substitution)를 사용하여 달성하고, 확산은 순열(permutation)을 사용하여 달성한다고 되어 있군요...

너무 요약해버렸네요 죄송합니다 ^^;;

안드로이드에는 키체인 같은게 없나요..? 갤럭시 삼성월렛도 위험한가요?

안녕하세요. :) Secret Manager라는게 있는 것으로 알고 있습니다. 삼성 월렛은 제가 잘 모르지만 아마 안전하게 잘 만들지 않았을까요?