분류 전체보기
-
[정보보안기사] IPSEC 프로토콜네트워크보안 2020. 11. 27. 13:30
1. IPSec ( IP Security ) 네트워크 계층에서 보안을 위해 설계 IP 패킷을 암호화하고 인증하는 IP보안 서비스 1-1 ) IPSec 기능 기밀성 비연결형 무결성 송신처 인증 재전송 공격 방지 접근 제어 제한된 트래픽 흐름의 기밀성 2. IPSec 동작모드 2-1) 전송모드 보호 : 상위계층의 데이터 보호 구간 : 종단 대 종단 2-2) 터널모드 헤더부분을 캡슐화로 목적지정보를 알 수 없기 때문에 목적지를 담은 새로운 IP 헤더부분을 생성한다. 보호 : IP패킷 전체 ( IP 헤더 + 데이터 ) 구간 : 게이트웨이 대 게이트웨이 3. IPSec 프로토콜 3-1) AH 프로토콜 (인증헤더 프로토콜) AH 헤더 Next Header (8) Payload Length (8) 예약 (16) Se..
-
ECDHE, 왜 패킷을 보여주지 않는거야어플리케이션보안 2020. 10. 29. 12:17
회사에서 내가 만든 웹 서버와 IPS 사이의 통신 패킷을 분석해야 하는 상황이 있었다. 웹 서버가 Linux에서 동작하므로 Fiddler 대신 tcpdump로 패킷을 잡고 그걸 wireshark로 보는 방법을 택했다. tcpdump로 잡은 패킷을 내 host PC로 옮긴 뒤 wireshark로 SSL key를 설정한 뒤 패킷을 보려했는데.. 뭘 잘못한거지? 복호화가 되질 않는다. key를 잘못 설정한건가? 삽질 ing.. 암호화 되지않은 SSL Handshaking 패킷을 보던 중 Server가 선택한 암호화 알고리즘이 평소 보지 못한걸 깨달았다. ECDHE?? 이게 무슨 알고리즘이지 검색 ㄱㄱ싱 ECDHE(Elliptic Curve Diffie-Hellman Exchange — 타원곡선 디피헬만 키교환..
-
SQL 튜닝 (일반적인 SQL 튜닝 기법)시스템 2020. 9. 24. 19:28
최대한도로 성능을 발휘할 수 있도록 불필요한 로직을 타지 않게 쿼리를 작성해야 한다. 같은 결과를 산출하는 쿼리는 여러 가지 형태로 작성될 수 있으므로, 개발자는 SQL 문장 단에서 최대한 효율적인 문장을 작성해야 한다. "쿼리를 이렇게 작성하면 좋은 성능을 발휘한다"라는 일반적인 가이드 라인을 알아보자! 가급적 WHERE 조건에서는 인덱스 컬럼을 모두 사용한다. 인덱스를 만들어 놓더라도 WHERE 조건을 어떻게 명시하느냐에 따라 옵티마이저가 인덱스를 사용할 수도 있고 사용하지 않을 수도 있다. 예를 들어 A와 B라는 컬럼의 인덱스를 만들었는데, WHERE 조건에서 A 컬럼만 사용한다면 인덱스를 타지 않게 된다. 예) CONTRACT 테이블에서 CONTRACT_NO, CONTRACT_REV 컬럼이 CON..
-
리눅스 로그 분석시스템 2020. 9. 21. 15:02
I. 시스템 분석 시스템 로그 분석 1) 시스템 로그의 정의 시스템 로그의 정의에 대한 설명 -"log"를 번역하면, 일지라는 뜻으로, 시스템에 일어난 일들을 기록해 둔 파일이란 뜻이다. -로그는 디스크 공간을 채우는 불필요한 파일이 되기도 한다. -시스템에서 제공하는 서비스에 따라서 여러개의 로그파일이 존재할 수 있다. -시스템관리자가 해킹을 당했다고 느낄 경우 로그 파일에 의존한다. (/var/log 디렉터리에서 모든 로그를 기록 및 관리) 리눅스 서버에서 발생하는 로그 -커널 로그: "klogd"라는 데몬에 의해 커널 메세지가 생성된다. -시스템 로그: "syslogd"라는 데몬에 의해 생성되는 로그이다. 2) 시스템 로그 파일 /var/log/message -syslog.conf에서 로그로 기록하..
-
Postgresql database 백업시스템 2020. 9. 18. 15:22
Postgresql database 백업 pg_dump --dbname=myDB --host=127.0.0.1 --port=5432 --username=myID --password --format=p --file=./myDB.sql option dbname: 대상 데이터베이스 이름 host: 대상 DB 서버의 ip address 혹은 FQDN(Fully Qulified Domain Name) ex) www.naver.com port: 대상 DB 서버의 포트 번호 username: 대상 DB에 접속할 DB user id password: 이 옵션이 있어야 명령어 실행 후 username에 대한 password를 입력을 할 수 있음 format: p or c or d or t p: plain - SQL 스크..
-
Tomcat 7.x : POST 전송 - maxPostSize 속성값 minor 버전에 따른 설정 차이Spring boot 2020. 8. 18. 13:50
이미지 파일 업로드가 아닌, 이미지 파일의 data string 변환 값을 (data:image/) tomcat 환경에서 전송하는 개발 중에, 문자열 값이 대~빵 늘어날 것을 우려하여 POST 전송 파라미터 사이즈에 max값을 무한으로 설정할 방법을 찾아보았다. tomcat server.xml 요 connector 설정 속성중에 마지막에 "maxPostSize" 라는 속성명을 추가하여 "0" 값을 주면 post 전송 데이터 무한 설정이 가능하다고 하길래 .. 적용 후에 테스트를 해보았으나.. 전송값 size 와 관계 없이.. 그냥 모든 POST 요청의 파라미터 값이 서버에서 null 으로 받아지는 사태가 발생!! 브라우저 콘솔 request 정보에는 분명히 모든 전송 파라미터 값이 로깅되고 서버 사이드는..
-
JDBC 의 Connection, Statement, ResultSet close 잘 하기JAVA 2020. 6. 22. 16:32
JDBC 의 Connection, Statement, ResultSet close 잘 하기 요즘은 프레임워크 기반으로 프로젝트를 구성해서 JDBC API 를 직접 쓰는 경우는 잘 없다. 그래도 레거시 시스템이나 직접 JDBC API 를 사용할 일이 있을 때를 대비하여 Connection, Statement, ResultSet 을 잘 닫는 방법을 정리한 글이다. 더불어 리소스 close 처리 개선을 위해 Java 7, 9 에서 등장한 try-with-resources 사용 방법을 알아보자. (Java 7 에서 try-with-resources 가 처음 등장했고, Java 9 에서 보다 향상되었다.) Table of Contents Connection, PreparedStatement, ResultSet 닫..
-
Query Service 성능 개선기시스템 2020. 5. 29. 16:03
두 번째 Query Service 성능 개선기를 작성하게 되었다. 첫 번째에서 문제가 다 해결된게 아니냐 싶을 수도 있지만 슬프게도 다 해결된 것은 아니었다. 여전히 DB의 사용률에 따라 조회 시간의 차이가 롤러코스터급으로 들쭉날쭉 했고 이를 반드시 해결해야 서비스 릴리즈를 할 수 있었다. 또한 DB에 엄청난 속도로 데이터가 쌓이고 있었기 때문에 이런 상황에도 전혀 무관하게 일정한 조회 시간을 유지해야 했다. 어떤 Query Service이고 이 서비스가 어떤 컨텍스트에서 어떤 서비스를 제공하는지는 첫 번째 이야기에서 살펴볼 수 있다. 첫 번째 이야기가 끝나갈 즈음에 하드웨어와 같은 물리적인 것들에 대해 언급을 했는데 두 번째 이야기에서는 이 쪽을 좀 더 얘기해보려고 한다. 실제로 Query Servic..