otp, 공인인증서 원리, 작동 과정에 대해

qnfw3174의 이미지

스마트폰의 otp나 공인인증서를 요구할 때 먼저
1. pc 로그인 요청
2. 로그인 서버에서 스마트폰 어플 실행으로 인한 otp 번호 혹은 공인인증서를 통해 생성한 번호 요구
3. 해당 번호를 pc 로그인 과정에 입력
4. 로그인
이런 과정인데

이 과정에 대한 자료를 구할 수 없을까요?
서버에서 otp, 공인인증서 번호를 요청했는데 그게 특정 스마트폰(공인인증서, otp)에서 구한 값이라는 걸 어떻게 구별하는지 등...

red10won의 이미지

해당 스마트폰 OTP어플이 어떤건지 모르겠는데

1] 회원가입 처럼 문자로 OTP보내고 웹에서 입력 방법

2] 보안카드 대체용처럼 1분마다 갱신되는 OTP알고리즘
서버랑 통신이 안되기 때문에
동일 알고리즘이 서버에도 운용됩니다 일치하면 처리

해당 OTP가 1분마다 갱신되는지 아닌지보고 갱신되면 2]번입니다.

qnfw3174의 이미지

간단한 것부터 구현해보려고 합니다.
time synchronization을 보면
서로 합의한 시간내에 이벤트들이 오고가야하는데 서버에서 1분내에 otp번호를 보내라고 했다고 칩시다.
그럼 서버쪽 otp 번호와 스마트폰의 otp 번호가 일치해야하는데 ... 음 otp 번호를 일치시키는건 이쪽 자료를 더 봐야겠네요.
또 로그인 과정을 여러명이 동시에 진행하고 있다면 어떤 사용자가 otp 번호를 입력했을 때 그게 다른 사용자의 otp 번호가 아니라는 것을 확인해야 하는데 이런부분에 있어서 개인적으로 떠오르는 해결책은 있어도 '보통' 현재 구현되어 있는 것들은 어떻게 되어있는지 알 수 있을까요.

red10won의 이미지

A사용자는 123441
B사용자는 443312
C사용자는 553311

서버에 사용자마자
현재시간이 동일 하더라도 결과 값을 다 다르게 가지고 있습니다.

A사용자가 hash(단말기코드(고유 key값)+현재시간) = 123441
B사용자가 hash(단말기코드(고유 key값)+현재시간) = 443312
C사용자가 hash(단말기코드(고유 key값)+현재시간) = 553311

서버에서는 해당 로그인 유저의 DB에서 단말기 코드를
가지고와서 현재시간으로 연산하죠

그래서 인터넷뱅킹경우 OTP인증은 로그인 전이 아닌 로그인후
이체나 헤지 같은 전자서명 발생시 인증 수단으로 이용됩니다.


Prentice의 이미지

시간 동기화 타입의 경우 OTP 기기마다 serial number가 있지 않을까요? 그걸 미리 등록해서 구별하지 않을까요?

qnfw3174의 이미지

일반적으로 그렇게 생각하고는 있는데 실제 그렇게 쓰이고 있는지 궁금하네요.
예를들면 스마트폰 otp를 이용할 때 맨 윗분 말씀대로 이벤트 방식이면 otp 알고리즘으로 생성한 번호만 맞으면 되기에 서로 통신이 필요없지만 두 기기의 통신에 의한 otp는 동시에 여러 처리해야 할 일들이 있으면 기기, 사용자 구분을 해줘야하는데 말이죠.

보통 지정 pc, 스마트폰 otp 어플, 스마트폰 공인인증서로 인한 인증 같은건 어떻게 각 사용자, 기기를 구분할까요?

IsExist의 이미지

스마트폰 otp 어플 설치시 시리얼 구분 됩니다. 저런 어플은 백업할때 시리얼값을 백업하도록
유도하죠.

스마트폰 공인인증서는 PC 랑 동일합니다.

지정 PC는 PC 의 Network Mac 주소와 myipaddress 를 조합해서 사용합니다.

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.