그들은 디스크에 암호화되어 있습니까? 방법? 예를 들어, 누군가 라이브 CD로 부팅하고 하드 디스크를 마운트하는 경우 안전합니까?
암호화 키는 어떻게 생성됩니까? Windows와 Linux가 다른가요?
답변
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 비밀번호로 암호화됩니다.
따라서 누군가가 귀하의 비밀번호를 아는 유일한 방법은 귀하의 비밀번호를 아는 것입니다.
답변
비밀번호 는 암호화 되어 SQLite 데이터베이스에 저장됩니다.
여기서 중요한 부분은
CryptProtectData데이터 암호화를위한 Windows API 함수입니다. 이 기능으로 암호화 된 데이터는 매우 견고합니다. 처음에는이를 암호화 한 동일한 시스템 및 동일한 사용자 만 암호를 해독 할 수 있습니다.
답변
그것들은 “암호화”되지만 뒤집을 수있는 암호화입니다. Chrome은 원래 비밀번호를 저장된 사이트로 전송해야하므로 Chrome에서 비밀번호를 해독하여 사용할 수 있다면 다른 사람도 사용할 수 있습니다. 비밀번호 저장은 100 % 안전하지 않습니다.
답변
Chrome은 비밀번호를 암호화하여 SQLite DB에 저장하지만 ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) 또는 SecurePassword Kit ( http : // www.getsecurepassword.com/ )
답변
Mac에서 Windows의 CryptProtectData 기능과 동등한 기능은 OS X 키 체인의 “Chrome Safe Storage”에 대한 비밀번호에 액세스하는 것입니다.