Encryption in flight (SSL)
- 전송 중 암호화 (SSL)
- 매우 민감한 기밀 내용인 경우 전송 중 암호화를 사용
예) 신용카드로 온라인 결제를 하려고 할 때 네트워크 패킷이 가는 길에 다른 사람한테 신용카드 번호가 보이지 않도록 - 초록색 자물쇠 그림이 있거나 SSL이 활성화된 웹사이트임을 보장해주는 HTTPS 웹사이트라면 전송 중 암호화가 사용 중인 것
- 전송 중 암호화가 되면 데이터가 전송되기 전에 암호화되고 서버가 데이터를 받으면 복호화됨
전송하는 이와 서버만이 암호화와 복호화를 하는 방법을 알고 있어 SSL 인증서 또는 HTTPS가 암호화를 해줌 - Amazon 서비스는 HTTPS 엔드포인트가 있어 전송 중 암호화를 보장
- 이제 거의 전체 웹이 SSL과 HTTPS에서 실행되어야 함
- 기본적으로 SSL을 활성화하면 중간자 공격으로부터 보호되므로
자물쇠가 있고 서버 인증서가 유효하면 아무도 민감한 정보를 검색할 수 없음 - 예) AWS의 HTTPS 웹 사이트와 통신하려고 할 때
비밀 데이터를 추가하고 SSL 암호화로 암호화한 다음 네트워크를 통해 보내면 웹사이트에서 데이터를 수신한 후
웹 사이트는 복호화하는 방법을 알고 있으므로 이를 복호화
- 모든 프로그래밍 언어가 SSL 암호화와 복호화를 할 수 있고 모든 라이브러리가 이 작업을 해줘서 직접 처리할 필요가 없음
Server side encryption at rest
- 서버 측 저장 데이터 암호화
- 데이터가 서버에 수신된 후 암호화를 하는 것으로 서버가 데이터를 받아서 복호화를 하고
암호 복호화된 형식에 이를 사용헤 암호화된 형태로 데이터를 디스크에 저장 - 혹시라도 서버가 해킹을 당하면 데이터가 복호화되어서는 안되므로 데이터는 클라이언트로 다시 전송되기 전에 복호화됨
- 데이터 키라고 불리는 키 덕분에 데이터는 암호화된 형태로 저장되고
암호키와 해독키는 주로 KMS(Key Management Service)에 따로 보관하므로 서버는 KMS와 통신할 수 있어야 함 - 예) 객체가 있고 이 객체를 EBS로 전송할 때
객체는 어떤 메커니즘으로든 전송되고 EBS는 데이터 키를 사용해 그 데이터의 암호화를 수행하고 암호화된 형태로 저장
이후 데이터를 검색하려고 할 때 데이터 키를 통해 복호화하여 복호화된 데이터가 HTTP, HTTPS를 거쳐 돌아오게 됨
- 즉, 서비스의 서버 자체가 암호화와 복호화를 관리하고 데이터 키를 통해 접근
Client side encryptio
- 클라이언트 측 암호화
- 클라이언트가 데이터를 암호화하고 서버는 그 데이터를 절대 복호화할 수 없고 데이터를 받는 클라이언트에 의해 복호화됨
- 전체적으로 데이터는 서버에 저장되지만 서버는 데이터 내용을 알 수 없음
- 이를 위해 봉투 암호화를 사용
- 객체가 있고 클라이언트는 데이터 키를 사용해 클라이언트 측의 데이터를 암호화한 후 해당 데이터를 데이터 저장소 전송
데이터를 받으면 클라이언트는 암호화된 객체를 받고 데이터 키에 액세스가 있거나 다른 곳으로부터 데이터 키를 찾아
받은 데이터를 복호화하여 복호화된 객체를 얻게 됨
- 즉, 암호화는 클라이언트 측에서 수행되며
서버 데이터 저장소는 데이터를 암호화하거나 복호화할 수 없고 그저 암호화된 데이터를 받기만 할 수 있음
'Cloud > AWS' 카테고리의 다른 글
[SAA] KMS 키 순환 (0) | 2022.04.22 |
---|---|
[SAA] KMS 개요 (0) | 2022.04.21 |
[SAA] AWS 보안 섹션 소개 (0) | 2022.04.21 |
[SAA] AWS 싱글 사인온 (SSO) 개요 (0) | 2022.04.21 |
[SAA] 리소스 액세스 관리자 (RAM) (0) | 2022.04.21 |