Chrome은 비밀번호를 어떻게 저장하나요?


28

그들은 디스크에 암호화되어 있습니까? 방법? 예를 들어, 누군가 라이브 CD로 부팅하고 하드 디스크를 마운트하는 경우 안전합니까?

암호화 키는 어떻게 생성됩니까? Windows와 Linux가 다른가요?


참고 구글은 마스터 암호를 구현하는 것을 거부 는 잘못된 보안 감각을 만들 것이기 때문에 (파이어 폭스가로)와 같은 도구가 Chromepass . 암호 데이터베이스를 해독 할 수 있습니다, 사용자가 로그인 제공
댄 Dascalescu

답변:


25

Chrome에서 비밀번호를 암호화하는 데 사용되는 키에 대해 특히 궁금한 것 같습니다.

정답은:

모든 비밀번호는 다른 임의의 키로 암호화됩니다.

그런 다음 암호화 된 비밀번호는 SQLite 데이터베이스 파일에 저장됩니다.

%LocalAppData%\Google\Chrome\User Data\Default\Login Data

SQLite Database Browser 또는 SQLite Maestro 와 같은 것을 사용 하여 볼 수 있습니다. 내 Login Data파일 의 스 니펫은 다음과 같습니다 .

origin_url                                username_value               password_value
========================================  ==============               ========================
http://thepiratebay.org/register          JolineBlomqvist@example.com  01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA

암호가 암호화 된 데이터 덩어리임을 알 수 있습니다. 새 비밀번호를 암호화하는 대략적인 알고리즘은 다음과 같습니다.

  • 새로운 랜덤 세션 키를 생성
  • 세션 키로 비밀번호를 암호화
  • 사용자의 RSA 공개 키로 세션 키를 암호화
  • 암호화 된 데이터에 대한 메시지 인증 코드 (HMAC) 생성
  • 암호화 된 세션 키, 암호화 된 암호 및 MAC을 연결

그리고 Chrome은 해당 얼룩을 SQLite 데이터베이스에 저장합니다.

그러나 귀하의 질문에 대답하기 위해 : 암호화 키는 어디에서 왔습니까?

각 비밀번호는 무작위로 생성 된 다른 키로 암호화됩니다.

기술적 세부 사항

물론 나는 기술적 세부 사항을 생략했다. Chrome은 비밀번호 자체를 암호화하지 않습니다. Chrome에는 암호화에 사용되는 마스터 키가 없습니다. Chrome은 암호화를 수행하지 않습니다. Windows는 않습니다.

CryptProtectData원하는 임의의 데이터를 암호화하는 데 사용되는 Windows 기능이 있습니다 . 그것을 호출하는 세부 사항은 덜 중요합니다. 그러나 프로그래밍 언어로 다소 해독 할 수있는 의사 언어를 발명하면 Chrome은 다음을 호출합니다.

CryptProtectData(
      { cbData: 28, pbData: "correct battery horse staple" },
      "The password for superuser.com and all the glee therein",
      null, //optional entropy
      null, //reserved
      null, //prompt options
      0, //flags
      { cbData:   pbData:  }); //where the encrypted data will go

암호는 다음과 같습니다.

  • 평문 :correct battery horse staple
  • 암호화 :01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA

비밀번호를 입력 할 필요가 없었 음을 알 수 있습니다. Windows가이 모든 것을 처리하기 때문입니다. 결국 :

  • 비밀번호를 암호화하기 위해 임의의 비밀번호가 생성됩니다.
  • 해당 비밀번호는 임의의 비밀번호로 암호화됩니다.
  • 해당 비밀번호는 Windows 비밀번호로 암호화됩니다.

따라서 누군가가 귀하의 비밀번호를 아는 유일한 방법은 귀하의 비밀번호를 아는 것입니다.


크롬은 저장된 암호를 해독하는 데 사용할 수있는 키를 어떻게 알 수 있습니까?
brunoais

1
@brunoais Chrome은 비밀번호를 암호화하는 데 사용되는 키를 모릅니다. Chrome은 암호를 해독하지 않습니다-Windows는 해독합니다.
Ian Boyd

