패스워드 보안을 향상시킵니다

지금 시작하세요
CTA icon
패스워드 암호화란 무엇이며 어느 정도면 충분하나요?

패스워드의 암호화는 어느 정도까지 가능한가?

July 7, 20237 min read

패스워드 관리

패스워드 암호화(Encryption)는 데이터베이스에 저장된 사용자 인증 정보를 안전하게 보관하는 데 필수적입니다. 암호가 암호화되지 않으면 누구나 (해커를 포함하여) 기업 서버의 사용자 데이터베이스에 접근하여 저장된 패스워드를 쉽게 볼 수 있습니다.

심지어 안전한 패스워드 생성기를 사용해 만든 32문자열의 강력한 패스워드조차도 패스워드 암호화가 안되어 있다면 아무 소용 없습니다! 만약 누군가가 서버에 저장된 패스워드를 읽을 수 있다면, 아무리 길고 복잡한 패스워드라도 복사 및 붙여넣기만 하면 사용할 수 있습니다.

암호화를 통해 패스워드가 서버에 저장되기 전에 스크램블 처리되어 있다면, 누군가 서버를 해킹하더라도 실제 패스워드 대신 임의의 문자와 숫자의 조합을 볼 수 있을 뿐입니다.

이번 글에서는 강력한 패스워드가 중요한 이유와 더 나은 패스워드 관리를 실천할 수 있는 방법 등 패스워드 암호화를 주제로 살펴보겠습니다.

TeamPassword는 중소기업을 위한 패스워드 관리 솔루션입니다! 정사원, 계약사원, 고객과 안전하게 로그인 정보를 생성, 저장, 공유할 수 있습니다. 지금 바로 14일간의 무료 체험판에 가입해 TeamPassword를 경험해 보세요.

‏‏‎‎[목차]

패스워드 암호화에 대해 이해하기

패스워드의 암호화를 효과적으로 설명하려면 먼저 용어를 이해해야 합니다. 몇 가지 용어가 생소할 수 있으므로 패스워드 암호화 용어를 간략하게 소개합니다.

  • 키 (Key): 임의의 비트 문자열을 사용하여 패스워드를 잠그고 잠금 해제하는 데 사용됩니다. 데이터를 암호화하고 해독하는 개인 키와 공개 키가 있지만, 여기서는 키에 대해 너무 깊게 설명하지 않겠습니다!
  • 비트 (Bits): 대표적인 예로 1/0, 참/거짓, 예/아니오, 켜기/끄기 등과 같이 두 가지 가능한 값 중 하나를 포함하는 논리 상태입니다.
  • 블록/블록 암호 (Block/Block cipher): 블록이라고 하는 고정된 길이의 비트 그룹에서 작동하는 결정론적 알고리즘입니다.
  • 해시 함수 (Hash function): 키를 사용하여 패스워드 암호화 및 암호 해독을 생성하는 알고리즘입니다. 해시 함수는 기본적으로 누군가가 패스워드를 저장하거나 애플리케이션에 로그인할 때마다 실행되는 코드 조각입니다.
  • 해시 (Hash): 패스워드를 나타내는 임의의 숫자와 문자로 이루어진 일련의 문자열입니다. 해시 함수는 인증을 위해 원본 패스워드 대신 해시를 사용합니다.
  • 솔트 (Salt): 해시에 추가된 추가 문자와 숫자

패스워드 암호화는 어떻게 작동되나?

새 패스워드를 저장하면 해시 함수가 해시 버전을 생성하여 서버에 저장합니다. 

패스워드를 사용하여 로그인할 때마다 해시 함수는 해시를 다시 생성하여 저장된 것과 일치하는지 확인합니다. 해시가 일치하면 알고리즘이 인증을 통과하고 로그인합니다. 

예를 들면 다음과 같습니다:

  • 원래 패스워드: Pa$$w0rd123
    해시된 패스워드: 6AF1CE202340FE71BDB914AD5357E33A6982A63B

이것이 안전해 보일 수 있지만, 단순한 해시 패스워드는 해킹으로부터 안전하지 않습니다.

해시 함수는 각 사용자가 아닌 각 패스워드에 대해서만 고유한 해시를 생성합니다. 따라서 여러 사용자가 Pa$$w0rd123이라는 패스워드를 가지고 있다면 해시는 정확히 동일합니다.

