MSSQL 암호화 함수 설정

mssql-encryption

요즘에는 개인정보보호법등 보안에 관련한 이슈가 많은데 이중에서도 고객정보를 다루는 IT업체나 개발자들은 특히 유의해야 할 사항이 많습니다.
이에 대한 자세한 사항은 헬로우 블로그에 포스팅 되어있는 시스템 개발자가 알아야 할 개인정보보호 방안을 참조하시기 바랍니다.

다음 예제는 MSSQL 암호화 함수 설정에 관한 예제로 MSSQL 데이터베이스에서의 데이터 암호화에 대한 내용입니다.
암호화와 복호화를 할 수 있는 SEED 알고리즘 함수와 복호화를 할 수 없는 MD5 알고리즘 함수로 나누었습니다.

MSSQL 암호화 ASSEMBLY 설정

먼저 암호화 DLL를 MSSQL 서버에 어셈블리 등록하여야 합니다.
DLL 파일을 사용할 수 있도록 쿼리편집기에서 공통 언어 런타임 Common Language Runtime 설정을 하여 줍니다. 권한을 위해서 sa 계정으로 진행하는 것을 권장합니다.

set nocount on;
use DATABASE_NAME;
alter database DATABASE_NAME set trustworthy on;
exec sp_configure ‘clr enabled’,1;
reconfigure;
go

이후 호환성 레벨을 아래와 같이 변경합니다.

exec sp_dbcmptlevel DATABASE_NAME,100

이제 암호화 어셈블리를 등록하도록 합니다.

create assembly encrypt from ‘DLL파일경로\SurPlus.Security.dll’
with permission_set = safe;

해당 DLL 압축 파일을 여기에서 다운받을 수 있습니다.

다운로드 : SurPlus.Security

 

다 되었으면 개체 탐색기>데이터베이스>프로그래밍기능>어셈블리에서 encrypt이름으로 등록이 되었는지 확인합니다.

MSSQL 암호화 함수1

SEED 암호화 함수

이제 MSSQL 암호화 함수 설정을 할 수 있습니다.

먼저 SEED 암호화 함수를 생성합니다.

create function SEED_ENCRYPTION(@val[nvarchar](max))
returns [nvarchar](max) with execute as caller
as external name encrypt.[SurPlus.Security.GetEncryptedString].SeedEncrypt;
go

개체 탐색기>데이터베이스>프로그래밍기능>함수>스칼라 반환 함수에서 등록된 것을 확인 할 수 있습니다.

HELLO BLOG란 문자열로 함수를 호출하여 쿼리를 실행하여 보면 정상적으로 암호화가 된것을 확인 할 수 있습니다.

MSSQL 암호화 함수2

다음 SEED 복호화 함수를 생성합니다.

create function SEED_DECRYPTION(@val[nvarchar](max))
returns [nvarchar](max) with execute as caller
as external name encrypt.[SurPlus.Security.GetDecryptedString].SeedDecrypt;
go

앞서 암호화된 문자열을 넣고 쿼리를 실행하면 암호화 되었던 HELLO BLOG가 복원이 되어 정상적으로 결과에 나오게 됩니다.

MSSQL 암호화 함수3

MD5 암호화 함수

MD5의 HASH 알고리즘은 한번 암호화하면 복원이 안되기 때문에 주로 사용자 패스워드 데이터에 주로 쓰이는 암호화 방식입니다.

HASH 암호화 함수를 생성 합니다.

create function HASH_ENCRYPTION(@mod[nvarchar](max),@val[nvarchar](max))
returns [nvarchar](max) with execute as caller
as external name encrypt.[SurPlus.Security.SqlHash].CLRHash;
go

암호화는 함수는 알고리즘 모드를 인자값으로 받습니다.

인자값 알고리즘 버전
SHA,SHA1,SHA128 HASH algorithm version 1
SHA2,SHA256 HASH algorithm version 2
SHA3,SHA384 HASH algorithm version 3
SHA5,SHA512 HASH algorithm version 4

MSSQL 암호화 함수4

SQL SERVER 어셈블리 만들기에 대한 내용은 여기서 참조할 수 있습니다.

댓글 남기기