728x90

 

같이 일하는 후배분들에게 PKI 기본 개념을 설명해 주기 위해서 만들었던 자료입니다. 기왕 만든 김에 공개해 볼까 합니다. (10년도 더 전에 했던 내용을 정리한 거라 요즘 트렌드랑은 안 맞을 수도 있지만 기본이야 어디 가겠습니까? ㅎㅎ) 

PKI 는 Public Key Infrastructure 의 약자 입니다. 그대로 해석해서 '공개 키 기반' , 또는 '공개 키 인프라' 라고 해석할 수가 있습니다.  

 

 

 
RFC 2459 바로 그 표준에 관한 문서입니다. 이 문서를 보시면 PKI 에 관한 상세한 내용을 다 아실 수가 있습니다. 예전에 눈에 모래바람이 일어날 정도로 열심히 봤던 기억이 나는군요. X.509 는 인증서 포맷을 의미합니다.


 

 


이 PKI 기반을 이해할려면 3가지 기본적으로 알고 있어야 하는게 있습니다. 바로 위의 세가지 입니다. 보통 '해쉬 함수' 라고 불리는 Message Digest 와 (그렇지만 일반적으로 Computer Science 에서 부르는 Hash 는 Data Structure 에서 쓰이는 형식을 의미 하기 때문에 보안쪽에서 쓰이는 '해쉬 함수'는 Cryptographic Hash Function 이라고 구별해서 부릅니다. ) 대칭키 (Symmetric Key Algorithm) 과 비 대칭키 (Asymmetric Key Algorithm) 입니다. 

 

 


해쉬 (Cryptographic Hash - 암호화 해쉬) 함수입니다. 주로 하는일은 메시지 축약 (Message Digest) 입니다. 아무리 긴 파일이라도 간단하게 축약시킵니다. 대표적인 암호화 해쉬 알고리즘으로는 MD5 와 SHA-1 이 있습니다. MD5 는 128bit 이고 SHA-1 은 160bit 입니다. 즉 결과가 MD5 는 16바이트 , SHA-1 은 20 바이트로 나온다는 것입니다.
사실 토렌트를 사용하시는 분이면 이 암호화 해쉬가 사용된 부분을 심심치 않게 볼 수가 있습니다. 토렌트상에 존재하는 영화파일들은 파일 이름을 자기 맘대로 정할수가 있기 때문에, 이 해쉬값으로 같은 파일인지 체크할 수가 있습니다. 즉 파일 이름이 다르더라도, 크기와 해쉬값이 같다면 같은 파일이라고 볼 수 있다는 것이지요. 
 

 

 


일반적으로 '암호화' , '복호화' 라는 말을 쓰긴 합니다. 그런데 이 용어는 나중에 전자서명쪽을 설명 하다보면 혼선을 줄 수가 있습니다.  따라서 Encryption 과 Decryption 이라는 용어로 통일하기로 합니다.  무엇인가 변경을 가하는 것을 인크립션 (Encryption) 이라 하고, 변경된 것을 다시 원 상태로 돌리는 것을 디크립션(Decryption) 이라고 보시면 됩니다. 

 

 

 
대칭키 알고리즘 입니다. 말 그대로 키를 한개만 이용하는 것을 말합니다. 즉 인크립션 (Encryption) 과 디크립션 (Decryption) 시 한개의 같은 키를 이용합니다. (원리만 설명하는 것이니 패딩이니 , 이니셜 벡터니 하는 것을 건너 뛰겠습니다) 일반적으로 영화 같은데서 나오는 암호관련한 비밀번호 원리는  거의 이것에 해당합니다. 물론 유닉스의 비밀번호는 단방향이라 암호화 해쉬 함수를 쓰긴 합니다만. 무엇인가 암호화 된 것을 풀어낸다는 말이 나온다면 거의 이것을 의미합니다. 알고리즘 자체는 바이트열에 대해서 XOR 연산등을 적용하는 것들이 대부분 이기 때문에 속도가 빠른편에 속합니다. 트리플 데스 (3DES) 나 AES 가 대표적인 알고리즘 입니다. 

 

 


바로 이런식으로 활용됩니다. 평문(Plain Text) 는 아무 변조가 가해지지 않은 글을 의미합니다. 원본이라고 보셔도 무방합니다. 일반적으로 누구나 볼 수 있는 문서 같은 의미로 받아들이면 됩니다. 반면 싸이퍼 텍스트(Cipher Text)는 변조된 문서입니다. 암호문이라고도 볼 수 있습니다. 내용을 알아볼 수가 없는 문서라고 보시면 됩니다.
이런 변경은 양방향이며 인크립션 (Encryption)과 디크립션 (Decryption)시 같은 대칭키 (Symmetric Key)를 이용합니다.

 

 

 
비대칭키 알고리즘 (Asymmetric Key) 입니다. 대칭키가 아니라는 말입니다. 이 알고리즘은 두개의 키를 이용합니다. 개인키 (Private Key)와 공개키 (Public Key) 가 바로 그것입니다. 키를 두개 쓰기 때문에 '대칭키가 아니다' 라는 비대칭키 알고리즘이라고 합니다. 이 알고리즘은 인크립션(Encryption)과 디크립션(Decryption)시 서로 다른 키를 씁니다.  대표적인 알고리즘으로 RSA가 있습니다. 세사람의 이름을 따서 부릅니다. 이 알고리즘은 소수(Prime Number: 1과 그 자신외에는 나눠지는 수가 없는 수)를 이용합니다. 따라서 조금 긴 내용을 인크립션(Encryption) 이나 디크립션 (Decryption)하면 시간이 걸립니다. 이 알고리즘의 근거는 리만 가설에 근거하기 때문에 미드 넘버스(Numbers) 에서는 이 가설을 깨서 모든 보안 상황을 다 제거하는 내용도 등장합니다. (뭐 현실은... -ㅅ- )

 

 

 


평문 (Plain Text)를 공개키(Public Key) 를 이용해서 인크립션(Encryption)합니다. 여기서 싸이퍼 텍스트(Cipher Text)라는 말을 안쓰고 Encrypted Text 라는 용어를 쓴것은 이게 딱히 암호화다 아니다 라고 말하기가 애매하기 때문입니다. 바로 뒷 장에 개인키(Private Key)를 이용해서 인크립션(Encryption)하는 내용도 나오기 때문입니다. 그림에서 보듯이 공개키(Public Key)를 이용해서 인크립션(Encryption)을 한다면 다시 디크립션(Decryption)할려면 꼭 쌍이 이루어 지는 개인키(Private Key)를 이용해야 합니다. 

보통 공개키를 가지고 인크립션을 하능 경우는 원하는 상대만 풀어주기를 바라기 때문에 암호화쪽에서 많이 씁니다. 그래서 통칭 공개키 '암호화', 개인키 '복호화' 라는 용어를 쓸때도 있습니다. (절대적인것이 절대 아닙니다) 

 

 


이 부분은 개인키(Private Key)를 가지고 인크립션(Encryption) 하는 경우입니다. 역시나 Encrypted Text 를 쌍이 되는 공개키(Public Key)로 풀어줍니다. 개인키 (Private Key)는 개인만 가지고 있고 공개키(Public Key)는 공개적으로 공개가 되어 있다는 가정하에 이러한 케이스는 개인이 보낸 내용을 증명할 때 많이 쓰입니다.  따라서 이러한 경우를 보통 개인키'전자서명' , 공개키 '서명 검증' 이라고 불립니다. 


 

 



이런 내용의 기반이 되는 가정이 있습니다. 바로 이름 그대로의 '공개키(Public Key)' 와 '개인키(Private Key)' 입니다. 

 

개인키 (Private Key) 
오직 개인 혼자만이 가지고 있는 키 입니다. 누구에게도 공유하지 않고 자기 자신만 가지고 있습니다. 

공개키 (Public Key)
공개적으로 공개가 되어 있는 키입니다. 누구나 이 공개키를 얻을 수 있습니다. 

 


위와 같은 가정하에서 A 라는 사람만 풀어볼 수 있는 내용을 전달하고 싶으면, 만천하에 공개되어 있는 공개키로 인크립션 (Encryption) 한다면 , 그 당사자만 풀어볼 수가 있습니다. (A의 개인키는 A만 가지고 있으니까요) 

또 A 라는 사람이 어떠한 문서를 보냈다는 것을 확인하고 싶다면, A의 개인키로 인크립션 (Enctyption) 한 내용을 추가하면 됩니다. 그러면 공개키로 디크립션(Decryption) 해서 A 가 보냈는지 증명할 수가 있습니다.   

이 두가지가 바로 공개키 암호화 와 전자서명의 원리입니다. 그리고 이런 공개키 암호화와 전자서명을 사용할 수 있게 기반을 마련해둔 것이 PKI (Public Key Infrastructure) 입니다. 

 

 


그러면 실제세계에서 어떻게 쓰이는지 알아보기로 합니다. 설명에서 잠깐 언급했듯이 비대칭키 알고리즘은 대칭키 알고리즘에 비해서 많이 느립니다. 이 속도차이 때문에 현실세계에서는 살짝 복잡한 구조를 이용합니다. 

 

 


공개키 암호화에 쓰이는 포맷입니다. 물론 이보다 더 자세히 들어가면 더 복잡해지지만, 일단 이정도로 개념을 알고 있어도 충분할 것입니다. 앞에서 설명했듯이 공개키 암호화의 핵심은 받을 당사자만 풀어볼 수 있게 당사자의 공개키로 내용을 인크립션 (Encryption) 하는 것이 목적입니다.

그런데 위의 그림을 보면 임시 대칭키를 생성합니다. 이 이유가 바로 속도 차이입니다. 평문 (Plain Text) 가 만약 크기가 많이 크다면 이를 공개키를 이용해서 Encrypt 하는데 시간이 많이 걸립니다. 그래서 임시 대칭키를 자동으로 생성하고 이 대칭키로 평문 (Plain Text)을 Encrypt 해서 싸이퍼 문(Cipher Text)로 변경합니다. 그리고 그 생성한 대칭키를 메시지를 받을 A의 공개키(Public Key)로 Encrypt 합니다. (이 Encrypt 된 임시 대칭키를 풀 수 있는 사람은 세상에 A 본인 밖에 없습니다) 그래서 'Cipher Text' 와 A의 공개키로 Encrypt 한 'Encrypted Key' 를 한꺼번에 A에게 보내면 A는 'Encrypted Key'를 자신의 개인키 (Private Key) 로 Decrypt 해서 임시 대칭키를 얻어내고 그 임시 대칭키로 다시 Cipher Text 를 Decrypt 합니다. 그러면 평문(Plain Text)를 얻어낼 수 있는 것이지요. 

 

 


