1

정보보호개론 - 2

정보보호개론 - 2

노아의 블로그

    목차
반응형

저번주에 간략히 넘어갔던 개념을 조금 더 자세히 보자!!

 

일방향 해시함수 - 어떠한 데이터를 넣어서 작은 값으로 바꾸는것.

여기서 작은 값은 Hash이고, Hash는 입력값에 대한 고유 값이다. 

입력에 대한 값으로 사과를 넣으면 0, (사과에 대한 고유값 0) 바나나 2 (바나나에 대한 고유값 2) 이런식이다.

여기서 해시값은 0과 2라고 할 수 있다. 이렇게 고유한 식별을 나타내어 Fingerprint(지문) 이라고도 부른다.

 

그리고 일방향 해시함수는 방향이 한 방향으로, Data가 Hash가 될 수는 있지만 Hash가 Data가 될 수는 없다.

 

고유한 값을 가지기에, 이것을 가지고 무결성 검증을 진행할 수 있다.

 

Alice는 원본 데이터와, 특정한 일방향 해시 함수 (one way hash function)을 실행한 값 즉 해시를 수신자측에 보낸다.

 

수신자는 원본 데이터를 가지고 송신자가 Hash를 만드는데 사용한 동일한 Hash 알고리즘을 가지고 원본 데이터를 Hash화 한다.

 

수신자는 송신자가 보낸 Hash값과 수신자가 알아낸 Hash값을 비교하여서 데이터의 무결성을 검증한다.

 

Hash함수의 특성으로, 입력에 대한 고유값을 보장하기에 송신자와 수신자의 입력값이 같은경우 결국 무결성이 보장된것이다.

 

이외, 내가 따로 찾아보아하니 one way hash function은 웹 사이트에서도 사용되고 있었다.

 

바로 웹 사이트의 DB에서 Password를 관리할 때 쓰이는건데, 데이터베이스에 비밀번호를 그냥 저장한다면,

혹시 모를 데이터베이스의 유출으로 인해서 비밀번호가 유출될수도 있다.

 

하지만, one way hash function을 사용한다면 말이 다르다. 

비밀번호를 바로 저장하는것이 아니라 해시값을 저장하는것이다!

따라서 로그인 시, user pw가 hash 함수를 거쳐서 Db에 hash 값이 저장이 된다.

로그인 할때는? 동일하게 다시 hash값이 나올것이고 Db에 있는 hash값과 비교해서 로그인 성공/실패를 판별하는것이다..

 

그렇다면 해커가 SQL Injection과 같은 공격을 하더라도 비밀번호가 모두 hash화 되어있어서 아무것도 하지 못한다.

 

왜냐? Hash 함수는 아까 말했든 일 방향성을 가진다고 하였다.. 즉 원본 데이터가 Hash로 될 수 있지만 Hash가 원본 데이터가 될 수 없다는 소리이다!

 

하지만 나는 이것이 100%안전한가? 라는 의문을 가졌다.. 왜냐하면, 결국 해시 알고리즘은 공개가 되어있고

크래커가 이를 악용하여 역으로 해시를 생성하는것이다.

 

입력값을 마구잡이로 생성하여서 해시를 만들고, 이를 탈취한 데이터베이스의 해시와 비교하는것이다..

그렇다면 해시화가 진행되어있어도 해커는 어느 시점에 알아낼 수 있다....!

 

그것이 바로 '레인보우 테이블' 이라는 공격이다.

 

해커는 원본 pw와 그에 해당하는 hash값 한 쌍으로 이루어진 수많은 데이터를 가지는 (해시테이블)데이터베이스를 사전에 구축해두고 

 

탈취한 데이터베이스의 pw와 해커의 데이터베이스의 정보들을 비교하여서 결국 pw를 알아내는 기법이다.

 

하지만 이 기법도 솔트라는 것에 의해 막힌다는데... 너무 내용이 세는 것 같으니 여기서 그만! 일단 여기까지 알아보았다.

 

 

 

자 다음은 Mac이다. Mac 하면 애플이나 Mac주소가 떠오르지만 여기서는 그게 아니고, Message authentication code 이다. 바로 메시지 인증 코드이다.

 

메시지가 인증되었는지, 정말 내가 알던 송신자 한테서 왔는지 그것을 알 수 있도록.. 무결성과 인증 기능을 제공한다.

 

이 Mac도 결국에는 일방향 해시 함수이나, 한가지 추가 되는것이 있다. 바로 Key인데, 여기서 사용되는 키는 저번에 설명했던 대칭 키이다. 

 

 

 

이런식으로 Key만 추가되었다... 나머지 절차는 일방향 해시 함수와 동일하다.

 

송신자는 원본 메시지와 서로간 공유된 비밀키를 해시 함수에 넣고... 나온 해시값을 바로 Mac, Mac값이라고 부른다.

 

