동글동글이
2k
2019-04-05 09:44:51
8
415

회원 비밀번호 sha 256 to 512 컨버팅 관련


안녕하세요 ~

가입되어 있는 회원들의 비밀번호가 sha256으로 해쉬암호화가 되어있는데

이걸 sha512로 컨버팅 해주려고 하거든요


근데 해쉬암호화라 단방향이라 복호화가 불가능해서

기존의 패스워드 정보를 어떻게 가지고 가야할지 모르겠는데

혹시 sha256 에서 sha512로 컨버팅 해주는 방법이 있을까요?


아니면 sha512암호화를 시스템에 적용해놓고 사용자가 로그인을 할 때

비밀번호를 새로 입력하도록 해야할까요?

선배님들의 의견을 말씀해주세요 ! 감사합니다.

0
0
  • 답변 8

  • 콘푸로스트
    875
    2019-04-05 09:55:46

    두 번 해주셔야합니다.


    기존 256으로 된 비밀번호는 512로 업데이트해주시고

    그 뒤로 들어오는 비밀번호는 256으로 암호화를 하고 다시 512로 암호화를 하시면 됩니다.


    0
  • 동글동글이
    2k
    2019-04-05 10:05:44

    콘푸로스트

    512 암호화가 256 암호화를 하고 할 수 있는건가요?



    0
  • 콘푸로스트
    875
    2019-04-05 10:13:22


    '비밀번호1234'를 256으로 해시하면

    'A0191747A9C89B6B08303DC7F1497B4D34EBD44E978045EB0D5DA4C04F04705F' 값이 나옵니다.

    그리고 나서 이 결과값을 다시 512로 해시하면



    '13CF51947949D04E81F409F9AF4AE91B806C73A27534FFCA9EDB8FAE1B48E12F3044825DE3

    1269F6AFBED1DDBE8F89BEABDF1244E841B92D7AEE29B4C8C14330' 값이 나옵니다.


    SHA256해시함수로 암호화한 값을 다시 512로 암호화하면 됩니다.

    0
  • 동글동글이
    2k
    2019-04-05 10:24:18

    콘푸로스트 

    이렇게 하게되면

    사용자가 비밀번호1234로 로그인을 할 수 있나요?

    0
  • 콘푸로스트
    875
    2019-04-05 10:29:16

    네 사용자가 비밀번호 파라미터를 받는 부분에 저렇게 256과 512으로 두 번 암호화를 해주시면 됩니다.


    0
  • 동글동글이
    2k
    2019-04-05 10:44:00 작성 2019-04-05 10:44:15 수정됨

    콘푸로스트

    감사합니다.

    저 궁금한게 있는데

    원래 512 암호화를 할 때 저렇게 두 번을 하나요 ?


    아니면 지금 제 회원 패스워드가 

    256으로 암호화가 된 상태라서 그런건가요?

    0
  • 콘푸로스트
    875
    2019-04-05 10:56:17

    두 번 작업하는 것은 이미 패스워드가 256로 되어있기 때문이죠.

    이미 256으로 암호화된 것들은 다시 원상태로 복구할 수가 없습니다.

    '비밀번호' -> SHA256 -> '비밀번호' -> SHA512로 할 수 없습니다.

    '비밀번호' -> SHA256 ->  SHA512 으로 작업해야 SHA256를 SHA512로 컨버팅할 수 있습니다.

    1
  • 르매
    560
    2019-04-05 11:01:26 작성 2019-04-05 11:03:31 수정됨

    아시는 것처럼.. 패스워드를 SHA-256으로 해쉬하여 저장하고 있기 때문에 다시 원문으로 만들 수 없고, 따라서 원문을 SHA-512로 해쉬한 값을 얻을 수 없습니다.

    그런 이유로 콘푸로스트 님께서 대안을 주신 것이구요.

    그 대안은 패스워드를 바로 SHA-512로 해쉬할 방법이 없으니.. 이미 SHA-256으로 해쉬한 값을 다시 SHA-512로 한 번 더 해쉬해서 저장해 놓으면, 원래 원했던 보안 수준을 충족한다는 것입니다.

    필요한 작업은..

    1. 패스워드를 저장할 때와 인증할 때, 유저가 입력한 패스워드를 SHA-256으로 해쉬하고 그 결과를 다시 SHA-512로 해쉬하도록 코드를 수정합니다.

    2. DB에 저장된 SHA-256으로 해쉬된 패스워드를 SHA-512로 해쉬하여 UPDATE 합니다.

    p.s

    참고로.. 이미 몇 년전부터 패스워드 보관에 신경을 쓰는 기업들은 PBKDF2 와 같은 함수를 사용해 패스워드를 저장하고 있습니다. 왜 이 이야기를 드리냐하면.. 이 함수의 파라미터에는 해쉬를 몇 번 반복할 것인지가 포함되어 있는데.. 권고는 1000번 이상입니다.

    혹시나 해쉬를 2번 정도 하는 것으로 부하를 걱정하시거나.. 이상하다고 생각하실 필요가 없기 때문에 부언드립니다.

    4
  • 로그인을 하시면 답변을 등록할 수 있습니다.