일학습병행 OFF-JT 2일차 입니다.
1일차 부터 올렸으면 좋겠지만... 일단 오늘 배운 걸 같이 정리해보도록 하죠
오늘은
1. 소프트웨어 아키텍처란 무엇인가?
2. HTTP프로토콜 :
2-1 - Cookie와 Session에 대해서
2-2 - 요청과 응답 ( Request & Response )
3. DB 보안?
3-1 - 리눅스에서 DB정보 확인과 권한 부여하는법
3-2 - DVWA를 활용한 sql injection 테스트방법
4. chat-GPT와 파이썬을 활용한 데이터 분석 방법
5. 암호화를 중심으로 한 보안
에 대해서 배웠습니다.
그 중에서 가장 기억에 남는 (가장 마지막에 해서... 중요하기도 하지만..)
*암호화 를 중심으로 한 보안*에 대해서 포스팅 해보려고 합니다.
암호화 를 중심으로 한 보안에는
* 정보보안의 요구사항
* 혼합에 의한 키 운영 (암호화)
* 전자서명
* 인증서
이런 것들이 있는데
ㅇ 정보보안의 요구사항은
1. 기밀성 : 허용된 사람 외에 다른 사람은 접속하면 안된다는 것 ex) IP차단을 통한 접근통제, 키를 통한 암호화 등
2. 무결성 : 전달받은 정보가 중간에 변형되지 않았다는 것을 증명할 수 있어야된다는 것 ex) 해시를 통한 검증
3. 가용성: 무슨 일(something)이 있어도 사용하는데 문제가 없어야 된다는 것
(4. 법적 준거성 : 권고사항 같은 기준을 충족시켜야 된다는 것)
을 말하고
ㅇ 암호화 키 관리 (암호화기법) 은
- 대칭키 (비밀키) : 하나의 키를 이용해서 암호화, 복호화. => 장점(성능상대적으로 좋다) 단점 (키의 전달 방법)
- 비대칭키 (공개키) : 서로 연관된 키 2개 (개인키, 공개키) 를 만든다.
개인키로 암호화된 것은 공개키로 복호화 가능 / 공개키로 암호화 된 것은 개인키로 암호화 가능
=> 장점(키의 전달 방법에 상관없이 확실한 암호화가능) 단점(데이터의 크기가 커지면 속도가 많이 느려진다.)
- 혼합에 의한 키 운영 (암호화) - 위의 두개의 장점만 가져왔다.
1) 크기가 큰 데이터의 암호화, 복호화는 비밀키(대칭키)를 이용한다.
2) 비밀키( 대칭키 )를 공개키(비대칭키)를 이용해서 공유 (전달)
이렇게 하면 수신자의 공개키를 이용해서 비밀키를 암호화 해서 데이터와 함께 보내면 수신자가 개인키를 이용해서 암호화된 비밀키를 복호화하고 그것으로 데이터를 복호화 해서 사용할 수 있다.
여기에 발신자의 개인키로 암호화된 해시를 돌린 데이터을 이용해서 발신자의 신원을 확인 할 수 있다(발신자의 공개키로 복호화가 가능하면 발신자의 개인키로 보낸 것임을 증명할 수 있다.)
또한 발신자가 보낸해시값과 수신자가 받은 데이터의 해시값을 비교해서 기밀성을 확인할 수 있다면 그게 바로 보낸사람과 무결성이 증명된 전자서명이 되는 것이다.
마무리가 좀 복잡하긴한데 읽어보시고 이해하시면 좋을 것 같습니다.
그림이 없어서...