본문 바로가기
Database/MS-SQL

MS-SQL SHA2_256 알고리즘을 활용한 일방향 암호화

by 화곡공룡 2023. 12. 12.
반응형

 

Table에 Password를 저장하는 Table이 있을경우 보통 일방향 알고리즘을 사용한 암호화 작업을 진행한다.

password를 가장 중요한 개인정보이기 때문에 해킹이나 타인에 의한 Data 유출이 있을경우 또는 양방향 알고리즘을 이용하여 데이터를 복호화 하면 password 유출이 가능하기 때문에 일방향 알고리즘을 사용한다.

 

MS-SQL에서 일방향 알고리즘을 이용한 암호화 방법

 

1. Test할 임시 Table 만들기

AdventureWorks2016 Database에 있는 person Table을 이용하여 임시 Table을 만들었다.

FirstName을 login id로 하고, LastName을 pw로 만들었다.

임시 Table을 emp_test로 만들고 조회를 해보면 다음과 같이 login, pw 컬럼에 데이터를 확인 할 수 있다.

use AdventureWorks2016

select FirstName login, LastName pw into emp_test
from [Person].[Person]

 

2. 암호화 작업

데이터를 암호화 하기 전에 우선 pw 암호화 컬럼을 추가해주고 해당 컬럼에 update를 해준다.

-- 컬럼 추가
ALTER TABLE emp_test ADD pw_enc varbinary(256)

-- sha2_256 알고리즘 암호화
update emp_test
set pw_enc = HASHBYTES('SHA2_256', pw)

 

3. Data 조회 아래와 같이 pw_enc 컬럼에 암호화 된 것을 볼수 있다.

4. 데이터가 암호화 되었기 때문에 유저의 id의 password가 일치하는지 조회할 경우 pw_enc 조건절에 암호화 함수를 이용하여야만 조회가 가능하다.

 

5. password 암호화가 정상적으로 되었다면 기존 pw 컬럼은 삭제하고 pw_enc 컬럼은 pw로 리네임 해주면 기존 컬럼명을 그대로 사용할 수 있다.

alter table emp_test drop column pw ;
exec sp_rename 'emp_test.pw_enc' ,'pw', 'column' ;

 

안전하게 password를 보관하기 위해서는 관리자도 알아서는 안되므로 반드시 일방향 알고리즘을 이용하여야 한다.

반응형

댓글