보안
-
JWT (Json Web Token)보안/웹보안 2021. 3. 10. 20:57
JWT는 Json 을 이용해 안전하게 정보를 전달할 수 있는 웹 표준이다. 클라이언트가 서버에 인증을 요청할 때 사용된다. 인증을 위해 쿠키를 사용할 수도 있고 세션을 사용할 수도 있다. 그러나.. 쿠키를 사용하면 클라이언트가 브라우저에 정보를 raw 하게 저장하기 때문에 보안에 취약하고 세션을 사용하면 서버가 여러대인 경우 모두 세션ID 를 가지고 있어야 인증이 가능하기 때문에 부담스럽다. 결론부터 얘기하면 JWT를 사용하면 클라이언트가 정보를 가지고 있으면서 위변조 또한 불가능하기 때문에 서버 입장에서 편리해진다. 왜 일까? JWT의 구조 JWT의 구조를 보기전에 알아야 할 배경 지식은 JWT는 base64 인코딩과 해싱이 사용된다는 사실이다. {Header} . {Payload} . {Signatu..
-
WebGoat 란. 설치하기보안/웹보안 2020. 6. 8. 19:02
WEBGOAT 란? 최근 SQL Injection에 대해 배웠는데, 실습이랍시고 함부로 아무 사이트에다가 SQL문을 집어넣었다가는 정보통신망법 위반으로 혼날 수 있다. 그럼 배워서 어떻게 실습을 해야할까? 내가 서버를 만들어서 시도해도 되겠지만 이런 딜레마를 해결해주고 효율적인 실습을 도와주는 오픈소스가 제공되고 있다. 그게 바로 WEBGOAT 이다. WEBGOAT를 다운로드 & 설치하면 로컬호스트로 아래 웹사이트에 접속할 수 있다. 이렇게 친절하게 SQL Injection이 무엇인지 설명도 해주고, 여러가지 실습을 해볼 수 있다. SQL Injection 외에도, OWASP10 에 해당하는 공격들의 설명과 실습이 준비되어 있다. 설치 (환경 MAC OS X) 두가지 방법이 있다. .jar 파일을 받아서..
-
Modular Arithmetic보안/컴퓨터보안 2019. 10. 13. 18:44
비유적으로 Clock arithmetic - 나누기한 값의 나머지를 말함 ( mod = 나머지. //// 'x mod n' = 나머지. ) - 시계 7시 + 6시해도 13시아니고 1시이듯 0~5까지 6가지 경우 -> Clock Arithmetic #Notation · 7 mod 6 = 1 · 7 = 13 = 1 · ((a mod n) + (b mod n)) mod n = (a+b) mod n · ((a mod n)(b mod n)) mod n = ab mod n · (7 + 12) mod 6 = 19 mod 6 = 1 mod 6 · (7 + 12) mod 6 = (1 + 0) mod 6 = 1 mod 6 Modular Multiplication · 3*4 = 0 ( mod 6 ) · 4*2 = 2 ( m..
-
Integrity보안/컴퓨터보안 2019. 10. 13. 18:00
Integrity에 문제가 생긴 경우 - 데이터를 중간에 가로채서 수정 - 공격자가 Alice인 척 메세지를 보내는 일 Data Integrity - 허용되지 않은 writing을 탐지하는 것이 목표 - Encryption은 Confidenciality를 보장하지만 단독으로는 Integrity를 보장하지 못함 MAC ( Message Authentication Code ) - Integrity를 보장하기 위해 사용된다. - CBC residue(CBC의 마지막 ciphertext block)을 사용한다. - MAC은 IV와 plaintext와 같이 보내진다.0 - Receiver도 반드시 key를 알아야 하고 계산을 해야한다. MAC 사용 예 Plaintext를 보내야하는데 alice가 bob에게 그냥보..
-
AES (Advanced Encryption Standard)보안/컴퓨터보안 2019. 10. 6. 19:29
DES가 수명을 다하고 3DES로 연명하다가 AES 를 사용하게 됌 key sizes: 128-10(rounds) / 192-12(rounds) / 256-14(rounds) bits block size: 128bits Substitution permutation network (not Feistel) 선 하나당 1byte. 4byte -> sub-box #AES-128 sub,permutation - 1.subBtyes~ 2. 3. AES s-box 예를 들어 first 4bit- 1101 -> 10진수로 13 ->16진수로 d last 4bit- 1101-> 10진수로 13 -> 16진수로 d ==> 테이블을 참고시 dd는 c1
-
Block cipher modes보안/컴퓨터보안 2019. 10. 6. 19:10
Block cipher에 대해 공부해서 각 블락들을 암호화하는 방법은 공부했다. 이제 이 블락들을 전체적으로 어떻게 암호화해서 전송하는지에 대해 알아본다. 블락을 전송하면 상대방이 받아서 복호화 해야하는데 그 과정에서 공격자가 블락의 순서를 바꿀수 있다. (Permutation공격, Integrity문제) ECB (Electronic CodeBook) - 각각의 블락을 독립적으로 암호화하는 모드 - 각각의 블락들은 암호화되어 (AES,DES등) 안전하다. - 하지만 블락의 순서들은 확인할 수 없기때문에 (보안 취약점) 사용되지 않는다. (Cut and Paste 공격) 공격자가 C0 C1 C2 C3의 순서를 -> C0, C3, C2, C1으로 바꾸고 decryption한 결과. - C = E(P,K) -..
-
Triple DES보안/컴퓨터보안 2019. 10. 6. 18:16
Triple DES C = E(D(E(k1,m),k2)k3) D = D(E(D(k3,m),k2),k1) 키 옵션은 3가지가 있는데 1. k1, k2, k3,가 모두 다른 경우 : 가장 강력하다. 2. k1=k3 인 경우 : 가장 흔하게 사용된다. 3. k1=k2=k3인 경우 : 3DES가 아닌 그냥 DES와 같아진다. Double DES 를 안쓰는 이유? ★:MITM(Meet In The Middle) 공격 때문 -> 간단하게 설명하면 여러번 encryption한 암호문을 대상으로 브루트포스 횟수를 줄여주는 공격 double DES에서.. C = enc(enc(k1,m),k2), P = dec(dec(k2,m),k1) 이다. 그러므로 dec(C,k2) = dec(enc(enc(k1,m)k2)k2) = d..