티스토리 뷰

개요

 

gRPC 에서 SSL/TLS 암호화한 통신을 하는 방법을 정리해본다.

 

1) 우선 여기서 기반이 되는 암호에 대해 간단히 흝어보고

2) 다음엔 SSL/TLS 동작 원리를 이해하고

3) 마지막으로 gRPC 에서 SSL/TLS 어떻게 다루면 알아보려 한다.

* handshake gRPC 알아서 해준다.

 

 

크게 대칭키, 비대칭키, 해시 알고리즘 셋으로 구분해 보았다.

 

이미지 출처 링크: http://bit.ly/2ZWASxl

 


 

 

대칭키 알고리즘 (Symmetric)

 

1) 대표적 알고리즘: AES256

2) 간단한 설명

- 암호를 주고 받을 명이 (이하 앨리스와 밥이라 하겠다) 같은 비밀키 가지고 있는다.

- 앨리스가 메시지를 비밀키로 암호화 하여 보내면, 밥은 같은 비밀키로 복호화 하여 메시지를 확인한다 반대도 가능하다.

3) 장점

- (비대칭키에 비해 상대적으로) 빠르다.

- 일단 암호화 되면 비밀키를 모른다면 복호화하는건 불가능하다고 생각하자

4) 단점

- 애초에 비밀키를 어떻게 나눠가지지?

 

비대칭키 알고리즘 (Asymmetric)

 

1) 대표적 알고리즘: RSA, ECDSA (Elliptic Curve)

2) 간단한 설명

- 앨리스가 비밀키와 공개키 만들어서 공개키를 누구나에게 공개한다. (라임이 좋구나)

- 이를 통해, 앨리스가 보낸 것을 증명하거나, 누구나 앨리스에게 암호화된 메시지를 보낼 있게 된다.

3) 용도1. 서명

- 앨리스는 보내고 싶은 메시지를 해시 알고리즘으로 해시값을 계산해내고, 해시값을 비밀키로 암호화하여 (=서명) 내보낸다

- 밥이 이를 받았다면 앨리스가 보낸것이 맞는지 확인한다

- 메시지를 해시 알고리즘으로  계산한 해시값 == 서명을 앨리스의 공개키로  복호화 ?

4) 용도2. 암호화하여 전달하기

- 밥은 보내고 싶은 메시지를 앨리스의 공개키로 암호화하여 앨리스에게 보낸다.

- 공개키로 암호화된 메시지는 비밀키로만 복호화 가능하다. 비밀키는 앨리스만 가지고 있다.

5) 장점

- 공개키를 대중에게 공개하여도 안전하다

- 용도1, 용도2 같이 사용할 있다.

6) 단점

- CPU 많이 잡아먹는다. 대칭키에 비해 느리다.

 

 

해시 알고리즘 (Hash)

 

1) 대표적 알고리즘: SHA256

2) 간단한 설명

- 바이트의 데이터이건, 기가의 영화 동영상이건 해시 함수를 거치면 동일한 길이의 해시값을 출력한다. 원본 데이터의 지문이라 있다.

- SHA256 이라면 256 비트, 32 바이트의 해시값을 출력해낸다.

- 단방향성이다. , 데이터에서 해시값을 추출해낼 있지만, 반대로 해시값으로 원본데이터를 알아낼 수는 없다.

- 필수 요건으로는 해시값을 계산해내는 속도가 빨라야 한다.

 

반응형

'golang' 카테고리의 다른 글

gRPC SSL/TLS 3. 실제 구현  (9) 2019.07.01
gRPC SSL/TLS 2. SSL/TLS 에 대하여  (0) 2019.07.01
gRPC Error in Golang  (0) 2019.06.27
gRPC Deadline  (0) 2019.06.26
Golang 개발시 Makefile 사용해보기  (0) 2019.06.24
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함