이러한 암호화 취약점을 극복하기 위해 엔지니어는 패스워드가 동일하더라도 각 해시가 고유하도록 패스워드를 솔트 처리합니다.

솔트는 어떻게 작동하는가

솔트는 해시 함수가 해시를 생성하기 전에 패스워드에 8바이트(16자)의 고유값을 추가합니다. 이렇게 하면 동일한 패스워드라도 해시 함수 처리 전에는 고유한 패스워드가 됩니다.

예를 들면 다음과 같습니다:

  • 두 개의 동일한 패스워드: Pa$$w0rd123
  • 솔트처리된 값 1: E1F53135E559C253
  • 솔트처리된 값 2: 84B03D034B409D4E
  • 해시 이전의 패스워드 1: Pa$$w0rd123E1F53135E559C253
  • 해시 이전의 패스워드 2: Pa$$w0rd12384B03D034B409D4E
  • 패스워드 1의 해시값 (SHA256): 72AE25495A7981​C40622D49F9A52E4F15​65C90F048F59027BD9​C8C8900D5C3D8
  • 패스워드 2의 해시값 (SHA256): B4B6603ABC670​967E99C7E7F1389E40​CD16E78AD38EB1468E​C2AA1E62B8BED3A

‏‏‎ ‎

5가지 일반적인 패스워드 암호화 방식

1. 데이터 암호화 표준 (DES: Data Encryption Standard)

애플리케이션에서는 더 이상 DES(데이터 암호화 표준)를 사용하지는 않지만, 이 패스워드 암호화 방법은 그 역사적 가치와 보다 안전한 최신 표준에 대한 영향력 때문에 언급하는 것이 좋다고 생각합니다.

IBM은 1970년대 초에 56비트 암호화 기술로서 DES를 개발했습니다. 미국 국가안보국은 전 세계적으로 암호화 표준으로 승인되기 전에 DES를 채택하고 개선해 왔습니다.

하지만 70년대 후반부터 해커들은 DES로 암호화된 패스워드를 해독할 수 있게 되었습니다. 1999년에 윤리적 해커는 24시간 이내에 DES 키를 해독하는 데 성공했습니다. 

DES의 보안을 강화하기 위해 엔지니어들은 3중 DES (Triple DES)와 이후 고급 암호화 표준 (AES: Advanced Encryption Standards)을 만들었고, 오늘날에도 여전히 사용하고 있습니다.

2. 3중 DES (Triple DES)

3중 DES는 3개의 56비트 키(블록)를 사용하여 168비트 암호화를 생성합니다(일부 보안 전문가는 3중 DES의 강도가 112비트에 불과하다고 주장합니다). 3중 DES는 서서히 단계적으로 폐지되고 있지만, 많은 금융 기관에서 여전히 ATM PIN넘버를 암호화하는데 3중 DES를 사용하고 있습니다.

3. 고급 암호화 표준 (AES: Advanced Encryption Standard)

AES는 미국 정부를 비롯한 전 세계 여러 유명 기관에서 신뢰하는 새로운 암호화 표준입니다. 128비트의 AES도 충분히 안전하지만, 대부분의 조직은 강력한 256비트 암호화를 선호합니다.

TeamPassword에서는 256비트 암호화를 사용하여 패스워드를 저장함으로써 고객에게 최고 수준의 보안을 보장합니다. 또한 여러 보안 인증을 보유한 안전한 호스팅 제공업체를 기반으로 이용하고 있습니다.

해커는 올바른 패스워드를 찾기 위해 패스워드 조합을 시도하는 무차별 패스워드 대입 공격(brute-force attack)을 통해서만 AES 암호화 패스워드를 깰 수 있습니다.

무차별 패스워드 대입 공격에 대응하기 위해 애플리케이션은 일정 횟수 이상 시도하면 계정을 잠그거나 Google의 reCAPTURE와 같은 도구를 사용합니다.

4. Blowfish

미국의 암호학자 브루스 슈나이어(Bruce Schneier)는 1993년 취약한 DES 암호화에 대한 해결책으로 블로우피시 (Blowfish)를 설계했습니다. 블로우피시는 64비트 블록과 32~448비트의 가변 키 길이를 사용합니다.