전자서명 프로세스의 간단한 설명입니다. 전자서명은 보낸 당사자가 보냈다는 것을 확인하는 절차입니다. 즉 평문 (Plain Text) 자체를 Encrypt 할 필요가 없다는 것입니다. 따라서 평문(Plain Text)를 암호화 해쉬 함수 (Cryptographic Hash Function) 로 축약을 하고 그 축약된 결과를 개인키(Private Key)로 Encrypt 합니다. 이 것을 Signature 라고 편의상 부르기로 합니다. (16 바이트 아니면 20바이트를 Encrypt 하기 때문에 속도가 빠릅니다) 이 Encrypt 한 결과와 평문(Plain Text)을 함께 받을 사람에게 보냅니다. 그러면 메시지를 받는 사람은 보낸 사람의 공개키(Public Key)를 구해서 (공개키 이기 때문에 쉽게 구할 수가 있습니다) Signature 를 Decrypt 합니다. 그러면 축약된 결과가 나오면 같이 들어 있는 평문 (Plain Text) 을 암호화 해쉬 함수로 축약을 하고 그 결과를 앞에서 Signature 를 Decrypt 한 결과와 비교합니다. 같다면 A 가 보낸 문서임을 확신할 수가 있는 것입니다. 말 그대로 서명을 확인 하는 것입니다. 


 

 


자 그렇다면 '공인 인증서'란 무엇일까요? 인터넷 뱅킹을 이용한다면 필수적으로 사용할 수밖에 없는 '공인 인증서' 그것에 관해서 이야기 해 보겠습니다. 

 

 


PKI 의 기본 가정중에서 개인키(Private Key)는 자신만이 소유하고, 공개키 (Public Key)는 공개해서 다른 사람도 쉽게 구할 수 있다고 했었습니다. 사실 PKI 란 이런 일이 쉽게 가능하도록 인프라를 갖춰두는 것입니다. 

 

 


그래서 공인 인증 기관이 등장하는 것입니다. 인증서 비밀번호니, 인증서를 다운 받는다는 둥, 모든 것이 인증서에 집중되어 있는 것처럼 보이지만 사실 가장 중요한 것은 개인키(Private Key)입니다. 보안회사들이나 은행권들은 저 개인키(Private Key)의 존재를 숨기고 싶어서 숨긴것이 아니라, 이 PKI 개념 자체를 설명하기가 부담스러워서 숨긴 것입니다. (사실 은행의 담당자들도 제대로 알지 못할것입니다 ㅎㅎ) 

 

 


그래서 공인 인증 기관은 인증서를 발행하는 것이 주요 업무가 아니라 실은 개인키와 공개키 쌍을 만들고 자신이 그 키들을 만들었다고 인증서를 발행하는 것입니다. 

즉 제일 중요한 개인키(Private Key)와 공개키(Public Key) 쌍을 만들고, 그 개인키(Private Key)를 공인 인증 기관에서 적법한 절차를 통해서 만들었다고 인증서를 발행하는 것입니다. (명품백이나 보석류를 사면 주는 인증서나, 강아지 분양 보증서 등등하고 연관 지어보면 명확할 것입니다) 그 개인키(Private Key) 를 보증하기 위해서 그 쌍이 되는 공개키(Public Key)가 바로 인증서에 들어 있습니다. 그리고 그 인증서를 공인 인증 기관이 정식으로 발행했다는 것을 알리기 위해서 '공인 인증 기관의 전자 서명'이 바로 인증서에 들어 있습니다. (그리고 인증서의 대상, 유효기간 등등도 포함되어 있습니다.) 그리고 나서 이 인증서는 신청한 사람한테만 주는 것이 아니라, 공개된 위치에 저장해서 요청하는 사람에게 내려보내 줄 수 있는 시스템이 갖춰져 있습니다. (보통 공인 인증 기관의 LDAP 에 저장됩니다) 

그래서 은행에서 발급받는 '공인 인증서'라는 것은 실은 '개인키 + 인증서' 쌍으로 되어 있습니다. 못 믿겠으면 Windows 사용자 분들은 NPKI 폴더를 뒤져서 자신의 CN 폴더 안에 저장된 파일들을 살펴보세요. 

 

 


그러면 공개가 원칙인 인증서에 왠 비밀번호 인가? 라는 생각이 드실만 할것입니다. 이제 지금까지 설명을 통해서 대충 눈치를 채셨겠지만, 바로 개인키 (Private Key)에 대한 비밀번호입니다. 

 

 


개인만이 소유해야 하는 개인키(Private Key)가 아무런 보안 장치 없이 공개되어 있으면 곤란하겠지요? 그래서 개인키(Private Key)에는 기본적으로 저장하는 형식이 있습니다. (물론 비밀번호를 필요로 하는 형식입니다) PKCS7 이나 PKCS12 가 바로 그것입니다. 

 

 


이상으로 길고 긴 글을 마치게 되었습니다. 이걸 통해서 PKI 를 다 이해할 수 있을 것이라고는 생각하지 않고 만들었습니다. 다만 같이 일하게 되는 후학들에게 PKI 의 기본 개념을 조금이라도 쉽게 설명하고 싶어서 작성한 KeyNote 입니다. 이 블로그에 올리는 이유는 혹시라도 이 내용을 바탕으로 또 다른 사람에게 이 자료를 가지고 설명할 때 설명이 조금이라도 매끄러우면 좋겠다고 사족을 달아둔 것입니다. 올려둔 그림으로 충분하리라 판단하지만 KeyNote 원본을 요청하실 분은 메일 주소를 달아 주시거나, 아니면 제가 전달할 수 있는 다른 방법을 찾아보겠습니다. 

 

출처 : https://crazia.tistory.com/entry/PKI-PKI-%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%EA%B0%84%EB%8B%A8-%EC%84%A4%EB%AA%85

'IT > 정보보안' 카테고리의 다른 글

해시 알고리즘의 조건  (0) 2021.09.14
PKI(Public Key Infrastructure, 공개키 기반구조)의 구성요소  (0) 2021.09.14
전자서명 요구조건  (0) 2021.09.13
RSA 키 교환 알고리즘  (0) 2021.09.13
커버로스(Kerberos)  (0) 2021.09.13
728x90

① 서명자 인증(Authentication) : 전자서명을 생성한 서명인을 검증 가능(서명자의 공개키로)
② 부인방지(Non-Repudiation) :  서명인은 자신이 서명한 사실을 부인 불가
③ 위조불가(Unforgeable) : 서명인의 개인키가 없으면 서명을 위조하는 것은 불가함
④ 변경불가(Unalterable) : 이미 한 서명을 변경하는 것은 불가
⑤ 재사용불가(Not-Reusable) :  한 문서의 서명을 다른 문서의 서명으로 재사용 불가
⑥ 재생방지(Replay Protection) : 메시지를 유일하게 하기 위해 연속번호 또는 타임스탬프(Timestamp)를 포함시킨다면 수신자가 검사하여 메시지가 탈취되거나 재생되지 않았음을 보장할 수 있음(재생공격에 강하게 함)
⑦ 무결성 (Integrity) 기능 제공 : 문서내용 변경 여부를 확인할 수 있어야 함

728x90

<RSA(Revest, Adi Shamir, Leonard Adelman) 키 교환 알고리즘>


Rivest, Adi Shamir, Lernard Adelman이 설계하였으며 소인수분해의 어려움에 기반을 둔 공개키 암호 알고리즘이다. RSA 방법은 공개키 암호화 기법으로 송신자는 수신자의 공개키를 이용해서 암호화를 수행하고 수신자는 전송된 암호문을 자신만 보유한 수신자의 개인키를 사용하여 복호화를 수행하는 방법이다. 즉, 공개키로 암호화를 수행하고 개인키로 복호화를 수행하는 공개키 암호화 알고리즘의 원칙을 준수한다는 것이다.

아래는 위키백과 내용입니다.

-----------------------------------------------------------------------------------------------------------------------------------

RSA 암호는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게 하였다.

1978년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 애들먼(Leonard Adleman)의 연구에 의해 체계화되었으며, RSA라는 이름은 이들 3명의 이름 앞글자를 딴 것이다. 이 세 발명자는 이 공로로 2002년 튜링상을 수상했다. 그러나 RSA 방식을 제일 먼저 개발한 사람은 영국 GCHQ에 근무하던 수학자였으며, 이보다 빠른 1973년도에 개발하게 된다. 이 내용은 GCHQ에서 비밀로 취급되었으며, 이후 1997년 세상으로 발표되게 된다.

RSA 암호체계의 안정성은 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 기반을 두고 있다. 그러므로 큰 수의 소인수 분해를 획기적으로 빠르게 할 수 있는 알고리즘이 발견된다면 이 암호 체계는 가치가 떨어질 것이다. 1993년 피터 쇼어는 쇼어 알고리즘을 발표하여, 양자 컴퓨터를 이용하여 임의의 정수를 다항 시간 안에 소인수 분해하는 방법을 발표하였다. 따라서 양자 컴퓨터가 본격적으로 실용화되면 RSA 알고리즘은 무용지물이 될 것이다. 그러나 양자 컴퓨터가 이 정도 수준으로 실용화되려면 아직 여러 해가 더 필요할 것으로 보인다.

RSA 암호화 알고리즘은 1983년에 발명자들이 소속되어 있던 매사추세츠 공과대학교(MIT)에 의해 미국에 특허로 등록되었고, 2000년 9월 21일에 그 특허가 만료되었다.

RSA는 두 개의 키를 사용한다. 여기서 키란 메시지를 열고 잠그는 상수(constant)를 의미한다. 일반적으로 많은 공개키 알고리즘의 공개키(public key)는 모두에게 알려져 있으며 메시지를 암호화(encrypt)하는데 쓰이며, 암호화된 메시지는 개인키(private key)를 가진 자만이 복호화(decrypt)하여 열어볼 수 있다.

공개키 알고리즘은 누구나 어떤 메시지를 암호화할 수 있지만, 그것을 해독하여 열람할 수 있는 사람은 개인키를 지닌 단 한 사람만이 존재한다는 점에서 대칭키 알고리즘과 차이를 가진다.

RSA는 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없도록 디자인되어 있다.

