일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GCP
- Android
- rx
- liveData
- MediaSession
- mvvm
- 테스트 자동화
- google play
- RxKotlin
- MotionLayout
- Koin
- node
- paging
- Android 13
- SWIFTUI
- 인앱결제
- Reactive
- PagingLib
- 동영상
- Kotlin
- mysql
- android13
- SwiftUI Tutorial
- list
- MediaPlayer
- Animation
- node.js
- Observable
- junit
- databinding
- Today
- Total
봄날은 갔다. 이제 그 정신으로 공부하자
개인정보 보호법과 개인정보 암호화 방법 본문
서비스의 원활한 유지 관리를 위해 회원을 받는 과정에서 우리는 어쩔 수 없이 회원을 식별할 수 있는 개인정보를 수집하게 됩니다.
이러한 개인정보 수집은 개인정보 보호법에 근거하여 필요한 부분만 수집해야 하며 또한 수집한 개인정보는 암호화하여 철저히 관리해야 합니다.
여기서 우리는 문제에 봉착하게 됩니다.
수집한 개인정보를 어떤 방식으로 암호화하여 관리해야 할지는 정확히 잘 모르거든요?
들은 풍월에 의하면 공개키 방식이 보안이 뛰어난데 조금 느린 단점이 있다던데…
근데 해시 함수 암호화는 뭐지???
등등…
암호화에 대해 검색하다보면 끊임없이 관련된 정보들이 쏟아져 들어오는데…
이제 이러한 정보들 속에서 개인정보를 어떻게 암호화해야할지 난감해지기 시작합니다.
고민할 것 없습니다.
아래 3가지만 정확하게 알면 됩니다.
첫째
우선 우리가 암호화해야 하는 개인정보가 무엇인지 정확히 인지해야 합니다.
개인정보인지 몰라 암호화에서 누락시키거나 개인정보가 아닌데 암호화에 포함시키는 경우가 발생할 우려가 있기 때문 입니다.
개인정보가 아닌데 암호화 시키는건 괜찮지만 누락시키는건 매우 치명적이니 개인정보 범위를 정확하게 인지하는것이 중요합니다.
둘째
각 개인정보를 어떻게 암호화할 것인지? 구분해야 합니다.
개인정보의 종류에 따라 그리고 구간별로 암호화 하는 방법이 다르다는 것을 인지하고 그에 맞게 처리해야 하는 것이 중요합니다.
셋째
개인정보 종류별 그리고 구간별로 사용할 안전하고 강력한 암호화 알고리즘을 찾아 제대로 적용하는 것입니다.
이제 각 부분에 대해 순서대로 알아보도록 하겠습니다.
첫째 (개인정보란? 개인정보의 범위)
개인정보 보호법에서 정의하는 개인정보 중 필요한 부분만 발췌해 보면 다음과 같습니다.
참고: https://www.law.go.kr/법령/개인정보%20보호법
제2조(정의) 이 법에서 사용하는 용어의 뜻은 다음과 같다. <개정 2014. 3. 24., 2020. 2. 4.>
1. “개인정보”란 살아 있는 개인에 관한 정보로서 다음 각 목의 어느 하나에 해당하는 정보를 말한다.
가. 성명, 주민등록번호 및 영상 등을 통하여 개인을 알아볼 수 있는 정보
나. 해당 정보만으로는 특정 개인을 알아볼 수 없더라도 다른 정보와 쉽게 결합하여 알아볼 수 있는 정보. 이 경우 쉽게 결합할 수 있는지 여부는 다른 정보의 입수 가능성 등 개인을 알아보는 데 소요되는 시간, 비용, 기술 등을 합리적으로 고려하여야 한다.
다. 가목 또는 나목을 제1호의2에 따라 가명처리함으로써 원래의 상태로 복원하기 위한 추가 정보의 사용ㆍ결합 없이는 특정 개인을 알아볼 수 없는 정보(이하 “가명정보”라 한다)
1의2. “가명처리”란 개인정보의 일부를 삭제하거나 일부 또는 전부를 대체하는 등의 방법으로 추가 정보가 없이는 특정 개인을 알아볼 수 없도록 처리하는 것을 말한다.
...
개인 정보 보호 원칙
우리는 이러한 개인정보를 안전하게 보호하기 위해 아래와 같은 보호 원칙을 준수해야 합니다.
제3조(개인정보 보호 원칙) ① 개인정보처리자는 개인정보의 처리 목적을 명확하게 하여야 하고 그 목적에 필요한 범위에서 최소한의 개인정보만을 적법하고 정당하게 수집하여야 한다.
② 개인정보처리자는 개인정보의 처리 목적에 필요한 범위에서 적합하게 개인정보를 처리하여야 하며, 그 목적 외의 용도로 활용하여서는 아니 된다.
③ 개인정보처리자는 개인정보의 처리 목적에 필요한 범위에서 개인정보의 정확성, 완전성 및 최신성이 보장되도록 하여야 한다.
④ 개인정보처리자는 개인정보의 처리 방법 및 종류 등에 따라 정보주체의 권리가 침해받을 가능성과 그 위험 정도를 고려하여 개인정보를 안전하게 관리하여야 한다.
⑤ 개인정보처리자는 개인정보 처리방침 등 개인정보의 처리에 관한 사항을 공개하여야 하며, 열람청구권 등 정보주체의 권리를 보장하여야 한다.
⑥ 개인정보처리자는 정보주체의 사생활 침해를 최소화하는 방법으로 개인정보를 처리하여야 한다.
⑦ 개인정보처리자는 개인정보를 익명 또는 가명으로 처리하여도 개인정보 수집목적을 달성할 수 있는 경우 익명처리가 가능한 경우에는 익명에 의하여, 익명처리로 목적을 달성할 수 없는 경우에는 가명에 의하여 처리될 수 있도록 하여야 한다. <개정 2020. 2. 4.>
⑧ 개인정보처리자는 이 법 및 관계 법령에서 규정하고 있는 책임과 의무를 준수하고 실천함으로써 정보주체의 신뢰를 얻기 위하여 노력하여야 한다.
둘째 (개인정보 종류별 & 구간별 암호화 방법)
이제 위에서 설명한 개인정보를 어떻게 암호화할 것인지? 구분해야 합니다.
개인정보의 종류에 따라 그리고 구간별로 암호화 하는 방법이 다르다는 것을 인지하고 그에 맞게 처리 & 관리하는 것이 중요합니다.
“2020년 12월 개정된 개인정보 보호 위원회의 개인정보 암호화 조치 안내를 보면 법령”을 보면 개인정보의 종류 그리고 구간에 따라 아래 표와 같이 관리하도록 기준을 정하고 있습니다.
비밀번호와 같은 정보는 해시함수로 암호화하여 저장하고 나머지 개인정보는 암호화하여 저장할 것을 권고합니다.
암호화는 크게 일방향 암호화와 양방향 암호화가 있는데
- 일방향 암호화는 해시 함수 암호화같이 암호화는 가능하지만 복호화가 불가능한 방식을 말하며
- 양방향 암호화는 키를 사용해 암호화와 복호화가 가능한 방식입니다.
양방향 암호화는 키를 사용하는 방식에 따라 다시 대칭키 암호화와 비대칭키(공개키) 암호화로 구분됩니다.
- 대칭키 암호화는 암호화키와 복호화키가 동일하며 암호화와 복호화 속도가 빠른 장점이 있습니다.
- 비대칭키 암호화는 암호화키와 복호화키가 서로 다르며 속도는 대칭키 암호화보다 떨어지지만 보안상의 장점이 더 높습니다.
셋째 (암호화 알고리즘에 대한 설명)
이제 우리는 개인정보의 종류와 암호화 방법에 대해 알게 되었으므로 안전하고 강력한 암호화 알고리즘을 찾아 제대로 적용하는 것만 남았습니다.
각 암호화 방식별로 대표적인 알고리즘을 정리하면 아래와 같습니다.
“2020년 12월 개정된 개인정보 암호화 조치 안내서”에 따르면
공공기관은 국가정보원의 검증대상 암호 알고리즘을 기반으로, 민간부문(법인, 단체, 개인)은 국내.외 전문기관(KISA, NIST, ECRYPT, CRYPTREC 등)이 권고하는 암호 알고리즘을 기반으로 “개인정보 보호법”상의 개인정보 암호화에 사용할 수 있는 안전한 암호 알고리즘의 예시를 아래 표와 같이 정리하고 있습니다.
이제 우리는 이 알고리즘을 찾아 우리의 서비스에 적용하기만 하면 됩니다. ^^
끝입니다. 라고 하기에는 조금 아쉬우니…
각 암호화 알고리즘에 대해 좀 더 설명하도록 하겠습니다.
대칭키 암호화 알고리즘
대칭키 암호화 방식의 특징은 다음과 같습니다.
- 암호화와 복호화에 동일한 키 사용
- 다른 암호화 알고리즘에 비해 빠른 처리 속도를 갖음.
- 암호화키의 길이가 공개키 보다 상대적으로 작아 일반적인 정보의 기밀성을 보장하기 위한 용도로 사용됨.
공개키 암호화 알고리즘
- 암호화와 복호화에 서로 다른 키 사용
- 공개키 방식에 비해 처리 속도가 느림.
- 대칭키 암호화 방식의 키분배나 전자 서명등에 사용됨.
해시 함수 암호화 알고리즘
- 암호화만 가능하고 복호화 불가능함.
- 비밀번호와 같이 값의 정확성 검증이 필요한 경우에만 사용됨.
정리
첫째, 개인정보란? 개인정보 보호 법령에 정해져 있고 갱신되니 담당자라면 잘 챙겨보는 것이 좋습니다.
둘째, 개인정보의 종류 및 사용 구간에 따라 암호화 방법을 달리해야 합니다.
셋째,
비밀번호는 해시 함수 암호화 알고리즘을 사용하고
DB에 저장되는 정보는 대칭키 암호화 알고리즘을 사용하고
주고 받는 정보와 대칭키 전달 및 관리는 공개키 암호화 알고리즘을 사용하는 것이 안전합니다.
비밀번호 암호화에 대해 자세한 내용은 아래 글 참조
https://als2019.tistory.com/86
https://als2019.tistory.com/87
'보안' 카테고리의 다른 글
패스워드 암호화에 적합한 해시 함수들 (0) | 2021.12.29 |
---|---|
패스워드 암호화 (2) | 2021.12.22 |
내가 만든 앱은 내가 지키자! (앱 위변조 방지) 3/3 (0) | 2021.12.01 |
내가 만든 앱은 내가 지키자! (루팅감지, 디버깅감지) 2/3 (1) | 2021.11.15 |
내가 만든 앱은 내가 지키자! (시큐어 코딩, 난독화) 1/3 (1) | 2021.11.10 |