[완료]복호화 가능하면서 안전한 알고리즘이 있나요?

klyx의 이미지

지금 짜고있는 어플에서는 사용자 관리가 필요해서 암호를 어떻게 관리해야하나 이리저리 찾아보니 일반적으로는 md5나 sha1같은 복호화 불가능한 알고리즘을 이용하여 암호화시킨 값을 저장해두고, 비교할때는 입력 받은 값을 암호화시켜서 비교하는 방식으로 구현하는 듯합니다.

그런데 문득, 소위 '비밀번호 찾기'라는 기능은 어떻게 가능한건가? 라는 생각이 들더군요.
복호화 불가능한 알고리즘으로 암호를 저장했다면, 기존의 비밀번호를 알려주는 건 불가능하고, 사용자 인증후 새로운 암호를 발급하는 수밖에 없을텐데, 제 경험으로는 많은 사이트에서 비밀번호 찾기를 하면 기존의 비밀번호를 그대로 알려주었던 것같습니다.

설마 이런 사이트들은 비밀번호를 암호화하지 않고 평문이나 base64같은 그에 가까운 방법으로 저장하고 있는 걸까요?
아니면 (모순같지만) 복호화 가능하면서도 안전한 알고리즘이 존재하나요?

clique의 이미지

저장하고 있습니다.

purluno의 이미지

주제에 조금 벗어나지만, 제가 일해본 곳 중에는 비밀번호와 주민등록번호를 plain text로 그대로 DB에 저장하는 웹사이트가 있었습니다. 그리고 다른 어떤 곳은 base64를 암호화 알고리즘으로 오해해서 로그인 세션 정보를 base64로 변환해 쿠키에 저장하는 바람에 쿠키를 조작해서 원하는 아이디로 자유롭게 로그인할 수 있는 경우도 있었습니다. 이런 문제들에 대해 충분한 지식을 갖지 못한 웹개발자들이 적지 않은 것 같습니다.

김정균의 이미지

대부분 제대로 된 곳이라면 복호화가 불가능한 암호화를 사용하기 때문에, 비밀번호를 알려주지 않고, 새로운 비밀 번호를 발급해 주죠. 비밀 번호를 알려주는 사이트는 이용하지 않는 것이 더 좋을 듯 싶습니다.

klyx의 이미지

역시 복호화 가능하면서 안전한 알고리즘 따위는 없는 것이군요. 당연하다고 생각하지만요...
이런걸 생각하게 된건 이번이 처음인데, 조금만 찾아보아도 줄줄 나오는 것을, 그걸로 먹고 사는 사람들은 왜 모르는 걸까요...
시험 삼아 시간될때 가입한 곳들에서 비밀번호 찾기 테스트를 해봐서 평문으로 나오는 곳은 좀 재고해봐야겠네요.
답변 달아주신 분들 모두 감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.