보다 이해하기 쉬운 예를 들자면, A라는 사람에게 B라는 사람이 메시지를 전하고자 할 때 B는 A의 열린 자물쇠를 들고 와 그의 메시지를 봉인(공개키 암호화 과정에 해당)하고, 그런 다음 A에게 전해 주면, 자물쇠의 열쇠(개인키에 해당)를 가지고 있는 A가 그 메시지를 열어보는(개인키 복호화 과정에 해당) 식이 된다. 중간에 그 메시지를 가로채는 사람은 그 열쇠를 가지고 있지 않으므로 메시지를 열람할 수 없다.

메시지와 공개키 모두를 알 수 있다면 변조된 메시지를 보낼 수 있기 때문에, 실제로는 수신측의 공개키만을 사용하여 암호화하는 경우는 드물다. 송수신 양측의 키쌍을 사용하는 방법으로는 A의 개인키로 암호화 -> B의 공개키로 암호화 한 메시지를 전달하고 복호화 과정은 B의 개인키로 복호화 -> A의 공개키로 복호화로 구성된 방식이 일반적이다. RSA의 디자인 상, 그 열쇠(개인키에 해당)는 자물쇠의 형태(공개키에 해당)만 보고서는 쉽게 제작할 수가 없게 되어 있다.

'IT > 정보보안' 카테고리의 다른 글

PKI 의 기본 개념 간단 설명  (0) 2021.09.13
전자서명 요구조건  (0) 2021.09.13
커버로스(Kerberos)  (0) 2021.09.13
AES(Advanced Encryption Standard)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
728x90

티켓 발급 서버(TGS : Ticker Granting Server)를 사용하며, TTP(Trusted Third Party) 방식이다. TGS에서 발급받은 티켓을 사용하여 서버 인증을 하며 대칭키 암호 방식을 사용한다. 키 분배 센터를 통해 메시지 인증을 할 수 있으므로 MITM 공격이 불가능하다.

 

장점

커버로스는 당사자와 당사자가 인증을 요청하는 서비스 간의 통신 내용을 암호화 키 및 암호 프로세스를 이용하여 보호하기 때문에 데이터의 기밀성과 무결성을 보장할 수 있다.

 

단점

커버로스는 모든 당사자와 서비스의 암호화 키를 키 분배 센터에서 가지고 있기 때문에 키 분배 센터가 단일 오류 지점(Single point of failure)이 되어 키 분배 센터에 오류가 발생하면 전체 서비스를 사용할 수 없다. 또한 커버로스 시스템에서는 사용자의 비밀키가 사용자의 워크스테이션에 임시로 저장되기 때문에 사용자의 워크스테이션에 침입하는 침입자에 의하여 유출될 수 있으며, 사용자의 세션키도 사용자의 워크스테이션에 임시로 저장되기 때문에 침입에 취약하다. 커버로스는 패스워드 추득(Password guessing) 공격에 취약하며, 사용자가 패스워드를 바꾸면 비밀키도 변경해야 하는 번거로움이 있다.

'IT > 정보보안' 카테고리의 다른 글

전자서명 요구조건  (0) 2021.09.13
RSA 키 교환 알고리즘  (0) 2021.09.13
AES(Advanced Encryption Standard)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
728x90

① 대칭키 알고리즘 중 하나이다.

② DES의 단점을 극복하기 위해 공모를 통해 만들어진 암호화 기법, 현 미국 표준 암호화 알고리즘이다.

③ 공모 시 규칙 : 공개적으로 밝혀야 함. 로열티 없이 사용 가능. 128Bit 블록을 위한 대칭적인 블록암호이어야 함. 128, 192, 256Bit의 키 길이를 제공해야 함. 10/12/14 Round

④ Rijndael 알고리즘을 사용한다.

⑤ AES 선정 기준 : Security, Speed, Robustness

⑥ H/W, S/W의 구현이 용이하고 Smart Phone 등 Mobile 단말기 암호화에 좋다.

'IT > 정보보안' 카테고리의 다른 글

RSA 키 교환 알고리즘  (0) 2021.09.13
커버로스(Kerberos)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
728x90

<암호문 공격방식>

① 암호문 단독 공격(Ciphertext Only Attack)

 : 암호 해독자는 단지 암호문 C만을 갖고, 이로부터 평문 P나 키 K를 찾아내는 방법이다. 평문 P의 통계적 성질, 문장의 특성 등을 추정하여 해독한다.

② 기지 평문 공격(Known Plaintext Attack)

 : 암호 해독자는 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법이다. 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해독한다.

③ 선택 평문 공격(Choosen Plaintext Attack)

 : 암호 해독자가 사용된 암호기에 접근할 수 있다. 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법이다.

④ 선택 암호문 공격(Choosen Ciphertext Attack)

 : 암호 해독자가 암호 복호기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어내 암호를 해독하는 방법이다.

'IT > 정보보안' 카테고리의 다른 글

커버로스(Kerberos)  (0) 2021.09.13
AES(Advanced Encryption Standard)  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
블록암호화 공격 기법  (0) 2021.09.01
728x90

<스테가노그래피> - 비밀통신(메시지 존재 자체를 은닉)
스테가노그래피(steganography)는 전달하려는 기밀 정보를 파일, 메시지, 이미지 또는 비디오를 다른 파일, 메시지, 이미지 또는 비디오 안에 숨기는 심층 암호 기술이다. 스테가노그라피라고도 쓴다.
스테가노그래피라는 단어는 그리스어 스테가노(στεγᾰνός)는 "덮어지거나 감추어진" 뜻과 "통신하다"는 그래피(γραφή)를 결합한 것이다.
스테가노그래피는 비밀키 암호라고 볼 수 있다. 스테가노그래피 방법은 메시지의 존재 자체를 은폐하는 방법이다. 간단한 예로는 고전부터 쓰이는 단순한 메시지를 숨기는 방식으로 식초나 레몬을 이용하여 종이에 쓴 글자를 보면 전혀 보이지 않지만, 종이에 살짝 불로 가열해 주면 식초 안의 아세트산에서 산수와 산소가 날아가고 남아 있는 탄소가 열에 타서 글자가 나타나는 방식이지만, 현대에서는 파일의 LSB나 이미지 파일의 픽셀 RGB정보에서 각 픽셀의 LSB를 변화시켜 메시지를 숨기는 방식 등이 있다. 스테가노그래피가 많이 쓰이는 파일은 주로 이미지와 MP3 등의 매체이며 문서파일에 메시지를 숨기는 경우 또한 많이 쓰이고 있다. 문서파일의 경우, docs나 pptx의 경우에는 압축파일의 기능을 가지고 있으므로 압축해제로 그 안에 숨기거나 또는 문서내용과 섞어 메시지를 숨기기도 한다. 장점으로는 파일안에 파일을 숨기는 방식이며 숨긴 방식을 모르면 제 3자가 알아채기 힘들다. 암호화의 경우 제 3자도 역시 암호화된 데이터라는 것을 간파하고 복호화를 시도할 수 있지만 스테가노그래피의 경우 암호화 여부 조차 알기 힘들기 때문에 더욱 안전하다. 하지만 본래 파일의 해시값(MD5, SHA1)을 알고 있다면 해시값 대조를 통하여 알아낼 수 있다. 잘못된 알고리즘으로 인하여 커버데이터를 손상시켜 의심을 유발할 수 있으며 대량의 데이터를 은닉하기 힘들다는 단점이 있다. 또한 평범한 파일 안에 비밀 파일을 넣기 때문에 겉으로 드러나는 메시지보다 파일 용량이부풀려질 수밖에 없어 의심을 살 수 있다는 것이며 스테가노그래피 기법을 통해 숨기려는 파일은 대부분 암호화가 되어 있지 않기 때문에 스테가노그래피라는 점만 확인되면 툴을 이용해 비밀 메시지가 바로 드러날 수 있다는 단점이 있다.

<크립토그래피> - (내용의 암호화)
=->전치법(transposition)
=->대체법(substitution)  =-> 코드(code) (단어의 대체)
=->사이퍼(cipher)(글자의 대체)

'숨겨진'이라는 뜻의 그리스어 크립토스(kryptos)에서 유래한 크립토그래피의 목적은 메시지의 존재 자체를 감추는 것이 아니라, 그 의미를 감추는 것이다.

크립토그래피에서는 메시지를 주고받는 사람들 사이에 미리 정해 놓은 규칙에 따라 메시지를 의미 없는 문자의 나열로 바꾸어 놓는다.

<전치법(transposition)>
의미 : 메시지 안에 들어 있는 문자의 위치를 바꾸는 방법

전치법의 대표적인 방법으로 스키테일 암호가 있다. 사용자는 동일한 원통형 막대기를 나눠 갖고 비밀리에 보내야할 메시지가 있을경우 스키테일에 가느다란 양피지 리본을 위에서 아래로 감은 다음 옆으로 메시지를 적는다. 리본을 풀어내면 그 내용은 아무나 읽을 수 없고 오직 같은 굵기의 원통 막대기를 가진 사람만이 메시지를 읽을 수 있다.

또한 글자의 위치를 무작위로 바꾸는 방법은 보안성이 매우 좋지만 아무런 논리가 없이 글자를 섞었다면 적 뿐만이 아니라 자기편도 해독해내기가 어렵다는 것이다.

<대체법(substitution)>
의미 : 배열은 그대로 이지만 각각의 글자가 다른 글자로 바꾸는 방법

대체법에는 두가지 방법이 있는데, 코드와 사이퍼 입니다.

위에 썼듯이 코드는 단어를 대체하는 것이고 사이퍼는 글자를 대체 하는 것입니다.

대체법의 대표적인 방법으로 시저암호가 있습니다. A는 D로 B는 E로 바꿔 읽는 단순 대치식 암호입니다.

코드는 사이퍼보다 보안성이 높은 것처럼 보입니다. 단어가 낱개의 글자보다 빈도분석법을 사용한 암호해독에 의해 무너질 확률이 훨씬 작기 때문입니다. 코드의 경우에는 수천 개에 달하는 코드워드의 참뜻이 무엇인지 밝혀내야 하기 때문이다.

그러나 조금만 더 생각해보면 코드는 사이퍼보다 두가지 결점을 가지고 있습니다. 송신자와 수신자간에 정확한 의사소통이 되기 위해서 원문 텍스트를 대체할 수 있는 코드를 미리 만들어 놓아야합니다.

1. 이 코드를 모두 담은 코드북은 수백쪽에 달하는 사전과 같아서 이를 만드는 데만도 엄청난 노력이 필요합니다. 이것을 가지고 다니는 것도 매우 불편한 일입니다.
2. 이 코드북이 적의 손에 넘어가는 상황을 상상해 봅시다. 그 피해는 상상을 초월하며, 처음부터 새로운 코드북을 만들기 위해서는 많은 노력이 필요합니다.