블로우피쉬는 이전 DES보다 더 강력하지만 64비트 블록은 여전히 공격에 취약하며, 가장 흔한 공격은 알고리즘의 수학을 악용하는 암호화 공격인 이른바 생일 공격(Birthday attacks)입니다.

블로우피쉬의 취약점을 해결하기 위해 엔지니어들은 1998년에 투피쉬(Twofish; 256비트 키를 사용하는 128비트 블록)를, 2008년에 쓰리피쉬(Threefish; 256, 516, 1024비트 키를 사용하는 256, 516, 1024비트 블록)를 만들었습니다.

5. Rivest-Shamir-Adleman (RSA)

RSA는 데이터를 안전하게 전송하는 데 가장 오래되고 널리 사용되는 암호화 방식 중 하나입니다. 암호화는 두 개의 키, 두 개의 큰 소수 (prime number), 추가 보조 값으로 작동합니다.

복잡한 암호화 및 복호화 과정으로 인해 RSA 암호화를 해독할 수 있는 알려진 방법은 없습니다. 

데이터 전송에 널리 사용되지만 RSA는 속도가 느려 패스워드 암호화에는 적합하지 않습니다.

‎ ‎

왜 강력한 패스워드가 중요한가

패스워드 암호화는 범죄자가 서버에 저장된 인증 정보를 보는 것만 막을 수 있을 뿐, 해커가 취약하거나 자주 사용하는 패스워드를 추측하는 것을 막을 수는 없습니다. 여러 계정에 동일한 패스워드를 재사용하면 이 또한 위험에 노출됩니다!

암호화는 사용자가 모든 계정에 대해 고유하면서도 강력한 패스워드를 만들 때 가장 효과적입니다. 예를 들어, 문자, 숫자, 특수 문자를 해시 및 솔트 처리한 무작위 32자 비밀번호는 컴퓨터를 사용해도 추측하거나 해독하기가 거의 불가능합니다!

또 다른 시나리오로, 강력한 32자 패스워드를 가지고 있지만 모든 계정에 이 패스워드를 사용한다고 가정해 보겠습니다. 해커가 이 패스워드를 훔친다면 동일한 인증 정보를 사용하여 모든 계정에 액세스할 수 있습니다! 강력한 패스워드는 사실상 무용지물이 됩니다.

패스워드 관리 방법을 개선하세요

이제 패서워드 암호화와 관련된 취약점을 이해하셨으니 강력한 패스워드가 왜 필수적인지 알 수 있을 것입니다.

효과적인 패스워드 관리는 사이버 공격으로부터 자신을 보호하거나 해커가 여러분의 자격 증명을 도용하는 데이터 유출이 발생할 가능성이 높은 상황에 대비하여 매우 중요합니다.

범죄자들은 취약한 패스워드를 사용하는 사람들을 노리고 있습니다!

더 강력한 패스워드를 만드는 5가지 팁:

  1. 모든 계정에 강력한 패스워드를 만드세요. 가장 쉬운 방법은 패스워드 생성기를 사용하는 것입니다. TeamPassword에는 무료 패스워드 생성기가 있어 누구나 대문자, 소문자, 숫자, 특수 문자를 사용해 12~32자로 패스워드를 생성할 수 있습니다. 애플리케이션에서 허용하는 길이만큼의 패스워드를 생성하는 것이 좋습니다.
  2. 패스워드는 8글자보다 짧게 만들지 마시고, 최소 12글자를 권장합니다.
  3. 여러 계정에 동일한 패스워드를 재사용하지 마세요.
  4. 본인 이름, 가족 구성원 이름 또는 반려동물의 이름으로 패스워드를 만들지 마세요. 소셜 미디어를 통해서 이러한 정보를 자유롭게 손에 넣을 수 있습니다. 범죄자는 이러한 이름을 무차별 암호 대입 공격 알고리즘에 추가할 수 있습니다.
  5. 디지털 메모장이나 스프레드시트에 패스워드를 저장하지 마세요. TeamPassword와 같은 패스워드 매니저를 사용해 자격 증명을 생성하고 저장하는 것이 좋습니다.

‏‏‎ ‎

왜 TeamPassword와 같은 패스워드 매니저가 필요할까요

요즘에는 계정이 너무 많아서 각 계정에 대해 기억하기 쉽고 안전한 고유한 패스워드를 만드는 것이 거의 불가능합니다. 패스워드 관리자는 이 문제를 해결해줍니다.

