2021.07.14

데이터베이스 보안을 향상시키는 11가지 기술

Peter Wayner | CSO
데이터베이스에는 매우 민감한 내용을 포함한 방대한 양의 개인정보가 저장되므로 책임이 있는 기업이라면 관리에 신경쓸 수밖에 없다. 이제 데이터베이스 개발자는 정교한 도구와 기술을 사용해 정보를 안전하게 지키면서 원하는 작업을 할 수 있다. 비유하자면 살찔 걱정 없이 케이크를 먹을 수 있는 셈이다.
 
ⓒ Getty Images Bank

이와 같은 솔루션에는 정교한 수학이 적용된다. 가장 간단한 메커니즘은 현대판 비밀 코드, 즉 고전적인 디코더 휠의 디지털 버전이라고도 할 수 있다. 더 깊은 수학으로 들어가 높은 유연성과 책임성을 제공하는 더 복잡한 확장 형태도 있다. 연구실에서 수십년 전부터 존재했지만 이제서야 신뢰할 만큼의 안정성에 이른 아이디어를 실제로 구현한 버전이 많다.

이 알고리즘들은 비즈니스 관계를 접합하고 정확한, 사기로부터 안전한(fraud-free) 워크플로우를 보장하기 위한 기반이 되고 있다. 이런 접근 방식은 기업에서 고객의 비밀을 보호하면서 더 간편하게 개인화된 서비스를 제공할 수 있게 해준다. 또한 서비스 제공에 지장을 초래하지 않으면서 데이터 흐름에 대한 규정도 더 철저히 준수할 수 있게 해준다.

데이터베이스 신뢰를 간편하게 해주는 11가지 도구와 기술을 소개한다.

1. 기본 암호화(Basic encryption)
가장 간단한 솔루션으로 충분할 때도 있다. 현대 암호화 알고리즘은 하나의 키로 데이터를 잠가 그 키를 소유한 사람만 데이터를 읽을 수 있도록 한다. 많은 데이터베이스가 AES와 같은 표준을 사용해 데이터를 암호화할 수 있다. 이 솔루션은 절도와 같은 하드웨어 분실에 대비한 가장 강력한 보호 수단이다. 올바른 암호화 키가 없으면 데이터를 열어볼 수 없기 때문이다.

그러나 가동 중인 컴퓨터에 공격자가 침입하는 경우, 대칭 암호화 알고리즘이 보호할 수 있는 범위에는 한계가 있다. 데이터베이스의 정상적인 작업을 허용하는 키를 공격자가 찾아낼 수 있기 때문이다. 많은 데이터베이스는 “미사용(at rest)” 상태의 정보를 암호화하는 옵션을 제공한다. 예를 들어 오라클은 개발자가 해야 할 일이 거의 없다는 점을 강조하기 위해 이 옵션을 “투명한 데이터 암호화(transparent data encryption)”로 지칭한다.

2. 차등 개인정보 보호(Differential privacy)
차등 개인정보 보호 기법은 수학을 다른 방식으로 활용한다. 디지털 금고 안에 정보를 넣고 잠그는 방법 대신 적절한 양의 잡음을 첨가해 어느 레코드가 누구에게 해당하는지 확인하기 어렵게 한다. 잡음을 알맞게 추가하면 평균과 같은 통계 수치가 왜곡되지 않는다. 예를 들어, 데이터 집합의 나이에서 무작위로 몇 년을 더하거나 빼서 평균 나이를 동일하게 유지하면서 나이로 특정인을 찾기가 어렵게 하는 식이다.

이 솔루션은 다양한 영역에 유용하다. 데이터를 연구하고자 하는(보통 평균 및 집단의 크기를 계산함), 신뢰할 수 없는 파트너에게 데이터 집합을 넘겨줄 때 가장 적합하다. 많은 알고리즘은 집계된 통계를 많이 왜곡하지 않으면서 잡음을 첨가한다. 정보 일부가 왜곡된 상태에서도 잘 작동하는 머신러닝 알고리즘을 파악하기 위한 연구가 현재 활발히 진행되고 있다.