'IT > 정보보안' 카테고리의 다른 글

AES(Advanced Encryption Standard)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
블록암호화 공격 기법  (0) 2021.09.01
대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
728x90

생일자 파라독스

- 생일이 어느 날이라도 상관없으므로 일치할 확률이 높아지는 것이다. 특정 해시값을 생성하는 메시지를 구하는 것이 아니라 해시값은 뭐든지 괜찮으며 같은 해시값을 생성하는 2개의 메세지를 구하는 것이다. 강한 충돌 내성을 깨고자 하는 공격이다.

무차별 공격

- 약한 충돌 내성을 깨고자 하는 공격이다. SHA-1의 경우 해시값이 160비트이므로 2^160회를 시행하면 원하는 메시지가 발견될 것이라 기대할 수 있다.

일치블록 연쇄 공격

- 새로운 메시지 M'을 사전에 다양하게 만들어 놓았다가 해시함수값 h(M)이 일치하는 것을 골라 사용하는 공격이다.

중간자 연쇄 공격

- 해시 중간 결과에 대한 충돌 쌍을 찾고 특정 포인트로 공격하는 방법이다.

고정점 연쇄 공격

- 메시지 블록과 연쇄변수 쌍을 얻으면 연쇄변수가 발생하는 특정점에서 동일블록을 메시지 중간에 삽입해도 전체 해시값이 변하지 않는다.

차분 연쇄 공격

- 입출력값 차이의 통계적 특성을 조사하는 기법이다.

'IT > 정보보안' 카테고리의 다른 글

암호문 공격방식  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
블록암호화 공격 기법  (0) 2021.09.01
대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
전자서명과 은닉서명  (0) 2021.08.25
728x90

차분 공격(Differental Cryptanalysis)

- 1990년 Biham과 Shamir에 의하여 개발된 선택된 평문 공격법으로, 두 개의 평문블록들의 비트 파이에 대응되는 암호문 블록들의 비트 차이를 이용하여 사용된 암호열쇠를 찾아내는 방법이다.

선형 공격(Linear Cryptanalysis)

- 1993년 Matsui에 의해 개발되어 알려진 평문 공격법으로, 알고리즘 내부의 비선형 구조를 적당히 선형화시켜 열쇠를 찾는 방법이다.

전수 공격(Exhaustive Key Search)

- 1977년 Diffie와 Hellman이 제안한 방법으로 암호화할 때 일어날 수 있는 모든 가능한 경우에 대하여 조사하는 방법으로 경우의 수가 적을 때는 가장 정확한 방법이지만, 일반적으로 경우의 수가 많은 경우에는 실현 불가능한 방법이다.

통계적 분석(Statistical Analysis)

- 암호문에 대한 평문의 각 단어의 빈도에 관한 자료를 포함하는 지금까지 알려진 모든 통계적인 자료를 이용하여 해독하는 방법이다.

수학적 분석(Mathematical Analysis)

- 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법이다.

'IT > 정보보안' 카테고리의 다른 글

스테가노그래피와 크립토그래피  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
전자서명과 은닉서명  (0) 2021.08.25
해시함수의 성질  (0) 2021.08.25
728x90

개요

큰틀에서의 차이를 보면, 대칭키 암호화 방식 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다. 그와 달리, 공개키 암호화 방식 암복호화에 사용하는 키가 서로 다르며 따라서 비대칭키 암호화라고도 한다. 따라서 공개키 암호화 에서는 송수신자 모두 한쌍의 키(개인키, 공개키)를 갖고있게 된다.

 

 

대칭키란, 장단점

대칭키는 위에서 설명한대로 암복호화키가 동일하며 해당 키를 아는 사람만이 문서를 복호화해 볼 수 있게된다. 대표적인 알고리즘으로는 DES, 3DES, AES, SEED, ARIA 등이 있다. 

 

공개키 암호화 방식에 비해 속도가 빠르다는 장점이 있지만, 키를 교환해야한다는 문제 (키 배송 문제)가 발생한다. 키를 교환하는 중 키가 탈취될 수 있는 문제도 있고 사람이 증가할수록 전부 따로따로 키교환을 해야하기 때문에 관리해야 할 키가 방대하게 많아진다.

 

이러한 키 배송 문제를 해결하기 위한 방법으로 키의 사전 공유에 의한 해결, 키 배포센터에 의한 해결, Diffie-Hellman 키 교환에 의한 해결, 공개키 암호에 의한 해결이 있다.

 

 


대칭키 암호화 방식: 암복호화키가 동일한 암호화 방식

대표 알고리즘 : DES, 3DES, AES, SEED, ARIA 등

장점 : 수행 시간이 짧음

단점 : 안전한 키교환 방식이 요구됨, 사람이 증가할수록 키관리가 어려워짐

 

 

공개키란, 장단점

위에서 설명한 대칭키의 키교환 문제를 해결하기 위해 등장한 것이 공개키(비대칭키) 암호화 방식이다. 이름 그대로 키가 공개되어있기 때문에 키를 교환할 필요가 없어지며 공개키 모든 사람이 접근 가능한 키이고 개인키 각 사용자만이 가지고 있는 키이다.

 

예를 들어, A가 B에게 데이터를 보낸다고 할 때, A는 B의 공개키로 암호화한 데이터를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보기 때문에 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게 되는 것이다. 

 


1) B 공개키/개인키 쌍 생성

2) 공개키 공개(등록), 개인키는 본인이 소유

3) A가 B의 공개키를 받아옴

4) A가 B의 공개키를 사용해 데이터를 암호화

5) 암호화된 데이터를 B에게 전송

6) B는 암호화된 데이터를 B의 개인키로 복호화 (개인키는 B만 가지고 있기 때문에 B만 볼 수 있음)

 

 

 

 

따라서 공개키는 키가 공개되어있기 때문에 따로 키교환이나 분배를 할 필요가 없어진다. 중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하기 때문에 기밀성을 제공하며 개인키를 가지고있는 수신자만이 암호화된 데이터를 복호화할 수 있으므로 일종의 인증기능도 제공한다는 장점이 있다. 그에 반해 단점은 속도가 느리다는 것이다. 

 


공개키 암호화 방식: 암복호화키가 동일한 암호화 방식

장점: 키분배 필요X, 기밀성/인증/부인방지 기능을 제공

단점: 대칭키 암호화 방식에 비해 속도가 느림

'IT > 정보보안' 카테고리의 다른 글

해시함수 공격 기법  (0) 2021.09.01
블록암호화 공격 기법  (0) 2021.09.01
전자서명과 은닉서명  (0) 2021.08.25
해시함수의 성질  (0) 2021.08.25
AND, OR, XOR 연산  (0) 2021.08.25
728x90

■ 전자서명 (디지털 서명 : Digital Signature)

 - 전자상거래 지불 시스템에서 송신자가 일정 금액을 보냈으나 수신자가 금액을 받지 않았다고 부인하는 경우가 생기는데 이를 방지하기 위해 전자서명을 이용한다

 - 전자서명은 원본의 해시값을 구한 뒤, 원본과 해시값을 같이 전송한다

 - 수신자는 수신 받은 원본에서 해시값을 구한 다음 수신 받은 해시값과 비교하여 일치하면 그 문서는 변경되지 않은 것(무결성 확보)

 - 이때 송신자는 그 해시값에 부인방지 기능을 부여하기 위해 공개키 방법을 사용

 - 송신자는 메시지의 해시값을 구한 후 그 해시값을 송신자의 개인키로 암호화하여 보내는 것

 - 수신자는 송신자가 보낸 해시값을 송신자의 공개키로 복호화하여 부인방지 기능을 확인한다

 

 - 전자서명이란 전자문서에 서명한 사람의 신원을 확인하고 서명된 전자문서가 위조되지 않았는지 여부를 확인할 수 있도록 전자문서에 부착된 특수한 디지털정보를 의미

 

 

** 전자서명의 개발 배경

   - 정보를 암호화하여 상대편에게 전송하면 부당한 사용자로부터 도청을 막을 수는 있다. 하지만 그 전송 데이터의 위조나 변조, 그리고 부인 등을 막을 수는 없다. 이러한 문제점들을 방지하고자 전자서명 기술이 개발되었다

 

 

■ 전자서명 서비스

 ① 메시지인증 : 변경여부 확인(해시함수 이용)해 무결성 기능을 제공

 ② 발신자(사용자) 인증 : 발신자 인증 기능을 제공. 즉, 전자서명은 발신자(서명 생성자)를 인증하는 기능이 있음

 ③ 부인방지 : 송신자의 개인키로 메시지 다이제스트를 암호화 후 송신한다. 수신자가 받은 암호화 된 메시지 다이제스트를 송신자의 공개키로 복호화가 된다는 것은 송신자만이 가지고 있는 송신자의 개인키로 메시지를 암호화 했다는 것

 

 

■ 전자서명의 주요 기능

 

1) 위조불가 (Unforgeable)

 - 합법적인 서명자만이 전자서명을 생성하는 것이 가능해야 함. 즉, 위조가 불가능해야 한다

 - 서명된 문서가 변형되지 않았다는 무결성(Integrity)을 보장한다

 

2) 서명자 인증 (User Authentication)

 - 전자서명은 서명 생성자를 인증하는 기능이 있다

 - 전자서명의 서명자를 불특정 다수가 검증할 수 있어야 한다

 - 전자서명 된 문서를 타인이 검증해야 하므로 전자서명 알고리즘은 공개해야 한다

 

3) 부인방지 (=부인봉쇄, Non-repudiation) 

 - 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야 한다

 - 전자서명에서 부인방지는 송신자의 개인키로 해시값을 암호화 한 후(해시 후 서명 방식), 송신자의 공개키로 복호화(써명 검증)하여 부인방지서비스를 제공

 

4) 변경불가 (Unalterable)

 - 서명한 문서의 내용을 변경할 수 없어야 한다

 

5) 재사용 불가 (Not reusable)

 - 전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야 한다 (수신자가 문서를 재사용 할 수 없다)

 - 전자서명에서 송신자와 수신자의 메시지 전송 도중에 갈취되어 복사되거나 도용되지 않도록 해주는 특징이 있다

 

 