모든 계정의 자격 증명을 기억하는 대신 패스워드 매니저에 로그인할 마스터 패스워드 하나만 외우면 됩니다. 

TeamPassword는 모든 자격 증명을 안전하게 저장하고 암호화하므로 다시는 패스워드를 외울 필요가 없습니다. 자격 증명을 입력하는 대신 TeamPassword의 브라우저 확장 프로그램(Chrome, Firefox, Safari) 중 하나를 사용하여 계정에 로그인할 수 있습니다.

팀을 위해 만들었습니다

TeamPassword의 가장 큰 장점은 팀원들과 안전하게 자격 증명을 공유할 수 있는 기능입니다. 패스워드를 공유하는 대신 TeamPassword를 통해 액세스 권한을 제공하면 됩니다. 

직원들은 TeamPassword를 사용하여 로그인하므로 원본 패스워드를 공유하지 않으므로 무단 액세스 또는 공유에 대해 더 이상 걱정할 필요가 없습니다.

TeamPassword에서 그룹을 만들어 직원, 고객, 계약사원, 프리랜서와 액세스 권한을 공유할 수 있습니다. 더 이상 액세스가 필요하지 않은 사람은 클릭 한 번으로 그룹에서 제거할 수 있습니다. 누군가가 프로젝트를 떠날 때마다 패스워드를 변경할 필요가 없습니다!

내장된 패스워드 생성기

TeamPassword에는 안전한 패스워드 생성기가 내장되어 있어 모든 계정에 대해 강력한 패스워드를 생성할 수 있습니다. 또한, 동일한 자격 증명을 재사용하지 않도록 보장하므로 자격 증명 스터핑 공격의 희생양이 되지 않습니다!

내장된 패스워드 생성기를 사용하여 정기적으로 패스워드를 변경할 수 있으며, 모든 사용자의 새 자격 증명을 업데이트할 수 있습니다!

로그인 활동 모니터링

TeamPassword의 활동 로그는 로그인, 패스워드 변경, 새 팀원, 액세스 공유 등 모든 계정의 모든 작업을 추적합니다.

의심스러운 활동에 빠르게 대응할 수 있도록 모든 TeamPassword 활동에 대한 이메일 알림을 설정할 수도 있습니다.

TeamPassword 무료 평가판 체험하기

패스워드 암호화만으로는 패스워드 취약성으로부터 비즈니스를 보호하기에 충분하지 않습니다! 자격 증명을 안전하게 생성, 저장, 공유하려면 TeamPassword와 같은 강력한 패스워드 매니저가 필요합니다.

14일 무료 평가판에 가입하여 TeamPassword로 회사의 디지털 자산을 보호하세요.

facebook social icon
twitter social icon
linkedin social icon
패스워드 보안을 향상시킵니다

패스워드를 올바르게 생성하고 관리하기에 가장 적합한 소프트웨어

TeamPassword Screenshot
추천 기사
패스워드의 강도를 확인하는 방법|'강력한' 패스워드란?

패스워드 관리

April 23, 20244 min read

패스워드의 강도를 확인하는 방법|'강력한' 패스워드란?

평소에 사용하는 업무용 및 개인용 패스워드가 얼마나 안전한지 궁금해 본 적이 있나요? 이번 글에서는 현재 사용하고 있는 패스워드의 ...

Android용 패스워드 매니저 3가지 (2024년판)

패스워드 관리

January 19, 20246 min read

Android용 패스워드 매니저 3가지 (2024년판)

이 글에서는 Android 제품을 사용하는 분들을 위해 어떤 패스워드 매니저를 사용해야 하는지 결정하는 데 도움이 되는 5가지 간단한 ...

iPhone용 패스워드 매니저 3가지 (2024년판)

패스워드 관리

December 21, 20236 min read

iPhone용 패스워드 매니저 3가지 (2024년판)

이 글에서는 iPhone에서 어떤 패스워드 매니저를 사용해야 하는지 결정하는 데 도움이 되는 5가지 간단한 질문을 통해 자신에게 가장 ...

팀을 위한 패스워드 매니저

TeamPassword는 팀의 ID 패스워드를 저장하고 공유하는 가장 빠르고 쉽우며 안전한 방법입니다.