개요 대칭키 암호를 이용하는 하나의 인증체계 장점 : 공개키 기반구조(PKI)가 요구되지 않는다. LAN과 같은 소규모 네트워크에서 사용할 수 있도록 설계 인증 및 비밀성과 무결성이 요구되는 세션키를 생성하기 위해 이용 원칙적으로 어떤 대칭암호든 커버로스로 이용 가능 → 하지만, 오늘날에는 커버로스 대신 DES가 쓰임 대칭키를 기반을 하지만 N명에 사용자에 대해 오직 N개의 키만 필요 기존 대칭키 기반 인증체계에서는 N명의 사용자가 있으면 N(N-1)2 * N^2 의 키 필요 → 대칭키 기반 인증에서는 이용자와 키의 개수는 정비례 관계가 아님 커버로스는 가능한 이유? 제3의 신뢰성 있는 기관(TTP)에 의존하기 때문 커버로스 TTP는 시스템 보안의 핵심 구성요소 → 반드시 보호 필요 → 보안상 관건 키분..
IPSec VPN의 안전을 위해 사용되는 프로토콜 → IP버전 6(IPv6) 필요 VPN : 양 끝단에 안전한 통로를 생성하는 응용체계 특징 암호화, 무결성, 보호 및 인증기능 제공 네트워크 계층에 존재하기 때문에 운영체제의 일부 IPSec을 구현하기 위해선 운영체제에 변화가 일어남 모든 작업이 OS(운영체제)에서 일어나기 때문에 응용프로그램의 변화 X← 가장 중요한 장점(응용프로그램에서 자유로움) IPSec은 2가지 주요한 부분으로 구성 IKE(Internet Key Exchange) 상호인증과 대칭키 공유를 설정해 줌 SSL세션 및 접속과 유사하게 2가지 단계가 존재 보안 페이로드 캡슐화 및 인증 헤더(ESP/AH) AH는 무결성만 제공하는 반면 ESP는 암호화 및 IP 패킷의 무결성을 제공 결점 너..
SSL 방대한 인터넷 상거래의 안전을 위해 사용되는 프로토콜 고객이 인터넷 서점에서 책을 구입하는 경우 신용카드를 제공하기 전 자신이 거래하고 있는 사이트가 진짜 그 사이트인지 확인 → 고객은 그 사이트를 인증 But, 인터넷 서점(사이트) 쪽에서는 고객의 신원을 알 필요가 없다. 상호인증은 필요 없다. 보편적으로 웹브라우징 세션에서 많이 사용 SSL 프로토콜 관련 용어 S = “마스터 이전 비밀”(Pre-master Secret) K =(h(S, R_A, R_B) msgs = “모든 이전의 메시지”를 의미 CLNT = 문자열 SRVR = 문자열 SSL 프로토콜 너무 단순한 유사 SSL 프로토콜 과정 앨리스는 서버인 밥에게 안전한 거래를 원한다고 알림 밥은 자신의 인증서로 응답 인증서의 서명을 확인하여 ..
공개키 C = {M}_앨리스 → 메시지 M을 앨리스의 공개키로 암호화한 것 M = [C]_앨리스 → 암호문 C를 복호화해 평문 M으로 만드는 것 S = [M]_앨리스→ 앨리스의 개인키로 메시지를 서명한 것 공개키 연산은 누구나 수행할 수 있지만 개인키는 본인만 사용할 수 있다 암호화와 복호화가 상호 역연산인 것처럼 암호화와 서명 또한 역연산 관계 공개키 인증 공개키 암호를 사용한 인증 앨리스만이 유일하게 3번째 메시지 R의 응답에 필요한 개인키 연산을 수행 가능 → 밥이 앨리스를 인증할 수 있다. 취약점 : 앨리스가 인증에 사용했던 키 쌍을 암호화에도 사용할 때 발생 앨리스가 공개키로 암호화된 메시지 C = {M}_앨리스를 트루디가 가로챔 트루디는 밥으로 위장해 C를 2번째 메시지로 앨리스에게 전송 앨리..
프로토콜 : 특정 상호 작용을 보장하기 위해 준수되어야 하는 규칙 네트워크 측면 : 연결된 다양한 통신시스템이 준수해야 하는 규칙 보안 프로토콜 : 보안 프로그램에서 준수되어야 하는 통신 규칙 보안 프로토콜이 중요한 이유 네트워크에 관한 공격은 프로토콜에 의해 전달되는 메시지에 의존한다. 네트워크에 관한 공격 : 통상 인증을 목적으로 네트워크를 통해 전송되는 메시지에 대한 보안 문제 대표적인 예 : 재연 공격, 중간자 공격 직접적인 사례 : IPSec, WEP, GSM 보안 프로토콜에서는 공격자가 매우 다양한 기법으로 중간 처리과정에 개입 → 다른 프로토콜보다 더 민감 보안 프로토콜이 정해진 보안 요구 수준(효율성, 사용 용이성, 구현 용이성, 융통성) 등을 모두 만족시키기 힘듦 IFF(피아식별) 프로토..
블록암호란? - 기밀성 있는 정보를 고정된 크기의 블록단위로 구성하여 암호화 작업을 하는 대칭키 암호 시스템 - 운용 방식에는 크게 ECB, CBC, CTR 세 가지 운용 방식이 있다. ECB(Electronic Code Book) 암호화 작업을 하려는 메시지를 여러 블록에 나누어 순차적으로 각각 암호화하는 방식(가장 간단한 구조) 모든 블록이 같은 암호화 키 사용 → 한 블록만 해석되면 나머지 블록도 해석 → 보안에 취약(대표적인 공격 : 복사/붙여 넣기) 각 블록이 독립적으로 동작 → 한 블록의 에러가 다른 블록에 영향 x 복호화 후 평문을 알기 위해선 Padding 필요 ← 암호문이 블록의 배수가 되기 때문 CBC(Cipher Block Chain) 평문의 각 블록은 XOR 연산을 통해 이전 암호문..
DES3의 개념 - DES의 단점인 키 길이가 충분하지 않다는 점을 보완하기 위해 나온 모델 - 3개의 DES키를 이용한다는 의미 3 DES는 DES의 단점을 발전형이기 때문에 해당 글에서는 DES를 알고 있다는 가정 하에 설명하고 있다. 그리고 코드 또한 DES에서 구현했던 것과 똑같이 사용하기 때문에 부연설명을 하진 않았다. 그러므로 아래 링크로 들어가서 DES에 관해 먼저 안 뒤에 이 글을 읽기 바란다. https://howudong.tistory.com/90 [네트워크 보안] DES 개념 및 암/복호화 구현(Python) DES의 개념 - 64bit 평문을 64bit 암호문으로 암호화 하는 대표적인 비밀키 방식의 대칭 암호 알고리즘 - 암호화/복호화 할때 쓰는 비밀키가 동일함 DES 암호화 방식 ..
DES의 개념 - 64bit 평문을 64bit 암호문으로 암호화하는 대표적인 비밀키 방식의 대칭 암호 알고리즘 - 암호화/복호화할 때 쓰는 비밀키가 동일함 DES 암호화 방식 평문을 64비트로 나눠 56비트의 키로 다시 64비트의 암호문을 만들어내는 알고리즘 DES는 Feistel Cipher 방식으로 암호화를 한다. Feistel Cipher 방식이란 데이터를 좌 우로 나누어 교대로 비선형 변환을 적용하는 구조 장점으로는 누군가 키를 알아내도 원래의 함수를 알아내지 못해 보안성이 좋다. 구현 DES.py from Crypto.Cipher import DES from Crypto.Hash import SHA256 as SHA class myDES(): # DES 초기화 def __init__(self, ..