■ 공개키를 사용하는 전자서명 방식 (부가형 전자서명 방식)

 - 메시지의 해시값에 서명(개인키로 암호화)하는 전자서명 방식

 

 - 메시지의 해시값에 서명하는 전자서명 방식은 기밀성을 보장하지 않음

 - 메시지를 암호화 하지 않아 기밀성을 보장하지 못하는 이유는 메시지를 B의 공개키로 암호화 하면 속도 저하가 크기 때문

 - 공개키 기반 전자서명에서 메시지에 서명하지 않고 메시지의 해시값과 같은 메시지 다이제스트에 서명하는 이유는 공개키 암호화에 따른 성능 저하를 극복하기 위한 것

 

○ 메시지의 해시값에 서명하는 방법

   - 송신자는 일방향 해시함수로 메시지의 해시값을 계산

   - 송신자는 자신의 개인키로 해시값을 암호화

   - 송신자는 메시지와 서명을 수신자에게 송신

   - 수신자는 수신한 서명을 송신자의 공개키로 복호화

   - 수신자는 얻어진 해시값과 송신자로부터 직접 수신한 메시지의 해시값을 비교

 

□ 공개키 방식을 이용한 전자서명의 문제점

 - 공개키 암호화 방식은 공개키 저장소(공개키 레파지토리)의 공개키가 바꿔치기 당하는 중간자 공격에 취약

 - 공개키가 누구의 것인지 확인해 주는 과정이 필요. 즉 공개키 인증서(Public Key Certificate) 확인 과정이 필요

 

 

■ 전자서명 특징 

 - 디지털 서명은 기밀성을 지키기 위한 것은 아니다

 - 서명을 복사하더라도 서명자, 메시지의 내용이 바뀌지는 않기 때문에 서명이 무의미해지는 것은 아니다

 

■ 전자서명 구비조건 (제공기능)

 ① 무결성 (Integrity) 기능 제공 : 문서내용 변경 여부를 확인할 수 있어야 함

 ② 서명자 인증 기능 제공 (User Authentication) : 서명자 이외의 타인이 서명을 위조하기 어려워야 한다. 또한 전자서명의 서명자를 누구든지 검증할 수 있어야 한다

 ③ 부인방지 (Non-repudiation) 기능 제공 : 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야 함

 ④ 재사용 불가 (Not reusable) : 전자문서의 서명을 다른 전자문서의 서명으로 재사용 할 수 없다

 ⑤ 위조불가 (Unforgeable) : 합법적인 서명자만이 전자서명을 생성할 수 있어야 한다. 즉 서명자 이외의 타인의 서명을 위조하기 어려워야 한다

 

 

 

■ 메시지 복원형 전자서명 (메시지에 직접 서명하는 방식)

 - 해시함수를 사용하지 않고 송신자가 메시지를 송신자의 개인키로 암호화하여 전송한 후 수신자는 송신자의 공개키로 메시지를 복호화하여 검증하는 방법

 - 기존의 공개키 암호 방식을 사용하여 별도의 전자서명 프로토콜이 필요하지 않다는 장점이 있으나, 메시지를 일정한 크기의 블록으로 나누어 그 각각의 블록에 서명을 해야 하므로 많은 시간이 소요되어 실제로는 사용되지 않는다

 

 

 

■ 전자서명이 제공하는 보안 서비스

 ① 본인 인증 : 사용자 인증을 의미하는 것으로서 인터넷상에서 전자문서의 작성자와 송신자의 신원을 확인하는 것

 ② 무결성 : 전자적 거래의 문서가 중간에 위조되거나 변조될 위험성을 해결하는 것으로서 메시지 인증 기술로 송신자가 수신자에게 보낸 메시지가 위조, 변조되지 않은 진본임을 확인하는 것

 ③ 부인방지 : 전자적 거래 이후 거래 사실을 부인하지 못하도록 하는 것으로서 부인방지는 메시지를 보낸 사람의 행위를 부인할 수 없을 뿐 아니라 메시지를 받은 사실 역시 부인할 수 없게 하여 전자적 거래를 완성시킨다

 

 

** 전자서명 자체가 기밀성(비밀성)을 보장하지 않는다

  - 기밀성이란 전자문서의 내용이 외부로 유출될 위험성을 해결하는 것으로서 전송되는 메시지를 송신자와 수신자를 제외한 제3자는 볼 수 없도록 하는 것을 말함. 하지만 전자서명은 전자서명 자체가 문서 내용에 대한 기밀성을 보장하지는 않는다

  - 메시지를 수신자의 공개키로 암호화하여 기밀성을 제공할 수 있으나 전자서명 특성상 결제 시 빠른 동작이 중요하고 메시지 자체가 기밀성을 요구하지 않아 메시지를 암호화 하지 않는다

 

 

 

■ 서명 방식의 종류

 

1) 은닉서명 (Bind Signature)

 - 서명자가 자신이 서명하는 메시지를 알 수 없는 형식으로 봉투 내의 내용을 보지 않고 겉면에 서명을 하면 내부의 잉크에 의해 서류에 서명이 되는 원리를 이용하는 방식 (먹지)

 

2) 수신자 지정서명

 - 서명을 검증할 때 특정 검증자만이 서명을 확인할 수 있으며 만일 서명에 문제가 있을 경우, 검증자의 비밀 정보를 노출시키지 않고 제3자에게 서명의 정당성을 증명하는 서명 방식

 

3) 부인방지 서명 (Undeniable Signature)

 - 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 방식

 

4) 위임서명 (Proxy Signature)

 - 위임서명자로 하여금 서명자를 대신해서 대리로 서명할 수 있도록 한 방식

 

5) 다중서명 (Multisignature)

 - 동일한 전자문서에 여러 사람이 서명하는 방식

 

6) 이중서명 (Dual Signature)

 - 신용카드 기반 지불시스템인 SET (Secure Electronic Transaction) 에서는 상점이 카드 사용자의 계좌번호와 같은 정보를 모르게 하는 동시에, 상점에 대금을 지불하는 은행은 카드 사용자가 구매한 물건을 알지 못하지만 상점이 요구한 결제 대금이 정확한지 확인할 수 있게 하기 위해 사용되는 방식

 - 전자지불시스템(SET)에서 판매자(상점)에게 구매자의 결제정보(주문정보)를 보호하고 지불게이트웨이(PG)에게 구매자의 구매정보를 보호하기 위한 서비스이다 (상인은 고객의 잔고를, 은행은 구입정보를 모르게 한다)

 - 주문정보의 메시지 다이제스트(해시값)와 지불정보의 메시지 다이제스트(해시값)를 구하고, 두 정보의 메시지 다이제스트(해시값)를 합하여 생성된 새로운 메시지의 메시지 다이제스트(해시값)를 구한 후, 고객의 서명용 개인키로 암호화한 것

 - 즉 이중서명은 고객의 겨제 정보가 판매자를 통하여 해당 지급정보 중계기관으로 전송됨으로 인하여 고객의 결제정보가 판매자에게 노출될 가능성과 판매자에 의해 결제정보가 위ㆍ변조될 가능성을 제거한다

 

 

 

■ 은닉서명 (like 먹지를 이용한 서명)

  - D.Chaum이 제시한 특수 형태의 전자서명 기법으로 사용자 A가 서명자 B에게 자신의 메시지를 보여 주지 않고 서명을 얻는 방법을 말함

 - 메시지의 비밀을 지키면서 타인의 인증을 받고자 하는 경우에 주로 사용 (눈 감고 서명하기)

 - 전자화폐를 사용하는 데 있어서 사용자의 사생활을 보호하는 차원에서 제시된 서명 기법

 - 사용자가 서명자, 즉 은행에게 서명을 받으려는 문서를 비밀로 한 채 은행의 서명을 받는 방법으로 전자화폐에 대한 추적을 불가능하게 할 수 있는 기능을 제공한다

 - 전자화폐 사용자의 신원노출 문제점을 해결하기 위한 서명 기술

 - 전자서명과 서명자의 추적성을 차단한 전자서명 기술

 

★ 은닉서명의 목적 

 - 전자서명 사용 시 이용자의 프라이버시 노출을 보호하기 위해 사용

 - 전자화폐 이용 시에 사용자의 신원 노출 문제점을 해결하기 위해 사용

 

★ 은닉서명의 특징

 - 사용자의 익명성 보장

 - 송신자의 익명성 보장

 - 기본적으로 임의의 전자서명을 만들 수 있는 서명자와 서명 받을 메시지를 제공하는 제공자로 구성되어 있는 서명 방식으로, 제공자의 신원과 쌍(메시지, 서명)을 연결시킬 수 없는 익명성을 유지할 수 있는 서명 방식

 

★ 은닉서명의 문제점

 - 은닉서명을 악용하는 사례 발생

 - 전자화폐를 이용한 자금 세탁 등의 부작용이 발생

 - 범죄에 대한 추적의 어려움이 발생 (강탈, 돈세탁)

 - 전자서명 발급 이후에(메시지+서명) 쌍의 유효성을 확인할 수 있으나 자신이 언제, 누구에게 발행했는지를 알 수 없다(송신자의 익명성 보장)

 - 검증자는(메시지+서명) 쌍의 유효성을 확인할 수 있으나, 송신자의 신분을 알 수 없다

 

 

 

 

■ 은닉서명의 역기능 방지 기술과 특징

 

 1) 은닉서명의 역기능 방지를 위한 공정은닉서명 (Fair Blind Signature)

   - 은닉서명의 익명성 보장 문제를 해결하기 위한 서명기술

   - 익명성 보장에 대하여 법원의 추적 명령으로 신원 추적이 가능 (Linkable)

   - 기본 프로토콜은 익명성을 보장하나 필요시에 익명성 추적이 가능토록 설계

   - 전자화폐 사용 시 범죄 행위에 대한 해결 기능이 내장되었음

 

2) 은닉서명과 공정한 은닉서명의 특징 비교

구분 Blind Signature (은닉서명) Fair Blind Signature (공정한 은닉서명)
목적 - 프라이버시보호 익명성 보장 - 한정된 프라이버시 보호 기본 프로토콜
- 익명성 보장 및 제어추적성 보장됨
특징 - 프라이버시 보장 - 은닉서명의 역기능 방지

 

■ 은닉서명의 응용분야

 - 전자화폐 : 사용자의 프라이버시 보호 (발행 프로토콜)

 - 전자투표 분야 : 익명성이 보장된 투표 참여

'IT > 정보보안' 카테고리의 다른 글

블록암호화 공격 기법  (0) 2021.09.01
대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
해시함수의 성질  (0) 2021.08.25
AND, OR, XOR 연산  (0) 2021.08.25
FAR과 FRR  (0) 2021.08.25
728x90

