전체 글 62

[공격 2] CSRF(Cross-site request forgery)

설명사이트 간 요청 위조(Cross-site request forgery)주로 악성 스크립트가 있는 서버(A)에서 공격 대상 서버(B)에 인증된 사용자의 정보로 요청을 위조하여 공격예시) 비밀번호 변경, 이메일 주소 변경, 자금 이체, 계정 삭제 등사용자의 브라우저에 대한 사이트의 신뢰를 악용한다클라이언트 브라우저가 자동으로 포함하는 인증 정보를 사용하므로, 서버는 정상 요청인지 악의적 요청인지 확인 불가능세션+쿠키 기반의 사용자 인증 보안 취약점을 이용한 공격조건피해자가 공격 대상 서버에 인증된 상태여야 함세션 쿠키나 토큰 정보가 브라우저에 저장되어 있어야 함피해자 요청 시 공격 대상 서버 인증 정보를 포함해야 함주로 쿠키 기반 인증에서 발생하는데, 브라우저가 같은 도메인으로 요청할 때 쿠키를 자동으로..

Security/보안 2024.12.08

[공격 1] XSS(Cross-site scripting)

설명Cross-site scripting현재는 잘못된 명칭초기에 다른 사이트 데이터를 침해하는 공격에서 파생된 명칭현재는 모든 형태의 데이터 주입을 지칭한다약어가 CSS가 아닌 XSS인 이유는 Cascading Style Sheet와 혼동이 올 수 있기 때문공격자가 취약점이 있는 웹 서버에 악성 스크립트를 삽입하는 것특정 사이트에 대한 사용자의 신뢰를 악용주로 CSRF를 위해 사용되기 때문에 CSRF와 혼동되는 경우가 있는데, XSS는 스크립트를 실행시키는 것이고 CSRF는 특정한 행동을 시키는 것이다TypeStored(Persistent)정의취약점이 있는 웹 서버에 악성 스크립트를 저장하여 피해자의 브라우저에서 스크립트를 실행시키는 XSS 기법글, 댓글, 닉네임 등에 악성 스크립트 저장예시공격자가 다음..

Security/보안 2024.12.07

[보안 9] 디지털 인증서(Digital Certificate)

설명공개키 작성자를 증명할 수 있는 인증서디지털 인증서를 통하지 않고 전달하는 공개키는 신뢰하지 않을 수 있음중간에서 공격자가 디지털 인증서 없이 자신의 공개키로 바꿔치기 하더라도 알아챌 수 있음공격자가 다른 사용자로 위장하여 인증 기관에 공개키 등록 불가능해당 사용자의 메일 주소를 소유하고 있지 않으면 인증서 발급 불가디지털 인증서는 인증 기관(CA)에서 발급인증 기관(Certificate Authority, CA)디지털 인증서를 발급하고 관리하는 기관인증 기관은 누구나 만들 수 있기 때문에 검증된 기관을 이용하는 것이 안전함디지털 인증서 발급인증 기관은 공개키와 개인키를 가지고 있음A가 공개키와 개인키 쌍 생성A가 공개키가 자신의 것임을 나타내는 인증서 발행 의뢰공개키와 개인 정보를 인증 기관에 전송..

Security/보안 2024.12.01

[보안 8] 디지털 서명(Digital Signature)

설명메세지 인증 코드(MAC)에 부인 방지를 추가한 보안 기술클라이언트가 공개키 개인키 쌍을 생성 후 개인키로 암호화, 서버에 공개키 전송비대칭키 암호에선 클라이언트가 서버의 공개키로 암호화, 서버가 개인키로 복호화했지만 디지털 서명은 반대공개키로 복호화 되기에 암호로서는 의미가 없지만, 이 개인키로 암호문을 생성할 수 있는 건 1명 밖에 존재하지 않음이 보장됨실제 사용 예시디지털 서명 생성A가 B에게 암호문을 전송하려고 함A가 공개키와 개인키 쌍 생성A가 B에게 공개키 전송A가 암호문 해싱암호문 전체를 비대칭키로 암호화하면 시간이 오래 걸리기 때문A가 해시값을 개인키로 암호화A가 B에게 암호문과 암호화된 해시값 전송디지털 서명 검증B가 암호문 해싱B가 디지털 서명을 공개키로 복호화암호문 해시값과 복호화..

Security/보안 2024.12.01

[보안 7] 메세지 인증 코드(Message Authentication Code, MAC)

설명상품번호처럼 사람이 이해하기 힘든 데이터는 변조되어도 인지하기 어려움메세지 인증 코드를 통해 변조되었는지 검증 가능공격 예시A가 B에게 상품을 구매하려고 상품번호를 전송하려고 함B가 공개키와 개인키 쌍 생성B가 A에게 공개키 전달A가 대칭키를 B의 공개키로 암호화 후 B에게 전송B가 암호화된 대칭키를 복호화A가 상품번호를 대칭키로 암호화 후 B에게 암호문 전송공격자가 중간에서 암호문 변조B는 변조된 암호문을 받아서 대칭키로 복호화하여 변조된 상품번호를 얻음실제 사용 예시(6번에서 암호화 후 아직 B에게 전송하기 전)MAC 검증을 위한 키를 B에게 안전하게 전송A는 암호문, MAC 검증키, 알고리즘으로 MAC 생성 후 암호문과 MAC을 B에게 전송B는 암호문, MAC 검증키, 알고리즘으로 MAC 생성 ..