그래. 악성 프로그램이 컴퓨터에 침입하면 해당 프로그램에서 암호를 완전히 사용할 수 있습니다.
brunoais

1
@brunoais 비밀번호를 입력 한 경우에만 해당됩니다. 불행히도 이것은 암호화의 근본적인 한계입니다. 일단 데이터가 해독되면 해독됩니다.
Ian Boyd

감사. Chrome에서 비밀번호 기억을 중지했습니다 (아직 저장하라는 제안은했지만 결코 기억하지 못했습니다). 비밀번호 데이터베이스가 손상되었다고 생각했습니다. 삭제하여 해결%LocalAppData%\Google\Chrome\User Data\Default\Login Data
대령 패닉

8

비밀번호 는 암호화 되어 SQLite 데이터베이스에 저장됩니다.

여기서 중요한 부분은 CryptProtectData데이터 암호화를위한 Windows API 함수입니다. 이 기능으로 암호화 된 데이터는 매우 견고합니다. 처음에는이를 암호화 한 동일한 시스템 및 동일한 사용자 만 암호를 해독 할 수 있습니다.


그러나 암호화 키는 어떻게 생성됩니까? 이것에 따라 나는 그 계획이 다소 안전하다고 생각할 것입니다. 그리고 리눅스는 어떻습니까?
Óscar

@ Óscar : Windows CryptProtectData에서는 Windows 자격 증명 (암호가 아닌 다른 데이터)을 키로 사용합니다. AFAIK는 인증서, 네트워크 자격 증명 및 모든 것을 보호하는 데 사용되는 것과 동일한 기능입니다.
grawity

3
@ Óscar : Linux에서는 Encryptor::EncryptString 아무것도하지 않습니다 . 그놈 키링 및 KDE 월렛을 사용하기위한 코드가있는 것 같습니다.
grawity

옳은. Linux에서는 KDE Wallet, GNOME Keyring 또는 다른 지원되는 기본 비밀번호 저장소 (내가 잊어 버린)가 대신 사용됩니다.
Michael Hampton

1
그래서 ... 기본적으로 크롬 비밀번호를 스누핑하는 별도의 별도 앱을 사용하는 것이 가능합니다. 이미 로그인되어 있고 실행 중이라면?
rogerdpack

4

그것들은 "암호화"되지만 뒤집을 수있는 암호화입니다. Chrome은 원래 비밀번호를 저장된 사이트로 전송해야하므로 Chrome에서 비밀번호를 해독하여 사용할 수 있다면 다른 사람도 사용할 수 있습니다. 비밀번호 저장은 100 % 안전하지 않습니다.


그러나 암호화 키는 어느 것입니까?
Óscar

2
sblair의 답변을 확인하십시오. 저장 방법에 관계없이 암호 해독의 가능성이 있습니다. 적절한 소프트웨어를 사용하면 누구나 해독 할 수 있습니다. 로그 아웃 할 때까지 Windows 계정에 로그인하면 암호를 완전히 사용하고 볼 수 있습니다. 브라우저 암호를 저장하는 100 % 안전한 솔루션이 없음을 나타냅니다.
BloodPhilia

1
아니요. 그러나 컴퓨터가 도용 당하거나 감염된 경우 사용자 모르게 브라우저 비밀번호를 쉽게 복구 할 수 있습니다. 다시 한 번 말하지만 브라우저에 100 % 내결함성 비밀번호 저장 공간이 없다는 것입니다. 안전에 대한 질문에 답하십시오.
BloodPhilia

1
"마스터 비밀번호"가 없습니다. CryptProtectDataWindows API이며 Windows는 실제로 모든 암호화 및 검색을 수행하며 암호화 키는 사용자 계정 및 시스템에 따라 다릅니다.
BloodPhilia

1
이것은 그 동작에 대한 설명을 제공해야합니다 msdn.microsoft.com/en-us/library/ms995355.aspx
BloodPhilia


1

Mac에서 Windows의 CryptProtectData 기능과 동등한 기능은 OS X 키 체인의 "Chrome Safe Storage"에 대한 비밀번호에 액세스하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.