마이크로소프트와 구글은 이 알고리즘을 데이터 스토어 및 머신러닝 알고리즘과 통합하는 도구를 제공한다. 예를 들어 구글의 프라이버시-온-빔(Privacy-On-Beam)은 잡음 추가 메커니즘과 아파치 빔(Apache Beam) 파이프라인 처리를 통합한다.

3. 해시 함수(Hash functions)
해시 함수는 “메시지 인증 코드(message authentication code)” 또는 “단방향 함수(one-way function)”라고도 하는 계산 방법으로, 하나의 큰 파일을 더 작은 숫자로 압축해서 되돌리기가 사실상 불가능하도록 한다. 특정 결과나 코드만 보고는 그 코드를 생산하는 파일을 찾는 데 너무 오랜 시간이 걸리기 때문이다.

이런 함수는 블록체인의 필수적인 부분이다. 블록체인은 변조를 추적 및 식별할 수 있도록 데이터에 대한 모든 변경에 이와 같은 함수를 적용한다. 암호화폐 거래의 사기를 방지하는 역할을 하지만 데이터의 일관성을 보장해야 하는 다른 데이터베이스에도 이 기법을 적용하는 경우가 많다. 해시 함수를 추가하면 규정 준수에도 도움이 될 수 있다.

미국 국립표준기술원(NIST)의 보안 해시 알고리즘(Secure Hash Algorithms, SHA)은 널리 사용되는 표준 모음이다. SHA-0 및 SHA-1과 같은 초기 버전에는 알려진 약점이 있지만 SHA-2, SHA-3과 같은 더 최근 버전은 매우 안전한 것으로 평가된다.

4. 디지털 서명(Digital signatures)
RSA, DSA와 같은 디지털 서명은 해시 함수의 변조 탐지 속성과 정보를 인증하는 특정 개인 또는 기관을 결합한, 더 정교한 계산법이다. 디지털 서명은 책임이 있는 당사자만 아는 비밀 키를 근간으로 한다 예를 들어 암호화폐는 자산의 소유권을 해당 키를 아는 사람에 연결한다. 개인 책임성을 추적하는 데이터베이스는 특정 트랜잭션을 검증하는 디지털 서명을 포함할 수 있다.

5. SNARK(Succinct Non-interactive Argument of Knowledge)
간결한 비상호적 지식 인수(SNARK)는 더 정교한 디지털 서명 버전으로, 정보 자체를 노출하지 않으면서 복잡한 개인 정보를 증명할 수 있다. '영지식 증명(Zero Knowledge Proof, ZKP)'이라고도 하는 고급 수학을 기반으로 한다.

SNARK 및 이와 유사한 증명을 채택하는 데이터베이스는 규정 준수를 보장하면서 사용자의 개인정보를 보호할 수 있다. 아주 간단한 예로, 생년월일을 공개하지 않고도 주류를 구매할 수 있는 나이임을 입증하는 디지털 운전면허증이 있다. 현재 백신 여권에 이 기술을 적용하는 방안도 연구되고 있다.

SNAKR 및 기타 비상호적 증명은 활발한 연구가 진행 중인 분야다. 다양한 프로그래밍 언어를 사용한 수십 가지의 알고리즘 구현이 있으므로 신규 프로젝트의 출발점으로 활용하기에 좋다.

6. 동형 암호화(Homomorphic encryption)
전통적인 암호화 알고리즘으로 잠긴 데이터를 사용하는 유일한 방법은 암호화를 해독하는 것이다. 그러나 해독 프로세스는 해독 작업을 수행 중인 컴퓨터에 접근할 수 있는 모든 사람에게 데이터를 노출시킬 수 있다. 동형(Homomorphic) 암호화 알고리즘은 암호화된 정보를 해독하지 않고도 계산을 수행할 수 있도록 설계됐다. 

