Web Security DAY_006 암호화 , 현대암호화 종류 , 암호화의 장단점 , 대칭키 , 비대칭키 , DB 비밀번호 암호화 , MITM 공격 , MD5 , SHA1, SHA2 , CIA 보안

2024. 1. 26. 23:47Information Security 정보보안/Web Security 웹 보안

728x90

배울내용:

암호화

현대암호화 종류

암호화의 장단점 

대칭키

비대칭키

DB 비밀번호 암호화

MITM 공격

MD5

SHA1

SHA2

CIA 보안

 

 

 

 

 

 

 

제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때문에 정확하지 않을수 있음을 알려드립니다.

틀린게 있으면 댓글로 써주시면 고치겠습니다.

 

 

 

 

 

 

오늘의 주제는

 

암호화

 

이다 

 

 

 

 

먼저 아래의 링크를 먼저 보고 오자

 

https://sarimus.tistory.com/38

 

Network Security DAY_002 정보보안전문가가 갖춰야할것 , 네트워크 보안 ,Network Security , 암호알고리즘

배울 내용: 정보보안전문가가 갖춰야할것 네트워크 보안 Network Security 암호알고리즘 대칭키 비대칭키 관용암호 공개키 양방향 암호 알고리즘 단방향 암호 알고리즘 정보보안통신법 개인정보 보

sarimus.tistory.com

 

 

위에 링크를 요약하자면 



#암호화 과정
encryption 
평문  (암호화키) => 암호화 
decryption
암호화 (복호화키) => 평문

 

 

 

암호학에서 중요개념 

CIA 

 

기밀성  Confidentiality (3자가 알수 없게)
무결성 Integrity (위변조 불가)
가용성 Availability (사용시간 유지)

 

 

 

이 3개는 보안하면서 암호학 뿐만아니라 다른

보안 분야에서도 자주 볼것이다 

 

 

 

 

 

 

현대암호화 종류


단방향 :비대칭 : hash 암호화만 수행 (무결성)   복호화가 불가능하기때문에 key로 활용 

1. 복호화 X
2. 평문 (암호화) => 암호문 
3. 메세지 진위를 확인 (위변조) , 무결성
4. hash algorithm : md5($1) , sha , sha2($6) 등등 

 

 


양방향 : 대칭 :  암호화/복호화 키가 동일
       비대칭 : 암호화/복호화 키가 한쌍으로 다른키가 쓰임
       하이브리드 : 키교환은 비대칭 , 데이터 전달은 대칭

 

1. 한쌍의 알고리즘 (암호화/복호화)를 사용
2. 평문   (key : 암호화 )  암호문
   암호문 (key : 복호화  )  평문 
3. 대칭/비대칭 암호화 

 

 

 

 

 

 

DES : date encryption standard ( 16라운드 )
전 세계적으로 대칭 블록 암호화 표준

 

 

1. 64bit 대칭키 크기 *** (block크기)
2. 블록 byte당 1bit 의 패리티 (오류검사) 비트 블록당할당       [  1byte = 8bit ]
3. 라운드키크기 56bit ( 8bit가 패리티 )
   분할된실제 대칭키 크기
   (라운드 안에서 동작 : 48 bit (32-8) (32-8) )
4. 16라운드 
키워드 : 64bit 대칭키 크기  , 16라운드 

 

 

 

3DES
DES를 다중으로 반복하여 암호 수행

1.block 크기 => 64bit
2.실제대칭키 크기 => 168bit (192/3 = (64-8) + (64-8) + (64-8)     
3.블록 byte당 1bit씩 패리티(오류검사) 비트 
4.분할된크기 56bit  => 실제 대칭키 크기 48bit
  실재대칭키= 56X3 = 168bit

des,3des  차이점 : 대칭키크기 3배 , 3번 반복 

 

 

 

 

AES (advanced encryption standard) 


1.DES의 취약점 완화 , NIST (미국 국립표준연구소) 에서 개발 
2.SPN구조(병렬레이어구조) 이용 (Feistel구조와 spn구조 검색해볼것)
3.block크기 -> 128bit 
4.대칭키크기 -> 128/192/256bit

 

 

 

 

 

 비대칭 암호화의 장점

key 동기화에 대한 안정성이 높음
인증을 통한 기밀성 보장
부인방지를 통한 무결성 보장

 



 비대칭 암호화의 단점
1. 암호화/복호화의 처리속도가 느림
2. MITM 공격에 취약함 (인증서를 통해 해결)

 

 

 

 

MITM공격 (Man in the middle attack) 중간자 공격
공격자가 통신경로 중간에 끼어드는 형태
공개키 교환 과정에서 공격자가 자신의 공개키를 끼워 넣어 속임

 

 

 

 

 

 

 

MariaDB 에서 암호화 하기 

 

 

 

 

mysql -p mysql 로 들어간뒤에

show databases; 한뒤에 보면

 

여러개의 DB 가있지만 

그중에 test 를 써보겠다

 

 

 


(단 방향 암호)  = hash 암호 암호화가능  ,복호화X

 

select md5('test'); 

하면 md5로 test라는 DB 를 암호화 했다 

 

그외에도 

 


select sha1('test');
select sha2(' test ',256);
select sha2(' test ',512);

 

이것들을 이용해 

 

이렇게 암호화 시킬수있다 

 

 

 

 

 

 

 

 


암호화 
select hex(암호화종류 ('비밀번호', 해쉬암호종류('키값'));

 

 

이제는 아래와 같이 column 안에 value 를 md5 , sha1 이나 sha2 로 암호화 시킨다 

 

select hex(aes_encrypt('asd123',md5('sevas')));
select hex(aes_encrypt('asd123',sha1('sevas')));
select hex(aes_encrypt('asd123',sha2('sevas',256)));
hex(aes_encrypt('asd123',sha2('sevas',512)));

 

 

 

 

그리고 아래와 같이 복호화 시킨다 

 

select aes_decrypt(unhex('B688F3861568B112D5D60C48C8E987C8'),md5('sevas'));
select aes_decrypt(unhex('F22AD8472D863D4443DFEDEB66D42EED'),sha1('sevas'));
select aes_decrypt(unhex('09F01FF638796435B6531E912CCF324A'),sha2('sevas',256));
select aes_decrypt(unhex('A12E8C1C4F090802237FE9C8BB9DC016'),sha2('sevas',512));

 

 

 

 

그리고 이런걸 보면 aes_encrypt 같은경우에는 함수로 이루어 져있다 

그리고 함수안에 또 함수가있으니 헷갈리지 말자 

 

 

 

 

 

 

 

 

이제는 한번 실습해보자

 

 

 

 

 

! 잠시동안은 아래에 내리지말고 한번 풀어보길 바란다 ! 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

insert into class values ("" , "master" , hex(aes_encrypt("*12ya",md5("monster"))),"마스터",now());

....

md5 만 sha1, sha2 로 바꿔주면된다 

 

 

 

 

 

 

 

 

오늘은 

이런식으로 비밀번호를 암호화를 배웠고

대칭키와 비대칭키의 기본들도 배웠다 

 

 

다음시간에는 url 로 이용해 정보를 DB 에서 받아오는걸 해볼것이다 

 

그럼 20000 

 

 

 

 

 

 

 

728x90