| [ garbages ] in KIDS 글 쓴 이(By): cookie () 날 짜 (Date): 2011년 03월 18일 (금) 오후 09시 11분 47초 제 목(Title): 인증서 패스워드 무한 입력.. > 제 목(Title): 공인인증서 보안 '구멍'? 네 사실입니다. 공인 인증서 (더 정확히는 인증서 개인키) 암호 체계가 어떻게 되어 있냐면 X.509 같은 공개키 기반체계에서 인증서와 Private key를 저장하는 표준적인 방법이 PKCS#12 인데 인증서/개인키 파일을 여러 프로그램이 같이 이용하려면 따를 수 밖에 없는 공개 표준이죠. (NPKI 폴더 아래에 있는 개인키 파일) 그 PKCS#12에서 개인키를 암호화 하는 방식이 PBEWithSHAandTripleDES-CBC (PKCS#5)를 주로 쓰고 있어서 한국의 공인인증서도 아마 그걸 쓰는 걸로 아는데 (지금은 PBKDF2 로 바뀌었을 지도) pass word -> hash (SHA-1) -> encryption key (128 bit) 를 만들어서 이 128 비트 키를 가지고 개인키 내용을 triple-DES 등으로 암호화 해서 저장하거든요. pass word-based encryption (PKCS #5) 이라는 거죠. 그러니 이걸 제대로 복호화 할수 있는 encryption 키에 해당하는 password 가 나올 때 까지 무한정 시도해서 볼수 있는 거죠. 지금 다섯번만 입력하게 하는 건 해당 프로그램에서의 제한이지 프로그램 짤줄 아는 사람이 짜면 사람이 패스워드를 일일이 입력할 필요도 없고 brute-force로 수백만개 수억개의 패스워드를 시험해 돌릴 수있는 프로그램도 쉽게 만들수 있지요. 이건 현재 공인인증서의 포맷이 보안에 문제가 있는게 아니고 어떤 표준이나 알고리즘을 쓰건 공개적인 표준과 패스워드라는 수단을 쓰는 한에는 어쩔 수가 없는 겁니다. 패스워드 라는 방식의 근본적 한계라고 할수 있는 거죠. 그러니 반드시 인증서 패스워드는 dictionary attack에 강한 길고 복잡하고 예측이 불가능한 패스워드를 써야 하고 그래도 패스워드를 크게 믿진 마십시오. 패스워드는 다 뚫린다라고 생각하고 무엇보다 인증서/개인키 파일을 남이 복사하지 못하게 안전하게 보관해야 하는 겁니다. 다른 사람이 접근 할수 있는 컴퓨터에는 절대로 개인키를 (NPKI 폴더 내용) HDD에 남겨 두시면 안됩니다. USB 플래시 메모리 등에 담아서 휴대하시길 적극 권합니다. 개인키 파일 == 인감도장 입니다. |