가장 단순한 알고리즘은 예를 들어 두 개의 암호화된 숫자를 더하는 것과 같은 하나의 연산 작업을 허용한다. 더 정교한 알고리즘은 임의 계산을 할 수 있지만 속도가 크게 떨어지는 경우가 많다. 특정 문제에 대해 가장 효율적인 접근 방법을 찾는 분야에서 많은 연구가 진행 중이다.

이 분야의 연구 개척 기업 가운데 하나인 IBM은 자사 동형 암호화를 iOS 및 맥OS와 통합해주는 툴킷을 출시했다.

7. 연합 처리(Federated processing)
일부 개발자는 데이터 집합을 더 작은 부분으로, 경우에 따라 극단적으로 작게 나눈 다음 이 조각을 많은 수의 독립적인 컴퓨터로 분산한다. 분산 위치가 무작위라서 어떤 컴퓨터에 어떤 레코드가 있는지 예측하기가 불가능한 경우도 있다. 이와 같은 솔루션은 검색 또는 분석 알고리즘을 병렬로 실행하는 방법으로 빅데이터를 사용한 작업 속도를 높이기 위해 설계된 소프트웨어 패키지를 기반으로 하는 경우가 많다. 원래의 의도는 속도였지만 부수적으로 공격에 대한 회복력(resiliency) 증강 효과를 얻었다.

8. 완전 분산 데이터베이스(Fully distributed databases)
데이터 집합을 여러 조각으로 나누는 방법으로 개인정보를 보호할 수 있다면 가령 10억 개나 그 이상의 조각으로 나눌 수도 있지 않을까? 더 보편적인 솔루션은 데이터가 생성 및 사용되는 그 위치에 직접 데이터를 저장하는 것이다. 사용자의 스마트폰에는 여분의 계산 성능과 저장 공간이 풍부한 경우가 많다. 절대적으로 중앙에서 분석 및 처리해야 하는 경우가 아니라면 클라우드의 서버로 보낼 필요 없이 이 방법이 더 빠르고 더 비용 효율적이다.

예를 들어 많은 브라우저는 복잡한 데이터 구조의 로컬 저장을 지원한다. W3C 표준에는 키 및 값, 그리고 관계형 모델을 위한 인덱싱된 버전과 함께 문서 스타일 모델에 대한 로컬 저장이 포함된다.

9. 합성 데이터(Synthetic data)
무작위이면서 동일한 패턴을 따르고 통계적으로 사실상 동일한 방식으로 새 값을 생성함으로써 완전한 합성 데이터를 만드는 방법도 있다. 예를 들어 RTI라는 연구 그룹은 2010년 미국 인구조사 데이터를 사용해 무작위 주소에 거주하는 무작위 사람들로 채워진 버전을 만들었다. 포함된 사람들은 완전히 가상의 사람들이지만 이들의 집 주소와 개인정보는 실제 값과 동일한 통계적 프로파일을 갖는다. 많은 경우 연구원은 알고리즘을 테스트하고 실제 데이터를 사용하는 것과 동일한 수준의 정확도를 제공하는 솔루션을 생성할 수 있다.

10. 중재자와 프록시(Intermediaries and proxies)
데이터 저장에 앞서 데이터 수집과 전처리를 제한하는 도구를 만드는 연구원들도 있다. 예를 들어 모질라의 랠리(Rally)는 인터넷의 정보 흐름을 연구하고자 하는 연구원들의 브라우징 습관을 추적한다. 이 도구는 조사 기간 동안 특수한 애드온을 설치한 다음 기간이 끝나면 제거한다. 랠리는 관계를 공식화하고 수집 및 집계에 대한 규칙을 집행한다.

11. 노 데이터(No data)
스테이트리스(Stateless) 컴퓨팅은 웹의 주된 기반이다. 효율성을 추구한다면 레코드 보관 필요성을 최소화해야 성공적인 결과를 얻는 경우가 많다. 극단적인 경우이긴 하지만 규정상 가능하고 사용자가 덜 개인화된 서비스를 받아들일 의지가 있다면, 데이터베이스를 삭제하는 것으로 대부분의 개인정보 보호 문제가 해결된다. editor@itworld.co.kr


