정보 은닉 | 스테가노그래피
감추어진 기록 : 정보가 전송된다는 사실을 숨기려는 의도
- 워터마크 : 식별자를 원본에 첨가
- 스테가노 그래피 : 정보 은닉 / 비밀 채널
워터마크
유래 : 편지지의 제작사를 표시하기 위해 편지지에 투명 무늬를 희미하게 프린트한 것을 워터마크라고 부른 데서 시작함
디지털 음악 정보 속에 저작권과 관련된 식별 정보 삽입 : 불법적인 재패보의 책임 식별
가시 워터마킹 : 보이는 것
ex) 종이로 출력해 판매되는 문서의 페이지 전체에 옅은 색으로 소유권을 가진 회사의 로고 / 지폐
투명 워터마킹 : 보이지 않는 것
ex) 영상이나 오디오 파일 등 미디어 파일 내에서 인지되지 않는 상태로 삽입
스테가노그래피
미리 정해진 약속을 통해 원래의 것과는 전혀 관련 없는 데이터를 약속에 맞춰 이용하여 은밀한 정보를 전달함
역사적으로 보면 스테가노그래피가 암호보다 더 많이 사용됨
이미지 스테가노그래피
RGB를 위해 24bit의 정보가 사용된다
육안으로 다른 색인지 구분이 되지 않음
하위 비트 변경은 구분이 되지 않다. -> 즉 하위 비트에 정보를 숨길 수 있음
암축되지 않은 BMP 포맷으로 가능
RGB 하위 비트에 어떤 정보라도 포함할 수 있음
컴퓨터 프로그램은 비트의 차이 발견
HTML 스테가노그래피
font color 속성을 이용한다
검은색은 000000인데, 중간에 1들이 들어가 있다.
- 정보 은닉 방법이 간단
- 중요하지 않은 비트에 정보를 은닉하는 것이 쉽다 -> 제거 및 파괴가 쉬움 (압축)
- 강하게 만들려면 중요한 비트에 정보를 저장해야함 -> 데이터 손상시키면 안됨
- 워터마킹 또는 스테가노그래피를 잘 아는 공격자는 쉽게 정보 추출 또는 변경 가능
- 원 대상과 정보은닉된 대상 비교 (충돌 공격) -> 정보 전달 비트 발견
- 정보 암호화 후 은닉
- 강한 스테가노그래피는 일반적으로 알고있는 것보다 훨씬 복잡한 기교가 필요
전자우편
PGP
필 치머만이 독자적으로 개발
데이터의 기밀성 : IDEA 암호 알고리즘 제공 (대칭키)
IDEA 키 암호화 전자서명 생성 : RSA 알고리즘
공개키 인증
- Web of Trust
- PGP를 사용하는 사람들끼리 신뢰 관계 이용
- 서로 PGP 관계에 있다
철수 <-> 영희 / 민수 <-> 영희가 PGP라면, 철수 <-> 민수가 영희를 통해 PGP 관계를 맺을 수 있게 해줌
PEM
데이터 암호 : DES
대칭키 공유를 위한 알고리즘 : RSA
공인 인증 기관에서 공개키 관리
높은 보안 성제공
구현의 복잡성 등의 이유로 널리 쓰이지 않음
S/MIME
RSA DATA Security 개발
데이터 암호화 : 3DES, RC2
세션키 암호 및 전사서명 : RSA, DSS
인증서 : X.509
비밀분산법
정의 : 하나의 비밀정보를 다수의 비밀조각으로 분할하여 다수의 신롸할 수 있는 사람들에게 공유시킴으로써 비밀정보를 안전하게 유지, 관리하는 암호학적 방법
(k,n)-threshold scheme (Shamir's Secret Sharing : n개의 비밀 조각 중에서 k개 이상의 비밀조각이 있으면 우너래의 비밀 정보를 복원할 수 있는 시스템
비밀정보의 분산
- choose at random k-1 positive integers a1, a2, ... ak-1 with ai < P for a prime p
- a0 = secret
- f(x) = a0 + a1x + a2x^2 + ... ak-1 x^k-1
- si = f(i)
k개 이상의 (x,y)가 필요하다
비밀정보의 복원
k개의 비밀 조각이 주어졌을 때, Lagrange 보간법을 이용하여 복원된 다항식의 상수항을 비밀값으로 복원
ex) (3,6) threshold scheme
S = 1234
a0=1234 a1 = 166 a2 = 94 (아무거나)
f(x) = 1234 + 166x + 94x^2
s0 = (1,1494) .... 로 총 6가지의 비밀 보각
이 중 3개만 알면 상수항을 구할 수 있다.
라그랑주 보간법
해당 방식으로 상수항만 계산해서 구할 수 있음
bit commitment
- Chooses a random number x
- Alice computes y = f(x) -> x에 대해 해시 시킨 값
- Alice sends y to bob
- Bob guesses whether x is 0, 1
- bob confirms that y = f(x)
SSO (Single Sign On)
모든 인증을 하나의 시스템에서 수행
시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근 권한을 모두 획득
인증 과정
실제 사용자가 사용하는 서비스들은 사용자의 정보를 가지고 있지 않음
SSO가 있기 때문에, 서버들이 사용자의 정보를 관리하지 않아도 됨 -> 인증된 사용자임만을 확인한다
커버로스
대칭키를 이용한 키 분배 및 사용자 인증 서비스
가장 큰 약점 : 최초 인증 과정을 일단 통과하면 모든 서버나 사이트에 접속 가능
대칭키 암호 시스템 사용
- 공개키 기반 구조를 사용하지 않음
- 사용자 인증을 위해서 서버 별로 독립된 대칭 키 사용
- 대칭키 분배의 어려움, 서버 별 독립된 인증 체계 구축의 어려움
- 제 3의 신뢰 기관을 이용하여 키 분배 및 인증 문제를 효과적으로 해결
- N명의 사용자가 총 N개의 대칭키 필요 - 제 3의 신뢰 기관 (TTP) 허용
- 키 분배 센터 (KDC)
- 사용자에 대한 계정정보 저장, 대칭키 저장 및 관리
- 등록된 각 사용자들과 대칭키 공유 : 대칭키를 이용하여 사용자 인증 및 사용자 별 인증 티켓 발행
- 네트워크 자원 접근에 필요한 정보를 담고 있는 각종 티켓을 발행
수행 단계
커버로스 로그인 : 사용자 인증
커버로스 티켓 발행 : 서비스 인증
커버로스 로그인
KDC에서 사용자 인증 후, 인증 티켓(TGT) 발급
- 자신의 컴퓨터로 KDC에 TGT를 요청하며 로그인 한다. (패스워드 전달)
- 앨리스의 패스워드로부터 키 KA 유도
- KDC는 세션키 SA 생성
- E(SA, TGT, KA)를 앨리스에게 전달
- KA : 앨리스의 패스워드에서 유도될 것이므로 앨리스도 알 수 있음
- SA : 전달받은 값을 KA로 복호화하여 구할 수 있음
- TGT = E("앨리스", SA, KDC 비밀키) : 앨리스가 복호화할 수 없음
커버로스 티켓 발행
앨리스는 KDC에 SGT 요청
TGT를 활용하여 앨리스가 인증된 사용자라는 것을 확인 후, 서비스를 검증하여 SGT를 발행한다
- Bob이 제공하는 서비스를 사용하고 싶다는 요청을 KDC에게 전송
- Request (TGT, 인증기호)
- 인증기호 = E(타임스탬프, SA)
- KDC는 타임스탬프 확인 위해 TGT로부터 SA 획득 : SA로 실시간 통신 확인 - Reply = E("밥", Kab, 밥에 대한 서비스 승인 티켓(SGT), SA)
- SGT = E("앨리스",Kab, KB) - bob에게 SGT 전달
- bob은 Kab를 알 수 있음 -> Kab는 대칭키
- bob에게 alice가 인증기호 = E(타임스탬프, kab)
- Kab로 인증기호를 복호화해서 현재 시간이 맞는지 확인함
'Hacking > Cryptography' 카테고리의 다른 글
암호화 통신 (0) | 2024.12.16 |
---|---|
Bitcoin (0) | 2024.12.16 |
[전자상거래] SET 프로토콜 (0) | 2024.12.15 |
공개키 기반 구조(PKI) (1) | 2024.12.15 |
전자서명 (1) | 2024.12.15 |