송신자는 이제 원본 메시지와 Mac값을 수신자에게 전송하고, 수신자는 원본 데이터와 서로간 공유된 비밀키를 이용해 다시 Mac값을 생성한다. 이제 송신자와 수신자간의 Mac값을 비교하여서 맞으면 올바르게 전송된 것이고, 올바르지 않으면 송신자가 위조되었거나, 메시지가 변조된 것이다.

 

이로서 Mac은 인증과 무결성을 보장한다.

 

 

마지막으로 디지털 서명이다.

 

디지털 서명은 온라인에서의 서명을 의미한다.

디지털 서명은 온라인 상으로의 부인 행위를 방지한다.

 

과정을 살펴보자면, 이것은 또 비대칭 암호(공개키 암호) 기술이 섞여있다.

어떠한 문서가 있고, 그 문서를 송신자의 개인키로 서명을 하는것이다. 즉 암호 과정이 일어난다..

 

그리고 수신자 측은 송신자의 공개키로 서명을 검증한다 복호 과정이 일어난다..

 

여기서 메시지가 커질수록 암,복호 과정이 커지니 이것을 보완하기 위해서 해시 함수를 사용해 고정된 크기의 고유의 값을 부여한다. 그렇게 나온 해시를 송신자의 개인키로 서명하고 검증하는것!

 

송신자 측에서 메시지를 해시함수로 해시값을 만들고, 해시값을 비밀키로 암호화(서명)하고 원본 메시지와 서명값 전송

수신자 측에서 송신자의 공개키로 복호(검증)하고 나온 해시값과 수신받은 메시지를 다시 해시화해서 둘이 비교.

 

맞으면 문제가 없는것, 틀리면 송신자 위조나 데이터가 위조된 것.

 

Key,암호기술을 사용해서 서명 확인(인증),부인 방지를 하고 Hash함수를 사용해서 무결성을 확인한다. 

 

(대칭 암호

공개 키 암호

일방향 해시함수

메시지 인증 코드

디지털 서명

의사 난수 생성기)

 

지금까지 나온 기술들을 종합해서 암호학자의 도구상자라고 한다.

(cryptograpther's toolbox)

 

도청, 메시지변경, 위장, 부인과 같은 보안 위협이 있고,

그에 따른 위협받는 특성이 바로 기밀성, 무결성, 인증, 부인 봉쇄다.

 

이런 위협을 막기 위해서 대칭 암호, 공개 키 암호, 일방향 해시 함수, 메시지 인증 코드, 디지털 서명이 있다.

 

대칭 암호와 공개 키 암호는 기밀성을 유지한다. (책에서는 무결성과 인증까지 연결되어 있는데 이해를 못하겠다.)

 

일방향 해시 함수는 무결성을 보장한다.

 

메시지 인증 코드는 무결성과 인증을 보장한다.. (해시 함수와 대칭 키가 섞여서 이제야 무결성, 무결성이 보장되었다면 인증까지 가능.)

 

디지털 서명은 무결성, 부인 봉쇄 가능

 

암호란 메시지의 내용을 읽지 못하게 하는 기법이며, cryptography다. (대칭 암호, 공개 키 암호)

 

이런 암호와 달리 메시지를 숨기는 방법이 있다. 그것은 steganography(스테가노그라피)다.

나는 Normaltic이라는 해킹에 대한 주제를 다루는 유튜버를 가끔 찾아보았는데 여기서 알게되었다.

 

예를 들어서 우리가 인터넷에서 흔히 볼 수 있는 세로드립도 스테가노그라피 라고 할 수 있다.

 

사랑하는 사람이 있습니다... 그녀에게

실수라도 할까봐 매일이 조마조마 합니다.

은빛이 반짝이는 밤 그녀에게

구만개의 꽃이 피는 정원에서

라면을 

야금야금~~~!! 먹자고 고백할거에요ㅋ

 

평소에 글을 읽는 방법은 가로로 읽지 않는가? 그 방법만을 쓴다면 이 메시지에 있는 시크릿 메시지를 볼 수 없다.

이렇게 메시지를 숨기는 방식을 스테가노그라피라고 한다.

 

각 행의 첫 글자만 읽어본다면? '사실은구라야' 라는 시크릿 메시지를 획득할 수 있다..

하지만 이것이 암호를 대체할수는 없다. 메시지가 존재하는데 그것을 보이지 않도록 숨기는 것이니까... 찾을 수 있다는 사실! 암호보다 안정성이 떨어진다.

 

스테가노그라피는 디지털 워터마킹 기술에 사용되고 있는데, 워터마크라고 한다면.... 초딩때 하던 키네마스터같은게 생각나는데 그런것이 아니라 파일 상에 저작권이나 각종 정보들을 보이지 않도록 처리를 하는것이다.

나중에 문제가 발생한다면 워터마크를 빼서 자신의 소유라고 주장할 수 있는듯?

 

하지만 디지털 워터마킹 기술만으로는 정보를 비밀로 하는것이 불가하니, 암호 + 스테가노그라피로

암호문을 작성하고 스테가노그라피고 암호를 보이지 않게 처리해서 완전한 비밀이 되도록 하는것.

 

 

 

 

 

 

 

 

 

반응형