2021.07.14

데이터베이스 보안을 향상시키는 11가지 기술

Peter Wayner | CSO
데이터베이스에는 매우 민감한 내용을 포함한 방대한 양의 개인정보가 저장되므로 책임이 있는 기업이라면 관리에 신경쓸 수밖에 없다. 이제 데이터베이스 개발자는 정교한 도구와 기술을 사용해 정보를 안전하게 지키면서 원하는 작업을 할 수 있다. 비유하자면 살찔 걱정 없이 케이크를 먹을 수 있는 셈이다.
 
ⓒ Getty Images Bank

이와 같은 솔루션에는 정교한 수학이 적용된다. 가장 간단한 메커니즘은 현대판 비밀 코드, 즉 고전적인 디코더 휠의 디지털 버전이라고도 할 수 있다. 더 깊은 수학으로 들어가 높은 유연성과 책임성을 제공하는 더 복잡한 확장 형태도 있다. 연구실에서 수십년 전부터 존재했지만 이제서야 신뢰할 만큼의 안정성에 이른 아이디어를 실제로 구현한 버전이 많다.

이 알고리즘들은 비즈니스 관계를 접합하고 정확한, 사기로부터 안전한(fraud-free) 워크플로우를 보장하기 위한 기반이 되고 있다. 이런 접근 방식은 기업에서 고객의 비밀을 보호하면서 더 간편하게 개인화된 서비스를 제공할 수 있게 해준다. 또한 서비스 제공에 지장을 초래하지 않으면서 데이터 흐름에 대한 규정도 더 철저히 준수할 수 있게 해준다.

데이터베이스 신뢰를 간편하게 해주는 11가지 도구와 기술을 소개한다.

1. 기본 암호화(Basic encryption)
가장 간단한 솔루션으로 충분할 때도 있다. 현대 암호화 알고리즘은 하나의 키로 데이터를 잠가 그 키를 소유한 사람만 데이터를 읽을 수 있도록 한다. 많은 데이터베이스가 AES와 같은 표준을 사용해 데이터를 암호화할 수 있다. 이 솔루션은 절도와 같은 하드웨어 분실에 대비한 가장 강력한 보호 수단이다. 올바른 암호화 키가 없으면 데이터를 열어볼 수 없기 때문이다.

그러나 가동 중인 컴퓨터에 공격자가 침입하는 경우, 대칭 암호화 알고리즘이 보호할 수 있는 범위에는 한계가 있다. 데이터베이스의 정상적인 작업을 허용하는 키를 공격자가 찾아낼 수 있기 때문이다. 많은 데이터베이스는 “미사용(at rest)” 상태의 정보를 암호화하는 옵션을 제공한다. 예를 들어 오라클은 개발자가 해야 할 일이 거의 없다는 점을 강조하기 위해 이 옵션을 “투명한 데이터 암호화(transparent data encryption)”로 지칭한다.

2. 차등 개인정보 보호(Differential privacy)
차등 개인정보 보호 기법은 수학을 다른 방식으로 활용한다. 디지털 금고 안에 정보를 넣고 잠그는 방법 대신 적절한 양의 잡음을 첨가해 어느 레코드가 누구에게 해당하는지 확인하기 어렵게 한다. 잡음을 알맞게 추가하면 평균과 같은 통계 수치가 왜곡되지 않는다. 예를 들어, 데이터 집합의 나이에서 무작위로 몇 년을 더하거나 빼서 평균 나이를 동일하게 유지하면서 나이로 특정인을 찾기가 어렵게 하는 식이다.

이 솔루션은 다양한 영역에 유용하다. 데이터를 연구하고자 하는(보통 평균 및 집단의 크기를 계산함), 신뢰할 수 없는 파트너에게 데이터 집합을 넘겨줄 때 가장 적합하다. 많은 알고리즘은 집계된 통계를 많이 왜곡하지 않으면서 잡음을 첨가한다. 정보 일부가 왜곡된 상태에서도 잘 작동하는 머신러닝 알고리즘을 파악하기 위한 연구가 현재 활발히 진행되고 있다.

