Microsoft Internet Explorer 에는 자동완성이라는 기능을 지원합니다.

자동완성 기능은 웹페이지의 폼 형태로 입력창에 글을 입력할 때 입력된 글을 보호되는 자료공간에 저장하였다가 후에 같은 입력창에서 입력을 시도할 때 저장했던 정보를 보여줍으로서 입력을 도와주는 기능입니다.

사용자 삽입 이미지

위 사진처럼 이전에 입력했던 글들이 나타나게 됩니다.

또한 로그인이 필요한 웹 페이지일 경우 아래와 같이 아이디와 패스워드를 기억하였다가 다음번 로그인 할 때 편하게 로그인 하게 도와줍니다.

사용자 삽입 이미지

물론 암호를 기억하겠느냐라는 물음에 예라고 클릭을 해야 저장합니다.

이런 기능은 사실 공용컴퓨터에서 사용해서는 안되는 기능이지만 개인용 노트북이나 데스크탑일 경우 활성화시키면 종종 편할 경우가 있습니다.

이 기능을 활성화 시키려면 인터넷 익스플로러에서 메뉴 - 도구 - 인터넷 옵션 - 내용 - 자동완성 에서 아래의 그림처럼 설정하면 됩니다.

사용자 삽입 이미지


자동완성 기능에 의해 저장되는 정보는 윈도우 레지스트리에 저장되는데 그 위치는 아래와 같습니다.

HKEY_CURRENT_USER \ Software\Microsoft \ Protected Storage System Provider \ S-1-5-21-1202660629-790525478-839522115-1003

일반적으로 사용자가 접근하게 될 경우 하위의 키는 보여지지 않습니다.

왜냐하면 이 키 하위의 모든 정보는 윈도우 시스템에 의해 보호되기 때문입니다.

윈도우(2000 이상)를 설치하게 되면 ProtectedStorage 라는 서비스 ID로 기본적으로 구동되고 이 서비스에 의해 권한이 없는 서비스나 프로세스 또한 사용자가 억세스 할 수 없도록 하고 있습니다.

아래는 PCZet Power 를 통해서 확인한 ProtectedStorage 서비스 입니다.

사용자 삽입 이미지

하지만 현재 로그인 된 사용자에게 권한을 주게 되면 참조가 가능해 집니다.

아래와 같이 현재 로그인 된 아이디를 추가해 줍니다.

사용자 삽입 이미지

그리고 읽기 권한을 추가합니다.

그럼 아래와 같이 하위 키들을 모두 볼 수 있게 됩니다.

사용자 삽입 이미지

하위에는 각 기능별 GUID 키가 있고 그 각 하위에 해당 기능에 의해 저장되어 있는 정보가 있습니다.

위 그림에 의하면 로그인이 필요한 사이트의 ID/Pass 정보가 3개 저장되어 있으며 폼 자동완성에 의해 저장되어 있는 정보가 아래 무수히 많이 존재합니다.

그러나 이렇게 레지스트리 편집기를 통해 본다고 하여 그 정보를 상세히 알 수는 없습니다.

또한 편집할 수도 없습니다. 그것은 해당 정보가 암호화 되어 있기 때문입니다.

보다 상세한 정보를 확인하기 위해서는 Protected Storage 를 접근할 수 있는 유일한 인터페이스인 pstorec.dll 에 포함된 PStoreCreateInstance 함수를 통해서만이 가능합니다.

아래는 윈도우의 system32 폴더에 존재하는 pstorec.dll 파일을 디펜던시로 확인한 결과입니다.

사용자 삽입 이미지

PStoreCreateInstance 함수를 통해 IPStore 의 데이터에 접근하는  과정 및 상세한 정보는 아래의 Microsoft 페이지에서 확인하시기 바랍니다.

http://msdn2.microsoft.com/en-us/library/Bb432323.aspx

(IPStore 를 이용하면 암호화되는 정보를 획득, 삭제 그리고 추가까지 할 수 있습니다.)

아래는 IPStore 를 이용하여 현재 컴퓨터에 저장되어 있는 자동완성 정보를 확인 및 저장할 수 있는 테스트 프로그램입니다.

저장의 경우 일반 텍스트 파일로 저장되기 때문에 쓰던 윈도우를 엎을 경우 ( 새로 깔 경우 ) 백업이 가능합니다.

사용자 삽입 이미지

프로그램을 실행하면 바로 폼의 아이디/암호 정보를 보여줍니다.

사용자 삽입 이미지

보기의 자동완성 - 폼 정보를 클릭하면 아래와 같이 폼에 기록한 정보를 모두 보여 줍니다.

사용자 삽입 이미지

그리고 파일 - 저장을 클릭하게 되면 현재 컴퓨터에 기록된 자동완성 정보를 모두 텍스트 파일로 저장할 수 있습니다.

사용자 삽입 이미지

아래는 테스트 프로그램입니다.


단독 실행 파일이므로 설치할 필요없이 바로 실행시키면 됩니다.

저장 명령을 통해 생성되는 파일을 제외하고 어떠한 파일도 생성하지 않으며 어떠한 정보도 레지스트리에 기록하지 않습니다.

위에서 살펴본 바와 같이 자동완성 기능에 의해 저장되는 정보는 시스템 서비스에 의해 완벽히? -_ㅡ+ 보호되고 있으며 오직 pstorec.dll 의 PStoreCreateInstance 함수를 통해 IPStore  데이터를 열거하여야만 암호화된 데이터를 열람, 변경, 추가, 삭제가 가능하다는 것을 알았습니다.

이 밖에도 더 상세한 정보가 알고 싶으신 분은 구글을 통해서 조사하시면 더 많은 정보를 얻으실 수 있을 것입니다.

이것으로 개략적인 자동완성 정보에 대한 고찰을 마치며, 마지막으로 첨부된 프로그램은 보안상 문제의 소지가 있기 때문에 악용하지 말아주시기 바랍니다.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기