จาก BLOG: mailx ส่งเมล์จาก Linux แบบ command line หากสังเกตุตรง Config ดีๆ จะมีในส่วนของ set smtp-auth ครับ ที่เห็นว่ามันมีค่าเท่ากับ login จริงแล้วมันมีค่าได้หายแบบครับ แต่คำสั่งมัน Low-Level อยู่พอสมควร Doc เลยหายากนิดนึงครัีบ โดย AUTH COMMAND มี 3 แบบครับ
- AUTH PLAIN : Client ส่ง username / password ไปยัง Mail Server แบบต่อกัน USERMAME+PASSWORD โดยการเข้ารหัสด้วยอัลกอริทึ่ม BASE64
S: 220 smtp.server.com Simple Mail Transfer Service Ready C: EHLO client.example.com S: 250-smtp.server.com Hello client.example.com S: 250-SIZE 1000000 S: 250 AUTH LOGIN PLAIN CRAM-MD5 C: AUTH PLAIN S: 334 C: aWFtcGluZ2t1bmcrdGhpc2kkcGFzc3dvcmQ= (username iampingkung และ password thisi$password ที่ต่อกัน iampingkung+thisi$password S: 235 2.7.0 Authentication successful
- AUTH LOGIN : เหมือน AUTH PLAIN แต่ขั้นตอนการสื่อสารของ Server และ Client จะเป็น อัลกอริทึ่ม BASE64 ทั้งหมด อาทิ เช่น
- SERVER Reply กับมาว่าขอ Username คำว่า Username: ถูกแปลงเป็น BASE64 VXNlcm5hbWU6
- โดยที่ Client ตอบ Username ค่านี้ถูกเข้ารหัสด้วย BASE64 เหมือนกัน
- SERVER Reply กับมาว่าขอ Password คำว่า Password: ถูกแปลงเป็น BASE64 UGFzc3dvcmQ6
- และเมื่อ Client ตอบ Password ค่านี้ถูกเข้ารหัสด้วย BASE64 เหมือนกัน
S: 220 smtp.server.com Simple Mail Transfer Service Ready C: EHLO client.example.com S: 250-smtp.server.com Hello client.example.com S: 250-SIZE 1000000 S: 250 AUTH LOGIN PLAIN CRAM-MD5 C: AUTH LOGIN S: 334 VXNlcm5hbWU6 (Username:) C: aWFtcGluZ2t1bmc= (iampingkung) S: 334 UGFzc3dvcmQ6 (Password:) C: dGhpc2kkcGFzc3dvcmQ= (thisi$password) S: 235 2.7.0 Authentication successful
- AUTH CRAM-MD5 : เนื่องจากอัลกอริทึ่ม BASE64 ถูกถอดได้ง่าย มีการปรับแก้กระบวนการแทน โดยแทนที่ Server จะถาม Username Password ตรงๆ คราวนี้ Server ส่ง One-Time Secret Key เข้ามา เพื่อเอาตั้งต้นสำหรับเข้ารหัส username และ password ด้วย hash-based message authentication code หรือ HMAC เพื่อส่งไปที่ Server แทน
S: 220 smtp.server.com Simple Mail Transfer Service Ready C: EHLO client.example.com S: 250-smtp.server.com Hello client.example.com S: 250-SIZE 1000000 S: 250 AUTH LOGIN PLAIN CRAM-MD5 C: AUTH CRAM-MD5 S: 334 PDQxOTI5NDIzNDEuMTI4Mjg0NzJAc291cmNlZm91ci5hbmRyZXcuY211LmVkdT4= (One-Time Secret Key) C: cmpzMyBlYzNhNTlmZWQzOTVhYmExZWM2MzY3YzRmNGI0MWFjMA== (username และ password ที่ใช่ HMAC + One-Time Secret Key) S: 235 2.7.0 Authentication successful
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.