마이크로소프트와 구글은 이 알고리즘을 데이터 스토어 및 머신러닝 알고리즘과 통합하는 도구를 제공한다. 예를 들어 구글의 프라이버시-온-빔(Privacy-On-Beam)은 잡음 추가 메커니즘과 아파치 빔(Apache Beam) 파이프라인 처리를 통합한다.

3. 해시 함수(Hash functions)
해시 함수는 “메시지 인증 코드(message authentication code)” 또는 “단방향 함수(one-way function)”라고도 하는 계산 방법으로, 하나의 큰 파일을 더 작은 숫자로 압축해서 되돌리기가 사실상 불가능하도록 한다. 특정 결과나 코드만 보고는 그 코드를 생산하는 파일을 찾는 데 너무 오랜 시간이 걸리기 때문이다.

이런 함수는 블록체인의 필수적인 부분이다. 블록체인은 변조를 추적 및 식별할 수 있도록 데이터에 대한 모든 변경에 이와 같은 함수를 적용한다. 암호화폐 거래의 사기를 방지하는 역할을 하지만 데이터의 일관성을 보장해야 하는 다른 데이터베이스에도 이 기법을 적용하는 경우가 많다. 해시 함수를 추가하면 규정 준수에도 도움이 될 수 있다.

미국 국립표준기술원(NIST)의 보안 해시 알고리즘(Secure Hash Algorithms, SHA)은 널리 사용되는 표준 모음이다. SHA-0 및 SHA-1과 같은 초기 버전에는 알려진 약점이 있지만 SHA-2, SHA-3과 같은 더 최근 버전은 매우 안전한 것으로 평가된다.

4. 디지털 서명(Digital signatures)
RSA, DSA와 같은 디지털 서명은 해시 함수의 변조 탐지 속성과 정보를 인증하는 특정 개인 또는 기관을 결합한, 더 정교한 계산법이다. 디지털 서명은 책임이 있는 당사자만 아는 비밀 키를 근간으로 한다 예를 들어 암호화폐는 자산의 소유권을 해당 키를 아는 사람에 연결한다. 개인 책임성을 추적하는 데이터베이스는 특정 트랜잭션을 검증하는 디지털 서명을 포함할 수 있다.

5. SNARK(Succinct Non-interactive Argument of Knowledge)
간결한 비상호적 지식 인수(SNARK)는 더 정교한 디지털 서명 버전으로, 정보 자체를 노출하지 않으면서 복잡한 개인 정보를 증명할 수 있다. '영지식 증명(Zero Knowledge Proof, ZKP)'이라고도 하는 고급 수학을 기반으로 한다.

SNARK 및 이와 유사한 증명을 채택하는 데이터베이스는 규정 준수를 보장하면서 사용자의 개인정보를 보호할 수 있다. 아주 간단한 예로, 생년월일을 공개하지 않고도 주류를 구매할 수 있는 나이임을 입증하는 디지털 운전면허증이 있다. 현재 백신 여권에 이 기술을 적용하는 방안도 연구되고 있다.

SNAKR 및 기타 비상호적 증명은 활발한 연구가 진행 중인 분야다. 다양한 프로그래밍 언어를 사용한 수십 가지의 알고리즘 구현이 있으므로 신규 프로젝트의 출발점으로 활용하기에 좋다.

6. 동형 암호화(Homomorphic encryption)
전통적인 암호화 알고리즘으로 잠긴 데이터를 사용하는 유일한 방법은 암호화를 해독하는 것이다. 그러나 해독 프로세스는 해독 작업을 수행 중인 컴퓨터에 접근할 수 있는 모든 사람에게 데이터를 노출시킬 수 있다. 동형(Homomorphic) 암호화 알고리즘은 암호화된 정보를 해독하지 않고도 계산을 수행할 수 있도록 설계됐다. 