Security/보안 2024.12.01

[보안 6] 하이브리드(Hybrid) 암호

설명평문을 대칭키 암호 방식의 빠른 속도로 암복호화대칭키만 비대칭키 암호 방식으로 암호화하여 안전하게 상대방에게 대칭키 전송실제 사용 예시A가 B에게 데이터를 전송하려고 함B가 공개키와 개인키 쌍 생성B가 A에게 공개키 전달A가 대칭키를 B의 공개키로 암호화 후 B에게 전송B가 암호화된 대칭키를 복호화A가 평문을 대칭키로 암호화 후 B에게 암호문 전송B가 암호문을 받아서 대칭키로 복호화

Security/보안 2024.12.01

[보안 5] 비대칭키(Asymmetric key) 암호

설명암호화와 복호화에 서로 다른 key를 사용하는 암호공개키(Public Key): 암호화에 사용하는 키개인키(Private Key): 복호화에 사용하는 키실제 사용 예시A가 B에게 데이터를 전송하려고 함B가 공개키와 개인키 쌍 생성B가 A에게 공개키 전달A가 평문을 공개키로 암호화 후 B에게 암호문 전송B가 암호문을 받아서 개인키로 복호화장점공격자가 중간에서 공개키를 훔쳐보더라도 암호문 복호화 불가능공개키는 다른 사람에게 노출되어도 문제 없기 때문에 누구에게나 쉽게 전달 가능단점바꿔치기에 취약함공격자가 공개키와 개인키 쌍 생성B가 A에게 공개키를 보낼 때, 공격자가 중간에서 B의 공개키를 공격자의 공개키로 바꿔치기해서 A에게 전달A는 공격자의 공개키로 암호화 후 B에게 암호문 전송공격자는 중간에서 A의..

Security/보안 2024.12.01

[보안 4] 대칭키(Symmetric key) 암호

설명암호화와 복호화에 같은 key를 사용하는 암호실제 사용 예시A가 B에게 데이터를 전송하려고 함A가 평문을 대칭키로 암호화 후 B에게 암호문 전송B가 암호문을 받아서 대칭키로 복호화장점중간에 공격자가 있어도 암호문을 훔쳐볼 수 없음암복호화에 걸리는 속도가 비대칭키 암호에 비해 월등히 빠름단점상대방도 동일한 대칭키를 가지고 있어야 복호화 가능상대방에게 대칭키가 없는 경우 전달해야 하는데, 이 과정에서 공격자에게 대칭키를 빼앗기거나 조작당할 수 있음대칭키를 안전하게 상대방에게 전달할 방법 필요대표 알고리즘AES: 현재 가장 많이 이용되고 있는 대칭키 알고리즘DES: AES 이전에 가장 많이 이용된 대칭키 알고리즘이며, 현재는 취약점으로 인해 사용되지 않음

Security/보안 2024.12.01

[보안 3] 해시(Hash)

용어해시(해시 함수)어떤 값을 넣어도 고정된 길이의 데이터로 매핑하는 단방향 함수실제로는 0과 1의 2진수로 관리되지만 보통 16진수로 변환하여 표기SHA-256: 256비트 = 64자리 (16진수는 1자리에 4비트)SHA-512: 512비트 = 128자리입력 값이 동일하면 출력 값도 동일비슷한 값을 넣어도 1비트라도 다르면 출력이 크게 달라짐원본 데이터 역산이 사실상 불가능(복호화 불가능)해싱(Hashing)해시 함수를 적용하는 것해시 충돌서로 다른 입력 값을 넣어도 동일한 출력 값이 나올 가능성이 낮은 확률로 존재입력 값의 범위보다 출력 값의 범위가 작기 때문

Security/보안 2024.12.01

[보안 2] 암호화(Encryption)

설명데이터를 암호화하지 않고 전달하면 공격자가 훔쳐볼 가능성이 있습니다.안전하게 데이터를 주고 받으려면 암호화를 할 필요가 있습니다.용어평문(Plain text)암호화 되지 않은 데이터암호문(Encrypted text)암호화 한 데이터암호화(Encryption)평문을 암호문으로 변경하는 것복호화(Decryption)암호문을 평문으로 변경하는 것양방향 암호화인 경우만 복호화 가능단방향 암호화인 경우는 복호화 불가능암호화암호화 방법컴퓨터에서 텍스트, 사진, 음악 등 모든 데이터는 0과 1로 관리됨암호화란 데이터에 어떤 연산을 적용해서 0과 1로 이루어진 숫자를 변경하는 것양방향 암호화key 필수복호화 가능한 암호화암호화 예시원본 데이터: 1101 (2진수)key: 1100 (2진수)암호화 방식: XOR 연산..

Security/보안 2024.12.01