패스워드 시스템 아이디어..

croshine의 이미지

패스워드 시스템에 대한 아이디어가 하나 떠올라서 말이죠.. 일단 포스팅했던 글을 복사해놓겠습니다.

-----------------------------------------------------------------------------------------------------------------------

갑자기 떠오른 패스워드 보안 강화 솔루션 아이디어다. 그리하여 본인이 붙인 이름은 OTPES(One Time Password Exchange System). 뭔가 거창한 것 같지만 사실 굉장히 간단한 알고리즘을 가지고 있다. 일단은 이 아이디어를 까먹지 않기 위해 기록해둔다.

OTPES란 가장 이상적인 패스워드 방식인 OTP(One Time Password)의 진화된 버전 정도라고 생각하면 된다. OTP는 한번만 쓰고 버리는 패스워드이기 때문에 이미 사용한 패스워드를 공격자가 획득해도 소용이 없다. 패스워드를 안다해도 이미 그 시점에 패스워드는 바뀌어 있는 것이다. 실로 완벽한 패스워드 방식이라 할 수 있다. 하지만 OTP에도 단점은 있다. 관리와 통제가 매우 까다롭다는 것이다. 많은 분들이 사용하는 은행의 OTP만 봐도 알 수 있다. 패스워드를 알기 위해선 OTP 번호를 알 수 있는 작은 기계가 있어야 한다. 이 부분은 보안에 있어 큰 이슈가 생긴다.

무슨 이슈? 예를 들어 보겠다. 어떤 중요한 정보를 담은 컴퓨터가 있다고 하자. 이 컴퓨터에 대한 해킹을 방지하기 위해 방화벽, IPS 등 3중 4중의 대책을 마련해 놓았다고 가정하자. 만약 공격자가 컴퓨터의 하드디스크를 물리적으로 가져가버리면? 말짱 도루묵이다. 모든 해킹 중 가장 간단하고 효과적이지만, 가장 천대받고 있는 해킹이 1계층 해킹인 것이다. 현재 긍융권에서 사용중인 OTP는 그런 면에서 큰 위험에 노출되어 있다. OTPES의 가장 큰 장점은 1계층 해킹 즉, OTP 분실과 도난에서 자유로운 것이다. 일단 OTPES의 기본적인 개념을 살펴보자.

<그림>

OTPES는 OTP 시스템을 네트워크 상으로 옮겨놓은 시스템이다. 왼쪽의 사이트는 OTPES와 연동되는 고객 사이트이고 오른쪽은 고객 사이트를 관리하는 OTPES이다. 플로우를 확인하자.

1. OTP Generator에서 생성한 OTP들은 OTPES의 사용자 계정 DB에 분배된다

2. OTPES에서 생성된 OTP를 VPN을 통해 해당 사이트로 업데이트한다.

3. 사용자가 OTPES 클라이언트를 통해 로그인을 시도한다.

4. 로그인을 시도함과 동시에 1번~2번 과정을 다시 한번 수행한다.

5. OTPES 클라이언트는 OTPES DB의 계정과 패스워드를 이용해 사이트의 로그인을 수행한다.

즉, OTPES는 평소에는 1번~2번의 과정을 일정한 시간 간격을 두고 수행하다가, 사용자가 로그인을 시도하면 1번~5번의 과정을 수행함으로써 패스워드 보안강화를 꾀하는 솔루션이다. OTPES를 사용하면 다음의 장점을 기대할 수 있다.

1. 휴대용 OTP 장치가 필요없으므로 분실과 도난의 걱정이 없다.

2. 사용자는 OTPES 계정만 관리하며, 사용 사이트나 시스템에 대한 암호를 하나하나 기억할 필요가 없다.

3. 사용하는 방식이 OTP이므로 고객 사이트에 대한 패스워드 해킹이 불가능해진다.

4. VPN 장비만 있으면 시스템 구축이 가능하므로 비용이 저렴하다.

물론, 단점도 있다.

1. OTPES 시스템 자체가 뚫리면 관리하는 모든 사이트에 대한 보안이 깨진다.

2. 고객 사이트의 DB 시스템을 수정해야 하는 번거로움이 있다.

아직까진 장점이 더 많아 보인다. 문제는... 실제로 구축이나 실현이 가능할까 이지만 말야...
-----------------------------------------------------------------------------------------------------------------------

여기서 질문~!

1. 선생님께 이 아이디어를 말씀드렸더니 Kerberos와 흡사하다고 말씀하시더군요. Kerberos란 어떤 것이고, 이 아이디어와 비슷한 것인가요?
2. 실제적으로 구현 가능할까요?
3. 만약 실제적으로 구현 가능하다면, 어떤 기술에 대한 지식이 필요할까요? (C, C++, PHP 같은 것들..)
4. 예상하는 단점 외에 보안적인 관점에서 구멍은 없을까요?

갑자기 떠오른 아이디어지만 머릿속에서 떠나지 않아서 이렇게 글을 써봅니다.. 고수님들의 의견을 듣고 싶어요~

File attachments: 
첨부파일 크기
Image icon OTPES.jpg156.42 KB