가장 단순한 알고리즘은 예를 들어 두 개의 암호화된 숫자를 더하는 것과 같은 하나의 연산 작업을 허용한다. 더 정교한 알고리즘은 임의 계산을 할 수 있지만 속도가 크게 떨어지는 경우가 많다. 특정 문제에 대해 가장 효율적인 접근 방법을 찾는 분야에서 많은 연구가 진행 중이다.

이 분야의 연구 개척 기업 가운데 하나인 IBM은 자사 동형 암호화를 iOS 및 맥OS와 통합해주는 툴킷을 출시했다.

7. 연합 처리(Federated processing)
일부 개발자는 데이터 집합을 더 작은 부분으로, 경우에 따라 극단적으로 작게 나눈 다음 이 조각을 많은 수의 독립적인 컴퓨터로 분산한다. 분산 위치가 무작위라서 어떤 컴퓨터에 어떤 레코드가 있는지 예측하기가 불가능한 경우도 있다. 이와 같은 솔루션은 검색 또는 분석 알고리즘을 병렬로 실행하는 방법으로 빅데이터를 사용한 작업 속도를 높이기 위해 설계된 소프트웨어 패키지를 기반으로 하는 경우가 많다. 원래의 의도는 속도였지만 부수적으로 공격에 대한 회복력(resiliency) 증강 효과를 얻었다.

8. 완전 분산 데이터베이스(Fully distributed databases)
데이터 집합을 여러 조각으로 나누는 방법으로 개인정보를 보호할 수 있다면 가령 10억 개나 그 이상의 조각으로 나눌 수도 있지 않을까? 더 보편적인 솔루션은 데이터가 생성 및 사용되는 그 위치에 직접 데이터를 저장하는 것이다. 사용자의 스마트폰에는 여분의 계산 성능과 저장 공간이 풍부한 경우가 많다. 절대적으로 중앙에서 분석 및 처리해야 하는 경우가 아니라면 클라우드의 서버로 보낼 필요 없이 이 방법이 더 빠르고 더 비용 효율적이다.

예를 들어 많은 브라우저는 복잡한 데이터 구조의 로컬 저장을 지원한다. W3C 표준에는 키 및 값, 그리고 관계형 모델을 위한 인덱싱된 버전과 함께 문서 스타일 모델에 대한 로컬 저장이 포함된다.

9. 합성 데이터(Synthetic data)
무작위이면서 동일한 패턴을 따르고 통계적으로 사실상 동일한 방식으로 새 값을 생성함으로써 완전한 합성 데이터를 만드는 방법도 있다. 예를 들어 RTI라는 연구 그룹은 2010년 미국 인구조사 데이터를 사용해 무작위 주소에 거주하는 무작위 사람들로 채워진 버전을 만들었다. 포함된 사람들은 완전히 가상의 사람들이지만 이들의 집 주소와 개인정보는 실제 값과 동일한 통계적 프로파일을 갖는다. 많은 경우 연구원은 알고리즘을 테스트하고 실제 데이터를 사용하는 것과 동일한 수준의 정확도를 제공하는 솔루션을 생성할 수 있다.

10. 중재자와 프록시(Intermediaries and proxies)
데이터 저장에 앞서 데이터 수집과 전처리를 제한하는 도구를 만드는 연구원들도 있다. 예를 들어 모질라의 랠리(Rally)는 인터넷의 정보 흐름을 연구하고자 하는 연구원들의 브라우징 습관을 추적한다. 이 도구는 조사 기간 동안 특수한 애드온을 설치한 다음 기간이 끝나면 제거한다. 랠리는 관계를 공식화하고 수집 및 집계에 대한 규칙을 집행한다.

11. 노 데이터(No data)
스테이트리스(Stateless) 컴퓨팅은 웹의 주된 기반이다. 효율성을 추구한다면 레코드 보관 필요성을 최소화해야 성공적인 결과를 얻는 경우가 많다. 극단적인 경우이긴 하지만 규정상 가능하고 사용자가 덜 개인화된 서비스를 받아들일 의지가 있다면, 데이터베이스를 삭제하는 것으로 대부분의 개인정보 보호 문제가 해결된다. editor@itworld.co.kr


X