모바일 기기에서 사용할 수 있는 회사 업무용 서비스 개발 사항이 발생했다. 그 서비스는 성격상 웹형태로 제공하는 것으로도 충분하며 또한 여러 웹의 장점이 있으므로 웹으로 개발하고 싶다.
하지만, 보안상 지정된 사용자만 쓸 수 있는 서비스를 만들고자 한다.(예를 들면 임원들만 쓴다던지 하는 서비스) 사용자를
식별하는 수단으로는 아이디와 패스워드가 되겠지만 그것 보다는 한 단계 더 높은 보안을 유지하기 위해 지정된 폰에서만 사용하도록
하고 싶다.
하지만 웹에서는 기본적으로 허용된 정보 외에는 기기식별을 할 수 있는 정보를 참조할 수 없다. 그런데 앱으로는 개발 하기가 싫다. 하이브리드도 마찬가지로 싫고 순수 웹으로만 구현하고 싶다.
잠시 찾아 보았으나 앱을 전혀 안쓰고 순수 웹에서 기기의 고유 식별 정보를 얻어내는 방법은 아직 못 찾았다. 그리하여 대안을 생각해봤으니 그건 영구 쿠키를 이용하는 방법..(단순 아이디어이니 의견 환영)
예를 들어 여기서는 해당 서비스를 사용할 사람들을 임원이라고 하겠다. 사내 시스템에서는 해당 사용자들의 휴대폰
번호를 이미 알고 있다. 인트라넷의 아이디 정보도 있고..(즉 이미 해당 사용자와 ID, 휴대폰 번호 정보에 대한 오프라인
대면확인은 거친 후라고 보면 되겠다) 이런 가정하에서 다음과 같은 순서로 인증용 영구 쿠키 발행 절차를 거치는 건 어떨까?
1. 해당 사용자는 쿠키 발행용 웹사이트에 접근한다. 자신의 아이디와 비밀번호를 입력하여 'SMS 인증키 발급'을 요청한다.
2. 서버는 해당 사용자가 허용된 사용자임을 확인하고, 맞는 경우 기 등록되어 휴대폰으로 임의의 인증키값을 송신한다.
3. 사용자는 본인의 휴대폰으로 도착한 인증키값을 해당 사이트에 입력하고 다시 한번 아이디, 비밀번호와 함께 송신한다.
4. 서버는 해당 인증키와 아이디, 비밀번호를 확인하여 맞는 경우 특별하게 생성된 인증문자열을 서버DB에 저장하고 쿠키를 통해 사용자 브라우져에도 영구 저장한다.
2. 서버는 해당 사용자가 허용된 사용자임을 확인하고, 맞는 경우 기 등록되어 휴대폰으로 임의의 인증키값을 송신한다.
3. 사용자는 본인의 휴대폰으로 도착한 인증키값을 해당 사이트에 입력하고 다시 한번 아이디, 비밀번호와 함께 송신한다.
4. 서버는 해당 인증키와 아이디, 비밀번호를 확인하여 맞는 경우 특별하게 생성된 인증문자열을 서버DB에 저장하고 쿠키를 통해 사용자 브라우져에도 영구 저장한다.
물론 위의 모든 트래픽은 https를 통해 암호화송수신을 해야하며, 사용자가 브라우져 쿠키를 수동으로 지웠을 경우 다시 쿠키를 발급받아야한다.
이제 사용자가 서비스화면에 접속해 특정 URL을 호출할때마다 해당 쿠키가 같이 전송될것이고 서버에서는 DB에 등록된 쿠키값과 비교하여 기기인증 비슷하게 효과를 낼 수 있을듯하다.
보안이란 원래 100%는 없고 좀 더 보안성을 높인다는 측면에서 단순 id/password 보다는 어느정도 효과가 있지 않을까 생각하는데...
생각해보니 SMS를 통해 최초 인증키를 전달하는 부분은 만약 SMS시스템이 없는 경우 메일이나 유선전화, 오프라인 전달 등
다른 안전한 수단을 통해도 할 수 있을것 같고 그렇다면 결론은 지정 기기에서만 사용가능한 서비스라기보다는 지정된 브라우져에서만
사용가능한 서비스라고 보는 것이 더 정확할 듯 하다.
사용자당 몇 개까지 인증쿠키를 발행해줄지는 서버 정책 중 하나일 것이고, 만약 한 개만 허용하는 정책이라면 하나의 기기에서도 하나의 브라우져만 사용가능하게 되는 것이다.
참조 : http://wiki.gimslab.com/moniwiki/wiki.php/모바일 웹에서 인증된 기기 식별
'web' 카테고리의 다른 글
html5, javascript, css3 관련 좋은 내용입니다. (0) | 2013.09.11 |
---|---|
The national flag of Korea;Taegeukgi (태극기) in html5 (0) | 2011.04.03 |
HTTPS 프로토콜 (0) | 2009.01.05 |
xss owasp reform (0) | 2008.11.25 |
금융감독원에 바랍니다 특정 업체 브라우저에 특화된 인터넷 금융 막아주세요 (1) | 2008.09.16 |