해쉬함수는 다음과 같은 기본 성질을 가져야 합니다.

 

1. 역상 저항성

   주어진 임의의 출력값 y 에 대해, y = h(x) 를 만족하는 입력값 x 를 찾는 것이 계산적으로 불가능하다.

 

2. 두 번째 역상 저항성

   주어진 입력값 x 에 대해 h(x) = h(x'),  x ≠ x' 를 만족하는 다른 입력값 x' 를 찾는 것이 계산적으로 불가능하다.

 

3. 충돌 저항성

    h(x) = h(x') 를 만족하는 임의의 두 입력값 x, x' 를 찾는 것이 계산적으로 불가능하다.

 

위의 성질들이 필요한 이유는 다음과 같은데요 ...

 

일단 위의 3가지 성질을 잘 익혀 두세요 ....

이것은 해쉬함수를 공격하는 방법이기도 합니다~~~

 

<역상 저항성이 필요한 이유>

RSA 알고리즘을 이용한 서명에서 A 가 공개키 (n,e) 를 갖는다고 가정하자.

공격자 C는 임의의 값 y를 선택하여 z = y^e mod n 을 계산하고 y 가 z 에 대한 A 의 서명이라고 주장할 수 있다.

만약 C 가 h(x) = z 인 x 를 찾는다면 위조가 가능하다.

 

<두 번째 역상 저항성이 필요한 이유>

공격자 C 가 h(x) 에 대한 A 의 서명을 관찰한 후 h(x) = h(x') 가 되는 메시지 x' 를 찾아서 A 가 x' 에 서명했다고 주장할 수 있다.

 

<충돌 저항성이 필요한 이유>

공격자 C 가 A 가 서명한 메시지 x 를 정확히 안다면 x 의 이미지의 역상을 찾는 것보다 오히려 충돌쌍인 (x, x') 를 찾는 것이 더 쉬울 수 있기 때문이다.

 

--------------------------------------------------------------------------------------------------------------------------

 

1. 압축 : 임의의 길이의 이진 문자열을 일정한 크기의 이진 문자열로 변환해야 한다.

 

2. 계산의 용이성 : x가 주어지면 H(x)는 계산하기 쉬워야 한다.

 

3. 역상저항성(일방향성) : 입력을 모르는 해시값 y가 주어졌을 때, H(x')=y를 만족하는 x를 찾는 것은 계산적으로 어려워야 한다.

 

4. 2번째 역상저항성(약한 충돌 회피성) : x가 주어졌을 때 H(x')=H(x)인 x'(≠x)을 찾는 것은 계산적으로 어려워야 한다.

 

5. 충돌저항성(강한 충돌 회피성) : H(x')=H(x)인 서로 다른 임의의 두 입력 x와 x'을 찾는 것은 계산적으로 불가능하다.

'IT > 정보보안' 카테고리의 다른 글

대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
전자서명과 은닉서명  (0) 2021.08.25
AND, OR, XOR 연산  (0) 2021.08.25
FAR과 FRR  (0) 2021.08.25
디지털 포렌식 5대 원칙  (0) 2021.08.25
728x90

AND
AND 연산은 논리곱이라고도 하며 곱하기처럼 작용합니다. 
이 연산에서는 모든 입력값이 1일 때만 1을 출력합니다. 다음은 진리표입니다:
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

OR
OR 연산은 논리합이라고도 불립니다. 이는 하나 이상의 입력값이 1이면 1을 출력합니다. 아래는 진리표입니다:
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1

XOR
XOR 연산은 입력값이 같지 않으면 1을 출력합니다. 이는 두 입력 중 하나만이 배타적으로 참일 경우에만 일어납니다. 이 연산은 더해서 mod 2 를 구하는 것의 결과와 동일합니다. 다음은 진리표입니다:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

'IT > 정보보안' 카테고리의 다른 글

전자서명과 은닉서명  (0) 2021.08.25
해시함수의 성질  (0) 2021.08.25
FAR과 FRR  (0) 2021.08.25
디지털 포렌식 5대 원칙  (0) 2021.08.25
오용탐지와 이상탐지  (0) 2021.08.25
728x90

FAR(False Acceptance Ratio)와 FRR(False Rejection Ratio)는 타인수락률과 본인거부율로 생체인식 보안솔루션의 보안성 및 사용성을 측정하기 위한 기준으로 사용된다.

 타인수락률(FAR)은 시스템에 등록된 사용자외 다른 사람을 등록자로 오인하고 인증을 수행하는 오류로 FAR 0.001%는 10만회 가운데 한번꼴로 잘못 인증할 가능성이 있다는 얘기다.

 본인거부율(FRR)은 시스템에 등록된 사용자가 사용시 본인임을 확인하지 못하고 인증을 거부하는 오류로 FRR 0.1%는 1000회의 인증 가운데 한번꼴로 오류가 발생할 가능성을 말한다.

 생체인식 기술을 이용한 대부분의 인증 솔루션은 용도와 보안요구에 따라 서로 반비례 관계에 있는 FAR와 FRR의 교차점을 조정하게 된다.

 예를 들어 개인주택에서 사용하는 1대1 매칭 출입통제장치의 경우 FRR를 낮추고 FAR를 높여 사용중 불편을 겪지 않는 수준에서 보안성을 유지하게 된다. 이밖에 FAR를 타입-2 에러, FRR를 타입-1에러로 칭하기도 한다.

'IT > 정보보안' 카테고리의 다른 글

해시함수의 성질  (0) 2021.08.25
AND, OR, XOR 연산  (0) 2021.08.25
디지털 포렌식 5대 원칙  (0) 2021.08.25
오용탐지와 이상탐지  (0) 2021.08.25
정량적 위험분석 기법과 정성적 위험분석 기법  (0) 2021.08.25
728x90

※ 포렌식이란 무엇인가?

포렌식(Forensics)은 고대 로마시대의 포럼(Forum)이라는 라틴어에서 유래했으며 그 뜻은 '법의학적인, 범죄 과학수사의, 법정의'이라는 의미를 가지고 있습니다. 

 

그럼, 디지털 포렌식(Digital Forensics)이란 무엇일까? 

컴퓨터를 매개로 이루어지는 범죄에 대한 법적 증거자료 확보를 위해 컴퓨터 저장매체와 네트워크로 부터 자료를 수집, 분석 및 보존하여 법적 증거물로써 제출 할 수 있도록 하는 일련의 작업을 말함

 

 

범죄현장에서 확보한 자료들을 법정에서 증거로서의 효력을 갖기 위해서는 5가지 원칙을 지켜야한다.

이 5가지 원칙이 바로 디지털 포렌식 5대 원칙이다.

 

1. 정당성의 원칙

- 획득한 증거 자료가 적법한 절차를 준수해야 하며, 위법한 방법으로 수집된 증거는 법적 효력을 상실한다.

 

1) 위법수집증거배제법칙(형사소송법 제308조의 2)

- 적법한 절차에 따르지 아니하고 수집한 증거는 증거로 할 수 없다.

 

판례 : 압수물의 사진 및 압수조서가 위법한 수색에 의한 압수물을 직접 이용해서 촬영되거나 작성된 경우 그 형태 등에 관한 증거가치에는 변함이 없다고 하더라도 그 증거가치는 부정된다. (서울 중앙지방법원 2006노2113)

 

2) 독수 독과이론

- 위법하게 수집된 증거(독수)에 의하여 발견된 제2차 증거(독과)의 증거능력은 인정할 수 없다는 이론

 

 

2. 무결성의 원칙

- 수집 증거가 위,변조되지 않았음을 증멸할 수 있어야 한다.

 

일반적으로 수집 당시의 데이터 hash 값과 법정 제출 시점 데이터의 hash 값이 같다면 hash 함수의 특성에 따라 무결성을 입증

 

이를 입증하기위해 경우에따라서 현장에 입장하는 시점부터 조사가 끝나는 시점까지 동영상으로 촬영하거나 사진으로 찍어두는 경우도 있음

 

※ 해시(hash) 함수란? (참고, MD5의 경우 128bit, SHA-1의 경우 160bit로 출력됨)

- 평문을 해시 알고리즘을 통하여 해시값으로 출력하는 것

 

특정한 키를 사용하지 않기 때문에 동일한 문장에 대해 동일한 해시값으로 출력하며, 문장이 조금만 변해도 해시값이 달라지게 됨. 또한 해시함수의 종류에 따라 출력되는 해시값의 길이가 달라짐

 

예컨대, '포렌식'의 해시값이 '155F01'라면 '포 렌식'의 해시값은 '14A3E5'으로 약간의 변화에도 완전 다른 해시값이 출력됨

 

 

3. 재현의 원칙

- 피해 직전과 같은 조건에서 현장 검증을 실시하거나, 재판이나 법정의 검증과정에서도 동일한 결과가 나와야한다. 

 

예컨대, 불법 해킹 용의자의 해킹 툴이 증거능력을 가지기 위해서는 같은 상황의 피해시스템에 툴을 적용할 경우 피해 결과와 일치하는 결과가 나와야한다.

 

4. 신속성의 원칙

- 휘발성 증거의 수집 여부는 신속한 조치에 의해 결정되므로 모든 과정은 지체없이 진행되야한다.

 

5. 절차 연속성의 원칙

- 증거물 획득 -> 이송 -> 분석 -> 보관 -> 법정 제출의 각 단계에서 담당자 및 책임자를 명확히 해야한다.

- 수집된 저장매체가 이동단계에서 물리적 손상이 발생하였다면, 이동 담당자는 이를 확인하고 해당 내용을 정확히 인수 인계하여 이후의 단계에서 적절한 조치가 취해지도록 해야한다.

'IT > 정보보안' 카테고리의 다른 글

AND, OR, XOR 연산  (0) 2021.08.25
FAR과 FRR  (0) 2021.08.25
오용탐지와 이상탐지  (0) 2021.08.25
정량적 위험분석 기법과 정성적 위험분석 기법  (0) 2021.08.25
암호화 알고리즘  (0) 2021.08.25
728x90

침입탐지 시스템(IDS)을 공부하다 보면 오용탐지와 이상탐지에 대한 내용이 나온다.
침입탐지 시스템의 탐지방법에 따른 분류인데 오용탐지(Misuse Detection)는 악성패킷 등을 분석한 침입 패턴(Rule Set)을 저장하여 패턴과 동일하면 탐지하고, 이상탐지(Anomaly Detection)는 오용탐지와 반대로 정상 패턴을 저장하고 이와 다르면 탐지하는 방식이다.

오용탐지는 저장된 침입 패턴으로 침입 여부를 탐지하므로 오탐율(False Positive)이 낮지만, 미탐율(False Negative)이 높고 알려지지 않은 패턴은 탐지할 수 없다.
특히 제로데이 공격(Zero-day Attack)을 탐지할 수 없으며, 오용탐지를 시그니처(Signature) 기반 혹은 지식(Knowledge) 기반의 탐지 방법이라고 부른다.

이상탐지는 정상적인 패턴을 저장하여 이와 다르면 모두 침입이라고 탐지하므로, 오탐율이 높지만, 미탐율이 낮고 알려지지 않은 공격패턴, 특히 제로데이 공격에 대응할 수 있다.

'IT > 정보보안' 카테고리의 다른 글

FAR과 FRR  (0) 2021.08.25
디지털 포렌식 5대 원칙  (0) 2021.08.25
정량적 위험분석 기법과 정성적 위험분석 기법  (0) 2021.08.25
암호화 알고리즘  (0) 2021.08.25
재해복구시스템의 복구 수준별 유형  (0) 2021.08.25
728x90
구분 정량적 위험분석 정성적 위험분석
접근유형 수학 공식 접근법
확률 분포 추정법
확률 지배
몬테카를로 시뮬레이션
과거자료 분석법
델파이법
시나리오법
순위결정법
퍼지행렬법
질문서법
장점 객관적인 평가 기준 적용
논리적으로 평가되어 이해가 쉬움
위험관리 성능평가 용이
가치평가 및 계산이 필요 없음
단점 많은 시간과 비용이 소요
자동화의 경우 정확도의 변이
주관적인 평가 우려
결과의 이해가 어려움
위험관리 성능 추적이 어렵다.

대부분 문제의 단골은 접근유형의 종류를 물어보는 문제이다.

 

나는 그래서 앞글자를 따서 암기하려고 노력한다.

 

정량적인 방법은 수학에 있는 확률들로 과거 자료인 문테카를로 분석! 

 

정성적인 방법은 질문  시(시나리오)퍼(퍼지행렬) 델(델파이법)순(순위결정법)....

 

무튼 나는 이렇게 암기를 한다...

 

암기가 참 어려운데 사실 정량적 위험분석과 정성적 위험 분석을 이해하면 쉽게 풀 수 있다.

 

정량적인 방법은 수치를 중심으로 정성적인 방법은 수치가 아닌 만족도라고 생각한다.

 

수치에 중심적인 정량적 방법은 논리적이며 객관적이지만 많은 시간과 비용이 소요된다.

 

만족도 및 표현에 중심인 정성적 위험분석은 계산을 따로 안해도 되지만 주관적인 평가를 할 수 있다.

 

기출 문제를 예시로 풀어보자.

더보기

Q. 다음 중 정량적 위험분석 기법과 정성적 위험분석 기법의 장단점에 대한 설명으로 틀린것은?

1. 정량적 위험분석 기법은 객관적인 평가 기준이 적용된다.

2. 정량적 위험분석 기법은 위험관리 성능 평가가 용이하다.

3. 정성적 위험분석 기법은 손실 및 위험을 개략적인 크기로 비교하여 점수화한다.

4. 정성적 위험분석 기법은 비용/가치분석이 수행될 수 있다.

답은?

 

더보기

Q. 다음 중 정량적 위험분석 기법과 정성적 위험분석 기법의 장단점에 대한 설명으로 틀린것은?

1. 정량적 위험분석 기법은 객관적인 평가 기준이 적용된다.

2. 정량적 위험분석 기법은 위험관리 성능 평가가 용이하다.

3. 정성적 위험분석 기법은 손실 및 위험을 개략적인 크기로 비교하여 점수화한다.

4. 정성적 위험분석 기법은 비용/가치분석이 수행될 수 있다.

-> 가치 분석이 필요 없음

 

오늘은 이렇게 정성적 위험분석과 정량적 위험분석을 공부했다.

'IT > 정보보안' 카테고리의 다른 글

디지털 포렌식 5대 원칙  (0) 2021.08.25
오용탐지와 이상탐지  (0) 2021.08.25
암호화 알고리즘  (0) 2021.08.25
재해복구시스템의 복구 수준별 유형  (0) 2021.08.25
접근 통제 정책  (0) 2021.08.18
728x90

대칭키 알고리즘 : 같은키로 암호화 복호화
AES, DES
암호화 복호화에 같은키 1개를 사용하므로 속도면에서 이점이 있음
송신측 소스 123 이라면 +1 로 암호화 해서 234 로 보내면 수신측에서는 -1 해서 123으로 복호화 하는 방식

공개키 암호화 알고리즘 : 공개키로 암호화 하고 비밀키로 복호화
RSA
암호화 복호화에 다른 2개의 키를 사용함

https:// 로 시작하는 URL의 경우 웹사이트 인증에는 공개키 암호화 알고리즘을 사용하고
데이터 송수신에는 대칭키 암호화 방식을 사용함

디피 헬만키 교환 알고리즘

대칭키의 속도 이점을 취하면서 중간에 키를 탈취당해도 정보를 지키는 방법

2가지 요건을 만족해야함
1. 중간에 다른 사람이 반 쪽 키 두개를 모두 탈취 한다고 해도 온전한 대칭 키를 만들 수 없다.
2. 반쪽 키를 합쳐서 온전한 키를 만드는 방법은 공개되어 있어야 한다.

양방향 함수 : 2x=y 와 같은 형태
일방향 함수 : Y=a^x mod b

디피 헬만 키 교환 알고리즘은 이산 대수 문제라는 일방향 함수의 특징을 그대로 활용하여 만난 적도, 본 적도 없는 두 사람 만이 아는 비밀의 대칭 키를 만들어 내는 마법같은 알고리즘 입니다.

728x90

'IT > 정보보안' 카테고리의 다른 글

디지털 포렌식 5대 원칙  (0) 2021.08.25
오용탐지와 이상탐지  (0) 2021.08.25
정량적 위험분석 기법과 정성적 위험분석 기법  (0) 2021.08.25
암호화 알고리즘  (0) 2021.08.25
접근 통제 정책  (0) 2021.08.18
728x90

강제적 접근통제 정책에 대한 설명으로 옳지 않은 것은?
①모든 주체와 객체에 보안관리자가 부여한 보안레이블이 부여되며 주체가 객체를 접근할 때 주체와 객체의 보안 레이블을 비교하여 접근허가 여부를 결정한다. 
② 미리 정의된 보안규칙들에 의해 접근허가 여부가 판단되므로 임의적 접근통제 정책에 비해 객체에 대한 중앙 집
중적인 접근통제가 가능하다.
③ 강제적 접근통제 정책을 지원하는 대표적 접근통제 모델로는 BLP(Bell-Lapadula), Biba 등이 있다.
④ 강제적 접근통제 정책에 구현하는 대표적 보안 메커니즘으로 Capability List와 ACL(Access Control List) 등 이 있다


접근통제 정책의 구분

  1. 임의적 접근통제정책(DAC ; Discretionary Access Control)

  2. 강제적 접근통제정책(MAC ; Mandatory Access Control)

  3. 역할기반 접근통제정책(RBAC ; Role-based Access Control)

 

1. 임의적 접근통제정책(DAC)

 (1) DAC의 개념

  데이터의 소유자(owner)가 접근을 요청하는 사용자의 신분 즉 식별자(identity ; ID)에 기초하여 객체에 대해 접근을 제한하는 접근통제 방법이다.

 

 (2) DAC의 특징

  ① 접근 권한을 객체의 소유자가 임의로 지정하는 자율적 정책이다.

  ② 허가된 주체에 의하여 변경 가능한 하나의 주체와 객체간의 관계를 정의한다.

  ③ 접근 통제 목록(ACL ; Access Control List)등을 사용한다.

  ④ 강제적 접근제어 (MAC) 방식을 대체하는 기술은 아니다.

  ⑤ 오렌지북 C-레벨의 요구사항이다.

  ⑥ 장 · 단점

   ㄱ. 장점 : 융통성이 많아 상업적 용도로 사용된다.

   ㄴ. 신분(ID)도용 시 통제 방법이 없다.

 

 (3) DAC의 종류

  ① Identity-Based DAC : 주체와 객체의 ID(Identity)에 따른 접근통제로 유닉스에서 사용한다.

  ② User-Directed : 객체를 소유하고 있는 소유자가 접근 권한을 설정 및 변경할 수 있는 접근 통제이다.

 

 

 

2. 강제적 접근통제정책(MAC)

 (1) MAC의 개념

  강제적인 접근 제한 또는 MAC은 정보시스템 내에서 어떤 주체가 어떤 객체에 접근하려 할 때 양자의 보안레이블(보안등급)을 비교하여 높은 보안을 요하는 정보가 낮은 보안수준의 주체에게 노출되지 않도록 접근을 제한하는 접근통제 방법이다.

 

 (2) MAC의 주요 특징

  ① 접근승인은 보안레벨(level)과 카테고리(category)로 구성되는 보안레이블(Security label)에 의해 제한된다.

  ② 접근정책은 시스템(system)에 의하여 강제적으로 정의되기 대문에 Rule-based 접근통제라고도 한다.

  ③ 오렌지북 B-레벨의 요구사항으로 DAC보다 안전하다.

  ④ 장 · 단점

   ㄱ. 장점 : 보안이 매우 엄격하여 군대와 같은 민감한 정보의 기밀성을 보장하는데 사용된다.

   ㄴ. 단점 : 모든 접근에 대해 보안등급을 정의하고 정책을 확인해야 하기 때문에 개발, 구현이 어렵다.

 

 (3) MAC의 종류

  ① Rule-based MAC : 주체와 객체의 특성에 관계된 특정 규칙에 따른 접근 통제이다.

  ② Administratively-directed MAC : 객체에 접근할 수 있는 시스템 관리자에 의한 통제이다.

  ③ CBP(Compartment-Based Policy) : 일련의 객체 집합을 다른 객체들과 분리하여 통제이다.

  ④ MLB(Multi-Level Policy) : 각 객체별로 지정된 등급만 사용하고, TCSEC(미국방성의 컴퓨터 보안 평가지표)에서 사용되고 있으며 BLP(벨-라파둘라) 수학적 모델로 표현이 가능하다.

 

 

 

3. 역할기반 접근통제정책(RBAC)

 (1) RBAC의 개념

  주체가 적절한 역할(role)에 할당되고 역할에 적합한 접근권한이 할당된 경우만 객체에 접근할 수 있는 비임의적 접근제어(Non DAC) 방식으로 전통적인 DAC와 MAC의 대체 수단으로 사용된다.

 

 (2) RBAC의 주요 특징

  ① 주체의 역할이나 임무에 따라 객체의 접근 권한을 제어하는 방식이다.

  ② 조직의 기능 변화나 인사이동에 따른 관리적업무의 효율성을 꾀할 수 있다.

  ③ 역할에 따라 설정된 권한만 할당하기에 보안 관리를 아주 단순하고 편리하게 할 수 있다.

  ④ 알 필요성 원칙, 최소권한 원칙, 직무분리 원칙이 지켜진다.

  ⑤ 금융기관, 정부나 공공기관에서 효과적으로 사용된다.

  ⑥ 오렌지북 C- 레벨의 요구사항이다.

 

 (3) RBAC의 종류

  ① Task-based Non DAC : 해당 업무에 해당하는 것만 접근가능하다.

  ② Latticed-based Non DAC : 역할에 할당된 민감도 레벨에 의해 접근이 결정되고, 관련된 정보로만 접근할 수 있도록 통제된다.

 

※ 1. Orange Book(미국 국방부 컴퓨터 시스템 평가기준 ; TCSEC)

 ① 시스템 즉 운영체제에 대한 신뢰 수준을 정의한 문서

 ② 시스템 보안 평가 기준 중 최초로 수용된 평ㅇ가 기준

 ③ 네트워크를 고려하지 않은 단일 시스템 보안 평가 기준

 

 

 

접근통제 정책 정리


강제적  MAC 임의적  DAC  역할기반 RBAC
 접근권한 부여자  시스템  데이터소유자  Central Authority
 접근여부 결정기준  보안 레이블  신분  역할
 정책  경직  유연  유연
 오렌지 북  B-레벨  C-레벨  C-레벨
 장점  안전/중앙집중관리  구현이 용이  다양한 접근권한
 단점  구현, 비용, 성능문제  신분위장  X

 

 

 

접근통제 보안모델

 (1) 개요

  보안모델이란 조직에서 보안 정책을 실제로 구현하기 위한 이론적 모델로 수학적 검증을 통과한 모델이다. 수학적 모델이란 명백하고, 실행가능하고, 쉽게 이해하고, 보안정책의 반영이 용이한 장점이 있다.

 

 보안모델  주요 특징
 Bell-LaPadula (벨라파둘라)  기밀성을 목적으로 하는 최초의 수학적 보안모델
 Biba (비바)  무결성을 목적으로 하는 최초의 수학적 보안모델
 Clark and Wilson (클락윌슨)  무결성 유지 정책을 이용한 상업용 보안모델
 Brewer Nash (만리장성)  이해 충돌 회피를 위한 보안모델

 

----------------------------------------------------------------------------------------------------------------------------------

 

접근 통제

운영체제에서 접근 통제(Access Control)은 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것을 의미합니다.

접근 통제에서는 시스템 자원을 객체(Object)라고 하며 자원에 접근하는 사용자나 프로세스는 주체(Subject)라고 정의합니다.

즉 /etc/passwd 파일은 객체이고 이 파일에 접근해서 암호를 변경하는 passwd 라는 명령어는 주체이며 아파치 웹 서버의 설정 파일인 /etc/httpd/conf/httpd.conf 는 객체이며 웹 서버 프로그램인 /sbin/httpd 는 주체가 됩니다.

임의 접근 통제(DAC)

임의 접근 통제(DAC;Discretionary Access Control)는 시스템 객체에 대한 접근을 사용자나 또는 그룹의 신분을 기준으로 제한하는 방법입니다.

사용자나 그룹이 객체의 소유자라면 다른 주체에 대해 이 객체에 대한 접근 권한을 설정할 수 있습니다.

여기서 임의적이라는 말은 소유자는 자신의 판단에 의해서 권한을 줄 수 있다는 의미이며 구현이 용이하고 사용이 간편하기 때문에 전통적으로 유닉스나 윈도우등 대부분의 운영체제의 기본 접근 통제 모델로 사용되고 있습니다.

임의적 접근 통제는 사용자가 임의로 접근 권한을 지정하므로 사용자의 권한을 탈취당하면 사용자가 소유하고 있는 모든 객체의 접근 권한을 가질 수 있게 되는 치명적인 문제가 있습니다.

특히 root 계정은 모든 권한을 갖고 있으므로 root 권한을 탈취하면 시스템을 완벽하게 장악할 수 있으며 권한 탈취시 많이 사용되는 것은 아래에서 설명할 유닉스의 구조적인 2가지 보안 취약점입니다.

 

setuid/setgid 문제

사용자들의 암호는 /etc/shadow 에 저장되어 있으며 루트만 읽고 쓸수 있습니다.

하지만 사용자들은 passwd 명령어를 실행하여 자신의 암호를 변경할 수 있고 이때 /etc/shadow 파일이 수정됩니다.

상대방 호스트가 동작하는지 확인하기 위해 사용하는 ping 은 ICMP(Internet Control Message Protocol) 패킷을 사용하므로 루트 권한이 필요하지만 일반 사용자도 ping 명령어를 사용하여 상대 호스트의 이상 여부를 확인할 수 있습니다.

 

유닉스 계열의 운영 체제는 실행 파일의 속성에 setuid(set user ID upon execution)또는 setgid(set group ID upon execution) 비트라는 것을 설정할 수 있으며 이 비트가 설정되어 있을 경우 해당 프로그램을 실행하면 실행 시점에 설정된 사용자(setuid), 또는 그룹(setgid) 권한으로 동작합니다.

 

이를 확인해 보기 위해 대표적인 setuid 비트가 붙은 프로그램인 ping  passwd 의 권한을 확인해 봅시다.

$ ls -l /bin/ping /usr/bin/passwd -rwsr-xr-x 1 root root 44168 May 8 2014 /bin/ping -rwsr-xr-x 1 root root 54256 May 17 08:37 /usr/bin/passwd

Copy

TODO: s 진하게 표시

ls -l 실행 결과

 

파일의 사용자 퍼미션 부분의 's' 표시는 setuid 비트이며 그룹 퍼미션 부분에 's' 표시가 있을 경우 setgid 비트로 passwd 와 ping 은 setuid 비트가 설정되어 있고 소유자가 root 인 것을 알수 있습니다.

즉 passwd 나 ping 는 실행시 root 사용자로 전환되므로 root 만 가능한 동작(예: /etc/passwd 파일 수정)을 수행할 수 있습니다.

배포판의 종류와 버전에 따라 ping 에 setuid 비트가 붙지 않았을 수도 있습니다.

 

하지만 setuid 비트가 붙은 프로그램에 보안 취약점이 있을 경우 root 로 구동중이었으므로 공격자가 손쉽게 루트 권한을 획득할 수 있는 문제가 있습니다.

이 때문에 setuid 비트는 필요하지만 유닉스 시스템의 주요 보안 취약점이었으며 시스템 관리자의 골칫 덩어리이었습니다.

 

리눅스 시스템에 있는 setuid 비트(4000)와 setgid 비트(2000)이 붙은 모든 프로그램은 다음 명령어로 찾을 수 있습니다.

$ find /bin /usr/bin /sbin -perm -4000 -o -perm -2000 |xargs ls -l

Copy

setuid/setgid 비트 프로그램 검색

 

잘 알려진 포트 daemon 문제

잘 알려진 포트(well-known port) 는 특정한 쓰임새를 위해서 "인터넷 할당 번호 관리기관"(IANA; Internet Assigned Numbers Authority)에서 할당한 TCP 및 UDP 포트 번호들의 일부로 1024 미만의 포트 번호를 사용하고 있습니다.

예로 웹에 사용되는 http(80), 메일 전송에 사용되는 smtp(25), 파일 전송에 사용되는 ftp(20, 21) 등이 잘 알려진 포트입니다.

전통적으로 잘 알려진 포트는 루트만이 사용할 수 있으므로 데몬 서비스는 모두 루트의 권한으로 기동됩니다.

보안 문제는 여기에서 발생하며 루트로 구동되었으므로 만약 서비스 데몬이 보안 취약점이 있거나 잘못된 설정이 있을 경우 서비스 데몬을 통해서 공격자는 루트 권한을 획득하게 될 위험이 있으며 이때문에 웹 서버등은 구동한 후에 자식 프로세스를 생성(fork 시스템 콜)한 후에 쉘이 없는 사용자 계정으로 전환해서 동작하고 있습니다.

 

예로 아파치 웹 서버(User/Group 지시자)와 nginx(user 지시자)는 아래와 같이 구동할 사용자를 지정하고 있습니다.

## 아파치 웹 서버 User apache Group apache ## nginx user nginx;

Copy

웹 서버 사용자 전환

위와 같이 사용자 전환을 하지만 부모 프로세스는 계속 루트로 구동되어 있으므로 1024 미만의 포트를 사용하는 데몬 프로세스에 대한 보안 대책이 필요하게 됩니다.

 

그러나 1024 미만의 포트를 일반 사용자가 쓸 수 있게 하거나 root 가 아닌 별도의 계정에게만 허용하는 것은 전통적인 유닉스의 동작 방식에 어긋나며 커널 수정이나 기타 유틸리티의 대폭 수정이 필요하며 운영자의 혼란을 유발하므로 좋은 방법이 아닙니다.

강제 접근 통제(MAC)

강제 접근 통제(MAC; Mandatory Access Control)는 미리 정해진 정책과 보안 등급에 의거하여 주체에게 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제하는 모델입니다.

높은 보안을 요구하는 정보는 낮은 보안 수준의 주체가 접근할 수 없으며 소유자라고 할 지라도 정책에 어긋나면 객체에 접근할 수 없으므로 강력한 보안을 제공합니다.

 

MAC 정책에서는 루트로 구동한 http 서버라도 접근 가능한 파일과 포트가 제한됩니다. 즉 취약점을 이용하여 httpd 의 권한을 획득했어도 /var/www/html, /etc/httpd 등의 사전에 허용한 폴더에만 접근 가능하며 80, 443, 8080 등 웹 서버에 사전에 허용된 포트만 접근이 허용되므로 ssh로 다른 서버로 접근을 시도하는등 해킹으로 인한 이차 피해가 최소화 됩니다.

단점으로는 구현이 복잡하고 어려우며 모든 주체와 객체에 대해서 보안 등급과 허용 등급을 부여하여야 하므로 설정이 복잡하고 시스템 관리자가 접근 통제 모델에 대해 잘 이해하고 있어야 합니다.

+ Recent posts